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

dokumen-dokumen yang mirip
Kuliah ke : 4 Algoritma & Stuktur Data. Pengurutan (Sorting)

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

SORTING. Struktur Data S1 Sistem Informasi. Ld.Farida

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

Pengurutan (Sorting) Algoritma Pemrograman

Sorting adalah proses mengatur sekumpulan objek menurut aturan atau susunan tertentu. Urutan objek tersebut dapat menaik (ascending = dari data kecil

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

MODUL IV PENCARIAN DAN PENGURUTAN

PENGURUTAN DATA 2.1 Definisi Pengurutan 2.2 Metode-metode Pengurutan

Algoritma dan Pemrograman 2 PENGURUTAN

BAB V SORTING (PENGURUTAN) INTERNAL

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

Bubble Sort (Pengurutan Gelembung / Pemberatan)

Materi 4: SORTING (PENGURUTAN) Dosen:

ALGORITMA PENGURUTAN & PENCARIAN

ARRAY (LARIK) Altien Jonathan Rindengan, S.Si., M.Kom.

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

Algoritma Transposisi (Bubble Sort/pengurutan gelembung)

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

Konsep Sorting dalam Pemrograman Saniman dan Muhammad Fathoni

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

SORTING (PENGURUTAN DATA)

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

Pengurutan (Sorting)

STRUKTUR DATA SORTING ARRAY

ANALISIS PERBANDINGAN ALGORITMA SELECTION SORT DENGAN MERGE SORT

STRUKTUR DATA. By : Sri Rezeki Candra Nursari 2 SKS

BAB VI SEARCHING (PENCARIAN)

STRUKTUR DATA (3) sorting array. M.Cs

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

SORTING. Brigida Arie Minartiningtyas, M.Kom

Algoritma HitungGajiKaryawan Deklarasi NIK,Nama,Jabatan : String Gaji, Tunj, Pajak, Gaber : Real

Gambar 13.1 Ilustrasi proses algoritma sorting

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

ALGORITMA PENGURUTAN. Oleh : S. Thya Safitri, MT

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

BAB I PENDAHULUAN.

1. Kompetensi Mengenal dan memahami notasi-notasi algoritma yang ada.

BAB 8 SORTING DAN SEARCHING

Pengertian Algoritma Pengurutan

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

7. SORTING DAN SEARCHING

Powered by icomit.wordpress.com

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

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

CCH1A4 / Dasar Algoritma & Pemrogramanan

Algoritma dan Struktur Data

Modul 8 SORTING (PENGURUTAN)

DIKTAT STRUKTUR DATA Oleh: Tim Struktur Data IF

Kompleksitas Algoritma (1)

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

Array (Tabel) bagian 2

Algoritma dan Struktur Data. Algoritma Pengurutan (Sorting)

Modul Praktikum Algoritma dan Struktur Data

SORTING ARRAY FAKULTAS TEKNOLOGI INFORMASI UNISBANK SEMARANG : ANDY KRISTIANTO : Disusun Oleh :

BAB VI SORTIR ATAU PENGURUTAN

SORTING ALGORITMA. Bubble Sort JANUARY 14, 2016

Algoritma dan Struktur Data. Searching dan Sorting

BAB VI Pengurutan (Sorting)

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

1. Kompetensi Mengenal dan memahami algoritma percabangan yang komplek.

Kompleksitas Algoritma

Kompleksitas Algoritma

BAB II TINJAUAN PUSTAKA

PERTEMUAN 10 METODE DEVIDE AND CONQUER

Algoritma Sorting (Selection Insertion)

KOMPLEKSITAS ALGORITMA PENGURUTAN (SORTING ALGORITHM)

Sorting (Bubble Sort)

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

Kompleksitas Algoritma Pengurutan Selection Sort dan Insertion Sort

Teknik Pengurutan Kartu Remi

BAHASA PEMROGRAMAN 1 (PERTEMUAN 3)

Pertemuan XII ALGORITMA. Algoritma & Pemrograman Ken Kinanti P 1. {Pencarian Beruntun / Sequential Search}

Daftar field MODUL 13 RECORD

PERTEMUAN 10 METODE DEVIDE AND CONQUER

Algoritma Bubble Sort dan Quick Sort

Algoritma Pemrograman

METODE DEVIDE AND CONQUER

Sorting Algorithms. Buble Sort

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

Kompleksitas Algoritma Sorting yang Populer Dipakai

Universitas gunadarma. pascal. Bab 4- bab 10. Hana Pertiwi S.T

Pendahuluan. Sebuah algoritma tidak saja harus benar, tetapi juga harus efisien. Algoritma yang bagus adalah algoritma yang efektif dan efisien.

Data Structure SORTING. Chapter 11. Dahlia Widhyaestoeti, S.Kom

A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8] A[9] A[10] Nilai elemen array Index array Inelemen array

