BAB 2 TINJAUAN PUSTAKA

dokumen-dokumen yang mirip
Implementasi Brute Force dan Greedy dalam Permainan Big Two (Capsa)

Penyelesaian Berbagai Permasalahan Algoritma dengan Kombinasi Algoritma Brute Force dan Greedy

BAB 2 LANDASAN TEORI

Analisis Kecepatan Sorting Dengan Notasi Big O

BAB II LANDASAN TEORI

Penerapan Algoritma Brute Force pada Permainan Kartu 24 (24 game)

BAB 2 LANDASAN TEORI. 2.1 Pengoptimalan, Optimisasi, Algoritma, dan Analisis Algoritma

ALGORITHM. 5 Greedy Algorithm. Dahlia Widhyaestoeti, S.Kom dahlia74march.wordpress.com

BAB 2 LANDASAN TEORI. Algoritma Optimal Mismatch ini mencari data secara berurut pada tiap

Analisis Algoritma Greedy dan Brute-Force

Eksplorasi Algoritma Brute Force, Greedy, dan Dynamic Programming untuk Persoalan Integer Knapsack

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

ANALISIS PERBANDINGAN ALGORITMA GREEDY & BRUTE FORCE DALAM PENCARIAN KARTU TERTINGGI PADA KARTU REMI SKRIPSI ANTON GUMALA PUTRA

Algoritma Brute Force (lanjutan)

CHAPTER 3 ALGORITHMS 3.1 ALGORITHMS

Implementasi Algoritma Greedy pada Permainan Ludo

STRUKTUR DATA KULIAH KE : 3 ALGORITMA

BAB 2 LANDASAN TEORI. waktu yang diperlukan. Pengukuran waktu yang diperlukan dalam mengeksekusi suatu

Pendahuluan. Algoritma greedy merupakan metode yang paling populer untuk memecahkan persoalan optimasi.

What Is Greedy Technique

Aturan Untuk Menentukan Kompleksitas Waktu Asimptotik. Penjelasannya adalah sebagai berikut: T(n) = (n + 2) log(n 2 + 1) + 5n 2

Pengantar Analisa Algoritma

Penerapan Algoritma Brute Force pada permainan Countdown Number

TUGAS RESUME MATERI KULIAH ALGORITMA DAN STRUKTUR DATA STRATEGI ALGORITMA : H

Matematika Diskrit Kompleksitas Algoritma. Instruktur : Ferry Wahyu Wibowo, S.Si., M.Cs.

Sistem Informasi Pemotongan Kayu menggunakan Algoritma Greedy

Strategi Algoritma Penyelesaian Puzzle Hanjie

Kompleksitas Algoritma

Design and Analysis of Algorithms CNH2G3- Week 8 Greedy Algorithm

04/03/2013. Absensi : 10% UTS : 30% UAS : 40% Tugas & Kuis : 20% By: Vilia Eka Meyana, M.Kom Institute Bisnis dan Informatika Indonesia

BAB III ANALISA MASALAH DAN RANCANGAN PROGRAM

Pengantar Strategi Algoritmik. Oleh: Rinaldi Munir

PENGGUNAAN BIG O NOTATION UNTUK MENGANALISA EFISIENSI ALGORITMA

Penerapan Algoritma Brute Force pada Teka-teki Magic Square 3 x 3

Kompleksitas Algoritma

Aplikasi Algoritma Greedy dalam Permainan Kartu Truf

Kompleksitas Algoritma

Penerapan Algoritma Greedy dalam Algoritma Disk Scheduling Shortest Seek Time First

Penerapan Algoritma Greedy Pada Permainan Kartu Truf

Algoritma greedy merupakan metode yang paling populer untuk memecahkan persoalan optimasi.

ALGORITHM. 2 Analysis Algorithm. Dahlia Widhyaestoeti, S.Kom dahlia74march.wordpress.com

Design and Analysis of Algorithm

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

Penerapan Algoritma Greedy dan Breadth First Search pada Permainan Kartu Sevens

Penerapan Algoritma Brute Force di Permainan Nonogram

