QUICKSORT: METODE PENGURUTAN ARRAY SATU DIMENSI YANG CEPAT DAN EFISIEN. (Quicksort: Quick and Efficient One-Dimension Array Sorting Method)

Ukuran: px
Mulai penontonan dengan halaman:

Download "QUICKSORT: METODE PENGURUTAN ARRAY SATU DIMENSI YANG CEPAT DAN EFISIEN. (Quicksort: Quick and Efficient One-Dimension Array Sorting Method)"

Transkripsi

1 1 QUICKSORT: METODE PENGURUTAN ARRAY SATU DIMENSI YANG CEPAT DAN EFISIEN (Quicksort: Quick and Efficient One-Dimension Array Sorting Method) Muhammad Saiful Islam Program Studi D-IV Teknik Informatika Departemen Teknik Komputer dan Informatika Politeknik Negeri Bandung Jln. Gegerkalong Hilir, Ds. Ciwaruga, Bandung Abstrak Pengurutan data sangat sering dilakukan dalam dunia komputasi. Keperluan-keperluan yang membutuhkan pengurutan data begitu banyak sehingga perlu dicari metode pengurutan data yang dapat bekerja dengan cepat dan efisien, dan Quicksort adalah salah satunya. Paper ini menunjukkan seberapa cepat dan efisien Quicksort bekerja, dan menunjukkan isu-isu penting yang muncul dalam proses implementasi Quicksort. Beberapa improvisasi pun masih dapat dilakukan untuk meningkatkan performa Quicksort, sehingga menjadikan Quicksort sebagai pilihan implementasi dari berbagai system sort yang ditemukan dalam berbagai bahasa pemrograman serta digunakan untuk menyelesaikan berbagai persoalan pengurutan data. Kata kunci: Pengurutan data, Quicksort, optimasi kode, analisis algoritma Abstract Data sorting is one of the most used routine in computation world. There are so many activities that involve data sorting. Because of that, there is a need to find data sorting method that performs quickly and efficiently, and Quicksort is one of them. This paper shows how quick and efficient Quicksort is, and shows important issues that arise in implementing Quicksort. Several improvements still also be made to improve the performance of Quicksort, thus making Quicksort as a choice in system sort implementation found in various programming language and used to solve various data sorting problems. Key words: Data sorting, Quicksort, code optimization, analysis of algorithm PENDAHULUAN Proses transaksi perbankan, pendaftaran mahasiswa, pengelolaan karyawan, dan pengumpulan nilai mahasiswa adalah contoh kecil yang menunjukkan kumpulan data yang sering dijumpai manusia dalam kehidupan sehari-hari. Kumpulan data ini sering dijumpai dalam kondisi terurut, entah itu terurut secara numerik ataupun terurut secara leksikografis (urutan kamus). Kejadian tersebut menunjukkan bahwa dalam era komputasi seperti saat ini, akan sangat sering komputer diminta melakukan pengurutan terhadap sekumpulan data. Isu pengurutan ini kemudian menjadi bahan analisis dari para akademisi dan ilmuwan untuk menciptakan metode pengurutan data yang efisien dan tangguh, sehingga dapat diandalkan untuk mengurutkan sekumpulan data yang diterima oleh komputer.

2 2 Tugas MK Dasar-dasar Pemrograman 2014/2015 DIVIDE-AND-CONQUER Suatu permasalahan yang cukup besar bisa diselesaikan dengan pendekatan divide-andconquer. Divide-and-conquer menyelesaikan masalah menggunakan metode rekursif. Pada setiap pemanggilan fungsi rekursif, ada tiga hal yang dilakukan (Cormen, et al., 2009): 1. Membagi (divide) permasalahan yang dihadapi ke dalam beberapa subproblems yang lebih kecil, namun masih mengandung permasalahan yang sama; 2. Menyelesaikan (conquer) sub-problem secara rekursif. Jika ukuran sub-problem sudah cukup untuk diselesaikan, maka lakukan penyelesaian masalah; 3. Gabungkan (combine) solusi untuk subproblems yang ada untuk mendapatkan solusi global. Jika terdapat permasalahan yang masih cukup besar untuk diselesaikan secara langsung sehingga harus diselesaikan secara rekursif, maka permasalahan itu disebut sebagai recursive case. Namun, jika permasalahan yang ada sudah cukup untuk diselesaikan secara langsung, maka permasalahan itu disebut sebagai base case. Recursive case akan terus dipecah menjadi sub-problems yang lebih kecil sehingga ditemui base case untuk menyusun solusi global. PENGURUTAN DATA Pengurutan data (atau lebih sering disebut dengan sorting) adalah proses membuat permutasi dari sekumpulan data sehingga kumpulan data tersebut berada dalam suatu urutan yang logis. Pada awal era komputasi, 30% pekerjaan yang dilakukan oleh komputer berhubungan dengan proses pengurutan data (Sedgewick & Wayne, 2011). Angka 30% ini begitu besar karena pada penggunaan komputer sehari-hari, hampir setiap operasi yang dilakukan oleh pengguna melibatkan proses pengurutan data. Ketika pengguna membuka Windows Explorer, misalnya, berkas yang ditampilkan di layar langsung terurut berdasarkan jenisnya (berkas atau folder), kemudian terurut secara bsekumpulan tweets yang terurut berdasarkan waktu penulisannya. Selain itu, pengurutan data merupakan salah satu masalah fundamental dalam suatu algoritma, dengan alasan-alasan (Cormen, et al., 2009): Ada program-program komputer yang memang memerlukan proses pengurutan data secara eksplisit karena business process-nya mengharuskan demikian. Pengurutan data memegang peranan penting dalam beberapa jenis algoritma. Contohnya, perangkat lunak yang melakukan proses graphic rendering yang memiliki beberapa layer perlu melakukan pengurutan layer-layer tersebut, sehingga rendering akan dilakukan dari layer terbawah hingga layer teratas. Beberapa teknik pemrograman dan ideide pemecahan masalah baru ditemukan ketika algoritma pengurutan data dikembangkan. Analisis suatu algoritma pengurutan data dapat dilakukan hingga muncul kesimpulan apakah algoritma pengurutan data ini optimal, baik dalam kasus terburuk maupun dalam kasus terbaik. Banyak isu yang muncul ketika implementasi suatu perangkat lunak dapat diselesaikan dengan analisis mendalam pada level desain, bukan memperbaiki kode program pada level implementasi. Beberapa algoritma pengurutan data yang dikenal dalam dunia komputasi adalah insertion sort, merge sort, heapsort, quicksort, counting sort, radix sort, dan bucket sort. QUICKSORT Algoritma Quicksort dibuat oleh C. A. R. Hoare dan merupakan salah satu metode pengurutan data yang paling efisien jika dibandingkan dengan metode yang lain (Khreisat, 2007). Algoritma ini mudah diimplementasikan, mampu diterapkan untuk hampir berbagai jenis tipe data, dan relatif bekerja lebih ringan jika dibandingkan dengan metode yang Iain. Quicksort adalah jenis algoritma divide-andconquer. Untuk mengurutkan sekelompok elemen pada array A, yang dilakukan metode ini adalah (Hoare, 1961): 1. Melakukan partisi terhadap array A, sehingga kondisi-kondisi berikut terpenuhi: a. Ada suatu nilai yang dijadikan patokan (pivot), dan nilai tersebut harus sudah berada pada posisi yang diinginkan. (Jika pivot ini adalah elemen ke-j terkecil dari array A, maka posisinya harus berada pada A[j].) b. Semua elemen dari A[1] hingga A[j-1] harus lebih kecil nilainya dibandingkan A[j], sehingga membentuk suatu sub-array.

