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

dokumen-dokumen yang mirip
BAB VI SORTIR ATAU PENGURUTAN

SORTING (PENGURUTAN DATA)

S O R T I R 6.1 SORTIR TERHADAP RECORD

Modul 8 SORTING (PENGURUTAN)

PERTEMUAN 10 METODE DEVIDE AND CONQUER

Algoritma Sorting (Selection Insertion)

PERTEMUAN 10 METODE DEVIDE AND CONQUER

STRUKTUR DATA SORTING ARRAY

Gambar 13.1 Ilustrasi proses algoritma sorting

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

ALGORITMA PENGURUTAN. Oleh : S. Thya Safitri, MT

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

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

STRUKTUR DATA (3) sorting array. M.Cs

Algoritma dan Struktur Data

Algoritma Transposisi (Bubble Sort/pengurutan gelembung)

7. SORTING DAN SEARCHING

ALGORITMA PENGURUTAN & PENCARIAN

BAB 8 SORTING DAN SEARCHING

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.

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

SORTING. Struktur Data S1 Sistem Informasi. Ld.Farida

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

BAB I PENDAHULUAN.

Pengurutan (Sorting) Algoritma Pemrograman

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

SORTING (Pengurutan)

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

Materi 4: SORTING (PENGURUTAN) Dosen:

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

Modul Praktikum Algoritma dan Struktur Data

Sorting. Pertemuan ke 14.

Algoritma dan Struktur Data. Searching dan Sorting

BAB 1 PENDAHULUAN. Universitas Sumatera Utara

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

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

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

Algoritma dan Struktur Data. Algoritma Pengurutan (Sorting)

Sorting Algorithms. Divide and Conquer

STRUKTUR DATA. By : Sri Rezeki Candra Nursari 2 SKS

Sorting Algorithms. Definisi

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

BAB VI Pengurutan (Sorting)

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

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

A. TUJUAN PEMBELAJARAN

BAB 1 PENDAHULUAN Latar Belakang

Bubble Sort dan Shell-Sort. Yuliana Setiowati

PERTEMUAN 15 REVEW/QUIZ

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

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

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

1. Kompetensi Mengenal dan memahami algoritma percabangan yang komplek.

BAB V SORTING (PENGURUTAN) INTERNAL

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

Algoritma Bubble Sort dan Quick Sort

SORTING. Brigida Arie Minartiningtyas, M.Kom

Politeknik Elektronika Negeri Surabaya

MODUL IV PENCARIAN DAN PENGURUTAN

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

ANALISIS PERBANDINGAN ALGORITMA BUBBLE SORT, MERGE SORT, DAN QUICK SORT DALAM PROSES PENGURUTAN KOMBINASI ANGKA DAN HURUF

SEARCHING & SORTING. Pendahuluan

PENGURUTAN (SORTING) 1. Overview

SORTING (BAGIAN II) Proses kelima

Powered by icomit.wordpress.com

Studi Mengenai Perbandingan Sorting Algorithmics Dalam Pemrograman dan Kompleksitasnya

BAB 2 SORTING (PENGURUTAN)

Sorting Algorithms. Algoritma dan Struktur Data. Sorting algorithms

KOMPLEKSITAS ALGORITMA PENGURUTAN (SORTING ALGORITHM)

Heap Tree dan Kegunaannya dalam Heap Sort

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

Quick Sort dan Merge Sort. Arna Fariza Yuliana Setiowati

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

Modul Praktikum 6 Pemograman Berorientasi Objek

STRATEGI DIVIDE AND CONQUER

Kompleksitas Algoritma Pengurutan Selection Sort dan Insertion Sort

Teknik Pengurutan Kartu Remi

Pengertian Algoritma Pengurutan

CCH1A4 / Dasar Algoritma & Pemrogramanan

Operasi File. Chapter 13

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

PENGURUTAN DATA 2.1 Definisi Pengurutan 2.2 Metode-metode Pengurutan

ALGORITMA PEMOGRAMAN SEMESTER GENAP 2017/2018

Algoritme dan Pemrograman

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

Decrease and Conquer

BAB 2 LANDASAN TEORI

Sorting. Selection Sort. Straight insertion Sort. Merge Sort Paradigma Divide-and-Conquer. Quicksort

