350 likes | 773 Views
SEARCHING DAN SORTING. Jurusan Teknik Informatika Universitas Ahmad Dahlan Revisi 2004. Motivasi. Data dikumpulkan Informasi data yang sudah diolah (dicari, di-resume, …) Masalah : Menyimpan sulit, mudah pengambilannya Menyimpan mudah, sulit pengambilannya.
E N D
SEARCHING DAN SORTING Jurusan Teknik Informatika Universitas Ahmad Dahlan Revisi 2004
Motivasi • Data dikumpulkan • Informasi data yang sudah diolah (dicari, di-resume, …) • Masalah : • Menyimpan sulit, mudah pengambilannya • Menyimpan mudah, sulit pengambilannya
Pencarian Linier (Linear search) • Input : array aray dengan banyak data sebanyak ukuran. • Output : data kunci dalam array aray. • Prinsip : • setiap data pada aray akan dibandingkan dengan kunci sampai pada data yang terakhir (kasus terburuk (worst case)).
Bila pada posisi ke-i data sama dengan kunci, berarti data ditemukan pada posisi ke-i. • Bila sampai akhir data, data tidak juga ditemukan berarti kunci tidak ada pada aray.
Pencarian Biner (Binary Search) • Asumsi : data sudah dalam keadaan terurut (naik) • Contoh : • Buku telepon, presensi kuliah, dll.
Pencarian Biner (Binary Search) • kunci akan selalu dibandingkan dengan data yang berada di tengah (middle) • bila sama berarti data ketemu, bila tidak, akan “dilihat” apakah data ada di sebelah “kiri” (artinya data lebih kecil dari data di tengah) atau di sebelah “kanan” (artinya data lebih besar dari data di tengah).
Pencarian Biner (Binary Search) • Bila data ada di sebelah kiri, dilakukan pencarian dengan cara yang sama (sementara data yang berada di sebelah kanan akan diabaikan). • Jadi, setiap kali pencarian, data selalu “dibelah” menjadi dua bagian (biner), sampai pada “titik tertentu” (bila sama dengan titik tengah, pencarian tidak dilakukan lagi, bila tidak, sampai pada perbandingan terakhir data juga tidak sama, berarti data tidak ditemukan pada array aray).
Sorting (Pengurutan) • Usaha : mengurutkan dari data tak terurut menjadi data terurut perlu waktu • Masalah : efisiensi (peningkatan kecepatan pencarian) • Metode : bubble (gelembung), insertion (penyisipan), selection (pemilihan), merge (penggabungan), quick, shell, radix, dll.
Merge Sort • dikerjakan dengan cara rekursif. • Langkah dari algoritma ini adalah sebagai berikut : • barisan data dibagi menjadi 2 subbarisan • sort secara rekursif • gabung hasil langkah 2 dari 2 subbarisan yang terurut menjadi barisan yang terurut.
Quick Sort Langkah-langkahnya : • dipilih sebuah elemen, yaitu elemen pivot (p). Elemen ini akan digunakan sebagai pembanding elemen-elemen yang lain untuk disusun dengan komposisi : • lakukan hal yang sama pada elemen sebelah kiri dan elemen sebelah kanan dari p.
Bacaan • Mastering Algorithms with C • By Kyle Loudon : Chapter 12 • Tugas : Pilih salah satu : • Buat analisis dan implementasi : • Counting sort • Radix sort • Dikumpulkan sesudah kuliah minggu depan (langsung ke asisten)
Struktur Laporan Tugas • Penjelasan cara kerja algoritma • Contoh sorting (minimal 8 elemen) • Program dalam bentuk class • Penjelasan program (bila perlu per baris program !) • Uji coba program : • Input menggunakan contoh manual di atas • Output : tampilan setiap langkah perubahan