Politeknik Elektronika Negeri Surabaya

dokumen-dokumen yang mirip
Politeknik Elektronika Negeri Surabaya

Politeknik Elektronika Negeri Surabaya

Politeknik Elektronika Negeri Surabaya

Politeknik Elektronika Negeri Surabaya

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

Politeknik Elektronika Negeri Surabaya

Politeknik Elektronika Negeri Surabaya

Praktikum 8. Pengurutan (Sorting) Bubble Sort, Shell Sort

Politeknik Elektronika Negeri Surabaya

A. TUJUAN PEMBELAJARAN

BAB VI Pengurutan (Sorting)

A. TUJUAN PEMBELAJARAN

ALGORITMA PENGURUTAN. Oleh : S. Thya Safitri, MT

Bubble Sort dan Shell-Sort. Yuliana Setiowati

Sorting. Pertemuan ke 14.

A. TUJUAN PEMBELAJARAN

Bubble Sort dan Selection Sort di Java Console

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

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

Sorting Algorithms. Definisi

Gambar 1. Single Linked List

A. TUJUAN PEMBELAJARAN

Metode Binnary Searching di Java Console

1. Mana diantara pilihan-pilihan berikut ini yang merupakan penulisan loop yang benar?

Gambar 13.1 Ilustrasi proses algoritma sorting

MODUL PRAKTIKUM STRUKTUR DATA DAN ALGORITMA GENERIC DAN IMPLEMENTASI COMPARETO()

Gambar 1. Single Linked List

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

MODUL PRAKTIKUM STRUKTUR DATA DAN ALGORITMA STACK

Gambar 1. Single Linked List

Kisi-Kisi Ujian Akhir Semester Algoritma dan Pemrograman Lanjut

Tes Asisten Praktikum Alpro Lanjut

2 TIPE DATA DAN VARIABEL

Badiyanto, S.Kom., M.Kom. PBO java

Sorting. Struktur Data dan Algoritma. Suryana Setiawan, Ruli Manurung & Ade Azurat (acknowledgments: Denny) Fasilkom UI

Modul Praktikum Algoritma dan Struktur Data

Permainan Remi Sederhana

Array. Adharul Muttaqin Universitas Brawijaya Malang. Array

BAB II VARIABEL DAN TIPE DATA

BAB 8 SORTING DAN SEARCHING

PENGURUTAN (SORTING) 1. Overview

MODUL PRAKTIKUM BASIS DATA PENGENALAN STRUKTUR DATA DAN KOMPLEKSITAS WAKTU

Agar lebih mudah mengerti, cobalah untuk melakukan hal-hal berikut ini: 1. Bacalah terlebih dahulu ide dasar dari masing-masing algoritma.

Outline STRUKTUR DATA. VII. Sorting

7. SORTING DAN SEARCHING

BAHASA PEMROGRAMAN JAVA PUTU INDAH CIPTAYANI JURUSAN SISTEM INFORMASI STMIK AMIKOM YOGYAKARTA

STRUKTUR DATA. By : Sri Rezeki Candra Nursari 2 SKS

Pencarian (Searching)

BAB 2 SORTING (PENGURUTAN)

B.1 Mengurutkan Objek String Terdapat array dengan tipe String, untuk mengurutkan data String pada array gunakan Arrays.sort().

PEMROGRAMAN JAVA : VARIABEL DAN TIPE DATA

Algoritma dan Pemrograman 2 PENGURUTAN

Metode Insertion Sort di Java Console

Bahasa Pemrograman :: Dasar Pemrograman Java

Algoritma dan Struktur Data. Algoritma Pengurutan (Sorting)

C. TUGAS PENDAHULUAN Buatlah resume 1 halaman mengenai Priority Queue dan berikan penjelasannya.!

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

Modul Praktikum Bahasa Pemrograman 1

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

BAB 3 TYPE DATA, VARIABLE DAN OPERATOR

Powered by icomit.wordpress.com

Modul Praktikum 6 Pemograman Berorientasi Objek

MODUL PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK

Pemrograman. Pertemuan-3 Fery Updi,M.Kom

STRUKTUR DATA SORTING ARRAY

Percabangan & Perulangan

int i = 0; while (i < 10) { System.out.println( Informatika Unpas ); i++; }

Bab 8 Array. x=a[9]; Untuk memasukkan data ke dalam array, sintak yang digunakan adalah : a[nomor_elemen] = data;

STRUKTUR DATA (3) sorting array. M.Cs

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

BAB 3 STRUKTURE PROGRAM JAVA

