ANALISIS PERBANDINGAN ALGORITMA SELECTION SORT DENGAN MERGE SORT

Ukuran: px
Mulai penontonan dengan halaman:

Download "ANALISIS PERBANDINGAN ALGORITMA SELECTION SORT DENGAN MERGE SORT"

Transkripsi

1 ANALISIS PERBANDINGAN ALGORITMA SELECTION SORT DENGAN MERGE SORT Disusun untuk memenuhi tugas UTS mata kuliah : Analisis Algoritma Oleh : Eka Risky Firmansyah Program Studi Teknik Informatika Fakultas Sains dan Teknologi Universitas Islam Negeri Syarif Hidayatullah Jakarta 2012

2 DAFTAR ISI DAFTAR ISI... 1 KATA PENGANTAR... 2 BAB I PENDAHULUAN LATAR BELAKANG METODE PENULISAN TUJUAN PENULISAN MANFAAT PENULISAN... 3 BAB II LANDASAN TEORI ALGORITMA PENGURUTAN KOMPLEKSITAS ALGORITMA GROWTH FUNCTION NOTASI ASIMPTOTIK... 6 BAB III PEMBAHASAN SELECTION SORT... 7 Penjelasan Singkat Selection Sort... 7 Pseudocode Minimum Selection Sort... 7 Pseudocode Maximum Selection Sort... 8 Loop Invariant Minimum Selection Sort... 8 Simulasi Algoritma Pengurutan Seleksi (Selection Sort)... 9 Analisis dan Running Time Selection Sort MERGE SORT Penjelasan Singkat Merge Sort Rekurensi (Reccurence) Divide and Conquer Pseudocode Merge Sort Loop Invariant pada Prosedur Merge Simulasi Algoritma Merge Sort Analisis dan Running Time Merge Sort ANALISIS PERBANDINGAN SELECTION SORT DENGAN MERGE SORT BAB IV KESIMPULAN & SARAN KESIMPULAN SARAN DAFTAR PUSTAKA

3 KATA PENGANTAR Bismillahirrahmanirrahiim. Assalamualaikum, wr. wb. Puji dan syukur penulis panjatkan kepada Allah SWT, shalawat serta salam semoga senantiasa dilimpahkan kepada Nabi Muhammad SAW, juga untuk para keluarga, sahabat dan pengikutnya sampai akhir zaman. Karena atas rahmat-nya, penulis dapat menyelesaikan karya tulis ini yang berjudul Analisis Perbandingan Algoritma Selection Sort dengan Merge Sort. Karya tulis ini dibuat untuk memenuhi tugas Ujian Tengah Semester Genap dari mata kuliah Analisis Algoritma. Penulis ingin mengucapkan terima kasih kepada Ibu Ria Hari Gusmita, ST., M.Kom. selaku dosen pengampu, teman-teman dan semua pihak yang membantu dalam penyelesaian karya tulis ini. Penulis juga menyadari jika karya tulis ini masih jauh dari kesempurnaan dan terdapat banyak kekurangan. Untuk itu penulis mengharapkan kritik, koreksi dan saran dari semua pembaca dalam penyempurnaan karya tulis ini. Semoga karya tulis ini bermanfaat bagi pembaca, khususnya bagi penulis mengenai pemahaman analisis algoritma. Penulis menghaturkan permohonan maaf jika masih terdapat kekurangan dalam karya tulis ini. Wassalamualaikum, wr. wb. Penulis 2

4 BAB I PENDAHULUAN 1. Latar Belakang Dalam pembuatan sebuah aplikasi seringkali kita membutuhkan sebuah algoritma yang dapat digunakan untuk melakukan pengurutan data, baik data yang berupa bilangan, karakter dan string. Algoritma yang digunakan tersebut selain harus menghasilkan data yang benar, juga harus efektif dan efisien. Namun ada hal lain yang harus dipertimbangkan, misalnya jumlah data yang akan diurutkan. Jika hanya sedikit data yang akan diurutkan maka perbedaan antar algoritma pengurutan tidak terlalu berpengaruh, sebaliknya jika terdapat banyak data yang akan diurutkan maka akan terlihat perbedaan dan keunggulan suatu algoritma, terutama dalam hal kecepatan dan pemakaian jumlah memori. Untuk itulah dalam karya tulis ini akan dibahas mengenai dua buah algoritma pengurutan yaitu algoritma pengurutan seleksi (selection sort) dan algoritma pengurutan merge (merge sort) dengan analisis dan perbandingan kompleksitasnya. 2. Metode Penulisan Penulisan karya tulis ini menggunakan metode pustaka terutama dengan sumber atau referensi dari internet dan analisis dari penulis. 3. Tujuan Penulisan Penulisan karya tulis ini bertujuan sebagai berikut : Memenuhi nilai tugas UTS mata kuliah Analisis Algoritma yang diampu oleh ibu Ria Hari Gusmita, ST., M.Kom. Menambah pengetahuan penulis mengenai analisis algoritma terutama algoritma pengurutan yang dibahas di karya tulis ini. 4. Manfaat Penulisan Penulis berharap semoga karya tulis ini dapat menambah pemahaman bagi pembaca dan penulis mengenai analisis algoritma. 3

5 BAB II LANDASAN TEORI 1. Algoritma Pengurutan Algoritma merupakan urutan aksi-aksi yang dinyatakan dengan jelas dan tidak rancu untuk memecahkan suatu masalah dalam rentang waktu tertentu. Sedangkan pengurutan adalah proses pengaturan sekumpulan objek berdasarkan urutan atau susunan tertentu, dapat berupa pengurutan menaik (ascending) atau menurun (descending). Contoh, sebuah larik atau array terdiri dari kumpulan bilangan : [3,12,1,50,33,5,28] Hasil pengurutan menaik (ascending) : [1,3,5,12,28,33,50] Hasil pengurutan menurun (descending) : [50,33,28,12,5,3,1] Sebuah algoritma dikatakan baik jika menghasilkan nilai yang benar, efektif dan efisien. Efektif yaitu tepat sasaran, jelas dan tidak rancu dalam menjalankan aksi-aksinya serta menghasilkan data yang benar. Efisien yaitu penghematan proses dari sebuah algoritma, seperti running time dan penggunaan memori. Metode atau algoritma pengurutan dapat diklasifikasikan menjadi : 1. Metode atau algoritma pengurutan internal, yaitu pengurutan yang dilakukan di dalam larik itu sendiri. Datanya disimpan di dalam memori komputer. 2. Metode atau algoritma pengurutan eksternal, yaitu pengurutan yang datanya disimpan di dalam disk storage. Metode ini disebut juga pengurutan arsip. Sedangkan berdasarkan kestabilan (stability), algoritma pengurutan dapat dibagi menjadi dua jenis, yaitu : 1. Metode pengurutan stabil (stable sorting algorithm), merupakan algoritma pengurutan yang menjaga/mempertahankan (maintenance) urutan dari beberapa elemen array yang bernilai sama. 2. Metode pengurutan tidak stabil (non stable sorting algorithm), merupakan metode pengurutan yang tidak menjaga/mempertahankan (maintenance) urutan dari beberapa elemen array yang bernilai sama. Dengan kata lain, urutan beberapa elemen yang sama berbeda antara sebelum dan sesudah pengurutan. Algoritma memiliki dua skema, yaitu iteratif dan rekursif. Iteratif yaitu algoritma yang melakukan perulangan biasa, sedangkan rekursif adalah algoritma yang melakukan perulangan dengan melakukan pemanggilan terhadap dirinya sendiri. Contoh algoritma pengurutan yang termasuk dalam skema iteratif, yaitu pengurutan apung (bubble sort), 4