SORTING ALGORITMA. Bubble Sort JANUARY 14, 2016

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

Konsep Sorting dalam Pemrograman Saniman dan Muhammad Fathoni

BAB 2 LANDASAN TEORI

Kompleksitas Algoritma Sorting yang Populer Dipakai

Pengurutan (Sorting)

DIKTAT STRUKTUR DATA Oleh: Tim Struktur Data IF

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

Prpsedur progaram selectioa sort (Dengan program C++)

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

Analisa dan Perancangan Algoritma. Ahmad Sabri, Dr Sesi 2: 16 Mei 2016

Transkripsi:

BAB 8 SORTIR Pengurutan data (sorting) adalah suatu proses untuk menyusun kembali himpunan obyek menggunakan aturan tertentu. Secara umum ada dua jenis pengurutan data yaitu : a. Pengurutan secara urut naik (Ascending) yaitu dari data yang nilainya paling kecil sampai data yang nilainya paling besar. b. Pengurutan secara urut turun (Descending) yaitu dari data yang mempunyai nilai yang paling besar sampai paling kecil. Berdasarkan media yang digunakan terdapat 2 metode sortir : 1. Sortir Internal Metode ini dipakai jika himpunan data yang akan disortir kecil, sehingga proses sortir tidak membutuhkan tempat yang besar di memori utama komputer. 2. Sortir Eksternal Metode ini dipakai jika himpunan data yang akan disortir cukup besar, sehingga dibutuhkan media atau alat tambahan seperti Magnetik Tape, Disket dan sebagainya. Dua hal yang mempengaruhi kecepatan algoritma sortir adalah : 1. Jumlah operasi perbandingan yang dilakukan. 2. Jumlah operasi pemindahan data dilakukan. Pada garis besarnya ada tiga teknik utama yang dapat dilakukan dalam melakukan sortir yaitu : 1. Sortir Penyisipan atau Insertion Sort. 2. Sortir Pemilihan atau Selection Sort. 3. Sortir Penukaran atau Exchange Sort. Asumsi : Sortir secara Ascending 1. Sortir Penyisipan Diketahui himpunan data : i = 2 bandingkan el(2) dengan el(1) yaitu 55 > 44 (tidak dilakukan pertukaran) di sini a[1] dan a[2] sudah terurut i = 3 bandingkan el(3) dengan el(2) yaitu 12 < 55 (dilakukan pertukaran) 44 12 55 42 94 18 7 67 bandingkan el(2) dengan el(1) yaitu 12 < 44 (dilakukan pertukaran) 12 44 55 42 94 18 7 67 di sini a[1], a[2] dan a[3] sudah terurut 12 44 55 42 94 18 7 67 i = 4 bandingkan el(4) dengan el(3) yaitu 42 < 55 (dilakukan pertukaran) 12 44 42 55 94 18 7 67 bandingkan el(3) dengan el(2) yaitu 42 < 44 (dilakukan pertukaran) 12 42 44 55 94 18 7 67 Struktur Data 1

bandingkan el(2) dengan el(1) yaitu 42 > 12 (tidak dilakukan pertukaran) 12 42 44 55 94 18 7 67 di sini a[1],..., a[4] sudah terurut. i = 5 12 42 44 55 94 18 7 67 di sini a[1],..., a[5] sudah terurut. i = 6 12 18 42 44 55 94 7 67 di sini a[1],..., a[6] sudah terurut. i = 7 7 12 18 42 44 55 94 67 di sini a[1],..., a[6] sudah terurut. i = 8 7 12 18 42 44 55 67 94 di sini a[1],..., a[8] sudah terurut. Jadi pada setiap langkah ke I, a[1],..., a[i] sudah terurut 2. Sortir Pemilihan Algoritma : 1. Pilih data dengan key terkecil. 2. Tukarkan data tersebut dengan elemen a[i] Diketahui himpunan data : i = 1, Lok = 7 el(7) kan dengan el(1) 7 55 12 42 94 18 44 67 di sini a[1] sudah terurut 7 55 12 42 94 18 44 67 i = 2, Lok = 3 el(3) kan dengan el(2) 7 12 55 42 94 18 44 67 di sini a[1] dan a[2] sudah terurut 7 12 55 42 94 18 44 67 I = 3, Lok = 6 el(6) kan dengan el(3) 7 12 18 42 94 55 44 67 di sini a[1],.., a[3] sudah terurut 7 12 18 42 94 55 44 67 i = 4, Lok = 4 el(4) tetap, karena yang menjadi tujuan adalah a[4] 7 12 18 42 94 55 44 67 di sini a[1],.., a[4] sudah terurut 7 12 18 42 94 55 44 67 i = 5, Lok = 7 el(7) kan dengan el(5) 7 12 18 42 44 55 94 67 di sini a[1],.., a[5] sudah terurut Struktur Data 2

