Powered by icomit.wordpress.com

dokumen-dokumen yang mirip
Kompleksitas Algoritma Pengurutan Selection Sort dan Insertion Sort

Kompleksitas Algoritma Sorting yang Populer Dipakai

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

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

Array (Tabel) bagian 2

KOMPLEKSITAS ALGORITMA PENGURUTAN (SORTING ALGORITHM)

Gambar 13.1 Ilustrasi proses algoritma sorting

SORTING (PENGURUTAN DATA)

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

Politeknik Elektronika Negeri Surabaya

ALGORITMA PENGURUTAN & PENCARIAN

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

Algoritma dan Struktur Data

Pengurutan (Sorting) Algoritma Pemrograman

DIKTAT STRUKTUR DATA Oleh: Tim Struktur Data IF

CCH1A4 / Dasar Algoritma & Pemrogramanan

ANALISA PERBANDINGAN KOMPLEKSITAS ALGORITMA SELECTIONSORT DAN INSERTIONSORT

Algoritma dan Struktur Data. Algoritma Pengurutan (Sorting)

ALGORITMA PENGURUTAN. Oleh : S. Thya Safitri, MT

1. Kompetensi Mengenal dan memahami algoritma percabangan yang komplek.

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

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

Analisis Perbandingan Kompleksitas Algoritma Pengurutan Nilai (Sorting)

Analisis Perbandingan Kompleksitas Algoritma Pengurutan Nilai (Sorting)

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

Sorting. Pertemuan ke 14.

SORTING. Struktur Data S1 Sistem Informasi. Ld.Farida

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

Modul Praktikum Algoritma dan Struktur Data

Politeknik Elektronika Negeri Surabaya

BAB VI Pengurutan (Sorting)

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

Perbandingan Kecepatan/Waktu Komputasi Beberapa Algoritma Pengurutan (Sorting)

Algoritma Brute Force (Bagian 1) Oleh: Rinaldi Munir

STRUKTUR DATA SORTING ARRAY

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

Modul 8 SORTING (PENGURUTAN)

ANALISIS ALGORITMA. Disusun Oleh: Analisis Masalah dan Running Time. Adam Mukharil Bachtiar Teknik Informatika UNIKOM

ANALISIS PERBANDINGAN ALGORITMA SELECTION SORT DENGAN MERGE SORT

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

Materi 4: SORTING (PENGURUTAN) Dosen:

BAB V SORTING (PENGURUTAN) INTERNAL

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

Bubble Sort dan Selection Sort di Java Console

Agar lebih mudah mengerti, cobalah untuk melakukan hal-hal berikut ini: 1. Bacalah terlebih dahulu ide dasar dari masing-masing algoritma.

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

Algoritma Sorting (Selection Insertion)

SORTING. Brigida Arie Minartiningtyas, M.Kom

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

BAB VI SORTIR ATAU PENGURUTAN

PENGURUTAN (SORTING) 1. Overview

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

Pengurutan (Sorting)

Kompleksitas Algoritma

BAB 1 PENDAHULUAN. Universitas Sumatera Utara

SORTING ALGORITMA. Bubble Sort JANUARY 14, 2016

PENGURUTAN BILANGAN METODE STRAIGHT SELECTION

Teknik Pengurutan Kartu Remi

Studi Mengenai Perbandingan Sorting Algorithmics Dalam Pemrograman dan Kompleksitasnya

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

BAB I PENDAHULUAN.

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

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

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

Algoritma Transposisi (Bubble Sort/pengurutan gelembung)

Algoritma Bubble Sort dan Quick Sort

MODUL IV PENCARIAN DAN PENGURUTAN

BAB 8 SORTING DAN SEARCHING

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

nama array untuk menyimpan data jumlah data

Penggunaan Metode Binary Search Pada Translator Bahasa Indonesia Bahasa Jawa

Algoritma Shell Sort Ascending Dan Binary Sequential Search Menggunakan C

7. SORTING DAN SEARCHING

Pengertian Algoritma Pengurutan

Sorting (Bubble Sort)

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

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

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

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

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