3 Quicksort: Metode Pengurutan Array Satu Dimensi yang Cepat dan Efisien (Muhammad Saiful Islam) 3 c. Semua elemen dari A[j+1] hingga A[N] harus lebih besar nilainya dibandingkan A[j], sehingga membentuk suatu sub-array. 2. Masing-masing sub-array diurutkan dengan algoritma yang sama dengan yang dilakukan di atas. Gambar 1 menunjukkan gambaran proses partitioning yang dilakukan oleh Quicksort. Gambar 1 Gambaran proses partitioning Quicksort (Sedgewick & Wayne, 2011) Quicksort lebih unggul dari algoritmaalgoritma pengurutan data yang ada karena (Sedgewick, 1978): Quicksort memiliki performa yang baik di berbagai kondisi. Quicksort lebih sederhana dibandingkan dengan algoritma pengurutan data yang lain. Analisa matematis dan analisa bukti empiris menunjukkan bahwa Quicksort bisa diharapkan bekerja dua kali lebih cepat dibandingkan metode lain yang serupa. Quicksort cukup sederhana untuk dipelajari para programmer yang baru mempelajari pengurutan data. Karena Quicksort begitu luas dipakai di berbagai bidang komputasi, maka para ilmuwan memandang penting untuk selalu melakukan improvisasi terhadap algoritma ini. Namun sejak Hoare memublikasikan Quicksort pada 1961, tidak banyak perbaikan yang dipublikasikan selanjutnya (Sedgewick, 1978). Robert Sedgewick dari Princeton University kemudian fokus mempelajari, menganalisa, dan memperbaiki Quicksort dalam tesis dan penelitian-penelitiannya (Khreisat, 2007). Quicksort melakukan pengurutan data secara in-place (dilakukan secara langsung pada sumber data tanpa membutuhkan tempat temporer lain). Dengan sifatnya ini, Quicksort tidak membutuhkan banyak tempat tambahan untuk melakukan pengurutan data. Untuk mengurutkan N data, waktu yang dibutuhkan sebanding dengan O(N log2 N). Satu-satunya kelemahan dari algoritma ini adalah jika array yang ingin diurutkan ternyata sudah dalam kondisi terurut, nyaris terurut, atau terurut namun dalam urutan yang terbalik, maka performa Quicksort akan menurun drastis. Untuk mengurutkan N data dalam kasus ini, waktu yang dibutuhkan sebanding dengan O(N 2 ). ISU PENTING DALAM QUICKSORT Ada beberapa isu penting yang muncul dalam penerapan algoritma Quicksort (Sedgewick & Wayne, 2011). Isu-isu ini dapat menyebabkan penurunan performa atau kesalahan implementasi jika tidak diperhatikan. Proses Partisi In-place Proses partisi pada Quicksort akan sangat mudah diimplementasikan jika kedua subarray diletakkan dalam array baru, bukan diatur secara in-place. Implementasinya pada sebuah array A adalah: 1. Ambil suatu pivot pada array A. 2. Siapkan dua buah array L dan R. 3. Masukkan semua elemen pada array A yang lebih kecil dari pivot ke dalam array L. 4. Masukkan semua elemen array A yang lebih kecil dari pivot ke array L, dan semua elemen array A yang lebih besar dari pivot ke array R. 5. Urutkan array L dan R dengan algoritma yang sama secara rekursif. 6. Gabungkan array L, pivot, dan array R. Meskipun mudah diimplementasikan, teknik ini tidak disarankan karena kemudahan yang didapatkan tidak sebanding dengan extra cost yang ditimbulkan saat komputasi. Teknik ini juga menimbulkan penurunan performa, terutama jika diimplementasikan pada bahasa pemrograman Java (Sedgewick & Wayne, 2011). Jangkauan Pengurutan Jika elemen yang dijadikan pivot adalah elemen terkecil atau elemen terbesar dari array, maka algoritma yang diterapkan harus dapat memeriksa agar dua pointer yang digunakan untuk traversal dalam penyusunan sub-array pada proses partisi tidak keluar dari batas awal dan batas akhir dari array yang sedang diurutkan.

4 4 Tugas MK Dasar-dasar Pemrograman 2014/2015 Pengacakan Array Sebelum Proses Partisi Perilaku algoritma Quicksort yang akan berjalan dengan performa yang buruk dapat dicegah dengan mengacak isi array yang akan diurutkan sebelum proses partisi. Pengacakan array juga dilakukan untuk menghilangkan faktor isi array pada performa Quicksort, sehingga performa algoritma Quicksort dan varian-variannya dapat diprediksi secara matematis dan tidak banyak faktor eksternal yang akan mempengaruhi hasil akhirnya. Mengakhiri Perulangan dan Proses Rekursif Setiap perulangan harus dijamin berhenti pada suatu kondisi, dan tidak boleh berjalan tanpa henti (infinite loop). Perulangan pada proses partisi pun harus berhenti pada suatu kondisi. Hal yang perlu diperhatikan dari perulangan proses partisi adalah pemeriksaan apakah kedua pointer yang berjalan di masing-masing sub-array sudah berpapasan satu sama lain. Kesalahan umum yang terjadi dalam proses implementasi adalah luputnya pertimbangan bahwa dalam array tersebut mungkin saja ada data ganda, khususnya data yang sama dengan pivot yang digunakan. Setiap proses yang memanggil dirinya sendiri (rekursif) juga harus dijamin berhenti pada suatu kondisi, dan tidak boleh terus-terusan memanggil dirinya sendiri tanpa henti. Menangani Perilaku O(N 2 ) Ada dua pemeriksaan yang berjalan pada saat proses partisi, yaitu: Left scan, yaitu pemeriksaan elemenelemen yang tidak seharusnya berada di sebelah kiri pivot, yaitu elemen-elemen yang lebih besar dari pivot. Right scan, yaitu pemeriksaan elemenelemen yang tidak seharusnya berada di sebelah kanan pivot, yaitu elemen-elemen yang lebih kecil dari pivot. Pada kasus tertentu, misalnya, ketika semua elemen pada array memiliki nilai yang sama, maka definisi left scan dan right scan ini dapat mengakibatkan performa Quicksort menurun hingga O(N 2 ). Hal ini dapat terjadi jika pivot diambil dari elemen pertama atau terakhir, sehingga akan ada satu sub-array yang kosong. Dengan kondisi satu sub-array selalu kosong, maka pola partisi yang dilakukan akan menyerupai pola loop yang memiliki kompleksitas O(N 2 ). Perilaku O(N 2 ) ini dapat diselesaikan dengan cara mengubah definisi left scan dan right scan yang dilakukan oleh Quicksort sehingga left scan berhenti jika ditemukan elemen yang lebih besar atau sama dengan pivot, dan right scan berhenti jika ditemukan elemen yang lebih kecil atau sama dengan pivot. Cara ini terbukti mampu menangani perilaku O(N 2 ) karena elemen yang dijadikan pivot akan selalu berakhir di tengah-tengah array, sehingga akan selalu terbentuk dua sub-array (Sedgewick, 1978). Selain cara di atas, perilaku O(N 2 ) dapat dihindari dengan cara mengacak array terlebih dahulu sebelum melakukan partisi dan pengurutan (Hoare, 1962). IMPROVISASI ALGORITMA Sejak dipublikasikan oleh Hoare pada tahun 1960, banyak orang yang mempelajari dan berusaha mengembangkan Quicksort. Tidak semua ide-ide perbaikan Quicksort berjalan dengan baik, karena algoritma Hoare cukup stabil, sehingga improvisasi yang kurang baik justru dapat mengganggu stabilitas algoritma itu sendiri (Sedgewick & Wayne, 2011). Namun beberapa ide-ide perbaikan Quicksort yang terpublikasi cukup berhasil dalam meningkatkan performa Quicksort sekaligus memuaskan para akademisi secara kognitif. Secara umum, algoritma Quicksort tidak membutuhkan improvisasi berlebih jika hanya dipakai untuk program tertentu di mana data requirement-nya sudah jelas. Namun, ketika Quicksort digunakan sebagai library yang akan dipanggil berulang kali dan belum jelas karakteristik datanya, maka perlu dilakukan improvisasi untuk menjamin performa dari aplikasi yang akan menggunakan library tersebut. Kombinasi dengan Insertion Sort Hasil studi empiris maupun analisis menunjukkan Quicksort lebih lambat dibandingkan insertion sort jika digunakan untuk mengurutkan data yang kuantitasnya kecil. Selain itu, karena sifat Quicksort yang rekursif, maka proses partisi dan pengurutan data pada masing-masing sub-array akan tetap dijalankan meskipun proses tersebut dipandang oleh para akademisi sebagai proses yang boros akibat kuantitas datanya yang kecil. Fakta ini yang menjadi pemicu munculnya ide untuk mengombinasikan insertion sort dengan Quicksort. Insertion sort dilakukan pada subarray jika jumlah elemen pada sub-array tersebut adalah M, di mana nilai M bergantung pada sistem yang digunakan. Meski demikian, hasil observasi menunjukkan bahwa nilai M yang optimal rata-rata bernilai antara 5 hingga

