BAB I PENDAHULUAN Latar Belakang

dokumen-dokumen yang mirip
STRATEGI DIVIDE AND CONQUER

Sorting Algorithms. Algoritma dan Struktur Data. Sorting algorithms

PENGEMBANGAN ALGORITMA PENGURUTAN SMS (SCAN, MOVE, AND SORT) TESIS

BAB 1 PENDAHULUAN. Universitas Sumatera Utara

Quick Sort dan Merge Sort. Arna Fariza Yuliana Setiowati

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

Design and Analysis Algorithm. Ahmad Afif Supianto, S.Si., M.Kom. Pertemuan 07

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

QUICKSORT: METODE PENGURUTAN ARRAY SATU DIMENSI YANG CEPAT DAN EFISIEN. (Quicksort: Quick and Efficient One-Dimension Array Sorting Method)

BAB II TINJAUAN PUSTAKA

Design and Analysis of Algorithm

Design and Analysis of Algorithms CNH2G3- Week 5 Kompleksitas waktu algoritma rekursif part 2: Metode Karakteristik

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

BAB VII ALGORITMA DIVIDE AND CONQUER

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

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

Solusi UTS Stima. Alternatif 1 strategi:

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

Analisis Kecepatan Sorting Dengan Notasi Big O

Design and Analysis of Algorithm

Decrease and Conquer

Sorting Algorithms. Divide and Conquer

Analisa dan Perancangan Algoritma. Ahmad Sabri, Dr Sesi 2: 16 Mei 2016

BAB 3 ANALISA SISTEM

Outline STRUKTUR DATA. VII. Sorting

Studi Mengenai Perbandingan Sorting Algorithmics Dalam Pemrograman dan Kompleksitasnya

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

Algoritma Sorting (Selection Insertion)

STRUKTUR DATA. Nama : Sulfikar Npm : STMIK Handayani Makassar

Perbandingan Algoritma Pengurutan Merge Sort, Quick Sort dan Heap Sort Dilihat dari Kompleksitasnya

Komparasi Algoritma Quicksort dan Bucket Sort pada Pengurutan Data Integer

Design and Analysis of Algorithms CNH2G3- Week 4 Kompleksitas waktu algoritma rekursif part 1

Penyelesaian Barisan Rekursif dengan Kompleksitas Logaritmik Menggunakan Pemangkatan Matriks

Algoritma Bubble Sort dan Quick Sort

BAB 2 TINJAUAN PUSTAKA

Analisis Kompleksitas Waktu Untuk Beberapa Algoritma Pengurutan

BAB 2 LANDASAN TEORI

ANALISIS ALGORITMA BINARY SEARCH

BAB III ANALISIS KOMPLEKSITAS ALGORITMA

Kompleksitas Algoritma Sorting yang Populer Dipakai

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

Kompleksitas Algoritma Dalam Algoritma Pengurutan

Pohon Biner Sebagai Struktur Data Heap dan Aplikasinya

NASKAH UJIAN UTAMA. JENJANG/PROG. STUDI : DIPLOMA TIGA / MANAJEMEN INFORMATIKA HARI / TANGGAL : Kamis / 18 FEBRUARI 2016

Algoritma Divide and Conquer

PERTEMUAN 10 METODE DEVIDE AND CONQUER

Perbandingan Kecepatan/Waktu Komputasi Beberapa Algoritma Pengurutan (Sorting)

ANALISIS ALGORITMA QUICKSORT

Perbandingan Algoritma Brute Force, Divide and conquer, dan Dynamic Programming untuk Solusi Maximum Subarray Problem

Modul Praktikum 6 Pemograman Berorientasi Objek

Bab Tujuan. 6.2 Insertion Sort

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

METODE DEVIDE AND CONQUER (DANDC)

Multithreading untuk Algoritma Divide and Conquer

Analisis dan Strategi Algoritma

Algoritma Divide and Conquer (Bagian 2)

Setelah mempelajari topik Analisis Algoritma di kuliah SDA, ada beberapa kompetensi yang perlu Anda kuasai:

Divide and Conqueradalah strategi militer yang dikenal dengan nama divide ut imperes.

Algoritma Divide and Conquer. (Bagian 2)

PERTEMUAN 10 METODE DEVIDE AND CONQUER

ANALISIS PERBANDINGAN ALGORITMA SELECTION SORT DENGAN MERGE SORT

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

SILABUS MATAKULIAH. Indikator Pokok Bahasan/Materi Aktifitas Pembelajaran

Aplikasi Divide and Conquer pada Perkalian Large Integer untuk Menghitung Jumlah Rute TSP Brute Force

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

UNIVERSITAS GUNADARMA

UNIVERSITAS GUNADARMA

Heap Tree dan Kegunaannya dalam Heap Sort

RENCANA PEMBELAJARAN SEMESTER (RPS)

Sorting Algorithms. Definisi

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

Dalam tugas akhir ini dibatasi penulisan dan penelitian pada:

Implementasi Metode Jumlah Riemann untuk Mendekati Luas Daerah di Bawah Kurva Suatu Fungsi Polinom dengan Divide and Conquer

