VISUALISASI LOGIKA ALGORITMA PENGURUTAN DATA MENGGUNAKAN JAVA

dokumen-dokumen yang mirip
ALGORITMA PENGURUTAN & PENCARIAN

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

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

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

KOMPLEKSITAS ALGORITMA PENGURUTAN (SORTING ALGORITHM)

Pengurutan (Sorting) Algoritma Pemrograman

Array (Tabel) bagian 2

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

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

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

SORTING (PENGURUTAN DATA)

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

1. Kompetensi Mengenal dan memahami algoritma percabangan yang komplek.

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

Powered by icomit.wordpress.com

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

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

SORTING. Struktur Data S1 Sistem Informasi. Ld.Farida

DIKTAT STRUKTUR DATA Oleh: Tim Struktur Data IF

Kompleksitas Algoritma Pengurutan Selection Sort dan Insertion Sort

BAB I PENDAHULUAN.

MODUL IV PENCARIAN DAN PENGURUTAN

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

ALGORITMA PENGURUTAN. Oleh : S. Thya Safitri, MT

CCH1A4 / Dasar Algoritma & Pemrogramanan

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

STRUKTUR DATA SORTING ARRAY

Pengertian Algoritma Pengurutan

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

SORTING (BAGIAN II) Proses kelima

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

Algoritma dan Struktur Data

Kompleksitas Algoritma Sorting yang Populer Dipakai

STRATEGI DIVIDE AND CONQUER

Sorting Algorithms. Buble Sort

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

Algoritma dan Struktur Data. Searching dan Sorting

Gambar 13.1 Ilustrasi proses algoritma sorting

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

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

BAB VI SORTIR ATAU PENGURUTAN

STRUKTUR DATA (3) sorting array. M.Cs

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

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

Algoritma Transposisi (Bubble Sort/pengurutan gelembung)

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

BAB 1 PENDAHULUAN. Universitas Sumatera Utara

Perbandingan Kecepatan/Waktu Komputasi Beberapa Algoritma Pengurutan (Sorting)

Algoritma dan Struktur Data. Algoritma Pengurutan (Sorting)

Modul 8 SORTING (PENGURUTAN)

Analisis Kompleksitas Waktu Untuk Beberapa Algoritma Pengurutan

Pengurutan (Sorting)

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

BAB V SORTING (PENGURUTAN) INTERNAL

BAB VI Pengurutan (Sorting)

Array (Tabel) Tim Pengajar KU1071 Sem /11/3 TW/KU1071 1

BAB 2 TINJAUAN PUSTAKA

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

ANALISIS PERBANDINGAN ALGORITMA SELECTION SORT DENGAN MERGE SORT

SORTING. Brigida Arie Minartiningtyas, M.Kom

Analisis Perbandingan Kompleksitas Algoritma Pengurutan Nilai (Sorting)

Algoritma Sorting (Selection Insertion)

Penggunaan Metode Binary Search Pada Translator Bahasa Indonesia Bahasa Jawa

7. SORTING DAN SEARCHING

BAB VI SEARCHING (PENCARIAN)

Algoritma dan Pemrograman Searching/Pencarian

STRUKTUR DATA. By : Sri Rezeki Candra Nursari 2 SKS

APLIKASI MEDIA PEMBELAJARAN INTERAKTIF MATA KULIAH INFORMATION TECHNOLOGY BERBASIS MULTIMEDIA

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

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

MENYIGI PENGGUNAAN METODE SHELLSORT DALAM PENGURUTAN DATA

Jurnal Mahajana Informasi, Vol.1 No 2, 2016 e-issn: SIMULASI PENGURUTAN DATA DENGAN ALGORITMA HEAP SORT

Kompleksitas Algoritma

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

Sistem Informasi Pencarian Judul Skripsi Mahasiswa Menggunakan Metode Pencarian Suffix Cactus Library

Heap Tree dan Kegunaannya dalam Heap Sort

Analisis Kecepatan Sorting Dengan Notasi Big O

