KUG1A3 Algoritma& Pemrograman

Slides:



Advertisements
Presentasi serupa
Pencarian ( Searching)
Advertisements

BAB III – ARRAY STATIS II
Sorting (Pengurutan).
PENGURUTAN (SORTING).
PENCARIAN (SEARCHING)
Pertemuan – 14 Sorting (Bab 8) Informatics Engineering Department
Algoritma dan Struktur Data
Teknik Informatika - Universitas Muhammadiyah Malang (UMM)
BAB III PENGURUTAN DATA (SORTING) Tertia Avini, S. Kom tertiaavini
Algoritma Sorting Tenia Wahyuningrum.
Metode Pengurutan (Sorting)
Algoritma sorting dasar (lanjutan) Pertemuan 11
CS1023 Pemrograman Komputer Lecture 20 Array / Tabel [2]
Prodi S1-Sistem Komputer, F Teknik Elektro
Algoritma dan Pemrograman – Pertemuan 3 & 4 Sorting (Pengurutan)
Prodi S1-Sistem Komputer, F Teknik Elektro
Algoritma dan Pemrograman STRUKTUR PEMILIHAN (SELECTION) lanjutan
KUG1C3 Dasar Pemrograman
KUG1A3 Algoritma& Pemrograman
KUG1A3 Algoritma& Pemrograman
Algoritma dan Struktur Data 1 pertemuan 11
LANJUTAN DARI SHORTING
Prodi S1-Sistem Komputer, F Teknik Elektro
Pencarian pada Array Tim PHKI Modul Dasar Pemrograman
Algoritma dan Struktur Data
STRUKTUR DATA Marjiyono, S.kom
Sorting Pengurutan data dalam struktur data sangat penting terutama untuk data yang beripe data numerik ataupun karakter. Pengurutan dapat dilakukan secara.
KUG1C3 Dasar Algoritma & Pemrograman
Algoritma dan Pemrograman Sorting
Prodi S1-Sistem Komputer, F Teknik Elektro
Struktur data Oleh: Tim Struktur Data IF ARRAY STATIS.
Algoritma dan Pemrograman Searching
PENGURUTAN (SORTING) Pengurutan adalah proses mengatur sekumpulan objek menurut urutan atau susunan tertentu. Urutan objek tersebut dapat dilakukan secara.
PENGURUTAN (SORTING).
SORTING (Lanjut).
Pengurutan (Sorting).
CS1023 Pemrograman Komputer
Sorting.
Pengurutan pada Array Tim PHKI Modul Dasar Pemrograman
STRUKTUR DATA Array Statis.
Algoritma dan Pemrograman STRUKTUR PEMILIHAN (SELECTION) lanjutan
Metode pemecahan masalah
Imam Gunawan, M. Kom STMIK-AMIK Jayanusa Padang
Algoritma dan Pemrograman Sorting
KUG1E3/ Pemrograman Terstruktur 1
Review Array Sri Nurhayati, MT.
BINARY SEARCH Tim Algoritma Pemrograman Teknik Informatika
SEARCHING (PENCARIAN)
Nama : Siti Hajar Unit : B Nim : No.Hp : 0852 – 2000 – 3786.
STRUKTUR DATA Array Statis.
Pengurutan Rekaman SUB Pengurutan Gelembung.
Algoritma dan Pemrograman Sorting
ARRAY STATIS Sri Nurhayati, MT.
Bubble sort.
Sorting.
Sorting (Pengurutan).
Pengurutan (Shorting)
SORTING ARRAY SESI 2.
ALGORITMA PENGURUTAN (SORTING)
Algoritma dan Pemrograman STRUKTUR PEMILIHAN (SELECTION) lanjutan
Review Array Sri Nurhayati, MT.
ARRAY STATIS Sri Nurhayati, MT.
SORTING (PENGURUTAN).
Sorting Dasar Pemrograman
PEMROGRAMAN Belajar memrogram : belajar tentang metodologi pemecahan masalah, kemudian menuangkannya dalam suatu notasi yang mudah dipahami Belajar bahasa.
IT234 Algoritma dan Struktur Data
Pengurutan (sorting).
MODEL SORTING Kelompok V Rahmawati ( )
Sorting (Pengurutan).
SORTING.
Transcript presentasi:

