Anda di halaman 1dari 84

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
2014

Universitas Sumatera Utara


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

2014

Universitas Sumatera Utara


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

Anton Gumala Putra


091401018

Universitas Sumatera Utara


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.

6. Bapak M. Andri Budiman, ST,M.Comp.Sc,MEM sebagai Pembanding II dan


sekaligus sebagai Dosen di Program Studi S1 Ilmu Komputer Fasilkom-TI
USU.

Universitas Sumatera Utara


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.

Sekali lagi penulis mengucapkan terima kasih kepada semua pihak yang
membantu dalam penyelesaian skripsi ini yang tidak dapat disebutkan satu persatu,
terima kasih atas ide, saran dan motivasi yang diberikan. Semoga Allah
Subhanahuwata’ala memberikan limpahan karunia kepada semua pihak yang telah

Universitas Sumatera Utara


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,
Anton Gumala Putra

Universitas Sumatera Utara


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.

Kata Kunci : Greedy, Brute Force, Selection Sort, Big Theta.

Universitas Sumatera Utara


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

Keywords : Greedy, Brute Force, Selection Sort, Big Theta.

Universitas Sumatera Utara


DAFTAR ISI

Halaman

Persetujuan ii
Pernyataan iii
Penghargaan iv
Abstrak vi
Abstract vii
Daftar Isi viii
Daftar Tabel x
Daftar Gambar xi

Bab 1 Pendahuluan
1.1 Latar Belakang 1
1.2 Rumusan Masalah 2
1.3 Batasan Masalah 2
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
3.2.1 Flowchart Gambaran Umum Sistem 16

Universitas Sumatera Utara


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.2 Tampilan Inputan Kartu 30
4.4.2.1 Ascending 30
4.4.2.2 Descending 31
4.4.2.3 Random 31

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


4.2.1.2.1 Ascending 34
4.2.1.2.2 Descending 34
4.2.1.2.3 Random 35

4.3 Pengujian Sistem 35


4.3.1 Pengujian Pencarian Kartu Tertinggi Greedy 36
4.3.1.1 Ascending 36

Universitas Sumatera Utara


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

LAMPIRAN A: Listing Program A-1

Universitas Sumatera Utara


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
4.18 Waktu Pencarian Brute Force Secara Random 53

Universitas Sumatera Utara


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
4.14 Kasus Terbaik Greedy 45

Universitas Sumatera Utara


4.15 Kasus Terburuk Greedy 45
4.16 Kasus Terbaik Brute Force 53
4.17 Kasus Terburuk Brute Force 54

Universitas Sumatera Utara


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.

Kata Kunci : Greedy, Brute Force, Selection Sort, Big Theta.

Universitas Sumatera Utara


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

Keywords : Greedy, Brute Force, Selection Sort, Big Theta.

Universitas Sumatera Utara


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).
Berdasarkan hal tersebut, penulis tertarik untuk mencoba membandingkan
kartu remi dengan 2 algoritma. Dalam penelitian ini, penulis mencoba
menggunanakan algoritma pencarian Greedy dan Brute Force dalam pencarian kartu
tertinggi. Algoritma Greedy adalah algoritma yang mencari solusi optimum.
Sedangkan Brute Force adalah algoritma yang lempang (straight forward) dan
langsung pada pernyataan masalah tanpa mempertimbangkan konsekuensi diakhir.

Universitas Sumatera Utara


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

Adapun manfaat penelitian ini adalah mengetahui perbandingan kompleksitas


algoritma Greedy dan Brute Force dari pencarian kartu tertinggi.

Universitas Sumatera Utara


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.
Pada tahap ini didapat kesimpulan akhir pengujian sistem sehingga dilakukan
penyusunan laporan.

Universitas Sumatera Utara


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


Bab ini menjelaskan mengenai hasil penelitian yang berisi kesimpulan dan saran yang
nantinya dapat dikembangkan dipelitian lain yang berkaitan dengan masalah ini.

Universitas Sumatera Utara


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

Universitas Sumatera Utara


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
Format Algoritma Pseudocode
Matematika

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.

Universitas Sumatera Utara


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

Universitas Sumatera Utara


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 >

Universitas Sumatera Utara


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

Universitas Sumatera Utara


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

Universitas Sumatera Utara


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.

Universitas Sumatera Utara


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.

