Pengurutan pada Array Tim PHKI Modul Dasar Pemrograman

  • Slides: 15
Download presentation
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

Pengurutan (Sorting) • Sorting atau pengurutan data adalah proses yang sering harus dilakukan dalam pengolahan data • Ada 2 macam teknik pengurutan: – pengurutan internal, terhadap data yang tersimpan di memori – pengurutan eksternal, terhadap data yang tersimpan di secondary storage • Algoritma pengurutan internal yang utama antara lain: Counting Sort, Maximum Sort, Insertion Sort, Bubble sort • Performansi pengurutan data sangat menentukan performansi sistem, karena itu pemilihan metoda pengurutan yang cocok akan berperan dalam suatu aplikasi

Pengurutan (Sorting) Definisi dan Kamus Umum • Definisi Persoalan: Diberikan sebuah Tabel integer T

Pengurutan (Sorting) Definisi dan Kamus Umum • Definisi Persoalan: Diberikan sebuah Tabel integer T [1. . N] yang isinya sudah terdefinisi. Tuliskan sebuah algoritma yang mengurutkan elemen tabel sehingga terurut membesar : T 1 T 2 ≤ T 3. . . ≤ TN • Kamus Umum:

Counting Sort (Pengurutan dengan Pencacah) • Pengurutan dengan pencacahan adalah pengurutan yang paling sederhana

Counting Sort (Pengurutan dengan Pencacah) • Pengurutan dengan pencacahan adalah pengurutan yang paling sederhana • Jika diketahui bahwa data yang akan diurut mempunyai daerah jelajah (range) tertentu, dan merupakan bilangan bulat, misalnya [Min. . Max] maka cara paling sederhana untuk mengurut adalah : – Sediakan array Tab. Count [Min. . Max] yang elemennya diinisialisasi dengan nol, dan pada akhir proses Tab. Counti berisi banyaknya data pada tabel asal yang bernilai i – Tabel dibentuk kembali dengan menuliskan kembali harga yang ada berdasarkan isi dari Tab. Count

Counting Sort Ilustrasi 1. Elemen Tabel 3. Telusuri Tab. Count, untuk mengisi Tab. Int

Counting Sort Ilustrasi 1. Elemen Tabel 3. Telusuri Tab. Count, untuk mengisi Tab. Int sesuai isi Tab. Count Tab. Int terurut Tab. Count diinisialisasi 0 Tab. Int Tab. Count Tab. Int’ 1 1 1 2 0 1 1 1 2 1 3 1 0 2 3 2 0 2 3 6 3 0 13 0 2 4 3 4 0 1 4 3 3 5 5 5 0 5 20 1 5 3 6 4 6 0 6 1 0 2 6 4 7 1 7 5 8 3 8 9 5 5 9 10 6 6 10 6 2. Telusuri Tab. Int, sambil mengupdate elemen Tab. Count berisi jumlah kemunculan elemen pada Tab. Int

Counting Sort Algoritma Kamus : T : array [0. . NMax] of integer {Val.

Counting Sort Algoritma Kamus : T : array [0. . NMax] of integer {Val. Min & Val. Max: batas Minimum dan Maximum nilai dalam T, harus diketahui} Tab. Count : array [Val. Min. . Val. Max] of integer [0. . NMax] i, j : integer { indeks untuk traversal tabel } K : integer { jumlah elemen T yang sudah diisi pada pembentukan kembali } N : integer {Jumlah elemen T} ALGORITMA Inisialisasi Tab. Count } Elemen Tabel Tab. Count diinisialisasi 0 i traversal [Val. Min. . Val. Max] Tab. Counti 0 Telusuri Tab. Int, sambil { Counting } mengupdate elemen i traversal [1. . N] Tab. Count berisi Tab. Count. Ti + 1 jumlah kemunculan elemen { Pengisian kembali : T 1 ≤T 2. . . ≤ TN } pada Tab. Int K 0 Telusuri Tab. Int, sambil i traversal [Val. Min. . Val. Max] mengupdate elemen if (Tab. Counti ≠ 0) then Tab. Count berisi j traversal [1. . Tab. Counti] jumlah kemunculan elemen K K + 1 pada Tab. Int TK i

