• Tidak ada hasil yang ditemukan

Analisis Perbandingan Algoritma Greedy Dan Brute Force Dalam Percarian Kartu Tertinggi Pada Kartu Remi

N/A
N/A
Protected

Academic year: 2016

Membagikan "Analisis Perbandingan Algoritma Greedy Dan Brute Force Dalam Percarian Kartu Tertinggi Pada Kartu Remi"

Copied!
84
0
0

Teks penuh

(1)

ANALISIS PERBANDINGAN ALGORITMA GREEDY & BRUTE FORCE DALAM PENCARIAN KARTU TERTINGGI PADA KARTU REMI

SKRIPSI

ANTON GUMALA PUTRA

091401018

PROGRAM STUDI S1 ILMU KOMPUTER

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI

UNIVERSITAS SUMATERA UTARA

MEDAN

▸ Baca selengkapnya: agama remi bandali

(2)

ANALISIS PERBANDINGAN ALGORITMA GREEDY & BRUTE FORCE DALAM PENCARIAN KARTU TERTINGGI PADA KARTU REMI

SKRIPSI

Diajukan untuk melengkapai tugas akhir dan memenuhi syarat mencapai gelar Sarjana Komputer

ANTON GUMALA PUTRA

091401018

PROGRAM STUDI S1 ILMU KOMPUTER

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI

UNIVERSITAS SUMATERA UTARA

MEDAN

(3)

PERNYATAAN

ANALISIS PERBANDINGAN ALGORITMA GREEDY DAN BRUTE FORCE DALAM PENCARIAN KARTU TERTINGGI PADA KARTU REMI

SKRIPSI

Saya mengakui bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.

Medan, Februari 2014

(4)

PENGHARGAAN

Alhamdulillahirrabbil’alamin, penulis ucapkan rasa syukur yang tiada hentinya kehadirat Allah Subhanahuwata’ala yang telah memberikan rahmat dan karunia-Nya sehingga penulis dapat menyelesaikan skripsi ini. Shalawat beriring salam juga tak lupa teruntuk baginda Nabi Muhammad SAW beserta keluarganya, para sahabat, syuhada dan pengikutnya yang setia.

Dengan segala kerendahan hati, pada kesempatan ini penulis menyampaikan terima kasih kepada semua pihak yang telah membantu penyelesaian skripsi ini. Penulis mengucapkan terima kasih kepada :

1. Bapak Prof. Dr. Syahril Pasaribu, DTMH, MSc(CTM), SpA(K) sebagai Rektor Universitas Sumatera Utara (USU)

2. Bapak Dr. Muhammad Zarlis sebagai Dekan Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara

3. Bapak Dr. Poltak Sihombing, M.Kom sebagai Ketua Program Studi S1 Ilmu Komputer dan sekaligus sebagai Dosen Pembimbing I.

4. Ibu Dian Rachmawati, S.Si, M.Kom sebagai Dosen Pembimbing II dan sekaligus sebagai Dosen di Program Studi S1 Ilmu Komputer Fasilkom-TI USU.

5. Bapak Drs. Marihat Situmorang, M.Kom sebagai Dosen Pembanding I dan sekaligus sebagai Dosen di Program Studi S1 Ilmu Komputer Fasilkom-TI USU.

(5)

7. Seluruh Dosen serta staf Pegawai di Program Studi S1 Ilmu Komputer Fasilkom-TI USU.

8. Kedua Orang tua penulis tercinta Ibunda Dra. Gusniar dan Ayahanda Zakaria, adik-adik di rumah Dwiky.S. Permana dan M. Reksy Setiawan. Semoga bisa menjadi orang-orang yang sukses.

9. Abangda Arie Yudha Nugraha yang masih terus membimbing penulis dan teman-teman untuk belajar.

10.Para sohibul Basrah Nasution, S.Kom, Mhd.Arisandy .P, Zuwarbi .W dan Budi .S yang selalu memberikan semangat dan dorongan yang kuat sehingga penulis selesai mengerjakan Skripsi ini.

11.Kepada Akhi/Ukhti di UKMI Al-Khuwarizmi Fasilkom-TI USU, Fadhil Akbar, Azizah, Yayang.K, Ikhsan Okto, Tito.H, Retry, Aisyah, Nurul, Lestari, Zulfikri, Akhiruddin dan semuanya yang telah memberikan banyak pelajaran dan ukhuwah yang kuat..

12.Kepada teman-teman ikatan daerah Imapaliko, Zuhdi mahendra, S.T, Medi,S.Hut, Bayu S Pratama, Annisa Ikhsan, SE, Reviana Revitasari, Suci Intan. F, S.Ked, Bg David Satria, S.T, Kak Millaty.F, S.Ked dan adik-adik semuanya yang tidak dapat disebutkan satu-persatu.

13.Kepada teman-teman seperjuangan stambuk 2009 serta abang-abang dan kakak-kakak senior yang ada di Program Studi S1 Ilmu Komputer yang telah memberikan dukungan moril maupun materil kepada penulis dalam penyusunan skripsi ini.

14.Dan juga Kepada teman-teman satu kost, Bang Ono Suharsono, S.Kom, Bang Zainuddin Siregar, Bang Muhammad Syukur, ST, Bang Irfan Antoni Siregar, S.Kom, Suyono dan Hendriadi, yang selalu memberikan dukungan penuh kepada penulis.

(6)

memberikan bantuan, perhatian, kasih sayang serta dukungan kepada penulis dalam menyelesaikan skripsi ini.

Penulis menyadari bahwa skripsi ini masih jauh dari kesempurnaan karena kesempurnaan hanyalah milik Allah Subhanahuwata’ala semata. Oleh karena itu penulis menerima kritik dan saran dari semua pihak yang bersifat membangun dan menyempurnakan skripsi ini. Penulis berharap semoga skripsi ini bermanfaat bagi penulis sendiri pada khususnya dan pembaca pada umumnya.

Medan, Februari 2014

Penulis,

(7)

ABSTRAK

Kartu bridge merupakan objek yang bisa dijadikan sampel untuk membandingkan kinerja sebuah algoritma. Berdasarkan aturan permainan poker kartu ini memiliki tingkatan berdasarkan nilai dan corak. Nilai kartu tertinggi dimulai dari As, K, Q,…2. Sedangkan pada corak dimulai dari sekop, hati, keriting dan wajik. Dalam analisis algoritma, sebuah algoritma akan semakin mangkus jika optimal dan cepat. Sebanyak 52 kartu dengan urutan berbeda yaitu ascending, descending dan random dilakukan pengujian dalam pencarian kartu tertinggi dengan algoritma berbeda. Hasil pencarian kartu tertinggi ini sudah pasti sama. Tapi metode pencarian berbeda. Pencarian menggunakan algoritma Greedy dan Brute Force. Pada Greedy pencarian dilakukan dengan mengambil nilai terbesar sampai terkecil secara selection sort. Sedangkan Brute Force dengan cara langsung mencapai tujuan yaitu kartu tertinggi tanpa mempertimbangkan apapun. Dengan menggunakan kedua algoritma ini akan diketahui perbandingan kecepatan dalam mencari kartu tertinggi.

(8)

ABSTRACT

