Pengurutan pada Array Tim PHKI Modul Dasar Pemrograman

Slides:



Advertisements
Presentasi serupa
Algoritma Sorting Alpro-2.
Advertisements

STRUKTUR DATA (3) sorting array
Sorting (Pengurutan).
PENGURUTAN (SORTING).
SORTING.
STRUKTUR DATA (3) sorting array
Pertemuan – 14 Sorting (Bab 8) Informatics Engineering Department
Source: Sorting Algorithms source:
BAB III PENGURUTAN DATA (SORTING) Tertia Avini, S. Kom tertiaavini
BAB III PENGURUTAN DATA (SORTING) Tertia Avini, S. Kom tertiaavini
STRUKTUR DATA (4) Sorting dan Searching Array
Metode Pengurutan (Sorting)
Algoritma sorting dasar (lanjutan) Pertemuan 11
CS1023 Pemrograman Komputer Lecture 20 Array / Tabel [2]
Sorting Algorithm Norma Amalia, ST, M.Eng.
Fondasi Pemrograman & Struktur Data
KUG1C3 Dasar Pemrograman
KUG1A3 Algoritma& Pemrograman
KUG1A3 Algoritma& Pemrograman
KUG1C3 Dasar Algoritma & Pemrograman
LANJUTAN DARI SHORTING
Pencarian pada Array Tim PHKI Modul Dasar Pemrograman
Algoritma dan Struktur Data
Bubble Sort Metode pengurutan gelembung diinspirasikan oleh gelembung sabun yang berada dipermukaan air. Karena berat jenis gelembung sabun lebih ringan.
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
KUG1A3 Algoritma& Pemrograman
Dasar algoritma dan pemrograman
Prodi S1-Sistem Komputer, F Teknik Elektro
Struktur data Oleh: Tim Struktur Data IF ARRAY STATIS.
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).
Array Tim PHKI Modul Dasar Pemrograman Fakultas Ilmu Komputer
CS1023 Pemrograman Komputer
Sorting.
Metode pemecahan masalah
STRUKTUR DATA sorting array
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
MATERI PERKULIAHAN ALGORITMA & PEMROGRAMAN
Nama : Siti Hajar Unit : B Nim : No.Hp : 0852 – 2000 – 3786.
STRUKTUR DATA Array Statis.
Algoritma dan Pemrograman Sorting
ARRAY STATIS Sri Nurhayati, MT.
Sorting.
ALGORITMA BRUTE FORCE Pertemuan 3.
Sorting (Pengurutan).
Pengurutan (Shorting)
STRUKTUR DATA (3) sorting array
Algoritma & Pemrograman II STT Wastukancana Purwakarta
SORTING ARRAY SESI 2.
ALGORITMA PENGURUTAN (SORTING)
STRUKTUR DATA Sri Nurhayati, MT.
Review Array Sri Nurhayati, MT.
ARRAY STATIS Sri Nurhayati, MT.
Algoritma dan Pemrograman STRUKTUR ALGORITMA (3)
SORTING (PENGURUTAN).
Sorting Dasar Pemrograman
PEMROGRAMAN Belajar memrogram : belajar tentang metodologi pemecahan masalah, kemudian menuangkannya dalam suatu notasi yang mudah dipahami Belajar bahasa.
Struktur Data Oleh: Suhendro
IT234 Algoritma dan Struktur Data
Pengurutan (sorting).
Sorting (Pengurutan).
SORTING.
Transcript presentasi:

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 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 [1..N] yang isinya sudah terdefinisi. Tuliskan sebuah algoritma yang mengurutkan elemen tabel sehingga terurut membesar : T1 T2 ≤ T3 ..... ≤ TN Kamus Umum:

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 TabCount [Min..Max] yang elemennya diinisialisasi dengan nol, dan pada akhir proses TabCounti berisi banyaknya data pada tabel asal yang bernilai i Tabel dibentuk kembali dengan menuliskan kembali harga-harga yang ada berdasarkan isi dari TabCount

Counting Sort Ilustrasi Elemen Tabel TabCount diinisialisasi 0 Telusuri TabInt, sambil mengupdate elemen TabCount  TabCount berisi jumlah kemunculan elemen pada TabInt Telusuri TabCount, untuk mengisi TabInt sesuai isi TabCount  TabInt terurut TabInt 1 2 3 6 4 5 7 8 9 10 TabCount 1 2 3 4 5 6 TabInt’ 1 2 3 4 5 6 7 8 9 10 2 1 1 1 1 2 3 3 1 3 1 2 3 2 1 4 5 5 6 6

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