KUG1A3 Algoritma& Pemrograman Burhanuddin D Prodi S1-Sistem Komputer, F Teknik Elektro Universitas Telkom Presentasi Array 4 : Sorting

KUG1A3 Algoritma & Pemrograman Pokok Bahasan Bubble Sort Selection Sort Insertion Sort ( Opsional ) Latihan KUG1A3 Algoritma & Pemrograman

KUG1A3 Algoritma & Pemrograman Bubble Sort Menerapkan pertukaran harga pada proses penukarannya. Mengambil ide dari gelembung : Elemen berharga kecil "diapungkan“ / diangkat ke atas melalui pertukaran. Proses dilakukan sebanyak N-1 tahapan / pass. Pada setiap pass, ada bagian yang terurut dan ada yang belum KUG1A3 Algoritma & Pemrograman

KUG1A3 Algoritma & Pemrograman Proses Bubble Sort Bandingkan elemen pertama dan kedua : Jika elemen pertama lebih besar dari elemen kedua, maka tukarkan posisi kedua elemen tersebut. Lakukan juga untuk elemen kedua dan ketiga, kemudian ketiga dan keempat dst. Pada pembandingan ke N-1, nilai terbesar berada pada posisi ke N. Ini disebut pass I. Ulangi lagi pengulangan dari awal, mulai elemen pertama hingga elemen ke N-1. Ulangi proses sampai (N-1) kali untuk semua elemen. KUG1A3 Algoritma & Pemrograman

KUG1A3 Algoritma & Pemrograman ILUSTRASI Data ={ 1, 4, 3, 4, 5, 4, 5, 5, 4 } 1. Bandingkan elemen pertama dan kedua : Jika elemen pertama lebih besar dari elemen kedua, maka tukarkan posisi kedua elemen tersebut. Data1 > Data2  1 > 4 ? Tdk, biarkan 2. Lakukan juga untuk elemen kedua dan ketiga, kemudian ketiga dan keempat dst. KUG1A3 Algoritma & Pemrograman

KUG1A3 Algoritma & Pemrograman ILUSTRASI Data ={ 1, 4, 3, 4, 5, 4, 5, 5, 4 } Bandingkan elemen kedua dan ketiga, ketiga dan keempat, dan seterusnya: Data2 > Data3  4 > 3 ? Ya, tukarkan → Data2 = 3, Data3 = 4 Data ={ 1, 3, 4, 4, 5, 4, 5, 5, 4 } Data3 > Data4  4 > 4 ? Tdk, biarkan Data4 > Data5  4 > 5 ? Tdk, biarkan KUG1A3 Algoritma & Pemrograman

KUG1A3 Algoritma & Pemrograman ILUSTRASI Data ={ 1, 3, 4, 4, 5, 4, 5, 5, 4 } Data5 > Data6  5 > 4 ? Ya, tukarkan → Data5 = 4, Data6 = 5 Data ={ 1, 3, 4, 4, 4, 5, 5, 5, 4 } Data6 > Data7  5 > 5 ? Tdk, biarkan Data7 > Data8  5 > 5 ? Tdk, biarkan Data8 > Data9  5 > 4 ? Ya, tukarkan → Data8 = 4, Data9 = 5 Data ={ 1, 3, 4, 4, 4, 5, 5, 4, 5 } KUG1A3 Algoritma & Pemrograman

KUG1A3 Algoritma & Pemrograman ILUSTRASI Sebelum proses penukaran Data ={ 1, 4, 3, 4, 5, 4, 5, 5, 4 } Setelah penukaran tahap I /pass I Data ={ 1, 3, 4, 4, 4, 5, 5, 4, 5 } Pada pembandingan ke N-1, nilai terbesar berada pada posisi ke N. Ini disebut pass I. Perhatikan bahwa nilai elemen ke-N/ terakhir adalah nilai terbesar KUG1A3 Algoritma & Pemrograman