Bridge card is an object that can be used as a sample to compare the performance of the algorithm. Under the rules of the card game of poker has tiers based on value and style. The highest card value starting from As, K, Q,…2. While the highest value on the pattern starts from shovels, liver, curly and diamonds. In the analysis of algorithms, an algorithm will be more efeective if optimal and fast. A total of 52 cards with different sequences are ascending, descending and random testing in the search for the highest card with different algorithms. The highest card of the search results will definitely produce the same card. But in a somewhat different search method. The highest card search using the Greedy algorithm and Brute Force. Application of Greedy algorithms are implemented on the highest card is the quest to take the biggest to the smallest value in selection sort. While Brute Force with a direct way achieve the goal of highest card without any consideration. By using this algorithm will be known to both the speed comparison in searching for the highest card ..

(9)

DAFTAR ISI

1.4 Tujuan Penelitian 2

1.5 Manfaat Penelitian 2

1.6 Metode Penelitian 3

1.7 Sistematika Penulisan 4

Bab 2 Tinjauan Pustaka

2.1 Konsep Dasar Algoritma 5

2.2 Defenisis dan Analisis Algoritma 6

2.3 Kompleksitas Waktu Algoritma Dan Masalah 7

2.3.1 Big-O(O) 8

2.3.2 Big Omega (Ω) 9

2.3.3 Big Theta (ɵ) 9

2.4 Algoritma Greedy 10

2.5 Algoritma Brute Force 11

Bab 3 Analisis Dan Perancangan Sistem

3.1 Analisis Sistem 14

3.1.1 Analisis Masalah 14

3.1.2 Analisis Kebutuhan Sistem 15

3.1.2.1 Kebutuhan Fungsional Sistem 15 3.1.2.2 Kebutuhan Non-Fungsional Sistem 16

3.2 Pemodelan 16

(10)

3.2.1.1 Flowchart Algoritma Greedy 16 3.2.1.2 Flowchart Algoritma Brute Force 18 3.2.2 Unified Modeling Language (UML) 19

3.2.2.1 Use Case Diagram 19

3.2.2.1.1 Use Case Greedy dan Brute Force 20

3.2.2.2 Activity Diagram 21

3.2.3 Pseudocode 21

3.2.3 Pseudocode Proses Algoritma Greedy 22

3.2.3 Pseudocode Proses Algoritma Brute Force 23

3.3 Proses Pencarian Kartu Tertinggi 24

3.3.1 Proses Pencarian Kartu Tertinggi Greedy 24 3.3.2 Proses Pencarian Kartu Tertinggi Brute Force 24

3.4 Perancangan Antarmuka (Interface) 25 Bab 4 Implementasi dan Pengujian Sistem

4.1 Implementasi Sistem 28

4.2 Spesifikasi Perangkat Keras 28

4.3 Spesifikasi Perangkat Lunak 28

4.4 Tampilan Antarmuka(Interface) 28 4.4.1 Tampilan Pemilihan Urutan Kartu 30

4.4.3 Tampilan Pencarian Kartu Tertinggi 31

4.4.3.1 Tampilan Pencarian Kartu Tertinggi Greedy 32

4.4.3.1.1 Ascending 32

4.4.3.1.2 Descending 40

4.4.3.1.3 Random 42

4.4.2.2 Tampilan Pencarian Kartu Tertinggi Brute Force 34

(11)

4.3.1.2 Descending 40

4.3.1.3 Random 42

4.3.1.4 Kasus Terbaik dan Terburuk 45

4.3.2 Pengujian Pencarian Kartu Tertinggi Brute Force 46

4.3.1.1 Ascending 46

4.3.1.2 Descending 49

4.3.1.3 Random 51

4.3.1.4 Kasus Terbaik dan Terburuk 53

Bab 5 Kesimpulan Dan Saran

5.1 Kesimpulan 55

5.2 Saran 56

Daftar Pustaka 57

(12)

DAFTAR TABEL

Halaman

3.1 Use Case Pencarian Kartu Tertinggi 20

4.1 Hasil Kartu Tertinggi Greedy secara Ascending 37 4.2 Waktu Pencarian Greedy Secara Ascending 38

4.3 Perhitungan Big Theta Greedy 39

4.4 Hasil Kartu Tertinggi Greedy Secara Descending 41

4.5 Waktu Pencarian Greedy Secara Descending 42

4.6 Hasil Kartu Tertinggi ke-1 Greedy Seacara Random 43 4.7 Hasil Kartu Tertinggi ke-2 Greedy Seacara Random 43 4.8 Hasil Kartu Tertinggi ke-3 Greedy Seacara Random 44 4.9 Waktu Pencarian Greedy Secara Random 44 4.10 Hasil Kartu Tertinggi Brute Force Secara Ascending 46 4.11 Waktu Pencarian Brute Force Secara Ascending 47

4.12 Perhitungan Big Theta Brute Force 47

4.13 Hasil Kartu Tertinggi Brute Force Secara Descending 49 4.14 Waktu Pencarian Brute Force Secara Descending 50 4.15 Hasil Kartu Tertinggi ke-1 Brute Force Secara Random 51 4.16 Hasil Kartu Tertinggi ke-2 Brute Force Secara Random 52 4.17 Hasil Kartu Tertinggi ke-3 Brute Force Secara Random 52

(13)

DAFTAR GAMBAR

Halaman 3.1. Diagram Ishikawa untuk Analisis Masalah Sistem 15 3.2 Flowchart pencarian kartu tertinggi dengan Greedy 17 3.3 Flowchart pencarian kartu tertinggi dengan Brute Force 18 3.4 Use Case Dagram Sistem Pencarian Kartu Tertinggi 19 3.5 Activity Dagram Sistem Pencarian Kartu Tertinggi 21

3.6. Pengambilan Kartu Random Greedy 24

3.7 Pengurutan Secara Selection sort 24

3.8 Pemilihan Kartu Tertinggi 24

3.9. Pengambilan Kartu Random Brute Force 25

3.10 Proses Membandingkan Mencari Kartu Tertinggi 25

3.11 Rancangan Interface Sistem 26

4.1 Interface sistem pencarian kartu tertinggi 29

4.2 Pemilihan urutan kartu 30

4.3 Inputan ascending 30

4.4 Inputan descending 31 4.5 Inputan random 31 4.6 Pencarian kartu tertinggi ascending dengan Greedy 32

4.7 Pencarian kartu tertinggi descending dengan Greedy 32 4.8 Pencarian kartu tertinggi random dengan Greedy 33 4.9 Pencarian kartu tertinggi ascending dengan Brute Force 34

4.10 Pencarian kartu tertinggi descending dengan Brute Force 34 4.11 Pencarian kartu tertinggi random dengan Brute Force 35

4.12 Interface sistem secara umum 36

4.13 Inputan 7 kartu pertama sistem 37

(14)
(15)

ABSTRAK

Kartu bridge merupakan objek yang bisa dijadikan sampel untuk membandingkan kinerja sebuah algoritma. Berdasarkan aturan permainan poker kartu ini memiliki tingkatan berdasarkan nilai dan corak. Nilai kartu tertinggi dimulai dari As, K, Q,…2. Sedangkan pada corak dimulai dari sekop, hati, keriting dan wajik. Dalam analisis algoritma, sebuah algoritma akan semakin mangkus jika optimal dan cepat. Sebanyak 52 kartu dengan urutan berbeda yaitu ascending, descending dan random dilakukan pengujian dalam pencarian kartu tertinggi dengan algoritma berbeda. Hasil pencarian kartu tertinggi ini sudah pasti sama. Tapi metode pencarian berbeda. Pencarian menggunakan algoritma Greedy dan Brute Force. Pada Greedy pencarian dilakukan dengan mengambil nilai terbesar sampai terkecil secara selection sort. Sedangkan Brute Force dengan cara langsung mencapai tujuan yaitu kartu tertinggi tanpa mempertimbangkan apapun. Dengan menggunakan kedua algoritma ini akan diketahui perbandingan kecepatan dalam mencari kartu tertinggi.

