Insertion Sort Dengan Algoritma Divide And Conquer

dokumen-dokumen yang mirip
Bubble Sort dan Selection Sort di Java Console

Metode Insertion Sort di Java Console

Metode Binnary Searching di Java Console

ShortHand If Else di Java

Belajar ArrayList di Java

Metode Sequential Searching di Java Console

Enkripsi Karakter - Soal Lomba Pemrograman

ARRAY, SORTING & SEARCHING

Percabangan dan Perulangan

Teknik Menukarkan 2 Variable tanpa pihak Ketiga

Perulangan / Looping

Cara Mencari Selisih Waktu di Java

Belajar Rekursif di Java

Input Nilai tanpa Case String di Java

Modul Praktikum 6 Pemograman Berorientasi Objek

Pemrograman Berorientasi Objek (PBO) PERTEMUAN X (LOOPING)

Gambar 13.1 Ilustrasi proses algoritma sorting

Penyeleksi Kondisi / Percabangan

Latihan Ujian Pemrograman Berorientasi Objek. Semester Genap 2016/2017

Parent dan Child di Java

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

LAPORAN PRAKTIKUM PEMROGRAMAN DASAR TIPE-TIPE FUNGSI ATAU METHOD

LAB02 : KODING PROGRAM

Bab Tujuan. 6.2 Insertion Sort

Aplikasi Algoritma Brute Force Pada Knight s Tour Problem

MODUL PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK

Tiga Metode Sangat Penting dalam Pemrograman Java Bagi Pemula

A. TEORI ARRAY 1 DIMENSI

DASAR PEMROGRAMAN JAVA. Astrid Lestari Tungadi, S.Kom., M.TI.

ANALISA RUNNING TIME

Mata Kuliah : Pemrograman Berbasis Objek Pertemuan : 4

Tes Asisten Praktikum Alpro Lanjut

