A. TUJUAN PEMBELAJARAN

dokumen-dokumen yang mirip
A. TUJUAN PEMBELAJARAN

A. TUJUAN PEMBELAJARAN

Politeknik Elektronika Negeri Surabaya

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

Politeknik Elektronika Negeri Surabaya

Politeknik Elektronika Negeri Surabaya

Sorting. Pertemuan ke 14.

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

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

Politeknik Elektronika Negeri Surabaya

PRATIKUM METODE KOMPUTASI MATEMATIKA TERAPAN

BAB VI Pengurutan (Sorting)

SORTING ALGORITMA. Bubble Sort JANUARY 14, 2016

Algoritma Bubble Sort dan Quick Sort

Politeknik Elektronika Negeri Surabaya

PENGURUTAN (SORTING) 1. Overview

A. TUJUAN PEMBELAJARAN

ALGORITMA PENGURUTAN. Oleh : S. Thya Safitri, MT

Politeknik Elektronika Negeri Surabaya

Pencarian (Searching)

Sorting (Bubble Sort)

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

SORTING. Struktur Data S1 Sistem Informasi. Ld.Farida

Praktikum 9. Pengurutan (Sorting) Quick Sort, Merge Sort

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

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

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

Politeknik Elektronika Negeri Surabaya

Gambar 13.1 Ilustrasi proses algoritma sorting

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

Sorting Algorithms. Buble Sort

ALGORITMA PENGURUTAN & PENCARIAN

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

Pengurutan (Sorting) Algoritma Pemrograman

Materi 4: SORTING (PENGURUTAN) Dosen:

Sorting Algorithms. Definisi

Modul 8 SORTING (PENGURUTAN)

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

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

Kisi-Kisi Ujian Akhir Semester Algoritma dan Pemrograman Lanjut

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

Algoritme dan Pemrograman

STRUKTUR DATA SORTING ARRAY

Algoritma dan Struktur Data

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

Algoritma dan Struktur Data. Algoritma Pengurutan (Sorting)

Bubble Sort dan Selection Sort di Java Console

SORTING (PENGURUTAN DATA)

Powered by icomit.wordpress.com

BAB 8 SORTING DAN SEARCHING

STRUKTUR DATA (3) sorting array. M.Cs

BAB 2 SORTING (PENGURUTAN)

MODUL IV PENCARIAN DAN PENGURUTAN

7. SORTING DAN SEARCHING

Algoritma Shell Sort Ascending Dan Binary Sequential Search Menggunakan C

Modul Praktikum Algoritma dan Struktur Data

nama array untuk menyimpan data jumlah data

Single Linked List (1)

Algoritma dan Pemrograman 2 PENGURUTAN

STRUKTUR DATA. By : Sri Rezeki Candra Nursari 2 SKS

BAB V SORTING (PENGURUTAN) INTERNAL

Politeknik Elektronika Negeri Surabaya

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

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

CCH1A4 / Dasar Algoritma & Pemrogramanan

Outline STRUKTUR DATA. VII. Sorting

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

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

BAB XI ARRAY (LARIK)

Gambar 1. Single Linked List

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

Pengurutan (Sorting)

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

MAKALAH STRUKTUR DATA HEAP SORT. Disusun Oleh :

Penger6an struct. Algoritme dan Pemrograman. Cara membuat struct. Deklarasi struct. Pointer pada struct 12/10/14 ILKOM IPB 1

Pengenalan C++ Oleh : Dewi Sartika

Algoritma dan Pemrograman 2 PENGURUTAN

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

Gambar 1. Single Linked List

VARIABEL & TIPE DATA PEMROGRAMAN C++

BAB VI SORTIR ATAU PENGURUTAN

Algoritma dan Struktur Data. Searching dan Sorting

Array dan Matriks. IF2121 / Algoritma dan Struktur Data Sem / /7/2017 IF2121/sem /2018 1

MODUL PRAKTIKUM STRUKTUR DATA DAN ALGORITMA BUBBLE SORT, SELECTION SORT, INSERTION SORT

REVIEW ARRAY. Institut Teknologi Sumatera

Kompleksitas Algoritma Sorting yang Populer Dipakai

Simple Sorting Techniques

SORTING. Brigida Arie Minartiningtyas, M.Kom

PRAKTIKUM 2. perubah (variabel), konstanta, fungsi, atau obyek lain yang didefinisikan oleh

PRAKTIKUM 9 ARRAY. ARRAY BERDIMENSI SATU Suatu array berdimensi satu dideklarasikan dalam bentuk umum berupa :

