algoritma dan pemrograman 2 - reezeki2011 · pdf filemateri • teks/string • ......
TRANSCRIPT
ALGORITMA DAN PEMROGRAMAN 2
3 SKS By : Sri Rezeki Candra Nursari
MATERI
• Teks/string• Pointer• File• Struktur• Kelas/Class• Konstruktor dan
Destruktor• Kelas dan Obyek
• Overloading Operator• Inheritance (Pewarisan)• Polimorfisme • Template Fungsi dan
Kelas• Sort• Search
SELEKSI/SELECTION SORT
Pertemuan 13
3 SKS
SORT• Sort adalah suatu proses pengurutan data
yang sebelumnya disusun secara acak atau tidak teratur menjadi urut.
• Pengurutan terbagi menjadi 2 yaitu :–Ascending (pengurutan dari kecil ke besar)–Descending (pengurutan dari besar ke kecil)
SORT• Untuk masalah pengurutan pada array kita tidak
dapat langsung menukar isi dari variabel yang ada, tetapi menggunakan metode swap
• Macam-macam metode pengurutan, yaitu :– Selection Sort (Metode pengurutan seleksi)– Insertion Sort (Metode pengurutan sisip
langsung)– Bubble Sort (Metode pengurutan gelembung)
Selection Sort (Metode pengurutan seleksi)
• Melakukan pengurutan dengan cara mencari data yang terkecil kemudian menukarkannya dengan data yang digunakan sebagai acuan atau sering dinamakan pivot
• Suatu metode pengurutan yang membandingkan elemen yang sekarang dengan elemen berikutnya sampai ke elemen yang terakhir.
• Jika ditemukan elemen lain yang kecil elemen sekarang maka dicatat posisinya dan langsung dilakukan penukaran
Selection Sort (Metode pengurutan seleksi)
• Proses pengurutan dengan metode seleksi adalah
1. Dilakukan pengulangan dari 1 sampai dengan (N-1)2. Tiap-tiap pengulangan dicari data yang paling kecil di
antara data ke (i+1) sampai dengan data terakhir (=N)
3. Data terkecil ini kemudian ditukarkan dengan pivot, yaitu data ke-i
4. Apabila data terkecil tersebut lebih besar daripada data ke-i, proses penukaran tidak perlu dilakukan
Selection Sort (Metode pengurutan seleksi)
• Algoritmanya sebagai berikut :1. i 12. Selama (i <= N-1) kerjakan baris 3 s.d. 93. k i4. j i + 15. Selama (j <= N) kerjakan baris 6 s.d. 76. Jika (Data[k] > Data[j]) maka k j7. j j + 18. Tukar Data [i] dengan Data [k]9. i i + 1
Pengurutan Selection SortItera
siData Data Data Data Data Data Data Data Data[1] [2] [3] [4] [5] [6] [7] [8] [9]
Awal 65 2 44 26 19 22 5 3 12i=1 65 2 44 26 19 22 5 3 12i=2 2 65 44 26 19 22 5 3 12i=3 2 3 44 26 19 22 5 65 12i=4 2 3 5 26 19 22 44 65 12i=5 2 3 5 12 19 22 44 65 26i=6 2 3 5 12 19 22 44 65 26i=7 2 3 5 12 19 22 44 65 26i=8 2 3 5 12 19 22 26 65 44
Akhir 2 3 5 12 19 22 26 44 65
SELECTION SORT• Dapat dilihat dari penggalan program berikut ini :
void selectionsort(int Array[ ], const int size) {int i, j, smallest, temp;for(i=0; i<size; i++) {
smallest = i;for(j=i; j<size; j++)
{if(Array[smallest] > Array[j])
{smallest =j;
} }temp = Array[i];Array[i] = Array[smallest];numlist[smallest] = temp;} }
Selection Sort - Ascending
Programcontoh 01
Algoritma.........?????Pseudocode.......??????
Selection Sort - Descending
Programcontoh 02
Algoritma.........?????Pseudocode.......??????
INSERTION SORT
Pertemuan 13
3 SKS
INSERTION SORT
• Metode ini biasa juga disebut metode penyisipan langsung.
• Metode ini sering digunakan dalam kehidupan nyata, misalnya saat anda mengurutkan kartu
Insertion Sort (Metode penyisipan langsung)
• Dimulai dari data ke-2 kemudian disisipkan pada tempat yang sesuai.
• Data pada posisi pertama diandaikan memang sudah pada tempatnya
ATAU• Suatu metode pengurutan yang dimulai dari
data ke-2 nilainya dibandingkan dengan data-data sebelumnya kemudian mencari posisi yang tepat untuk menyisipkan
Insertion Sort (Metode penyisipan langsung)
• Proses pengurutan dengan metode penyisipan langsung adalah
1. Data di cek satu persatu mulai dari yang kedua sampai dengan yang terakhir
2. Apabila ditemukan data yang lebih kecil daripada data yang sebelumnya, maka data tersebut disisipkan pada posisi yang sesuai
Insertion Sort (Metode penyisipan langsung)
• Algoritmanya sebagai berikut :1. i 22. Selama (i <= N) kerjakan baris 3 s.d. 103. x data[i]4. Data[0] x5. j i -16. Selama (x < data[j]) kerjakan baris 7 s.d. 87. data[j+1] > data[j] 8. j j - 19. data [j+1] x 10.i i + 1
Pengurutan Straight Insertion SortItera
siData Data Data Data Data Data Data Data Data[1] [2] [3] [4] [5] [6] [7] [8] [9]
Awal 65 2 70 26 19 22 5 3 12i=2 65 2 70 26 19 22 5 3 12i=3 2 65 70 26 19 22 5 3 12i=4 2 65 70 26 19 22 5 3 12i=5 2 26 65 70 19 22 5 3 12i=6 2 19 26 65 70 22 5 3 12i=7 2 19 22 26 65 70 5 3 12i=8 2 5 19 22 26 65 70 3 12i=9 2 3 5 19 22 26 65 70 12
Akhir 2 3 5 12 19 22 26 65 70
INSERTION SORT
• Dapat dilihat dari penggalan program berikut ini:
for(k=1; k<=n-1; k++){ i=k;x=A[i];while(i>=0 && A[i-1]>x)
{ A[i] = A[i-1];i--;
}A[i]=x;}
Insertion SortAscending
Programcontoh 03
Algoritma.........?????Pseudocode.......??????
Insertion SortDescending
Programcontoh 04
Algoritma.........?????Pseudocode.......??????
Tugas :• Contoh 1,2,3 dan 4, buat program
dengan menggunakan class dan konstruktor
• Algoritma dan pseudocode contoh nomor 2,3 dan 4
• Kumpulkan tanggal 8 Juni 2015