KUG1A3 Algoritma & Pemrograman ILUSTRASI Ulangi lagi pengulangan dari awal, mulai elemen pertama hingga elemen ke N-1. Setelah penukaran tahap I /pass I Data ={ 1, 3, 4, 4, 4, 5, 5, 4, 5 } Setelah penukaran tahap II /pass II Data ={ 1, 3, 4, 4, 4, 5, 4, 5, 5 } Perhatikan bahwa nilai elemen ke-(N-1) dan ke-N sudah urut. KUG1A3 Algoritma & Pemrograman

KUG1A3 Algoritma & Pemrograman ILUSTRASI Ulangi proses sampai (N-1) kali untuk semua elemen. Setelah penukaran tahap III /pass III Data ={ 1, 3, 4, 4, 4, 4, 5, 5, 5 } Setelah ke-4,{ 1, 3, 4, 4, 4, 4, 5, 5, 5 } Setelah ke-5,{ 1, 3, 4, 4, 4, 4, 5, 5, 5 } Setelah ke-6,{ 1, 3, 4, 4, 4, 4, 5, 5, 5 } Setelah ke-7,{ 1, 3, 4, 4, 4, 4, 5, 5, 5 } Setelah ke-8,{ 1, 3, 4, 4, 4, 4, 5, 5, 5 } Setelah ke-9,{ 1, 3, 4, 4, 4, 4, 5, 5, 5 } KUG1A3 Algoritma & Pemrograman

KUG1A3 Algoritma & Pemrograman HASIL ILUSTRASI Perhatikan : Setelah pass ke-3, sebenarnya Data sudah terurut. Mengapa diulangi terus ? Karena algortima ditetapkan demikian ! Pada kasus ekstrim, saat Data terurut menurun, maka penukaran dilakukan sebanyak (N-1)+(N-2)+(N-3)+...+3+2+1 kali. Setiap selesai 1 pass, terakhir selalu terurut Pass I, Data ke-N terurut Pass II, 2 data terakhir terurut Pass III, 3 data terakhir terurut dst KUG1A3 Algoritma & Pemrograman

ILUSTRASI KASUS EKSTRIM Data ={ 9,8,7,6,5,4,3,2,1} Pass I, Data={ 8,7,6,5,4,3,2,1,9} Pass II, Data={ 7,6,5,4,3,2,1,8,9} Pass III, Data={ 6,5,4,3,2,1,7,8,9} Pass IV, Data={ 5,4,3,2,1,6,7,8,9} Pass V, Data={ 4,3,2,1,5,6,7,8,9} Pass VI, Data={ 3,2,1,4,5,6,7,8,9} Pass VII, Data={ 2,1,3,4,5,6,7,8,9} Pass VIII, Data ={ 1,2,3,4,5,6,7,8,9} KUG1A3 Algoritma & Pemrograman

KUG1A3 Algoritma & Pemrograman Bubble Sort Procedure BubbleSort(Input N : integer) { Mengurutkan array Tab dg Bubble sort } Kamus i,k,Pass, Temp : integer Algoritma Pass traversal [1..N-1] k traversal [2..N-Pass+1] { Bandingkan elemen ke-k dengan elemen ke-k-1} if Tabk-1 > Tabk then Temp  Tabk Tabk  Tabk-1 Tabk-1  Temp KUG1A3 Algoritma & Pemrograman

KUG1A3 Algoritma & Pemrograman KETERANGAN Perhatikan : Pass traversal [1..N-1] k traversal [2..N-Pass+1] Pada awal pass I : k mulai dari 2 k sampai N-Pass+1, Jadi k sampai (5-1+1)=5 Pada awal pass II, k dari 2 sampai 4 Pada awal pass III, k dari 2 sampai 3 Pada awal pass IV, k dari 2 sampai 2 KUG1A3 Algoritma & Pemrograman