6 pengurutan seleksi (selection sort), pengurutan sisipan (insertion sort), shell (shell sort). Contoh algoritma pengurutan yang termasuk dalam skema rekursif, yaitu pengurutan merge (merge sort), pengurutan heap (heap sort) dan pengurutan cepat (quick sort). Tidak semua algoritma tersebut hanya memiliki satu skema, misalnya algoritma pengurutan seleksi atau selection sort yang dapat menggunakan skema rekursif, namun di dalam karya tulis ini selection sort yang dibahas menggunakan skema iteratif. 2. Kompleksitas Algoritma Efisiensi sebuah algoritma tergantung dari beberapa hal, diantaranya adalah : Kinerja CPU Kinerja Memori Kinerja Disk Kinerja Jaringan Algoritma memiliki kompleksitas, kompleksitas merupakan acuan utama utama untuk mengetahui kecepatan dari sebuah algoritma. Kompleksitas dibagi menjadi tiga, yaitu : 1. Best case (Ω), yaitu kompleksitas algoritma dimana algoritma tersebut berjalan dalam kondisi terbaik. 2. Average case (Θ), yaitu kompleksitas algoritma dimana algoritma tersebut berjalan dalam kondisi sedang, biasanya inputnya secara acak. 3. Worst case (Ο), yaitu kompleksitas algoritma dimana algoritma tersebut berjalan dalam kondisi terburuk. 3. Growth Function Kinerja sebuah algoritma biasanya di ukur dengan mengacu pada kondisi terburuknya, yaitu worst case yang dilambangkan dengan notasi Big O. Notasi Big O adalah fungsi yang berkaitan dengan kelajuan proses dan kelajuan pertambahan data. Notasi Nama Contoh Aplikasi O(1) Konstan Menentukan apakah suatu bilangan ganjil atau genap O(log * n) Iterasi logaritmik Algoritma pencarian Hopcraft dan Ullman untuk himpunan disjoint O(log n) Logaritmik Pencarian dalam list terurut dengan Binary Search Algorithm O((log n) c Menentukan bilangan prima dengan AKS ) Polilogaritmik primality test O(n) Linear Pencarian dalam list tidak terurut 5

7 O(n log n) Linearitmik Mengurutkan list dengan Heapsort O(n 2 ) Kuadratik Mengurutkan list dengan Insertion Sort O(n c Pencarian shortest path dengan algoritma Floyd- ), c > 1 Poliomial Warshall O(c n Pencarian solusi untuk traveling salesman ) Eksponensial problem Menyelesaikan traveling salesman problem O(n!) Faktorial dengan menggunakan brute force O(2 cn ) Dobel Eksponensial Pencarian himpunan lengkap dari AC-unifiers (associative-commutative unifiers) 4. Notasi Asimptotik Notasi asimptotik digunakan untuk menentukan kompleksitas suatu algoritma dengan melihat waktu tempuh (running time) sebuah algoritma. Waktu tempuh algoritma merupakan fungsi : N R +. Notasi asimptotik memungkinkan untuk membandingkan suatu algoritma dengan algoritma lainnya. Notasi asimptotik dapat dituliskan dengan beberapa simbol, yaitu : Notasi Big O, yaitu notasi asimptotik sebuah fungsi algoritma untuk batas atas. Notasi Little o, yaitu notasi asimptotik sebuah fungsi algoritma untuk batas atas namun tidak secara ketat terikat (not asymptotically tight). Notasi Theta (), yaitu notasi asimptotik sebuah fungsi algoritma untuk batas atas dan bawah. Notasi Similaritas/Tilda (~), yaitu notasi asimptotik yang digunakan untuk membandingkan level of performance dua buah fungsi algoritma. Notasi Omega (), yaitu notasi asimptotik sebuah fungsi algoritma untuk batas bawah, notasi ini berlawanan dengan notasi little-o. 6

8 BAB III PEMBAHASAN 1. Selection Sort Penjelasan Singkat Selection Sort Algoritma pengurutan seleksi atau selection sort merupakan kombinasi antara sorting dan searching. Konsep dari atau selection sort yaitu dengan memilih elemen larik yang memiliki nilai paling besar atau paling kecil, lalu menempatkannya pada posisi awal atau akhir elemen larik (array). Lalu elemen terujung pada larik diisolasi. Proses tersebut dilakukan sebanyak n-1 (jumlah elemen larik dikurang 1). Algoritma pengurutan seleksi atau selection sort dapat menggunakan skema iteratif (perulangan biasa) maupun skema rekursif (perulangan dengan memanggil dirinya sendiri). Namun kali ini kita hanya akan membahas algoritma pengurutan seleksi atau selection sort yang menggunakan skema iteratif. Algoritma pengurutan seleksi atau selection sort dibagi menjadi dua, yaitu : 1. Algoritma pengurutan seleksi minimum atau minimum selection sort Yaitu dengan mencari nilai terkecil dari array dan digunakan sebagai pembanding. 2. Algoritma pengurutan seleksi maksimum atau maximum selection sort Yaitu dengan mencari nilai terbesar dari array dan digunakan sebagai pembanding. Pseudocode Minimum Selection Sort procedure MinSelectionSort(input/output A : Larik, input n : integer) DEKLARASI : i, j : integer imin : integer temp : integer ALGORITMA : for i 1 to n-1 do imin i for j i+1 to n do if A[j] < A[imin] then imin j endif endfor temp A[i] A[i] A[imin] A[imin] temp endfor end procedure 7

9 Pseudocode Maximum Selection Sort procedure MaxSelectionSort(input/output L : Larik, input n : integer) DEKLARASI : i, j : integer imaks : integer temp : integer DEFINISI : for i n downto 2 do imaks 1 for j 2 to i do if L[j] > L[imaks] then imaks j endif endfor temp L[i] L[i] L[imaks] L[imaks] temp endfor end procedure Algoritma pengurutan seleksi (selection sort) adalah algoritma yang tidak stabil, karena urutan beberapa elemen yang sama berbeda antara sebelum dan sesudah pengurutan. Algoritma ini juga termasuk algoritma pengurutan internal, karena melakukan sorting di dalam array itu sendiri, dan menyimpan datanya di dalam memori komputer. Yang akan dibahas kali ini adalah menggunakan pengurutan seleksi minimum (minimum selection sort) secara menaik (ascending), yaitu selection sort dengan menggunakan nilai terkecil di dalam array sebagai pembanding. Loop Invariant Minimum Selection Sort Statement Saat awal algoritma dijalankan, nilai imin berisi indeks elemen terkecil dari larik A[1...j - 1]. Initialization Sebelum iterasi atau pass pertama dilakukan, nilai j = i + 1, imin berisi indeks elemen terkecil dari larik A[i...i] yang merupakan indeks elemen paling pertama larik A. Maintenance Sebelum iterasi ke- j th, imin berisi indeks elemen terkecil dari larik A[i...j - 1]. Kemudian setelah dijalankan, jika A[j] < A[imin] maka imin bernilai sama dengan j dan menyimpan indeks terkecil larik A[i...j]. Termination 8

10 Sebelum iterasi ke- (n + 1) th, j = n + 1, imin berisi indeks terkecil dari elemen larik A[i...n]. Simulasi Algoritma Pengurutan Seleksi (Selection Sort) Contoh, kita memiliki sebuah larik (array) (A) yang memiliki 7 buah elemen. Larik tersebut akan diurutkan secara menaik (ascending) dengan mencari nilai minimum sebagai pembanding Pass 1 Cari nilai elemen terkecil dari array (larik) A[1...7] dengan membandingkan antar nilai elemen array, didapatkan elemen terkecil A[4] = 3. Tukarkan dengan nilai elemen terujung (awal) yaitu A[1]. Lalu elemen A[1] tersebut sudah terurut Pass 2 Cari nilai elemen terkecil dari array (larik) A[2...7] dengan membandingkan antar nilai elemen array, didapatkan elemen terkecil A[5] = 9. Tukarkan dengan nilai elemen terujung (awal) yaitu A[2]. Lalu elemen A[2] tersebut sudah terurut Pass 3 Cari nilai elemen terkecil dari array (larik) A[3...7] dengan membandingkan antar nilai elemen array, didapatkan elemen terkecil A[6] = 13. Tukarkan dengan nilai elemen terujung (awal) yaitu A[3]. Lalu elemen A[3] tersebut sudah terurut Pass 4 Cari nilai elemen terkecil dari array (larik) A[4...7] dengan membandingkan antar nilai elemen array, didapatkan elemen terkecil A[5] = 19. 9

