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

dokumen-dokumen yang mirip
Praktikum 8. Pengurutan (Sorting) Bubble Sort, Shell Sort

Pencarian (Searching)

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

A. TUJUAN PEMBELAJARAN

BAB VI Pengurutan (Sorting)

ALGORITMA PENGURUTAN. Oleh : S. Thya Safitri, MT

Gambar 13.1 Ilustrasi proses algoritma sorting

A. TUJUAN PEMBELAJARAN

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

Algoritma dan Struktur Data

Modul Praktikum Algoritma dan Struktur Data

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

Modul 8 SORTING (PENGURUTAN)

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

nama array untuk menyimpan data jumlah data

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

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

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

ARRAY PENGANTAR PROGRAM STUDI. Institut Teknologi Sumatera

# TEN Sorting PENDAHULUAN

BAB 2 SORTING (PENGURUTAN)

REVIEW ARRAY. Institut Teknologi Sumatera

Powered by icomit.wordpress.com

Sorting. Pertemuan ke 14.

SORTING (Pengurutan)

SORTING (PENGURUTAN DATA)

STRUKTUR DATA SORTING ARRAY

ALGORITMA PENGURUTAN & PENCARIAN

A. TUJUAN PEMBELAJARAN

Operasi File. Chapter 13

A. TUJUAN PEMBELAJARAN

Tabel Informasi. Hal di atas dapat dilakukan dengan menambah dan mengambil atribut identifier yang digunakan pada program, melalui tabel informasi.

Pengurutan (Sorting) Algoritma Pemrograman

Politeknik Elektronika Negeri Surabaya

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

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

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

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

SORTING. Struktur Data S1 Sistem Informasi. Ld.Farida

PENGURUTAN (SORTING) 1. Overview

Algoritma dan Struktur Data. Searching dan Sorting

7. SORTING DAN SEARCHING

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

Algoritma Sorting (Selection Insertion)

1. Kompetensi Mengenal dan memahami algoritma percabangan yang komplek.

Algoritma Shell Sort Ascending Dan Binary Sequential Search Menggunakan C

Politeknik Elektronika Negeri Surabaya

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

Array (Tabel) bagian 2

Algoritme dan Pemrograman

Modul Praktikum 6 Pemograman Berorientasi Objek

Politeknik Elektronika Negeri Surabaya

BAB 8 SORTING DAN SEARCHING

Pengurutan (Sorting)

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

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

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

LAPORAN PRAKTIKUM ALGORITMA DAN STRUKTUR DATA Searching ( Pencarian ) Modul III

BAB V SORTING (PENGURUTAN) INTERNAL

Materi 4: SORTING (PENGURUTAN) Dosen:

MODUL IV PENCARIAN DAN PENGURUTAN

STRUKTUR DATA (3) sorting array. M.Cs

ALGORITMA PEMOGRAMAN SEMESTER GENAP 2017/2018

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

Algoritma dan Struktur Data. Algoritma Pengurutan (Sorting)

Kompleksitas Algoritma Pengurutan Selection Sort dan Insertion Sort

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

STRUKTUR DATA. By : Sri Rezeki Candra Nursari 2 SKS

SORTING. Brigida Arie Minartiningtyas, M.Kom

Algoritma Transposisi (Bubble Sort/pengurutan gelembung)

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

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

BAB 3 SEARCHING A. TUJUAN

Politeknik Elektronika Negeri Surabaya

SEKOLAH TINGGI MANAJEMEN INFORMATIKA & KOMPUTER JAKARTA STI&K SATUAN ACARA PERKULIAHAN

KOMPARASI ALGORITMA QUICKSORT DAN BUCKET SORT PENGURUTAN DATA INTEGER MENGGUNAKAN BAHASA C++

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

Prpsedur progaram selectioa sort (Dengan program C++)

Langkah Mudah Belajar Struktur Data Menggunakan C/C++

Politeknik Elektronika Negeri Surabaya

Kisi-Kisi Ujian Akhir Semester Algoritma dan Pemrograman Lanjut

Lecture Notes Algoritma dan Pemrograman

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

Modul Praktikum Algoritma dan Struktur Data

DIKTAT STRUKTUR DATA Oleh: Tim Struktur Data IF

Konsep Sorting dalam Pemrograman Saniman dan Muhammad Fathoni

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

Algoritma dan Struktur Data

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

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

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

MAKALAH STRUKTUR DATA HEAP SORT. Disusun Oleh :

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

PERTEMUAN 10 METODE DEVIDE AND CONQUER

PENGURUTAN BILANGAN METODE STRAIGHT SELECTION

Penambahan Simpul (Node)

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

Simulasi Pengurutan Data Dengan Metode Seleksi

SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER STMIK AMIKOM YOGYAKARTA

BAB VI SORTIR ATAU PENGURUTAN

Transkripsi:

