SORTING. Struktur Data S1 Sistem Informasi. Ld.Farida

dokumen-dokumen yang mirip
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 :

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

Pengurutan (Sorting) Algoritma Pemrograman

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

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

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

Materi 4: SORTING (PENGURUTAN) Dosen:

MODUL IV PENCARIAN DAN PENGURUTAN

ALGORITMA PENGURUTAN & PENCARIAN

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

BAB V SORTING (PENGURUTAN) INTERNAL

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

SORTING (PENGURUTAN DATA)

Gambar 13.1 Ilustrasi proses algoritma sorting

Pengurutan (Sorting)

Algoritma dan Pemrograman 2 PENGURUTAN

Modul 8 SORTING (PENGURUTAN)

STRUKTUR DATA SORTING ARRAY

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

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

Algoritma Transposisi (Bubble Sort/pengurutan gelembung)

STRUKTUR DATA. By : Sri Rezeki Candra Nursari 2 SKS

ALGORITMA PENGURUTAN. Oleh : S. Thya Safitri, MT

STRUKTUR DATA (3) sorting array. M.Cs

Algoritma dan Struktur Data. Algoritma Pengurutan (Sorting)

DIKTAT STRUKTUR DATA Oleh: Tim Struktur Data IF

Algoritma Bubble Sort dan Quick Sort

PERTEMUAN 10 METODE DEVIDE AND CONQUER

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

Modul Praktikum Algoritma dan Struktur Data

METODE DEVIDE AND CONQUER

BAB I PENDAHULUAN.

PERTEMUAN 10 METODE DEVIDE AND CONQUER

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

Sorting (Bubble Sort)

Pengertian Algoritma Pengurutan

Bubble Sort (Pengurutan Gelembung / Pemberatan)

1. Kompetensi Mengenal dan memahami algoritma percabangan yang komplek.

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

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

PENGURUTAN DATA 2.1 Definisi Pengurutan 2.2 Metode-metode Pengurutan

SORTING ALGORITMA. Bubble Sort JANUARY 14, 2016

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

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

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

ANALISIS PERBANDINGAN ALGORITMA SELECTION SORT DENGAN MERGE SORT

BAB VI SORTIR ATAU PENGURUTAN

BAB VI SEARCHING (PENCARIAN)

SORTING (Pengurutan)

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

Algoritma dan Struktur Data

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

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

Sorting. Pertemuan ke 14.

BAB V SORT. Proses penukaran tidak dapat langsung dilakukan dengan cara : nilai[1] = nilai[2]; nilai[2] = nilai[1];

SORTING. Brigida Arie Minartiningtyas, M.Kom

BAB VI Pengurutan (Sorting)

Sorting Algorithms. Buble Sort

Algoritma dan Struktur Data. Searching dan Sorting

Powered by icomit.wordpress.com

Prpsedur progaram selectioa sort (Dengan program C++)

PENGURUTAN (SORTING) 1. Overview

BAB 2 SORTING (PENGURUTAN)

Algoritma dan Pemrograman 2 PENGURUTAN

BAB 1 PENDAHULUAN Latar Belakang

Kompleksitas Algoritma Sorting yang Populer Dipakai

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

BAB 8 SORTING DAN SEARCHING

# TEN Sorting PENDAHULUAN

A. TUJUAN PEMBELAJARAN

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

7. SORTING DAN SEARCHING

Teknik Pengurutan Kartu Remi

KOMPLEKSITAS ALGORITMA PENGURUTAN (SORTING ALGORITHM)

Gambar 1. Langkah-langkah pengurutan metode Insertion Sort (1)

Array (Tabel) bagian 2

Kompleksitas Algoritma Pengurutan Selection Sort dan Insertion Sort

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

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

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

A. TUJUAN PEMBELAJARAN

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

Konsep Sorting dalam Pemrograman Saniman dan Muhammad Fathoni