1. Algoritma Searching

ShortHand If Else di Java

Struktur Kontrol Pemrograman Java : PERCABANGAN

DASAR PEMOGRAMAN JAVA

Belajar ArrayList di Java

ALGORITMA PENGURUTAN & PENCARIAN

SORTING (PENGURUTAN DATA)

# TEN Sorting PENDAHULUAN

Dasar Pemrograman Java

SORTING. Brigida Arie Minartiningtyas, M.Kom

Array Multidimensi. Pemrograman Dasar. Java

OPERATOR-OPERATOR DALAM JAVA

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

LAB PEMROGRAMAN I (JAVA FUNDAMENTAL) PERTEMUAN 3 Dosen : Bella Hardiyana S. Kom

Objectives. Struktur Data & Algoritme (Data Structures & Algorithms) Sort. Outline. Bubble Sort: idea. Bubble Sort. Sorting

MODUL PRAKTIKUM STRUKTUR DATA DAN ALGORITMA QUEUE

LAPORAN PRAKTIKUM ALGORITMA DAN PEMROGRAMAN ( Implementasi Rekursi Pada Java)

Identifier, Keywords, Variabel, Tipe Data Primitif dan Operator PBO. Ramos Somya

BAHASA PEMROGRAMAN JAVA

A. TUJUAN PEMBELAJARAN

PEMAHAMAN DASAR DASAR JAVA

Reserved words Reserved words atau keywords merupakan kata-kata spesifik digunakan oleh compiler untuk keperluan pemrograman. Contoh reserved words

Politeknik Elektronika Negeri Surabaya

B.1 Mengurutkan Objek String Terdapat array dengan tipe String, untuk mengurutkan data String pada array gunakan Arrays.sort().

MODUL 5 PERULANGAN A. WHILE

B.1 Mengurutkan Obyek String Terdapat array dengan tipe String, untuk mengurutkan data String pada array gunakan Arrays.sort().

Perulangan / Looping

Arrays. Misalkan kita ingin menyimpan 100 buah integer Buat 100 variabel bertipe integer. Tidak efisien!

Fungsi. Fungsi. Dasar Komputer & Pemrograman 1. dipecah Sub Program. Program. Dasar Komputer & Pemrograman TC22052 Kartika Firdausy - UAD

Transkripsi:

PRAKTIKUM 12 ALGORITMA PENGURUTAN (SHELL SORT) A. TUJUAN PEMBELAJARAN 1. Memahami step by step algoritma pengurutan shell sort. 2. Mampu mengimplementasikan algoritma pengurutan shell sort dengan berbagai macam parameter berupa tipe data primitif atau tipe Generic. 3. Mampu mengimplementasikan algoritma pengurutan shell sort secara ascending dan descending. B. DASAR TEORI Shell Sort Metode ini disebut juga dengan metode pertambahan menurun (diminishing increment). Metode ini dikembangkan oleh Donald L. Shell pada tahun 1959, sehingga sering disebut dengan Metode Shell Sort. Metode ini mengurutkan data dengan cara membandingkan suatu data dengan data lain yang memiliki jarak tertentu, kemudian dilakukan penukaran bila diperlukan Proses pengurutan dengan metode Shell dapat dijelaskan sebagai berikut : Pertama-tama adalah menentukan jarak mula-mula dari data yang akan dibandingkan, yaitu N / 2. Data pertama dibandingkan dengan data dengan jarak N / 2. Apabila data pertama lebih besar dari data ke N / 2 tersebut maka kedua data tersebut ditukar. Kemudian data kedua dibandingkan dengan jarak yang sama yaitu N / 2. Demikian seterusnya sampai seluruh data dibandingkan sehingga semua data ke-j selalu lebih kecil daripada data ke-(j + N / 2). Pada proses berikutnya, digunakan jarak (N / 2) / 2 atau N / 4. Data pertama dibandingkan dengan data dengan jarak N / 4. Apabila data pertama lebih besar dari data ke N / 4 tersebut maka kedua data tersebut ditukar. Kemudian data kedua dibandingkan 93