METODE DEVIDE AND CONQUER

Logika dan Algoritma Yuni Dwi Astuti, ST 2

MAKALAH ALGORITMA DIVIDE AND CONQUER

Algoritma Divide and Conquer (Bagian 1)

SATUAN ACARA PERKULIAHAN PERANCANGAN DAN ANALISIS ALGORITMA ** (S1/TEKNIK INFORMATIKA) PTA 2010/2011

Kemangkusan Algoritma Pada Beberapa Variasi Quick Sort

STRUKTUR DATA KULIAH KE : 3 ALGORITMA

Bubble Sort dan Shell-Sort. Yuliana Setiowati

Analisis Algoritma: Anany Levitin, Introduction to Design and Analysis of Algorithm, 3 rd Edition, Pearson Education, Inc.

SORTING (BAGIAN II) Proses kelima

Analisis Algoritma. Jimmy Tirtawangsa. Universitas Telkom 2014

ALGORITMA DIVIDE AND CONQUER

PERTEMUAN 15 REVEW/QUIZ

Aplikasi Strategi Algoritma dalam Pembagian Kelompok Tugas Besar

Komparasi Algoritma Mergesort dengan Quicksort pada Pengurutan Data Integer

Data Structure SORTING. Chapter 11. Dahlia Widhyaestoeti, S.Kom

Analisis Kompleksitas Algoritma dalam Operasi BigMod

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

RESUME ALGORITMA MERGE SORT DAN REKURENS

Gambar 13.1 Ilustrasi proses algoritma sorting

SORTING DENGAN ALGORITMA DIVIDE AND CONQUER

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

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

Sorting (Bubble Sort)

SORTING (Pengurutan)

Teknik Pengurutan Kartu Remi

Analisa Kompleksitas Algoritma. Sunu Wibirama

Transkripsi:

1 BAB I PENDAHULUAN 1.1. Latar Belakang Teknologi informasi sudah berkembang sangat pesat pada masa ini. Pencarian informasi yang berjumlah besar dalam waktu yang singkat sangat dibutuhkan sebagai upaya efisiensi waktu. Pencarian sebuah dokumen akan lebih efektif apabila informasi-informasi mengenai dokumen yang dicari tersebut diurutkan terlebih dahulu, dibandingkan pencarian dokumen tanpa pengurutan. Sehingga proses pengurutan data (sorting) merupakan salah satu bagian penting dalam proses pencarian informasi. Pengurutan data telah menjadi bidang penelitian yang sangat besar bagi para peneliti algoritma, banyak sumber daya yang diinvestasikan untuk membuat algoritma pengurutan data bekerja lebih baik. Untuk tujuan ini banyak algoritma pengurutan yang diamati dalam hal efisiensi kompleksitas algoritma (Friend, 1956). Algoritma pengurutan data yang efisien sangat penting untuk mengoptimalkan penggunaan algoritma lain yang memerlukan daftar data yang sudah diurutkan untuk dapat bekerja dengan benar (Deitel & Deitel, 2001). Sejak awal digunakannya teknologi komputer, masalah pengurutan data telah menarik minat banyak peneliti, untuk menciptakan algoritma yang memiliki kompleksitas waktu penyelesaian paling efisien (Kruse & Ryba, 1999). Menurut Cormen et al (2001), pengurutan data telah dianggap sebagai masalah mendasar dalam bidang ilmu algoritma, dikarenakan alasan-alasan berikut : (a) Kebutuhan untuk pengurutan informasi yang terdapat dalam banyak aplikasi. (b) Algoritma lain banyak menggunakan pengurutan data sebagai subrutin kunci. (c) Dalam mendesain algoritma banyak teknik penting direpresentasikan dalam tubuh algoritma pengurutan.