PENCARIAN SOLUSI TTS ANGKA DENGAN ALGORITMA RUNUT BALIK BESERTA PENGEMBANGANNYA

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

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

BAB 8 SORTING DAN SEARCHING

Bubble Sort (Pengurutan Gelembung / Pemberatan)

Analisis Perbandingan Kompleksitas Algoritma Pengurutan Nilai (Sorting)

BAB II TINJAUAN PUSTAKA

Decrease and Conquer

CCH1A4 / Dasar Algoritma & Pemrogramanan

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

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

1. Inggriani Liem Catatan Kuliah Algoritma & Pemrograman, Jurusan Teknik Informatika ITB

BAB 1 PENDAHULUAN 1-1

APLIKASI KAMUS JARINGAN KOMPUTER BERBASIS MOBILE MENGGUNAKAN METODE LINIER SEARCH

2. Mahasiswa dapat membuat dan menggunakan array dan linked list dalam suatu kasus.

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

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

Bubble Sort dan Shell-Sort. Yuliana Setiowati

LATIHAN UTS Tim Pengajar KU1071 Sem

Sorting Algorithms. Algoritma dan Struktur Data. Sorting algorithms

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

Bahasa Pemograman Modul XI

Transkripsi:

VISUALISASI LOGIKA ALGORITMA PENGURUTAN DATA MENGGUNAKAN JAVA Rusda Wajhillah 1 ) Agung Wibowo 2) Eni Heni Hermaliani 3) 1) AMIK BSI Sukabumi Jl. Veteran No. 20A, Sukabumi 43111 Indonesia email: rusdaw@yahoo.com 2) AMIK BSI Sukabumi Jl. Veteran No. 20A, Sukabumi 43111 Indonesia email: abow98@gmail.com 3) AMIK BSI Bogor Jl. Merdeka No. 168, Bogor Indonesia email: enie_h@yahoo.com ABSTRAK Growth of making software non-stopped to rapidly grow along with growth and make-up of quality of itself software. Besides that, making software is also developed by time to and expense of software development earn more economical. One of methodologies of software development which start a lot of used at the moment is method instruct the proven object able to assist all analyst and system designer and also computer programming in development of various software. At this writing is done stuff by a method instruct the object in course of software development of at phase analyses the, scheme and implementation by taking case of concerning visualization of sequence algorithm. The case study is implementation in a software prototype visualizing the sequence algorithm. Making software visualizing the this sequence algorithm is addressed to assist the student in comprehending algorithm programming specially algorithm of programming sequence, where presented by animation from sequence process to a[n data of array of have type to of integer and items of sequence algorithm. In the software implementation use the tools that is language Java 1.1.6 to build the applet animation integrated with the page web develop with the format HTML (Hyper Text Mark up Language). Keyword: Visualizing, Algorithm, Sequence. 1. PENDAHULUAN Perkembangan dunia komputer semakin pesat serta mempengaruhi segala aspek kehidupan manusia. Perkembangan ini membentuk suatu kebutuhan untuk mempelajari ilmu pengetahuan tentang pembangunan perangkat lunak komputer. Salah satu studi dasar dalam pembangunan perangkat lunak yaitu algoritma pemrograman dimana dipelajari dasar-dasar strategi pemecahan persoalan secara sistematis, yang pada akhirnya diaplikasikan menjadi perangkat lunak komputer. Algoritma adalah urutan langkah berhingga untuk memecahkan masalah logika atau matematika [1] atau dapat didefinisikan sebagai deskripsi dari suatu pola tingkah laku, dinyatakan dalam primitif, yaitu aksi-aksi yang telah didefinisikan, diberi nama dan diasumsikan sebelumnya bahwa aksi-aksi tersebut dapat dikerjakan sehingga dapat menyebabkan kejadian. Suatu algoritma terdiri dari beberapa sub algoritma, Proceedings SNIT 2011: Hal. A-280 maka setiap sub aksi juga dapat diuraikan dalam urutan yang dapat dimengerti dengan baik. Algoritma dikemas dalam modul-modul dasar dari algoritma yang sering dipakai dalam pemrograman perangkat lunak komputer, salah satunya adalah pengurutan. Dalam mempelajari algoritma pengurutan seringkali terjadi kesulitan untuk memahami aksi-aksi yang dikerjakan oleh algoritma tersebut pada saat dieksekusi. Sedangkan memahami bagaimana suatu modul algoritma menjalankan aksinya merupakan hal mendasar dan merupakan kecakapan penting untuk dikuasai dikarenakan tugas tersebut dibutuhkan pada saat menganalisa, membangun dan mendokumentasikan perangkat lunak. Kesulitan tersebut dikarenakan aksi dinamis yang terjadi pada saat eksekusi suatu modul algoritma, tersembunyi dan apabila direpresentasikan hanya dengan teks atau gambar masih dirasakan sukar, karena diperlukan ruang dan bahan yang banyak untuk menggambarkan aksi dinamis dalam modul algoritma tersebut. Hal ini memotivasi untuk

mencoba mengatasi kendala ini dengan mengembangkan suatu aplikasi yang dapat memvisualisasikan aksi-aksi yang terjadi selama algoritma pengurutan dieksekusi. Pada penulisan ini akan dibangun sebuah prototipe perangkat lunak yang mengambil kasus visualisasi algoritma pengurutan data. Penekanan 2. SISTEM PERSAMAAN LINIER 2.1 Visualisasi Visualisasi adalah pengungkapan suatu gagasan atau perasaan dengan menggunakan bentuk gambar atau tulisan. Visualisasi juga merupakan suatu teknik representasi informasi dengan menampilkan sesuatu yang tersembunyi dari suatu masalah sehingga dapat dilihat dan lebih mudah dipahami. Dalam visualisasi bisa terkandung data sampai informasi yang dapat direpresentasikan. Tujuan dari pembuatan representasi visual ini adalah untuk memberikan deskripsi tentang karakteristik penting dari permasalahan dan interpretasi sasaran yang dispesifikasikan oleh pengguna. Interpretasi sasaran ini mendefinisikan informasi yang ingin ditampilkan. Visualisasi algoritma pengurutan digunakan untuk membantu dalam memahami proses atau aksi yang terjadi dan perubahan yang ditimbulkan oleh bagian-bagian algoritma tersebut selama di eksekusi serta untuk membantu mengkomunikasikan dan mengekspresikan materi algoritma pengurutan tersebut agar menjadi lebih mudah. Untuk merepresentasikan proses yang terjadi dan perubahan-perubahan dalam algoritma pengurutan tersebut akan menjadi sulit apabila disajikan dengan cara deskripsi statis melalui teks atau gambar, dikarenakan akan membutuhkan ruang dan bahan yang banyak untuk menampilkannya. Oleh karena itu, dibutuhkan serangkaian animasi sebagai media yang menggambarkan proses-proses yang terjadi dan 1. Membuat data acak. 2. Menentukan metode pengurutan dan jumlah elemen array. 3. Mengontrol animasi pengurutan. 4. Mengeksplorasi materi algoritma pengurutan. 5. Menampilkan materi algoritma pengurutan. Pengguna akan mendapatkan suatu layanan berupa animasi algoritma pengurutan dan selain itu pengguna dapat mengeksplorasi materi algoritma pengurutan yang terkandung didalamnya serta layanan informasi materi algoritma pengurutan. Beberapa karakteristik umum dari prototipe perangkat lunak visualisasi algoritma pengurutan sebagai berikut: penulisan ini adalah pembangunan perangkat lunak yang menggunakan teknik-teknik rekayasa perangkat lunak. Berdasar uraian di atas, maka VISUALISASI ALGORITMA PENGURUTAN DATA MENGGUNAKAN JAVA diharapkan mampu memberikan gambaran dari sebuah logika algoritma pengurutan data. perubahan-perubahan dari algoritma pengurutan selain deskripsi statis. Dengan menggunakan komputer, representasi tersebut dapat dilaksanakan untuk menjadikannya lebih atraktif dan efisien. Dalam penggunaan komputer untuk visualisasi algoritma pengurutan, harus ditentukan intisari dari aspek-aspek penting dari algoritma, fasilitas serta layanan yang akan disediakan oleh tersebut. Hal lain yang perlu diperhatikan, sasaran yang ingin dicapai dalam membangun ini. Maka dari itu, animasi yang ditampilkan hanya memuat proses-proses yang signifikan disertai pula dengan menampilkan algoritma pengurutan tersebut yang mempunyai hubungan dengan animasi algoritma, sehingga pengguna dapat melihat dan memeriksa bagian atau pernyataan yang sedang dianimasikan. Pengguna dapat berinteraksi dengan ini dengan fasilitas yang disediakan berupa memberi data masukan dan ekplorasi materi dari algoritma pengurutan sebagai acuan bagi pengguna dalam proses belajar dan dengan layanan intranet pengguna dapat kemudahan mengakses ini, sehingga dapat lebih mempermudah dalam usaha untuk mempelajari algoritma pengurutan tersebut. Secara umum, prototipe perangkat lunak visualisasi algoritma pengurutan dibuat untuk membantu mengkomunikasikan dan mempelajari algoritma pengurutan melalui representasi dinamis yaitu animasi proses pengurutan dan representasi statis yaitu menampilkan deskripsi materi algoritma pengurutan. Prototipe ini berinteraksi dengan pengguna melalui penanganan kejadian (event handling) yang terdiri atas: 1. Prototipe perangkat lunak ini memberikan visualisasi dan animasi algoritma pengurutan internal pada data array integer dengan metode pengurutan yang telah ditentukan. 2. Interaksi dengan pengguna melalui event handling yang disediakan oleh perangkat lunak. 3. Memberikan tampilan antarmuka yang menarik dan interaktif. 4. Prototipe perangkat lunak visualisasi algoritma pengurutan dibuat untuk dapat diakses melalui layanan intranet. Proceedings SNIT 2011: Hal. A-281

2.2 Algoritma Pengurutan Data Istilah Algoritma berarti solusi. Dalam pengolahan data pengurutan data atau sorting merupakan hal yang penting dalam kehidupan nyata untuk memudahkan pengelolaan data[4]. Juga didefinisikan sebagai suatu proses untuk menyusun kembali suatu himpunan objek dengan menggunakan aturan tertentu. Dibedakan menjadi dua kategori: 1. Pengurutan internal, yaitu pengurutan terhadap sekumpulan data yang disimpan dalam media internal komputer yang dapat diakses elemennya secara langsung. 2. Pengurutan eksternal, yaitu pengurutan data yang disimpan dalam memori sekunder. Algoritma pengurutan adalah salah satu contoh solusi algoritmik yang kaya dimana satu macam persoalan (pengurutan), dapat dilakukan dengan puluhan macam metode algoritma. Metode algoritma pengurutan internal yang utama antara lain: 1. Counting Sort. 2. Maximum Sort. 3. Insertion Sort. 4. Selection Sort. 5. Bubble Sort. 6. Shell Sort. 7. Shaker Sort. 8. Heap Sort. 9. Quick Sort. 10. Radix Sort. Hasil dari pengurutan ini dapat ditampilkan dengan dua cara, yaitu: 1. Pengurutan secara urut menaik (ascending), yaitu data terurut dari yang bernilai paling kecil ke yang terbesar. 2. Pengurutan secara urut menurun (descending), yaitu data terurut dari yang bernilai paling besar ke yang terkecil. 2.2.1 Metode Pengurutan Berdasarkan Penukaran Data (Bubble Sort). Algoritma algoritma yang termasuk di dalam kelas ini mempunyai ciri khusus, yaitu dengan membandingkan harga isi elemen array dan apabila urutan data tidak dipenuhi, diadakan penukaran pasangan pasangan yang berdekatan terus menerus sampai seluruh tabel terurut. Algoritma yang paling sederhana dan termasuk dalam kelas ini adalah metode pengurutan gelembung atau Bubble sort. Pada bubble sort di setiap iterasi akan diperiksa dua data yang bersebelahan. bila urutan tidak dipenuhi kedua data tersebut saling bertukar tempat. Pada akhir tiap iterasi maka data terkecil yang ada pada sisa tabel telah bergeser ke bagian sebelah kiri dari tabel. Berikut ini diberikan algoritma dari metode bubble sort beserta gambaran contoh pergeseran harga elemen tabel. Kamus: Constant Nmax: integer = 100 {diasumsikan jumlah data yang tersedia} TabInt: array [0.. Nmax] of integer N: integer {indeks efektif, maksimum tabel yang terdefinisi, N Nmax} Pass: integer {tahapan pengurutan} I: integer {indeks untuk traversal tabel} Temp: integer {penyimpan sementara harga TabInt[I] supaya tidak tertimpa karena pergeseran} Algoritma: {diasumsikan TabInt[0..N] sudah terisi} Pass traversal [0..N - 1] I traversal [0.. Pass + 1] if TabInt[I] > TabInt[I + 1] then Temp TabInt[I] TabInt[I] TabInt[I + 1] TabInt[I + 1] Temp Endif Gambar 1. Algoritma bubble sor Proceedings SNIT 2011: Hal. A-282

Indeks Data Awal Pass 0 1 2 3 4 5 6 0 44 44 44 12 12 12 12 06 1 55 55 12 42 42 18 06 12 2 12 12 42 44 18 06 18 18 3 42 42 55 18 06 42 42 42 4 94 94 18 06 44 44 44 44 5 18 18 06 55 55 55 55 55 6 06 06 67 67 67 67 67 67 7 67 67 94 94 94 94 94 94 Gambar 2 Pergeseran elemen tabel pada bubble sort Pada contoh ini terlihat, pada waktu traversal dilakukan perbandingan isi elemen TabInt yang bersebelahan dan apabila perbandingan isi elemen aturan keterurutan tidak terpenuhi maka dilakukan pertukaran data, dimana disini diterapkan aturan TabInt[I] > TabInt[I + 1]. Traversal selanjutnya hanya mencapai elemen yang letaknya sebelum elemen dengan harga yang telah benar posisinya. Disini juga terlihat bagaimana unsur yang terbesar pada suatu iterasi akan timbul ke permukaan (bubble up). 2.2.2 Metode Pengurutan Berdasarkan Penyisipan (Insertion Sort). Metode ini sangat sederhana dan paling mudah untuk diterapkan. Prinsip dasar dari metode ini adalah mencari tempat yang tepat untuk menyimpan elemen tabel dengan cara sequential search, kemudian menyisipkan data tersebut ke tempat seharusnya. Proses pengurutan dilakukan sebanyak jumlah elemen data array (TabInt) yang dalam algoritma disebut Pass, dimana dalam proses ini belum diterapkan pembatas (sentinel) yang eksplisit. Uraian proses sebagai berikut: 1) TabInt[0] dianggap sudah tepat tempatnya. 2) TabInt[1] harus dicarikan tempat yang tepat pada TabInt[0..1], yaitu sisipkan TabInt[1] pada TabInt[0..1]. TabInt[0..1] terurut membesar. 3) TabInt[2] harus dicarikan tempat tepat pada TabInt[0..2], sisipkan TabInt[2] pada TabInt[0..1]. TabInt[0..2] terurut membesar. 4) TabInt[N - 1] harus dicarikan tempat yang tepat pada TabInt[0..N - 1], yaitu sisipkan TabInt[N - 1] pada TabInt[0..N - 1]. TabInt[0..N - 1] terurut membesar. 5) TabInt[0..N] sudah terurut. TabInt[0] <= TabInt[1] <= TabInt[N]. Pada setiap Pass, tabel terdiri dari dua bagian: bagian yang sudah terurut yaitu [0..Pass 1] dan sisanya [Pass..Nmax] yang belum terurut. Ambil elemen TabInt[Pass], sisipkan diantara TabInt[0..Pass-1] dengan tetap menjaga keterurutan. Untuk melakukan penyisipan, harus terjadi pergeseran elemen tabel TabInt[I..Pass]. Pergeseran ini dapat dilakukan sekaligus dengan pencarian tempat yang tepat. Pencarian dapat diatur dengan memanfaatkan sifat keterurutan TabInt[0..Pass]. Berikut ini disajikan tabel pergeseran data beserta tabel algoritma dari algoritma insertion sort. Proceedings SNIT 2011: Hal. A-283