Counting Sort Algoritma Kamus : T : array [0..NMax] of integer {ValMin & ValMax: batas Minimum dan Maximum nilai dalam T, harus diketahui} TabCount : array [ValMin..ValMax] 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 TabCount } i traversal [ValMin..ValMax] TabCounti  0 { Counting } i traversal [1..N] TabCountTi TabCountTi + 1 { Pengisian kembali : T1 ≤T2 ... ≤ TN } K  0 if (TabCounti ≠ 0) then j traversal [1..TabCounti] K  K + 1 TK  i Elemen Tabel TabCount diinisialisasi 0 Telusuri TabInt, sambil mengupdate elemen TabCount  TabCount berisi jumlah kemunculan elemen pada TabInt Telusuri TabInt, sambil mengupdate elemen TabCount  TabCount berisi jumlah kemunculan elemen pada TabInt

Selection Sort (Pengurutan berdasarkan Seleksi) Contoh : maksimum suksesif (pengurutan dari besar ke kecil) Idenya adalah: Cari indeks penampung nilai maksimum ‘tabel’ Tukar elemen pada indeks maksimum dengan elemen ter’ujung’ elemen terujung "diisolasi“, tidak disertakan pada proses berikutnya proses diulang untuk sisa tabel Hasil proses: tabel terurut mengecil T1 ≥ T2 ≥ T3 ...... ≥TN Proses dilakukan sebanyak N-1 tahapan (disebut "pass")

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 2 3 4 5 6 60 12 Elemen maksimum 2..6, tukar dengan elemen 2 35 35 10 30 Elemen maksimum 1..6, tukar dengan elemen 3 12 25 60 Elemen maksimum 3..6, tukar dengan elemen 3 30 10 12 Elemen maksimum 5..6, tukar dengan elemen 5 Elemen maksimum 4..6, tukar dengan elemen 4 10 25 12

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 2 35 3 10 4 60 5 30 6 25 60 35 10 12 30 25 60 35 10 12 30 25 60 35 30 12 10 25 60 35 30 25 10 12 60 35 30 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 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 } ALGORITMA Pass traversal [1..N-1] { Tentukan Maximum [Pass..N] } IMax Pass i traversal [Pass+1..N] if (TIMax < Ti ) then IMax  i { TIMax adalah maximum T[Pass..N] } {Tukar TIMax dengan TPass } Temp  TIMax TIMax  TPass TPass Temp { T[1..Pass] terurut: T1 ≥ T2 ≥ T3 .. ≥TPass} {Seluruh tabel terurut, T1 T2 T3 ...... TN } 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 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-elemen, hingga ditemukan tempat yang cocok untuk elemen TPass tersebut

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 Dapat dicapai dengan cara menggeser elemen yang nilainya lebih besar 1 12 2 35 3 10 4 60 5 30 6 25 12 35 10 60 30 25 10 12 35 60 30 25 10 12 35 60 30 25 10 12 30 35 60 25 10 12 25 30 35 60 Elemen yang akan disisipkan

Insertion Sort Algoritma Kamus : i : 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} ALGORITMA { T1 adalah terurut} Pass traversal [2...N] Temp  TPass {Simpan harga TPass sebelum pergeseran } { Sisipkan elemen ke Pass dalam T[1..Pass-1] sambil menggeser:} iPass-1 while(Temp < Ti ) and (i>1) do Ti+1  Ti {geser} i  i -1 {berikutnya} { Temp >= Ti (tempat yang tepat) or i=1 (sisipkan sebagai elemen pertama) } depend on T, i, Temp Temp >= T1 : T1 +1  Temp {menentukan tempat yang tepat} Temp < T1 : T1 +1  T1 T1 Temp {sebagai elemen pertama} { T[1..Pass] terurut: T1 ≤ T2 ≤ T3 .. ≤TPass} {Seluruh tabel terurut, karena Pass = N : T1≤ T2 ≤ T3 ...... ≤ TN }

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 ini transformasi dari pdf slide presentasi itb

THANKS