(16)

ABSTRACT

Bridge card is an object that can be used as a sample to compare the performance of the algorithm. Under the rules of the card game of poker has tiers based on value and style. The highest card value starting from As, K, Q,…2. While the highest value on the pattern starts from shovels, liver, curly and diamonds. In the analysis of algorithms, an algorithm will be more efeective if optimal and fast. A total of 52 cards with different sequences are ascending, descending and random testing in the search for the highest card with different algorithms. The highest card of the search results will definitely produce the same card. But in a somewhat different search method. The highest card search using the Greedy algorithm and Brute Force. Application of Greedy algorithms are implemented on the highest card is the quest to take the biggest to the smallest value in selection sort. While Brute Force with a direct way achieve the goal of highest card without any consideration. By using this algorithm will be known to both the speed comparison in searching for the highest card ..

(17)

BAB 1

PENDAHULUAN

1.1 Latar Belakang

Kartu bridge atau remi adalah permainan yang sangat digemari sampai saat ini. Permainan ini membandingkan tingkatan nilai dan kartu. Karena saking popularnya, orang-orang menjadikan permainan ini sekarang kedalam dunia maya seperti poker, solitaire, spider dan sebagainya. Dalam aturan poker, kartu memiliki tingkatan berdasarkan nilai dan corak. Nilai terkecil kartu dimulai dari 2, 3, 4 sampai As. Setelah nilai, corak juga punya tingkatan dimulai yang terkecil adalah wajik, keriting, hati dan sekop.

Kartu remi merupakan objek yang dapat dijadikan sampel untuk membandingkan kinerja sebuah algoritma. Dalam dunia komputer, algoritma adalah alur logika dalam penyelesaian suatu masalah manusia. Ada banyak algoritma yang sering digunakan dalam menyelesaikan masalah komputasi tergantung kepada tujuan. Misalnya untuk mencari rute terpendek daerah wilayah atau kota digunakan algoritma seperti Djikstra, A*(A star) dan sebagainya.

Dalam analisis algoritma, semakin cepat eksekusi semakin baik algoritma tersebut. Analisis algoritma dilakukan salah satunya adalah untuk mengetahui efektifitas suatu algoritma dibanding dengan algoritma yang lain untuk persoalan yang sama (Horowitz, Elis dan Srtaj Sahni, 1978, pl).

(18)

1.2 Rumusan Masalah

Perumusan masalah dalam penulisan tugas akhir ini adalah menganalisis perbandingan algoritma Greedy dan Brute Force dalam pencarian kartu tertinggi pada kartu remi dengan menggunakan software visual C# 2010.

1.3 Batasan Masalah

Adapun batasan masalah dalam penelitian ini adalah :

1. Jumlah kartu remi adalah 52 (tidak termasuk kartu joker). 2. Urutan kartu adalah ascending, descending dan random.

3. Hukum perbandingan corak kartu pada permainan kartu poker berlaku mulai dari tertinggi sampai terendah yaitu sekop, hati, keriting, wajik.

4. Sampel kartu yang diseleksi dalam pencarian kartu tertinggi sebanyak 7 kartu. 5. Parameter perbandingan adalah kartu tertinggi, waktu eksekusi kartu kedua

algoritma dalam satuan milisecond dan Big Theta (

ɵ

). 6. Simulasi dibuat menggunakan software visual C# 2010.

1.4 Tujuan Penelitian

Adapun tujuan dari penelitian ini adalah membuat simulasi perbandingan algoritma Greedy dan Brute Force dalam pencarian kartu tertinggi pada kartu remi.

1.5 Manfaat Penelitian

(19)

1.6 Metode Penelitian

Berikut ini adalah tahapan-tahapan yang dilaksanakan dalam pelaksanaan penelitian ini:

a. Studi Literatur

Penulisan ini dimulai dengan studi kepustakaan yaitu mengumpulkan bahan-bahan referensi berupa buku, jurnal, buku elektronik, artikel, paper maupun situs internet mengenai algoritma Greedy dan Brute Force.

b. Analisis dan Perancangan Sistem

Melakukan analisis kerja algoritma Greedy dan Brute Force dalam pemilihan kartu serta dilakukan perancangan desain antar muka dan alur kerja sistem dalam bentuk flowchart dan pseudocode.

c. Implementasi

Merupakan pembuatan sistem (program coding) sesuai analisis dan perancangan antar muka yang sudah ditentukan.

d. Pengujian Sistem

Setelah perancangan sistem selesai maka dilakukan pengujian untuk menentukan kesesuaian teori dan implementasi sistem. Selain itu pengujian berguna untuk mengetahui kesalahan-kesalahan pada sistem yang dibuat.

e. Penyusunan laporan.

(20)

1.7 Sistematika Penulisan

Sistematika dalam penulisan skripsi adalah sebagai berikut :

BAB 1 PENDAHULUAN

Pada bab ini menjelaskan latar belakang masalah dari penelitian yang akan dilakukan beserta batasannya, tujuan dan manfaat penelitian, metodologi penelitian dan sistematika penulisan skripsi ini

BAB 2 TINJAUAN PUSTAKA

Bab ini akan menjelaskan tentang beberapa teori-teori dasar yang mendukung penelitian seperti Algoritma Greedy dan Brute Force, big theta, dan selection sort.

BAB 3 ANALISIS DAN PERANCANGAN SISTEM

Bab ini menjelaskan mengenai analisis dan perancangan simulasi pencarian kartu tertinggi, model Unified Modelling Language (UML) yang digunakan antara lain use case diagram, actifity diagram dan perancangan tampilan antar muka sistem.

BAB 4 IMPLEMENTASI DAN PENGUJIAN APLIKASI

Bab ini akan membahas mengenai hasil pengujian aplikasi dari penelitian berupa data yang didapat.

BAB 5 KESIMPULAN DAN SARAN

(21)

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)

(22)

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).

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.

Konsep Logika Matematika

Format Algoritma

Algoritma Fundamental, 1973

(23)

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).

(24)

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 :

(25)

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,

(26)

...

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?.

(27)

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.

(28)

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.

(29)

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]

(30)

BAB 3

ANALISIS DAN PERANCANGAN

3.1 Analisis Sistem

Analisis sistem bertujuan melakukan identifikasi masalah-masalah dalam pembuatan sistem sehingga sistem yang dirancang berjalan dengan baik. Sistem ini akan melakukan pencarian kartu tertinggi dari 7 kartu yang di seleksi menggunakan algoritma Greedy dan Brute Force.

3.1.1 Analisis Masalah

Implementasi sebuah algoritma bisa diterapkan kedalam berbagai permainan. Salah satunya adalah kartu remi. Di penelitian ini penulis membuat sampel sebanyak 52 kartu remi (tidak termasuk joker). Pengurutan kartu dibagi menjadi 3 kelompok yaitu ascending ( 2, 3,…K, As), descending (As, K, Q,…2) dan random. Dengan sampel 7 kartu, kedua algoritma ini akan mencari kartu tertinggi sampai tidak ada kartu Bandar yang tersisa.