Indeks Pass 0 1 2 3 4 5 6 0 3 3 2 2 2 2 1 1 10 10 3 3 3 3 2 2 2 10 5 5 5 3 3 5 5 5 10 6 6 5 4 6 6 6 6 10 7 6 5 7 7 7 7 7 10 7 6 1 1 1 1 1 1 10 Gambar 3 Pergeseran elemen Tabel TabInt pada insertion sort INSERTION SORT Kamus: Constant Nmax: integer = 100 {diasumsikan jumlah data yang tersedia} TabInt: array [0.. Nmax] of integer N: integer {indeks efektif, maksimum tabel yang terdefinisi, N Nmax} I: integer {indeks untuk traversal tabel} Pass: integer {tahapan pengurutan} Temp: integer {menyimpan harga TabInt[I] supaya tidak tertimpa karena pergeseran dan yang akan disisipkan} Algoritma: {diasumsikan TabInt[0..N] sudah terisi} Pass traversal [1.. N] I Pass - 1 Temp TabInt[Pass] While (Temp < TabInt[I]) and (I >= 0) do TabInt[I + 1] TabInt[I] {geser} I I 1 {berikutnya} Endwhile TabInt[I + 1] Temp {menemukan tempat yang tepat} Gambar 4 Algoritma pengurutan berdasarkan insertion sort 2.2.3 Metode Pengurutan Berdasarkan Seleksi atau Pemilihan Data (Selection Sort). Untuk memberi penjelasan mengenai algoritma metode ini akan diberikan gambaran contoh proses pengurutan pada sebuah tabel integer (TabInt[0..N]) yang isinya sudah terdefinisi. Proses pengurutan ini akan mengurutkan elemen tabel sehingga tersusun membesar. Algoritma pengurutan berdasarkan pemilihan data ini bekerja berdasarkan prinsip berikut: 1) Mencari data dengan harga yang terkecil 2) Kemudian tukarkan data tersebut dengan elemen data pertama TabInt[0]. Kemudian ulangi proses tersebut dengan N 1 data yang ada kecuali data TabInt[0] atau elemen ini diisolasi dan tidak diikut sertakan, pada proses berikutnya, lalu dengan N 2 data kecuali TabInt[0] dan TabInt[1] dan seterusnya. Garis besar algoritmanya sebagai berikut: Pass traversal [0 N 1] Pilih unsur yang terkecil dari Tabint[Pass] TabInt[N] dengan indeks Min_id ; Tukarkan TabInt[Min_id] dan TabInt[Pass]. Jadi pada setiap langkah ke Pass, maka data TabInt[0] sampai dengan TabInt[Pass], sudah terurut dari data yang terkecil sampai ke terbesar. Dengan demikian, pada langkah selanjutnya hanya diperhatikan data TabInt[Pass + 1] sampai dengan TabInt[N] saja. Metode ini akan digambarkan pada gambar dan algoritma lengkapnya pada gambar di bawah ini. Proceedings SNIT 2011: Hal. A-284

