Pengurutan (Sorting) Algoritma Pemrograman

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

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

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

SORTING. Struktur Data S1 Sistem Informasi. Ld.Farida

MODUL IV PENCARIAN DAN PENGURUTAN

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

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

ALGORITMA PENGURUTAN & PENCARIAN

BAB V SORTING (PENGURUTAN) INTERNAL

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

Algoritma dan Pemrograman 2 PENGURUTAN

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

DIKTAT STRUKTUR DATA Oleh: Tim Struktur Data IF

Kompleksitas Algoritma

Kompleksitas Algoritma (1)

ANALISIS PERBANDINGAN ALGORITMA SELECTION SORT DENGAN MERGE SORT

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

Bubble Sort (Pengurutan Gelembung / Pemberatan)

Searching [pencarian] Algoritma Pemrograman

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

1. Kompetensi Mengenal dan memahami algoritma percabangan yang komplek.

Kompleksitas Algoritma

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

Materi 4: SORTING (PENGURUTAN) Dosen:

Pengurutan (Sorting)

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

PENGURUTAN DATA 2.1 Definisi Pengurutan 2.2 Metode-metode Pengurutan

SORTING (PENGURUTAN DATA)

ALGORITMA PENGURUTAN. Oleh : S. Thya Safitri, MT

Algoritma Brute Force (Bagian 1) Oleh: Rinaldi Munir

STRUKTUR DATA SORTING ARRAY

Algoritma dan Pemrograman 2 PENGURUTAN

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

SORTING. Brigida Arie Minartiningtyas, M.Kom

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

Algoritma Brute Force

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

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

Gambar 13.1 Ilustrasi proses algoritma sorting

BAB VI SEARCHING (PENCARIAN)

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

Algoritma Transposisi (Bubble Sort/pengurutan gelembung)

Modul 8 SORTING (PENGURUTAN)

STRUKTUR DATA. By : Sri Rezeki Candra Nursari 2 SKS

AlgoritmaBrute Force. Desain dan Analisis Algoritma (CS3024)

Pengertian Algoritma Pengurutan

BAB 8 SORTING DAN SEARCHING

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

CCH1A4 / Dasar Algoritma & Pemrogramanan

7. SORTING DAN SEARCHING

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

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

BAB VI Pengurutan (Sorting)

Kompleksitas Algoritma Sorting yang Populer Dipakai

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

Powered by icomit.wordpress.com

Algoritma dan Struktur Data. Algoritma Pengurutan (Sorting)

Array (Tabel) bagian 2

Algoritma dan Pemrograman Searching/Pencarian

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

Algoritma dan Struktur Data

KOMPLEKSITAS ALGORITMA PENGURUTAN (SORTING ALGORITHM)

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

PENCARIAN BERUNTUN (SEQUENTIAL SEARCHING)

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

Konsep Sorting dalam Pemrograman Saniman dan Muhammad Fathoni

Algoritma Brute Force

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

Kompleksitas Algoritma Pengurutan Selection Sort dan Insertion Sort

BAB I PENDAHULUAN.

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

*** SELAMAT MENGERJAKAN

Sebuah algoritma tidak saja harus benar, tetapi juga harus mangkus (efisien). Algoritma yang bagus adalah algoritma yang mangkus.

Sorting Algorithms. Buble Sort

STRUKTUR DATA (3) sorting array. M.Cs

Matematika Diskrit Kompleksitas Algoritma. Instruktur : Ferry Wahyu Wibowo, S.Si., M.Cs.

Algoritma Bubble Sort dan Quick Sort

Kompleksitas Algoritma

STRUKTUR DATA. Nama : Sulfikar Npm : STMIK Handayani Makassar

Algoritma dan Struktur Data. Searching dan Sorting

Langkah Mudah Belajar Struktur Data Menggunakan C/C++

BAB 2 LANDASAN TEORI

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

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

Studi Mengenai Perbandingan Sorting Algorithmics Dalam Pemrograman dan Kompleksitasnya

Teknik Pengurutan Kartu Remi

Pencarian. 1. Memahami konsep pencarian 2. Mengenal beberapa algoritma pencarian 3. Menerapkan algoritma pencarian dalam program