dengan jarak yang sama yaitu N / 4. Demikian seterusnya sampai seluruh data dibandingkan sehingga semua data ke-j lebih kecil daripada data ke-(j + N / 4). Pada proses berikutnya, digunakan jarak (N / 4) / 2 atau N / 8. Demikian seterusnya sampai jarak yang digunakan adalah 1. Algoritma metode Shell dapat dituliskan sebagai berikut : 1 Jarak N 2 Selama (Jarak > 1) kerjakan baris 3 sampai dengan 9 3 Jarak Jarak / 2. Sudah false 4 Kerjakan baris 4 sampai dengan 8 selama Sudah = false 5 Sudah true 6 j 0 7 Selama (j < N Jarak) kerjakan baris 8 dan 9 8 Jika (Data[j] > Data[j + Jarak] maka tukar Data[j], Data[j + Jarak]. Sudah true 9 j j + 1 Untuk lebih memperjelas langkah-langkah algoritma penyisipan langsung dapat dilihat pada tabel 1. Proses pengurutan pada tabel 1 dapat dijelaskan sebagai berikut: Pada saat Jarak = 5, j diulang dari 0 sampai dengan 4. Pada pengulangan pertama, Data[0] dibandingkan dengan Data[5]. Karena 12<17, maka tidak terjadi penukaran. Kemudian Data[1] dibandingkan dengan Data[6]. Karena 35>23 maka Data[1] ditukar dengan Data[6]. Demikian seterusnya sampai j=4. Pada saat Jarak = 5/2 = 2, j diulang dari 0 sampai dengan 7. Pada pengulangan pertama, Data[0] dibandingkan dengan Data[2]. Karena 12>9 maka Data[0] ditukar dengan Data[2]. Kemudian Data[1] dibandingkan dengan Data[3] juga terjadi penukaran karena 23>11. Demikian seterusnya sampai j=7. Perhatikan untuk Jarak = 2 proses pengulangan harus dilakukan lagi karena ternyata Data[0] > Data[2]. Proses pengulangan ini berhenti bila Sudah=true. Demikian seterusnya sampai Jarak=1. 94

Tabel 1. Proses Pengurutan dengan Metode Shell Iterasi Data[0] Data[1] Data[2] Data[3] Data[4] Data[5] Data[6] Data[7] Data[8] Data[9] Awal 12 35 9 11 3 17 23 15 31 20 Jarak=5 12 35 9 11 3 17 23 15 31 20 i=6 12 35 9 11 3 17 23 15 31 20 Jarak=2 12 23 9 11 3 17 35 15 31 20 i=2 12 23 9 11 3 17 35 15 31 20 i=3 9 23 12 11 3 17 35 15 31 20 i=4 9 11 12 23 3 17 35 15 31 20 i=5 9 11 3 23 12 17 35 15 31 20 i=7 9 11 3 17 12 23 35 15 31 20 i=8 9 11 3 17 12 15 35 23 31 20 i=9 9 11 3 17 12 15 31 23 35 20 i=2 9 11 3 17 12 15 31 20 35 23 i=3 3 11 9 17 12 15 31 20 35 23 Jarak=1 3 11 9 15 12 17 31 20 35 23 i=2 3 11 9 15 12 17 31 20 35 23 i=4 3 9 11 15 12 17 31 20 35 23 i=7 3 9 11 12 15 17 31 20 35 23 i=9 3 9 11 12 15 17 20 31 35 23 i=1 3 9 11 12 15 17 20 31 23 35 i=8 3 9 11 12 15 17 20 31 23 35 i=9 3 9 11 12 15 17 20 23 31 35 Akhir 3 9 11 12 15 17 20 23 31 35 Di bawah ini merupakan prosedur yang menggunakan metode Shell. void ShellSort(int N) { int Jarak, i, j; bool Sudah; Jarak = N; while(lompat > 1){ Jarak = Jarak / 2; while(!sudah){ for(j=0; j<n-jarak; j++){ i = j + Jarak; 95

if(data[j] > Data[i]){ Tukar(&Data[j], &Data[i]); Program 1. Prosedur Pengurutan dengan Metode Shell C. TUGAS PENDAHULUAN Jelaskan algoritma pengurutan shell sort secara ascending dengan data 5 6 3 1 2 D. PERCOBAAN Percobaan 1 : Shell sort secara ascending dengan data int. public class ShellDemo { public static void shellsort(int[] arr) { int n = arr.length; int C,M ; int jarak, i, j, kondisi; boolean int temp ; C = 0; M = 0; jarak = n; while (jarak >= 1) { jarak = jarak / 2; while (Sudah) { for (j = 0; j < n - jarak; j++) { i = j + jarak; C++; if (arr[j]> arr[i]) { temp = arr[j]; arr[j] = arr[i]; arr[i] = temp; 96

public static void tampil(int data[]){ for(int i=0;i<data.length;i++) System.out.print(data[i]+" "); System.out.println(); public class MainShell { int A[] = {10,6,8,3,1; ShellDemo.shellSort(A); Percobaan 2 : Shell sort secara descending dengan data int. public class ShellDemo { public static void shellsort(int[] arr) { int n = arr.length; int C,M ; int jarak, i, j, kondisi; boolean int temp ; C = 0; M = 0; jarak = n; while (jarak >= 1) { jarak = jarak / 2; while (Sudah) { for (j = 0; j < n - jarak; j++) { i = j + jarak; C++; if (arr[j]> arr[i]) { temp = arr[j]; arr[j] = arr[i]; arr[i] = temp; 97

public static void tampil(int data[]){ for(int i=0;i<data.length;i++) System.out.print(data[i]+" "); System.out.println(); public class MainShell { int A[] = {10,6,8,3,1; ShellDemo.shellSort(A); Percobaan 3 : Shell sort secara ascending dengan data double. public class ShellDemo { public static void shellsort(double[] arr) { int n = arr.length; int C,M ; int jarak, i, j, kondisi; boolean double temp ; C = 0; M = 0; jarak = n; while (jarak >= 1) { jarak = jarak / 2; while (Sudah) { for (j = 0; j < n - jarak; j++) { i = j + jarak; C++; if (arr[j]> arr[i]) { temp = arr[j]; arr[j] = arr[i]; arr[i] = temp; public static void tampil(double data[]){ 98

for(int i=0;i<data.length;i++) System.out.print(data[i]+" "); System.out.println(); public class MainShell2 { double A[] = {10.3,6.2,8.4,3.6,1.1; ShellDemo.shellSort(A); E. LATIHAN 1. Buatlah program sorting Shell dengan parameter array Integer (class Wrapper)! public static void shellsort(integer[] A){ 2. Buatlah program sorting Shell dengan parameter array Double (class Wrapper)! public static void shellsort(double[] A){ 3. Buatlah fungsi tampil() untuk menampilkan data. public static<t> void tampil(t data[]){ 4. Lakukan pengujian fungsi shellsort(), dengan membuat fungsi main() sebagai berikut : public class Demo1 { //Data Integer Integer arr3[] = {1,5,6,2,8,9; ShellDemo.shellSort(arr3); ShellDemo.tampil(arr3); //data Double Double arr4[] = {1.3,5.2,6.6,2.7,8.8,9.1; ShellDemo.shellSort(arr4); ShellDemo.tampil(arr4); 5. Buatlah program sorting Shell dengan parameter array Number! public static<t extends Number> void shellsort(t[] A){ 6. Lakukan pengujian fungsi shellsort(), dengan membuat fungsi main() sebagai berikut : 99

public class Demo2 { Float arr5[] = {1.3f,5.2f,6.6f,2.7f,8.8f,9.1f; ShellDemo.shellSort(arr5); ShellDemo Demo.tampil(arr5); Byte arr6[] = {6,7,11,1,3,2; ShellDemo.shellSort(arr6); ShellDemo.tampil(arr6); 7. Buatlah program sorting Shell dengan parameter array yang memenuhi T extends Comparable! public static <T extends Comparable> void shellsort2(t[] arr) { 8. Lakukan pengujian fungsi shellsort(), dengan membuat fungsi main() sebagai berikut : public class Demo3 { //data String String arr7[]= {"jeruk","anggur","belimbing","jambu","kelengkeng"; ShellDemo.shellSort2(arr7); ShellDemo.tampil(arr7); 9. Buatlah class Mahasiswa dengan variable nrp dan nama yang memiliki tipe String! Class Mahasiswa mengimplementasikan interface Comparable, selanjutnya implementasikan fungsi abstract compareto(), untuk membandingkan dua objek mahasiswa berdasarkan nrp. public class Mahasiswa implements Comparable <Mahasiswa> { private String nrp ; private String nama ; @Override public int compareto(mahasiswa o) { @Override public String tostring() { 100

10. Lakukan pengujian fungsi shellsort() lagi, sebelumnya tambahkan pada fungsi main() seperti di bawah ini! public class Demo4 { Mahasiswa arr8[] = {new Mahasiswa("02", "Budi"), new Mahasiswa("01", "Andi"), new Mahasiswa("04", "Udin"), new Mahasiswa("03", "Candra"); ShellDemo.shellSort 2(arr8); ShellDemo.tampil(arr8); F. LAPORAN RESMI Kerjakan hasil percobaan(d) dan latihan(e) di atas dan tambahkan analisa. 101