Pass Indeks TabInt 0 1 2 3 4 5 6 7 0 44 55 12 42 94 18 06 67 1 06 55 12 42 94 18 44 67 2 06 12 55 42 94 18 44 67 3 06 12 18 42 94 55 44 67 4 06 12 18 42 94 55 44 67 5 06 12 18 42 44 55 94 67 6 06 12 18 42 44 55 67 94 Gambar 5 Pergeseran elemen tabel pada algoritma selection sort SELECTION SORT Kamus: Constant Nmax: integer = 100 {diasumsikan jumlah data yang tersedia} TabInt: array [0.. Nmax] of integer N: integer {indeks efektif, maksimum tabel yang terdefinisi, N Nmax} Pass: integer {tahapan pengurutan} I: integer {indeks untuk traversal tabel} Min: integer {elemen yang paling kecil Min_id: integer {indeks elemen Min} Temp: integer {menyimpan harga TabInt[I] supaya tidak tertimpa karena pergeseran} Algoritma: {diasumsikan TabInt[1..N] sudah terisi} Pass traversal [0.. N - 1] Min TabInt[Pass] I traversal [Pass + 1 N] if TabInt[I] < Min then Min TabInt[I] Min_id I Endif Temp TabInt[Pass] TabInt[Pass] TabInt[Min_id] TabInt[Min_id] Temp Gambar 6 Algoritma pengurutan berdasarkan selection sort. 2.2.4 Metode pengurutan berdasarkan pengembangan dari pertukaran data (Quick Sort). Prinsip dasar dari quick sort mirip dengan metode pertukaran data, disini tabel akan dibagi menjadi dua bagian, hingga data disebelah kiri partisi akan lebih kecil daripada data disebelah kanan partisi. Tetapi data pada kedua sisi belum terurut, maka dilakukan pengurutan pada kedua sisi tersebut secara terpisah. Untuk melakukan pengurutan dari kedua sisi bagian tabel diatas maka dilakukan partisi lagi pada masing-masing sub tabel tersebut. Jadi, secara keseluruhan algoritma ini bersifat rekursif. Secara singkat prosedur algoritma tersebut dapat diterangkan sebagai berikut: 1) Bagi dua tabel yang disediakan dengan aturan indeks tengah (X) sama dengan indeks terkecil ditambah indeks terbesar dibagi dua. 2) Baca data dari indeks terkecil sampai ke indeks tengah sampai ditemukan data tabel[i] sehingga tabel[i] > X. 3) Baca data dari indeks terbesar sampai ke indeks tengah sampai ditemukan data tabel[i] sehingga tabel[j] < X. 4) Tukarkan ke dua data tabel[i] dan tabel[j] tersebut. 5) Ulangi proses diatas sampai data di sisi kiri lebih kecil dari pada data di sisi kanan. 6) Secara rekursif prosedur 1 sampai dengan 5 dilakukan di kedua sisi. Algoritma metode ini digambarkan pada gambar 7 dan pertukaran isi elemen pada gambar dibawah ini. Proceedings SNIT 2011: Hal. A-285