ALGORITMA DAN PEMROGRAMAN 2. 3 SKS By : Sri Rezeki Candra Nursari

Algoritma Sorting (Selection Insertion)

Algoritma dan Pemrograman 2 PENCARIAN

SEARCHING & SORTING. Pendahuluan

Modul Praktikum Algoritma dan Struktur Data

PERBANDINGAN KOMPLEKSITAS ALGORITMA PENCARIAN BINER DAN ALGORITMA PENCARIAN BERUNTUN

BAB VI SORTIR ATAU PENGURUTAN

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

CCH1A4 / Dasar Algoritma & Pemrogramanan

Algoritma dan Kompleksitas Algoritma

SORTING ALGORITMA. Bubble Sort JANUARY 14, 2016

Algoritma Divide and Conquer (Bagian 1)

Algoritma Divide and Conquer (Bagian 2)

Transkripsi:

Pengurutan (Sorting) Algoritma Pemrograman mas.anto72@gmail.com 1 Definisi Sorting /pengurutan proses mengatur sekumpulan obyek menurut urutan atau susunan tertentu. Bentuk susunan/urutan : Ascending menaik/membesar Descending menurun/mengecil Data yang diurut dapat berupa numerik atau tipe bentukan. Jika tipe bentukan harus berupa field. 2 1

Pengelompokan Pengurutan Dikelompokkan dalam 2 kelompok : 1. Pengurutan internal pengurutan sekumpulan data yang disimpan didalam memori utama komputer. 2. Pengurutan eksternal pengurutan data yang ada dalam memori sekunder dan biasanya volumenya besar. Pengurutan internal mempunyai performansi yang baik cepat, tapi boros memori. 3 Macam Algoritma Pengurutan Macam-macam algoritma sorting : 1. Maximum Sort 2. Insertion Sort 3. Bubble Sort 4. Heap Sort 5. Shell Sort 6. Quick Sort 7. Merge Sort 8. Radix Sort 9. Tree Sort 4 2