Algoritma Brute Force

Kompleksitas Algoritma (1)

Studi Mengenai Perbandingan Sorting Algorithmics Dalam Pemrograman dan Kompleksitasnya

BAHASA PEMROGRAMAN 1 (PERTEMUAN 3)

CCH1A4 / Dasar Algoritma & Pemrogramanan

Struktur Data Linier. Input. Program untuk menyelesaikan masalah. Algoritma Penyelesaian. Proses. Masalah. Struktur Data. Output

Algoritma Brute Force (Bagian 1) Oleh: Rinaldi Munir

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

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

Kompleksitas Algoritma

Searching [pencarian] Algoritma Pemrograman

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

Algoritma Brute Force

Algoritma Sorting (Selection Insertion)

Operasi File. Chapter 13

Transkripsi:

SORTING Struktur Data S1 Sistem Informasi Ld.Farida

INTRO Sorting (Pengurutan) diartikan sebagai penyusunan kembali sekumpulan objek ke dalam urutan tertentu Tujuan: Mendapatkan kemudahan dalam pencarian anggota dari suatu himpunan Mempercepat dalam mengetahui data terbesar/terkecil Proses yang terjadi pada pengurutan adalah sebagai berikut: Perbandingan Data Pertukaran Data 2

MACAM-MACAM METODE PENGURUTAN (SORTING) Bubble Sort Selection Sort Insertion Sort Shell Sort Merge Sort Radix Sort Quick Sort Heap Sort 3

BUBLLE SORT / GELEMBUNG Metode ini terinspirasi oleh gelembung sabun yang terdapat di permukaan air Berat jenis gelembung lebih ringan dibanding berat jenis air, menyebabkan gelembung sabun akan selalu mengapung Prinsip pengapungan digunakan untuk pengurutan Elemen dengan nilai paling kecil diapungkan, diangkat ke atas (atau ujung paling kiri) melalui proses pertukaran Proses pengapungan dilakukan sebanyak N kali langkah Pada langkah ke-1, larik[1..n] akan terdiri menjadi dua bagian: Bagian yang sudah terurut, yaitu L[1]... L[i] Bagian yang belum terurut, yaitu L[i+1]... L[n]. 4

ATURAN BUBLE SORT Mengurutkan data dengan cara membandingkan elemen sekarang dengan elemen berikutnya. Jika elemen sekarang lebih besar dari elemen berikutnya maka kedua elemen tersebut ditukar, jika pengurutan ascending. Jika elemen sekarang lebih kecil dari elemen berikutnya, maka kedua elemen tersebut ditukar, jika pengurutan descending. Bubble sort berhenti jika seluruh array telah diperiksa dan tidak ada pertukaran lagi yang bisa dilakukan 5

ALGORITMA BUBBLE SORT Langkah 1 Mulai elemen K=N, N-1,...,2 Bandingkan L[k] dengan L[k-1] Jika L[k] < L[k-1], maka tukarkan L[k] dengan L[k-1] Pada akhir langkah 1, elemen L[1] berisi harga minimum pertama Langkah 2 Mulai dari elemen K=N, N-1,...,3 Bandingkan L[k] dengan L[k-1] Jika L[k] < L[k-1], maka tukarkan L[k] dengan L[k-1] Pada akhir langkah 2, elemen L[2] berisi harga minimum kedua Dan larik L[1...2] terurut, sedangkan L[3...N] belum terurut Langkah 3 Mulai dari elemen k=n, N-1...,4 Bandingkan L[k] dengan L[k-1] Jika L[k] < L[k-1], maka tukarkan L[k] dengan L[k-1] Pada akhir langkah 3, elemen L[3] berisi harga minimum ketiga Dan larik L[1...3] terurut, sedangkan L[4...N] belum terurut Langkah N-1 Mulai dari elemen k=n Bandingkan L[k] dengan L[k-1] Jika L[k] < L[k-1], maka tukarkan L[k] dengan L[k-1] Pada akhir langkah N-1, elemen L[N-1] berisi harga minimum ke-(n-1) Dan larik L[1...N-1] terurut, sedangkan L[N] tidak perlu diurutkan lagi UNIVERSITAS AMIKOM YOGYAKARTA LILISDFARIDA@AMIKOM.AC.ID 11/10/2017 6