(31)

Sulitnya menentukan urutan kartu (ascending,descending,random)

Material

Machine

Gambar 3.1 Diagram Ishikawa untuk Analisis Masalah Sistem

3.1.2 Analisis Kebutuhan Sistem

Untuk mempermudah menganalisis sebuah sistem, dibutuhkan dua jenis persyaratan, yaitu analisis persyaratan fungsional dan analisis persyaratan non-fungsional.

3.1.2.1 Persyaratan Fungsional Sistem

Kebutuhan fungsional yang harus dimiliki oleh sistem pencarian kartu tertinggi kartu remi adalah:

1. Sistem dapat mengurutkan kartu remi berdasarkan 3 kelompok yaitu ascending, descending, dan random

2. Sistem dapat melakukan inputan 7 kartu awal.

3. Sistem dapat melakukan pencarian kartu tertinggi dengan algoritma Greedy dan Brute Force.

4. Sistem dapat menampilkan waktu dan kartu tertinggi hasil pencarian. Greedy &

Brute Force

Gambar Kartu

User Metode

Masalah dalam Pencarian kartu

(32)

3.1.2.2 Persyaratan Non-Fungsional Sistem

1. Sistem dapat menyimpan data mulai dari waktu eksekusi setiap algoritma, kartu tertinggi dan sisa kartu akhir sebanyak n percobaan.

2. Sistem dapat membuat grafik waktu eksekusi setiap algoritma, kartu tertinggi dan sisa kartu akhir sebanyak n percobaan.

3.2 Pemodelan

3.2.1 Flowchart Gambaran Umum Sistem

3.2.1.1 Flowchart Algoritma Greedy

(33)

Ya

Tidak

Gambar 3.2 Flowchart pencarian kartu tertinggi dengan Greedy Sorting nilai & corak

dengan selection sort

Urutan kartu berdasarkan nilai & corak tertinggi

52 Kartu

Sisa kartu = 7

Generate Sebanyak 7 - Sisa Kartu Hasil Kartu

tertinggi Input 7 kartu

Start

(34)

3.2.1.2 Flowchart Algoritm Brute Force

Berdasarkan penjelasan sebelumnya maka dapat digambarkan flowchart algoritma Brute Force seperti pada gambar 3.3.

Ya

Tidak

Gambar 3.3 Flowchart pencarian kartudengan Brute Force Brute Force

52 Kartu

Sisa kartu = 7

Generate Sebanyak 7 - Sisa Kartu Hasil Kartu

tertinggi Input 7 kartu

Start

(35)

3.2.2 Unified Modeling Language (UML)

UML (Unifield Modelling Language) digunakan sebagai bahasa pemodelan untuk mendesain dan merancang sistem pencarian kartu tertinggi dengan algoritma Greedy dan Brute Force. Model UML yang digunakan antara lain use case diagram dan activity diagram.

3.2.2.1 Use Case Diagram

Use case diagram menggambarkan bagaimana orang berinteraksi dengan sistem. Sebuah use case mempresentasikan sebuah interaksi antara aktor dengan sistem. Secara umum Use case diagram algoritma Greedy dan Brute Force ditunjukan pada gambar 3.3.

Gambar 3.4 Use Case Dagram Sistem Pencarian Kartu Tertinggi

Analisis Algoritma Greedy & Brute Force Dalam Pencarian Kartu Tertinggi Pada Kartu

Remi

Pengurutan 52 Kartu (ascending, descending,

random)

(36)

3.2.2.2 Use Case Greedy dan Brute Force

Untuk lebih jelas lagi berikut akan ditampilkan rincian use case pada tabel 3.1 dibawah.

Tabel 3.1 Use Case Pencarian Kartu Tertinggi

Name Pencarian Kartu Tertinggi

Actors Pengguna

Trigger Pengguna memilih urutan kartu

Preconditions Pengguna menggunakan pencarian kartu tertinggi Post Conditions Pengguna dapat melihat kartu tertinggi hasil pencarian Succes Skenario 1. Pengguna membuka aplikasi pencarian kartu tertinggi

2. Pengguna memilih urutan kartu 3. Pengguna menginput kartu

4. Penggun menekan tombol proses untuk mengeksekusi pencarian kartu tertinggi.

5. Sistem menampilkan hasil pencarian kartu tertinggi kedua algoritma.

6. Pengguna menekan tombol reset untuk menghapus gambar kartu hasil pencarian.

Alternative Flow -

(37)

Adapun Activity Diagram use case untuk pencarian kartu tertinggi dapat dilihat pada gambar 3.4.

User Sistem

Gambar 3.5 Activity Dagram Sistem Pencarian Kartu Tertinggi

3.2.3 Pseudocode

Pseudocode atau diartikan kode semu merupakan urutan baris algoritma yang menyerupai bahasa pemograman guna menjelaskan cara menyelasikan suatu masalah. Berikut adalah pseudocode sistem pencarian kartu tertinggi.

Input urutan kartu (ascending,

descending, random) Sorting kartu (descending, ascendingrandom) ,

Input kartu Menampilkan 7 kartu pertama

(Greedy & BruteForce)

Proses Kartu Tertinggi dan waktu

(38)

3.2.3.1 Pseudocode Algoritma Greedy

Keterangan :

1. Method Greedy

2. Kondisi ketika nilai variabel deck > 0 3. Perulangan variabel I sebanyak 7 kali 4. Input nilai variabel i ke Max

5. Perulangan variabel j sebanyak 6 kali 6. Kondisi jika nilai a[j] > a[Max] 7. Input nilai j ke Max

8. Kondisi jika max tidak sama dengan i 9. Variabel j bertambah 1

(39)

11. Permisalan nilai a[i] = a[Max] 12. Swap nilai.

13. Kembali ke nilai awal a.

3.2.3.2 Pseudocode Algoritma Brute Force

Keterangan :

1. Method Brute Force

2. Kondisi ketika nilai variable deck >= 0 3. Perulangan i sebanyak 5 kali

4. Kondisi jika variabel a[i] lebih besar dari a[i-1] 5. Permisalan variabel “temp” dengan nilai a[i] 6. Permisalan nilai a[i] dengan a[i-1]

7. Swap nilai