11 Tukarkan dengan nilai elemen terujung (awal) yaitu A[4]. Lalu elemen A[4] tersebut sudah terurut Pass 5 Cari nilai elemen terkecil dari array (larik) A[5...7] dengan membandingkan antar nilai elemen array, didapatkan elemen terkecil A[7] = 21. Tukarkan dengan nilai elemen terujung (awal) yaitu A[5]. Lalu elemen A[5] tersebut sudah terurut Pass 6 (n-1) Cari nilai elemen terkecil dari array (larik) A[6...7] dengan membandingkan antar nilai elemen array, didapatkan elemen terkecil A[7] = 26. Tukarkan dengan nilai elemen terujung (awal) yaitu A[6]. Lalu elemen A[6] tersebut sudah terurut Elemen yang tersisa yaitu elemen terakhir A[7] = 38. Elemen tersebut tidak perlu diurutkan karena elemen tersebut berada pada posisi yang sudah terurut. Jadi array atau larik A sudah terurut. Hasil array A yang sudah terurut yaitu : Analisis dan Running Time Selection Sort Running time algoritma pengurutan seleksi (selection sort) dapat dihitung dengan : SELECTION SORT Cost Times for i 1 to n-1 do C 1 n imin i C 2 n-1 for j i+1 to n do C 3 ( ) if L[j] < L[imin] C 4 ( ) then imin j C 5 ( ) 10

12 endif 0 ( ) endfor 0 ( ) temp L[i] C 6 n-1 L[i] L[imin] C 7 n-1 L[imin] temp C 8 n-1 endfor 0 n Keterangan : t i,j bernilai 1 jika kondisi if benar, 0 jika salah. ( ) C 3. ( ) = C 3. ( ) + C 3. ( ) = C 3. + C3. ( ) ( ) C 4. ( ) = C 4. ( ) C 5. ( ) = C 5. ti,j dapat bernilai 1 atau 0. o Ketika kondisi best case maka kondisi if salah, t i,j = 0. Kondisi best case terjadi jika data dalam elemen array sudah terurut. Maka : ( ) ( ) ( ) ( ) ( ) Didapatkan notasi asimptotik best case selection sort adalah ( ) ( ) o Ketika kondisi worst case maka kondisi if benar, t i,j = 1. Kondisi worst case terjadi jika data dalam elemen array terurut secara terbalik. Maka : ( ) ( ) ( ) ( ) ( ) Didapatkan notasi asimptotik worst case selection sort adalah ( ) ( ) o Jadi baik dalam kondisi worst case, average case maupun best case didapatkan kompleksitas waktu algoritma selection sort yaitu : ( ) ( ) 11

13 2. Merge Sort Penjelasan Singkat Merge Sort Algoritma merge sort dirancang untuk memenuhi kebutuhan pengurutan jika data yang diurutkan berjumlah banyak, dan tidak memungkinkan untuk ditampung dalam memori komputer. Cara kerja atau konsep dari algoritma merge sort adalah menggunakan metode rekursif dan teknik divide and conquer. Rekurensi (Reccurence) Merupakan sebuah fungsi atau prosedur yang digambarkan secara rekursif. Rekursif adalah proses untuk memanggil dirinya sendiri. Dan fungsi running time-nya dapat digambarkan oleh recurrence (Rekurensi). Definisi rekursif disusun oleh dua bagian, yaitu : 1. Basis, yaitu bagian yang berisi kasus yang terdefinisi secara eksplisit dan berguna untuk menghentikan rekursif (memberikan sebuah nilai yang terdefinisi pada fungsi rekursif). 2. Rekurens, yaitu bagian yang mendefinisikan objek dalam terminologi dirinya sendiri. Misalnya pada proses untuk menghitung faktorial dari n, maka : Basis : n! = 1, n = 0 Rekurens : n! = n x (n - 1)!, n > 0 Divide and Conquer 1. Divide : membagi sebuah array menjadi dua array, sebuah problem dipecah menjadi sub-sub problem yang memiliki kemiripan dengan masalah semula namun berukuran lebih kecil. 2. Conquer : menyelesaikan masalah secara rekursif, yaitu mengurutkan setiap array. 3. Combine : menggabungkan solusi yaitu dua array yang sudah terurut. Pseudocode Merge Sort PROCEDURE MERGESORT(A, p, r) IF p < r // Check for base case THEN q = FLOOR (p + r)/2 MERGESORT(A, p, q) MERGESORT(A, q + 1, r) MERGE(A, p, q, r) // Divide step. // Conquer step. // Conquer step. // Conquer step. PROCEDURE MERGE(A, p, q, r) 12

14 n1 q p + 1 n2 r q Create arrays L[1.. n1 + 1] and R[1.. n2 + 1] FOR i 1 TO n1 DO L[i] A[p + i 1] FOR j 1 TO n2 DO R[j] A[q + j] L[n1 + 1] R[n2 + 1] i 1 j 1 FOR k p TO r DO IF L[i] R[j] THEN A[k] L[i] i i + 1 ELSE A[k] R[j] j j + 1 Loop Invariant pada Prosedur Merge Statement Setiap iterasi pada for (pengulang) yang terakhir, sub-array A[p...k - 1] berisi nilai k-p elemen terkecil dari array L dan R dalam keadaan yang sudah terurut. L[i] dan R[j] merupakan elemen terkecil dari array L dan R yang tidak di-copy ke array A. Initialization Sebelum iterasi pertama dilakukan, k = p. Sub-array A[p k - 1] berisi 0 elemen terkecil dari array L dan R. Ketika i = j = 1, L[i] dan R[j] adalah elemen terkecil dari array yang tidak di-copy ke array A. Kedua array L dan R dalam keadaan yang terurut. Maintenance Misalkan L[i] R[j], maka L[i] adalah elemen terkecil yang tidak di-copy ke array A. A[p k - 1] adalah k - p elemen terkecil, L[i] adalah (k p + 1) th elemen terkecil. Kemudian L[i] di-copy ke A[k], A[p k] berisi k p + 1 elemen terkecil. Secara berulang, nilai k + i membuat perulangan (loop invariant). Jika L[i] > R[j], maka nilai R[j] di-copy ke array A[k], dan nilai j + 1 agar pengulangan dapat terus dilakukan. Termination Ketika nilai k = r + 1, A[p k - 1] = A[p r] berisi k - p elemen terkecil dalam keadaan yang terurut. Menghasilkan k - p = r p elemen terkecil dalam keadaan yang terurut. Kedua array L dan R berisi n1 + n2 + 2 = r -p + 3 elemen, dan dua buah telah di-copy kembali ke array A. 13