Tiga Algoritma Sorting Algoritma yang akan dibahas adalah : 1. Pengurutan Gelembung (Bubble Sort) 2. Pengurutan Pemilihan (Selection Sort 1. Minimum Sort 2. Maksimum Sort 3. Pengurutan Sisip (Insertion Sort) 5 Bubble Sort (1) Terinspirasi oleh gelembung sabun yang ada diatas permukaan. Gelembung mengapung karena massa-nya lebih kecil dari air itu sendiri. Prinsipnya : mengapungkan elemen array berharga paling kecil diapungkan artinya diangkat ke atas (ke ujung kiri array). 6 3

Bubble Sort (2) Tahapan Pengurutan Bubble Sort Ascending 1. Langkah 1 : Mulai elemen K=N, N-1,, 2 bandingkan L[K] dengan L[K-1]. Jika L[K]<L[K-1], tukar L[K] dengan L[K-1]. Maka L[1] berisi harga minimum pertama. 2. Langkah 2 : Mulai elemen K=N, N-1,, 3 bandingkan L[K] dengan L[K-1]. Jika L[K]<L[K-1], tukar L[K] dengan L[K-1]. Maka L[1..2] berisi nilai terurut. 3. Langkah 3 : Mulai dari elemen K=N, N-1,, 4 bandingkan L[K] dengan L[K-1]. Jika L[K]<L[K-1], tukar L[K] dengan L[K-1]. Maka L[1..3] berisi harga terurut. 4. 5. Langkah N-1 : Mulai dari K=N, bandingkan L[K] dengan L[K-1]. Jika L[K]<L[K-1], tukar L[K] dengan L[K-1]. Maka L[1] berisi harga terurut. 7 Array dengan N=6 belum terurut Bubble Sort (3) Ilustrasi : 25 27 10 8 76 21 Langkah 1 : K=N=6 21 76 K=5 8 21 76 K=4 8 10 21 76 K=3 8 27 10 21 76 K=2 8 25 27 10 21 76 Langkah 2 : K=N=6 21 76 K=5 10 21 76 K=4 10 27 21 76 K=3 8 10 25 27 21 76 Langkah 3 : K=N=6 21 76 K=5 21 27 76 K=4 8 10 21 25 27 76 Langkah 4 : K=N=6 27 76 K=5 8 10 21 25 27 76 Langkah 5 : K=N=6 8 10 21 25 27 76 8 4

Bubble Sort (4) Algoritma Bubble Sort Ascending : Procedure BubbleSortAsc(input/output L : Larik; input N : integer) Deklarasi I : integer {jumlah langkah} K : integer { pengapungan tiap langkah} Temp : integer { untuk penukaran nilai} Tukar : boolean { kontrol} Algoritma I = 1 Tukar = True While I < N 1 AND Tukar Do Tukar = False For K=N downto I+1 do If L[K] < L[K-1] then Temp = L[K] L[K] = L[K-1] L[K-1] = Temp Endif EndFor I=I+1 EndWhile 9 Bubble Sort (4) Procedure BubbleSortDesc(input/output L : Larik; input N : integer) Deklarasi I : integer {jumlah langkah} K : integer { pengapungan tiap langkah} Temp : integer { untuk penukaran nilai} Algoritma For I=1 to N-1 do For K=N downto I+1 do If L[K] > L[K-1] then Temp = L[K] L[K] = L[K-1] L[K-1] = Temp Endif EndFor EndFor 10 5

Selection Sort Selection sort terdiri dari : 1. Maximum Sort 2. Minimum Sort 11 Maximum Sort (1) Algoritma Maximum Sort Ascending Langkah 1 : Tentukan harga maksimum didalam L[1..N]. Tukar harga maksimum dengan elemen L[N] Langkah 2 : Tentukan harga maksimum didalam L[1..N-1]. Tukar harga maksimum dengan elemen L[N-1] Langkah 3 : Tentukan harga maksimum didalam L[1..N-2]. Tukar harga maksimum dengan elemen L[N-2].. Langkah N : Tentukan harga maksimum didalam L[1..2]. Tukar harga maksimum dengan elemen L[2] 12 6

Ilustrasi : Maximum Sort (2) 25 27 10 8 76 21 Langkah 1 : Cari elemen maksimum dalam L[1..6], maks = 76. Tukar Maks dengan L[N] menjadi : 25 27 10 8 21 76 Langkah 2: Cari elemen maksimum dalam L[1..5], maks = 27. Tukar Maks dengan L[5] menjadi : 25 21 10 8 27 76 Langkah 3: Cari elemen maksimum dalam L[1..4], maks = 25. Tukar Maks dengan L[4] menjadi : 8 21 10 25 27 76 Langkah 4: Cari elemen maksimum dalam L[1..3], maks = 21 Tukar Maks dengan L[3] menjadi : 8 10 21 25 27 76 Langkah 5: Cari elemen maksimum dalam L[1..2], maks = 10 Tukar Maks dengan L[2] menjadi : 8 10 21 25 27 76 13 Maximum Sort (3) Algoritma Maksimum Sort Ascending Procedure MaksSortAsc(input/output L : Larik; input N : integer) Deklarasi I : integer {jumlah langkah} J : integer { mencari nilai maks} U : integer { indeks ujung kiri } Maks : integer { nilai maks sementara } Imaks : Integer { indeks maks sementara } Temp : integer { untuk penukaran nilai} Algoritma U = N For I=1 to N-1 do Imaks = 1 For J=2 to U do If L[J] > L[Imaks] then Imaks=J Endif Endfor Temp=L[U] L[U]=L[Imaks] L[Imaks]= Temp U=U-1 Endfor 14 7

Maximum Sort (4) Algoritma Maximum Sort Descending Langkah 1 : Tentukan harga minimum didalam L[1..N]. Tukar harga maksimum dengan elemen L[1] Langkah 2 : Tentukan harga minimum didalam L[2..N]. Tukar harga maksimum dengan elemen L[2] Langkah 3 : Tentukan harga maksimum didalam L[3..N]. Tukar harga maksimum dengan elemen L[3].. Langkah N : Tentukan harga maksimum didalam L[N-1,N]. Tukar harga maksimum dengan elemen L[N-1] 15 Minimum Sort (1) Prinsipnya sama dengan maksimum sort hanya, sebagai dasar adalah nilai minimum. Algoritma Minimum Sort Ascending mencari nilai minimum dalam sebuah array, taruh hasilnya pada elemen pertama (kiri), dan seterusnya. Algoritma Minimum Sort Descending mencari nilai minimum dalam sebuah array, taruh hasilnya pada elemen terakhir (kanan), dan seterusnya. 16 8

Minimum Sort (2) Procedure MinSortAsc(input/output L : Larik; input N : integer) Deklarasi I : integer {jumlah langkah} J : integer { mencari nilai min} U : integer { indeks ujung kiri } Min : integer { nilai maks sementara } Imin : Integer { indeks maks sementara } Temp : integer { untuk penukaran nilai} Algoritma U = N For I=1 to N-1 do Imin = 1 For J=2 to U do If L[J] <L[Iin] then Imin=J Endif Endfor Temp=L[U] L[U]=L[Imin] L[Imin]= Temp U=U-1 Endfor 17 Insertion Sort (1) Menyisipkan elemen larik pada posisi yang tepat dan dilakukan secara beruntun dalam larik. Setelah menemukan posisi yang tepat, maka akan dilakukan proses pergeseran elemen yang ada. 18 9

Insertion Sort (2) Mekanisme Pengurutan : Langkah 1 : Anggap L[1] sudah pada posisi yang tepat. Langkah 2 : L[2] harus dicari posisi yang tepat antara L[1..2] dengan cara menggeser elemen. Langkah 3 : L[3] harus dicari posisi yang tepat antara L[1..3] dengan cara menggeser elemen.. Langkah N: L[N] harus dicari posisi yang tepat antara L[1..N] dengan cara menggeser elemen. 19 Insertion Sort (3) Ilustrasi Insertion Sort Ascending 25 27 10 8 76 21 Anggap L[1] sudah terurut 25 27 10 8 76 21 Langkah 2 : Cari posisi yang tepat untuk L[2] pada L[1..2] maka : 25 27 10 8 76 21 Langkah 4 : Cari posisi yang tepat untuk L[4] pada L[1..4] maka : 8 10 25 27 76 21 Langkah 5 : Cari posisi yang tepat untuk L[5] pada L[1..5] maka : 8 10 25 27 76 21 Langkah 3 : Cari posisi yang tepat untuk L[3] pada L[1..3] maka : 10 25 27 8 76 21 Langkah 6 : Cari posisi yang tepat untuk L[6] pada L[1..6] maka : 8 10 21 25 27 76 20 10

Insertion Sort (3) Ascending Procedure InsertSortAsc(input/output L : Larik; input N : integer) Deklarasi K : integer {jumlah langkah} J : integer { penelusuran array } Temp : integer { untuk penukaran nilai} Algoritma For K=2 to N do Temp = L[K] J=K-1 While Temp < L[J] AND J > 1 do L[J+1] = L[J] J=J-1 EndWhile If Temp > L[J] then L[J+1] = Temp Else L[J+1] = L[J] L[J] = Temp Endif Endfor 21 Insertion Sort (4) Descending Procedure InsertSortDesc(input/output L : Larik; input N : integer) Deklarasi K : integer {jumlah langkah} J : integer { penelusuran array } Temp : integer { untuk penukaran nilai} Algoritma For K=2 to N do Temp = L[K] J=K-1 While Temp >L[J] AND J > 1 do L[J+1] = L[J] J=J-1 EndWhile If Temp < L[J] then L[J+1] = Temp Else L[J+1] = L[J] L[J] = Temp Endif Endfor 22 11

Latihan Perhatikan array dibawah ini : Soal : 45 12-1 0 4 5-2 14 17 3 7 8 9 10 Tuliskan langkah proses pengurutan dengan metode algoritma : a) Buble Sort Descending b) Minimum Sort Ascending c) Insertion Sort Descending 23 Tugas Kelompok Terjemahkan algoritma-algoritma pengurutan berikut ini ke dalam bahasa pemrograman Pascal atau C atau Visual Basic atau Java : Binnary Search Bubble Sort Ascending Maksimum Sort Ascending Insertion Sort Descending Program harus disertai dengan penjelasannya dan siap dieksekusi serta tanpa error. Hasilnya diupload paling lambat tanggal 26 Juni 2010 melalui esinaukoe. 24 12