ATURAN BUBLE SORT (CON T) Diketahui 22 10 15 3 8 2 Keterangan: Pengecekan dilakukan pada data paling akhir, kemudian dibandingkan dengan data di depannya Jika data di depannya lebih besar, maka akan ditukar 7

Proses kedua, pengecekan data dilakukan dengan data kedua, karena data pertama sudah pasti paling kecil 8

9

DESKRIPSI BUBBLE SORT Menaik for i 1 to N-1 do for i 1 to N-1 do if L[k] < L[k-1] then tukar(l[k],l[k-1]) endif endfor endfor Menurun for i 1 to N-1 do for i 1 to N-1 do if L[k] > L[k-1] then tukar(l[k],l[k-1]) endif endfor endfor 10

CONTOH 11

CONTOH 12

KESIMPULAN BUBBLE SORT Pengurutan dengan metode bubble sort kurang efisien Terlalu banyak proses penukaran yang dilakukan pada setiap langkah Membutuhkan banyak waktu serta proses lebih lama Tidak direkomendasikan untuk dipakai. Note: metode ini mudah dipahami dan sederhana 13

SELECTION SORT (MAKSIMUM/MINIMUM) Metode pengurutan dengan proses menyisipkan elemen larik Ide dasarnya memilih elemen maksimum/minimum dari larik, kemudian menempatkan max/min pada awal atau akhir larik (elemen terujung) Elemen terujung di isolasi dan tidak disertakan pada proses selanjutnya Proses selanjutnya untuk elemen larik yang tersisa, memilih max/min dan melakukan hal yang sama seperti proses di atas Proses memilih nilai max/min dilakukan pada setiap langkah. Larik berukuran N, maka jumlah langkah adalah N-1 14

ALGORITMA SELECTION SORT Langkah 1 Langkah 2 Langkah 3 Langkah N-1 Tentukan harga maksimum di dalam L1[1..N] Pertukarkan harga maksimum dengan L[N] Tentukan harga maksimum di dalam L1[1..N-1] Pertukarkan harga maksimum dengan L[N-1] Tentukan harga maksimum di dalam L1[1..N-2] Pertukarkan harga maksimum dengan L[N-2] Tentukan harga maksimum di dalam L1[1..2] Pertukarkan harga maksimum dengan L[N-2] # Elemen yang tersisa adalah L[1], tidak perlu diurutkan karena hanya satu-satunya 15

CONTOH SELECTION SORT Contoh : Tinjau larik dengan N=6 buah elemen dibawah ini yang belum terurut menjadi diurut naik. 30 14 25 7 10 11 0 1 2 3 4 5 Langkah 1 Cari elemen maksimum di dalam larik L[0..5] maksimal L[0] = 30 Tukar maks dengan L[N], hasil akhir langkah 1: 11 14 25 7 10 30 0 1 2 3 4 5 16

Langkah 2 Cari elemen max di dalam larik L[0..4] Max = L[2] = 25 Tukar nilai max dengan L[N-1], N=4, sehingga diperoleh: 11 14 10 7 25 30 0 1 2 3 4 5 Langkah 3 Cari elemen max di dalam larik L[0..3] Max = L[1] = 14 Tukar nilai max dengan L[N-1], N=3, sehingga diperoleh: 11 7 10 14 25 30 0 1 2 3 4 5 17

