SKRIPSI
SKRIPSI
Diajukan untuk melengkapai tugas akhir dan memenuhi syarat mencapai gelar
Sarjana Komputer
2014
SKRIPSI
Saya mengakui bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa
kutipan dan ringkasan yang masing-masing disebutkan sumbernya.
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.
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.
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
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.
Penulis,
Anton Gumala Putra
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 ..
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
3.2 Pemodelan 16
3.2.1 Flowchart Gambaran Umum Sistem 16
3.2.3 Pseudocode 21
3.2.3 Pseudocode Proses Algoritma Greedy 22
3.2.3 Pseudocode Proses Algoritma Brute Force 23
Daftar Pustaka 57
Halaman
Halaman
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 ..
PENDAHULUAN
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.
Adapun tujuan dari penelitian ini adalah membuat simulasi perbandingan algoritma
Greedy dan Brute Force dalam pencarian kartu tertinggi pada kartu remi.
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.
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
TINJAUAN PUSTAKA
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.
Komponen ini biasanya terdiri dari pemilihan variabel, jenis variabel, tipe variabel,
konstanta dan parameter (dalam fungsi).
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
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).
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
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 >
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))
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
T(n) = + + + ... + 1
= O( ) = Ω( ) = Θ( ).
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.
Dalam pencarian kartu tertinggi pada kartu, implementasi Greedy diletakkan pada
kartu yang diurutkan secara descending dengan selection sort. Berikut contohnya :
2. Kartu di urutkan berdasarkan nilai dan corak dari maximum ke minimum (selection
sort). Sehingga didapat kartu tertinggi paling kiri.
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 :
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.
1. Sekop
2. Hati
3. Keriting
4. Wajik
Material Machine
Kebutuhan fungsional yang harus dimiliki oleh sistem pencarian kartu tertinggi kartu
remi adalah:
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
52 Kartu
Input 7 kartu
Hasil Kartu
tertinggi
Tidak
End
Start
52 Kartu
Input 7 kartu
Brute Force
Hasil Kartu
tertinggi
Ya
Sisa kartu Generate Sebanyak
=7 7 - Sisa Kartu
Tidak
End
Pengurutan 52 Kartu
(ascending, descending,
random)
Pencarian Kartu
Tertinggi Dengan
Greedy & Brute Force
User
Untuk lebih jelas lagi berikut akan ditampilkan rincian use case pada tabel 3.1
dibawah.
User Sistem
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) {
}
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]
1. BruteForceCard(a,6) {
Keterangan :
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.
Pada Greedy, sebelum pencarian kartu tertinggi dimulai kartu diurutkan dahulu
berdasarkan nilai dan corak kartu seperti pada langkah berikut :
Pada Brute Force, pencarian kartu tertinggi langsung dicari seperti pada langkah
berikut :
1. Diambil 7 kartu pertama secara random
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.
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 :
4 Proses
5
reset
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.
6. Kolom Algoritma
Kolom algoritma mencari kartu tertinggi.
7. Picture Box 2
Fungsi untuk memuat gambar kartu proses seleksi oleh kedua algoritma.
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.
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
Spesifikasi perangkat lunak yang digunakan untuk implementasi sistem ini adalah
sebagai berikut :
1. Sistem Operasi Windows 7 Ultimate
2. Visual C# 2010
Keterangan :
2. Button “sorting”
Berfungsi mengurutkan kartu ascending, descending dan random.
4. Button “put”
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.
Urutan kartu berpengaruh terhadap proses pencarian kartu tertinggi baik ascending,
descending dan random. Berikut gambar 4.2 tampilan pemilihan urutan kartu sistem.
Berikut tampilan inputan 7 kartu awal sistem dengan Greedy dan Brute Force :
3. Random
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 :
1. Ascending
Keterangan :
1. Tampilan proses pencarian kartu tertinggi ascending Greedy
2. Tampilan hasil pencarian kartu tertinggi ascending Greedy
Keterangan :
1. Tampilan proses pencarian kartu tertinggi descending Greedy.
2. Tampilan hasil pencarian kartu tertinggi descending Greedy.
3. Random
Keterangan :
1. Tampilan proses pencarian kartu tertinggi random Greedy.
2. Tampilan hasil pencarian kartu tertinggi random Greedy.
1. Ascending
Keterangan :
1. Tampilan proses pencarian kartu tertinggi ascending Brute Force.
2. Tampilan hasil pencarian kartu tertinggi ascending Brute Force
3. Random
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(ɵ).
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.
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.
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
Berikut perhitungan running time Algoritma Greedy dalam pencarian kartu tertinggi
pada tabel 4.3.
label1.Text = (Convert.ToInt16(label1.Text) ‐
1).ToString();
angka++;
}
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.
Berikut hasil waktu eksekusi secara Greedy dengan descending dalam 3 kali
percobaan pada tabel 4.5.
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.
Berikut hasil pengujian pencarian kartu tertinggi secara random sebanyak 3 kali
percobaan :
B. Percobaan 2
4.5.1.3.2 Waktu
Berikut hasil pencarian kartu tertinggi kartu remi secara random dengan algoritma
Greedy pada tabel 4.9.
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)
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 :
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 :
4.5.2.1 Ascending
Berikut hasil pencarian kartu tertinggi kartu remi secara ascending dengan algoritma
Brute Force pada tabel 4.10.
4.5.2.1.2 Waktu
Berikut hasil waktu eksekusi secara Brute Force dengan ascending dalam 3 kali
percobaan pada tabel 4.11.
Berikut adalah perhitunggan running time pada algoritma Brute Force pada tabel 4.12.
bruteCard[k, 0].Load("../../resources/" +
urut[angka] + ".jpg");
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)
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.
Berikut hasil pencarian kartu tertinggi kartu remi secara descending dengan algoritma
Brute Force pada tabel 4.13.
Berikut hasil waktu eksekusi secara Brute Force dengan descending dalam 3 kali
percobaan pada tabel 4.14.
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)
Berikut hasil pencarian kartu tertinggi kartu remi secara random dengan algoritma
Brute Force dengan 3 percobaan :
B. Percobaan 2
Berikut hasil pencarian kartu tertinggi kartu remi secara random dengan algoritma
Brute Force pada tabel 4.18
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.
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.
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).
Adapun saran yang dapat penulis berikan untuk mengembangkan penelitian ini adalah
sebagai berikut.
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();
}
int X, Y, H, W, idx;
Y = myMaster.Location.Y;
H = myMaster.Height;
W = myMaster.Width;
idx = 0;
int k = 0;
deck = 52;
int[] sort = new int[7];
hasil = SelectionSort(sort);
angka = 7;
int k = 0;
deck = 52;
int[] card = new int[7];
max = swap(card);
label1.Text = "52";
angka = 0;
button4.Enabled = false;
z = 0;
label1.Text = "52";
angka = 0;
button4.Enabled = false;
int x = 0;
label1.Text = "52";
button4.Enabled = false;
z = 0;
angka = 0;
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++;
}
RIWAYAT PENDIDIKAN
RIWAYAT ORGANISASI
PENGALAMAN KURSUS/PELATIHAN/SEMINAR
KEAHLIAN