Universitas Sumatera Utara


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

Universitas Sumatera Utara


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.

Untuk mengidentifikasi masalah tersebut digunakan diagaram ishikawa (fishbone


diagram). Diagram ishikawa adalah sebuah alat grafis yang digunakan untuk
mengeksplorasi dan menampilkan pendapat tentang komponen inti suatu kondisi
dalam organisasi. Diagram ini juga dapat menyusuri sumber-sumber penyebab suatu
masalah. Identifikasi masalah menggunakan diagram ini akan membantu menganalisis
kebutuhan sistem yang akan dikembangkan. Berikut adalah diagram Ishikawa analisis
masalah pencarian kartu tertinggi pada gambar 3.1.

Universitas Sumatera Utara


User Metode
Sulitnya menentu
urutan kartu kan Greedy &
(ascending,descending,r Brute Force
andom)
Masalah dalam
Gambar Visual C# 2 010 Pencarian kartu
Kartu tertinggi dalam
kartu remi

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.

Universitas Sumatera Utara


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

Berdasarkan penjelasan sebelumnya maka dapat digambarkan flowchart algoritma


Greedy seperti pada gambar 3.2.

Universitas Sumatera Utara


Start

52 Kartu

Input 7 kartu

Sorting nilai & corak


dengan selection sort

Urutan kartu berdasarkan


nilai & corak tertinggi

Hasil Kartu
tertinggi

Sisa kartu Generate Sebanyak


=7 Ya
7 - Sisa Kartu

Tidak

End

Gambar 3.2 Flowchart pencarian kartu tertinggi dengan Greedy

Universitas Sumatera Utara


3.2.1.2 Flowchart Algoritm Brute Force

Berdasarkan penjelasan sebelumnya maka dapat digambarkan flowchart algoritma


Brute Force seperti pada gambar 3.3.

Start

52 Kartu

Input 7 kartu

Brute Force

Hasil Kartu
tertinggi

Ya
Sisa kartu Generate Sebanyak
=7 7 - Sisa Kartu

Tidak

End

Gambar 3.3 Flowchart pencarian kartu dengan Brute Force

Universitas Sumatera Utara


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.

Analisis Algoritma Greedy & Brute Force


Dalam Pencarian Kartu Tertinggi Pada Kartu
Remi

Pengurutan 52 Kartu
(ascending, descending,
random)

Pencarian Kartu
Tertinggi Dengan
Greedy & Brute Force
User

Gambar 3.4 Use Case Dagram Sistem Pencarian Kartu Tertinggi

Universitas Sumatera Utara


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 -

3.2.2.2 Activity Diagram

Universitas Sumatera Utara


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

User Sistem

Input urutan kartu (ascending, Sorting kartu (ascending,


descending, random) descending, random)

Input kartu Menampilkan 7 kartu pertama


(Greedy & Brute Force)

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.
3.2.3.1 Pseudocode Algoritma Greedy

1. GreedyCard(a,6) {

2. While (deck >= 0) {


3. For i = 0 to 6 {
4. Max = i
5. For j = i+1 to 6
{
6. If a[j] > a[Max] {
7. Max = j
8. If (max! = i) {
9. j = j+1
10. k = a[i]
11. a[i] = a[Max]
12. a[Max] = k
}
}
}
}

}
13. Return a
}

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
10. Permisalan nilai k = a[i]

Universitas Sumatera Utara


11. Permisalan nilai a[i] = a[Max]
12. Swap nilai.
13. Kembali ke nilai awal a.

3.2.3.2 Pseudocode Algoritma Brute Force

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
}
}

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.

Universitas Sumatera Utara


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 random Greedy

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

Gambar 3.7 Pengurutan secara selection sort

3. Melakukan pencarian kartu tertinggi (paling awal)

Gambar 3.8 Pemilihan kartu tertinggi

Universitas Sumatera Utara


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 random Brute 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.

Pada pada perancangan sistem pencarian kartu tertinggi ini dibuat dalam 1 halaman
yang terdiri dari beberapa fungsi button yaitu jenis urutan kartu (ascending,
descending, random), input, proses, dan hapus. Berikut adalah rancangan sistem
pencarian kartu tertinggi secara umum :

Universitas Sumatera Utara


6 Greedy Brute Force - x
Kartu Remi
(52) 1
7