5 Quicksort: Metode Pengurutan Array Satu Dimensi yang Cepat dan Efisien (Muhammad Saiful Islam) 5 15 (Sedgewick & Wayne, 2011). Partisi dengan Median Tiga Nilai Hasil pengamatan menunjukkan bahwa Quicksort bekerja sangat baik jika setelah proses partisi, pivot berada pada posisi yang relatif di tengah array. Nilai yang relatif berada di tengah array memiliki korelasi dengan definisi dari nilai median. Metode yang dapat digunakan dalam menentukan pivot adalah dengan mengambil sampel dari array, kemudian dicari nilai mediannya. Hasil dari nilai median yang ditemukan kemudian digunakan untuk melakukan prediksi terhadap nilai median dari keseluruhan array. Hoare sebenarnya sudah mengajukan cara ini, namun Hoare tidak menekankan implementasi ini karena peningkatan performa yang dilakukan sangat sulit untuk dianalisa dan diprediksi (Hoare, 1962). Analisis Sedgewick menunjukkan bahwa peningkatan performa maksimal dapat ditempuh jika nilai median ditentukan dari tiga elemen saja (Sedgewick, 1978). Jumlah sampel yang lebih besar akan memberikan perkiraan yang lebih baik terhadap nilai median dari array, namun peningkatan performa yang diberikan tidak signifikan karena ada cost tambahan untuk menghitung nilai median. Menangani Data Ganda Pengurutan data sering dilakukan terhadap sekelompok data yang memiliki banyak data ganda. Contohnya, mengurutkan data karyawan berdasarkan tahun lahir atau jenis kelamin. Implementasi Quicksort sebenarnya masih bekerja dalam performa yang wajar, namun kasus semacam ini memberikan peluang improvisasi untuk peningkatan performa. Contohnya, sub-array yang semua elemennya bernilai sama tidak perlu lagi diurutkan, tetapi Quicksort akan tetap melakukan partisi terhadap sub-array ini sehingga melakukan operasi yang tidak perlu. Ide yang umum digunakan untuk melakukan improvisasi pada kasus ini adalah dengan mempartisi array menjadi tiga bagian, yaitu (Sedgewick & Wayne, 2011): 1. Sub-array dengan elemen yang nilainya lebih kecil dari pivot, 2. Sub-array dengan elemen yang nilainya sama dengan pivot, 3. Sub-array dengan elemen yang nilainya lebih besar dari pivot. Pengurutan data kemudian dapat dilakukan hanya pada sub-array pertama dan ketiga secara rekursif. Gambar 2 menunjukkan bagaimana visualisasi dari ide improvisasi di atas. Ide partisi tiga bagian ini kemudian menjadi erat korelasinya dengan latihan pemrograman klasik yang dibuat oleh E. W. Djikstra, yaitu Dutch National Flag Problem, karena pola partisi yang dilakukan akan menyerupai bagaimana tiga warna pada bendera Belanda tersusun (Sedgewick & Wayne, 2011). Gambar 2 Visualisasi partisi tiga bidang untuk menangani data ganda (Sedgewick & Wayne, 2011)

6 6 Tugas MK Dasar-dasar Pemrograman 2014/2015 Mengurangi Kedalaman Rekursi Karena Quicksort adalah algoritma rekursif, maka perlu diperhatikan bahwa operasi rekursif yang dilakukan oleh Quicksort akan membutuhkan resource untuk menampung kedalaman dari rekursi yang dilakukan. Untuk menghindari rekursi yang terlalu dalam, maka pemanggilan rekursif untuk mengurutkan dua sub-array dapat dilakukan dengan cara mengurutkan sub-array dengan jumlah elemen yang lebih kecil terlebih dahulu. Dengan cara ini kedalaman rekursif maksimal untuk mengurutkan N buah elemen adalah log2 N (Hoare, 1962). Untuk mengimplementasikan cara ini, harus dipertimbangkan juga bahwa tidak semua bahasa pemrograman dapat mengerti bahwa resource yang digunakan pada pemanggilan rekursif sub-array pertama harus dibebaskan terlebih dahulu sebelum pemanggilan rekursif sub-array kedua, agar nilai log2 N tercapai. APLIKASI Salah satu alasan utama kenapa pengurutan data begitu penting dan sering digunakan dalam dunia komputasi adalah karena mencari data dalam sekelompok data terurut lebih mudah daripada mencari data dalam sekelompok data yang tidak terurut. Sebagai contoh, buku kuning Yellow Pages yang beredar luas pada tahun 2000-an menampilkan daftar nomor telepon terurut berdasarkan nama, sehingga pengguna buku dapat mencari nama yang ingin dihubungi dengan cepat. Di era komputasi modern, sebagian kecil implementasi pengurutan data yang ditemukan dalam kehidupan sehari-hari adalah aplikasi pemutar musik mengurutkan daftar lagu berdasarkan album atau nama penyanyinya; mesin pencari menampilkan hasil pencarian terurut berdasarkan relevansi dengan kata kunci yang diberikan; aplikasi spreadsheet menampilkan data terurut berdasarkan kolom tertentu; dan masih banyak lagi implementasi pengurutan data yang ditemukan sehari-hari. Keperluan lain pun menjadi lebih mudah dilakukan jika sekelompok data yang digunakan sudah dalam kondisi terurut, misalnya mencari kata kunci tertentu dari suatu index di bagian belakang buku; menghapus data ganda dari suatu daftar website atau mailing list; atau komputasi statistik seperti mencari nilai median atau menghitung persentil. Pengurutan data juga digunakan dalam kasus-kasus penting yang kelihatannya tidak berkaitan dengan pengurutan data. Contohnya, kompresi data, proses render grafis, komputasi biologi, atau voting dalam pemilihan opsi tertentu. PENUTUP Paper ini menunjukkan seberapa cepat dan efisien Quicksort sehingga digunakan untuk menyelesaikan berbagai permasalahan pengurutan data. Quicksort juga termasuk algoritma yang menarik, di mana Hoare berhasil mencapai performa dan tingkat efisiensi yang mengagumkan dengan algoritma yang elegan dan cantik. Mengagumkan juga jika kita melihat bahwa dari penemuan Hoare ini muncul banyak akademisi yang mampu mengembangkan algoritma cantik ini dan menemukan isu-isu dalam pengembangan sistem yang perlu diwaspadai oleh para praktisi ataupun ilmuwan computer science. Perlu diperhatikan bahwa isu-isu dan improvisasi yang dibahas dalam paper ini sangat bergantung pada situasi dan kondisi. Isu-isu ekonomis yang terkait dengan komputasi modern masih sangat beragam dan kompleks, sehingga kita tidak dapat menentukan secara definitif metode pengurutan data yang dapat digunakan dalam berbagai kondisi. Metode asli Quicksort yang dibuat oleh Hoare bekerja dengan baik untuk aplikasi-aplikasi sederhana tanpa perlu menambahkan improvisasi di sana-sini. Meski demikian, pengurutan data adalah salah satu pekerjaan yang paling sering digunakan, sehingga mayoritas aplikasi komputer menggunakan program kecil (utility) tertentu untuk mengurutkan data. Dalam kasus ini, berbagai improvisasi serta ketelitian dalam mengukur kasus-kasus ekstrim sangat diperlukan dalam proses implementasi, sehingga performa yang dicapai meningkat dan tidak mengganggu performa aplikasi secara keseluruhan. DAFTAR PUSTAKA Cormen, T. H., Leiserson, C. E., Rivest, R. L. & Stein, C., Introduction to Algorithms. 3 rd ed. Cambridge: The MIT Press. Hoare, C. A. R., Algorithm 64: Quicksort. Communications of the ACM, 4(7), p Hoare, C. A. R., Quicksort. The Computer Journal, 5(1), pp Khreisat, L., Quicksort: A Historical Perspective and Empirical Study. IJCSNS International Journal of Computer Science and Network Security, 7(12), pp

7 Quicksort: Metode Pengurutan Array Satu Dimensi yang Cepat dan Efisien (Muhammad Saiful Islam) 7 Sedgewick, R., Implementing Quicksort programs. Communications of the ACM, 21(10), pp Sedgewick, R. & Wayne, K., Algorithms. 4 th ed. Boston: Pearson Education, Inc.

BAB I PENDAHULUAN Latar Belakang

BAB I PENDAHULUAN Latar Belakang 1 BAB I PENDAHULUAN 1.1. Latar Belakang Teknologi informasi sudah berkembang sangat pesat pada masa ini. Pencarian informasi yang berjumlah besar dalam waktu yang singkat sangat dibutuhkan sebagai upaya

Lebih terperinci

ANALISIS PERBANDINGAN ALGORITMA BUBBLE SORT, MERGE SORT, DAN QUICK SORT DALAM PROSES PENGURUTAN KOMBINASI ANGKA DAN HURUF

ANALISIS PERBANDINGAN ALGORITMA BUBBLE SORT, MERGE SORT, DAN QUICK SORT DALAM PROSES PENGURUTAN KOMBINASI ANGKA DAN HURUF ANALISIS PERBANDINGAN ALGORITMA BUBBLE SORT, MERGE SORT, DAN QUICK SORT DALAM PROSES PENGURUTAN KOMBINASI ANGKA DAN HURUF Anisya Sonita 1, Febrian Nurtaneo 2 1,2 Program Studi Informatika, Fakultas Teknik,

Lebih terperinci

Analisis Kompleksitas Waktu Untuk Beberapa Algoritma Pengurutan

Analisis Kompleksitas Waktu Untuk Beberapa Algoritma Pengurutan Analisis Kompleksitas Waktu Untuk Beberapa Algoritma Pengurutan Dibi Khairurrazi Budiarsyah, 13509013 1 Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung,

Lebih terperinci

Sorting Algorithms. Divide and Conquer