MAKALAH STRUKTUR DATA. DOSEN PEMBIMBING Nisa miftachurohmah, S.kom., M.Si PENYUSUN SITI JAMILATUL MU ADDIBAH ( )

PRAKTIKUM 7 TIPE DATA TERSTRUKTUR. Larik : deretan data yang punya type data sejenis. Misalnya : Daftar Nomor Telpon, Tabel Pajak dll.

Algoritma Brute Force (Bagian 1) Oleh: Rinaldi Munir

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

Algoritma Pemrograman

MANIPULASI STRING. Contoh :

Sorting. Pertemuan ke 14.

AnalisisFramework. Mengukur ukuran atau jumlah input Mengukur waktu eksekusi Tingkat pertumbuhan Efiesiensi worst-case, best-case dan average-case

Pertemuan 2 Operasi String

Operasi File. Chapter 13

Searching [pencarian] Algoritma Pemrograman

BAB 2 TINJAUAN PUSTAKA

SORTING (Pengurutan)

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

Transkripsi:

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

Pendahuluan Sorting (pengurutan) : proses mengatur sekumpulan objek menurut urutan atau susunan tertentu Diberikan array L dengan n elemen yg sudah terdefinisi elemen-elemennya. Urutan array tersusun secara menaik (ascending) : L[1] L[2] L[n] Urutan array tersusun secara menurun (descending) : L[1] L[2] L[n]

Pendahuluan 23, 27, 45, 67, 100,133 (data bertipe integer terurut naik) 50.37, 31, 20.3, 19.5, 0.4, -3.2, -10.9 (data bertipe real terurut turun) Amir, Badu, Budi, Eno, Rudi, Zamri (data bertipe string terurut naik) d, e, g, i, x (data bertipe karakter terurut naik)

Jenis-jenis Algoritma Pengurutan Bubble Sort Selection Sort (Maximum Sort & Minimum Sort) Insertion Sort Heap Sort Shell Sort Quick Sort Merge Sort Radix Sort Tree Sort

Jenis-jenis Algoritma Pengurutan Bubble Sort & Selection Sort : melakukan prinsip pertukaran elemen dalam proses pengurutan (exchange sort) Radix Sort & Tree Sort : melakukan prinsip geser dan sisip elemen dalam proses pengurutan (shift & insert sort) Heap Sort & Tree Sort, memerlukan konsep tree

Algoritma Bubble Sort Bubble sort (pengurutan apung) : diinspirasi oleh gelembung sabun yang berada di atas permukaan air Karena berat jenis gelembung sabun lebih ringan daripada berat jenis air, maka gelembung sabun selalu terapung di atas permukaan air Secara umum, benda berat akan terbenam dan benda ringan akan terapung

Algoritma Bubble Sort Prinsip pengapungan : Jika kita menginginkan array teruurut naik, maka elemen array yang bernilai paling kecil diapungkan artinya diangkat ke atas (ujung kiri array) melalui proses pertukaran Proses pengapungan dilakukan sebanyak n-1 langkah ( 1langkah = 1pass), n adalah ukuran array Pada akhir setiap langkah ke-i, array L[1..n] akan terdiri dari 2 bagian : Terurut : L[1..i] Belum terurut : L[i+1..n] Langkah terakhir diperoleh array L[1..n] yang terurut naik

Algoritma Bubble Sort Algoritmanya (terurut naik): Untuk setiap pass i=1,2,,n-1,lakukan : Mulai dari elemen k=n,n-1,,i+1, lakukan: 1. Bandingkan L[k] dengan L[k-1] 2. Pertukarkan L[k] dengan L[k-1] jika L[k]<L[k-1]

