Metode Insertion Sort di Java Console

dokumen-dokumen yang mirip
Metode Sequential Searching di Java Console

Bubble Sort dan Selection Sort di Java Console

Insertion Sort Dengan Algoritma Divide And Conquer

Metode Binnary Searching di Java Console

ShortHand If Else di Java

Belajar ArrayList di Java

Input Nilai tanpa Case String di Java

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

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

Modul 3 Flow Control dan Input

BAB 5 Mendapatkan Input dari Keyboard

BAB 5 Mendapatkan Input dari Keyboard

Belajar Rekursif di Java

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

BAB 2 INPUT DARI KEYBOARD

Bahasa Pemrograman :: Dasar Pemrograman Java

Nama Lengkap : Muiz Lidinillah NIM :

ARRAY, SORTING & SEARCHING

Modul Praktikum Pemrograman

Teknik Menukarkan 2 Variable tanpa pihak Ketiga

Mendapatkan Input Dari Keyboard

Modul 8 SORTING (PENGURUTAN)

Perulangan / Looping

Pertemuan 3 Struktur Perulangan pada Java

Modul Praktikum Algoritma dan Struktur Data

Enkripsi Karakter - Soal Lomba Pemrograman

Percabangan dan Perulangan

Politeknik Elektronika Negeri Surabaya

LAPORAN RESMI PRAKTIKUM BAHASA PEMROGRAMAN

UAS JAVAUAS JAVA. Fibonaci Naik :

BAB 4 ARRAY. number1 = 10; number2 = 20; number3 = 30;

Pertemuan 2 Struktur Kontrol Percabangan

Percabangan & Perulangan

LAPORAN PRAKTIKUM PEMROGRAMAN DASAR TIPE-TIPE FUNGSI ATAU METHOD

Pertemuan III [STRUKTUR KONTROL] CariGrade.java Program mencari grade nilai menggunakan struktur control if-else

MK. Pemrograman Berorientasi Objek. Input dari Keyboard. Karmilasari

Politeknik Elektronika Negeri Surabaya

Bab 2 Relasi 9 BAB II RELASI TUJUAN PRAKTIKUM TEORI PENUNJANG

Algoritma dan Struktur Data

Algoritma dan Struktur Data. Algoritma Pengurutan (Sorting)

Pemrograman Fery Updi,M.Kom

BAB 1 KONSEP DASAR JAVA

LAPORAN PRAKTIKUM PEMROGRAMAN BERBASIS OBJEK

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

Tes Asisten Praktikum Alpro Lanjut

Pemrograman Berorientasi Objek (PBO) PERTEMUAN X (LOOPING)

Percabangan & Perulangan

# TEN Sorting PENDAHULUAN

Modul Praktikum 6 Pemograman Berorientasi Objek

Gambar 13.1 Ilustrasi proses algoritma sorting

MODUL PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK

Membuat Menu Login Sederhana [Full Coding]

Sorting. Pertemuan ke 14.

Program Java Sesi 1. Arief Susanto

Modul 3: Kendali program dan teknik. penyimpanan data

Tipe if : If tanpa else (if) If dengan else (if-else) Nested if

Penyeleksi Kondisi / Percabangan

Cara Membaca File Text di JAVA

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

Politeknik Elektronika Negeri Surabaya

SEKUEN, PERCABANGAN & PENGULANGAN

BAB 2 SORTING (PENGURUTAN)

Struktur Kontrol Pemrograman Java : PERCABANGAN

MODUL III ARRAYLIST TUGAS PENDAHULUAN

Pertemuan 4 Array pada Java

LAPORAN PRAKTIKUM ALGORITMA DAN STRUKTUR DATA FAKULTAS ILMU KOMPUTER UNIVERSITAS BRAWIJAYA

JAWABAN TLAB 1 MATKUL BP1. silahkan dicoba kemudian dianalisa programnya

Algoritma dan Pemrograman

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

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

Politeknik Elektronika Negeri Surabaya

1. Kompetensi Mengenal dan memahami algoritma percabangan yang komplek.

Politeknik Elektronika Negeri Surabaya

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

if (ekspresi_boolean) { Pernyataan1; } else { Pernyataan2; }

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

Method. Pemrograman Dasar Sistem Informasi PTIIK Herman Tolle

Method / Fungsi / Sub Program

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

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

Politeknik Elektronika Negeri Surabaya

Parent dan Child di Java

Decision and Looping

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

Pemograman Java. Input(ii) String Function Pengulangan(FOR-While-DoWhile) Yoannita, S.Kom

KENDALI PROSES. Untuk mengatur arus program, pemrograman java menyediakan struktur perulangan (looping), kondisional, percabangan, dan lompatan.

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

LAPORAN PRAKTIKUM ALGORITMA DAN PEMROGRAMAN ( Implementasi Rekursi Pada Java)

Cara Mencari Selisih Waktu di Java

PEMOGRAMAN JAVA. Yoannita. Tipe Data (ii) : Array Exception Handling