Sorting Algorithms. Divide and Conquer 1. Insertion 2. Selection 3. Bubble 4. Shell 5. Quick 6. Sorting Algorithms 1 Divide and Conquer Metode Divide and Conquer, setiap kali memecah persoalan menjadi setengahnya, namun menggunakan hasil dari

Lebih terperinci

Sorting Algorithms. Algoritma dan Struktur Data. Sorting algorithms

Sorting Algorithms. Algoritma dan Struktur Data. Sorting algorithms 1. Insertion 2. Selection 3. Bubble 4. Shell 5. Quick 6. Merge Sorting Algorithms Sorting algorithms Metode Insertion, selection dan bubble sort memiliki worst-case performance yang bernilai quadratik

Lebih terperinci

Quick Sort dan Merge Sort. Arna Fariza Yuliana Setiowati

Quick Sort dan Merge Sort. Arna Fariza Yuliana Setiowati Quick Sort dan Merge Sort Arna Fariza Yuliana Setiowati Ide Quicksort Tentukan pivot. Bagi Data menjadi 2 Bagian yaitu Data kurang dari dan Data lebih besar dari pivot. Urutkan tiap bagian tersebut secara

Lebih terperinci

Komparasi Algoritma Quicksort dan Bucket Sort pada Pengurutan Data Integer Dengan Menggunakan Bahasa Pemrograman Java, C++ dan VB.

Komparasi Algoritma Quicksort dan Bucket Sort pada Pengurutan Data Integer Dengan Menggunakan Bahasa Pemrograman Java, C++ dan VB. Komparasi Algoritma Quicksort dan Bucket Sort pada Pengurutan Data Integer Dengan Menggunakan Bahasa Pemrograman Java, C++ dan VB.net Afri Yudha (14002005) Program Pascasarjana Magister Ilmu Komputer,STMIK

Lebih terperinci

Komparasi Algoritma Quicksort dan Bucket Sort pada Pengurutan Data Integer

Komparasi Algoritma Quicksort dan Bucket Sort pada Pengurutan Data Integer Komparasi Algoritma Quicksort dan Bucket Sort pada Pengurutan Data Integer Audy Program Studi Teknik Informatika, Universitas Multimedia Nusantara, Tangerang, Indonesia audytanudjaja@gmail.com Diterima

Lebih terperinci

STRATEGI DIVIDE AND CONQUER

STRATEGI DIVIDE AND CONQUER Pemrogram bertanggung jawab atas implementasi solusi. Pembuatan program akan menjadi lebih sederhana jika masalah dapat dipecah menjadi sub masalah - sub masalah yang dapat dikelola. Penyelesaian masalah

Lebih terperinci

Analisis Kecepatan Sorting Dengan Notasi Big O

Analisis Kecepatan Sorting Dengan Notasi Big O Analisis Kecepatan Sorting Dengan Notasi Big O Rama Aulia NIM : 13506023 Program Studi Teknik Informatika, Institut Teknologi Bandung Jl. Ganesha 10, Bandung E-mail : ramaaulia@yahoo.co.id Abstrak Sorting

Lebih terperinci

Studi Mengenai Perbandingan Sorting Algorithmics Dalam Pemrograman dan Kompleksitasnya

Studi Mengenai Perbandingan Sorting Algorithmics Dalam Pemrograman dan Kompleksitasnya Studi Mengenai Perbandingan Sorting Algorithmics Dalam Pemrograman dan Kompleksitasnya Ronny - 13506092 Jurusan Teknik Informatika Institut Teknologi Bandung Email : if16092@students.if.itb.ac.id 1. Abstract

Lebih terperinci

Outline STRUKTUR DATA. VII. Sorting

Outline STRUKTUR DATA. VII. Sorting STRUKTUR DATA VII. Sorting 1 Outline Beberapa algoritma untuk melakukan sorting: Bubble sort Selection sort Insertion sort Shell sort Merge sort Quick sort Untuk masing-masing algoritma: Ide dasar Contoh

Lebih terperinci

Penerapan Algoritma Bucket Sort Untuk melakukan Pengurutan n buah Bilangan Mata Kuliah Pemrosesan Paralel

Penerapan Algoritma Bucket Sort Untuk melakukan Pengurutan n buah Bilangan Mata Kuliah Pemrosesan Paralel Penerapan Algoritma Bucket Sort Untuk melakukan Pengurutan n buah Bilangan Mata Kuliah Pemrosesan Paralel OLEH : SUPRIYANTO (G651090191) OKE HENDRADHY (G651090101) KAMALUDDIN MAHFUDZ (G651090231) DEPARTEMEN

Lebih terperinci

TELAAH WAKTU EKSEKUSI PROGRAM TERHADAP KOMPLEKSITAS WAKTU ALGORITMA BRUTE FORCE DAN DIVIDE AND CONQUER DALAM PENYELESAIAN OPERASI LIST

TELAAH WAKTU EKSEKUSI PROGRAM TERHADAP KOMPLEKSITAS WAKTU ALGORITMA BRUTE FORCE DAN DIVIDE AND CONQUER DALAM PENYELESAIAN OPERASI LIST TELAAH WAKTU EKSEKUSI PROGRAM TERHADAP KOMPLEKSITAS WAKTU ALGORITMA BRUTE FORCE DAN DIVIDE AND CONQUER DALAM PENYELESAIAN OPERASI LIST Andhika Hendra Estrada S. Sekolah Teknik Elektro dan Informatika INSTITUT

Lebih terperinci

BAB 1 PENDAHULUAN. Universitas Sumatera Utara

BAB 1 PENDAHULUAN. Universitas Sumatera Utara 1 BAB 1 PENDAHULUAN 1.1 Latar Belakang Pencarian sebuah dokumen akan lebih cepat apabila informasi mengenai dokumen yang dicari tersebut telah diurutkan terlebih dahulu daripada saat kita akan mencari

Lebih terperinci

SORTING DENGAN ALGORITMA DIVIDE AND CONQUER

SORTING DENGAN ALGORITMA DIVIDE AND CONQUER SORTING DENGAN ALGORITMA DIVIDE AND CONQUER Ibnu Alam (13506024) Teknik Informatika Institut Teknologi Bandung Jalan Ganesha 10 if16024@students.if.itb.ac.id ABSTRAK Kemangkusan program adalah salah satu

Lebih terperinci

Sorting. Selection Sort. Straight insertion Sort. Merge Sort Paradigma Divide-and-Conquer. Quicksort

Sorting. Selection Sort. Straight insertion Sort. Merge Sort Paradigma Divide-and-Conquer. Quicksort Sorting Selection Sort Straight insertion Sort Merge Sort Paradigma Divide-and-Conquer Quicksort Paradigma Divide-and-Conquer Algoritma pengurutan adalah algoritma untuk meletakkan kumpulan elemen data

Lebih terperinci

Pengertian Algoritma Pengurutan

Pengertian Algoritma Pengurutan SORTING Pengertian Algoritma Pengurutan (sorting) Dalam ilmu komputer, algoritma pengurutan adalah algoritma yang meletakkan elemen-elemen suatu kumpulan data dalam urutan tertentu. Atau proses pengurutan

Lebih terperinci

Perbandingan Algoritma Pengurutan Merge Sort, Quick Sort dan Heap Sort Dilihat dari Kompleksitasnya

Perbandingan Algoritma Pengurutan Merge Sort, Quick Sort dan Heap Sort Dilihat dari Kompleksitasnya Perbandingan Algoritma Pengurutan Merge Sort, Quick Sort dan Heap Sort Dilihat dari Kompleksitasnya Made Edwin Wira Putra (13508010) Program Studi Teknik Informatika, Sekolah Teknik Elektro dan Informatika,

Lebih terperinci

Modul Praktikum 6 Pemograman Berorientasi Objek

Modul Praktikum 6 Pemograman Berorientasi Objek Modul Praktikum 6 Pemograman Berorientasi Objek 1. Judul : Algoritma Sorting 2. Tujuan Percobaan : Diakhir praktikum, mahasiswa diharapkan mampu : Memahami dan menjelaskan algoritma dari insertion sort,

Lebih terperinci

Perbandingan Algoritma Pencarian Kunci di dalam Himpunan Terurut Melalui Linear Search dan Binary Search

Perbandingan Algoritma Pencarian Kunci di dalam Himpunan Terurut Melalui Linear Search dan Binary Search Perbandingan Algoritma Pencarian Kunci di dalam Himpunan Terurut Melalui Linear Search dan Binary Search Biolardi Yoshogi (13509035) Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika

Lebih terperinci

Algoritma Heap Sort. Sekolah Teknik Elektro & Informatika Departemen Teknik Informatika, Institut Teknologi Bandung Jl. Ganesha 10, Bandung

Algoritma Heap Sort. Sekolah Teknik Elektro & Informatika Departemen Teknik Informatika, Institut Teknologi Bandung Jl. Ganesha 10, Bandung Algoritma Heap Sort Paul Gunawan Hariyanto 1, Dendy Duta Narendra 2, Ade Gunawan 3 Sekolah Teknik Elektro & Informatika Departemen Teknik Informatika, Institut Teknologi Bandung Jl. Ganesha 10, Bandung