Algoritme dan Pemrograman

KU-1072 Pengenalan Teknologi Informasi - B. Materi: Array. Fakultas Ilmu dan Teknologi Kebumian

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

12/29/2011 ILKOM IPB 1. Algoritme dan Pemrograman. Address and Pointers. Pointer

12/26/2011 ILKOM IPB 1. Algoritme dan Pemrograman. Sorting. Data untuk sorting. Contoh. Algoritme #1: BUBBLE SORT.

Gambar 1. Single Linked List

STACK DAN QUEUE. Pengertian Stack Dan Queue. stack & queue. Last saved by KENKEINA Created by KENKEINA

A. TUJUAN PEMBELAJARAN

# FOUR LOOPING. JAWABAN 1. #include <stdio.h> #include <conio.h> #define pi void main(){

Transkripsi:

Praktikum 11 Algoritma Pengurutan (Bubble Sort dan Shell Sort) A. TUJUAN PEMBELAJARAN Setelah melakukan praktikum dalam bab ini, mahasiswa diharapkan mampu: 1. Memahami mengenai algoritma pengurutan bubble sort dan shell sort. 2. Mampu mengimplementasikan algoritma pengurutan bubble sort dan shell sort secara ascending dan descending. B. DASAR TEORI B.1 Algoritma Bubble Sort Bubble sort (metode gelembung) adalah metode/algoritma pengurutan dengan dengan cara melakukan penukaran data dengan tepat disebelahnya secara terus menerus sampai bisa dipastikan dalam satu iterasi tertentu tidak ada lagi perubahan. Jika tidak ada perubahan berarti data sudah terurut. Disebut pengurutan gelembung karena masing-masing kunci akan dengan lambat menggelembung ke posisinya yang tepat. Metode pengurutan gelembung (Bubble Sort) diinspirasikan oleh gelembung sabun yang berada dipermukaan air. Karena berat jenis gelembung sabun lebih ringan daripada berat jenis air, maka gelembung sabun selalu terapung ke atas permukaan. Prinsip di atas dipakai pada pengurutan gelembung. Algoritma bubble sort adalah salah satu algoritma pengurutan yang paling simple, baik dalam hal pengertian maupun penerapannya. Ide dari algoritma ini adalah mengulang proses pembandingan antara tiap-tiap elemen array dan menukarnya apabila urutannya salah. Pembandingan elemen-elemen ini akan terus Algoritma dan Struktur Data 101

diulang hingga tidak perlu dilakukan penukaran lagi. Algoritma ini termasuk dalam golongan algoritma comparison sort, karena menggunakan perbandingan dalam operasi antar elemennya. Berikut ini adalah gambaran dari algoritma bubble sort. Misalkan kita mempunyai sebuah array dengan. Elemen-elemen 4 2 5 3 9. Proses yang akan terjadi apabila digunakan algoritma bubble sort adalah sebagai berikut. Pass pertama (4 2 5 3 9) menjadi (2 4 5 3 9) (2 4 5 3 9) menjadi (2 4 5 3 9) (2 4 5 3 9) menjadi (2 4 3 5 9) (2 4 3 5 9) menjadi (2 4 3 5 9) Pass kedua (2 4 3 5 9) menjadi (2 4 3 5 9) (2 4 3 5 9) menjadi (2 3 4 5 9) Pass ketiga Dapat dilihat pada proses di atas, sebenarnya pada pass kedua, langkah kedua, array telah terurut. Namun algoritma tetap dilanjutkan hingga pass kedua berakhir. Pass ketiga dilakukan karena definisi terurut dalam algoritma bubble sort adalah tidak ada satupun penukaran pada suatu pass, sehingga pass ketiga dibutuhkan untuk memverifikasi keurutan array tersebut. B.2 Algoritma Shell Sort Metode shell sort dikembangkan oleh Donald L. Shell pada tahun 1959. Dalam metode ini jarak antara dua elemen yang dibandingkan dan ditukarkan tertentu. Secara singkat metode ini dijelaskan sebagai berikut. Pada langkah pertama, kita ambil elemen pertama dan kita bandingkan dan kita bandingkan dengan elemen pada jarak tertentu dari elemen pertama tersebut. Kemudain elemen kedua kita Algoritma dan Struktur Data 102

