Pengurutan pada Array. Tim PHKI Modul Dasar Pemrograman Fakultas Ilmu Komputer UDINUS Semarang

dokumen-dokumen yang mirip
Array (Tabel) bagian 2

KOMPLEKSITAS ALGORITMA PENGURUTAN (SORTING ALGORITHM)

Algoritma dan Pemrograman Array/Tabel[3] Oleh: Eddy Prasetyo N

Kompleksitas Algoritma Pengurutan Selection Sort dan Insertion Sort

Algoritma dan Pemrograman Array/Tabel[2] Oleh: Eddy Prasetyo N

Powered by icomit.wordpress.com

Pencarian pada Array. Tim PHKI Modul Dasar Pemrograman Fakultas Ilmu Komputer UDINUS Semarang

Algoritma dan Pemrograman Sorting (Pengurutan) IS1313. Oleh: Eddy Prasetyo N

Array. Tim PHKI Modul Dasar Pemrograman Fakultas Ilmu Komputer UDINUS Semarang

Kompleksitas Algoritma Sorting yang Populer Dipakai

CCH1A4 / Dasar Algoritma & Pemrogramanan

Pengurutan (Sorting) Keuntungan Data Terurut. Pengurutan Terbagi Dua Kelompok:

Pengurutan (Sorting) Algoritma Pemrograman

SEQUENTIAL SEARCH 11/11/2010. Sequential Search (Tanpa Variabel Logika) untuk kondisi data tidak terurut

BAB V SORTING (PENGURUTAN) INTERNAL

Kuliah ke : 4 Algoritma & Stuktur Data. Pengurutan (Sorting)

1. Inggriani Liem Catatan Kuliah Algoritma & Pemrograman, Jurusan Teknik Informatika ITB

ANALISIS KOMPLEKSITAS ALGORITMA UNTUK BERBAGAI MACAM METODE PENCARIAN NILAI (SEARCHING) DAN PENGURUTAN NILAI (SORTING) PADA TABEL

Algoritma Sorting (Selection Insertion)

MODUL PRAKTIKUM PERCABANGAN DAN PENGULANGAN

Gambar 13.1 Ilustrasi proses algoritma sorting

SORTING (PENGURUTAN DATA)

Array dan Matriks. IF2121 / Algoritma dan Struktur Data Sem / /7/2017 IF2121/sem /2018 1

Praktikum 7. Pengurutan (Sorting) Insertion Sort, Selection Sort POKOK BAHASAN: TUJUAN BELAJAR: DASAR TEORI:

Yaitu proses pengaturan sekumpulan objek menurut urutan atau susunan tertentu Acuan pengurutan dibedakan menjadi :

PENGURUTAN (SORTING) 1. Introduction 2. Bubble Sort 3. Selection Sort 4. Insertion Sort

LATIHAN UTS Tim Pengajar KU1071 Sem

VISUALISASI LOGIKA ALGORITMA PENGURUTAN DATA MENGGUNAKAN JAVA

Array (Tabel) Tim Pengajar KU1071 Sem /11/3 TW/KU1071 1

Pengantar List Linier

ALGORITMA PENGURUTAN & PENCARIAN

Algoritma dan Struktur Data

SATUAN ACARA PERKULIAHAN (SAP) Mata Kuliah : Struktur Data Kode : TIS3213 Semester : III Waktu : 2 x 3 x 50 Menit Pertemuan : 12 & 13

DATA SORTING. Altien Jonathan Rindengan, S.Si, M.Kom

SORTING. Struktur Data S1 Sistem Informasi. Ld.Farida

MODUL IV PENCARIAN DAN PENGURUTAN

CCH1A4 / Dasar Algoritma & Pemrogramanan

ARRAY STATIS. Type namatype_array = array [1..maks_array] of tipedata. nama_var_array : namatype_array {indeks array dari 1 sampai maksimum array}

Nama : Suseno Rudiansyah NPM : Kelas : X2T Prodi : Teknik Informatika Tugas : Kuis Algoritma 2

{ Kamus Umum } constant IdxMax : integer = 100 constant IdxMin : integer = 1 constant IdxUndef : integer = -999 { indeks tak terdefinisi}

BAB VI Pengurutan (Sorting)