15 Simulasi Algoritma Merge Sort Contoh, kita memiliki sebuah larik (array) (A) yang memiliki 4 buah elemen. Larik tersebut akan diurutkan secara menaik (ascending). Dengan nilai p adalah indeks elemen awal, yaitu p = 0. Nilai r adalah indeks elemen akhir, yaitu r = 3. A[0...3] = MERGESORT(A, 0, 3). Kemudian diperiksa apakah jika p < r, (0 < 3), jika benar maka dihitung q = (p + r)/2 = 1. Kemudian dipanggil MERGESORT(A, 0, 1), MERGESORT(A, 2, 3) dan MERGE(A, 0, 1, 3) MERGESORT(A, 0, 1) Kemudian diperiksa apakah jika p < r, (0 < 1), jika benar maka dihitung q = (p + r)/2 = 0. Kemudian dipanggil MERGESORT(A, 0, 0), MERGESORT(A, 1, 1) dan MERGE(A, 0, 0, 1). A[0...1] = MERGESORT(A, 0, 0) Kemudian diperiksa apakah jika p < r, (0 < 0), karena salah maka rekursif pada bagian ini selesai MERGESORT(A, 1, 1) Kemudian diperiksa apakah jika p < r, (1 < 1), karena salah maka rekursif pada bagian ini selesai MERGE(A, 0, 0, 1) Sesuai dengan algoritma maka nilai : o n1 = q p + 1 = 1 o n2 = r q = 1. Lalu buat dua buah array bernama L dan R dengan jumlah elemen o L[1.. n1 + 1] yaitu L[1...2] o R[1.. n2 + 1] yaitu R[1...2] Perulangan pada : 14

16 o FOR i 1 TO n1 DO L[i] A[p + i 1] o nilai L[1] = A[0] = o L[1] = Perulangan pada : o FOR j 1 TO n2 DO R[j] A[q + j] o nilai R[1] = A[1] = 9. o R[1] = 9 Kemudian ditambahkan L[n1 + 1] dan R[n2 + 1], sehingga L[2] = dan R[2] =. Sehingga array L dan R berisi : Array L = 12 dan Array R = 9 Kedua array tersebut sudah dalam keadaan terurut. Nilai i dan j di inisialisasi menjadi i = 1 dan j = 1. Kemudian lakukan pengulangan pada : o FOR k p TO r DO IF L[i] R[j] THEN A[k] L[i] i i + 1 ELSE A[k] R[j] j j + 1 o Untuk menggabungkan array L dan R ke array A dalam keadaan terurut. o Didapatkan : L[1] R[1], 12 9 = False, maka A[0] = R[1] = 9 L[1] R[2], 12 = True, maka A[1] = L[1] = 12. o A[0...1] = 1.2. MERGESORT(A, 2, 3)

17 Kemudian diperiksa apakah jika p < r, (2 < 3), jika benar maka dihitung q = (p + r)/2 = 2. Kemudian dipanggil MERGESORT(A, 2, 2), MERGESORT(A, 3, 3) dan MERGE(A, 2, 2, 3) A[2...3] = MERGESORT(A, 2, 2) Kemudian diperiksa apakah jika p < r, (2 < 2), karena salah maka rekursif pada bagian ini selesai MERGESORT(A, 3, 3) Kemudian diperiksa apakah jika p < r, (3 < 3), karena salah maka rekursif pada bagian ini selesai MERGE(A, 2, 2, 3) Sesuai dengan algoritma maka nilai : o n1 = q p + 1 = 1 o n2 = r q = 1. Lalu buat dua buah array bernama L dan R dengan jumlah elemen o L[1.. n1 + 1] yaitu L[1...2] o R[1.. n2 + 1] yaitu R[1...2] Perulangan pada : o FOR i 1 TO n1 DO L[i] A[p + i 1] o nilai L[1] = A[2] = o L[1] = Perulangan pada : o FOR j 1 TO n2 DO R[j] A[q + j] o nilai R[1] = A[3] = 2. o R[1] = 2 16

18 Kemudian ditambahkan L[n1 + 1] dan R[n2 + 1], sehingga L[2] = dan R[2] =. Sehingga array L dan R berisi : Array L = 24 dan Array R = 2 Kedua array tersebut sudah dalam keadaan terurut. Nilai i dan j di inisialisasi menjadi i = 1 dan j = 1. Kemudian lakukan pengulangan pada : o FOR k p TO r DO IF L[i] R[j] THEN A[k] L[i] i i + 1 ELSE A[k] R[j] j j + 1 o Untuk menggabungkan array L dan R ke array A dalam keadaan terurut. o Didapatkan : L[1] R[1], 24 2 = False, maka A[2] = R[1] = 2 L[1] R[2], 24 = True, maka A[3] = L[1] = o A[2...3] = 1.3. MERGE(A, 0, 1, 3) Sesuai dengan algoritma maka nilai : o n1 = q p + 1 = 2 o n2 = r q = 2. Lalu buat dua buah array bernama L dan R dengan jumlah elemen o L[1.. n1 + 1] yaitu L[1...3] o R[1.. n2 + 1] yaitu R[1...3] Perulangan pada : o FOR i 1 TO n1 DO L[i] A[p + i 1] o nilai L[1] = A[0] = 9 dan L[2] = A[1] = 12. o L[1...2] =

19 Perulangan pada : o FOR j 1 TO n2 DO R[j] A[q + j] o nilai R[1] = A[2] = 2 dan R[2] = A[3] = o R[1...2] = Kemudian ditambahkan L[n1 + 1] dan R[n2 + 1], sehingga L[2] = dan R[2] =. Sehingga array L dan R berisi : Array L = 9 12 dan Array R = Kedua array tersebut sudah dalam keadaan terurut Nilai i dan j di inisialisasi menjadi i = 1 dan j = 1. Kemudian lakukan pengulangan pada : o FOR k p TO r DO IF L[i] R[j] THEN A[k] L[i] i i + 1 ELSE A[k] R[j] j j + 1 o Untuk menggabungkan array L dan R ke array A dalam keadaan terurut. o Didapatkan : L[1] R[1], 9 2 = False, maka A[0] = R[1] = 2 L[1] R[2], 9 24 = True, maka A[1] = L[1] = 9. L[2] R[2], = True, maka A[2] = L[2] = 12 L[3] R[2], 24 = False, maka A[3] = R[2] = 24. o A[0...3] = adalah : Jika digambarkan secara sederhana maka proses eksekusi algoritma merge sort 18

20 Array unsorted A[0...3] divide to sub-array A[0...1] A[2...3] divide to sub-array L & R divide to sub-array L & R L[] merge & sort sub-array L & R to array A R[] L[] merge & sort sub-array L & R to array A R[] A[0...1] A[2...3] merge & sort subarray to array A Sorted Array A[0...3] Hasil pengurutannya adalah array A dengan elemen seperti dibawah. A[0...3] = Analisis dan Running Time Merge Sort Merge sort selalu membagi setiap array menjadi dua sub-array hingga mencapai basis, sehingga kompleksitas dari algoritma merge sort, berlaku untuk semua kasus (Worst Case = Best Case = Average Case). Untuk memudahkan, kita anggap jumlah elemen array (n) adalah kelipatan 2, jadi setiap dilakukan divide (pemecahan menjadi dua sub-array), kedua sub-array akan berukuran n/2. Basis : untuk n = 1, maka array tersebut sudah terurut dengan sendirinya. Rekurens : untuk n > 1, maka akan dilakukan langkah-langkah merge sort, yaitu : o Divide : Hitung nilai q yang merupakan rata-rata dari p + r, yang bernilai Θ(1). o Conquer : Secara rekursif menyelesaikan 2 sub-array, setiap sub-array berukuran n/2, maka bernilai 2T(n/2). 19

21 o Combine : Menggabungkan element dari sub-array ke dalam array dengan prosedur MERGE, bernilai Θ(n). Jumlahkan semua fungsi yang dihasilkan, sehingga dihasilkan rekurens : ( ) { ( ) ( ) ( ) } Dari rekurens tersebut di ubah untuk mendapatkan kompleksitas waktu algoritma merge sort, sehingga ( ) ( ) Catatan : log n = log 2 n = 2 log n. Kompleksitas waktu tersebut dapatk dijelaskan dari recursif tree berikut : o Array awal (cn), yang memiliki dua sub-array, masing-masing bernilai T(n/2). o Kemudian sub-array tersebut di bagi lagi menjadi dua sub-sub-array, jadi bernilai T(n/4) dan seterusya. o Di dapatkan tinggi pohon rekursif adalah log n, dan memiliki sebanyak log n + 1 level. Setiap level bernilai cn, sehingga cn log n + cn. o Koefisien c tidak perlu di masukkan, sehingga kompleksitas waktunya menjadi ( ) ( ) 3. Analisis Perbandingan Selection Sort dengan Merge Sort Dari hasil analisis sebelumnya telah didapatkan kompleksitas waktu algoritma pengurutan seleksi (selection sort) dan merge sort, yaitu : 1. Selection sort memiliki kompleksitas waktu untuk kondisi best case, average case maupun worst case dengan : ( ) ( ) 20