Lebih terperinci

SORTING (BAGIAN II) Proses kelima

SORTING (BAGIAN II) Proses kelima SORTING (BAGIAN II) I. INSERTION SORT Mirip dengan cara orang mengurutkan kartu, selembar demi selembar kartu diambil dan disisipkan (insert) ke tempat yang seharusnya. Pengurutan dimulai dari data ke-2

Lebih terperinci

Design and Analysis Algorithm. Ahmad Afif Supianto, S.Si., M.Kom. Pertemuan 07

Design and Analysis Algorithm. Ahmad Afif Supianto, S.Si., M.Kom. Pertemuan 07 Design and Analysis Algorithm Ahmad Afif Supianto, S.Si., M.Kom Pertemuan 07 Contents 31 2 3 4 35 Divide and Conguer MinMax Problem Closest Pair Sorting Problem Perpangkatan 2 Algoritma divide and conquer

Lebih terperinci

STRUKTUR DATA. Nama : Sulfikar Npm : STMIK Handayani Makassar

STRUKTUR DATA. Nama : Sulfikar Npm : STMIK Handayani Makassar STRUKTUR DATA Nama : Sulfikar Npm : 2013020076 STMIK Handayani Makassar Pengertian Quick Sort Algoritma sortir yang efisien yang ditulis oleh C.A.R. Hoare pada 1962. Dasar strateginya adalah memecah dan

Lebih terperinci

Sorting. Struktur Data dan Algoritma. Suryana Setiawan, Ruli Manurung & Ade Azurat (acknowledgments: Denny) Fasilkom UI

Sorting. Struktur Data dan Algoritma. Suryana Setiawan, Ruli Manurung & Ade Azurat (acknowledgments: Denny) Fasilkom UI Struktur Data dan Algoritma Sorting Suryana Setiawan, Ruli Manurung & Ade Azurat (acknowledgments: Denny) Fasilkom UI SUR HMM AA Fasilkom UI - IKI20100/ IKI80110P 2009/2010 Ganjil Minggu 5 Outline Beberapa

Lebih terperinci

Multithreading untuk Algoritma Divide and Conquer

Multithreading untuk Algoritma Divide and Conquer Multithreading untuk Algoritma Divide and Conquer Novan Parmonangan Simanjuntak(13509034) Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung, Jl. Ganesha

Lebih terperinci

Bab Tujuan. 6.2 Insertion Sort

Bab Tujuan. 6.2 Insertion Sort Bab 6 Algoritma Sorting 6.1 Tujuan Sorting adalah proses menyusun elemen elemen dengan tata urut tertentu dan proses tersebut terimplementasi dalam bermacam aplikasi. Kita ambil contoh pada aplikasi perbankan.

Lebih terperinci

Kompleksitas Algoritma Sorting yang Populer Dipakai

Kompleksitas Algoritma Sorting yang Populer Dipakai Kompleksitas Algoritma Sorting yang Populer Dipakai Wahyu Fahmy Wisudawan 1) 1) Program Studi Teknik Informatika ITB, Bandung 40135, email: mailto:al_izzatusysyifa@students.itb.ac.id Abstract Makalah ini

Lebih terperinci

PENERAPAN TEORI GRAF UNTUK MENYELESAIKAN MASALAH MINIMUM SPANNING TREE (MST) MENGGUNAKAN ALGORITMA KRUSKAL

PENERAPAN TEORI GRAF UNTUK MENYELESAIKAN MASALAH MINIMUM SPANNING TREE (MST) MENGGUNAKAN ALGORITMA KRUSKAL PENERAPAN TEORI GRAF UNTUK MENYELESAIKAN MASALAH MINIMUM SPANNING TREE (MST) MENGGUNAKAN ALGORITMA KRUSKAL Swaditya Rizki Program Studi Pendidikan Matematika, Fakultas Keguruan dan Ilmu Pendidikan, Universitas

Lebih terperinci

Kompleksitas Algoritma Dalam Algoritma Pengurutan

Kompleksitas Algoritma Dalam Algoritma Pengurutan Kompleksitas Algoritma Dalam Algoritma Pengurutan Rio Cahya Dwiyanto Jurusan Teknik Informatika ITB, Bandung, email: kasrut_desu@yahoo.co.id Abstract Makalah ini membahas tetang beberapa algoritma, terutama

Lebih terperinci

Solusi UTS Stima. Alternatif 1 strategi:

Solusi UTS Stima. Alternatif 1 strategi: Solusi UTS Stima 1. a. (Nilai 5) Representasikanlah gambar kota di atas menjadi sebuah graf, dengan simpul merepresentasikan rumah, dan bobot sisi merepresentasikan jumlah paving block yang dibutuhkan.

Lebih terperinci

ANALISIS PERBANDINGAN METODE ALGORITMA QUICK SORT DAN MERGE SORT DALAM PENGURUTAN DATA TERHADAP JUMLAH LANGKAH DAN WAKTU

ANALISIS PERBANDINGAN METODE ALGORITMA QUICK SORT DAN MERGE SORT DALAM PENGURUTAN DATA TERHADAP JUMLAH LANGKAH DAN WAKTU ANALISIS PERBANDINGAN METODE ALGORITMA QUICK SORT DAN MERGE SORT DALAM PENGURUTAN DATA TERHADAP JUMLAH LANGKAH DAN WAKTU Yolanda Y.P Rumapea Prodi Sistem Informasi, Universitas Methodist Indonesia Jl.

Lebih terperinci

Heap Tree dan Kegunaannya dalam Heap Sort

Heap Tree dan Kegunaannya dalam Heap Sort Heap Tree dan Kegunaannya dalam Heap Sort Efendy Chalikdjen 1, Hermanto Ong 2, Satria Putra Sajuthi 3 Laboratorium Ilmu dan Rekayasa Komputasi Departemen Teknik Informatika, Institut Teknologi Bandung

Lebih terperinci

Pohon Biner Sebagai Struktur Data Heap dan Aplikasinya

Pohon Biner Sebagai Struktur Data Heap dan Aplikasinya Pohon Biner Sebagai Struktur Data Heap dan Aplikasinya Muhammad Adinata/13509022 Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung, Jl. Ganesha 10 Bandung

Lebih terperinci

Perbandingan Performa Kombinasi Algoritma Pengurutan Quick-Insertion Sort dan Merge-Insertion Sort

Perbandingan Performa Kombinasi Algoritma Pengurutan Quick-Insertion Sort dan Merge-Insertion Sort Perbandingan Performa Kombinasi Algoritma Pengurutan Quick-Insertion Sort dan Merge-Insertion Sort Muhammad Ezar Al Rivan Teknik Informatika STMIK GI MDP Palembang, Indonesia meedzhar@mdp.ac.id Abstrak

Lebih terperinci

Perbandingan Performa Algoritma Greedy dan Dynamic Programming

Perbandingan Performa Algoritma Greedy dan Dynamic Programming Perbandingan Performa Algoritma dan Pratamamia Agung Prihatmaja (NIM 13515142) Program Studi Teknik Informatikan Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung, Jl. Ganesha No. 10 Bandung

Lebih terperinci

ANALISIS ALGORITMA QUICKSORT

ANALISIS ALGORITMA QUICKSORT ANALISIS ALGORITMA QUICKSORT Tugas Desain dan Analisis Algoritma Nama: Maykada Harjono K --- NPM: 0706193366 Fakultas Ilmu Komputer, Universitas Indonesia ANALISIS ALGORITMA QUICKSORT 1 1. Pendahuluan

Lebih terperinci

Decrease and Conquer

Decrease and Conquer Decrease and Conquer Bahan Kuliah IF2211 Strategi Algoritma Oleh: Rinaldi Munir Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika ITB 1 Decrease and conquer: metode desain algoritma

Lebih terperinci

PENGGUNAAN ALGORITMA DIVIDE AND CONQUER UNTUK OPTIMASI KONVERSI BILANGAN DESIMAL KE BINER

PENGGUNAAN ALGORITMA DIVIDE AND CONQUER UNTUK OPTIMASI KONVERSI BILANGAN DESIMAL KE BINER PENGGUNAAN ALGORITMA DIVIDE AND CONQUER UNTUK OPTIMASI KONVERSI BILANGAN DESIMAL KE BINER Danang Arief Setyawan NIM : 3559 Program Studi Teknik Informatika Institut Teknologi Bandung e-mail: das_centauri@yahoo.com

Lebih terperinci

Gambar 13.1 Ilustrasi proses algoritma sorting

Gambar 13.1 Ilustrasi proses algoritma sorting MODUL 13 SORTING 13.1 Kompetensi 1. Mahasiswa mampu menjelaskan mengenai algoritma sorting. 2. Mahasiswa mampu membuat dan mendeklarasikan struktur algoritma sorting. 3. Mahasiswa mampu menerapkan dan