PEMROGRAMAN SOCKET LANJUTAN

Modul Praktikum 3 Pemograman Berorientasi Objek

Pemrograman Socket menggunakan TCP

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

PRAKTIKUM PEMROGRAMAN LANJUT MODUL 1

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

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

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

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

Array Multidimensi. Pemrograman Dasar. Java

Transkripsi:

Metode Insertion Sort di Java Console Oleh: Yudi Setiawan Pada tutorial sebelumnya, saya pernah jelaskan metode Bubble Sort dan Selection Sort. Nah, untuk tutorial kali ini saya akan membahas tentang Insertion Sort. &ldquo;metode Pengurutan kok banyak banget sih? Padahal dari segi logika untuk melakukan pengurutan kan gampang tinggal buat aja looping dari data... Pada tutorial sebelumnya, saya pernah jelaskan metode Bubble Sort dan Selection Sort. Nah, untuk tutorial kali ini saya akan membahas tentang Insertion Sort. Metode Pengurutan kok banyak banget sih? Padahal dari segi logika untuk melakukan pengurutan kan gampang tinggal buat aja looping dari data pertama sampai data terakhir dan kemudian, di bloknya ada statement pengkondisian jika data lebih besar atau lebih kecil maka tukar. Yap, dari segi logika memang gampang namun, dari segi algoritma itu berbeda. Seperti pada tutorial sebelumnya, Bubble Sort dan Selection Sort. Kedua metode itu memang sama sama untuk sorting namun, kalau Anda lihat proses algoritmanya itu jelas berbeda antara Bubble Sort dan Selection Sort. Memangnya seberapa penting sih algoritma itu? Yah, jelas sangat penting dong. Proses Sorting itu tidak akan tampak perbedaannya jika data yang Anda sorting itu masih sedikit. Bagaimana kalau Anda sorting Data perusahaan yang jumlahnya itu bisa beribu ribu banyaknya bahkan berjuta juta. Apa mau si user menunggu waktu 1 jam lebih atau 1 harian penuh hanya untuk menunggu proses sorting selesai sementara di sisi lain dia bisa mendapatkan hal yang lebih bagus dari itu yakni cukup 10 menit data akan terurut dengan benar. Nah, di sinilah pentingnya dari proses Algoritma. Tujuannya sama sama untuk mengurutkan namun, dari segi kecepatan algoritma jelas berbeda. Insertion Sort merupakan metode pengurutan dimana langkah langkah ialah membandingkan dari data kedua ke data pertama (Data-N <==> Data-N-1). Berbeda dengan Bubble Sort dimana, proses perbandingannya dimulai dari Data Pertama sampai Data Terakhir. Untuk lebih jelasnya langsung masuk ke contoh kasus. Data : 12 9 3 20 30 1 Proses Insertion Sort (Ascending) Iterasi 1: 12 9 3 20 30 1 (Bandingkan Data 9 dengan 12) 9 12 3 20 30 1 (Tukar Data 9 dengan 12) Iterasi 2: 9 12 3 20 30 1 (Bandingkan Data 3 dengan 12) 9 3 12 20 30 1 (Tukar 3 dengan 12. Bandingkan 3 dengan 9) 3 9 12 20 30 1 (Tukar 3 dengan 9)