2 Sort Card By : Proses Brute High Card


Proses High Card
1. Ascending Force
Greedy
2. Descending
3. Random
3 Put

4 Proses
5
reset

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.

Universitas Sumatera Utara


5. Button reset
Fungsi menghapus hasil pencarian.

6. Kolom Algoritma
Kolom algoritma mencari kartu tertinggi.

7. Picture Box 2
Fungsi untuk memuat gambar kartu proses seleksi oleh kedua algoritma.

Universitas Sumatera Utara


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

4.4 Tampilan Antarmuka (Interface)

Universitas Sumatera Utara


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.

4. Button “put”

Universitas Sumatera Utara


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 :

1. Ascending (2 wajik, 2 keriting,…, As sekop)

Universitas Sumatera Utara


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

Gambar 4.5 Inputan Random

Universitas Sumatera Utara


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 :
1. Tampilan proses pencarian kartu tertinggi ascending Greedy
2. Tampilan hasil pencarian kartu tertinggi ascending Greedy

Universitas Sumatera Utara


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

Universitas Sumatera Utara


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 :
1. Tampilan proses pencarian kartu tertinggi ascending Brute Force.
2. Tampilan hasil pencarian kartu tertinggi ascending Brute Force

Universitas Sumatera Utara


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

Gambar 4.11 Pencarian Kartu Tertinggi Random Dengan Brute Force

Universitas Sumatera Utara


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

Urutan kartu ascending mulai dari terendah sampai tertinggi (2 wajik, 2 keriting,…,
As sekop). Sebelum melakukan pengujian pilih dahulu button pilihan urutan kartu
ascending pada aplikasi seperti pada gambar berikut.

Universitas Sumatera Utara


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.

Gambar 4.13 Inputan 7 kartu pertama sistem

Universitas Sumatera Utara


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


Inputan 7 Kartu Swap Inputan 7 Kartu Swap
kartu ke- tertinggi kartu ke- Tertinggi
1 3 hati 6 24 9 keriting -
2 3 sekop 5 25 9 hati -
3 4 wajik 4 26 9 sekop -
4 4 keriting 3 27 10 wajik -
5 4 hati 2 28 10 keriting -
6 4 sekop 1 29 10 hati -
7 5 wajik - 30 10 sekop -
8 5 keriting - 31 J wajik -
9 5 hati - 32 J keriting -
10 5 sekop - 33 J hati -
11 6 wajik - 34 J sekop -
12 6 keriting - 35 Q wajik -
13 6 hati - 36 Q keriting -
14 6 sekop - 37 Q hati -
15 7 wajik - 38 Q sekop -
16 7 keriting - 39 K wajik -
17 7 hati - 40 K keriting -
18 7 sekop - 41 K hati -
19 8 wajik - 42 K sekop -
20 8 keriting - 43 As wajik -
21 8 hati - 44 As keriting -

Universitas Sumatera Utara


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() c1 1 c1

Universitas Sumatera Utara


