Jumat, 29 Juni 2012

merger sort


Algoritma Sorting

Dalam matematika dan komputasi, algoritma merupakan kumpulan perintah untuk menyelesaikan suatu masalah. Perintah-perintah ini dapat diterjemahkan secara bertahap dari awal hingga akhir. Masalah tersebut dapat berupa apa saja, dengan catatan untuk setiap masalah, ada kriteria kondisi awal yang harus dipenuhi sebelum menjalankan algoritma. Algoritma akan dapat selalu berakhir untuk semua kondisi awal yang memenuhi kriteria, dalam hal ini berbeda dengan heuristik. Algoritma sering mempunyai langkah pengulangan (iterasi) atau memerlukan keputusan (logika Boolean dan perbandingan) sampai tugasnya selesai.
Desain dan analisis algoritma adalah suatu cabang khusus dalam ilmu komputer yang mempelajari karakteristik dan performa dari suatu algoritma dalam menyelesaikan masalah, terlepas dari implementasi algoritma tersebut. Dalam cabang disiplin ini algoritma dipelajari secara abstrak, terlepas dari sistem komputer atau bahasa pemrograman yang digunakan. Algoritma yang berbeda dapat diterapkan pada suatu masalah dengan kriteria yang sama.
Kompleksitas dari suatu algoritma merupakan ukuran seberapa banyak komputasi yang dibutuhkan algoritma tersebut untuk menyelesaikan masalah. Secara informal, algoritma yang dapat menyelesaikan suatu permasalahan dalam waktu yang singkat memiliki kompleksitas yang rendah, sementara algoritma yang membutuhkan waktu lama untuk menyelesaikan masalahnya mempunyai kompleksitas yang tinggi.
Sedangkan sorting adalah sebuah proses merangkai benda dalam urutan tertentu dan/atau dalam himpunan yang berbeda, dan oleh karena itu dia memiliki dua arti umum yang berbeda:
  1. pengurutan: merangkai benda yang sejenis, sekelas, dll, dalam urutan yang teratur.
  2. kategorisasi: pengelompokan dan pemberian label kepada benda dengan sifat yang serupa.
algoritma sorting terdiri dari beberapa algoritma seperti Bubble sort, Quick sort, Selection Sort, Insertion Sort, dan Merge Sort yang dimana setiap jenis sorting ini memiliki perbedaan satu sama lainnya. berikut ini merupakan pembahasan umum mengenai jenis-jenis atau algoritmasorting yang telah dijelaskan diatas :

Bubble Sort
Bubble Sort merupakan cara pengurutan yangsederhana. Konsep dari ide dasarnya adalah seperti“gelembung air” untuk elemen struktur data yangsemestinya berada pada posisi awal. Cara kerjanyaadalah dengan berulang-ulang melakukan traversal (proses looping) terhadap elemen-elemen struktur datayang belum diurutkan. Di dalam traversal tersebut,nilai dari dua elemen struktur data dibandingkan. Jikaternyata urutannya tidak sesuai dengan “pesanan”,maka dilakukan pertukaran (swap). Algoritma sortingini disebut juga dengan comparison sort dikarenakanhanya mengandalkan perbandingan nilai elemen untukmengoperasikan elemennya.
Algoritma Bubble Sort
Algoritma bubble sort dapat diringkas sebagaiberikut, jika N adalah panjang elemen struktur data, dengan elemen-elemennya adalah T1, T2, T3, …, TN-1,TN, maka:
  1. Lakukan traversal untuk membandingkan dua elemen berdekatan. Traversal ini dilakukan dari belakang.
  2. Jika elemen pada TN-1 > TN , maka lakukan pertukaran (swap). Jika tidak, lanjutkan ke proses traversal berikutnya sampai bertemu dengan bagian struktur data yang telah diurutkan.
  3. Ulangi langkah di atas untuk struktur data yang tersisa.
Selection Sort
Algoritma sorting sederhana yang lain adalahSelection Sort. Ide dasarnya adalah melakukan beberapa kali pass untuk melakukan penyeleksianelemen struktur data. Untuk sorting ascending(menaik), elemen yang paling kecil di antara elemenelemenyang belum urut, disimpan indeksnya,kemudian dilakukan pertukaran nilai elemen denganindeks yang disimpan tersebut dengan elemen yangpaling depan yang belum urut. Sebaliknya, untuksorting descending (menurun), elemen yang paling. besar yang disimpan indeksnya kemudian ditukar.
Algoritma Selection Sort
Algoritma selection sort dapat dirangkum sebagaiberikut:
  1. Temukan nilai yang paling minimum (atau sesuaikeinginan) di dalam struktur data. Jika ascending, maka yang harus ditemukan adalah nilai yang paling minimum. Jika descending, maka temukan nilai yang paling maksimum.
  2. Tukar nilai tersebut dengan nilai pada posisipertama di bagian struktur data yang belum diurutkan.
  3. Ulangi langkah di atas untuk bagian struktur datayang tersisa.