22 2. Merge sort memiliki kompleksitas waktu untuk kondisi best case, average case maupun worst case dengan : ( ) ( ) Jika dibandingkan dari kompleksitas waktu kedua algoritma tersebut maka algoritma yang running time-nya lebih cepat adalah algoritma merge sort. Baik dalam keadaan best case, average case maupun worst case. Merge sort memiliki running time yang lebih cepat dibandingkan selection sort, karena nilai n log n lebih kecil dari n 2. Untuk jumlah data atau elemen array yang sedikit, perbedaan running time selection sort dan merge sort tidak terlalu terlihat, bisa saja lebih cepat selection sort atau merge sort. Hal ini dapat dipengaruhi oleh kemampuan komputer, jumlah memori dan faktor lain. Namun jika jumlah data atau elemen array yang sangat banyak, perbedaan running time selection sort dan merge sort akan sangat terlihat, semakin banyak data yang akan diurutkan, semakin terlihat perbedaan running time-nya. 21

23 BAB IV KESIMPULAN & SARAN 1. Kesimpulan Hasil analisis perbandingan selection sort dan merge sort menunjukkan bahwa running time merge sort lebih cepat. Hal ini akan terlihat jika jumlah data yang akan diurutkan berjumlah banyak, semakin banyak data semakin terlihat perbedaan kecepatan algoritma. Sedangkan jika data berjumlah sedikit maka perbedaan antara selection sort dan merge sort tidak begitu siginifikan. Perlu dipertimbangkan juga faktor lain yang mempengaruhi kecepatan eksekusi sebuah algoritma selain kompleksitas waktu dan jumlah data, yaitu faktor kemampuan komputer, jumlah memori dan lain-lain. Selain itu pertimbangan dari penggunaan sebuah algoritma tidak hanya di lihat dari running time-nya, tetapi dari kebutuhan. Misalnya kita membutuhkan algoritma untuk mengurutkan jumlah data yang sedikit (kurang dari 100 elemen), maka kita dapat menggunakan selection sort daripada merge sort karena perbedaan kecepatan yang tidak signifikan. 2. Saran Penulis menyarankan untuk penulisan karya tulis selanjutnya agar algoritma pengurutan yang dibahas lebih banyak lagi disertai dengan simulasi dan analisis, serta diberikan contoh program atau program simulasi step-by-step untuk memperjelas materi pembahasan. 22

24 DAFTAR PUSTAKA Fanani, Ikhsan. Penggunaan Big O Notation untuk Menganalisa Efisiensi Algoritma. Program Studi Teknik Informatika, Institut Teknologi Bandung. M. Fachrurrozi, Dwi Rosa Indah Modul Praktikum Algoritma dan Pemrograman I. Laboratorium Dasar Komputer Program Ilmu Komputer Universitas Sriwijaya. Ria Hari Gusmita, ST., M.Kom. Algoritma dan Pemrograman 2 : Pengurutan (Bubble dan Selection Sort). Internet : diakses pada 29 Mei 2012, 22:15. diakses pada 31 Mei 2012, 21:58. diakses pada 31 Mei 2012, 21:53. diakses pada 31 Mei 2012, 23:44. diakses pada 31 Mei 2012, 15:35. pada 30 Mei 2012, 23:08. diakses ort.htm, diakses pada 30 Mei 2012, 23:10. diakses pada 30 Mei 2012, 22:08. diakses pada 31 Mei 2012, 09:35. 23

25 diakses pada 31 Mei 2012, 22:30. 24

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

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

PENGGUNAAN BIG O NOTATION UNTUK MENGANALISA EFISIENSI ALGORITMA

PENGGUNAAN BIG O NOTATION UNTUK MENGANALISA EFISIENSI ALGORITMA PENGGUNAAN BIG O NOTATION UNTUK MENGANALISA EFISIENSI ALGORITMA Ikhsan Fanani NIM : 13505123 Program Studi Teknik Informatika, Institut Teknologi Bandung Jl. Ganesha 10, Bandung E-mail : ikhsan_fanani@yahoo.com

Lebih terperinci

MODUL IV PENCARIAN DAN PENGURUTAN

MODUL IV PENCARIAN DAN PENGURUTAN MODUL IV PENCARIAN DAN PENGURUTAN 4.1 Tujuan Tujuan modul IV ini, adalah: Praktikan bisa membuat beberapa program pencarian berdasarkan metode algoritma pencarian Praktikan bisa membuat beberapa program

Lebih terperinci

Pengurutan (Sorting) Algoritma Pemrograman

Pengurutan (Sorting) Algoritma Pemrograman Pengurutan (Sorting) Algoritma Pemrograman mas.anto72@gmail.com 1 Definisi Sorting /pengurutan proses mengatur sekumpulan obyek menurut urutan atau susunan tertentu. Bentuk susunan/urutan : Ascending menaik/membesar

Lebih terperinci

Kuliah ke : 4 Algoritma & Stuktur Data. Pengurutan (Sorting)

Kuliah ke : 4 Algoritma & Stuktur Data. Pengurutan (Sorting) Kuliah ke : 4 Algoritma & Stuktur Data Pengurutan (Sorting) Pengurutan adalah proses mengatur sekumpulan obyek menurut urutan atau susunan tertentu. Urutan obyek tersebut dapat menaik atau menurun. Bila

Lebih terperinci

ALGORITMA PENGURUTAN & PENCARIAN

ALGORITMA PENGURUTAN & PENCARIAN Materi kuliah ALGORITMA PENGURUTAN & PENCARIAN Ir. Roedi Goernida, MT. (roedig@yahoo.com) Program Studi Sistem Informasi Fakultas Rekayasa Industri Institut Teknologi Telkom Bandung 2011 1 Pengelompokan

Lebih terperinci

Pengurutan (Sorting) Keuntungan Data Terurut. Pengurutan Terbagi Dua Kelompok:

Pengurutan (Sorting) Keuntungan Data Terurut. Pengurutan Terbagi Dua Kelompok: Pengurutan (Sorting) Pengurutan adalah proses mengatur sekumpulan obyek menurut urutan atau susunan tertentu. Urutan obyek tersebut dapat menaik atau menurun. Bila N obyek disimpan dalam larik L, maka

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

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

Yaitu proses pengaturan sekumpulan objek menurut urutan atau susunan tertentu Acuan pengurutan dibedakan menjadi :

Yaitu proses pengaturan sekumpulan objek menurut urutan atau susunan tertentu Acuan pengurutan dibedakan menjadi : PENGURUTAN Yaitu proses pengaturan sekumpulan objek menurut urutan atau susunan tertentu Acuan pengurutan dibedakan menjadi : 1. Ascending / menaik Syarat : L[1] L[2] L[3] L[N] 2. Descending / menurun

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

AnalisisFramework. Mengukur ukuran atau jumlah input Mengukur waktu eksekusi Tingkat pertumbuhan Efiesiensi worst-case, best-case dan average-case

AnalisisFramework. Mengukur ukuran atau jumlah input Mengukur waktu eksekusi Tingkat pertumbuhan Efiesiensi worst-case, best-case dan average-case AnalisisFramework Review Tujuan analisa : mengukur efesiensi algoritma Efisiensi diukur dari diukur dari: waktu (time) dan memori(space). Dua besaran yang digunakan: kompleksitas algoritma 1. Kompleksitas

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