Bubble Sort (Pengurutan Gelembung / Pemberatan)

Algoritma Sorting. Ahmad Kamsyakawuni, S.Si, M.Kom. Jurusan Matematika Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Jember

Algoritma dan Pemrograman Lanjut. Pertemuan Ke-8 Pengurutan (Sorting) 1

PENGULANGAN Bagian 1 : Notasi. Tim Pengajar KU1071 Sem

Pengertian Algoritma Pengurutan

Array ARRAY BERDIMENSI SATU. Representasi (Pemetaan) di memori. Lihat gambar dibawah ini, nilai data A (18) dismpan mulai dari alamat 1136 di memori.

Fungsi. Tim PHKI Modul Dasar Pemrograman Fakultas Ilmu Komputer UDINUS Semarang

RENCANA PEMBELAJARAN SEMESTER (RPS)

ANALISIS PERBANDINGAN ALGORITMA SELECTION SORT DENGAN MERGE SORT

Algoritma Brute Force (Bagian 1) Oleh: Rinaldi Munir

BAB II TINJAUAN PUSTAKA

BAB XII MENCARI DATA MAKSIMUM DAN MINIMUM

Heap Tree dan Kegunaannya dalam Heap Sort

Analisis Perbandingan Kompleksitas Algoritma Pengurutan Nilai (Sorting)

Modul 8 SORTING (PENGURUTAN)

SORTING. Hartanto Tantriawan, S.Kom., M.Kom

Studi Mengenai Perbandingan Sorting Algorithmics Dalam Pemrograman dan Kompleksitasnya

ANALISA PERBANDINGAN KOMPLEKSITAS ALGORITMA SELECTIONSORT DAN INSERTIONSORT

1. Kompetensi Mengenal dan memahami algoritma percabangan yang komplek.

Perbandingan Kecepatan/Waktu Komputasi Beberapa Algoritma Pengurutan (Sorting)

Analisis Algoritma. Jimmy Tirtawangsa. Universitas Telkom 2014

Algoritma dan Pemrograman Array/Tabel[1] Oleh: Eddy Prasetyo N

Analisis Perbandingan Kompleksitas Algoritma Pengurutan Nilai (Sorting)

Algoritma dan Struktur Data. Algoritma Pengurutan (Sorting)

ALGORITMA PEMOGRAMAN SEMESTER GENAP 2017/2018

Kemangkusan Algoritma Pada Beberapa Variasi Quick Sort

TELAAH WAKTU EKSEKUSI PROGRAM TERHADAP KOMPLEKSITAS WAKTU ALGORITMA BRUTE FORCE DAN DIVIDE AND CONQUER DALAM PENYELESAIAN OPERASI LIST

ALGORITMA PEMROGRAMAN 1A** (PP :S1-KA) Pertemuan 7. Ahmad Hidayat

JURNAL TEKNOLOGI INFORMASI & PENDIDIKAN ISSN : VOL. 6 NO. 1 Maret 2013

STRATEGI DIVIDE AND CONQUER

ALGORITMA PENGURUTAN. Oleh : S. Thya Safitri, MT

Notasi Algoritmik. Tim PHKI Modul Dasar Pemrograman Fakultas Ilmu Komputer UDINUS Semarang

BAB VI SORTIR ATAU PENGURUTAN

Kode MK/ Pemrograman Terstruktur 2

ANALISIS ALGORITMA. Disusun Oleh: Analisis Masalah dan Running Time. Adam Mukharil Bachtiar Teknik Informatika UNIKOM

PROGRAM STUDI S1 SISTEM KOMPUTER UNIVERSITAS DIPONEGORO. Oky Dwi Nurhayati, ST, MT

Pertemuan - 3. Array dan Matriks (Bab 2) Oleh : Boldson Herdianto. S., Skom., MMSI.

DIKTAT STRUKTUR DATA Oleh: Tim Struktur Data IF

FUNGSI DAN PROCEDURE

ANALISIS PERBANDINGAN METODE ALGORITMA QUICK SORT DAN MERGE SORT DALAM PENGURUTAN DATA TERHADAP JUMLAH LANGKAH DAN WAKTU

Modul Praktikum Algoritma dan Struktur Data