QUICK SORT Kamus: TabInt: array [1.. N] of integer I, J: integer { indeks untuk traversal tabel } Kiri, Kanan, Tengah: integer { indeks partisi & penanda } Temp: integer {penyimpanan sementara } Algoritma: {diasumsikan TabInt[1..N] sudah terisi} I Kiri J Kanan Tengah TabInt [(Kiri + Kanan) div 2] Repeat While TabInt[I] < Tengah Do I I + 1 While TabInt[J] > Tengah Do J J - 1 if I <= J then Temp TabInt[I] TabInt[I] TabInt[J] TabInt[J] Temp I I + 1 J J - 1 endif Until I > J if Kiri < J then quicksort(tabint[], Kiri, J) if I < Kanan then quicksort(tabint[], I, Kanan) Endif Gambar 7 Algoritma pengurutan quick sort TABEL ITERASI 0 1 2 3 4 5 6 7 1 44 55 12 42 94 06 18 67 2 18 06 12 42 94 55 44 67 3 06 18 12 42 94 55 44 67 4 06 12 18 42 94 55 44 67 5 06 12 18 42 44 55 94 67 06 12 18 42 44 55 67 94 Gambar 8 Pergeseran elemen Tabel pada quick sort Variable Iterasi Posisi pertukaran Kiri Kanan Tengah data I J 1 0 7 42 0 6 0 7 42 1 5 2 0 3 06 0 1 3 1 3 12 1 2 4 4 7 55 4 6 5 5 7 94 6 7 Gambar 9 Perubahan harga variabel yang terlibat. 2.3 Java Java Menurut definisi Sun adalah nama untuk sekumpulan teknologi untuk membuat dan menjalankan perangkat lunak pada komputer standalone ataupun pada lingkungan jaringan [5]. Bahasa Java diciptakan oleh Patrick Naughton dan James Gosling di perusahaan Sun Microsystem pada tahun 1995-an. Java merupakan bahasa pemrograman level tinggi berorientasi objek untuk menulis beragam jenis aplikasi atau program komputer[6]. Java telah berkembang dari semula ditujukan untuk Proceedings SNIT 2011: Hal. A-286