2: int k = 0; c2 1 c2
3: c2 1 C2
deck = 52;
4: c3 1 C3
int[] sort = new int[7];
5: c 4 1 C4
6: private int[] SelectionSort(int[] a) { c2 1 C2
7: c5 7 C5
int k, i;
8: c2 1 C2
9: for (i = 0; i < 7; i++) { 7
c6 7c6
10: int max = i; c7 7 7c7
c8 7 7c8
for (int j = i + 1; j < 7; j++) {
11: c9 7 7c9
12: if (a[j] > a[max]) 7
c10 7c10
13: max = j; c11 7
7c11
14: c12 7
if (max != i) { 7c12
15: c13 1
c13
16: k = a[i]; 1
c14 C14
17: a[i] = a[max]; c15 7
7c15
18: 7
a[max] = k; c16 7c16
} 7
c17 7c17
19: } 1
return a; c4 C4
20: } 7
c 7c 18
18
21: 7
while (deck >= 0) { c19 7c19
22: 7
c20 7c20
23: for (int idx = 0; idx < 7; idx++) 1
{ c21 c21
24: sort[idx] = Convert.ToInt32(myCard[k, 1
c22 c22
idx].Tag); 1
} c22 c22
25: 1
c23 c23
26: hasil = SelectionSort(sort); 1
c24 c24
27: for (int l = 0; l < sort.Length; l++)
1
C25 c25
28: {
myCard[k, l].Load("../../resources/" +
sort[l] + ".jpg"); 1
C22 C22
29: 7
myCard[k, l].Tag = sort[l].ToString(); C26 7c26
30: } 7
c27 7c27
31: HighCard[k].Image = myCard[k, 0].Image; 7
c28 7c28
32: deck‐‐;
33: 1
k++; c29 c29

Universitas Sumatera Utara


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

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

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

angka++;

for (int l = 1; l < 7; l++)


{
myCard[k, l].Image = myCard[k ‐ 1,
l].Image;

myCard[k, l].Tag = myCard[k ‐ 1, l].Tag;


}

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

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.2 Descending

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


Berikut hasil pencarian kartu tertinggi kartu remi secara descending dengan algoritma
Greedy :

Universitas Sumatera Utara


Tabel 4.4 Hasil Kartu Tertinggi Greedy Secara Descending
Inputan 7 Kartu Swap Inputan 7 Kartu Swap
kartu ke- tertinggi kartu ke- Tertinggi
1 As sekop - 24 9 wajik -
2 As hati - 25 8 sekop -
3 As keriting - 26 8 hati -
4 As wajik - 27 8 keriting -
5 K sekop - 28 8 wajik -
6 K hati - 29 7 sekop -
7 K keriting - 30 7 hati -
8 K wajik - 31 7 keriting -
9 Q sekop - 32 7 wajik -
10 Q hati - 33 6 sekop -
11 Q keriting - 34 6 hati -
12 Q wajik - 35 6 keriting -
13 J sekop - 36 6 wajik -
14 J hati - 37 5 sekop -
15 J keriting - 38 5 hati -
16 J wajik - 39 5 keriting -
17 10 sekop - 40 5 wajik -
18 10 hati - 41 4 sekop -
19 10 keriting - 42 4 hati -
20 10 wajik - 43 4 keriting -
21 9 sekop - 44 4 wajik -
22 9 hati - 45 3 sekop -
23 9 keriting - 46 3 hati -
Sisa Akhir Kartu 2 wajik, 2 keriting, 2 hati, 2
sekop, 3 wajik, 3 keriting

Universitas Sumatera Utara


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

Berikut hasil pengujian pencarian kartu tertinggi secara random sebanyak 3 kali
percobaan :

Universitas Sumatera Utara


A. Percobaan 1

Tabel 4.6 Hasil Pencarian Kartu Tertinggi ke-1 Greedy


No
Kartu tertinggi Waktu
(s)
1 As keriting 13 9 wajik 25 10 sekop 37 4 keriting 1.138
2 J hati 14 As wajik 26 4 hati 38 J wajik
3 6 hati 15 K hati 27 9 hati 39 4 wajik
4 J sekop 16 K wajik 28 Q wajik 40 3 sekop
5 As sekop 17 5 keriting 29 8 wajik 41 J keriting
6 7 wajik 18 4 sekop 30 6 keriting 42 Q keriting
7 10 hati 19 7 hati 31 8 keriting 43 3 hati
8 K keriting 20 8 keriting 32 Q hati 44 6 sekop
9 5 sekop 21 7 keriting 33 10 keriting 45 8 hati
10 5 hati 22 9 keriting 34 7 sekop 46 8 sekop
11 6 wajik 23 K sekop 35 8 sekop
12 As hati 24 10 wajik 36 5 wajik

B. Percobaan 2

Tabel 4.7 Hasil Pencarian Kartu Tertinggi ke-2 Greedy


No
Kartu tertinggi Waktu
(s)
1 Q wajik 13 6 keriting 25 4 sekop 37 8 sekop 1.092
2 J keriting 14 8 wajik 26 K keriting 38 3 sekop
3 K sekop 15 7 keriting 27 4 hati 39 J hati
4 As hati 16 7 sekop 28 10 sekop 40 3 hati
5 K wajik 17 K hati 29 4 keriting 41 10
6 10 keriting 18 Q sekop 30 As keriting 42 Hati
7 9 wajik 19 9 sekop 31 9 hati 43 7 hati
8 J wajik 20 8 keriting 32 5 wajik 44 Q hati
9 8 hati 21 6 hati 33 5 keriting 45 5 hati
10 7 sekop 22 5 sekop 34 Q keriting 46 As wajik
11 6 sekop 23 J sekop 35 As sekop
12 6 wajik 24 4 sekop 36 4 wajik

Universitas Sumatera Utara


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)
1 1.138
2 1.092
3 1.129
Rata-rata 1.119

Universitas Sumatera Utara


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 :

Gambar 4.15 Kasus terburuk Greedy

Universitas Sumatera Utara


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


Inputan 7 Kartu Swap Inputan 7 Kartu Swap
kartu ke- Tertinggi kartu ke- Tertinggi
1 3 hati 6 24 9 keriting -
2 3 sekop 5 25 9 hati -
3 4 wajik 4 26 9 sekop -
4 4 keriting 3 27 10 wajik -
5 4 hati 2 28 10 keriting -
6 4 sekop 1 29 10 hati -
7 5 wajik - 30 10 sekop -
8 5 keriting - 31 J wajik -
9 5 hati - 32 J keriting -
10 5 sekop - 33 J hati -
11 6 wajik - 34 J sekop -
12 6 keriting - 35 Q wajik -
13 6 hati - 36 Q keriting -
14 6 sekop - 37 Q hati -
15 7 wajik - 38 Q sekop -
16 7 keriting - 39 K wajik -
17 7 hati - 40 K keriting -

Universitas Sumatera Utara


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 (ɵ)

Berikut adalah perhitunggan running time pada algoritma Brute Force pada tabel 4.12.

Universitas Sumatera Utara


Tabel 4.12 Perhitungan Big Theta Brute Force
Step Kode C # C*#
1: private void bruteForce() c1 1 c1
{
2: c2 1 c2
angka = 7;
3: c2 1 c2
int k = 0;
4: c2 1 c2
5: deck = 52; c3 1 c3
6: c4 1 c4
int[] card = new int[7];
7: c2 1 c2
8: c5 6 6c5
private int[] swap(int[] a) {
9: c6 6 6c6
10: int i,temp; 6
c7 6c7
11: for (i = 0; i < 6; i++) { c8 6 6c8
12: c9 6 6c9
if (a[i] < a[i + 1]) {
13: c10 1 C10
temp = a[i];

14: a[i] = a[i + 1]; c11 1 c11


15: c12 7 7c12
a[i + 1] = temp;
16: } c13 7 7c13
}
return a;
17: } c4 1 c4
18: c14 7
7c14
19: while (deck >= 0) { c 7
15 7c 15
20: for (int idx = 0; idx < 7; idx++) 7
{ c16 7c16
card[idx] = Convert.ToInt32(bruteCard[k,
idx].Tag);
21: c17 1
} c17
22: c18 1
c18
23: int[] max = swap(card); 1
c18 c18
24: for (int l = 0; l < card.Length; l++) c19 7
7c19
25: { 7
bruteCard[k, l].Load("../../resources/" + c20 7c20
26: card[l] + ".jpg"); c21 7
7c21
27:
bruteCard[k, l].Tag = card[l].ToString();
28: } 1
c22 C22
29: 1
HighCard2[k].Image = bruteCard[k, max].Image; c23 c23
30: 1
c18 c18
deck‐‐;

Universitas Sumatera Utara


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

Berikut hasil pencarian kartu tertinggi kartu remi secara descending dengan algoritma
Brute Force pada tabel 4.13.

Universitas Sumatera Utara


Tabel 4.13 Hasil Kartu Tertinggi Brute Force Secara Descending
Inputan 7 Kartu Swap Inputan 7 Kartu Swap
kartu ke- tertinggi kartu ke- Tertinggi
1 As sekop - 24 9 wajik 6
2 As hati 1 25 8 sekop 6
3 As keriting 2 26 8 hati 6
4 As wajik 3 27 8 keriting 6
5 K sekop 4 28 8 wajik 6
6 K hati 5 29 7 sekop 6
7 K keriting 6 30 7 hati 6
8 K wajik 6 31 7 keriting 6
9 Q sekop 6 32 7 wajik 6
10 Q hati 6 33 6 sekop 6
11 Q keriting 6 34 6 hati 6
12 Q wajik 6 35 6 keriting 6
13 J sekop 6 36 6 wajik 6
14 J hati 6 37 5 sekop 6
15 J keriting 6 38 5 hati 6
16 J wajik 6 39 5 keriting 6
17 10 sekop 6 40 5 wajik 6
18 10 hati 6 41 4 sekop 6
19 10 keriting 6 42 4 hati 6
20 10 wajik 6 43 4 keriting 6
21 9 sekop 6 44 4 wajik 6
22 9 hati 6 45 3 sekop 6
23 9 keriting 6 46 3 hati 6
Sisa Kartu Akhir 2 wajik, 2 keriting, 2 hati, 2
sekop, 3 wajik, 3 keriting

Universitas Sumatera Utara


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

Berikut hasil pencarian kartu tertinggi kartu remi secara random dengan algoritma
Brute Force dengan 3 percobaan :

Universitas Sumatera Utara


A. Percobaan 1

Tabel 4.15 Hasil Kartu Tertinggi ke-1 Brute Force


No
Kartu tertinggi Waktu
(s)
1 As keriting 13 9 wajik 25 10 sekop 37 4 keriting 1.098
2 J hati 14 As wajik 26 4 hati 38 J wajik
3 6 hati 15 K hati 27 9 hati 39 4 wajik
4 J sekop 16 K wajik 28 Q wajik 40 3 sekop
5 As sekop 17 5 keriting 29 8 wajik 41 J keriting
6 7 wajik 18 4 sekop 30 6 keriting 42 Q keriting
7 10 hati 19 7 hati 31 8 keriting 43 3 hati
8 K keriting 20 8 keriting 32 Q hati 44 6 sekop
9 5 sekop 21 7 keriting 33 10 keriting 45 8 hati
10 5 hati 22 9 keriting 34 7 sekop 46 8 sekop
11 6 wajik 23 K sekop 35 8 sekop
12 As hati 24 10 wajik 36 5 wajik

B. Percobaan 2

Tabel 4.16 Hasil Pencarian Kartu Tertinggi ke-2 Brute Force


No
Kartu tertinggi Waktu
(s)
1 Q wajik 13 6 keriting 25 4 sekop 37 8 sekop 1.072
2 J keriting 14 8 wajik 26 K keriting 38 3 sekop
3 K sekop 15 7 keriting 27 4 hati 39 J hati
4 As hati 16 7 sekop 28 10 sekop 40 3 hati
5 K wajik 17 K hati 29 4 keriting 41 10
6 10 keriting 18 Q sekop 30 As keriting 42 Hati
7 9 wajik 19 9 sekop 31 9 hati 43 7 hati
8 J wajik 20 8 keriting 32 5 wajik 44 Q hati
9 8 hati 21 6 hati 33 5 keriting 45 5 hati
10 7 sekop 22 5 sekop 34 Q keriting 46 As wajik
11 6 sekop 23 J sekop 35 As sekop
12 6 wajik 24 4 sekop 36 4 wajik

Universitas Sumatera Utara


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

Universitas Sumatera Utara


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.

Gambar 4.17. Kasus Terburuk Brute Force

Universitas Sumatera Utara


BAB 5

KESIMPULAN DAN SARAN

5.1 Kesimpulan

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.

2. Sisa akhir kartu pencarian kartu tertinggi secara ascending dan descending dengan
kedua algoritma adalah sama (2 wajik, 2 keriting, 2 hati, 2 sekop, 3 wajik, 3
keriting).

Universitas Sumatera Utara


5.2 Saran

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.
4. Untuk melihat perbandingan algoritma pada objek kartu remi, ada banyak algoritma
pencarian lain yang bisa dibandingkan dengan kasus berbeda.

Universitas Sumatera Utara


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)
[11] Wahyudi, Bagus. 2006. Perancangan Program Aplikasi Optimasi
Pemotongan Baja Dengan Metode First Fit Decreasing Pada PT. Bintang
Mas Cemerlang. Thesis. Binus. ac.id, 8 Januari 2014 (diakses 8 Januari
2014).

Universitas Sumatera Utara


LAMPIRAN A : LISTING PROGRAM

namespace Card1
{
public partial class Form1 : Form
{
Random rnd = new Random();
int angka = 0, i, j, z=0;
int[] urut = new int[52];
int deck;
PictureBox[,] myCard = new PictureBox[46,7];
PictureBox[] HighCard = new PictureBox[46];
PictureBox[,] bruteCard = new PictureBox[46, 7];
PictureBox[] HighCard2 = new PictureBox[46];
string text = "";
public Form1()
{
InitializeComponent();
}

private int[] SelectionSort(int[] a) {


int k, i;

for (i = 0; i < 7; i++) {


int max = i;
for (int j = i + 1; j < 7; j++)
if (a[j] > a[max])
max = j;
if (max != i) {
k = a[i];
a[i] = a[max];
a[max] = k;
}
}
return a;
}

private int[] swap(int[] a){


int i,temp;

for (i = 6; i > 0 ; i--) {


if (a[i] > a[i - 1]) {
temp = a[i];
a[i] = a[i - 1];
a[i - 1] = temp;
}
}
return a;
}

private void button3_Click(object sender, EventArgs e)


{

Universitas Sumatera Utara


timer1.Start();
button3.Enabled = false;
button4.Enabled = true;
}

private void Form1_Load(object sender, EventArgs e) {

int X, Y, H, W, idx;
Y = myMaster.Location.Y;
H = myMaster.Height;
W = myMaster.Width;
idx = 0;

for (i = 0; i < 46; i++) {


X = myMaster.Location.X;
for (j = 0; j < 7; j++) {
myCard[i, j] = new PictureBox();
this.Controls.Add(myCard[i, j]);
myCard[i, j].Parent = myMaster.Parent;
myCard[i, j].BorderStyle = myMaster.BorderStyle;
myCard[i, j].Location = new System.Drawing.Point(X,
Y);
myCard[i, j].Size = new System.Drawing.Size(W, H);
myCard[i, j].SizeMode =
PictureBoxSizeMode.StretchImage;
myCard[i, j].BackColor = myMaster.BackColor;
myCard[i, j].BringToFront();
X = (X + W) + 5;
idx++;
}
Y = (Y + H) + 5;
}

int X1, Y1, H1, W1;


Y1 = HC_Master.Location.Y;
X1 = HC_Master.Location.X;
H1 = HC_Master.Height;
W1 = HC_Master.Width;
idx = 0;

for (i = 0; i < 46; i++) { HighCard[i] = new


PictureBox(); this.Controls.Add(HighCard[i]);
HighCard[i].Parent = HC_Master.Parent;
HighCard[i].BorderStyle = HC_Master.BorderStyle;
HighCard[i].Location = new System.Drawing.Point(X1, Y1);
HighCard[i].Size = new System.Drawing.Size(W1, H1);
HighCard[i].SizeMode = PictureBoxSizeMode.StretchImage;
HighCard[i].BackColor = HC_Master.BackColor;
HighCard[i].BringToFront();
//X = (X + W) + 5;
Y1 = (Y1 + H1) + 5;

Universitas Sumatera Utara


}

//Brute Force Card


int X2, Y2, H2, W2;
Y2 = bruteMaster.Location.Y;
H2 = bruteMaster.Height;
W2 = bruteMaster.Width;
idx = 0;

for (i = 0; i < 46; i++) {


X2 = bruteMaster.Location.X;
for (j = 0; j < 7; j++) {
bruteCard[i, j] = new PictureBox();
this.Controls.Add(bruteCard[i, j]);
bruteCard[i, j].Parent = bruteMaster.Parent;
bruteCard[i, j].BorderStyle = bruteMaster.BorderStyle;
bruteCard[i, j].Location = new System.Drawing.Point(X2,
Y2);
bruteCard[i, j].Size = new System.Drawing.Size(W2, H2);
bruteCard[i, j].SizeMode =
PictureBoxSizeMode.StretchImage;
bruteCard[i, j].BackColor = bruteMaster.BackColor;
bruteCard[i, j].BringToFront();
X2 = (X2 + W2) + 5;
idx++;
}
Y2 = (Y2 + H2) + 5;
}

int X3, Y3, H3, W3;


Y3 = HC_Master2.Location.Y;
X3 = HC_Master2.Location.X;
H3 = HC_Master2.Height;
W3 = HC_Master2.Width;
idx = 0;

for (i = 0; i < 46; i++) { HighCard2[i] = new


PictureBox(); this.Controls.Add(HighCard2[i]);
HighCard2[i].Parent = HC_Master2.Parent;
HighCard2[i].BorderStyle = HC_Master2.BorderStyle;
HighCard2[i].Location = new System.Drawing.Point(X3, Y3);
HighCard2[i].Size = new System.Drawing.Size(W3, H3);
HighCard2[i].SizeMode = PictureBoxSizeMode.StretchImage;
HighCard2[i].BackColor = HC_Master2.BackColor;
HighCard2[i].BringToFront();
Y3 = (Y3 + H3) + 5;
}
i = 0; j = 0;
}

private int CheckHighCard(int[] a) {

Universitas Sumatera Utara


int i, max = 0;
for (i = 0; i < 7; i++) {
for (int j = i + 1; j < 7; j++)
if (a[j] > a[max]){
max = j;
}
}
return max;
}

private void greedy() {

int k = 0;
deck = 52;
int[] sort = new int[7];

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


sort[idx] = urut[idx];
}
deck -= 7;

int[] 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();
}
HighCard[k].Image = myCard[k, 0].Image;
deck--; k++;

while (deck >= 0) {


myCard[k, 0].Load("../../resources/" + urut[angka] +
".jpg");
myCard[k, 0].Tag = urut[angka].ToString();
label1.Text = (Convert.ToInt16(label1.Text) -
1).ToString();
angka++;

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


myCard[k, l].Image = myCard[k - 1, l].Image;
myCard[k, l].Tag = myCard[k - 1, l].Tag;
}

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


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();

Universitas Sumatera Utara


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

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

private void bruteForce() {

angka = 7;
int k = 0;
deck = 52;
int[] card = new int[7];

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


card[idx] = urut[idx];
}
deck -= 7;

int[] max = swap(card);

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


bruteCard[k, l].Load("../../resources/" + card[l] +
".jpg");
bruteCard[k, l].Tag = card[l].ToString();
}
HighCard2[k].Image = bruteCard[k, max].Image;
deck--; k++;

while (deck >= 0){

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, max].Load("../../resources/" + urut[angka] +
".jpg");
bruteCard[k, max].Tag = urut[angka].ToString();
angka++;

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


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

max = swap(card);

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


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

Universitas Sumatera Utara


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

private void button4_Click(object sender, EventArgs e) {

Stopwatch time = new Stopwatch();


time.Start();
Stopwatch sw = new Stopwatch();
sw.Start();
greedy();
sw.Stop();
Stopwatch sw2 = new Stopwatch();
sw2.Start();
bruteForce();
w.Stop();
time.Stop();
label2.Text = "Time : " + sw.Elapsed;
label3.Text = "Time : " + sw2.Elapsed;
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";
angka = 0;
button4.Enabled = false;
z = 0;

for (int i = 0; i < 52; i++){


urut[i] = rnd.Next(0, 52);

for (int j = i; j > 0; j--){


if (urut[i] == urut[j - 1]){
urut[i] = rnd.Next(0, 52);
j = i + 1;
}
}
}
pictureBox1.Load("../../resources/" + urut[angka] + ".jpg");
button3.Enabled = true;
}

private void button9_Click(object sender, EventArgs e) {

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

Universitas Sumatera Utara


z = 0;

int x = 0;

for (int i = 51; i >= 0; i--) {


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

private void button7_Click(object sender, EventArgs e) {

label1.Text = "52";
button4.Enabled = false;
z = 0;
angka = 0;

for (int i = 0; i < 52; i++) {


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

private void timer1_Tick(object sender, EventArgs e) {

int i = 0;

if (z < 7) {
myCard[i, z].Load("../../resources/" + urut[angka] +
".jpg");
bruteCard[i, z].Load("../../resources/" + urut[angka] +
".jpg");
angka++;
pictureBox1.Load("../../resources/" + urut[angka] +
".jpg");
label1.Text = (Convert.ToInt16(label1.Text) -
1).ToString();
}

else
timer1.Stop();
z++;
}

private void button6_Click(object sender, EventArgs e) {

for (i = 0; i < 46; i++) {


for (j = 0; j < 7; j++) {
myCard[i, j].Image = null;
bruteCard[i, j].Image = null;
}

Universitas Sumatera Utara


}

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;
}
}

Universitas Sumatera Utara


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

2009 – 2010 : Anggota UKMI Al-Khuwarizmi


2010 – 2011 : Ketua Bidang Kewirausahaan

Universitas Sumatera Utara


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
Software : Corel Draw, Potoshop, Office, Adobe Flash

Universitas Sumatera Utara

Anda mungkin juga menyukai