Lebih terperinci

Analisa Kompleksitas Algoritma. Sunu Wibirama

Analisa Kompleksitas Algoritma. Sunu Wibirama Analisa Kompleksitas Algoritma Sunu Wibirama Referensi Cormen, T.H., Leiserson, C.E., Rivest, R.L., Stein, C., Introduction to Algorithms 2nd Edition, Massachusetts: MIT Press, 2002 Sedgewick, R., Algorithms

Lebih terperinci

Analisis Algoritma. Jimmy Tirtawangsa. Universitas Telkom 2014

Analisis Algoritma. Jimmy Tirtawangsa. Universitas Telkom 2014 Analisis Algoritma Jimmy Tirtawangsa Universitas Telkom 2014 Daftar Isi (1) Motivasi (2) Kompleksitas dan Optimalitas (3) Struktur data (4) Teknik 2 analisis algoritma (5) Struktur graf (6) Problem Sulit/Intraktabel

Lebih terperinci

Algoritma Bubble Sort dan Quick Sort

Algoritma Bubble Sort dan Quick Sort Algoritma Bubble Sort dan Quick Sort Pengertian/Konsep Buble Sort Metode pengurutan gelembung (Bubble Sort) diinspirasikan oleh gelembung sabun yang berada dipermukaan air. Karena berat jenis gelembung

Lebih terperinci

PROGRAM STUDI S1 SISTEM KOMPUTER UNIVERSITAS DIPONEGORO. Oky Dwi Nurhayati, ST, MT

PROGRAM STUDI S1 SISTEM KOMPUTER UNIVERSITAS DIPONEGORO. Oky Dwi Nurhayati, ST, MT PROGRAM STUDI S SISTEM KOMPUTER UNIVERSITAS DIPONEGORO Oky Dwi Nurhayati, ST, MT email: okydn@undip.ac.id Sorting = pengurutan Sorted = terurut menurut kaidah/aturan tertentu Data pada umumnya disajikan

Lebih terperinci

Perbandingan Kecepatan/Waktu Komputasi Beberapa Algoritma Pengurutan (Sorting)

Perbandingan Kecepatan/Waktu Komputasi Beberapa Algoritma Pengurutan (Sorting) Perbandingan Kecepatan/Waktu Komputasi Beberapa Algoritma Pengurutan (Sorting) Indrayana 1, Muhamad Ihsan Fauzi 2 Laboratorium Ilmu dan Rekayasa Komputasi Departemen Teknik Informatika, Institut Teknologi

Lebih terperinci

Kompleksitas Algoritma Pengurutan Selection Sort dan Insertion Sort

Kompleksitas Algoritma Pengurutan Selection Sort dan Insertion Sort Kompleksitas Algoritma Pengurutan Selection Sort dan Insertion Sort Setia Negara B. Tjaru (13508054) Program Studi Teknik Informatika ITB Bandung e-mail: if18054@students.if.itb.ac.id ABSTRAK Makalah ini

Lebih terperinci

STRUKTUR DATA SORTING ARRAY

STRUKTUR DATA SORTING ARRAY STRUKTUR DATA SORTING ARRAY Sorting Pengurutan data dalam struktur data sangat penting untuk data yang beripe data numerik ataupun karakter. Pengurutan dapat dilakukan secara ascending (urut naik) dan

Lebih terperinci

APLIKASI PERENCANA BELANJA DENGAN PENGURUTAN SKALA PRIORITAS BERBASIS ANDROID

APLIKASI PERENCANA BELANJA DENGAN PENGURUTAN SKALA PRIORITAS BERBASIS ANDROID 44 Vol. 11 No. 1 Februari 2016 Jurnal Informatika Mulawarman APLIKASI PERENCANA BELANJA DENGAN PENGURUTAN SKALA PRIORITAS BERBASIS ANDROID Barry Nuqoba 1), Faried Effendy 2), 1,2) Departemen Matematika,

Lebih terperinci

ALGORITMA PENGURUTAN. Oleh : S. Thya Safitri, MT

ALGORITMA PENGURUTAN. Oleh : S. Thya Safitri, MT ALGORITMA PENGURUTAN Oleh : S. Thya Safitri, MT Definisi Sorting merupakan suatu proses untuk menyusun kembali himpunan obyek menggunakan aturan tertentu. Sorting disebut juga sebagai suatu algoritma untuk

Lebih terperinci

Implementasi Metode Jumlah Riemann untuk Mendekati Luas Daerah di Bawah Kurva Suatu Fungsi Polinom dengan Divide and Conquer

Implementasi Metode Jumlah Riemann untuk Mendekati Luas Daerah di Bawah Kurva Suatu Fungsi Polinom dengan Divide and Conquer Implementasi Metode Jumlah Riemann untuk Mendekati Luas Daerah di Bawah Kurva Suatu Fungsi Polinom dengan Divide and Conquer Dewita Sonya Tarabunga - 13515021 Program Studi Tenik Informatika Sekolah Teknik

Lebih terperinci

Pengelompokan Organisme Dengan Menggunakan Algoritma Kruskal

Pengelompokan Organisme Dengan Menggunakan Algoritma Kruskal Pengelompokan Organisme Dengan Menggunakan Algoritma Kruskal Alif Raditya Rochman - 151101 Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung, Jl. Ganesha

Lebih terperinci

Langkah Awal menuju Analisis Kompleksitas Algoritma

Langkah Awal menuju Analisis Kompleksitas Algoritma Langkah Awal menuju Analisis Kompleksitas Algoritma Isi Proses Desain dan Analisis Algoritma Tipe-tipe Problem yang penting Kebutuhan akan algoritma yang efisien Analisis framework 2 Proses Desain dan

Lebih terperinci

Objectives. Struktur Data & Algoritme (Data Structures & Algorithms) Sort. Outline. Bubble Sort: idea. Bubble Sort. Sorting

Objectives. Struktur Data & Algoritme (Data Structures & Algorithms) Sort. Outline. Bubble Sort: idea. Bubble Sort. Sorting Struktur Data & Algoritme (Data Structures & Algorithms) Objectives Memahami beberapa algoritme sorting dan dapat menganalisa kompleksitas-nya Sorting Denny (denny@cs.ui.ac.id) Suryana Setiawan (setiawan@cs.ui.ac.id)

Lebih terperinci

Algoritma dan Struktur Data. Algoritma Pengurutan (Sorting)

Algoritma dan Struktur Data. Algoritma Pengurutan (Sorting) Algoritma dan Struktur Data Algoritma Pengurutan (Sorting) Tujuan Instruksional Memahami algoritma pengurutan Mengerti algoritma bubble, selection, insertion, merge sort Topik Algoritma pengurutan Bubble

Lebih terperinci

JURNAL TEKNOLOGI INFORMASI & PENDIDIKAN ISSN : VOL. 6 NO. 1 Maret 2013

JURNAL TEKNOLOGI INFORMASI & PENDIDIKAN ISSN : VOL. 6 NO. 1 Maret 2013 JURNAL TEKNOLOGI INFORMASI & PENDIDIKAN ISSN : 0 VOL. NO. Maret 0 PERBANDINGAN METODE BUBBLE SORT DAN INSERTION SORT TERHADAP EFISIENSI MEMORI Des Suryani ABSTRACT Sorting of data is one of the important

Lebih terperinci

Analisis Kemangkusan Algoritma Pengurutan Quicksort

Analisis Kemangkusan Algoritma Pengurutan Quicksort Analisis Kemangkusan Algoritma Pengurutan Quicksort Ahmad 13512033 Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung, Jl. Ganesha 10 Bandung 40132, Indonesia

Lebih terperinci

Analisis dan Strategi Algoritma

Analisis dan Strategi Algoritma Analisis dan Strategi Algoritma Deskripsi Mata Kuliah Konsep dasar analisis algoritma Beberapa jenis algoritma 28/02/2011 2 Standar Kompetensi Mahasiswa mampu membandingkan beberapa algoritma dan menentukan

Lebih terperinci

SILABUS MATAKULIAH. Indikator Pokok Bahasan/Materi Aktifitas Pembelajaran

SILABUS MATAKULIAH. Indikator Pokok Bahasan/Materi Aktifitas Pembelajaran SILABUS MATAKULIAH Revisi : 2 Tanggal Berlaku : September 2014 A. Identitas 1. Nama Matakuliah : A11.54508 / Strategi Algoritma 2. Program Studi : Teknik Informatika-S1 3. Fakultas : Ilmu Komputer 4. Bobot

Lebih terperinci

Penyelesaian Barisan Rekursif dengan Kompleksitas Logaritmik Menggunakan Pemangkatan Matriks