Pendahuluan. Sebuah algoritma tidak saja harus benar, tetapi juga harus efisien. Algoritma yang bagus adalah algoritma yang efektif dan efisien.

Pendahuluan. Sebuah algoritma tidak saja harus benar, tetapi juga harus efisien. Algoritma yang bagus adalah algoritma yang efektif dan efisien. Pendahuluan Sebuah algoritma tidak saja harus benar, tetapi juga harus efisien. Algoritma yang bagus adalah algoritma yang efektif dan efisien. Algoritma yang efektif diukur dari berapa jumlah waktu dan

Lebih terperinci

Algoritma Divide and Conquer (Bagian 2)

Algoritma Divide and Conquer (Bagian 2) Algoritma Divide and Conquer (Bagian 2) Bahan Kuliah IF2251 Strategi Algoritmik Oleh: Rinaldi Munir 1 (c) Quick Sort Termasuk pada pendekatan sulit membagi, mudah menggabung (hard split/easy join) Tabel

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

Algoritma Brute Force (Bagian 1) Oleh: Rinaldi Munir

Algoritma Brute Force (Bagian 1) Oleh: Rinaldi Munir Algoritma Brute Force (Bagian 1) Oleh: Rinaldi Munir Bahan Kuliah IF2251 Strategi Algoritmik 1 Definisi Brute Force Brute force : pendekatan yang lempang (straightforward) untuk memecahkan suatu masalah

Lebih terperinci

PENGURUTAN (SORTING) 1. Introduction 2. Bubble Sort 3. Selection Sort 4. Insertion Sort

PENGURUTAN (SORTING) 1. Introduction 2. Bubble Sort 3. Selection Sort 4. Insertion Sort PENGURUTAN (SORTING) 1. Introduction 2. Bubble Sort 3. Selection Sort 4. Insertion Sort INTRODUCTION Pengurutan merupakan proses mengatur sekumpulan obyek menurut aturan atau susunan tertentu. Urutan obyek

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

BAB 2 LANDASAN TEORI

BAB 2 LANDASAN TEORI 5 BAB 2 LANDASAN TEORI 2.1. Pengertian Algoritma Algoritma adalah prosedur komputasi yang didefinisikan dengan baik yang mengambil beberapa nilai yaitu seperangkat nilai sebagai input dan output yang menghasilkan

Lebih terperinci

ANALISIS ALGORITMA. Disusun Oleh: Analisis Masalah dan Running Time. Adam Mukharil Bachtiar Teknik Informatika UNIKOM

ANALISIS ALGORITMA. Disusun Oleh: Analisis Masalah dan Running Time. Adam Mukharil Bachtiar Teknik Informatika UNIKOM ANALISIS ALGORITMA Analisis Masalah dan Running Time Disusun Oleh: Adam Mukharil Bachtiar Teknik Informatika UNIKOM adfbipotter@gmail.com AGENDA PERKULIAHAN DEFINISI MASALAH f x = a 0 + a n cos nπx +

Lebih terperinci

BAB V SORTING (PENGURUTAN) INTERNAL

BAB V SORTING (PENGURUTAN) INTERNAL BAB V SORTING (PENGURUTAN) INTERNAL Sorting Internal : Proses pengurutan sekelompok data yang berada didalam memori utama komputer. Sorting External : Proses pengurutan sekelompok data yang sebagian saja

Lebih terperinci

Kompleksitas Algoritma

Kompleksitas Algoritma Kompleksitas Algoritma Bahan Kuliah IF2120 Matematika Disktit Rinaldi M/IF2120 Matdis 1 Rinaldi M/IF2120 Matdis 2 Pendahuluan Sebuah masalah dapat mempunyai banyak algoritma penyelesaian. Contoh: masalah

Lebih terperinci

Algoritma Divide and Conquer. (Bagian 2)

Algoritma Divide and Conquer. (Bagian 2) Algoritma Divide and Conquer (Bagian 2) (c) Quick Sort Termasuk pada pendekatan sulit membagi, mudah menggabung (hard split/easy join) Tabel A dibagi (istilahnya: dipartisi) menjadi A1 dan A2 sedemikian

Lebih terperinci

Algoritma Divide and Conquer (Bagian 1)

Algoritma Divide and Conquer (Bagian 1) Algoritma Divide and Conquer (Bagian 1) Bahan Kuliah IF2251 Strategi Algoritmik Oleh: Rinaldi Munir 1 Divide and Conquer dulunya adalah strategi militer yang dikenal dengan nama divide ut imperes. Sekarang

Lebih terperinci

Kompleksitas Algoritma

Kompleksitas Algoritma Kompleksitas Algoritma Sebuah algoritma tidak saja harus benar, tetapi juga harus mangkus (efisien). Algoritma yang bagus adalah algoritma yang mangkus. Kemangkusan algoritma diukur dari berapa jumlah

Lebih terperinci

Analisis Algoritma Bubble Sort

Analisis Algoritma Bubble Sort Analisis Algoritma Bubble Sort Ryan Rheinadi NIM : 13508005 Program Studi Teknik Informatika, Sekolah Teknik Elektro dan Informatika, Institut Teknologi Bandung Jalan Ganesha 10, Bandung e-mail: if18005@students.if.itb.ac.id

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

KOMPLEKSITAS ALGORITMA PENGURUTAN (SORTING ALGORITHM)

KOMPLEKSITAS ALGORITMA PENGURUTAN (SORTING ALGORITHM) KOMPLEKSITAS ALGORITMA PENGURUTAN (SORTING ALGORITHM) Andi Kurniawan Dwi Putranto / 3508028 Program Studi Teknik Informatika, Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung Jln. Ganesha

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

Analisa dan Perancangan Algoritma. Ahmad Sabri, Dr Sesi 2: 16 Mei 2016

Analisa dan Perancangan Algoritma. Ahmad Sabri, Dr Sesi 2: 16 Mei 2016 Analisa dan Perancangan Algoritma Ahmad Sabri, Dr Sesi 2: 16 Mei 2016 Teknik rekursif dan iteratif Algoritma rekursif adalah algoritma yang memanggil dirinya sendiri sampai tercapai kondisi yang ditetapkan

Lebih terperinci

DATA SORTING. Altien Jonathan Rindengan, S.Si, M.Kom

DATA SORTING. Altien Jonathan Rindengan, S.Si, M.Kom DATA SORTING Altien Jonathan Rindengan, S.Si, M.Kom Pendahuluan Sorting (pengurutan) : proses mengatur sekumpulan objek menurut urutan atau susunan tertentu Diberikan array L dengan n elemen yg sudah terdefinisi

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

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

Divide and Conqueradalah strategi militer yang dikenal dengan nama divide ut imperes.

Divide and Conqueradalah strategi militer yang dikenal dengan nama divide ut imperes. Divide and Conquer Divide and Conqueradalah strategi militer yang dikenal dengan nama divide ut imperes. Strategi tersebut menjadi strategi fundamental di dalam ilmu komputer dengan nama Divide and Conquer.

Lebih terperinci

Kompleksitas Algoritma

Kompleksitas Algoritma Kompleksitas Algoritma 1 Pendahuluan Sebuah masalah dapat mempunyai banyak algoritma penyelesaian. Contoh: masalah pengurutan (sort), ada puluhan algoritma pengurutan Sebuah algoritma tidak saja harus

Lebih terperinci

Kompleksitas Algoritma (1)

Kompleksitas Algoritma (1) Kompleksitas Algoritma (1) Pendahuluan Sebuah algoritma tidak saja harus benar, tetapi juga harus efisien Algoritma yang bagus adalah algoritma yang efisien. Kebutuhan waktu dan ruang suatu algoritma bergantung

Lebih terperinci

1. Kompetensi Mengenal dan memahami algoritma percabangan yang komplek.