Penentuan Hubungan Kompleksitas Algoritma dengan Waktu Eksekusi pada Operasi Perkalian

Algoritma Brute Force (lanjutan)

BAB 2 LANDASAN TEORI

Design and Analysis Algorithm

Analisis Beberapa Algoritma dalam Menyelesaikan Pencarian Jalan Terpendek

BAB III ANALISIS KOMPLEKSITAS ALGORITMA

IMPLEMENTASI ALGORITMA GREEDY PADA PERMAINAN CONGKLAK

Perbandingan Kecepatan/Waktu Komputasi Beberapa Algoritma Pengurutan (Sorting)

Kompleksitas Algoritma Pengurutan Selection Sort dan Insertion Sort

Penerapan Algoritma Greedy pada Permainan Tower Defense

PERBANDINGAN APLIKASI ALGORITMA BRUTE-FORCE DAN KOMBINASI ALGORITMA BREADTH FIRST SEARCH DAN GREEDY DALAM PENCARIAN SOLUSI PERMAINAN TREASURE HUNT

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

PERBANDINGAN ALGORITMA GREEDY DAN BRUTE FORCE DALAM SIMULASI PENCARIAN KOIN

Aplikasi Algoritma Greedy Pada Permainan Big Two

Algoritma Brute Force (Bagian 1) Oleh: Rinaldi Munir

BAB 2 TINJAUAN PUSTAKA

Penerapan algoritma Greedy dalam penentuan Porter Generic Strategies untuk suatu perusahaan

Algoritma Brute Force

MAKALAH ALGORITMA, PSEUDOCODE DAN FLOWCHART TENTANG YUFI EKO FIRMANSYAH 1 D3 IT B OLEH

Studi Mengenai Perbandingan Sorting Algorithmics Dalam Pemrograman dan Kompleksitasnya

Algoritma Brute Force

Aplikasi Algoritma Greedy untuk Optimasi Sistem Booking Hotel Online

IMPLEMENTASI ALGORITMA GREEDY PADA PERMAINAN OTHELLO

Penerapan Greedy pada Jalan Jalan Di Bandung Yuk! V1.71

Penerapan Algoritma Greedy untuk Permainan Flood It

BAB 2 LANDASAN TEORI

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

Kompleksitas Algoritma

Algoritma Brute Force(lanjutan) Lecture 6 CS3024

BAB II TINJAUAN PUSTAKA. Kriptografi (cryptography) berasal dari Bahasa Yunani: cryptós artinya

Penerapan Algoritma Greedy dalam Permainan Tradisional Congklak

Logika dan Algoritma Yuni Dwi Astuti, ST 2

BAB II TINJAUAN PUSTAKA

Algoritma dan Struktur Data. Algoritma Pengurutan (Sorting)

Design and Analysis Algorithm

Algoritma Greedy untuk Pengambilan Keputusan dalam Permainan Kartu Hearts

Algorima Greedy Pada Self Serve Gas Station

BAB II LANDASAN TEORI

Perbandinganan Penggunaan Algoritma Greedy dan Modifikasi Algoritma Brute Force pada Permainan Collapse XXL

BAB II TINJAUAN PUSTAKA. Kriptografi adalah ilmu sekaligus seni untuk menjaga keamanan pesan (message).

Implementasi Algoritma Greedy Dua Sisi pada Permainan 2048

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

Implementasi Algoritma Greedy dalam Pembagian kerja pada Mesin yang Identik

Algoritma dan Diagram Alir (Flowchart)

AlgoritmaBrute Force. Desain dan Analisis Algoritma (CS3024)

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

Analisis dan Strategi Algoritma

BAB I PENDAHULUAN. di dalam suatu permasalahan sehingga dapat menghasilkan suatu hasil yang dapat

Penerapan Algoritma Greedy dan Backtrackng Dalam Penyelesaian Masalah Rubik s Cube

ANALISIS PERBANDINGAN ALGORITMA SELECTION SORT DENGAN MERGE SORT

Kompleksitas Algoritma Sorting yang Populer Dipakai