Penyelesaian Barisan Rekursif dengan Kompleksitas Logaritmik Menggunakan Pemangkatan Matriks Penyelesaian Barisan Rekursif dengan Kompleksitas Logaritmik Menggunakan Pemangkatan Matriks Luqman Arifin Siswanto - 13513024 Program Sarjana Informatika Sekolah Teknik Elektro dan Informatika Institut

Lebih terperinci

Algoritma Sorting. Ahmad Kamsyakawuni, S.Si, M.Kom. Jurusan Matematika Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Jember

Algoritma Sorting. Ahmad Kamsyakawuni, S.Si, M.Kom. Jurusan Matematika Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Jember Algoritma Sorting Jurusan Matematika Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Jember - 2016 Pengurutan (Sorting) Pengurutan data sangat penting untuk data yang beripe data numerik ataupun

Lebih terperinci

MENYIGI PENGGUNAAN METODE SHELLSORT DALAM PENGURUTAN DATA

MENYIGI PENGGUNAAN METODE SHELLSORT DALAM PENGURUTAN DATA MENYIGI PENGGUNAAN METODE SHELLSORT DALAM PENGURUTAN DATA Edhy Sutanta Jurusan Teknik Informatika, Fakultas Teknologi Industri, Institut Sains & Teknologi AKPRIND Yogyakarta Jl. Kalisahak 28, Komplek Balapan,

Lebih terperinci

APLIKASI PENERJEMAH KALIMAT BAHASA INDONESIA KE BAHASA SIMALUNGUN DENGAN ALGORITMA BERRY - RAVINDRAN

APLIKASI PENERJEMAH KALIMAT BAHASA INDONESIA KE BAHASA SIMALUNGUN DENGAN ALGORITMA BERRY - RAVINDRAN APLIKASI PENERJEMAH KALIMAT BAHASA INDONESIA KE BAHASA SIMALUNGUN DENGAN ALGORITMA BERRY - RAVINDRAN Saut Dohot Siregar 1*, Mawaddah Harahap 2, Yohana Marbun 3 1,2,3 Program Studi Teknik Informatika, Fakultas

Lebih terperinci

Perbandingan Algoritma Brute Force, Divide and conquer, dan Dynamic Programming untuk Solusi Maximum Subarray Problem

Perbandingan Algoritma Brute Force, Divide and conquer, dan Dynamic Programming untuk Solusi Maximum Subarray Problem Perbandingan Algoritma Brute Force, Divide and conquer, dan Dynamic Programming untuk Solusi Maximum Subarray Problem Reinhard Denis Najogie - 13509097 Program Studi Teknik Informatika Sekolah Teknik Elektro

Lebih terperinci

Variasi Pohon Pencarian Biner Seimbang

Variasi Pohon Pencarian Biner Seimbang Variasi Pohon Pencarian Biner Seimbang Tony 13516010 Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung, Jl. Ganesha 10 Bandung 40132, Indonesia buddy90_lost@yahoo.co.id

Lebih terperinci

EVALUASI KINERJA ALGORITMA PERKALIAN MATRIKS BERANTAI DENGAN TEKNIK DYNAMIC PROGRAMMING

EVALUASI KINERJA ALGORITMA PERKALIAN MATRIKS BERANTAI DENGAN TEKNIK DYNAMIC PROGRAMMING EVALUASI KINERJA ALGORITMA PERKALIAN MATRIKS BERANTAI DENGAN TEKNIK DYNAMIC PROGRAMMING Farah Virnawati 1, Juwita Utami Putri 2, Ernastuti 3 1,2,3 Program Studi Teknik Informatika, Universitas Gunadarma

Lebih terperinci

Algoritma Sorting (Selection Insertion)

Algoritma Sorting (Selection Insertion) Algoritma Sorting (Selection Insertion) Algoritma Insertion Sort Dengan Algoritma Insertion bagian kiri array terurut sampai seluruh array Misal pada data array ke-k, data tersebut akan disisipkan pada

Lebih terperinci

Pencarian Jalan untuk Menghasilkan Skor Tertinggi pada Permainan Voracity

Pencarian Jalan untuk Menghasilkan Skor Tertinggi pada Permainan Voracity Pencarian Jalan untuk Menghasilkan Skor Tertinggi pada Permainan Voracity Okaswara Perkasa (13510051) Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung,

Lebih terperinci

Algoritma Divide and Conquer

Algoritma Divide and Conquer Algoritma Algoritma divide and conquer sudah lama diperkenalkan sebagai sumber dari pengendalian proses paralel, karena masalah-masalah yang terjadi dapat diatasi secara independen. Banyak arsitektur dan

Lebih terperinci

Perancangan Website Ujian. Teknik Elektro UNDIP Berbasis HTML

Perancangan Website Ujian. Teknik Elektro UNDIP Berbasis HTML TUGAS TEKNOLOGI INFORMASI Perancangan Website Ujian Teknik Elektro UNDIP Berbasis HTML OLEH: AULIA RAHMAN 21060113120007 JURUSAN TEKNIK ELEKTRO FAKULTAS TEKNIK UNIVERSITAS DIPONEGORO SEMARANG 2014 Abstrak

Lebih terperinci

Komputasi Paralel Sebagai Alternatif Solusi Peningkatan Kinerja Komputasi

Komputasi Paralel Sebagai Alternatif Solusi Peningkatan Kinerja Komputasi Thomas Anung Basuki Komputasi Paralel Sebagai Alternatif Solusi Peningkatan Kinerja Komputasi Intisari Makalah ini membahas komputasi paralel pada jaringan komputer menggunakan PVM. Untuk memperjelas,

Lebih terperinci

APLIKASI SIMULASI PENGURUTAN DATA MENGGUNAKAN ALGORITMA HEAP SORT

APLIKASI SIMULASI PENGURUTAN DATA MENGGUNAKAN ALGORITMA HEAP SORT APLIKASI SIMULASI PENGURUTAN DATA MENGGUNAKAN ALGORITMA HEAP SORT Ardi Wijaya 1, Noris Feter 2 1,2 Program Studi Informatika, Fakultas Teknik, Universitas Muhammadiyah Bengkulu Jl. Bali PO BOX 118. Telp

Lebih terperinci

Sorting Algorithms. Definisi

Sorting Algorithms. Definisi 1. Insertion 2. Selection 3. Bubble 4. Shell 5. Quick 6. Merge Sorting Algorithms 1 Definisi Metode ini disebut juga dengan metode pertambahan menurun (diminishing increment sort). Metode ini dikembangkan

Lebih terperinci

BAB 2 LANDASAN TEORI

BAB 2 LANDASAN TEORI BAB 2 LANDASAN TEORI 2.1. Algoritma Secara informal, sebuah algoritma adalah prosedur komputasi yang didefinisikan dengan baik yang mengambil beberapa nilai, atau seperangkat nilai sebagai input dan menghasilkan

Lebih terperinci

BAB VII ALGORITMA DIVIDE AND CONQUER

BAB VII ALGORITMA DIVIDE AND CONQUER BAB VII ALGORITMA DIVIDE AND CONQUER Pemrogram bertanggung jawab atas implementasi solusi. Pembuatan program akan menjadi lebih sederhana jika masalah dapat dipecah menjadi sub masalah - sub masalah yang

Lebih terperinci

Penggunaan Metode Binary Search Pada Translator Bahasa Indonesia Bahasa Jawa

Penggunaan Metode Binary Search Pada Translator Bahasa Indonesia Bahasa Jawa Penggunaan Metode Binary Search Pada Translator Bahasa Indonesia Bahasa Jawa Dewi Martina Andayani, Mike Yuliana, Tri Budi Santoso Laboratorium Sinyal, Politeknik Elektronika Negeri Surabaya Kampus PENS-ITS,

Lebih terperinci

BAB 2 LANDASAN TEORI

BAB 2 LANDASAN TEORI 6 BAB 2 LANDASAN TEORI 2.1 Pengertian Algoritma Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis dan logis. Kata Logis merupakan kata kunci dalam Algoritma.

Lebih terperinci

2. Mahasiswa dapat membuat dan menggunakan array dan linked list dalam suatu kasus.

2. Mahasiswa dapat membuat dan menggunakan array dan linked list dalam suatu kasus. 1 ARRAY & LINKED LIST MODUL 1 Standar kompetensi: 1. Mahasiswa mengetahui perbedaan array dan linked list. 2. Mahasiswa dapat membuat dan menggunakan array dan linked list dalam suatu kasus. 3. Mahasiswa

Lebih terperinci

BAB 3 ANALISA SISTEM

BAB 3 ANALISA SISTEM BAB 3 ANALISA SISTEM Untuk merancang sebuah sistem dengan baik maka dibutuhkan analisa yang tepat agar proses desain sistem lebih terarah dan memudahkan untuk mengimplementasikan sistem. 3.1 Analisa Analisis

Lebih terperinci

Data Structure SORTING. Chapter 11. Dahlia Widhyaestoeti, S.Kom