7 12 18 42 44 55 94 67 i = 6, Lok = 6 el(6) tetap, karena yang menjadi tujuan adalah a[6] 7 12 18 42 44 55 94 67 di sini a[1],.., a[6] sudah terurut 7 12 18 42 44 55 94 67 i = 7, Lok = 8 el(8) kan dengan el(7) 7 12 18 42 44 55 67 94 di sini a[1],.., a[7] sudah terurut Proses ini dilakukan sampai dengan langkah ke I-1 Elemen yang sudah terurut sebagai berikut : 7 12 18 42 44 55 67 94 Perbedaan utama antara Sortir Penyisipan dan Sortir Pemilihan adalah sebagai berikut : Pada Sortir Penyisipan, pada setiap langkah hanya diperhatikan satu data saja, kemudian untuk mencari tempat data diletakkan, dilihat semua data yang akan menjadi tujuan. Sebaliknya pada Sortir Pemilihan, pada tiap langkah dipilih data dari semua barisan data, kemudian diletakan sebagai satu data baru pada subdaftar tujuan. 3. Sortir Penukaran a. Sortir Gelembung (Bubble Sort) Secara umum, kelompok bilangan itu akan memiliki n bilangan. Dengan demikian, kita akan menemukan n-1 kali letak penyortiran. Letak pertama menggunakan indeks I = 1, letak kedua menggunakan indeks I = 2, dan seterusnya sampai ke letak ke-(n -1) yang menggunakan indeks I = n -1. Pada letak pertama, kita menggunakan indeks J = 1, J = 2 sampai ke J = n. Pada letak kedua, kita menggunakan indeks J = 2, J = 3 sampai ke J = n. Pada letak ketiga, kita menggunakan indeks J = 3, J = 4 sampai ke J = n, dan demikian seterusnya. Atau pada umumnya, nilai indeks J bergerak dari J = 1 sampai ke J = n. Penyortiran pada letak pertama I = 1 9 11 12 7 31 3 J = 1 J = 2 J = 3 J = 4 7 11 12 9 31 3 3 11 12 9 31 7 Struktur Data 3

Penyortiran pada letak kedua I = 2 3 11 12 9 31 7 J = 2 J = 3 J = 4 3 9 12 11 31 7 3 7 12 11 31 9 Penyortiran pada letak ketiga I = 3 3 7 12 11 31 9 J = 3 J = 4 3 7 11 12 31 9 3 7 9 12 31 11 Penyortiran pada letak keempat I = 4 3 7 9 12 31 11 J = 4 3 7 9 11 31 12 Penyortiran pada letak kelima I = 5 3 7 9 11 31 12 3 7 9 11 12 31 Struktur Data 4