8. Kembali ke nilai awal a. 1. BruteForceCard(a,6) { 2. While (deck >= 0) { 3. For i = 6 to 1 {

4 . If a[i] > a[i-1] {

5. temp = a[i]

6. a[i]=a[i-1]

7 a[i-1]=temp

} 8. Return a

(40)

3.3 Proses Pencarian Kartu Tertinggi

Urutan kartu sangat berpengaruh dalam pencarian kartu tertinggi. Untuk itu urutan kartu dibagi menjadi 3 kelompok yaitu ascending, descending dan random. Berikut ini akan dijelaskan mengenai proses pencarian kartu tertinggi pada kartu remi menggunakan Greedy dan Brute Force.

3.3.1 Proses Pencarian Kartu Tertinggi Dengan Algoritma Greedy

Pada Greedy, sebelum pencarian kartu tertinggi dimulai kartu diurutkan dahulu berdasarkan nilai dan corak kartu seperti pada langkah berikut :

1. Diambil 7 kartu pertama secara random

Gambar 3.6. Pengambilan kartu randomGreedy

2. Kartu diurutkan berdasarkan nilai dan corak tertinggi (selection sort)

Gambar 3.7 Pengurutan secara selection sort

3. Melakukan pencarian kartu tertinggi (paling awal)

(41)

3.3.2 Proses Pencarian Kartu Tertinggi Dengan Algoritma Brute Force

Pada Brute Force, pencarian kartu tertinggi langsung dicari seperti pada langkah berikut :

1. Diambil 7 kartu pertama secara random

Gambar 3.9. Pengambilan kartu randomBrute Force

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.

Gambar 3.10 Proses membandingkan mencari kartu tertinggi

3.4 Perancangan Antarmuka (Interface)

Merancang antarmuka sebuah sistem haruslah menarik, sederhana, dan lengkap ditambah proses kerja sistem yang harus cepat sehingga user merasa nyaman menggunakannya. Pada tahap ini akan dilakukan perancangan sistem pencarian kartu tertinggi.

(42)

6 Greedy Brute Force - x

7

Proses Greedy

High Card Proses Brute Force

High Card 2 Sort Card By :

1. Ascending 2. Descending 3. Random 3

4

5

Gambar 3.11 Rancangan Interface Sistem

Berikut penjelasan dari rancangan visual diatas :

1. Picture Box 1

Fungsi yang memuat 52 gambar kartu sebagai kartu bandar.

2. Button Sort

Fungsi untuk memilih urutan kartu.

3. Button put

Fungsi untuk menginput 7 kartu pertama kedalam 7 picture box kedalam kolom Greedy dan Brute Force.

4. Button Proses

Fungsi pencarian kartu tertinggi. Put

Proses

reset

(43)

5. Button reset

Fungsi menghapus hasil pencarian.

6. Kolom Algoritma

Kolom algoritma mencari kartu tertinggi.

7. Picture Box 2

(44)

BAB 4

IMPLEMENTASI DAN PENGUJIAN SISTEM

4.1 Implementasi Sistem

Implementasi sistem merupakan salah satu tahap yang akan dilakukan dalam pembuatan perangkat lunak suatu sistem. Tahap ini dilakukan setelah melalui tahap analisis dan perancangan yang telah diuraikan pada bab sebelumnya.

4.2 Spesifikasi Perangkat Keras

Spesifikasi perangkat keras yang digunakan untuk implementasi sistem ini adalah sebagai berikut :

1. Prosesor Intel Atom 1.67 GHz 2. Memory (RAM) 2GB

3. Hardisk 320 GB

4. Resolusi monitor 1024x600 pixel. 5. Mouse dan keyboard

4.3 Spesifikasi Perangkat Lunak

Spesifikasi perangkat lunak yang digunakan untuk implementasi sistem ini adalah sebagai berikut :

1. Sistem Operasi Windows 7 Ultimate 2. Visual C# 2010

(45)

Sesuai perancangan sistem, berikut gambar 4.1 tampilan antar muka sistem secara umum :

Gambar 4.1 Interface sistem pencarian kartu tertinggi

Keterangan :

1. Picture box “card”

Berfungsi sebagai objek (kartu) yang akan diseleksi menggunakan kedua algoritma.

2. Button “sorting”

Berfungsi mengurutkan kartu ascending, descending dan random.

3. Box “greedy & brute force”

Berfungsi sebagai tempat seleksi kartu gambar kartu oleh kedua algoritma yang terdiri dari procces dan high card.

(46)

Berfungsi mengambil 7 gambar kartu dari box card.

6. Button “reset”

Berfungsi menhapus semua gambar kartu pada box greedy & brute force hasil pencarian kartu tertinggi.

5. Button “procces”

Berfungsi mengeksekusi pencarian kartu tertinggi.

4.4.1 Tampilan Pemilihan Urutan Kartu

Urutan kartu berpengaruh terhadap proses pencarian kartu tertinggi baik ascending, descending dan random. Berikut gambar 4.2 tampilan pemilihan urutan kartu sistem.

Gambar 4.2 Pemilihan Urutan Kartu

4.4.2 Tampilan Inputan Kartu

Berikut tampilan inputan 7 kartu awal sistem dengan Greedy dan Brute Force :

(47)

Gambar 4.3 Inputan Ascending Keterangan :

1. Inputan kartu ascending Greedy 2. Inputan kartu ascending Brute Force

2. Descending (As sekop, As love,…, 2 wajik)

Gambar 4.4 Inputan Descending Keterangan :

1. Inputan kartu descending Greedy 2. Inputan kartu desccending Brute Force

3. Random

(48)

Keterangan :

1. Inputan kartu random Greedy 2. Inputan kartu random Brute Force

4.4.3 Tampilan Pencarian Kartu Tertinggi

Tampilan pencarian kartu tertinggi akan melibatkan kedua algoritma yang diinput dan di proses secara bersamaan. Berikut tampilan proses pencarian kartu tertinggi pada algoritma Greedy dan Brute Force dibawah ini :

4.4.3.1 Tampilan Pencarian Kartu Tertinggi Dengan Greedy

1. Ascending

Gambar 4.6 Pencarian Kartu Tertinggi Ascending Dengan Greedy

Keterangan :

(49)

2. Descending

Gambar 4.7 Pencarian Kartu Tertinggi Descending Dengan Greedy

Keterangan :

1. Tampilan proses pencarian kartu tertinggi descending Greedy. 2. Tampilan hasil pencarian kartu tertinggi descending Greedy.

3. Random

(50)

Gambar 4.8 Pencarian Kartu Tertinggi Random Dengan Greedy

Keterangan :

1. Tampilan proses pencarian kartu tertinggi random Greedy. 2. Tampilan hasil pencarian kartu tertinggi random Greedy.

4.2.2.1 Tampilan Pencarian Kartu Tertinggi Dengan Brute Force

1. Ascending

Gambar 4.9 Pencarian Kartu Tertinggi Ascending Dengan Brute Force

Keterangan :

(51)

2. Descending

Gambar 4.10 Pencarian Kartu Tertinggi Descending Dengan Brute Force Keterangan :

1. Tampilan proses pencarian kartu tertinggi descending Brute Force. 2. Tampilan hasil pencarian kartu tertinggi descending Brute Force

3. Random

(52)

Keterangan :

1. Tampilan proses pencarian kartu tertinggi random Brute Force. 2. Tampilan hasil pencarian kartu tertinggi random Brute Force

4.5 Pengujian Sistem

Untuk mengetahui perbandingan algoritma Greedy dan Brute Force dalam pencarian kartu tertinggi, penulis mengambil inputan sebanyak 3 kali pengujian. Perbandingan dilihat dari kartu tertinggi, waktu dan big theta(

ɵ

).

4.5.1 Pengujian Pencarian Kartu Tertinggi Greedy

4.5.1.1 Pengujian Ascending

4.5.1.1.1 Kartu Tertinggi

(53)

Gambar 4.12 Interface sistem secara umum

Berikutnya adalah meng-input kartu kedalam kotak kartu seleksi dengan menekan button put sekali saja maka 7 kotak kartu teratas akan terisi sendiri pada greedy dan brute force seperti pada gambar berikut.

(54)

Jika telah terisi maka proses pengujian dapat dilakukan dengan menekan button procces. Apabila hasil pengujian kartu telah selesai, hapus kartu-kartu terseleksi dengan menekan button reset dan pengujian baru bisa dilakukan kembali. Berikut hasil pencarian kartu tertinggi kartu remi secara ascending dengan algoritma Greedy :

Tabel 4.1 Hasil Kartu Tertinggi Greedy Secara Ascending

(55)

22 8 sekop - 45 As hati -

23 9 wajik - 46 As sekop -

Sisa Kartu Akhir 2 wajik, 2 keriting, 2 hati, 2 sekop, 3 wajik, 3 keriting

Pada kasus pencarian kartu tertinggi secara Greedy diatas, swap hanya terjadi di inputan 7 kartu ke-1. Hal ini dikarenakan nilai kartu tersusun semakin besar (ascending), sehingga nilai kartu tertinggi juga ikut naik.

4.5.1.1.2 Waktu

Berikut hasil waktu eksekusi secara greedy dengan ascending dalam 3 kali percobaan pada table 4.2.

Tabel 4.2 Waktu pencarian Greedy secara ascending

Percobaan ke- Waktu (s)

1 1.151 2 1.125 3 1.124 Rata-rata 1.333

4.5.1.1.3 Big Theta (

ɵ

).

Berikut perhitungan running time Algoritma Greedy dalam pencarian kartu tertinggi pada tabel 4.3.

Tabel 4.3 Perhitungan Big Theta Greedy

Step Kode C # c*#

1: private void greedy() 

(56)

2:

sort[idx]  =  Convert.ToInt32(myCard[k,  idx].Tag); 

      

hasil = SelectionSort(sort);   

for (int l = 0; l < sort.Length; l++)  { 

myCard[k,  l].Load("../../resources/"  +  sort[l] + ".jpg"); 

 

    myCard[k, l].Tag = sort[l].ToString();  } 

(57)

myCard[k,  0].Load("../../resources/"  +  urut[angka] + ".jpg"); 

     

myCard[k, 0].Tag = urut[angka].ToString();   

label1.Text =  (Convert.ToInt16(label1.Text)  ‐ 1).ToString(); 

Urutan kartu descending mulai dari nilai dan corak tertinggi (As sekop, as hati,…, 2 wajik). Sebelum melakukan pengujian pilih dahulu button pilihan urutan kartu descending pada aplikasi seperti pada awal percobaan ascending diatas.

4.5.1.2.1 Kartu Tertinggi

(58)
(59)

4.5.1.2.2 Waktu

Berikut hasil waktu eksekusi secara Greedy dengan descending dalam 3 kali percobaan pada tabel 4.5.

Tabel 4.5 Waktu Pencarian Greedy Secara Descending

Percobaan ke- Waktu (s)

1 1.140 2 1.136 3 1.152 Rata-rata 1.142

4.5.1.2.3 Big Theta (

ɵ

)

T(n) = c1 + 3(c2) + c3 + 4(c4) + 7(C5) + 7(C6) + 7(C7) + 7(C8) + 7(C9) + 7(C10) + 7(C11) +

7(C12) + C13 + C14 + 7(C15) + 7(C16) + 7(C17) + 7(C19) + 7(C20) + C21 + 3(C22) + C23

+ C24 + C25 + 7(C26)+ 7(C27) + 7(C28) + C29 = b

T(n) = (b)

4.5.1.3 Random

Random adalah pengambilan kartu remi secara acak. Inputan pada random atau acak dilakukan sebanyak 3 kali. Pada pengujian random, swap tidak ditulis lagi karna sudah jelas berbeda. Sebelum melakukan pengujian pilih dahulu button pilihan urutan kartu random seperti pada awal pengujian ascending dan descending diatas.

4.5.1.3.1 Kartu Tertinggi

(60)

A. Percobaan 1

Tabel 4.6 Hasil Pencarian Kartu Tertinggi ke-1 Greedy No

Kartu tertinggi Waktu

(s)

Tabel 4.7 Hasil Pencarian Kartu Tertinggi ke-2 Greedy

No

Kartu tertinggi Waktu

(61)

C. Percobaan 3

Tabel 4.8 Hasil Pencarian Kartu Tertinggi ke-3 Greedy No

Kartu tertinggi Waktu

(s)

1 J keriting 13 4 sekop 25 5 wajik 37 9 keriting 1.129 2 10 sekop 14 Q sekop 26 J wajik 38 3 sekop

3 10 wajik 15 4 hati 27 K keriting 39 7 keriting 4 7 hati 16 4 keriting 28 5 sekop 40 Q wajik 5 10 keriting 17 6 keriting 29 8 wajik 41 3 wajik 6 Q keriting 18 5 keriting 30 K hati 42 3 hati 7 6 sekop 19 7 wajik 31 K sekop 43 Q hati 8 As sekop 20 K wajik 32 8 hati 44 As hati 9 6 hati 21 8 sekop 33 7 sekop 45 9 hati 10 J sekop 22 9 sekop 34 As wajik 46 10 hati 11 5 hati 23 J hati 35 4 wajik

12 8 keriting 24 As keriting 36 6 wajik

4.5.1.3.2 Waktu

Berikut hasil pencarian kartu tertinggi kartu remi secara random dengan algoritma Greedy pada tabel 4.9.

Tabel 4.9 Waktu Pencarian Greedy Secara Random

Percobaan ke- Waktu (s)

(62)

4.5.1.3.3 Big Theta (

ɵ

)

T(n) = c1 + 3(c2) + c3 + 4(c4) + 7(C5) + 7(C6) + 7(C7) + 7(C8) + 7(C9) + 7(C10) + 7(C11) +

7(C12) + C13 + C14 + 7(C15) + 7(C16) + 7(C17) + 7(C19) + 7(C20) + C21 + 3(C22) + C23

+ C24 + C25 + 7(C26)+ 7(C27) + 7(C28) + C29 = b

T(n) = (b)

4.5.1.4 Kasus Terbaik dan Terburuk Greedy

Dalam pencarian kartu tertinggi ini kasus terbaik adalah dimana susunan kartu yang menggunakan waktu paling sedikit atau cepat dan kasus terburuk menggunakan waktu paling lama.

1. Terbaik

Berdasarkan hasil ascending dan descending diatas, hasil terbaik algoritma greedy pada pencarian kartu tertinggi 7 kartu adalah pada susunan descending karna algoritma tidak melakukan swap. Berikut contoh gambar susunan kartunya :

Gambar 4.14 Kasus terbaik Greedy

2.Terburuk

Hasil terburuk algoritma greedy pada pencarian kartu tertinggi 7 kartu adalah pada susunan ascending karna terdapat algoritma melakukan swap sebanyak 3 kali di awal pencarian. Berikut contoh susunan gambar kartunya :

(63)

4.5.2 Pengujian Pencarian Kartu Tertinggi Dengan Algoritma Brute Force

4.5.2.1 Ascending

4.5.2.1.1 Kartu Tertinggi

Berikut hasil pencarian kartu tertinggi kartu remi secara ascending dengan algoritma Brute Force pada tabel 4.10.

Tabel 4.10 Hasil Kartu Tertinggi Brute Force Dengan Ascending

(64)

18 7 sekop - 41 K hati -

19 8 wajik - 42 K sekop -

20 8 keriting - 43 As wajik -

21 8 hati - 44 As keriting -

22 8 sekop - 45 As hati -

23 9 wajik - 46 As sekop -

Sisa Akhir Kartu 2 wajik, 2 keriting, 2 hati, 2 sekop, 3 wajik, 3 keriting

4.5.2.1.2 Waktu

Berikut hasil waktu eksekusi secara Brute Force dengan ascending dalam 3 kali percobaan pada tabel 4.11.

Tabel 4.11 Waktu Pencarian Brute Force Secara Ascending

Percobaan ke- Waktu (s)

1 1.064 2 1.064 3 1.066 Rata-rata 1.064

4.5.2.1.3 Big Theta (

ɵ

)

(65)

Tabel 4.12 Perhitungan Big Theta Brute Force

private void bruteForce()  { 

card[idx]  =  Convert.ToInt32(bruteCard[k,  idx].Tag); 

bruteCard[k,  l].Load("../../resources/"  +  card[l] + ".jpg"); 

    

   bruteCard[k, l].Tag = card[l].ToString();  } 

  

(66)

31: k++;   

for (int l = 0; l < 7; l++)  { 

bruteCard[k,  l].Image  =  bruteCard[k  ‐  1,  l].Image; 

         

 bruteCard[k, l].Tag = bruteCard[k ‐ 1, l].Tag;  } 

 

bruteCard[k,  0].Load("../../resources/"  +  urut[angka] + ".jpg"); 

 

bruteCard[k, 0].Tag = urut[angka].ToString();   

angka++;    }  } 

Dari perhitungan running time pada tabel maka didapat T(b) yang merupakan jumlah dari kolom C*# sebagai berikut.

T(n) = c1 + 4(c2) + c3 + 2(c4) + 6(C5)+ 6(C6) + 6(C7) + 6(C8) + 6(C9) + C10 + C11 +

7(C12) + 7(C13) + 7(C14) + 7(C15)+ 7(C16 ) + C17 + 3(C18) = b

T(n) = (b)

4.5.2.2 Pengujian Descending (

ɵ

)

Urutan kartu descending mulai dari terendah sampai tertinggi (As sekop, as hati, as keriting,…,2 wajik). Sebelum melakukan pengujian pilih dahulu button pilihan urutan kartu descending seperti pada awal pengujian ascending diatas.

4.5.2.2.1 Kartu Tertinggi

(67)
(68)

4.5.2.2.2 Waktu

Berikut hasil waktu eksekusi secara Brute Force dengan descending dalam 3 kali percobaan pada tabel 4.14.

Tabel 4.14 Waktu Pencarian Brute Force Secara Descending

Percobaan ke- Waktu (s)

1 1.087 2 1.117 3 1.103 Rata-rata 1.102

4.5.2.2.3 Big theta (

ɵ

)

Berikut adalah running time pencarian kartu tertinggi dengan algoritma Brute Force pada descending.

T(n) = c1 + 4(c2) + c3 + 2(c4) + 6(C5)+ 6(C6) + 6(C7) + 6(C8) + 6(C9) + C10 + C11 +

7(C12) + 7(C13) + 7(C14) + 7(C15)+ 7(C16 ) + C17 + 3(C18) = b

T(n) = (b)

4.5.3 Pengujian Random

4.5.3.1 Kartu Tertinggi

(69)

A. Percobaan 1

Tabel 4.15 Hasil Kartu Tertinggi ke-1 Brute Force

No

Kartu tertinggi Waktu

(s)

Tabel 4.16 Hasil Pencarian Kartu Tertinggi ke-2 Brute Force

No

Kartu tertinggi Waktu

(70)

C. Percobaan 3

Tabel 4.17 Hasil Pencarian Kartu Tertinggi ke-3 Brute Force

No

Kartu tertinggi Waktu

(s)

1 J keriting 13 4 sekop 25 5 wajik 37 9 keriting 1.091 2 10 sekop 14 Q sekop 26 J wajik 38 3 sekop

3 10 wajik 15 4 hati 27 K keriting 39 7 keriting 4 7 hati 16 4 keriting 28 5 sekop 40 Q wajik 5 10 keriting 17 6 keriting 29 8 wajik 41 3 wajik 6 Q keriting 18 5 keriting 30 K hati 42 3 hati 7 6 sekop 19 7 wajik 31 K sekop 43 Q hati 8 As sekop 20 K wajik 32 8 hati 44 As hati 9 6 hati 21 8 sekop 33 7 sekop 45 9 hati 10 J sekop 22 9 sekop 34 As wajik 46 10 hati 11 5 hati 23 J hati 35 4 wajik

12 8 keriting 24 As keriting 36 6 wajik

4.5.3.2 Kartu Tertinggi

Berikut hasil pencarian kartu tertinggi kartu remi secara random dengan algoritma Brute Force pada tabel 4.18

Tabel 4.18 Waktu Pencarian Brute Force Secara Random

Percobaan ke- Waktu (s)

1 1.098 2 1.072 3 1.091 Rata-rata 1.087

(71)

4.5.3.3 Big Theta (

ɵ

)

Berikut adalah running time pencarian kartu tertinggi dengan algoritma Brute Force pada descending.

T(n) = c1 + 4(c2) + c3 + 2(c4) + 6(C5)+ 6(C6) + 6(C7) + 6(C8) + 6(C9) + C10 + C11 +

7(C12) + 7(C13) + 7(C14) + 7(C15)+ 7(C16 ) + C17 + 3(C18) = b

T(n) = (b)

4.5.4 Kasus Terbaik dan Terburuk Brute Force Pada Pencarian Kartu Tertinggi

1. Terbaik

Hasil terbaik algoritma Brute Force pada pencarian kartu tertinggi 7 kartu adalah pada susunan ascending. Berikut contoh susunan kartunya pada gambar 4.16.

Gambar 4.16. Kasus Terbaik Brute Force

2. Terburuk

Hasil terburuk algoritma Brute Force pada pencarian kartu tertinggi 7 kartu adalah pada susunan descending. Berikut contoh gambar susunan kartunya pada gambar 4.17.

(72)

BAB 5

KESIMPULAN DAN SARAN

5.1Kesimpulan

Berdasarkan hasil dari implementasi dan pengujian sistem pencarian kartu tertinggi pada kartu remi dengan algoritma Greedy dan Brute Force, maka penulis dapat menyimpulkan sebagai berikut :

1. Pada permasalahan pencarian kartu tertinggi 52 kartu ini, Brute Force lebih cepat rata-rata 0.113 detik dari Greedy. Greedy tidak terlihat optimum dikarenakan jumlah kartu yang kecil.

(73)

5.2Saran

Adapun saran yang dapat penulis berikan untuk mengembangkan penelitian ini adalah sebagai berikut.

1. Untuk menjadikan Greedy optimum, sebaiknya dilakukan pencarian dengan jumlah kartu yang lebih besar di atas 200 kartu.

2. Coba lakukan pencarian kartu tertinggi dilakukan dimulai dari 2 sampai 5 kartu dengan jumlah tetap 52 kartu.

3. Untuk membuat analisis perbandingan waktu yang lebih cepat, pengujian sebaiknya di lakukan pada prosesor komputer yang lebih tinggi.

(74)

DAFTAR PUSTAKA

[1] Dasgupta, S., Papadimitrou, C.H., & Vazirani,U.V. 2006. Algorithms. Cambridge Univesrsity Press. England.

[2] Levitin, Anany. “Introduction to the design and analysis of algorithm. “Addison Wesley. 2003.

[3] Sawaludin, James .P.M, Silvina, I. 2008. Buku Penuntun Praktikum : Desain Dan Analisis Algoritma. USU : Medan.

[4] Hidayat, Fadhil. 2011. Analisis Algoritma Greedy dan Brute Force. Jurnal Sekolah Teknik Elektro dan Informatika ITB, Hal. 33-56.

[5] Indrayana, Fuzi M. I, Perbandingan kecepatan/waktu Komputasi Beberapa Algoritma Pengurutan (Sorting). Jurnal Teknik Informatika ITB. Hal.3 [6] Putra, M. R. 2009. Penerapan Algoritma Greedy Dalam Permainan

Congklak. Jurnal Teknik Informatika ITB. Hal. 1-4.

[7] Ridwan., Adipradana, Brahmasta & Weno, A.S. Optimisasi Permainan “Tetris” Dengan Pendekatan Algoritma Greedy dan Algoritma Brute Force. Jurnal Teknik Informatika ITB, Hal.1-2.

[8] Syaputra, Aidil. 2012. Penerapan algoritma Brute Force (Exhaustive Search) dalam Permainan Scrabble. Jurnal Teknik Informatika ITB. Hal.3-5.

[9] Hans & Halvorsen, P. 2012. IntroductionTo Visual Studio and C#.(Online) http://home.hit.no/.pdf (22 Mei 2013).

[10] Robbert J.O and Wyatt, Danna. 2011. Windows Form Using C#. (Online) http://home.hit.no/.pdf (22 Mei 2013)

(75)

LAMPIRAN A : LISTING PROGRAM

(76)

timer1.Start();

button3.Enabled = false; button4.Enabled = true; }