Algoritma Bubble Sort Rincian setiap pass sebagai berikut : Pass 1 : Mulai dari elemen ke-k = n,n-1,,2, bandingkan L[k] dengan L[k-1]. Jika L[k]<L[k-1], pertukarkan L[k] dengan L[k-1]. Pada akhir langkah 1, elemen L[1] berisi harga minimum pertama Pass 2 : Mulai dari elemen ke-k = n,n-1,,3, bandingkan L[k] dengan L[k-1]. Jika L[k]<L[k-1], pertukarkan L[k] dengan L[k-1]. Pada akhir langkah 2, elemen L[1] berisi harga minimum kedua. Larik L[1..2] terurut, sedangkan L[3..n] belum terurut

Algoritma Bubble Sort Pass 3 : Mulai dari elemen ke-k = n,n-1,,4, bandingkan L[k] dengan L[k-1]. Jika L[k]<L[k-1], pertukarkan L[k] dengan L[k-1]. Pada akhir langkah 3, elemen L[3] berisi harga minimum ketiga. Larik L[1..3] terurut, sedangkan L[4..n] belum terurut Pass n-1 : Mulai dari elemen ke-k = n, bandingkan L[k] dengan L[k-1]. Jika L[k]<L[k-1], pertukarkan L[k] dengan L[k-1]. Pada akhir langkah n-1, elemen L[n-1] berisi harga minimum ke-(n-1). Larik L[1..n-1] terurut, sedangkan L[n] pasti elemen terbesar sehingga L[1..n] terurut naik

Algoritma Bubble Sort Contoh array dengan 6 elemen : Pass 1: 25 27 10 8 76 21 1 2 3 4 5 6 k elemen yg dibandingkan pertukarkan? hasil sementara k=6 L[6]<L[5]? (21 < 76?) ya 25, 27, 10, 8, 21, 76 k=5 L[5]<L[4]? (21 < 8?) tidak 25, 27, 10, 8, 21, 76 k=4 L[4]<L[3]? (8 <10?) ya 25, 27, 8, 10, 21, 76 k=3 L[3]<L[2]? (8 <27?) ya 25, 8, 27, 10, 21, 76 k=2 L[2]<L[1]? (8 <25?) ya 8, 25, 27, 10, 21, 76 8 25 27 10 21 76 1 2 3 4 5 6

Algoritma Bubble Sort Pass 2: k elemen yg dibandingkan pertukarkan? hasil sementara k=6 L[6]<L[5]? (76 < 21?) tidak 8, 25, 27, 10, 21, 76 k=5 L[5]<L[4]? (21 < 10?) tidak 8, 25, 27, 10, 21, 76 k=4 L[4]<L[3]? (10 < 27?) ya 8, 25, 10, 27, 21, 76 k=3 L[3]<L[2]? (10 < 25?) ya 8, 10, 25, 27, 21, 76 8 10 25 27 21 76 1 2 3 4 5 6

Algoritma Bubble Sort Pass 3: k elemen yg dibandingkan pertukarkan? hasil sementara k=6 L[6]<L[5]? (76 < 21?) tidak 8, 10, 25, 27, 21, 76 k=5 L[5]<L[4]? (21 < 27?) ya 8, 10, 25, 21, 27, 76 k=4 L[4]<L[3]? (21 < 25?) ya 8, 10, 21, 25, 27, 76 8 10 21 25 27 76 1 2 3 4 5 6

Algoritma Bubble Sort Pass 4: k elemen yg dibandingkan pertukarkan? hasil sementara k=6 L[6]<L[5]? (76 < 27?) tidak 8, 10, 21, 25, 27, 76 k=5 L[5]<L[4]? (27 < 25?) tidak 8, 10, 21, 25, 27, 76 8 10 21 25 27 76 1 2 3 4 5 6

Algoritma Bubble Sort Pass 5: k elemen yg dibandingkan pertukarkan? hasil sementara k=6 L[6]<L[5]? (76 < 27?) tidak 8, 10, 21, 25, 27, 76 Sudah terurut: 8 10 21 25 27 76 1 2 3 4 5 6 8 10 21 25 27 76 1 2 3 4 5 6