1. Kompetensi Mengenal dan memahami algoritma percabangan yang komplek. LAB SHEET ALGORITMA DAN STRUKTUR DATA Semester : 4 Percabangan Komplek dan case of 200 menit No. : LST/EKA/EKA 305/03 Revisi : Tgl. : Hal. 1 dari 3 hal. 1. Kompetensi Mengenal dan memahami algoritma percabangan

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

SORTING. Struktur Data S1 Sistem Informasi. Ld.Farida

SORTING. Struktur Data S1 Sistem Informasi. Ld.Farida SORTING Struktur Data S1 Sistem Informasi Ld.Farida INTRO Sorting (Pengurutan) diartikan sebagai penyusunan kembali sekumpulan objek ke dalam urutan tertentu Tujuan: Mendapatkan kemudahan dalam pencarian

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

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

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

SORTING (PENGURUTAN DATA)

SORTING (PENGURUTAN DATA) SORTING (PENGURUTAN DATA) R. Denny Ari Wibowo, S.Kom STMIK BINA NUSANTARA JAYA LUBUKLINGGAU PENJELASAN Pengurutan data (sorting) secara umum didefinisikan sebagai suatu proses untuk menyusun kembali himpunan

Lebih terperinci

PROGRAM STUDI S1 SISTEM KOMPUTER UNIVERSITAS DIPONEGORO. Oky Dwi Nurhayati, ST, MT email: okydn@undip.ac.id

PROGRAM STUDI S1 SISTEM KOMPUTER UNIVERSITAS DIPONEGORO. Oky Dwi Nurhayati, ST, MT email: okydn@undip.ac.id PROGRAM STUDI S1 SISTEM KOMPUTER UNIVERSITAS DIPONEGORO Oky Dwi Nurhayati, ST, MT email: okydn@undip.ac.id Kinerja yang perlu ditelaah pada algoritma: beban komputasi efisiensi penggunaan memori Yang perlu

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

Kompleksitas Algoritma

Kompleksitas Algoritma Kompleksitas Algoritma Pendahuluan Sebuah algoritma tidak saja harus benar, tetapi juga harus mangkus (efisien). Algoritma yang bagus adalah algoritma yang mangkus. Kemangkusan algoritma diukur dari berapa

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

Algoritma Brute Force

Algoritma Brute Force Algoritma Brute Force Definisi Brute Force Brute force adalah sebuah pendekatan yang lempang (straightforward( straightforward) ) untuk memecahkan suatu masalah, biasanya didasarkan pada pernyataan masalah

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

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

PERBANDINGAN KOMPLEKSITAS ALGORITMA PENCARIAN BINER DAN ALGORITMA PENCARIAN BERUNTUN

PERBANDINGAN KOMPLEKSITAS ALGORITMA PENCARIAN BINER DAN ALGORITMA PENCARIAN BERUNTUN PERBANDINGAN KOMPLEKSITAS ALGORITMA PENCARIAN BINER DAN ALGORITMA PENCARIAN BERUNTUN Yudhistira NIM 13508105 Mahasiswa Program Studi Teknik Informatika ITB Jalan Ganesha No.10 Bandung e-mail: if18105@students.if.itb.ac.id

Lebih terperinci

Matematika Diskrit Kompleksitas Algoritma. Instruktur : Ferry Wahyu Wibowo, S.Si., M.Cs.

Matematika Diskrit Kompleksitas Algoritma. Instruktur : Ferry Wahyu Wibowo, S.Si., M.Cs. Matematika Diskrit Kompleksitas Algoritma Instruktur : Ferry Wahyu Wibowo, S.Si., M.Cs. Pendahuluan Sebuah masalah dapat mempunyai banyak algoritma penyelesaian. Contoh: masalah pengurutan (sort), ada

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

SORTING. Hartanto Tantriawan, S.Kom., M.Kom

SORTING. Hartanto Tantriawan, S.Kom., M.Kom SORTING DASAR PEMROGRAMAN Hartanto Tantriawan, S.Kom., M.Kom TUJUAN PERKULIAHAN Mahasiswa mengetahui konsep mengurutkan sekumpulan elemen Mahasiswa dapat menggunakan teknik sorting dalam kasus yang diberikan

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

BAB III ANALISIS KOMPLEKSITAS ALGORITMA

BAB III ANALISIS KOMPLEKSITAS ALGORITMA BAB III ANALISIS KOMPLEKSITAS ALGORITMA 3.1 Kompleksitas Algoritma Suatu masalah dapat mempunyai banyak algoritma penyelesaian. Algoritma yang digunakan tidak saja harus benar, namun juga harus efisien.

Lebih terperinci

UNIVERSITAS GUNADARMA

UNIVERSITAS GUNADARMA UNIVERSITAS GUNADARMA SK No. 92 / Dikti / Kep /1996 Fakultas Ilmu Komputer, Teknologi Industri, Ekonomi,Teknik Sipil & Perencanaan, Psikologi, Sastra Program Diploma (D3) Manajemen Informatika, Teknik

Lebih terperinci

SEQUENTIAL SEARCH 11/11/2010. Sequential Search (Tanpa Variabel Logika) untuk kondisi data tidak terurut

SEQUENTIAL SEARCH 11/11/2010. Sequential Search (Tanpa Variabel Logika) untuk kondisi data tidak terurut Tujuan Searching & Sorting Pertemuan 9-10 Dosen Pembina Danang Junaedi TUJUAN MATERI Setelah mengikuti materi pertemuan ini, mahasiswa diharapkan dapat 1. Menjelaskan dan menggunakan metode pencarian dalam

Lebih terperinci

NASKAH UJIAN UTAMA. JENJANG/PROG. STUDI : DIPLOMA TIGA / MANAJEMEN INFORMATIKA HARI / TANGGAL : Kamis / 18 FEBRUARI 2016

NASKAH UJIAN UTAMA. JENJANG/PROG. STUDI : DIPLOMA TIGA / MANAJEMEN INFORMATIKA HARI / TANGGAL : Kamis / 18 FEBRUARI 2016 NASKAH UJIAN UTAMA MATA UJIAN : LOGIKA DAN ALGORITMA JENJANG/PROG. STUDI : DIPLOMA TIGA / MANAJEMEN INFORMATIKA HARI / TANGGAL : Kamis / 18 FEBRUARI 2016 NASKAH UJIAN INI TERDIRI DARI 80 SOAL PILIHAN GANDA

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

AlgoritmaBrute Force. Desain dan Analisis Algoritma (CS3024)

AlgoritmaBrute Force. Desain dan Analisis Algoritma (CS3024) AlgoritmaBrute Force Desain dan Analisis Algoritma (CS3024) Definisi Brute Force Brute forceadalah sebuah pendekatan yang lempang (straightforward) untuk memecahkan suatu masalah, biasanya didasarkan pada

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

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

2. Sebuah prosedur langkah demi langkah yang pasti untuk menyelesaikan sebuah masalah disebut : a. Proses b. Program c. Algoritma d. Prosesor e.

2. Sebuah prosedur langkah demi langkah yang pasti untuk menyelesaikan sebuah masalah disebut : a. Proses b. Program c. Algoritma d. Prosesor e. 1. Dalam menyusun suatu program, langkah pertama yang harus dilakukan adalah : a.membuat program b. Membuat Algoritma c. Membeli komputer d. Proses e. Mempelajari program 2. Sebuah prosedur langkah demi

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

METODE DEVIDE AND CONQUER (DANDC)

METODE DEVIDE AND CONQUER (DANDC) METODE DEVIDE AND CONQUER (DANDC) Di dalam metode ini, kita mempunyai suatu fungsi untuk menghitung input. Kemudian n input tersebut dipartisi menjadi k subset input yang berbeda (1< k n) k subproblem

Lebih terperinci

Algoritma dan Pemrograman 2 PENGURUTAN