Contoh algoritma 1. Ada 2 buah gelas. Satu berisi teh dan satunya lagi berisi kopi. Bagaimana caranya menukar isi masing-masing gelas?

Implementasi Greedy Dalam Menemukan Rangkaian Logika Minimal Menggunakan Karnaugh Map

Aplikasi Algoritma Greedy pada Pemilihan Jenis Olahraga Ringan

@copyright by Emy PENGANTAR ALGORITMA & PROGRAM & PROGRAM PENGERTIAN ALGORITMA NOTASI UNTUK ALGORITMA

Transkripsi:

BAB 2 TINJAUAN PUSTAKA 2.1 Konsep Dasar Algoritma Algoritma adalah kumpulan instruksi atau perintah yang dibuat secara jelas dan sistematis berdasarkan urutan yang logis (logika) untuk penyelsaian suatu masalah. French, C.S (1948) menyatakan sejumlah konsep yang mempunyai relevansi dengan masalah rancangan program yaitu kemampuan komputer, kesulitan dan ketepatan. Knuth (1973) menyatakan algoritma fundamental. Untuk keperluan matematika dan program komputer metode yang sering digunakan yaitu : [3] 1. Diagram Alir (Flowchart) 2. Kode Semu (Pseudocode) 3. Algoritma Fundamental. Knuth (1973) menyatakan 5 komponen utama dalam algoritma yaitu finiteness, definiteness, input, output, dan effectiveness. Sehingga dalam merancang sebuah algoritma ada 3 komponen yang harus ada yaitu : 1. Komponen masukan (input) Komponen ini biasanya terdiri dari pemilihan variabel, jenis variabel, tipe variabel, konstanta dan parameter (dalam fungsi). 2. Komponen keluaran (output) Komponen ini merupakan tujuan dari perancangan algoritma dan program. Permasalahan yang diselesaikan dalam algoritma dan program harus ditampilkan

dalam komponen keluaran. Karakteristik keluaran yang baik adalah benar (menjawab) permasalahan dan tampilan yang ramah (user friendly). 3. Komponen Proses (Proccesing) Komponen ini merupakan bagian utama dan terpenting dalam merancang sebuah algoritma. Dalam bagian ini terdapat logika masalah, logika algoritma (sintaksis dan semantik), rumusan, metode (rekursi, perbandingan, penggabungan, pengurangan dan lain-lain). Flowchart Konsep Logika Matematika Format Algoritma Pseudocode Algoritma Fundamental, 1973 Gambar 2.1. Struktur Hubungan dan Jenis Algoritma 2.2 Defenisi Analisis Algoritma Algoritma tidak selalu memberikan hasil terbaik yang mungkin diperoleh,maka diharapkan adanya suatu evaluasi mutu hasil dari algoritma tersebut (Liu, C.L, 1995, P271). Sekali sebuah algoritma diberikan kepada sebuah permasalahan dan dijamin akan memberikan hasil yang diharapkan, maka langkah penting selanjutnya adalah menentukan besar biaya yang diperlukan algoritma tersebut untuk memeroleh hasil itu. Proses inilah yang disebut dengan analisis algoritma.