program urut_bubble; uses crt; const nmaks=1000; var L:array[1..nmaks] of integer; n,i,k,temp:integer; begin clrscr; write('jumlah data : ');readln(n);writeln; write('data belum terurut:'); for i:=1 to n do begin gotoxy(4*i,5);read(l[i]); end; for i:=1 to n-1 do begin for k:=n downto i+1 do begin if L[k] < L[k-1] then begin temp:=l[k]; L[k]:=L[k-1]; L[k-1]:=temp; end; end; end;

writeln; writeln('data setelah pengurutan :'); for i:=1 to n do begin gotoxy(4*i,9);writeln(l[i]); end; writeln; readln; end.

Algoritma Selection Sort Gagasannya memilih elemen maksimum/minimum dari array, lalu menempatkannya apda awal atau akhir array Selanjutnya elemen tersebut diisolasi dan tidak disertakan pada proses selanjutnya. Proses ini diulang untuk elemen array yang tersisa Ada 2 varian selection sort : Maximum selection sort : memilih elemen maksimum sebagai basis pengurutan Minimum selection sort : memilih elemen minimum sebagai basis pengurutan

Maximum selection sort Untuk array terurut menaik : Jumlah pass = n-1 Untuk setiap pass i =1,2, jumlah pass, lakukan : 1. Cari elemen terbesar (maks), mulai dari elemen-1 sampai n 2. Pertukarkan elemen maks dengan elemen ke-n 3. Kurangi n satu (karena elemen ke-n sudah terurut)

Maximum selection sort Pass 1 : Cari elemen maks di dalam L[1..n] Pertukarkan elemen maks dengan elemen L[n] Ukuran array yang belum terurut = n-1 Pass 2 : Cari elemen maks di dalam L[1..n-1] Pertukarkan elemen maks dengan elemen L[n-1] Ukuran array yang belum terurut = n-2 Pass n-1 : Cari elemen maks di dalam L[1..2] Pertukarkan elemen maks dengan elemen L[2] Ukuran array yang belum terurut = 1

Maximum selection sort Contoh array dengan 6 elemen : Pass 1: 29 27 10 8 76 21 1 2 3 4 5 6 Cari elemen maks di array L[1..6], diperoleh maks=l[5]=76 Pertukarkan maks dengan L[6], diperoleh 29 27 10 8 21 76 1 2 3 4 5 6

21 8 10 27 29 76 1 2 3 4 5 6 Maximum selection sort Pass 2: Cari elemen maks di array L[1..5], diperoleh maks=l[1]=29 Pertukarkan maks dengan L[5], diperoleh Pass 3: 21 27 10 8 29 76 1 2 3 4 5 6 Cari elemen maks di array L[1..4], diperoleh maks=l[2]=27 Pertukarkan maks dengan L[4], diperoleh

8 10 21 27 29 76 1 2 3 4 5 6 Maximum selection sort Pass 4: Cari elemen maks di array L[1..3], diperoleh maks=l[1]=21 Pertukarkan maks dengan L[3], diperoleh Pass 5: 10 8 21 27 29 76 1 2 3 4 5 6 Cari elemen maks di array L[1..2], diperoleh maks=l[1]=10 Pertukarkan maks dengan L[2], diperoleh

Maximum selection sort Tinggal satu elemen L[1]=8, maka pengurutan selesai dengan L yang terurut adalah 8 10 21 27 29 76 1 2 3 4 5 6

program urut_selection_max; uses crt; const nmaks=1000; var L:array[1..nmaks] of integer; n,i,j,imaks,temp:integer; begin clrscr; write('jumlah data : ');readln(n);writeln; write('data belum terurut:'); for i:=1 to n do begin gotoxy(4*i,5);read(l[i]); end; for i:=n downto 2 do begin imaks:=1; for j:=2 to i do begin if L[j] > L[imaks] then imaks:=j; end; temp:=l[imaks]; L[imaks]:=L[i]; L[i]:=temp; end;

writeln; writeln('data setelah pengurutan :'); for i:=1 to n do begin gotoxy(4*i,9);writeln(l[i]); end; writeln; readln; end.