Selection Sort (Pengurutan berdasarkan Seleksi) •

Selection Sort (Pengurutan berdasarkan Seleksi) •

Selection Sort Ilustrasi • Proses diulang untuk elemen 1. . NMax-1 • Pada iterasi

Selection Sort Ilustrasi • Proses diulang untuk elemen 1. . NMax-1 • Pada iterasi ke-i: – Elemen 1. . i-1 sudah terurut – Cari indeks dgn nilai maksimum elemen i. . NMax – Tukar elemen ke-i dengan elemen pada indeks dengan nilai maksimum 1 12 60 60 60 2 35 35 35 3 10 10 10 30 30 30 4 60 12 12 12 25 25 5 30 30 30 10 10 12 6 25 25 12 10 Elemen maksimum pada iterasi Elemen yang akan menampung posisi elemen maksimum

Selection Sort Algoritma Kamus Lokal : T : array [0. . NMax] of integer

Selection Sort Algoritma Kamus Lokal : T : array [0. . NMax] of integer N : integer {Jumlah elemen T} i : integer { indeks untuk traversal tabel } Pass : integer { tahapan pengurutan } Temp : integer { memorisasi harga untuk penukaran } IMax : integer { indeks, dimana T [Pass. . N] bernilai maksimum } Cari indeks dgn nilai maksimum (di bagian tabel yang belum terurut) Tukarkan elemen pada indeks maksimum dengan elemen terujung dari bagian tabel yang belum terurut

Insertion Sort (Pengurutan dengan Penyisipan) • Idenya adalah: – mencari tempat yang "tepat" untuk

Insertion Sort (Pengurutan dengan Penyisipan) • Idenya adalah: – mencari tempat yang "tepat" untuk setiap elemen tabel dengan cara menyisipkan elemen tersebut pada tempatnya di bagian tabel yang sudah terurut – Proses dilakukan sebanyak N-1 tahapan (disebut "pass"). – Pada setiap Pass: • tabel "terdiri dari" dua bagian: yang sudah terurut yaitu [1. . Pass - 1] dan yang belum terurut yaitu [Pass. . NMax] • Ambil elemen TPass, sisipkan ke dalam T[1. . Pass-1] dengan tetap menjaga keterurutan dengan cara menggeser elemen, hingga ditemukan tempat yang cocok untuk elemen TPass tersebut

Insertion Sort Ilustrasi • Elemen 1 dianggap sudah terurut • Pada iterasi ke-i: –

Insertion Sort Ilustrasi • Elemen 1 dianggap sudah terurut • Pada iterasi ke-i: – Elemen 1. . i-1 sudahterurut – Sisipkan elemen ke-i di antara elemen 1. . i 1 dengan tetap menjaga keterurutan elemen 1 12 12 10 10 2 35 35 12 12 3 10 10 35 35 30 25 4 60 60 35 30 30 60 35 6 25 25 25 60 • Dapat dicapai dengan cara menggeser elemen yang nilainya lebih besar Elemen yang akan disisipkan

Insertion Sort Algoritma Kamus : integer { indeks untuk traversal tabel } Pass :

Insertion Sort Algoritma Kamus : integer { indeks untuk traversal tabel } Pass : integer { tahapan pengurutan } Temp : integer { penampung nilai sementara untuk pergeseran} T : array [0. . NMax] of integer N : integer {Jumlah elemen T}

Diskusikan • Bagaimana cara membuat notasi algoritmik untuk membuat: – Bubble sort dengan urutan

Diskusikan • Bagaimana cara membuat notasi algoritmik untuk membuat: – Bubble sort dengan urutan dari besar ke kecil – Selection sort dengan urutan dari kecil ke besar – Insertion sort dengan urutan dari besar ke kecil

Referensi • Inggriani Liem, IF-ITB, Diktat Pemrograman Prosedural (2007) • Catatan: Sebagian besar slide

Referensi • Inggriani Liem, IF-ITB, Diktat Pemrograman Prosedural (2007) • Catatan: Sebagian besar slide ini transformasi dari pdf slide presentasi itb

THANKS

THANKS