Operasi File. Chapter 13

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

SORTING (Pengurutan)

Kompleksitas Algoritma

Algoritma dan Pemrograman 2 PENGURUTAN

STRUKTUR DATA. By : Sri Rezeki Candra Nursari 2 SKS

STRUKTUR DATA. Nama : Sulfikar Npm : STMIK Handayani Makassar

Algoritma Brute Force

VISUALISASI LOGIKA ALGORITMA PENGURUTAN DATA MENGGUNAKAN JAVA

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

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

STRUKTUR DATA (3) sorting array. M.Cs

TELAAH WAKTU EKSEKUSI PROGRAM TERHADAP KOMPLEKSITAS WAKTU ALGORITMA BRUTE FORCE DAN DIVIDE AND CONQUER DALAM PENYELESAIAN OPERASI LIST

BAB 2 SORTING (PENGURUTAN)

Pendahuluan. Sebuah algoritma tidak saja harus benar, tetapi juga harus efisien. Algoritma yang bagus adalah algoritma yang efektif dan efisien.

AnalisisFramework. Mengukur ukuran atau jumlah input Mengukur waktu eksekusi Tingkat pertumbuhan Efiesiensi worst-case, best-case dan average-case

BAB VI SEARCHING (PENCARIAN)

PENGGUNAAN ALGORITMA DIVIDE AND CONQUER UNTUK OPTIMASI KONVERSI BILANGAN DESIMAL KE BINER

Transkripsi:

ALGORITMA SELECTION SORT 1. Konsep Dasar Selection sort adalah salah satu algoritma yang digunakan untuk memecahkan masalah pengurutan(sorting) data pada suatu larik(array). Ide dasar algoritma ini adalah melakukan beberapa kali pass untuk melakukan penyeleksian elemen array. Untuk sorting ascending (menaik), elemen yang paling kecil di antara elemen-elemen yang belum urut, disimpan indeksnya, kemudian dilakukan pertukaran nilai elemen dengan indeks yang disimpan tersebut dengan elemen yang paling depan yang belum urut. Sebaliknya, jika dilakukan sorting descending(menurun), elemen yang terbesar dari array yang belum terurut disimpan indeksnya untuk kemudian dilakukan pertukaran dengan nilai indeks yang terbesar dari elemen array. Penggunaan algoritma selection sort sering kita jumpai ketika kita akan mengurutkan sejumlah kartu bridge. Kita susun beberapa kartu bridge dalam suatu larik kemudian kita lakukan selction sort dengan memilih kartu yang nilainya paling kecil(jika ascending) lalu kita tukar dengan kartu yang paling ujung dari kartu-kartu yang belum terurut hingga akhirnya didapatkan kartu-kartu yang telah terurut. 2. Algoritma Selection Sort Bagaimana cara kerja dari algoritma selction sort? Berikut adalah langkah perlangkah cara kerja dari algoritma yang bekerja pada suatu elemen array. a. Tetapkan suatu indeks yang akan dijadikan awal dari sorting, biasanya indeks pada awal array. b. Jika akan dilakukan sorting secara ascending maka cari elemen yang paling kecil dengan membandingkan dengan nilai indeks yang dijadikan patokan. Lakukan hal yang sebaliknya jika akan melakukan sorting secara descending. c. Jika ada nilai yang memenuhi dari langkah b maka lakukan pertukaran indeks yang dijadikan patokan. d. Hasil akhir dari langkah c adalah didapat nilai indeks yang terkecil(jika ascending) kemudian tukarkan nilai indeks tersebut dengan nilai indeks yang paling ujung dari elemen yang belum terurut. e. Lakukan langkah-langkah di atas hingga didapatkan elemen array yang telah terurut. Dari rangkuman langkah perlangkah algoritma selection sort di atas, didapatkan suatu desain algoritma dalam bentuk pseodocode. Berikut adalah pseudocode dari algoritma selection sort. Procedure SelectionSort (Input/Output T: TabInt, Input N: integer) {mengurut tabel integer [1.. N] dengan Selection Sort secara ascending} Kamus: I : integer Pass : integer Min : integer Temp : integer Algoritma: Pass traversal [1..N-1] min Pass i traversal [Pass+1..N] if (Ti < Tmin) then min j Temp TPass TPass Tmin Tmin Temp {T[1..Pass] terurut} 1