(77)
(78)

(79)

}

HighCard[k].Image = myCard[k, 0].Image; deck--; k++;

}

pictureBox1.Load("../../resources/" + urut[angka] + ".jpg");

HighCard2[k].Image = bruteCard[k, max].Image; deck--; k++;

bruteCard[k, max].Load("../../resources/" + urut[angka] + ".jpg");

(80)

}

HighCard2[k].Image = bruteCard[k, max].Image; deck--; k++;

} }

private void button4_Click(object sender, EventArgs e) {

Stopwatch time = new Stopwatch(); time.Start();

MessageBox.Show("Procces Completed in " + Math.Round(Convert.ToDecimal(time.ElapsedMilliseconds)/1000, 3)

+ "seconds", "Procces Completed", MessageBoxButtons.OK,MessageBoxIcon.Information);

}

private void button8_Click(object sender, EventArgs e) {

label1.Text = "52";

pictureBox1.Load("../../resources/" + urut[angka] + ".jpg"); button3.Enabled = true;

}

private void button9_Click(object sender, EventArgs e) {

label1.Text = "52"; angka = 0;

(81)

z = 0;

pictureBox1.Load("../../resources/" + urut[angka] + ".jpg"); }

private void button7_Click(object sender, EventArgs e) {

label1.Text = "52"; button4.Enabled = false;

pictureBox1.Load("../../resources/" + urut[angka] + ".jpg"); button3.Enabled = true;

}