Iterasi 3: 3 9 12 20 30 1 (Bandingkan 20 dengan 12) 3 9 12 20 30 1 (Tidak ada pertukaran) Iterasi 4: 3 9 12 20 30 1 (Bandingkan 30 dengan 20) 3 9 12 20 30 1 (Tidak ada pertukaran) Iterasi 5: 3 9 12 20 30 1 (Bandingkan 1 dengan 30) 3 9 12 20 1 30 (Tukar 1 dengan 30. Bandingkan 1 dengan 20) 3 9 12 1 20 30 (Tukar 1 dengan 20. Bandingkan 1 dengan 12) 3 9 1 12 20 30 (Tukar 1 dengan 12. Bandingkan 1 dengan 9) 3 1 9 12 20 30 (Tukar 1 dengan 9. Bandingkan 1 dengan 3) 1 3 9 12 20 30 (Tukar 1 dengan 3) Penjelasan Proses Insertion Sort (Ascending) - Dalam Insertion Sort jumlah iterasi ialah sebanyak jumlah data 1. Untuk kasus diatas, Jumlah Data ialah 6 maka, jumlah iterasinya ialah 6 1 = 5. Dan jumlah iterasi tersebut harus terpenuhi walaupun Data sudah terurut. - Setiap Iterasi memiliki proses dan jumlah proses tersebut tidak bisa ditentuin karena, proses akan berhenti jika Data sudah terurut. Bisa Anda lihat pada iterasi ke-3 dan ke-4. Pada iterasi 3 dan 4 proses pengecekannya cuma sekali namun, karena Data yang di cek memang sudah terurut dengan benar maka, proses pengecekan berhenti dan lanjut ke iterasi berikutnya. - Untuk iterasi ke-1, Proses perbandingan dimulai dari Data ke-2 dengan Data ke-1 (9 <==> 12). Karena, 9 < 12 maka, 9 tukar posisi dengan 12. - Untuk iterasi ke-2, Proses perbandingan dimulai dari Data ke-3 dengan Data ke-2 (3 <==> 12). Karena, 3 < 12 maka,3 tukar dengan 12. Selanjutnya, bandingkan lagi 3 dengan 9 (3 <==> 9). Karena 3 < 9 maka, 3 tukar dengan 9. - Untuk iterasi ke-3, Proses perbandingan dimulai dari Data ke-4 dengan Data ke-3 (20 <==> 12). Karena, 20 > 12 maka, tidak ada pertukaran. Posisi tetap tidak ada perubahan. - Untuk iterasi ke-4, Proses perbandingan dimulai dari Data ke-5 dengan Data ke-4 (30 <==> 20). Karena, 30 > 20 maka, tidak ada pertukaran. Posisi tetap tidak ada perubahan. - Untuk iterasi ke-5, Proses perbandingan dimulai dari Data ke-6 dengan Data ke-5 (1 <==> 30). Karena, 1 < 30 maka, 1 tukar posisi dengan 30. Selanjutnya, bandingkan lagi 1 dengan 20 (1 <==> 20). Karena, 1 < 20 maka, 1 tukar posisi dengan 20. Selanjutnya, bandingkan lagi 1 dengan 12 (1 <==> 12). Karena, 1 < 12 maka, 1 tukar posisi dengan 12. Kemudian, bandingkan lagi antara 1 dengan 9 (1 <==> 9). Karena, 1 < 9 maka, 1 tukar posisi dengan 9. Berikutnya, bandingkan lagi 1 dengan 3 (1

<==> 3). Karena, 1 < 3 maka, 1 tukar posisi dengan 3. Dan Data setelah di sort adalah seperti berikut. Data : 1 3 9 12 20 30 Gimana mudahkan? Konsepnya hampir sama seperti Bubble Sort hanya saja di Insertion Sort proses dimulai dari Data kedua (Data-N+1) dan di cek satu per satu ke Data sebelumnya(data-n-1). Selain itu, prosesnya juga berbeda antara Bubble Sort dan Insertion Sort. Kalau di Bubble Sort jumlah proses tiap iterasinya selalu dikurang 1 sementara di Insertion Sort jumlah prosesnya akan terus bertambah apabila Data tersebut masih bisa ditukar. Berikut ialah source code Insertion Sort import java.io.bufferedreader; import java.io.inputstreamreader; import java.io.ioexception; import java.util.random; /** * * @author Yudi Setiawan * * Insertion Sort. * */ public class InsertionSort public static void main(string[] args) throws IOException // Objek BufferedReader BufferedReader datain = new BufferedReader(new InputStreamReader(System.in)); // Input jumlah Data System.out.print("Masukkan jumlah Data : "); jlh_data = Integer.parseInt(dataIn.readLine()); int // Array Data untuk menampung nilai Data int[] data = new int[jlh_data]; // Menu Pengisian data System.out.println("\nMenu Pengisian Data");

System.out.println("1. Di input oleh user"); System.out.println("2. Di isi oleh program"); System.out.print("Pilihan : "); isi_data = Integer.parseInt(dataIn.readLine()); int oleh si User jlh_data; a++) switch(isi_data) case 1 : // Pengisian Data for(int a = 0; a < System.out.print("Data ke-"+(a+1)+" : "); data[a] = Integer.parseInt(dataIn.readLine()); break; case 2 : // Pengisian Data oleh program --> di isi secara acak for(int a = 0; a < jlh_data; a++) data[a] = new Random().nextInt(201); yang di isi oleh program "); jlh_data; a++) // Tampilkan Data System.out.print("Data : for(int a = 0; a < System.out.print(data[a]+" "); break; default : System.out.println("\nPilihan tidak tersedia"); // Proses Insertion Sort System.out.println("\nProses Insertion Sort"); for(int a = 0; a < jlh_data-1; a++) System.out.println("Iterasi "+(a+1)); for(int b = 0; b < jlh_data; b++) System.out.print(data[b]+"\t");

dengan "+data[a]); System.out.print(" --> Bandingkan "+data[a+1]+" pertukaran"; posisi dengan "+data[b-1]; System.out.print(data[c]+"\t"); for(int b = a+1; b > 0; b--) String pesan = " --> Tidak ada if(data[b] < data[b-1]) pesan = " --> "+data[b]+" tukar // Proses Pertukaran int temp = data[b]; data[b] = data[b-1]; data[b-1] = temp; for(int c = 0; c < jlh_data; c++) else System.out.print(pesan); for(int c = 0; c < jlh_data; c++) System.out.print(data[c]+"\t"); System.out.print(pesan); break; System.out.println("\n"); // Tampilkan hasil Sorting System.out.print("\nData setelah di Sorting : "); for(int a = 0; a < jlh_data; a++) System.out.print(data[a]+" ");

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.