Praktikum 7 Pengurutan (Sorting) Insertion Sort, Selection Sort POKOK BAHASAN: Konsep pengurutan dengan insertion sort dan selection sort Struktur data proses pengurutan Implementasi algoritma pengurutan insertion sort dan selection sort dalam Bahasa C TUJUAN BELAJAR: Setelah melakukan praktikum dalam bab ini, mahasiswa diharapkan mampu: Memahami karakteristik algoritma pengurutan straight insertion sort, binary insertion sort dan selection sort. Mengimplementasikan algoritma straight insertion sort, binary insertion sort dan selection sort dalam bentuk flowchart. Membuat diagram alir dan mengimplementasikan algoritma pada suatu permasalahan. DASAR TEORI: Pengurutan data (sorting) didefinisikan sebagai suatu proses untuk menyusun kembali humpunan obyek menggunakan aturan tertentu. Ada dua macam urutan yang biasa digunakan dalam proses pengurutan yaitu 74

PRAKTIKUM 7 PENGURUTAN (SORTING) INSERTION SORT, SELECTION SORT 75 urut naik (ascending) yaitu dari data yang mempunyai nilai paling kecil sampai paling besar urut turun (descending) yaitu data yang mempunyai nilai paling besar sampai paling kecil. Deklarasi larik yang digunakan adalah larik dimensi satu (vektor) dengan elemennya bertipe integer. #define MAX 100; int Data[MAX]; Pada deklarasi diatas, MAX adalah banyaknya elemen vektor. Anda bisa mengubah nilai konstanta MAX sesuai kebutuhan. Indeks larik dimulai dari 0. Data yang sebenarnya disimpan mulai dari indeks 0. Selain deklarasi diatas, proses yang juga selalu digunakan pada algoritma pengurutan adalah proses menukarkan elemen. Di bawah ini satu prosedur sederhana untuk menukarkan nilai dua buah elemen A dan B. void Tukar (int *a, int *b) int temp; temp = *a; *a = *b; *b = temp; 1. METODE PENYISIPAN (INSERTION SORT) Terdapat 2 macam metode penyisipan, yaitu metode penyisipan langsung (straight insertion sort) dan metode penyisipan biner (binary insertion sort). 1.1 LANGSUNG (STRAIGHT INSERTION SORT) Ilustrasi dari langkah-langkah pengurutan dengan algoritma penyisipan langsung (straight insertion sort) dapat dilihat pada tabel berikut : 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 i=1 12 35 9 11 3 17 23 15 31 20 i=2 12 35 9 11 3 17 23 15 31 20 i=3 9 12 35 11 3 17 23 15 31 20 i=4 9 11 12 35 3 17 23 15 31 20 i=5 3 9 11 12 35 17 23 15 31 20 i=6 3 9 11 12 17 35 23 15 31 20 i=7 3 9 11 12 17 23 35 15 31 20

PRAKTIKUM 7 PENGURUTAN (SORTING) INSERTION SORT, SELECTION SORT 76 i=8 3 9 11 12 15 17 23 35 31 20 i=9 3 9 11 12 15 17 23 31 35 20 Akhir 3 9 11 12 15 17 20 23 31 35 Data pada posisi ke i (x) dibandingkan dengan data pada posisi ke 0 sampai dengan i 1. Apabila data ke j lebih besar daripada x, maka data disisipkan ke posisi ke j dan data ke j+1 sampai dengan i digeser ke kanan. 1.2 METODE PENYISIPAN BINER (BINARY INSERTION SORT) Metode pengurutan dengan algoritma penyisipan biner (binary insertion sort) memperbaiki metode pengurutan dengan algoritma penyisipan langsung dengan melakukan proses perbandingan yang lebih sedikit sehingga proses pengurutan lebih cepat. Metode penyisipan biner melakukan proses perbandingan dengan membagi dua bagian data dari posisi 0 sampai dengan i-1 yang disebut dengan bagian kiri dan kanan. Apabila data pada posisi ke i berada pada jangkauan kiri maka proses perbandingan dilakukan hanya pada bagian kiri dan menggeser posisi sampai i. 2. METODE SELEKSI (SELECTION SORT) Ilustrasi langkah-langkah pengurutan dengan algoritma seleksi (selection sort) dapat dilihat pada tabel berikut : 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 I=0 12 35 9 11 3 17 23 15 31 20 I=1 3 35 9 11 12 17 23 15 31 20 I=2 3 9 35 11 12 17 23 15 31 20 I=3 3 9 11 35 12 17 23 15 31 20 I=4 3 9 11 12 35 17 23 15 31 20 I=5 3 9 11 12 15 17 23 35 31 20 I=6 3 9 11 12 15 17 23 35 31 20 I=7 3 9 11 12 15 17 20 35 31 23 I=8 3 9 11 12 15 17 20 23 31 35 Akhir 3 9 11 12 15 17 20 23 31 35 Mula-mula ditentukan posisi ke i. Kemudian dilakukan penelusuran data terkecil dan dilakukan pertukaran data. Posisi i dinaikkan dan proses penelusuran dan pertukaran dilakukan sampai posisi terakhir.