Ukuran biaya eksekusi suatu algoritma yang paling sering digunakan adalah lamanya waktu diperlukan. Namun juga masih ada ukuran-ukuran lainnya, misalnya besarnya memori yang diperlukan untuk mengeksekusi algoritma tersebut (Liu, C.L, 1995, P 272) [11]. Maksud dilakukannya analisis algoritma (Horowitz, Elis dan Sartaj Sahni, 1978, p1) adalah untuk : 1. Memenuhi aktivitas intelektual 2. Meramalkan suatu hal yang akan terjadi atau yang akan didapat algoritma tersebut. 3. Mengetahui efektifitas suatu algoritma dibanding dengan algoritma yang lain untuk persoalan yang sama. 2.3 Kompleksitas Waktu Algoritma Dan Masalah Algoritma tidak selalu memberikan hasil terbaik yang mungkin diperoleh maka diharapkan adanya suatu evaluasi mutu hasil dari algoritma tersebut (Liu, C.L, 1995, p271). Sekali sebah algoritma diberikan kepada sebuah permasalahan dan dijamin akan memberikan hasil yang diharapkan, maka langkah penting selanjutnya adalah menentukan besar biaya yang diperlukan algoritma tersebut untuk memperoleh hasil itu. Proses inilah yang disebut analisis algoritma (Weiss, Mark Allen,p149). [11] Ukuran biaya eksekusi suatu algoritma yang paling sering digunakan adalah lamanya waktu diperlukan. Namun juga masih ada ukuran-ukuran lainnya, misalnya besarnya memori yang diperlukan untuk mengeksekusi algoritma tersebut (Liu, C.L, 1995, p272). Dua buah algoritama yang berbeda dapat digunakan memecahkan masalah yang sama dan mungkin saj mempunyai kompleksitas waktu (time complexity) yang sangat berbeda (Liu. C.L, 1995, P277). Kompleksitas waktu algoritma terbaik untuk memecahkan masalah tersebut dinamakan sebagai kompleksitas waktu (time complexity of problem) (Liu, C.L, 1995, p277).

2.3.1 Big O(O) Notasi big O pertama kali diperkenalkan oleh seorang teoritis bilangan bernama Paul Bachmann pada tahun 1894, didalam buku keduanya yang berjudul Analytische Zahlentheorie ( analytic number teory ). Dalam teori kompleksitas komputasi, notasi big O sering digunakan untuk menjelaskan bagaimana ukuran data masukan mempengaruhi sebuah kegunaan algoritma dari sumber daya komputasi (biasanya running time atau memori). Definisi pertama dalam pengukuran kompleksitas suatu masalah adalah Big O (Weiss dan Mark Allen, 1996, p161). Definisi : T(n) = O(f(n)), jika ada konstanta positif c dan dimana T(n) < c(f(n)), ketika n >. T(n) = O(f(n)), artinya T(n) berorde paling besar f(n) bila terdapat konstanta c dan sehingga T(n) <= c(f(n)) untuk n >= 2.3.2 Big Omega (Ω) Defenisi kedua dalam pengukuran kompleksitas suatu masalah adalah Big Omega. (Weiss dan Mark Allen, 1996, p161). Definisi : T(n) = Ω(f(n)), jika ada konstanta positif c dan dimana T(n) > c(f(n)), ketika N >

2.3.3 Big Theta (ɵ) Definisi ketiga dalam pengukuran kompleksitas suatu masalah adalah Big Theta. (Weiss dan Mark Allen, 1996, p161). Definisi : T(n)= ɵ (f(n)), jika dan hanya jika T(n) = O(f(n)) dan T(n) = Ω(f(n)) Suatu algoritma dikatakan anggota Θ(h(n)) jika algoritma itu adalah anggota O(h(n)) dan anggota Ω(h(n)). Contoh : Karena T(n) = + adalah angota O( ) dan anggota Ω( ), maka T(n) adalah anggota Θ( ). [2] Contoh : For i 1 to n do For j 1 to i do For k j to n do a a + 1 end for end for end for Nilai O-besar, Ω-besar, dan Θ-besar dari algoritma di atas adalah sebagai berikut : Untuk i = 1, Untuk j = 1, jumlah perhitungan = n kali Untuk i = 2, Untuk j = 1, jumlah perhitungan = n kali Untuk j = 2, jumlah perhitungan = n 1 kali Untuk i = n, Untuk j = 1, jumlah perhitungan = n kali Untuk j = 2, jumlah perhitungan = n 1 kali

