OPTIMASI ALGORITMA SHELL SORT DALAM PENGURUTAN DATA HURUF DAN ANGKA

dokumen-dokumen yang mirip
STRUKTUR DATA (3) sorting array. M.Cs

STRUKTUR DATA SORTING ARRAY

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

Algoritma dan Struktur Data. Searching dan Sorting

ALGORITMA PENGURUTAN. Oleh : S. Thya Safitri, MT

Gambar 13.1 Ilustrasi proses algoritma sorting

ALGORITMA PENGURUTAN & PENCARIAN

7. SORTING DAN SEARCHING

BAB 8 SORTING DAN SEARCHING

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

Algoritma Transposisi (Bubble Sort/pengurutan gelembung)

Sorting Algorithms. Definisi

Bubble Sort dan Shell-Sort. Yuliana Setiowati

BAB I PENDAHULUAN.

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)

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

BAB VI SORTIR ATAU PENGURUTAN

Perbandingan Performa Kombinasi Algoritma Pengurutan Quick-Insertion Sort dan Merge-Insertion Sort

Algoritma dan Struktur Data

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

Modul Praktikum Algoritma dan Struktur Data

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

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

STRUKTUR DATA. Nama : Sulfikar Npm : STMIK Handayani Makassar

Analisis Kecepatan Sorting Dengan Notasi Big O

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

Langkah Mudah Belajar Struktur Data Menggunakan C/C++

BAB 3 ANALISA SISTEM

PENGURUTAN (SORTING) 1. Overview

Studi Mengenai Perbandingan Sorting Algorithmics Dalam Pemrograman dan Kompleksitasnya

BAB 2 SORTING (PENGURUTAN)

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

BAB 2 LANDASAN TEORI

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

Kompleksitas Algoritma Sorting yang Populer Dipakai

ANALISIS ALGORITMA INSERTION SORT, MERGE SORT DAN IMPLEMENTASINYA DALAM BAHASA PEMROGRAMAN C++

Algoritma dan Struktur Data. Algoritma Pengurutan (Sorting)

Analisis Kompleksitas Waktu Untuk Beberapa Algoritma Pengurutan

PERTEMUAN 10 METODE DEVIDE AND CONQUER

BAB II TINJAUAN PUSTAKA

Algoritma Bubble Sort dan Quick Sort

SEARCHING & SORTING. Pendahuluan

BAHASA PEMROGRAMAN 1 (PERTEMUAN 3)

# TEN Sorting PENDAHULUAN

Jurnal Evolusi Volume 5 No evolusi.bsi.ac.id

SORTING. Struktur Data S1 Sistem Informasi. Ld.Farida

Outline STRUKTUR DATA. VII. Sorting

MENYIGI PENGGUNAAN METODE SHELLSORT DALAM PENGURUTAN DATA

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

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

ANALISIS PERBANDINGAN ALGORITMA SELECTION SORT DENGAN MERGE SORT

PERTEMUAN 10 METODE DEVIDE AND CONQUER

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

BAB VI Pengurutan (Sorting)

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

Algoritma Sorting (Selection Insertion)

Analisis Perbandingan Kompleksitas Algoritma Pengurutan Nilai (Sorting)

BAB 2 LANDASAN TEORI

STRUKTUR DATA. By : Sri Rezeki Candra Nursari 2 SKS

METODE DEVIDE AND CONQUER

SORTING (Pengurutan)

Kompleksitas Algoritma Rank Sort dan Implementasi pada Parallel Programming Dengan Menggunakan OpenMP

SORTING (PENGURUTAN DATA)

Analisis Perbandingan Kompleksitas Algoritma Pengurutan Nilai (Sorting)

Penggunaan Metode Binary Search Pada Translator Bahasa Indonesia Bahasa Jawa

Kompleksitas Algoritma Dalam Algoritma Pengurutan

BAB 2 TINJAUAN PUSTAKA

Modul Praktikum 6 Pemograman Berorientasi Objek

Materi 4: SORTING (PENGURUTAN) Dosen:

Sorting. Struktur Data dan Algoritma. Suryana Setiawan, Ruli Manurung & Ade Azurat (acknowledgments: Denny) Fasilkom UI

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

Pengurutan (Sorting)

Perbandingan Kecepatan/Waktu Komputasi Beberapa Algoritma Pengurutan (Sorting)

Pengurutan (Sorting) Algoritma Pemrograman

Heap Tree dan Kegunaannya dalam Heap Sort