KUG1A3 Algoritma & Pemrograman CONTOH KASUS Data ={ 9,1,5,3,2} 9 1 5 1 9 9 3 5 9 3 2 9 2 Setelah pass pertama, nilai Data : { 1, 5, 3, 2, 9 } Datak Datak-1 Datak-1 Datak Datak Datak-1 Datak Datak-1 Datak-1 > Datak Datak-1 > Datak Datak-1 > Datak Datak-1 > Datak Ya Ya Ya Ya Datak-1 = 1, Datak = 9 Datak-1 = 5, Datak = 9 Datak-1 = 3, Datak = 9 Datak-1 = 3, Datak = 9 KUG1A3 Algoritma & Pemrograman

KUG1A3 Algoritma & Pemrograman CONTOH KASUS Setelah passI, Data ={ 1,5,3,2,9} 3 1 5 2 3 5 5 2 9 Setelah pass kedua, nilai Data : { 1, 3, 2, 5, 9 } Datak Datak-1 Datak-1 Datak Datak Datak-1 Datak-1 > Datak Datak-1 > Datak Datak-1 > Datak Tidak Ya Ya Biarkan ! Datak-1 = 3, Datak = 5 Datak-1 = 2, Datak = 5 KUG1A3 Algoritma & Pemrograman

1 2 3 3 2 5 9 CONTOH KASUS Setelah pass ketiga, nilai Data : Setelah passII, Data ={ 1,3,2,5,9} 1 2 3 3 2 5 9 Datak Datak-1 Datak-1 Datak Setelah pass ketiga, nilai Data : { 1, 2, 3, 5, 9 } Datak-1 > Datak Datak-1 > Datak Tidak Ya Biarkan ! Datak-1 = 2, Datak = 3 KUG1A3 Algoritma & Pemrograman

1 2 3 5 9 CONTOH KASUS Setelah pass keempat, nilai Data : Setelah passIII, Data ={ 1,2,3,5,9} 1 2 3 5 9 Setelah pass keempat, nilai Data : { 1, 2, 3, 5, 9 } Datak-1 Datak Datak-1 > Datak Tidak Biarkan ! KUG1A3 Algoritma & Pemrograman

Modifikasi Bubble Sort Seringkali pengulangan tidak perlu dilakukan (N-1)+(N-2) kali, karena data sudah terurut. Algortima dimodifikasi : Jika data sudah urut, maka pengulangan dihentikan. Hal ini perlu pengecekan keterurutan data. Pengecekan keterurutan : Data sudah terurut jika tidak ada lagi pertukaran. Jadi, dapat ditambahkan suatu variabel boolean yang bernilai benar jika masih ada pertukaran, dan salah jika tidak ada lagi pertukaran. KUG1A3 Algoritma & Pemrograman

KUG1A3 Algoritma & Pemrograman Modified Bubble Sort Kamus k,Pass, Temp : integer; Tukar : boolean Algoritma Pass  1; Tukar  true While Pass ≤ N and Tukar do Tukar  false k traversal [2..N-Pass+1] if Tabk-1 > Tabk then Temp  Tabk Tabk  Tabk-1 Tabk-1  Temp Tukar  true Pass  Pass + 1 KUG1A3 Algoritma & Pemrograman

KUG1A3 Algoritma & Pemrograman Selection Sort Pada prinsipnya, pengurutan juga dapat dilakukan dengan mencari nilai maksimum, kemudian ditukarkan posisinya dengan elemen paling akhir. Proses dilakukan kembali untuk pass berikutnya, tanpa mengikutsertakan elemen paling akhir. Proses diteruskan sampai semua elemen dipilih sebagai elelem maksimum, keculai elemen terkecil. Jadi, proses pencarian nilai maksimum dilakukan sebanyak (N-1) kali. Selection dg mencari nilai maksimun disebut juga Maximum Sort, sedangkan dengan pencarian nilai minimum disebut juga Minimum Sort. KUG1A3 Algoritma & Pemrograman

Selection Sort : Proses Proses dilakukan sebanyak N tahapan/pass : Tentukan nilai maksimum data dari indeks [1..N], simpan nilai IMax Tukar posisi nilai maksimum dengan posisi terakhir Temp  DataImax DataImax  DataN DataN  Temp Berikutnya dilakukan untuk Data [1..N-1] Proses diteruskan sampai Data[1..2] Akan didapatkan Data terurut [1..N] KUG1A3 Algoritma & Pemrograman