Insertion Sort
Cara kerja insertion sort sebagaimana namanya.Pertama-tama, dilakukan iterasi, dimana di setiap iterasi insertion sort memindahkan nilai elemen,kemudian menyisipkannya berulang-ulang sampai ketempat yang tepat. Begitu seterusnya dilakukan.  Dariproses iterasi, seperti biasa, terbentuklah bagian yang telah di-sorting dan bagian yang belum di-sorting.
Algoritma Insertion Sort
Algoritma Insertion Sort dapat dirangkum sebagai berikut:
  1. Simpan nilai Ti kedalam variabel sementara, dengan i = 1.
  2. Bandingkan nilainya dengan elemen sebelumnya.
  3. Jika elemen sebelumnya (Ti-1) lebih besar nilainya daripada Ti, maka tindih nilai Ti dengan nilai Ti-1 tersebut. Decrement i (kurangi nilainya dengan 1).
  4. Lakukan terus poin ke-tiga, sampai Ti-1 ≤ Ti.
  5. Jika Ti-1 ≤ Ti terpenuhi, tindih nilai di Ti dengan variabel sementara yang disimpan sebelumnya.
  6. Ulangi langkah dari poin 1 di atas dengan i di-increment (ditambah satu).
Merge Sort
Algoritma Merge Sort ditemukan oleh John vonNeumann di tahun 1945. Merge Sort termasuk paradigma algoritma divide and conquer (kurang lebih berarti: bagi dan atasi). Hal ini dikarenakan algoritma ini melakukan pembagian struktur data sebelum kemudian dioperasi satu per satu. Intinya, algoritma ini menggunakan dua ide utama sebagai berikut,
  1. Sebuah list yang kecil membutuhkan langkah yang lebih sedikit untuk pengurutan daripada sebuah list yang besar.
  2. Untuk membentuk sebuah list terurut dari duabuah list terurut membutuhkan langkah yangl ebih sedikit daripada membentuk sebuah list terurut dari dua buah list tak terurut. Contoh:hanya diperlukan satu kali traversal untuk masing-masing list jika keduanya sudahterurut.
Algoritma Merge Sort
Algoritma Merge Sort sederhananya, dapat ditulis berikut:
  1. Bagi list yang tak terurut menjadi dua sama panjang atau salah satunya lebih panjang satu elemen.
  2. Bagi masing-masing dari 2 sub-list secara rekursif sampai didapatkan list dengan ukuran 1.
  3. Gabung 2 sublist kembali menjadi satu list terurut.
Quick Sort
Quick Sort adalah algoritma sorting yang terkenal yang dirancang oleh C.A.R. Hoare pada tahun 1960 ketika bekerja untuk perusahaan manufaktur komputer saintifik kecil, Elliott Brothers. Algoritma ini rekursif, dan termasuk paradigma algoritma divide and conquer.
Algoritma Quick Sort
Algoritma ini terdiri dari 4 langkah utama:
  1. Jika struktur data terdiri dari 1 atau 0 elemen yang harus diurutkan, kembalikan struktur data itu apa adanya.
  2. Ambil sebuah elemen yang akan digunakansebagai pivot point (poin poros).  (Biasanya elemen yang paling kiri.)
  3. Bagi struktur data menjadi dua bagian – satu dengan elemen-elemen yang lebih besar daripada pivot point, dan yang lainnya dengan elemen-elemen yang lebih kecil dari pada pivot point.
  4. Ulangi algoritma secara rekursif terhadap kedua paruh struktur data.




Selasa, 19 Juni 2012

PANEL SURYA

 PANEL SURYA