bandingkan dengan elemen lain dengan jarak yang sama seperti jarak yang sama seperti diatas. Demikian seterusnya sampai seluruh elemen dibandingkan. Pada langkah kedua proses diulang dengan langkah yang lebih kecil, pada langkah ketiga jarak tersebut diperkecil lagi seluruh proses dihentikan jika jarak sudah sama dengan satu. Contoh dari proses pengurutan dengan menggunakan metode Shell Sort : C. TUGAS PENDAHULUAN Jawablah pertanyaan berikut ini : 1. Tuliskan algoritma pengurutan bubble sort secara ascending. 2. Tuliskan algoritma pengurutan shell sort secara ascending. D. PERCOBAAN Percobaan 1 : Bubble sort secara ascending. #include<stdio.h> #include<stdlib.h> #include<time.h> #define MAX 20 void BubbleSort(int arr[]) int i, j, temp; for(i=0; i<max-1; i++) for(j=0; j<max-i-1; j++) if(arr[j] > arr[j+1]) temp = arr[j+1]; arr[j+1] = arr[j]; arr[j]= temp; Algoritma dan Struktur Data 103

void main() int data_awal[max], data_urut[max]; int i; long k1, k2; printf("sebelum pengurutan : \n"); srand(time(null) * (i+1)); data_awal[i] = rand() % 100 + 1; printf("%d ", data_awal[i]); printf("\nsetelah pengurutan : \n"); data_urut[i] = data_awal[i]; time(&k1); BubbleSort(data_urut); time(&k2); printf("%d ", data_urut[i]); printf("\nwaktu = %ld\n", k2-k1); Percobaan 2 : Bubble sort secara ascending dengan flag. #include<stdio.h> #include<stdlib.h> #include<time.h> #define MAX 20 void BubbleSortFlag(int arr[]) int i=0, j, temp; bool did_swap=true; while(i < MAX-1 && did_swap) for(j=0; j<max-i-1; j++) did_swap=false; if(arr[j] > arr[j+1]) temp = arr[j+1]; arr[j+1] = arr[j]; arr[j]= temp; did_swap=true; i++; void main() int data_awal[max], data_urut[max]; Algoritma dan Struktur Data 104

int i; long k1, k2; printf("sebelum pengurutan : \n"); srand(time(null) * (i+1)); data_awal[i] = rand() % 100 + 1; printf("%d ", data_awal[i]); printf("\nsetelah pengurutan : \n"); data_urut[i] = data_awal[i]; time(&k1); BubbleSortFlag(data_urut); time(&k2); printf("%d ", data_urut[i]); printf("\nwaktu = %ld\n", k2-k1); Percobaan 3 : Shell sort secara ascending. #include<stdio.h> #include<stdlib.h> #include<time.h> #define MAX 20 void ShellSort(int arr[]) int i, jarak, temp; bool did_swap=true; jarak = MAX; while(jarak > 1) jarak = jarak / 2; did_swap = true; while( did_swap ) did_swap = false; i = 0; while(i < (MAX-jarak)) if(arr[i] > arr[i+jarak]) temp = arr[i]; arr[i] = arr[i+jarak]; arr[i+jarak] = temp; did_swap=true; i++; void main() int data_awal[max], data_urut[max]; int i; long k1, k2; Algoritma dan Struktur Data 105

printf("sebelum pengurutan : \n"); srand(time(null) * (i+1)); data_awal[i] = rand() % 100 + 1; printf("%d ", data_awal[i]); printf("\nsetelah pengurutan : \n"); data_urut[i] = data_awal[i]; time(&k1); ShellSort(data_urut); time(&k2); printf("%d ", data_urut[i]); printf("\nwaktu = %ld\n", k2-k1); E. LATIHAN 1. Dari percobaan 1 tambahkan fungsi untuk melakukan pengurutan bubble sort secara descending. 2. Dari percobaan 2 tambahkan fungsi untuk melakukan pengurutan bubble sort dengan flag secara descending. 3. Dari percobaan 3 tambahkan fungsi untuk melakukan pengurutan shell sort secara descending. 4. Buatlah struktur Mahasiswa dengan variable nrp dan nama yang memiliki tipe String dan kelas yang bertipe int. Buatlah fungsi pengurutan dengan bubble sort, bubble sort dengan flag dan shell sort berdasarkan nrp. struct Mahasiswa char nrp[10]; char nama[20]; int kelas; ; F. LAPORAN RESMI 1. Kerjakan hasil percobaan(d) dan latihan(e) di atas dan tambahkan analisa. 2. Tuliskan kesimpulan dari percobaan dan latihan yang telah anda lakukan. Algoritma dan Struktur Data 106