KUG1A3 Algoritma & Pemrograman CONTOH KASUS Data ={ 9,1,5,3,2} 2 9 1 5 3 9 2 Setelah pass pertama, nilai Data : { 2, 1, 5, 3, 9 } 9 DataN DataImax Temp= Tukarkan : Temp  DataImax DataImax  DataN DataN  Temp Cari nilai maksimum : Didapat pada Data1 Imax = 1 KUG1A3 Algoritma & Pemrograman

KUG1A3 Algoritma & Pemrograman CONTOH KASUS Setelah pass I, Data ={ 2,1,5,3,9} 2 1 5 3 5 3 9 5 DataImax DataN-1 Temp= Setelah pass pertama, nilai Data : { 2, 1, 3, 5, 9 } Tukarkan : Temp  DataImax DataImax  DataN DataN  Temp Cari nilai maksimum [1..N-1]: Didapat pada Data3 Imax = 3 KUG1A3 Algoritma & Pemrograman

2 1 3 5 9 3 CONTOH KASUS Setelah pass pertama, nilai Data : Setelah pass II, Data ={ 2,1,3,5,9} 2 1 3 5 9 3 DataImax Temp= Setelah pass pertama, nilai Data : { 2, 1, 3, 5, 9 } Cari nilai maksimum [1..N-2]: Didapat pada Data3 Imax = 3 Tukarkan : Temp  DataImax DataImax  DataN DataN  Temp DataN-2 KUG1A3 Algoritma & Pemrograman

CONTOH KASUS Setelah pass III, Data ={ 2,1,3,5,9} 1 2 2 1 3 5 9 2 DataImax DataN-1 Temp= Setelah pass keempat, nilai Data : { 1, 2, 3, 5, 9 }  Terurut ! Cari nilai maksimum [1..N-3]: Didapat pada Data1 Imax = 1 Tukarkan : Temp  DataImax DataImax  DataN DataN  Temp KUG1A3 Algoritma & Pemrograman

KUG1A3 Algoritma & Pemrograman Selection Sort Kamus i,Pass, Temp : integer Algoritma Pass traversal [1..N-1] Imax 1 i traversal [2..N-Pass+1] if (TabImax < Tabi ) then Imax  i Temp  TabImax TabImax  TabN-Pass+1 TabN-Pass+1  Temp KUG1A3 Algoritma & Pemrograman

KUG1A3 Algoritma & Pemrograman Selection Sort Kamus i,Pass, Temp : integer Algoritma Pass traversal [0..N-2] Imax 0 i traversal [1..N-Pass] if (TabImax < Tabi ) then Imax  i Temp  TabImax TabImax  TabN-Pass TabN-Pass  Temp KUG1A3 Algoritma & Pemrograman

KUG1A3 Algoritma & Pemrograman Insertion Sort Prinsip kerjanya adalah : menyisipkan nilai elemen pada tempat yang sesuai Menggunakan penggeseran untuk mencari tempat yang tepat, kemudian menyisipkan ke tempatnya yang seharusnya. KUG1A3 Algoritma & Pemrograman

KUG1A3 Algoritma & Pemrograman Proses Insertion Sort Data1 dianggap sudah tepat tempatnya Data2 harus diposisikan pada tempat yang tepat : sebelum atau setelah Data1 . Data3 harus dicarikan tempat yang tepat: sebelum Data1 , sebelum Data2 atau setelah Data2. Perhatikan bahwa setelah peletakan posisi, Data1, Data2 dan Data3 terurut. Demikian juga dengan Data4 dan seterusnya. Setelah peletakan Datai, Data1 sampai Datai tetap terurut. Proses diteruskan sampai DataN . KUG1A3 Algoritma & Pemrograman

Keterangan Insertion Sort Pass dimulai dari nilai 2 Pada setiap Pass, terdapat bagian terurut dan belum terurut. Tiap saat sebuah elemen tak terurut disisipkan ke bagian yang terurut, dengan cara pergeseran. Metoda pengurutan ini cukup efisien (≅ N). Terdapat 2 varian : Tanpa Sentinel / Dengan Sentinel KUG1A3 Algoritma & Pemrograman

