A. TUJUAN PEMBELAJARAN

dokumen-dokumen yang mirip
A. TUJUAN PEMBELAJARAN

A. TUJUAN PEMBELAJARAN

Politeknik Elektronika Negeri Surabaya

Politeknik Elektronika Negeri Surabaya

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

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

Politeknik Elektronika Negeri Surabaya

BAB VI Pengurutan (Sorting)

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

Politeknik Elektronika Negeri Surabaya

Sorting. Pertemuan ke 14.

Politeknik Elektronika Negeri Surabaya

A. TUJUAN PEMBELAJARAN

Politeknik Elektronika Negeri Surabaya

Algoritma dan Struktur Data. Algoritma Pengurutan (Sorting)

BAB 8 SORTING DAN SEARCHING

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

7. SORTING DAN SEARCHING

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

Algoritma Bubble Sort dan Quick Sort

Gambar 13.1 Ilustrasi proses algoritma sorting

Sorting Algorithms. Divide and Conquer

SORTING. Struktur Data S1 Sistem Informasi. Ld.Farida

PENGURUTAN (SORTING) 1. Overview

SORTING. Brigida Arie Minartiningtyas, M.Kom

STRUKTUR DATA. Nama : Sulfikar Npm : STMIK Handayani Makassar

Pencarian (Searching)

STRUKTUR DATA. By : Sri Rezeki Candra Nursari 2 SKS

ALGORITMA PENGURUTAN & PENCARIAN

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

STRUKTUR DATA SORTING ARRAY

Outline STRUKTUR DATA. VII. Sorting

Politeknik Elektronika Negeri Surabaya

Politeknik Elektronika Negeri Surabaya

Modul 8 SORTING (PENGURUTAN)

Komparasi Algoritma Mergesort dengan Quicksort pada Pengurutan Data Integer

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

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

Algoritma Transposisi (Bubble Sort/pengurutan gelembung)

Kompleksitas Algoritma Sorting yang Populer Dipakai

Algoritme dan Pemrograman

Pengurutan (Sorting) Algoritma Pemrograman

Quick Sort dan Merge Sort. Arna Fariza Yuliana Setiowati

SORTING (Pengurutan)

ALGORITMA PENGURUTAN. Oleh : S. Thya Safitri, MT

SORTING (BAGIAN II) Proses kelima

STRUKTUR DATA (3) sorting array. M.Cs

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

Modul Praktikum Algoritma dan Struktur Data

SORTING DENGAN ALGORITMA DIVIDE AND CONQUER

DIKTAT STRUKTUR DATA Oleh: Tim Struktur Data IF

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

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

BAB I PENDAHULUAN.

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

1. Algoritma Searching

Algoritma dan Pemrograman Lanjut. Pertemuan Ke-9 Pengurutan (Sorting) 2

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

Modul Praktikum 6 Pemograman Berorientasi Objek

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

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

: Mahasiswa mampu menjelaskan teknik pemrograman menggunakan Sorting. Quick Sort

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

Algoritma dan Struktur Data

UJIAN AKHIR SEMESTER GANJIL 2008/2009 ALGORITME DAN PEMROGRAMAN Sabtu, 31 Januari 2009; Pukul 13:30 16:00; CATATAN TERTUTUP

Studi Mengenai Perbandingan Sorting Algorithmics Dalam Pemrograman dan Kompleksitasnya

PERTEMUAN 10 METODE DEVIDE AND CONQUER

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

1. Kompetensi Mengenal dan memahami algoritma percabangan yang komplek.

Sorting Algorithms. Algoritma dan Struktur Data. Sorting algorithms

Algoritme dan Pemrograman

Bab Tujuan. 6.2 Insertion Sort

MODUL PRAKTIKUM STRUKTUR DATA. Dosen Pengampu M.Bahrul Ulum, S.Kom., M.Kom. Asisten Lab Mia Kastina PROGRAM STUDI TEKNIK INFORMATIKA

Single Linked List (1)

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

SORTING (PENGURUTAN DATA)

PERTEMUAN 10 METODE DEVIDE AND CONQUER

ANALISIS KOMPLEKSITAS ALGORITMA UNTUK BERBAGAI MACAM METODE PENCARIAN NILAI (SEARCHING) DAN PENGURUTAN NILAI (SORTING) PADA TABEL

BAB 1 PENDAHULUAN. Universitas Sumatera Utara

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

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

Kompleksitas Algoritma dalam Strategi Algoritma Sorting