... Untuk j = n, jumlah perhitungan = 1 kali. T(n) = + + +... + 1 = n(n + 1)(2n + 1)/6 = + + 1. Diperoleh T(n) 3untuk n 4 dan T(n) 2 untuk n 1. Sehingga diperoleh : T(n) = O( ) = Ω( ) = Θ( ). 2.4 Algoritma Greedy Algoritma Greedy merupakan metode yang paling umum digunakan untuk memecahkan masalah optimasi. Permasalahan optimasi adalah persoalan mencari solusi optimum yaitu maksimasi dan minimasi. Algoritma ini memecahkan masalah langkah per langkah, pada setiap langkah : 1. Mengambil pilihan yang terbaik yang dapat diperoleh pada saat itu tanpa memperhatikan konsekuensi kedepan dengan perinsip take what you can get now!. 2. Berharap bahwa dengan memilih optimum lokal pada setiap langkah akan berakhir dengan optimum global. Contoh permasalahan optimasi adalah seperti masalah penukaran uang. Misalnya sejumlah uang senilai 32. Tukarkan dengan koin-koin uang (1, 5, 10, 25) yang ada. Berapa jumlah minimum koin yang diperlukan untuk penukara tersebut?. Berikut adalah cara-cara penukaran koin yang didapat.

32 = 1+1+1+ +1 (32 koin) 32 = 5+5+5+5+10+1+1 (7 koin) 32 = 10+10+10+1+1 (5 koin) 32 = 25+5+1+1 (4 koin) Jumlah minimum penukaran uang sebanyak 4 koin. Keuntungan Greedy adalah dengan pengambilan pilihan terbaik disetiap langkah (optimum lokal) diharapkan akan mendapatkan optimum global. Bila algoritma Greedy optimum, maka keomptimalannya dapat dibuktikan secara matematis. Meskipun begitu, Greedy tidak selalu memperoleh solusi optimum untuk keseluruhan masalah dikarenakan Greedy tidak melakukan operasi secara exhaustive search kepada semua data dan seringkali tidak mementingkan solusi optimum [6]. Dalam pencarian kartu tertinggi pada kartu, implementasi Greedy diletakkan pada kartu yang diurutkan secara descending dengan selection sort. Berikut contohnya : 1. 5 kartu yang terpilih secara random 2. Kartu di urutkan berdasarkan nilai dan corak dari maximum ke minimum (selection sort). Sehingga didapat kartu tertinggi paling kiri.

2.5 Algoritma Brute Force Brute Force adalah sebuah pendekatan yang lempang (straight forward) untuk memecahan suatu masalah, biasanya didasarkan pada pernyataan masalah (problem statement) dan defenisi konsep yang dilibatkan. Algoritma Brute Force memecahkan masalah dengan sangat sederhana, langsung dan dengan cara yang jelas (obvious way). [7] Kelebihan algoritma Brute Force adalah cara berpikir yang mudah karna langsung pada pernyataan masalah. Algoritma ini dapat digunakan untuk memecahkan hampir sebagian masalah (wide applicability). Disamping itu Brute Force juga menghasilkan algoritma baku (standar) untuk tugas-tugas komputasi seperti penjumalahan dan perkalian n buah bilanagan. Kekurangan dari algoritma ini tentunya adalah butuh banyak jumlah langkah dalam menyelesaikan suatu masalah sehingga butuh banyak memori dan resource yang besar dan waktu yang lama sehingga jarang menghasilkan algoritma yang mangkus. Berikut adalah contoh implementasi algoritma Brute Force dalam pencarian kartu tertinggi pada kartu remi : 1. 5 kartu yang terpilih secara random dan dieksekusi langsung. 2. Pencarian kartu tertinggi dilakukan mulai dari kanan sampai semua kartu habis dibandingkan. Jika nilai dan corak lebih besar akan di swap. Jika lebih kecil tidak akan dilakukan swap.

Sesuai dengan aturan permainan poker, urutan nilai kartu remi dari nilai terkecil ke nilai terbesar adalah 2, 3, 4, 5, 6, 7, 8, 9, 10, J(Jack), Q(Queen), K(King), As. Jika dalam pencarian kartu tertinggi terdapat nilai yang sama maka akan dipilih corak mana yang lebih tinggi. Sehingga corak kartu poker dalam pencarian kartu tertinggi disini berlaku. Berikut adalah kelas corak kartu dari tertinggi sampai terendah : [4] 1. Sekop 2. Hati 3. Keriting 4. Wajik