private void timer1_Tick(object sender, EventArgs e) {

(82)

}

for (i = 0; i < 46; i++) { HighCard[i].Image = null; HighCard2[i].Image = null; }

button7_Click(null, null); label2.Text = "Time: "; label3.Text = "Time: "; }

private void button1_Click_1(object sender, EventArgs e) {

       private void Form1_FormClosing(object sender, FormClosingEventArgs e)

Application.Exit();

if (MessageBox.Show("Keluar Aplikasi?", "Keluar?", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)

{

Application.Exit(); }

else

e.Cancel = true; }

}

(83)

CURRICULUM VITAE

Nama Lengkap : Anton Gumala Putra Jenis Kelamin : Laki-laki

Alamat Sekarang : Jl. Dr. Mansyur Gg. Sipriok No. 3 Medan Alamat Orangtua : Komplek Polri Kec. Pangkalan Koto Baru,

Sumatera Barat.

Tempat Tanggal Lahir : Payakumbuh, 16 Januari 1991 Agama : Islam

Hobbi : Futsal, Browsing, Membaca dan Entrepreneur. Tinggi/ Berat Badan : 171 cm/ 61 Kg

Telp/ HP : 085263349906

Email : gumalasoccer@gmail.com

RIWAYAT PENDIDIKAN

