Searching data.. adalah program untuk melakukan pencarian satu data dari kumpulan beberapa data (array).. Ada 2 cara untuk melakukan searching data.. Yaitu, Sequence Search dan Biner Search.. Untuk lebih jelasnya tentang Sequence dan Biner search liat aj, di bawah nie.. Otreh..?
<1.>
Sequence search merupakan salah satu cara untuk melakukan searching data.. Namun cara ini sudah mulai ditinggalkan.. Karena proses pencarian yang dilakukan Sequence Search tergolong sangat lama.. Karena Sequence, melakukan pencarian, dengan mengecek data satu persatu.. Berbanding terbalik dengan Binary Search.. Yang memerlukan waktu untuk melakukan pencarian data jauh lebih singkat.. Mungkin untuk jumlah data 10 - 20 tidak ada perbedaan waktu yang cukup signitifkan antara keduanya.. Namun bayangkan, jika data yang ada mencapai puluhan, ribuan, atau bahkan jutaan.. Sequence search bisa memakan waktu lebih dari seminggu untuk mencari data yang mencapai puluhan juta..
<2.>
Binary search merupakan program pencarian data dengan mengelompokkan/mengurutkan datanya terlebih dahulu sehingga waktu yang dibutuhkan untuk searching data jauh lebih singkat karena program akan langsung mengarahkan pencarian ke kelompok/urutan data tersebut dibandingkan mengecek satu demi satu data tersebut.. Untuk membuatnya memang qta harus mengurutkan data terlebih dahulu ( bisa dengan Bubble, sequence, exchange, insertion, ataupun quick sort ) setelah itu, baru qta buat algoritma searcingnya.. Program ini memang lebih rumit dari pada Sequence Search, tapi dosen algoritma aku, cenderung menyuruh aku untuk menggunakan program ini untuk membuat program searching data.. Cz kata beliau (ciee, beliau.. :-) ), sebagai programmer qta harus lebih mengutamakan kepuasan pengguna.. Tidak apa2, qta membuat program rumit2, yang penting pengguna program kita puas.. Ga mungkin kan, qta di bayar, tapi mengecewakan pelanggan dengan membuat program yang LOLA ( Loadingnya Lambat beneerr.. ) Hehee..
Selasa, 30 Juni 2009
Quick Sort
<5.quick>
Quick sort adalah program sorting data tercepat dari program sorting data yang lain.. ( katanya dosen algoritma aku sie gitu.. hehee )
Itu karena namanya.. Quick Sort.. Yea, pantes'an cepet.. Hee, Q'dink..
Bukan cuma karena namanya aj, kq.. Tapi terlebih dari cara kerja program ini, yang memang sangat cepat dalam mengurutkan data.. Liat aja, sintax'nya.. Wuih rumit banget.. Q aj, sampe' mual2 liat sintax'nya.. Hehee..
Tapi dibalik kerumitan itu.. Q coba bahas deh.. Yang penting nilai tugas Prak. Algoritma, Q ini GEDE ! (Ngarep) Hehee..
Cara kerja Quick SOrt nie adalah membandingkan suatu elemen (disebut pivot) dengan elemen lain dan menyusun sedemikian rupa sehingga elemen lain yang lebih kecil dari pada pivot tersebut terletak disebelah kirinya.. Dan elemen yang lain yang lebih besar dari pada pivot tersebut terletak disebelah kanannya..
Sehingga dengan demikian telah terbentuk dua sublist, yang terletak disebelah kiri dan kanan pivot.. Lalu pada sublist kiri dan kanan kita anggap sebuah list baru dan kita kerjakan proses yang sama seperti sebelumnya. Demikian seterusnya sampai tidak terdapat sublist lagi. Sehingga di dalamnya telah terjadi proses rekursif..
Nah lho? Ngerti gG..? Hehee.. Gini deh..
Q kasi'in contohnya aj.. Sapa tau lebih jelas..
Misalnya.. Kita punya data belum terurut seperti di bawah ini..
22 10 15 3 8 2
Nah, ceritanya kita bakal ngurut'in nie data secara ascending dengan Quick Sort..
Langkah 1
Pivot terletak di tengah2 data tersebut
jumlah data di atas brapa? 6 kan? nah.. Jadi pivotnya terletak di elemen ke-3..
Pivot = 15..
Sekarang untuk dua sublistnya aku kasi nama deh.. Yang tugas ngecek disebelah kiri aku kasi' nama Mr. A truz yang tugas ngecek disebelah kanan aku kasi' nama Mr. B..
Inget.. Dari penjelasan tadi, sublist yang di kiri musti lebih kecil dari pivot truz sublist yang di kanan musti lebih besar dari pivot..
Mr.A<-----
22 10 | 15 |3 8 2
----->Mr.B
Mr.A berhenti di elemen pertama, karena dia menemukan angka 22 lebih besar dari pivot (15)..
Dan J berhenti di elemen ke 6, karena dia menemukan angka 2 lebih kecil dari pivot (15)..
Maka program akan menukar posisi di elemen pertama dengan elemen keenam.. Artinya posisi 22 ditukar dengan 2.. Jadi urutannya sekarang..
2 10 15 3 8 22
Langkah 2
Mr.A<----
2 10 | 15 | 3 8 22
------>Mr.B
Mr A berhenti di elemen ketiga, karena dia menemukan angka 15 lebih besar/sama dengan pivot (15).. eNd Mr.B berhenti di elemen ke 5, karena dia nemu'in elemen yang lebih kecil dari pivot(15)..
program nuker lagi nie, posisinya 15, dituker dengan posisinya 8.. Jadi urutannya..
2 10 8 3 15 22
Langkah 3
Karena pivotnya yang terpindah pada langkah ke-2 tadi, sekarang program akan membentuk 2 sublist baru..
Jadi pivotnya sekarang adalah 8..
Mr.A<----
2 10 | 8 | 3 15 22
-------->Mr.B
Mr. A berhenti pada elemen ke 2, karena dia nemu'in 10 lebih besar dari pivot (8).. Truz, sie Mr.B berhenti pada elemen ke 4, karena dia nemu'in 3 yang nilainya lebih kecil dari pivot(8)..
Slanjutnya program nuker, posisi 10 dengan 3.. Maka urutannya menjadi..
2 3 8 10 15 22
FINISh.. Nah data sudah terurut secara ascending kan..
Yea, walaupun terlihat rumit tapi dalam kenyataannya, program ini sangat cepat dalam mengurutkan data dibandingkan dengan program lain..
Quick sort adalah program sorting data tercepat dari program sorting data yang lain.. ( katanya dosen algoritma aku sie gitu.. hehee )
Itu karena namanya.. Quick Sort.. Yea, pantes'an cepet.. Hee, Q'dink..
Bukan cuma karena namanya aj, kq.. Tapi terlebih dari cara kerja program ini, yang memang sangat cepat dalam mengurutkan data.. Liat aja, sintax'nya.. Wuih rumit banget.. Q aj, sampe' mual2 liat sintax'nya.. Hehee..
Tapi dibalik kerumitan itu.. Q coba bahas deh.. Yang penting nilai tugas Prak. Algoritma, Q ini GEDE ! (Ngarep) Hehee..
Cara kerja Quick SOrt nie adalah membandingkan suatu elemen (disebut pivot) dengan elemen lain dan menyusun sedemikian rupa sehingga elemen lain yang lebih kecil dari pada pivot tersebut terletak disebelah kirinya.. Dan elemen yang lain yang lebih besar dari pada pivot tersebut terletak disebelah kanannya..
Sehingga dengan demikian telah terbentuk dua sublist, yang terletak disebelah kiri dan kanan pivot.. Lalu pada sublist kiri dan kanan kita anggap sebuah list baru dan kita kerjakan proses yang sama seperti sebelumnya. Demikian seterusnya sampai tidak terdapat sublist lagi. Sehingga di dalamnya telah terjadi proses rekursif..
Nah lho? Ngerti gG..? Hehee.. Gini deh..
Q kasi'in contohnya aj.. Sapa tau lebih jelas..
Misalnya.. Kita punya data belum terurut seperti di bawah ini..
22 10 15 3 8 2
Nah, ceritanya kita bakal ngurut'in nie data secara ascending dengan Quick Sort..
Langkah 1
Pivot terletak di tengah2 data tersebut
jumlah data di atas brapa? 6 kan? nah.. Jadi pivotnya terletak di elemen ke-3..
Pivot = 15..
Sekarang untuk dua sublistnya aku kasi nama deh.. Yang tugas ngecek disebelah kiri aku kasi' nama Mr. A truz yang tugas ngecek disebelah kanan aku kasi' nama Mr. B..
Inget.. Dari penjelasan tadi, sublist yang di kiri musti lebih kecil dari pivot truz sublist yang di kanan musti lebih besar dari pivot..
Mr.A<-----
22 10 | 15 |3 8 2
----->Mr.B
Mr.A berhenti di elemen pertama, karena dia menemukan angka 22 lebih besar dari pivot (15)..
Dan J berhenti di elemen ke 6, karena dia menemukan angka 2 lebih kecil dari pivot (15)..
Maka program akan menukar posisi di elemen pertama dengan elemen keenam.. Artinya posisi 22 ditukar dengan 2.. Jadi urutannya sekarang..
2 10 15 3 8 22
Langkah 2
Mr.A<----
2 10 | 15 | 3 8 22
------>Mr.B
Mr A berhenti di elemen ketiga, karena dia menemukan angka 15 lebih besar/sama dengan pivot (15).. eNd Mr.B berhenti di elemen ke 5, karena dia nemu'in elemen yang lebih kecil dari pivot(15)..
program nuker lagi nie, posisinya 15, dituker dengan posisinya 8.. Jadi urutannya..
2 10 8 3 15 22
Langkah 3
Karena pivotnya yang terpindah pada langkah ke-2 tadi, sekarang program akan membentuk 2 sublist baru..
Jadi pivotnya sekarang adalah 8..
Mr.A<----
2 10 | 8 | 3 15 22
-------->Mr.B
Mr. A berhenti pada elemen ke 2, karena dia nemu'in 10 lebih besar dari pivot (8).. Truz, sie Mr.B berhenti pada elemen ke 4, karena dia nemu'in 3 yang nilainya lebih kecil dari pivot(8)..
Slanjutnya program nuker, posisi 10 dengan 3.. Maka urutannya menjadi..
2 3 8 10 15 22
FINISh.. Nah data sudah terurut secara ascending kan..
Yea, walaupun terlihat rumit tapi dalam kenyataannya, program ini sangat cepat dalam mengurutkan data dibandingkan dengan program lain..
Langganan:
Postingan (Atom)