pemrograman applet yang berjalan di web browser menjadi bahasa pemrograman untuk pengembangan aneka ragam aplikasi komputer yang berjalan di beragam perangkat mulai dari handheld devices seperti hand phone, PDA (Personal Digital Assistant), sampai aplikasi tersebar skala enterprise di beragam komputer server. 3. HASIL PENELITIAN 3.1 Rancangan Tampilan Perancangan desain layout layar atau halaman keluaran dihasilkan berdasarkan perancangan akan digambarkan dibawah ini: Gambar 10 Perancangan layout halaman animasi Gambar 11 Perancangan layout halaman materi Gambar 12 Perancangan layout halaman index 4. KESIMPULAN Berdasarkan pada pembahasan materi sebelumnya dalam penulisan ini, maka dapat dirumuskan telah dibuat prototipe perangkat lunak Visualisasi Algoritma Pengurutan yang berfungsi sebagai perangkat bantu untuk mengkomunikasikan dan mempelajari algoritma pengurutan dengan kemampuan sebagai berikut: 1. Memberikan visualisasi dan animasi tentang proses pengurutan yang terjadi dan perubahan-perubahan yang ditimbulkan oleh algoritma pengurutan terhadap suatu data ketika sedang dieksekusi. 2. Menampilkan tampilan interaktif dengan memberikan fasilitas masukan bagi pengguna dalam bentuk pilihan dan dapat mengontrol animasi yang sedang dieksekusi. 3. Dengan menerapkan Pemrograman Berorientasi Objek dalam pembangunan prototipe perangkat lunak visualisasi algoritma pengurutan, maka setiap komponennya dapat digunakan kembali Proceedings SNIT 2011: Hal. A-287