2008 – 2013 : S1 Ilmu Komputer Fasilkom-TI USU, Medan 2008 – 2005 : SMA Negeri 1 Pangkalan Kt. Baru

2005 – 2002 : SMP Negeri 1 Payakumbuh 2002 – 1996 : SD Negeri 01 Pangkalan Kt. Baru

RIWAYAT ORGANISASI

(84)

2011 – 2012 : Anggota Bidang Kewirausahaan UKMI Ad-Dakwah USU.

PENGALAMAN KURSUS/PELATIHAN/SEMINAR

2009 : PALADKES BKM Al-Khuwarizmi 2009 : Pelatihan Dasar Organisai IMILKOM. 2009 : TRICK UKMI Alkhuwarizmi

2011 : Seminar Nasional Bidang Komputer. Tema: “Teknologi Cloud Computing dalam Menghadapi Persaingan Global”

2012 : Workshop Financial Recovery

KEAHLIAN

Bahasa : Indonesia, Inggris Olahraga : Futsal, driving Kesenian : Menggambar

Gambar

Gambar Visual C# 2010
Gambar 3.2 Flowchart pencarian kartu tertinggi dengan Greedy
Gambar 3.3 Flowchart pencarian kartu dengan Brute Force
Gambar 3.4 Use Case Dagram Sistem Pencarian Kartu Tertinggi
+7

Referensi

Dokumen terkait

Permasalahan pada penelitian ini, bukan hanya sebatas pencarian rute terdekat dengan dua buah algoritma Brute Force dan A*, tetapi juga dengan membandingkan jarak dan hasil

Untuk memecahkan masalah graf maka digunakan algoritma, dalam hal ini algoritma A*, dan algoritma Brute Force digunakan untuk memecahkan masalah pencarian rute

Hasil penelitian ini menunjukkan bahwa pada kriteria running time, algoritma Brute Force lebih cepat dibandingkan algoritma Boyer-Moore dengan total running time algoritma Brute

Dari gambar di atas tampak perbedaan jelas antara algoritma brute force dengan Knutt-Morris-Pratt dalam proses pencarian string, yaitu algoritma Knutt-Morris- Pratt

Algoritma greedy untuk menurunkan kartu Jika seorang pemain mempunyai katu tertinggi pada bunga tersebut, maka pemain tersebut mengeluarkan kartu tertinggi tersebut,

Pada penelitian ini penulis mengkombinasikan algoritma brute force dan stemming pada sistem pencarian masahdar, untuk memudahkan masyarakat dalam mencari kata

Algoritma Boyer Moore dan Algoritma Brute Force merupakan bagian dari algoritma String Matching yang memiliki cara kerja berbeda, sehingga jika diterapkan dalam pencarian

kombinasi yang lebih kecil. 6) Jika tidak ditemukan kombinasi, maka kartu tersebut dianggap one pair atau tidak diikut sertakan dalam pencarian berikutnya. 7) Kartu yang sudah