Algoritma dan Pemrograman 2 PENGURUTAN Algoritma dan Pemrograman 2 PENGURUTAN Pengurutan : proses mengatur sekumpulan obyek meurut urutan atau susunan tertentu. Urutan menaik(ascending) : L[0] L[1] L[2] L[n] Urutan menurun(descending) : L[0]

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

1. Kompetensi Mengenal dan memahami notasi-notasi algoritma yang ada.

1. Kompetensi Mengenal dan memahami notasi-notasi algoritma yang ada. Semester : 4 Pengenalan Algoritma dan Program 200 menit No. : LST/EKA/EKA259/01 Revisi : 01 Tgl. : 10-2-2014 Hal. 1 dari 2 hal. 1. Kompetensi Mengenal dan memahami notasi-notasi algoritma yang ada. 2.

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

ALGORITMA DIVIDE AND CONQUER

ALGORITMA DIVIDE AND CONQUER ALGORITMA DIVIDE AND CONQUER By Gapra. Email : ga_pra_27@yahoo.co.id 1. Pengertian Algoritma Divide and Conquer merupakan algoritma yang sangat populer di dunia Ilmu Komputer. Divide and Conquer merupakan

Lebih terperinci

Algoritma dan Pemrograman Sorting (Pengurutan) IS1313. Oleh: Eddy Prasetyo N

Algoritma dan Pemrograman Sorting (Pengurutan) IS1313. Oleh: Eddy Prasetyo N Algoritma dan Pemrograman Sorting (Pengurutan) IS1313 Oleh: Eddy Prasetyo N Pengantar Sorting merupakan sebuah proses untuk mengatur item dalam suatu urutan tertentu ( menaik atau menurun ). Misalnya untuk

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

JARINGAN UNTUK MERGING

JARINGAN UNTUK MERGING SORTING - Merging Definisi: A = {a 1, a 2,..., a r } B = {b 1, b 2,..., b s } merupakan dua deret angka yang terurut naik; merge A dan B merupakan deret C = {c 1, c 2,..., c r+s } yang juga terurut naik,

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

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

Aplikasi Divide and Conquer pada Perkalian Large Integer untuk Menghitung Jumlah Rute TSP Brute Force

Aplikasi Divide and Conquer pada Perkalian Large Integer untuk Menghitung Jumlah Rute TSP Brute Force Aplikasi Divide and Conquer pada Perkalian Large Integer untuk Menghitung Jumlah Rute TSP Brute Force Martin Lutta Putra - 13515121 Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika

Lebih terperinci

Pendahuluan. Ukuran input (input s size)

Pendahuluan. Ukuran input (input s size) Kompleksitas Algoritma Sesi 14 Pendahuluan Sebuah algoritma tidak saja harus benar, tetapi juga harus mangkus (efisien). Algoritma yang mangkus ialah algoritma yang meminimumkan kebutuhan waktu dan ruang.

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

Sorting adalah proses mengatur sekumpulan objek menurut aturan atau susunan tertentu. Urutan objek tersebut dapat menaik (ascending = dari data kecil

Sorting adalah proses mengatur sekumpulan objek menurut aturan atau susunan tertentu. Urutan objek tersebut dapat menaik (ascending = dari data kecil Sorting adalah proses mengatur sekumpulan objek menurut aturan atau susunan tertentu. Urutan objek tersebut dapat menaik (ascending = dari data kecil ke data lebih besar) atau menurun (descending = dari

Lebih terperinci

Algoritma Transposisi (Bubble Sort/pengurutan gelembung)

Algoritma Transposisi (Bubble Sort/pengurutan gelembung) Algoritma Sorting Target: Algoritma berdasarkan Priority Queue Selection Sort & Heap Sort Algoritma penyisipan dalam keterurutan Insertion Sort & Tree Sort Algoritma transposisi Bubble Sort Algoritma increment

Lebih terperinci

SEARCHING & SORTING. Pendahuluan

SEARCHING & SORTING. Pendahuluan SEARCHING & SORTING Pendahuluan Sorting dan searching merupakan salah satu operasi dasar dalam ilmu komputer. Sorting merupakan suatu proses (operasi) yang mengurutkan data dalam suatu urutan yang diberikan

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

UNIVERSITAS GUNADARMA

UNIVERSITAS GUNADARMA UNIVERSITAS GUNADARMA SK No. 92 / Dikti / Kep /1996 Fakultas Ilmu Komputer, Teknologi Industri, Ekonomi,Teknik Sipil & Perencanaan, Psikologi, Sastra Program Diploma (D3) Manajemen Informatika, Teknik

Lebih terperinci

Powered by icomit.wordpress.com

Powered by icomit.wordpress.com ALGORITMA SELECTION SORT 1. Konsep Dasar Selection sort adalah salah satu algoritma yang digunakan untuk memecahkan masalah pengurutan(sorting) data pada suatu larik(array). Ide dasar algoritma ini adalah

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

PENGURUTAN DATA 2.1 Definisi Pengurutan 2.2 Metode-metode Pengurutan

PENGURUTAN DATA 2.1 Definisi Pengurutan 2.2 Metode-metode Pengurutan PENGURUTAN DATA 2.1 Definisi Pengurutan Pengurutan (sorting) adalah proses mengatur sekumpulan objek menurut urutan atau susunan tertentu. Urutan objek tersebut dapat menaik (ascending) atau menurun (descending).

Lebih terperinci

Design and Analysis Algorithm

Design and Analysis Algorithm Design and Analysis Algorithm Pertemuan 02 Drs. Achmad Ridok M.Kom Fitra A. Bachtiar, S.T., M. Eng Imam Cholissodin, S.Si., M.Kom Aryo Pinandito, MT Contents 31 2 Analisis Algoritma Analisis Efisiensi

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

Algoritma dan Struktur Data

Algoritma dan Struktur Data Algoritma dan Struktur Data Click to edit Master subtitle style Pertemuan 3 Pengantar Analisis Efisiensi Algoritma Analisa efisiensi algoritma bertujuan mengestimasi waktu dan memori yang dibutuhkan untuk

Lebih terperinci

Pengurutan pada Array. Tim PHKI Modul Dasar Pemrograman Fakultas Ilmu Komputer UDINUS Semarang

Pengurutan pada Array. Tim PHKI Modul Dasar Pemrograman Fakultas Ilmu Komputer UDINUS Semarang Pengurutan pada Array Tim PHKI Modul Dasar Pemrograman Fakultas Ilmu Komputer UDINUS Semarang Pengurutan (Sorting) Sorting atau pengurutan data adalah proses yang sering harus dilakukan dalam pengolahan

Lebih terperinci

Algoritma dan Struktur Data

Algoritma dan Struktur Data Modul Praktikum Algoritma dan Struktur Data SORTING Sisilia Thya Safitri, ST., MT ST3 Telkom Purwokerto Jl. DI Panjaitan 128 Purwokerto * Untuk kalangan sendiri Praktikum 10 Materi : Sorting Waktu : 100

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

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

Teknik Pengurutan Kartu Remi

Teknik Pengurutan Kartu Remi Teknik Pengurutan Kartu Remi Aloysius Adrian 1) 1) Sekolah Teknik Elektro Informatika, Program Studi Teknik Informatika Institut Teknologi Bandung, Jalan Ganesha 10, Bandung, Email: aloy@students.itb.ac.id

Lebih terperinci

STRUKTUR DATA. By : Sri Rezeki Candra Nursari 2 SKS

STRUKTUR DATA. By : Sri Rezeki Candra Nursari 2 SKS STRUKTUR DATA By : Sri Rezeki Candra Nursari 2 SKS Literatur Sjukani Moh., (2007), Struktur Data (Algoritma & Struktur Data 2) dengan C, C++, Mitra Wacana Media Utami Ema. dkk, (2007), Struktur Data (Konsep

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