2 (d) Banyak isu rekayasa yang timbul ketika menerapkan algoritma pengurutan. Banyak algoritma yang sangat terkenal untuk pengurutan data, dan salah satu dari algoritma yang terkenal tersebut yang menjadikan proses pengurutan data menjadi lebih ekonomis dan efisien adalah algoritma Quicksort yang ditemukan Hoare R pada tahun 1962. Algoritma Quicksort menggunakan teknik pendekatan divide-andconquer, pada algoritma yang menggunakan teknik divide-and-conquer, suatu masalah dibagi menjadi beberapa masalah kecil, kemudian memecahkan masalahmasalah kecil tersebut secara rekursi (conquer), dan kemudian mengumpulkan semua solusi untuk mendapatkan solusi utama untuk input awal (combine). Prinsip desain algoritma yang menggunakan teknik divide-and-conquer adalah bahwa lebih mudah untuk memecahkan beberapa kasus masalah kecil daripada satu masalah besar (Dean, 2006). Kemudian pada tahun 2010, Rami Mansi menggagas algoritma SMS (Scan, Move and Sort), yang merupakan pengembangan dari algoritma Quicksort (Mansi, 2010). Algoritma SMS meningkatkan algoritma Quicksort dalam membagi array masukan. Quicksort menggerakkan pivot untuk berada di tempat yang benar dan kemudian membagi array menjadi dua bagian, dan secara rekursif membuat prosedur yang sama untuk kedua bagian array tersebut, hingga mencapai hasil pengurutan yang benar. Algoritma SMS membagi array menjadi tiga bagian (array), yakni array yang menampung nilai positif, menampung nilai negatif, dan menampung nilai yang sering muncul, lalu kemudian memindahkan setiap elemen ke tempat yang benar sesuai urutan. Dalam kasus terbaik, algoritma quicksort membutuhkan kompleksitas waktu O(n log n), sementara algoritma SMS membutuhkan kompleksitas waktu O(n). Dalam kasus rata-rata, algoritma quicksort membutuhkan kompleksitas waktu O(n log n), algoritma SMS membutuhkan kompleksitas waktu O(n + f * (nilai maksimum + nilai minimum )), di mana f adalah jumlah elemen yang sering muncul. Peningkatan pada kasus rata-rata terjadi ketika n adalah jauh lebih besar dari pada nilai maksimum dan nilai minimum, di mana kompleksitas waktu mendekati O(n). Ketika berurusan dengan berbagai elemen yang berbeda, algoritma SMS lebih efisien dari pada algoritma quicksort. Dalam kasus terburuk, algoritma Quicksort membutuhkan kompleksitas waktu O(n 2 ), sedangkan algoritma SMS membutuhkan kompleksitas waktu O(n + f * (nilai maksimum + nilai minimum )) (Mansi, 2010). Pada penelitian

3 ini, Penulis akan membangun suatu algoritma baru yang merupakan pengembangan dari algoritma SMS. 1.2. Penelitian Sebelumnya Terdapat beberapa riset yang telah dilakukan oleh peneliti sebelumnya yang berkaitan dengan penelitian ini. Pada tabel 1.1 berikut akan terlihat beberapa riset tersebut. Tabel 1.1. Riset Terkait Nama Peneliti dan Tahun Judul Pembahasan Hoare (1962) Quicksort Menyajikan algoritma Quicksort dan cara kerjanya. Mansi (2010) Dean (2006) Deependra & Dwivedi (2011) Enhanced Quicksort Algorithm A Simple Expected Running Time Analysis for Randomized Divide and Conquer Algorithms Comparison Analysis of Best Sorting Algorithms Menyajikan algoritma SMS (Scan, Move, dan Sort) yang merupakan peningkatan dari algoritma Quicksort, berikut cara kerjanya dan membandingkan kompleksitas waktu yang dicapai dengan algoritma quicksort. Menganalisa waktu proses algoritma-algoritma yang menggunakan metode divide and conquer Memberikan beberapa kasus data yang akan diurutkan dan memberikan solusi algoritma yang terbaik untuk masalah tersebut Pada penelitian ini akan dibangun/disajikan algoritma pengurutan baru yang merupakan pengembangan dari algoritma SMS, cara kerja algoritma tersebut dan melakukan perbandingan kompleksitas waktu yang dicapai dengan algoritma SMS,

4 serta melakukan pengujian untuk jumlah data 50.000 (lima puluh ribu) dan 100.000 (seratus ribu) data integer, dimana masing-masing jumlah data tersebut akan diuji untuk 20 set data. 1.3. Rumusan Masalah Algoritma SMS sebenarnya telah berhasil melakukan pengurutan data dengan baik, namun melihat kompleksitas waktu yang dibutuhkan algoritma SMS pada kasus ratarata dan kasus terburuk yang masih sangat besar, maka dalam penelitian ini penulis membangun algoritma pengurutan yang merupakan pengembangan dari algoritma SMS, dengan kompleksitas waktu yang lebih efisian dibandingkan algoritma SMS untuk kasus rata-rata dan kasus terburuk. 1.4. Batasan Masalah Agar pembahasan penelitian ini tidak menyimpang dari apa yang telah ditetapkan dalam rumusan masalah, maka dibentuk batasan terhadap permasalahan yaitu : 1. Pengurutan yang dilakukan untuk bilangan integer 2. Perbandingan yang dilakukan berdasarkan efisiensi kompleksitas waktu 1.5. Tujuan Penelitian Tujuan penelitian tesis ini adalah membangun algoritma pengurutan yang merupakan pengembangan dari algoritma SMS, dengan kompleksitas waktu yang lebih efisien dibandingkan algoritma SMS untuk kasus rata-rata dan terburuk. 1.6. Manfaat Penelitian Melalui penelitian ini penulis lebih memahami mengenai algoritma pengurutan data, cara kerjanya serta cara pengaplikasiannya pada komputer. Penulis juga mengharapkan manfaat yang sama pada orang-orang yang membaca dan memahami penelitian ini. Penulis juga berharap hasil penelitian ini juga dapat menjadi suatu

5 acuan dalam pengembangan ilmu pengetahuan bidang informatika, khususnya mengenai algoritma pengurutan. Aplikasi dari penelitian ini diharapkan dapat membantu para pelaku pekerjaan dalam bidang pengurutan data dan bidang lain yang memerlukan pengurutan data dalam subrutin pekerjaannya.