BAB 8 SORTIR. Pengurutan data (sorting) adalah suatu proses untuk menyusun kembali himpunan obyek menggunakan aturan tertentu.

RENCANA PEMBELAJARAN SEMESTER (RPS)

Kompleksitas Algoritma

Kompleksitas Algoritma Dalam Algoritma Pengurutan

Sorting. Pertemuan ke 14.

Alpro & Strukdat 1 C++ (Sorting) Dwiny Meidelfi, M.Cs

STRUKTUR DATA SORTING ARRAY

2. Mahasiswa dapat membuat dan menggunakan array dan linked list dalam suatu kasus.

Algoritma dan Pemrograman 2 PENGURUTAN

Penerapan Algoritma Greedy dalam Pencarian Rantai Penjumlahan Terpendek

Algoritma Brute Force

Penggunaan Metode Binary Search Pada Translator Bahasa Indonesia Bahasa Jawa

Algoritma Divide and Conquer (Bagian 2)

PERTEMUAN 10 METODE DEVIDE AND CONQUER

DIKTAT STRUKTUR DATA Oleh: Tim Struktur Data IF

PENGULANGAN SKEMA PEMROSESAN SEKUENSIAL. Tim Pengajar KU1071 Sem

Materi 4: SORTING (PENGURUTAN) Dosen:

BAB VII ALGORITMA DIVIDE AND CONQUER

Transkripsi:

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 T... 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 hargaharga yang ada berdasarkan isi dari TabCount

Counting Sort Ilustrasi 1. Elemen Tabel TabCount diinisialisasi 0 2. 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 1 2 6 4 5 5 6 4 7 1 8 9 5 6 TabCount 1 01 2 2 0 2 4 01 5 0 6 01 2 TabInt 1 2 4 5 6 7 8 9 1 1 4 5 5 6 6

1. Elemen Tabel TabCount diinisialisasi 0 1 0 2 0 0 4 0 5 0 6 0 2. Telusuri TabInt, sambil mengupdate elemen TabCount TabCount berisi jumlah kemunculan elemen pada TabInt Counting Sort Ilustrasi TabInt 1 1 2 6 4 5 5 6 4 7 1 8 9 5 6 TabCount 1 2 4 5 6 01 2 0 2 01 0 01 2. Telusuri TabCount, untuk mengisi TabInt sesuai isi TabCount TabInt terurut TabInt 1 2 4 5 6 7 8 9 1 1 4 5 5 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] TabCount i 0 { Counting } i traversal [1..N] TabCount Ti TabCount Ti + 1 { Pengisian kembali : T1 T2... TN } K 0 i traversal [ValMin..ValMax] if (TabCounti 0) then j traversal [1..TabCounti] K K + 1 T K 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 T... 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 4 5 6 0 Elemen maksimum 2..6, tukar dengan elemen 2 Elemen maksimum 1..6, tukar dengan elemen 0 Elemen maksimum..6, tukar dengan elemen Elemen maksimum 4..6, 5..6, tukar dengan elemen 45

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 4 5 0 6 0 0 0 0 0 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 (T IMax < T i ) then IMax i { T IMax adalah maximum T[Pass..N] } {Tukar T IMax dengan T Pass } Temp T IMax T IMax T Pass T Pass Temp { T[1..Pass] terurut: T1 T2 T.. TPass} {Seluruh tabel terurut, T1 T2 T... 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 T Pass, sisipkan ke dalam T[1..Pass-1] dengan tetap menjaga keterurutan dengan cara menggeser elemenelemen, hingga ditemukan tempat yang cocok untuk elemen T Pass 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 2 4 5 0 6 0 0 0 0 Elemen yang akan disisipkan 0

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 < T i ) and (i>1) do T i+1 T i {geser} i i -1 {berikutnya} { Temp >= T i (tempat yang tepat) or i=1 (sisipkan sebagai elemen pertama) } depend on T, i, Temp Temp >= T 1 : T 1 +1 Temp {menentukan tempat yang tepat} Temp < T 1 : T 1 +1 T 1 T 1 Temp {sebagai elemen pertama} { T[1..Pass] terurut: T1 T2 T.. TPass} {Seluruh tabel terurut, karena Pass = N : T1 T2 T... 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