Pengertian Algoritma Pengurutan

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

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

BAB 1 PENDAHULUAN. Universitas Sumatera Utara

MAKALAH STRUKTUR DATA HEAP SORT. Disusun Oleh :

A. TUJUAN PEMBELAJARAN

Politeknik Elektronika Negeri Surabaya

Powered by icomit.wordpress.com

PENGANTAR BAHASA C++

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

VARIABEL & TIPE DATA PEMROGRAMAN C++

Prpsedur progaram selectioa sort (Dengan program C++)

BAB 2 LANDASAN TEORI

Analisis Algoritma Bubble Sort

Penerapan Divide and Conquer dalam Membandingkan Alur Proses 2 Source Code

APLIKASI PERENCANA BELANJA DENGAN PENGURUTAN SKALA PRIORITAS BERBASIS ANDROID

Penerapan Algoritma Bucket Sort Untuk melakukan Pengurutan n buah Bilangan Mata Kuliah Pemrosesan Paralel

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

Kompleksitas Algoritma untuk Penyelesaian Persoalan Penukaran Koin dengan Algoritma Greedy

PENGENALAN BAHASA C. A. Struktur Kode Program dalam Bahasa C Secara garis besar, suatu kode program dalam bahasa C memiliki struktur umum seperti ini:

BAB III METODE PENELITIAN

BAB II LANDASAN TEORI

Algoritma Shell Sort Ascending Dan Binary Sequential Search Menggunakan C

Transkripsi:

OPTIMASI ALGORITMA SHELL SORT DALAM PENGURUTAN DATA HURUF DAN ANGKA Heru Satria Tambunan 1, Sumarno 2, Indra Gunawan 3, Eka Irawan 4 STIKOM Tunas Bangsa 1,4 Program Studi Sistm Informasi, 2,3 Program Studi Teknik Informatika heru@amiktunasbangsa.ac.id 1, sumarno@amiktunasbangsa.ac.id 2, indra@amiktunasbangsa.ac.id 3, eka.irawan@amiktunasbangsa.ac.id 4 ABSTRAK Algoritma merupakan peran penting didalam dunia komputer yang tujuan untuk membantu cara kerja. Algoritma yang diterapkan diperangkat lunak sangat begitu penting. Dari segi perkembangan kemajuan teknologi banyak keinginan yang ingin dicapai untuk menyelesaikan permasalahan dari berbagai metode-metode yang diterapkan untuk pemecahan permasalahan, apalagi dalam masalah pengurutan sebuah data, dari data yang diterima mendapatkan data yang berbentuk acakan. setiap perangkat lunak yang dibangun menggunakan algoritma yang digunakan pasti membutuhkan sebuah data. Didalam penelitian yang dikemukakan oleh penulis yaitu optimasi algoritma shell sort dan pengurutan data huruf dan angka. Didalam pengurutan huruf dan angka menggunakan aplikasi DEV C++ menggunakan bahasa pemrograman C. Keyword : Algoritma Quick sort, algoritma Shell Sort, Dev C++ 1. PENDAHULUAN 1.1. Latar Belakang Disetiap algoritma dalam perancangan perangkat lunak pasti membutuhkan sebuah data, baik data analog maupun data digital, yang mana data tersebut banyak berupa numeric bahkan huruf yang aan dikelolah sehingga menjadi hasil yang diinginkan. Dari data yang digunakan berupa data acak, yang mana data tersebut sulit untuk diurutkan dikarena adanya data berupa huruf dan angka. Penguruatan data atau yang disebut dengan sorting proses menyusun kembali data berupa numerik ataupun karakter yang sebelumnya telah disusun dengan suatu pola tertentu, sehingga tersusun secara teratur menurut aturan tertentu. Baik itu secara ascending maupun dengan descending Beberapa metode pengurutan data atau sorting yaitu Pengurutan berdasarkan perbandingan (comparison-based sorting) yang memiliki jenis pengurutan yakni Bubble sort, exchange sort. Untuk pengurutan berdasarkan prioritas (priority queue sorting method) yakni Selection sort, heap sort (menggunakan tree), untuk pengurutan berdasarkan penyisipan dan penjagaan terurut (insert and keep sorted method) yakni Insertion sort, tree sort, sedangkan pengurutan berdasarkan pembagian dan penguasaan (devide and conquer method) yakni Quick sort, merge sort, dan yang teakhir adalah pengurutan berkurang menurun (diminishing increment sort method) yaitu Shell sort (pengembangan insertion) yang mana masingmasing pengurutan tersebut memiliki kelebihan. Algoritma Shell Sort merupakan juga dengan metode pertambahan menurun (diminishing increment). Metode ini dikembangkan oleh Donald L. Shell pada tahun 1959, sehingga sering disebut dengan Metode Shell Sort. Metode ini mengurutkan data dengan cara membandingkan suatu data dengan 23

