Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

KUG1A3 Algoritma& Pemrograman

Presentasi serupa


Presentasi berjudul: "KUG1A3 Algoritma& Pemrograman"— Transcript presentasi:

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

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

3 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

4 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

5 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

6 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

7 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

8 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

9 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

10 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

11 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) 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

12 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

13 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

14 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

15 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

16 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

17 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

18 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

19 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

20 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

21 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

22 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

23 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

24 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

25 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

26 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

27 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

28 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

29 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

30 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

31 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

32 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

33 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

34 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

35 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

36 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

37 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

38 KUG1A3 Algoritma & Pemrograman
Soal UAS0506 Data : Jika mengurutan menggunakan Buble Sort, maka Pada pass kedua, urutan data adalah : 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

39 KUG1A3 Algoritma & Pemrograman
Soal UAS0506 Data : , 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 : Data sudah terurut pada akhir pass ke-5 Jumlah ’pass’ untuk tiap menjalankan algoritma tergantung urutan data. KUG1A3 Algoritma & Pemrograman

40 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


Download ppt "KUG1A3 Algoritma& Pemrograman"

Presentasi serupa


Iklan oleh Google