3. Implementasi Algoritma Selection Sort pada Bahasa Java Untuk mengimplementasikan algoritma selection sort, kita dapat membuat dua class. Yang pertama adalah class SelectionSort yang di dalamnya terdapat method sort() yang berisi algoritma selection sort. Berikut adalah kode program lengkapnya. Untuk menjalankan class SelectionSort kita membutuhkan sebuah class yang berisi method main yang berfungsi sebagai titik awal program java berjalan. Berikut kode programnya. Kode program di atas adalah class DemoSelectionSort yang fungsinya sebagai class utama. Terdapat dua buah method yakni method main dan method tampil yang berfungsi untuk menampilkan elemen array melalui suatu proses iterasi. Hasil yang kita dapatkan ketika class DemoSelectionSort ini dijalankan: 2

4. Ilustrasi Proses Selection Sort Agar dapat lebih memahami konsep algoritma selection sort berikut adalah ilustrasi proses selection sort yang terjadi pada deretan kartu bridge yang tidak terurut menjadi hasil akhir yang terurut. 0 1 2 3 4 3

5. Kompleksitas Algoritma Selection Sort Sebelum kita menentukan kompleksitas algoritma selection sort. Kita tinjau kembali algoritma selection sort. Algoritma selection sort dapat kita bagi menjadi empat bagian untuk mempermudah penghitungan kompleksitas algoritmanya. Bag 1: Terdapat kondisi percabangan yang didapatkan kompleksitas sebesar: = c + max(p1,p2) = 1 + 1 = 2 Bag 2: Terdapat proses looping yang didapatkan kompleksitas sebesar: =(akhir - awal + 2) + (akhir - awal + 1)(P + 1) =(n (i + 1) + 2) + (n (i + 1) + 1)(2+1) =(n i + 3) + (n i + 2)(3) =(n i + 3) + (3n 3i + 6) =4n - 4i + 9 Bag 3: Kita tambahkan hasil dari bag 2 dengan banyak step pada bag 3 yakni pada bag 3 ini terdapat empat step. = step + (hasil bag 2) = 4 + (4n 4i + 9) = 4n 4i + 13 4

Bag 4: Terdapat proses looping dengan nilai awal = 0, nilai akhir = n, dan P(i) = 4n 4i + 13 = (akhir - awal + 2) + (akhir - awal + 1).1 + P(i) = (n 0 + 2) + (n 0 + 1).1 + (4n 4i + 13) = (n + 2) + (n + 1).1 + 4n - 4i + 13 = (2n + 3) + 4n.n 4( n(n + 1)) + 13n = 2n + 3 + 4n 2 2n(n + 1) + 13n = 15n + 3 + 4n 2-2n 2 + 2n = 2n 2 + 17n + 3 ( ) Terlihat bahwa hasil akhir dari perhitungan kompleksitas algoritma selection sort adalah O(n 2 ) yang artinya algoritma ini bersifat kuadratik. Sama halnya dengan algoritma sorting yang lainnya seperti algoritma Bubble Sort. Tetapi meskipun memiliki kompleksitas algoritma yang sama, melalui uji empiris didapatkan algoritma selection sort lebif mangkus daripada algoritma bubble sort. Peningkatan performasi yang diberikan 60% lebih baik daripada bubble sort. 6. Kesimpulan a. Konsep kerja dari algoritma selection sort adalah memilih elemen yang terkecil dari larik untuk ditempatkan pada ujung larik. Proses akan diulang-ulang sampai larik sudah terurut. b. Seperti halnya dengan Algoritma Bubble Sort, algoritma ini cukup mudah untuk diimplementasikan. Walaupun begitu, kedua algoritma ini tidak cukup mangkus untuk menangani data dengan jumlah yang sangat besar karena kompleksitas algoritmanya adalah kuadratik O(n 2 ). 5