Energi adalah satu kata yang mempunyai makna sangat luas karena tidak ada aktivitas di alam raya ini yang bergerak tanpa energi dan itulah sebabnya kata salah seorang professor di Jepang bahwa hampir semua perselisihan di dunia ini, berpangkal pada perebutan sumber energi.
Secara umum sumber energi dikategorikan menjadi dua bagian yaitu non-renewable energy dan renewable energy. Sumber energi fosil adalah termasuk kelompok yang pertama yang sebagaian besar aktivitas di dunia ini menggunakan energi konvensional ini.
Sekitar tahun delapan puluhan ketika para ahli di Indonesia menawarkan sumber energi alternatif yang banyak digunakan di negara maju yaitu nuklir, banyak terjadi pertentangan dan perdebatan yang cukup panjang sehingga mengkandaskan rencana penggunaan sumber energi yang dinilai sangat membahayakan itu. Diantara usulan yang banyak dilontarkan kala itu adalah mengapa kita tidak menggunakan sumber energi surya. Memang tidak diragukan lagi bahwa solar cell adalah salah satu sumber energi yang ramah lingkungan dan sangat menjanjikan pada masa yang akan datang, karena tidak ada polusi yang dihasilkan selama proses konversi energi, dan lagi sumber energinya banyak tersedia di alam, yaitu sinar matahari, terlebih di negeri tropis semacam Indonesia yang menerima sinar matahari sepanjang tahun.
Permasalahan mendasar dalam teknologi solar cell adalah efisiensi yang sangat rendah dalam merubah energi surya menjadi energi listrik, yang sampai saat ini efisiensi tertinggi yang bisa dicapai tidak lebih dari 20%, itupun dalam skala laboratorium
Untuk itu di negara-negara maju, penelitian tentang solar cell ini mendapatkan perhatian yang sangat besar, terlebih dengan isu bersih lingkungan・yang marak digembar gemborkan.
Dari cahaya menjadi Listrik
Secara sederhana solar cell terdiri dari persambungan bahan semikonduktor bertipe p dan n (p-n junction semiconductor) yang jika tertimpa sinar matahari maka akan terjadi aliran electron, nah aliran electron inilah yang disebut sebagai aliran arus listrik. Sedangkan struktur dari solar cell adalah seperti ditunjukkan dalam gambar 1.
Gambar 1. Struktur lapisan tipis solar sel secara umum
Bagian utama perubah energi sinar matahari menjadi listrik adalah absorber (penyerap), meskipun demikian, masing-masing lapisan juga sangat berpengaruh terhadap efisiensi dari solar cell. Sinar matahari terdiri dari bermacam-macam jenis gelombang elektromagnetik yang secara spectrum dapat dilihat pada gambar 2. Oleh karena itu absorber disini diharapkan dapat menyerap sebanyak mungkin solar radiation yang berasal dari cahaya matahari.
Gambar 2. Spektrum radiasi sinar matahari
Lebih detail lagi bisa dijelaskan sinar matahari yang terdiri dari photon-photon, jika menimpa permukaaan bahan solar sel (absorber), akan diserap, dipantulkan atau dilewatkan begitu saja (lihat gambar 3), dan hanya foton dengan level energi tertentu yang akan membebaskan electron dari ikatan atomnya, sehingga mengalirlah arus listrik. Level energi tersebut disebut energi band-gap yang didefinisikan sebagai sejumlah energi yang dibutuhkan utk mengeluarkan electron dari ikatan kovalennya sehingga terjadilah aliran arus listrik. Untuk membebaskan electron dari ikatan kovalennya, energi foton (hc/v harus sedikit lebih besar atau diatas daripada energi band-gap. Jika energi foton terlalu besar dari pada energi band-gap, maka extra energi tersebut akan dirubah dalam bentuk panas pada solar sel. Karenanya sangatlah penting pada solar sel untuk mengatur bahan yang dipergunakan, yaitu dengan memodifikasi struktur molekul dari semikonduktor yang dipergunakan.
Gambar 3. Radiative transition of solar cell
Tentu saja agar efisiensi dari solar cell bisa tinggi maka foton yang berasal dari sinar matahari harus bisa diserap yang sebanyak banyaknya, kemudian memperkecil refleksi dan remombinasi serta memperbesar konduktivitas dari bahannya.
Untuk bisa membuat agar foton yang diserap dapat sebanyak banyaknya, maka absorber harus memiliki energi band-gap dengan range yang lebar, sehingga memungkinkan untuk bisa menyerap sinar matahari yang mempunyai energi sangat bermacam-macam tersebut. Salah satu bahan yang sedang banyak diteliti adalah CuInSe2 yang dikenal merupakan salah satu dari direct semiconductor.
Dari begitu banyak keuntungan solar cell seperti telah diuraikan diatas ternyata tidak polemik tidak kemudian berhenti begitu saja, masih ada yang mengatakan memang benar solar cell ketika melakukan proses perubahan energi tidak ada polusi yang dihasilkan, tetapi sudahkah kita menghitung berapa besar polusi yang telah dihasilkan dalam proses pembuatannya, dibandingkan kecilnya efisiensi yang dihasilkan. Nah tantangannya disini adalah memang bagaimana untuk menaikkan efisiensi, yang tentunya akan berdampak kepada nilai ekonomisnya. (RTW)
(Oleh Rusminto Tjatur WIDODO, Dosen EEPIS-ITS Surabaya dan mahasiswa Program Doktor jurusan Nano Structure and Advanced Materials, Universitas Kagoshima Jepang)