Projek Kelompok 7. package (tiopan-programmer java) public class aritmatika1{ public static void main(string[]tiw){ int calculation = 1;

Array. Adharul Muttaqin Universitas Brawijaya Malang. Array

Kelompok 7. package (tiopan-programmer java) public class aritmatika1{ public static void main(string[]tiw){ int calculation = 1;

STRUKTUR DATA SORTING ARRAY

Tiopan Indra Wahyudi R5L PROJECT KELOMPOK 7 R5L. package brekk; public class brekk{ public static void main(string[]args){

SEKUEN, PERCABANGAN & PENGULANGAN

Membuat Menu Login Sederhana [Full Coding]

PRAKTIKUM PEMROGRAMAN LANJUT MODUL 1

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

MODUL III ARRAYLIST TUGAS PENDAHULUAN

TIPE DATA Pertemuan (K-03/L-03)

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

LAPORAN PRAKTIKUM ALGORITMA DAN STRUKTUR DATA FAKULTAS ILMU KOMPUTER UNIVERSITAS BRAWIJAYA

Topik. 1. Statement if 2. Statement if..else.. 3. Statement if..else.. If (bertingkat ) 4. Penggunaan Input Keyboard

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB SHEET PEMROGRAMAN JAVA 2

Percabangan & Perulangan

IF PEMROGRAMAN LANJUT EXCEPTION. Oleh : Andri Heryandi, M.T.

STRUKTUR DATA (3) sorting array. M.Cs

A. TEORI ARRAY 1 DIMENSI

Modul 8 SORTING (PENGURUTAN)

{ System.out.println("PERANCANGAN PROGRAM APLIKASI ESTIMASI KEUNTUNGAN PRODUKSI PADA PT POPPY DHARSONO DENGAN. System.out.

Modul Praktikum 4 Pemograman Berorientasi Objek

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB SHEET PEMROGRAMAN 2

LAPORAN PRAKTIKUM PEMROGRAMAN DASAR PROGRAM DENGAN KONDISI

Modul 3 Flow Control dan Input

Method. Pemrograman Dasar Sistem Informasi PTIIK Herman Tolle

Politeknik Elektronika Negeri Surabaya

Method / Fungsi / Sub Program

MODUL 5 PERULANGAN A. WHILE

Politeknik Elektronika Negeri Surabaya

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

All Chapter Rental Multimedia

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

SORTING DENGAN ALGORITMA DIVIDE AND CONQUER

Sorting Algorithms. Divide and Conquer

Modul Praktikum Algoritma dan Struktur Data

Algoritma dan Struktur Data. Algoritma Pengurutan (Sorting)

Pertemuan 3 Struktur Perulangan pada Java

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

IF PEMROGRAMAN LANJUT ARRAY. Oleh : Andri Heryandi, M.T.

Politeknik Elektronika Negeri Surabaya

TPI4202 e-tp.ub.ac.id. Lecture 4 Mas ud Effendi

Algoritma Heap Sort. Sekolah Teknik Elektro & Informatika Departemen Teknik Informatika, Institut Teknologi Bandung Jl. Ganesha 10, Bandung

MODUL PRAKTIKUM BASIS DATA PENGENALAN STRUKTUR DATA DAN KOMPLEKSITAS WAKTU

Modul 3: Kendali program dan teknik. penyimpanan data

SORTING (Pengurutan)

Chapter 12.1: package chapter.pkg12; /** * Advan */ import java.util.random; import static java.lang.system.out; public class Chapter12 {

Modul Praktikum 3 Pemograman Berorientasi Objek

IF PEMROGRAMAN LANJUT PERULANGAN. Oleh : Andri Heryandi, M.T.

PEMROGRAMAN JAVA. Yoannita, S.Kom. Input Kondisi (IF-ELSE, SWITCH)

I. Tujuan Instruksional Umum Komunikasi antar objek pada kelas yang berbeda Memahami berbagai macam modifier dan karakteristiknya II.

LAPORAN PRAKTIKUM ALGORITMA DAN STRUKTUR DATA PENGENALAN OBJECT ORIENTED PROGRAMMING

LAPORAN PRAKTIKUM PEMROGRAMAN BERBASIS OBJEK

Algoritma dan Pemrograman

# TEN Sorting PENDAHULUAN

Pengenalan Java, Tipe Data, Variabel dan Operator. Putu Putra Astawa

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

TIPE DATA PADA JAVA. Pertemuan (K-04/L-04)

int fungsi_2() { int main() { fungsi_1(); fungsi_2(); return 0;

Gambar 1. Ilustrasi Stack

Decision and Looping

TUGAS 1: WIN OR LOSE. package kartu; import java.util.random; public class kartu { /** args the command line arguments

Pemrograman JAVA INPUT-OUTPUT

Firma Firmansyah Adi B. Resume Web Service

Array Multidimensi. Pemrograman Dasar. Java

BAB VI ARRAY Mendeklarasikan Variabel Array int[ ] bilangan; int bilangan[ ]; Mendefinisikan Array Bilangan = new int[5]; Latihan 21. ArrSatu.

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

Transkripsi:

Insertion Sort Dengan Algoritma Divide And Conquer Oleh: Yudi Setiawan Pada tutorial sebelumnya, saya pernah ada membahas tentang Insertion Sort. Nah, perbedaan antara Insertion Sort yang biasa dengan yang ini ialah di bagian Algoritmanya. Dimana, pada metode ini pengurutan dilakukan dengan cara Insertion Sort dan ditambah dengan metode Divide and Conquer. &ldquo;apa sih Di... Pada tutorial sebelumnya, saya pernah ada membahas tentang Insertion Sort. Nah, perbedaan antara Insertion Sort yang biasa dengan yang ini ialah di bagian Algoritmanya. Dimana, pada metode ini pengurutan dilakukan dengan cara Insertion Sort dan ditambah dengan metode Divide and Conquer. Apa sih Divide and Conquer? Divide and Conquer ialah algoritma yang mana pada Data yang ada akan dibagi menjadi beberapa SubData. Algoritma ini hampir mirip dengan Sorting Merge Sort yang membagi Data menjadi beberapa SubData namun, perbedaannya terletak pada saat proses Combine. Berikut sampel kasusnya. Data : 5 9 2 1 3 Penyelesaian : 1. Tampilkan Data Sebelum di sorting. 2. Kemudian, Kita akan membagi Data tersebut secara satu per satu dimulai dari Data pertama sampai Data terakhir. Catatan : Kolom berwarna hijau berarti, Datanya masih bergabung. Sedangkan kolom berwarna merah, berarti sudah terpisah menjadi SubData. 3. Terlihat dari gambar diatas, semua Data telah terpisah menjadi beberapa SubData. 4. Langkah berikutnya, ialah menggabungkan kembali beberapa SubData yang telah terpisah menjadi satu Data yang utuh seperti semula dengan cara digabungkan per tahap sesuai dari iterasi 2 ke iterasi terakhir sembari di Sorting dengan metode Insertion Sort. Berikut gambarannya. 5. Baiklah akan saya jelaskan bagaimana proses Penggabungan pada gambar diatas. Penjelasan : Pada iterasi 2, Gabungkan SubData 5 dengan 9 sembari di sorting. Karena 9 > 5 maka, tidak terjadi pertukaran. Perbandingan dilakukan dari SubData paling belakang sampai SubData Pertama. Pada iterasi 3, Gabungkan SubData 5, 9 dan 2 sembari di sorting. Perbandingan dilakukan dari Data yang paling belakang. 2 bandingkan dengan 9. Karena, 2 < 9 maka, SubData 2 bertukar tempat dengan SubData 9. Kemudian, bandingkan lagi 2 dengan 5. Karena 2 < 5 maka, SubData 2

bertukar tempat dengan SubData 5. Pada Iterasi 4, Gabungkan SubData 2, 5, 9 dan 1 sembari di sorting. Bandingkan SubData 1 dengan SubData 9. Karena 1 < 9 maka, SubData 1 bertukar tempat dengan SubData 9. Lanjut lagi bandingkan SubData 1 dengan SubData 5. Karena, 1 < 5 maka SubData 1 bertukar tempat dengan SubData 5. Bandingkan lagi SubData 1 dengan SubData 2. Karena 1 < 2 maka, SubData 1 bertukar tempat dengan SubData 2. Pada iterasi 5, Gabungkan SubData 1, 2, 5, 9 dan 3 sembari di sorting. Bandingkan SubData 3 dengan SubData 9. Karena 3 < 9 maka, SubData 3 bertukar tempat dengan SubData 9. Bandingkan lagi SubData 3 dengan SubData 5. Karena 3 < 5 maka, SubData 3 bertukar tempat dengan SubData 5. Bandingkan lagi SubData 3 dengan SubData 2. Karena 3 > 2 maka, tidak terjadi pertukaran. Dan hentikan proses perbandingan. Maka, Data setelah di sorting dengan Insertion Sort menggunakan algoritma Divide and Conquer ialah menjadi sebagai berikut: Data setelah di Sorting : 1 2 3 5 9 Berikut source code lengkapnya. import java.util.arrays; import java.util.scanner; /** * * @author Yudi Setiawan * * Insertion Sort dengan algoritma Divide and Conquer * */ public class InsertionSortDAC public static void main(string[] args) // Objek Scanner Scanner scan = new Scanner(System.in); // Input banyaknya Data System.out.print("Input banyaknya Data : "); jlh_data = scan.nextint(); int // Input nilai tiap Data int[] data = new int[jlh_data]; for(int a = 0; a < jlh_data; a++) System.out.print("Nilai Data ke-"+(a+1)+" : "); data[a] = scan.nextint();

// Tampilkan Data System.out.println("Data Sebelum di Sorting : "+Arrays.toString(data)); // Proses Algoritma Divide and Conquer // Divide (Pemisahan Data) System.out.println("\nDivide"); for(int a = 0; a < data.length; a++) System.out.println("Iterasi ke-"+(a+1)); for(int b = 0; b < data.length; b++) // Tanda pemisah di awal untuk memisah setiap Data dengan tanda untuk Data yang sudah terpisah if(b == 0 b <= a) System.out.print(" "+data[b]+" "); // Untuk Data yang belum terpisah else System.out.print(" "+data[b]); // Tanpa pemisah di akhir if(b == a) System.out.print(" "); System.out.println("\n"); // Conquer atau Combine atau Merge (Penggabungan Data sembari di Sorting) System.out.println("Merge/Combine/Conquer"); for(int a = 0; a < data.length-1; a++) System.out.println("Iterasi ke-"+(a+2)); // Proses Sorting Insertion Sort for(int b = a+1; b > 0; b--) if(data[b] < data[b-1]) int temp = data[b]; data[b] = data[b-1]; data[b-1] = temp;

for(int c = 0; c < data.length; c++) // Untuk Data yang akan digabung if(c <= a+1) System.out.print(data[c]+" "); iterasi terakhir "); // Untuk Data yang belum digabung else // Pengecualian untuk Data if(a == data.length-1) System.out.print(data[c]); continue; System.out.print(" "+data[c]+" terakhir yang belum digabung // Pmebatas untuk Data if(c == data.length-1) System.out.print(" "); System.out.println("\n"); Tentang Penulis

Yudi Setiawan Saat ini aktif sebagai Mahasiswa di salah satu Universitas di kota Medan dengan mengambil bidang Fakultas Teknik dan Ilmu Komputer. Sangat senang dengan bahasa pemrograman Java dan Android.