MODUL IV PENCARIAN DAN PENGURUTAN

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

Menghitung Inversion Pada Barisan Dengan Menggunakan Modifikasi Bubble Sort, Insertion Sort, dan Merge Sort

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

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

Pengertian Algoritma Pengurutan

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

Algoritma dan Struktur Data. Searching dan Sorting

Konsep Sorting dalam Pemrograman Saniman dan Muhammad Fathoni

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

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

Penerapan Struktur Data Pohon dalam Implementasi Algoritma Heapsort dan Tinjauan Kompleksitas Waktunya

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

BAB 2 LANDASAN TEORI

Politeknik Elektronika Negeri Surabaya

ANALISIS ALGORITMA INSERTION SORT, MERGE SORT DAN IMPLEMENTASINYA DALAM BAHASA PEMROGRAMAN C++

Materi 4: SORTING (PENGURUTAN) Dosen:

BAB 2 SORTING (PENGURUTAN)

Transkripsi:

Praktikum 12 Algoritma Pengurutan (Quick Sort dan Merge Sort) A. TUJUAN PEMBELAJARAN Setelah melakukan praktikum dalam bab ini, mahasiswa diharapkan mampu: 1. Memahami mengenai algoritma pengurutan quick sort dan merge sort. 2. Mampu mengimplementasikan algoritma pengurutan quick sort dan merge sort secara ascending dan descending. B. DASAR TEORI B.1 Algoritma Quick Sort Metode quick sort dikembangkan oleh C.A.R Hoare.Secara garis besar metode ini dijelaskan sebagai berikut. Misalnya kita ingin mengurutkan data A yang mempunyai N elemen. Kita pilih sembarang elemen dari data tersebut, bisanya elemen pertama, misalnya X. kemudian semua elemen tersebut disusun dengan menempatkan X pada posisi J sedemikian rupa sehingga elemen ke 1 sampai ke J 1 mempunyai nilai lebih kecil dari X dan elemen J+1sampai ke N mempunyai nilai lebih besar dari X. Sampai saat ini kita sudah mempunyai dua sub data (kiri dan kanan). Langkah berikutnya diulang untuk setiap sub data. Algoritma dan Struktur Data 107

Gambar 11.1 Langkah-langkah Quick Sort B.2 Algoritma Merge Sort Algoritma merge ini disesuaikan untuk mesin drive tape. Penggunaannya dalam akses memori acak besar yang terkait telah menurun, karena banyak aplikasi algoritma merge yang mempunyai alternatif lebih cepat ketika kamu memiliki akses memori acak yang menjaga semua data mu.hal ini disebabkan algoritma ini membutuhkan setidaknya ruang atau memori dua kali lebih besar karena dilakukan secara rekursif dan memakai dua tabel. Algoritma merge sort membagi tabel menjadi dua tabel yang sama besar. Masing-masing tabel diurutkan secara rekursif, dan kemudian digabungkan kembali untuk membentuk tabel yang terurut.implementasi dasar dari algoritma merge sort memakai tiga buah tabel, dua untuk menyimpan elemen dari tabel yang telah di bagi dua dan satu untuk menyimpan elemen yang telah terurut.namun algoritma ini dapat juga dilakukan langsung pada dua tabel, sehingga menghemat ruang atau memori yang dibutuhkan. Algoritma Merge umumnya memiliki satu set pointer p 0..n yang menunjuk suatu posisi di dalam satu set daftar L 0..n.Pada awalnya mereka menunjuk item yang pertama pada setiap daftar. Algoritmanya sebagai berikut: Selama p 0..n masih menunjuk data yang di dalam sebagai pengganti pada akhirnya: - Melakukan sesuatu dengan data item yang menunjuk daftar mereka masingmasing. - Menemukan pointers points untuk item dengan kunci yang paling rendah; membantu salah satu pointer untuk item yang berikutnya dalam daftar. Algoritma dan Struktur Data 108