PRAKTIKUM 7 PENGURUTAN (SORTING) INSERTION SORT, SELECTION SORT 77 TUGAS PENDAHULUAN: 1. Buatlah flowchart untuk operasi pengurutan bilangan bulat dengan algoritma straight insertion sort, binary insertion sort dan selection sort. 2. Buatlah deklarasi data pegawai dan flowchart fungsi untuk mengurutkan data dengan metode insertion sort (straight insertion dan binary insertion sort) dan selection sort sebagai berikut : Data bertipe rekaman bernama Pegawai yang mempunyai 4 data yaitu : o NIP, bertipe bulat o Nama, bertipe string o Alamat, bertipe string o Golongan, bertipe char Data diurutkan dengan urut naik berdasarkan NIP PERCOBAAN: 1. Buatlah workspace menggunakan Visual C++. 2. Buatlah project untuk praktikum SORTING dan file C Source untuk metode pengurutan straight insertion sort, binary insertion sort dan selection sort. 3. Cobalah untuk masing-masing percobaan di bawah dengan menambahkan menu pilihan metode pengurutan pada program utama. Percobaan 1 : Implementasi pengurutan dengan metode penyisipan langsung (straight insertion sort) #include <stdio.h> #include <stdlib.h> #define MAX 10 int Data[MAX];

PRAKTIKUM 7 PENGURUTAN (SORTING) INSERTION SORT, SELECTION SORT 78 // Fungsi pengurutan penyisipan langsung void StraightInsertSort() int i, j, x; for(i=1; i<max; i++) x = Data[i]; j = i - 1; while (x < Data[j]) Data[j+1] = Data[j]; j--; Data[j+1] = x; void main() int i; srand(0); // Membangkitkan bilangan acak printf("data SEBELUM TERURUT"); Data[i] = (int) rand()/1000+1; StraightInsertSort(); // Data setelah terurut printf("\ndata SETELAH TERURUT"); Percobaan 2 : Implementasi pengurutan dengan metode penyisipan biner (binary insertion sort) #include <stdio.h> #include <stdlib.h> #define MAX 10 int Data[MAX];

PRAKTIKUM 7 PENGURUTAN (SORTING) INSERTION SORT, SELECTION SORT 79 // Fungsi pengurutan penyisipan biner void BinaryInsertSort() int i, j, l, r, m, x; for (i=1; i<max; i++) x = Data[i]; l = 0; r = i - 1; while(l <= r) m = (l + r) / 2; if(x < Data[m]) r = m - 1; else l = m + 1; for(j=i-1; j>=l; j--) Data[j+1] = Data[j]; Data[l]=x; void main() int i; srand(0); // Membangkitkan bilangan acak printf("data SEBELUM TERURUT"); Data[i] = (int) rand()/1000+1; BinaryInsertSort(); // Data setelah terurut printf("\ndata SETELAH TERURUT"); Percobaan 3 : Implementasi pengurutan dengan metode seleksi (selection sort) #include <stdio.h> #include <stdlib.h> #define MAX 10 int Data[MAX];

PRAKTIKUM 7 PENGURUTAN (SORTING) INSERTION SORT, SELECTION SORT 80 // Fungsi pertukaran bilangan void Tukar (int *a, int *b) int temp; temp = *a; *a = *b; *b = temp; // Fungsi pengurutan penyisipan biner void SelectionSort() int i, j, k; for(i=0; i<max-1;i++) k = i; for (j=i+1; j<max; j++) if(data[k] > Data[j]) k = j; Tukar(&Data[i], &Data[k]); void main() int i; srand(0); // Membangkitkan bilangan acak printf("data SEBELUM TERURUT"); Data[i] = (int) rand()/1000+1; SelectionSort(); // Data setelah terurut printf("\ndata SETELAH TERURUT");

PRAKTIKUM 7 PENGURUTAN (SORTING) INSERTION SORT, SELECTION SORT 81 LATIHAN: 1. Tambahkan kode program untuk menampilkan perubahan setiap iterasi dari proses pengurutan dengan penyisipan langsung, penyisipan biner dan seleksi. 2. Tambahkan kode program untuk menghitung banyaknya perbandingan dan pergeseran pada algoritma pengurutan penyisipan langsung, penyisipan biner dan seleksi. 3. Buatlah project baru untuk Latihan dan implementasikan pengurutan data Pegawai pada tugas pendahuluan dengan ketentuan :. a. Metode pengurutan dapat dipilih. b. Pengurutan dapat dipilih secara urut naik atau turun. c. Pengurutan dapat dipilih berdasarkan NIP dan NAMA. d. Gunakan struktur data array. 4. Berikan kesimpulan dari percobaan dan latihan yang telah Anda lakukan.