data lain yang memiliki jarak tertentu, kemudian dilakukan penukaran bila diperlukan. 1.2. Tujuan Penulisan Dari penjelasan diatas, tujuan yang ingin dicapai dari penelitian ini adalah : 1. Menerapkan algoritma Shell Sort dalam pengurutan huruf maupun angka. 2. Mengetahui bagaimana kecepatan pengurutan huruf dan angka. 1.3. Batasan Masalah Adapun batasan permasalahan dalam penelitian ini adalah sebagai berikut: 1. Algoritma shell sort yang digunakan untuk sorting huruf dan angka 2. Menggunakan Aplikasi dev C++ pada Pemograman C++. 3. Pengujian dalam pengurutan ini hanya menggunakan algoritma shell Sort 2. LANDASAN TEORI 2.1. Algoritma Algoritma sorting adalah kumpulan langkah-langkah penyelesaian dalam suatu masalah dengan metode tertentu, sedangkan sorting didefinisikan sebagai pengurutan sejumlah data berdasarkan nilai kunci tertentu untuk mengurutkan nilai dari yang terkecil (ascending) atau sebaliknya (descending) [1]. 2.2. Kompleksitas Algoritma Kompleksitas suatu algoritma merupakan ukuran seberapa banyak komputasi yang dibutuhkan algoritma tersebut untuk mendapatkan hasil yang diinginkan. Hal-hal yang mempengaruhi kompleksitas waktu: 1. Jumlah masukan data untuk suatu algoritma (n). 2. Waktu yang dibutuhkan unutk menjalankan algoritma tersebut. 3. Ruang memori yang dibutuhkan untuk menjalankan algoritma yang berkaitan dengan struktur data dari program. Kompleksitas mempengaruhi performa atau kinerja dari suatu algoritma. Kompleksitas dibagi menjadi 3 jenis yaitu, worst case, best case, dan average case. Masing-masing jenis kompleksitas ini menunjukkan kecepatan atau waktu yang dibutuhkan algoritma untuk mengeksekusi sejumlah kode.[2] 2.3. Algoritma Shell Sort Algoritma Shell Sort merupakan juga dengan metode pertambahan menurun (diminishing increment). Metode ini dikembangkan oleh Donald L. Shell pada tahun 1959, sehingga sering disebut dengan Metode Shell Sort. Metode ini mengurutkan data dengan cara membandingkan suatu data dengan data lain yang memiliki jarak tertentu, kemudian dilakukan penukaran bila diperlukan. Didalam proses pengurutan dengan metode Shell dapat dijelaskan sebagai berikut : 1. Menentukan jarak mula-mula dari data yang akan dibandingkan, yaitu N / 2. 2. Data pertama dibandingkan dengan data dengan jarak N / 2. Apabila data pertama lebih besar dari data ke N / 2 tersebut maka kedua data tersebut ditukar. 3. Kemudian data kedua dibandingkan dengan jarak yang sama yaitu N / 2. 4. Demikian seterusnya sampai seluruh data dibandingkan sehingga semua data ke-j selalu lebih kecil daripada data ke-(j + N / 2). Untuk proses selanjutnya Shell Sort menggunakan jarak (N / 2) / 2 atau N / 4. 1. Data pertama dibandingkan dengan data dengan jarak N / 4. Apabila data pertama lebih besar dari data ke N / 4 tersebut maka kedua data tersebut ditukar. 2. Kemudian data kedua dibandingkan dengan jarak yang sama yaitu N / 4. 24