Data Structure SORTING. Chapter 11. Dahlia Widhyaestoeti, S.Kom Data Structure Chapter SORTING Dahlia Widhyaestoeti, S.Kom Agenda Hari Ini Heap Sort Radix Sort Merge Sort Quick Sort Heap Sort Sort yang memanfaatkan Pohon Heap. Pohon Heap adalah pohon biner complete

Lebih terperinci

STRUKTUR DATA (3) sorting array. M.Cs

STRUKTUR DATA (3) sorting array. M.Cs STRUKTUR DATA (3) sorting array Oleh Antonius Rachmat C, S.Kom, M.Cs Sorting Pengurutan data dalam struktur data sangat penting untuk data yang beripe data numerik ataupun karakter. Pengurutan dapat dilakukan

Lebih terperinci

BAB II TINJAUAN PUSTAKA

BAB II TINJAUAN PUSTAKA 6 BAB II TINJAUAN PUSTAKA 2.1. Algoritma Algortima adalah jantung ilmu komputer atau informatika. Banyak cabang dari ilmu komputer yang diacu dalam terminologi algoritma, misalnya algoritma perutean (routing)

Lebih terperinci

Algoritma Pengurutan Data Kompleksitas dan Penerapannya

Algoritma Pengurutan Data Kompleksitas dan Penerapannya Algoritma Pengurutan Data Kompleksitas dan Penerapannya Salvian Reynaldi (13511007) Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung, Jl. Ganesha 10 Bandung

Lebih terperinci

SORTING ARRAY FAKULTAS TEKNOLOGI INFORMASI UNISBANK SEMARANG : ANDY KRISTIANTO : Disusun Oleh :

SORTING ARRAY FAKULTAS TEKNOLOGI INFORMASI UNISBANK SEMARANG : ANDY KRISTIANTO : Disusun Oleh : SORTING ARRAY Disusun Oleh : Nama : ANDY KRISTIANTO NIM : 07.0..02 Kelompok : D FAKULTAS TEKNOLOGI INFORMASI UNISBANK SEMARANG 2009/200 Sorting Array ARRAY Array merupakan suatu group yang terdiri dari

Lebih terperinci

Algoritma dan Pemrograman Lanjut. Pertemuan Ke-8 Pengurutan (Sorting) 1

Algoritma dan Pemrograman Lanjut. Pertemuan Ke-8 Pengurutan (Sorting) 1 Algoritma dan Pemrograman Lanjut Pertemuan Ke-8 Pengurutan (Sorting) 1 Disusun Oleh : Wilis Kaswidjanti, S.Si.,M.Kom. Jurusan Teknik Informatika Fakultas Teknologi Industri Universitas Pembangunan Nasional

Lebih terperinci

Pemodelan dan Analisa

Pemodelan dan Analisa Pemodelan dan Analisa Pemodelan dan Analisa Komponen pokok DSS Dasar model dan Manajemen model Perhatian: topik sulit yang akan datang Terbiasa dengan ide pokok Dasar konsep dan definisi Tool dan diagram

Lebih terperinci

Pengantar Teknik Informatika

Pengantar Teknik Informatika Pengantar Teknik Informatika Algoritma dan Kompleksitas Pertemuan Ke-3 Materi E-learning Tanggal : 1 Oleh : Supatman Fakultas Teknologi Informasi Universitas Mercu Buana Yogyakarta Tahun 2012 Algoritma

Lebih terperinci

BAB 2 TINJAUAN PUSTAKA

BAB 2 TINJAUAN PUSTAKA BAB 2 TINJAUAN PUSTAKA 2.1. Pengertian Algoritma Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis dan logis. Kata Logis merupakan kata kunci dalam Algoritma.

Lebih terperinci

Penerapan Pohon Dalam Heap Sort

Penerapan Pohon Dalam Heap Sort enerapan ohon Dalam Sort Firdi Mulia Jurusan Teknik Informatika ITB, Bandung, email: if17045@students.if.itb.ac.id Abstract Makalah ini membahas tentang penerapan pohon heap dalam metode pengurutan data

Lebih terperinci

BAB VI SORTIR ATAU PENGURUTAN

BAB VI SORTIR ATAU PENGURUTAN BAB VI SORTIR ATAU PENGURUTAN SORTIR TERHADAP RECORD File adalah Himpunan record, misalkan suatu perusahaan mempunyai file yang berisi seluruh data yang diperlukan oleh perusahaan itu tentang para pegawainya.

Lebih terperinci

MAKALAH ALGORITMA DIVIDE AND CONQUER

MAKALAH ALGORITMA DIVIDE AND CONQUER MAKALAH ALGORITMA DIVIDE AND CONQUER Galih Pranowo Jurusan Matematika Ilmu Komputer FAKULTAS SAINS TERAPAN INSTITUT SAINS & TEKNOLOGI AKPRIND YOGYAKARTA 1. Pengertian Algoritma Divide and Conquer merupakan

Lebih terperinci

ANALISIS ALGORITMA BINARY SEARCH

ANALISIS ALGORITMA BINARY SEARCH ANALISIS ALGORITMA BINARY SEARCH Metode Binary search Binary search merupakan salah satu algoritma untuk melalukan pencarian pada array yang sudah terurut. Jika kita tidak mengetahui informasi bagaimana

Lebih terperinci

SATUAN ACARA PERKULIAHAN PERANCANGAN DAN ANALISIS ALGORITMA ** (S1/TEKNIK INFORMATIKA) PTA 2010/2011

SATUAN ACARA PERKULIAHAN PERANCANGAN DAN ANALISIS ALGORITMA ** (S1/TEKNIK INFORMATIKA) PTA 2010/2011 SATUAN ACARA PERKULIAHAN PERANCANGAN DAN ANALISIS ALGORITMA ** (S1/TEKNIK INFORMATIKA) PTA 2010/2011 KODE : / 3 SKS Pertemuan Pokok Bahasan dan TIU Sub Pokok Bahasan dan TIK Teknik Pembelajaran 1 Pendahuluan

Lebih terperinci

Algoritma dan Struktur Data. Searching dan Sorting

Algoritma dan Struktur Data. Searching dan Sorting Algoritma dan Struktur Data Searching dan Sorting Searching Pada suatu data seringkali dibutuhkan pembacaan kembali informasi (retrieval information) dengan cara searching. Searching adalah pencarian data

Lebih terperinci

Penerapan Struktur Data Pohon dalam Implementasi Algoritma Heapsort dan Tinjauan Kompleksitas Waktunya

Penerapan Struktur Data Pohon dalam Implementasi Algoritma Heapsort dan Tinjauan Kompleksitas Waktunya Penerapan Struktur Data Pohon dalam Implementasi Algoritma Heapsort dan Tinjauan Kompleksitas Waktunya Paskahlis Anjas Prabowo 13515108 1 Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika

Lebih terperinci

Bubble Sort dan Shell-Sort. Yuliana Setiowati

Bubble Sort dan Shell-Sort. Yuliana Setiowati Bubble Sort dan Shell-Sort Yuliana Setiowati Bubble Sort Disebut juga exchange sort : metode yang mengurutkan data dengan cara membandingkan masing2 elemen, kemudian melakukan penukaran bila perlu. Algoritma

Lebih terperinci

Algoritme dan Pemrograman

Algoritme dan Pemrograman Algoritme dan Pemrograman Kuliah #13 Sorting Searching Sorting Mengurutkan data berdasarkan kunci tertentu. Jenis sorting: Ascending (menaik) Descending (menurun) Manfaat : mempercepat dan memudahkan akses

Lebih terperinci

VISUALISASI PENCARIAN LINTASAN TERPENDEK ALGORITMA FLOYD- WARSHALL DAN DIJKSTRA MENGGUNAKAN TEX

VISUALISASI PENCARIAN LINTASAN TERPENDEK ALGORITMA FLOYD- WARSHALL DAN DIJKSTRA MENGGUNAKAN TEX VISUALISASI PENCARIAN LINTASAN TERPENDEK ALGORITMA FLOYD- WARSHALL DAN DIJKSTRA MENGGUNAKAN TEX Imam Husni Al Amin 1, Veronica Lusiana 2, Budi Hartono 3 1,2,3 Program Studi Teknik Informatika, Fakultas

Lebih terperinci

BAB 1 PENDAHULUAN Latar Belakang

BAB 1 PENDAHULUAN Latar Belakang BAB 1 PENDAHULUAN 1.1. Latar Belakang Pengurutan atau sorting merupakan jenis operasi penting dalam pengolahan data. Hampir setiap saat dalam kehidupan sehari-hari selalu menjumpai permasalahan yang harus

Lebih terperinci

BAB I PENDAHULUAN.

BAB I PENDAHULUAN. BAB I PENDAHULUAN 1.1 Latar Belakang Masalah Selama ini media pembelajaran untuk modul algoritma sorting atau pengurutan hanya terbatas oleh buku dan modul yang diberikan oleh para pengajar, hal ini membuat

Lebih terperinci