b. Sortir Biasa (Common Sort) Misalkan kita mempunyai n buah elemen yang belum terurut. Dalam sortir ini, kita mempunyai suatu indeks (I) yang menyatakan kedudukan elemen (ke-i) dari himpunan elemen, dan suatu panji (P) yang menandakan terjadi atau tidaknya pertukaran posisi elemen dalam himpunan data. Dalam keadaan awal, harga I = 1 dan P = 0, kemudian lakukan langkah sebagai berikut ini : a. Jika el(i) < el(i+1), maka posisi el(i) dibiarkan tetap. I bertambah 1, menjadi I = 2. Patokan kita sekarang adalah el(i+1). El(I+1) kita bandingkan dengan elemen berikutnya. Proses di atas dilakukan lagi sampai didapat elemen berikutnya yang > dari el(i+1). Pada saat itu dilakukan langkah b. b. Jika ele(i) > el(i+1), maka posisi el(i) dan el(i+1) dipertukarkan. Jika terjadi pertukaran seperti di atas, P berubah dari 0 menjadi 1 (P = 1). Langkah berikutnya adalah membandingkan el(i+1) dengan elemen berikutnya. Jika el(i+1) < el(i+2) maka kita lakukan langkah a kembali. Jika el(i+1) > el(i+2) maka posisi el(i+1) dan el(i+2) dipertukarkan. c. Setelah mencapai elemen terakhir, jika P = 0 maka proses sortir selesai. Jika P = 1, maka proses sortir harus diulangi kembali, terhadap urutan yang tadi. Demikian seterusnya kita lakukan langkah a dan b sampai dengan elemen ke n. Jika sampai dengan elemen ke n harga P masih sama dengan 1 (P = 1), maka sortir diulangi kembali sampai didapatkan P = 0. Pada saat pengulangan sortir, harga P dibuat menjadi 0 (P = 0) dan I dibuat menjadi 1 (I = 1) Contoh : Pandang 6 buah elemen yang belum terurut sebagai berikut : I = 1 7 11 12 3 31 9 Bandingkan el(1) dan el(2) 7 < 11 (tetap) I = 2 7 11 12 3 31 9 Bandingkan el(2) dan el(3) 11 < 12 (tetap) I = 3 7 11 12 3 31 9 Bandingkan el(3) dan el(4) 12 > 3 (tukar) dan harga P = 1 I = 4 7 11 3 12 31 9 Bandingkan el(4) dan el(5) 12 < 31 (tetap) I = 5 7 11 3 12 31 9 Bandingkan el(5) dan el(6) 31 > 9 (tukar) dan harga P = 1 7 11 3 12 9 31 Karena harga P = 1, ulangi kembali proses sortir, dengan harga P = 0 dan I = 1 I = 1 7 11 3 12 9 31 Bandingkan el(1) dan el(2) 7 < 11 (tetap) I = 2 7 11 3 12 9 31 Bandingkan el(2) dan el(3) 11 > 3 (tukar) dan harga P = 1 I = 3 7 3 11 12 9 31 Bandingkan el(3) dan el(4) 11 < 12 (tetap) Struktur Data 5

I = 4 7 3 11 12 9 31 Bandingkan el(4) dan el(5) 12 > 9 (tukar) dan harga P = 1 I = 5 7 3 11 9 12 31 Bandingkan el(5) dan el(6) 12 < 31 (tetap) 7 3 11 9 12 31 Karena harga P = 1, ulangi kembali proses sortir, dengan harga P = 0 dan I = 1 I = 1 7 3 11 9 12 31 Bandingkan el(1) dan el(2) 7 > 3 (tukar) dan harga P = 1 I = 2 3 7 11 9 12 31 Bandingkan el(2) dan el(3) 7 < 11 (tetap) I = 3 3 7 11 9 12 31 Bandingkan el(3) dan el(4) 11 > 9 (tukar) dan harga P = 1 I = 4 3 7 9 11 12 31 Bandingkan el(4) dan el(5) 11 < 12 (tetap) I = 5 3 7 9 11 12 31 Bandingkan el(5) dan el(6) 12 < 31 (tetap) 3 7 9 11 12 31 Kita lihat bahwa urutan elemen telah terurut dari kecil ke besar, tetapi harga P masih sama dengan 1. Jadi, kita lakukan sortir elemen di atas dengan harga P = 0 dan I = 1 I = 1 3 7 9 11 12 31 Bandingkan el(1) dan el(2) 3 < 7 (tetap) I = 2 3 7 9 11 12 31 Bandingkan el(2) dan el(3) 7 < 9 (tetap) I = 3 3 7 9 11 12 31 Bandingkan el(3) dan el(4) 9 < 11 (tetap) I = 4 3 7 9 11 12 31 Bandingkan el(4) dan el(5) 11 < 12 (tetap) I = 5 3 7 9 11 12 31 Bandingkan el(5) dan el(6) 12 < 31 (tetap) Karena harga P = 0 maka proses sortir selesai. Jadi urutan elemen setelah disortir adalah sebagai berikut : 3 7 9 11 12 31 Struktur Data 6

