ALGORITMA DAN PEMROGRAMAN 2 - reezeki2011 · PDF fileMATERI • Teks/string • ......

Preview:

Citation preview

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

Recommended