3. Demikianlah seterusnya hingga seluruh data dibandingkan sehingga semua data ke-j lebih kecil daripada data ke-(j + N / 4). 4. Pada proses berikutnya, digunakan jarak (N / 4) / 2 atau N / 8. 5. Demikian seterusnya sampai jarak yang digunakan adalah 1. Atau jarak yang digunakan untuk shell sortadalah : Jarak yang digunakan disebut increment value, atau sequence number k Misal sekuens: 5,3,1. Pengambilan sekuens bebas, asal menurun a. Jika k=5, sublistnya: 1) Data[0], Data[5], Data[10], dst 2) Data[1], Data[6], Data[11], dst 3) Data[2], Data[7], Data[12], dst b. Jika k=3, sublistnya: 1) Data[0], Data[3], Data[6], dst 2) Data[1], Data[4], Data[7], dst 3) Data[2], Data[5], Data[8], dst Contoh langkah perhitungan shell sort Proses pertama, jarak=(n/2)+1=(8/2)+1=5 Proses Ketiga jarak=(n/8)=(8/4)=1 Gambar 3. Proses Perhitungan Jarak Ketiga Adapun kelebihan dan kekurangan dari algoritma Shell Sort yaitu: Kelebihan dari algoritma shellsort yaitu: 1. Algoritma ini sangat rapat dan mudah diimplementasikan. 2. Operasi pertukarannya hanya dilakukan sekali saja 3. Waktu pengurutannya dapat lebih ditekan. 4. Mudah menggabungkannya kembali 5. Kompleksitas selection sort relatif lebih kecil Kekurangan dari algoritma shellsort yaitu: 1. Membutuhkan method tambahan 2. Sulit untuk membagi masalah. Gambar 1. Proses Perhitungan Jarak Pertama 3. HASIL DAN PEMBAHASAN Hasil dan pembahasan ini menggunakan perangkat lunak Dev C++ dengan bahasa pemrograman C untuk mengurutkan dan mendapatkan waktu pengurutannya. Proses kedua, jarak=(n/4)+1=(8/4)+1=3 3.1. Pseudocode Shell Sort #include <string.h> #include <stdio.h> #include <stdlib.h> void shell_sort(char *chars, int c) { Gambar 2. Proses Perhitungan Jarak Kedua register int i, j, space, k; char x, a[5]; 25

a[0]=9; a[1]=5; a[2]=3; a[3]=2; a[4]=1; for(k=0; k < 5; k++) { space = a[k]; for(i=space; i < c; ++i) { x = chars[i]; for(j=i-space; (x < chars[j]) && (j >= 0); j=jspace) chars[j+space] = chars[j]; chars[j+space] = x; Dari pengurutan huruf dari gambar diatas membutuhkan waktu 12.69 second untuk mengurutkan stikom tunas bangsa dengan jumlah karakter 19. int main() { char string[3]; printf (" Optimasi Pengurutan Huruf dan Angka \n\n"); printf("masukkan Karakter Huruf dan Angka yang akan anda urutkan: "); gets(string); shell_sort(string, strlen(string)); printf("pengurutan Huruf dan Angka dari karakter yang anda masukan: %s.\n", string); return 0; 3.2. Pengujian Dari pseudocode sebelumnya maka hasil pengujian dari data yang di input berbeda-beda sebagai berikut : Gambar 5. Pengurutan Angka Sedangkan dalam pengurutan angka, dari jumlah angka sebanyak 7 karakter membutuhkan waktu 4.978 second untuk mengurutkan data awal 3598465 Gambar 6. Pengurutan Huruf dan Angka Sedangkan pengurutan huruf dan angka dari data optimasi13 pada gambar diatas membutuhkan waktu 10.89 second untuk mengurutkan dengan jumlah karakter 10. Gambar 4. Hasil pengurutan huruf 3.3. Perangkat yang digunakan Pengujian dilaksanakan dengan menggunakan compiler Bloodshed Dev-C++ versi 5.11 pada 26

platform Windows 7 dan komputer PC dengan spesifikasi: a. Intel(R) Core(TM) i3-2100 CPU @3.10GHz b. Memory 2GB c. System operasi 32 Bit d. HDD 500GB 4. KESIMPULAN Dari hasil implementasi maupun pengujian yang telah dilakukan dapat ditarik beberapa kesimpulan sebagai: 1. Pengujian dilakukan dari beberapa data yang berbeda disetiap pengujian. 2. Pengujian yang dilakukan hanya menggunakan algoritma shell sort untuk huruf dan angka. 3. Pengujian menggunakan bahasa pemrograman bahasa C dan program dev C++ DAFTAR PUSTAKA [1] Wisudawan, Wahyu Fahmy, 2007. Kompleksitas Algoritma Sorting yang Populer Dipakai. Bandung: Teknik Informatika, Institut Teknologi Bandung [2] Anisyah S, Febrian N, analisis perbandingan algoritma bubble sort, merge sort, dan quick sort dalam proses pengurutan kombinasi angka dan huruf. Jurnal Pseudocode, Vol II No. 2, September 2015 27