SHELLSORT : Mempercepat Sortir Penyisipan Dalam hal ini, data dibagi dalam beberapa kelompok yang berbeda. Pada setiap kelompok dilakukan Sortir Penyisipan. Kemudian banyak kelompok diperkecil (diciutkan) sehingga banyak data dalam masing-masing kelompok bertambah. Lalu diberlakukan lagi Algoritma Sortir Penyisipan. Hal ini terus dilanjutkan sampai banyaknya kelompok yang ada hanya tinggal satu dan mengandung seluruh data. Hal tersebut menunjukkan bahwa teknik ini lebih cepat dibandingkan dengan teknik Sortir Penyisipan biasa. Hal ini disebabkan karena pada tahap awal dilakukan beberapa sortir penyisipan dengan jumlah data sedikit. Karena jumlah kelompok masih cukup banyak. Pada akhir proses harus dilakukan sortir penyisipan pada seluruh data, tetapi sortir secara partial yang dilakukan sebelumnya sudah menyebabkan data terurut sebagian sehingga pada akhirnya jumlah operasi pada sortir penyisipan yang dilakukan tidak terlalu besar.jadi pada teknik ini, sortir pada kelompok yang kecil akan sangat mempengaruhi kecepatan sortir pada kelompok berikutnya, yang mempunyai data sedikit lebih banyak. Contoh : Diketahui 8 buah data yang akan dibagi menjadi 4 kelompok, masing-masing dengan 2 data lalu dibagi ke dalam 2 kelompok data, masing-masing dengan 4 data, dan terakhir menjadi 1 kelompok dengan 8 data. Untuk setiap tingkat dan kelompok dilakukan Sortir penyisipan. Keadaan awal (1) (2) (1) (2) Kelompok 1 : 44 94 44 94 Kelompok 2 : 55 18 18 55 Kelompok 3 : 12 7 7 12 Kelompok 4 : 42 67 42 67 Hasilnya sekarang : 44 18 7 42 94 55 12 67 Sekarang gabungkan kelompok 1 dan 3 serta kelompok 2 dan 4. Kemudian lakukukan Sortir Penyisipan Parsial : (1) (2) (3) (4) (1) (2) (3) (4) Kelompok 1 3 : 44 94 7 12 7 12 44 94 Kelompok 2 4 : 18 55 42 67 18 42 55 67 Hasilnya sekarang : 7 18 12 42 44 55 94 67 Sekarang gabungkan menjadi satu kelompok dan kita lakukan Sortir Penyisipan. 7 18 12 42 44 55 94 67 Diperoleh hasil akhir : 7 12 18 42 44 55 67 94 Struktur Data 7

QUICKSORT Quicksort adalah sebuah Algoritma Sortir dari model atau tipe Divide and Conquer, sama seperti metode Shellsort. : bandingkan 44 dengan 67 (tetap) bandingkan 44 dengan 7 (tukar) 7 55 12 42 94 18 44 67 bandingkan 44 dengan 55 (tukar) 7 44 12 42 94 18 55 67 bandingkan 44 dengan 18 (tukar) 7 18 12 42 94 44 55 67 bandingkan 44 dengan 12 (tetap) 7 18 12 42 94 44 55 67 bandingkan 44 dengan 42 (tetap) 7 18 12 42 94 44 55 67 bandingkan 44 dengan 94 (tukar) 7 18 12 42 44 94 55 67 Perhatikan, ternyata angka-angka dikiri 44, < 44 dan angka-angka di kanan 44, > 44. Semua angka yang < 44 membentuk daftar sendiri, demikian pula angka-angka yang > 44, seperti tampak di bawah ini 7 18 12 42 44 94 55 67 Daftar 1 Daftar 2 Jadi angka 44 pada posisi terakhir merupakan tempat yang tepat. Tahap reduksi di atas dapat diulang terhadap masing-masing daftar yang mengandung 2 atau lebih elemen.hal ini diselesaikan dengan menggunakan 2 stack, yang disebut LOWER dan UPPER. Lower : 1 Upper : 8 Struktur Data 8