Langkah 4 Cari elemen max di dalam larik L[0..2] Max = L[0] = 0 Tukar nilai max dengan L[N-1], N=2, sehingga diperoleh: 10 7 11 14 25 30 0 1 2 3 4 5 Langkah 5 Cari elemen max di dalam larik L[0..1] Max = L[0] = 10 Tukar nilai max dengan L[N-1], N=1, sehingga diperoleh: 7 10 11 14 25 30 0 1 2 3 4 5 Selesai! Larik sudah terurut 18

CONTOH 19

Untuk algoritma Pengurutan Minimum caranya sama persis dengan maksimum hanya saja yang ditukar adalah nilai yang minimum bukan maksimum 20

KESIMPULAN dibandingkan dengan pengurutan gelembung (bubble sort) pengurutan dengan metode selection sort (maksimum/minimum) ini memiliki kinerja yang lebih baik. Operasinya pertukaran hanya sekali saja dilakukan pada setiap langkah sehingga waktu pengurutan dapat lebih ditekan. Metode ini direkomendasikan untuk dipakai. 21

PENGURUTAN SISIP / INSERTION SORT Metode pengurutan dengan menyisipkan elemen larik pada posisi yang tepat Pencarian posisi yang tepat dilakukan dengan pencarian beruntun Selama proses pencarian posisi yang tepat dilakukan pergeseran larik 22

ALGORITMA PENGURUTAN SISIP Andaikan L[1] dianggap sudah pada tempatnya Langkah 2 Langkah 3 Langkah 4 Langkah N-1 L[2] harus dicari tempatnya yang tepat pada L[1..2] dengan cara menggeser elemen L[1] ke kanan bila L[1] lebih besar dari L[2] Misalkan posisi elemen yang tepat adalah K sisipkan pada L[2] pada K L[3] harus dicari tempatnya yang tepat pada L[1..3] dengan cara menggeser elemen [l1..3] ke kanan bila L[1..3] lebih besar dari L[3] Misalkan posisi elemen yang tepat adalah K sisipkan pada L[3] pada K L[4] harus dicari tempatnya yang tepat pada L[1..4] dengan cara menggeser elemen [l1..4] ke kanan bila L[1..4] lebih besar dari L[4] Misalkan posisi elemen yang tepat adalah K sisipkan pada L[4] pada K L[N] harus dicari tempatnya yang tepat pada L[1..N] dengan cara menggeser elemen [l1..n] ke kanan bila L[1..N] lebih besar dari L[N] Misalkan posisi elemen yang tepat adalah K sisipkan pada L[N] pada K 23

Pencarian posisi metode ini dimulai dari data kedua, sampai dengan data terakhir, karena data pertama dianggap sudah berada pada posisi yang tepat. Jika ditemukan data yang lebih kecil, akan ditempatkan (disisipkan/di insert kan) di posisi yang seharusnya 24

25

26

#include <iostream> using namespace std; main(){ int i,j,k, temp; int L[5]; L[1]=1; L[2]=25; L[3]=10; L[4]=30; L[5]=2; for(k=2;k<=5;k++){ temp=l[k];/* ambil elemen L[k] supaya tidak tertimpa penggeseran*/ 27

/* Cari Posisi Yang tepat dalam L[1..k-1] sambil menggeser*/ j=k-1; while(temp<=l[j]) { L[j+1]=L[j]; j--; cout<<l[j+1]<<endl; } if((temp >= L[j]) ( j=1)){ L[j+1]=temp; /*posisi yg tepat untuk L[k] ditemukan*/ }else{ L[j+1]=L[j]; L[j]=temp; } } for(i=1;i<=5;i++){ cout<<l[i]<<" "; } return 0; } 28

KESIMPULAN Kelemahan metode sisip terletak pada banyaknya operasi yang diperlukan dalam mencari posisi yang tepat untuk elemen larik. Untuk larik yang jumlahnya besar ini tidak praktis. Dari ketiga metode tersebut, pengurutan maksimum/minimum memiliki kinerja yang terbaik. 29

Terima Kasih 30