Insertion Sort : Ilustrasi Indeks 1 2 3 4 5 6 7 3 1 7 2 5 2 4 Nilai Pertama ( pass1), susunan sama. Pada pass 2 : Data2 (1) diposisikan sebelum Data1 (3) 1 3 1 3 7 2 5 2 4 1 Setelah pass 2, Data={1,3,7,2,5,2,4} Temp= KUG1A3 Algoritma & Pemrograman

Insertion Sort : Ilustrasi Awal pass 3 1 3 7 2 5 2 4 Nilai Pada pass 3, posisi Data3 tetap. Pada pass 4 : Data4 (2) diposisikan sebelum Data2 (3) 1 2 3 7 3 2 7 5 2 4 3 7 2 Temp= Setelah pass 2, Data={1,2,3,7,5,2,4} KUG1A3 Algoritma & Pemrograman

Insertion Sort : Ilustrasi Awal pass 5 1 2 3 7 5 2 4 Nilai Pada pass 5 : Data5 (2) diposisikan sebelum Data4 (7) 1 2 3 7 5 7 5 2 4 7 5 Setelah pass 2, Data={1,2,3,5,7,2,4} Temp= KUG1A3 Algoritma & Pemrograman

Insertion Sort : Ilustrasi Dengan cara yg sama, pada akhir pass 6 1 2 2 3 5 7 4 Nilai Pada akhir pass 7 : 1 2 2 3 4 5 7 Nilai KUG1A3 Algoritma & Pemrograman

KUG1A3 Algoritma & Pemrograman Insertion Sort Kamus i,Pass, Temp : integer Algoritma Pass traversal [2..N] Temp  TabPass i  Pass – 1 while ( Temp < Tabi) and (i > 1 ) do Tabi+1  Tabi i  i - 1 if Temp ≥ Tabi then Tabi+1  Temp else Tabi+1  Tabi Tabi  Temp KUG1A3 Algoritma & Pemrograman

Insertion Sort with Sentinel Kamus i,Pass, Temp : integer Algoritma Pass traversal [2..N] Temp  TabPass Tab0  Temp { Sentinel} i  Pass – 1 while ( Temp < Tabi) do Tabi+1  Tabi i  i - 1 Tabi+1  Temp KUG1A3 Algoritma & Pemrograman

KUG1A3 Algoritma & Pemrograman Soal UAS0506 Data : 2 3 5 6 5 6 2 Jika mengurutan menggunakan Buble Sort, maka Pada pass kedua, urutan data adalah : 2 3 5 5 6 2 6 Pada pass keempat, data sudah terurut. Setelah pass kedua, jumlah total penukaran tempat adalah 3 kali. Dalam bubble sort, harus selalu diketahui nilai data terkecil setiap saat. Total jumlah ’pass’ yang dilakukan sebanyak n kali, dengan n adalah cacah data. KUG1A3 Algoritma & Pemrograman

KUG1A3 Algoritma & Pemrograman Soal UAS0506 Data : 2 3 5 6 5 6 2 , diurutkan dengan selection sort, maka : Pertama temukan elemen array terkecil ( minimum ) dan pertukarkan dengan elemen array di posisi (indeks ) tengah. Temukan titik tengah dari array, uji apakah nilai tersebut adalah nilai yang dicari Urutan data setelah pass pertama : 2 2 5 6 5 6 3 Data sudah terurut pada akhir pass ke-5 Jumlah ’pass’ untuk tiap menjalankan algoritma tergantung urutan data. KUG1A3 Algoritma & Pemrograman

KUG1A3 Algoritma & Pemrograman Soal UAS0506 Berkenaan dengan sorting data : Insertion sort memerlukan elemen array penghitung. Counting sort perlu data berupa bilangan genap ( positif & negatif ) Bubble sort perlu tahu data tertinggi dan terendah. Selection sort perlu mencari nilai data yang maksimal. Jumlah pengujian Bubble sort adalah (N-1) kali. KUG1A3 Algoritma & Pemrograman