CONTOH : Contoh penerapan atas sebuah larik sebagai data sumber yang akan diurutkan 3, 9, 4, 1, 5, 2 adalah sebagai berikut: - Larik tersebut dibagi menjadi dua bagian, 3, 9, 4 dan 1, 5, 2 - Kedua larik kemudian diurutkan secara terpisah sehingga menjadi 3, 4, 9 dan 1, 2, 5 - Sebuah larik baru dibentuk yang sebagai penggabungan dari kedua larik tersebut 1, sementara nilai-nilai dalam masing larik 3, 4, 9 dan 2, 5 (nilai 1 dalam elemen larik ke dua telah dipindahkan ke larik baru) - langkah berikutnya adalah penggabungan dari masing-masing larik ke dalam larik baru yang dibuat sebelumnya. a. 1, 2 <-> 3, 4, 9 dan 5 b. 1, 2, 3 <-> 4, 9 dan 5 c. 1, 2, 3, 4 <-> 9 dan 5 d. 1, 2, 3, 4, 5 <-> 9 dan null e. 1, 2, 3, 4, 5, 9 <-> null dan null C. TUGAS PENDAHULUAN Jawablah pertanyaan berikut ini : 1. Tuliskan algoritma pengurutan quick sort secara ascending. 2. Tuliskan algoritma pengurutan merge sort secara ascending. D. PERCOBAAN Percobaan 1 : Quick sort secara ascending. #include<stdio.h> #include<stdlib.h> #include<time.h> #define MAX 20 int Partition (int arr[],int p,int r) int i, j; int pivot, temp; pivot = arr[p]; //pivot pada index 0 i = p; j = r; Algoritma dan Struktur Data 109

while (i <= j) while(pivot < arr[j]) j--; while(pivot > arr[i]) if(i < j) temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; j--; else return j; return j; void QuickSort(int arr[],int p,int r) int q; if(p < r) q = Partition(arr, p, r); QuickSort(arr, p, q); QuickSort(arr, q+1, r); 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); QuickSort(data_urut,0,MAX-1); time(&k2); printf("%d ", data_urut[i]); printf("\nwaktu = %ld\n", k2-k1); Percobaan 2 : Merge sort secara ascending #include<stdio.h> #include<stdlib.h> #include<time.h> Algoritma dan Struktur Data 110

#define MAX 20 void Merge(int arr[], int left, int median, int right) int temp[max]; int kiri1, kanan1, kiri2, kanan2, i, j; kiri1 = left; kanan1 = median; kiri2 = median+1; kanan2 = right; i = left; while ((kiri1 <= kanan1) && (kiri2 <= kanan2)) if (arr[kiri1] <= arr[kiri2]) temp[i] = arr[kiri1]; kiri1++; else temp[i] = arr[kiri2]; kiri2++; while(kiri1 <= kanan1) temp[i] = arr[kiri1]; kiri1++; while(kiri2 <= kanan2) temp[i] = arr[kiri2]; kiri2++; j = left; while(j <= right) arr[j] = temp[j]; j++; void MergeSort(int arr[], int l, int r) int med; if(l < r) med = (l + r) / 2; MergeSort(arr, l, med); MergeSort(arr, med + 1, r); Merge(arr, l, med, r); 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; Algoritma dan Struktur Data 111

printf("%d ", data_awal[i]); printf("\nsetelah pengurutan : \n"); data_urut[i] = data_awal[i]; time(&k1); MergeSort(data_urut,0,MAX-1); time(&k2); printf("%d ", data_urut[i]); printf("\nwaktu = %ld\n", k2-k1); E. LATIHAN 1. Dari percobaan 1 tambahkan fungsi untuk melakukan pengurutan quick sort secara descending. 2. Dari percobaan 2 tambahkan fungsi untuk melakukan pengurutan merge sort dengan flag secara descending. 3. Buatlah struktur Mahasiswa dengan variable nrp dan nama yang memiliki tipe String dan kelas yang bertipe int. Buatlah fungsi pengurutan dengan shell sort dan merge sort berdasarkan nrp. struct Mahasiswa char nrp[10]; char nama[20]; int kelas; ; 4. Buatlah menu untuk memilih jenis algoritma pengurutan dan menu ascending atau descending seperti di bawah ini ALGORITMA SORTING 1. Insertion 2. Selection 3. Bubble 4. Bubble dengan Flag 5. Shell 6. Quick 7. Merge Pilihan : _1 1. Ascending 2. Descending Pilihan : _1 Waktu : 4 Gunakan data acak dari array of Integer dengan ukuran 100. Algoritma dan Struktur Data 112

5. Lakukan percobaan untuk melihat waktu running untuk setiap algoritma sorting dengan data acak yang sama seperti table di bawah ini dan gambarkan dalam bentuk grafik (boleh menggunakan Excel atau Matlab). Jumlah data 50000 100000 150000 200000 250000 300000 350000 400000 450000 500000 Waktu Proses (milidetik) Insertion Selection Bubble Bubble Flag Shell Quick Merge 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 113