untuk pengembangan atau pembuatan perangkat lunak lainnya. 4. Penggunaan bahasa pemrograman Java sebagai implementasi visualisasi algoritma pengurutan ini, dapat secara jelas dalam merealisasikan kelas, objek, atribut, layanan dan komunikasi lewat pesan sehingga memudahkan dalam tranformasi dari tahap analisis dan perancangan ke tahap implementasi. Sebagai prototipe perangkat lunak Visualisasi Algoritma Pengurutan, perangkat DAFTAR PUSTAKA Cheuw. 2009. UML. [http://cheuw.com/sequencediagram-dan-collaboration-diagram/] (Akses 10 Mei 2010). Insomniacz. 2010. Sekilas Tentang Applet Java. [http://insomniacz.kabarku.com/java- SE/Sekilas-Tentang-Applet-Java- 15511.html] (Akses 2 Juni 2010). Pranata, Antony. 2005. Algoritma Dan Pemrograman. Yogyakarta: Graha Ilmu. Halaman 6. lunak ini masih sangat sederhana karena banyaknya batasan-batasan yang diberikan terhadap sistem, yaitu: 1. Belum terdapat fasilitas yang dapat menangani penambahan perbendaharaan metode algoritma pengurutan untuk dapat divisualisasikan. 2. Belum menerapkan pengurutan secara descending (terurut menurun). Purnama, Rangsang. 2008. Tuntunan Pemrograman Java. Jakarta: Prestasi Pustaka Publisher: Halaman 1-58. Tim Media. 2002. Kamus Ilimiah Populer. Jakarta: Media Center. Halaman 353. Rosa, Shalahuddin. 2007. Belajar Pemrograman Dengan Bahasa C++ dan Java. Bandung: Informatika Bandung. Proceedings SNIT 2011: Hal. A-288