BAB V HASIL DAN PEMBAHASAN
5.1. Hasil
Pembahasan mengenai hasil mencakup interface program, algoritma dan spesifikasi hardware dan software.
5.1.1 Interface Program
Untuk menjalankan aplikasi yang dibuat, maka dapat mengklik file ‟Oil Company Problem.exe‟ yang terdapat pada folder bin >> debug, sehingga sistem akan menampilkan form Utama yang merupakan form awal yang akan ditampilkan pada saat menjalankan aplikasi. Tampilan form Utama dapat dilihat pada gambar 5.1 berikut:
Pada form Utama terdapat beberapa link yang dapat diakses, yaitu:
1. Link ‟Permainan‟, yang berfungsi untuk menampilkan form Permainan yang digunakan untuk bermain Oil Company Problem.
2. Link ‟Daftar Nilai Tertinggi‟, yang berfungsi untuk menampilkan sepuluh daftar nilai tertinggi yang diperoleh pemain.
3. Link ‟Mengenai‟, yang berfungsi untuk menampilkan data pribadi dari pembuat perangkat lunak.
4. Link ‟Keluar‟, yang berfungsi untuk menutup perangkat lunak.
5. Link ‟Nama Pemain‟, yang berfungsi untuk melakukan penambahan dan pemilihan user yang akan digunakan dalam permainan.
Untuk bermain Oil Company Problem, maka langkah pertama yang harus dilakukan adalah memilih nama user yang akan digunakan dalam permainan, yaitu dengan mengklik link ‟Nama Pemain‟, sehingga sistem akan menampilkan
form User seperti terlihat pada gambar 5.2 berikut:
Gambar 5.2 Form User
Pemakai dapat menambah data nama user baru dengan mengklik tombol ‟Tambah‟ sehingga sistem akan menampilkan input box pada gambar 5.3 berikut:
Gambar 5.3 Input Box Tambah User
Pemakai dapat mengisi data nama user dan mengklik tombol ‟OK‟ untuk menyimpan data nama user yang dimasukkan ke dalam database. Untuk membatalkan proses pengisian data user, maka pemakai dapat mengklik tombol ‟Cancel‟.
Setelah melakukan pengisian data user, maka pemakai dapat bermain Oil
Company Problem. Jika ada nama pemain yang ingin dihapus maka pemakai
dapat mengklik tombol ‟Hapus‟. Dengan mengklik link ‟Permainan‟, sistem akan menampilkan form Permainan seperti terlihat pada gambar 5.4 berikut:
Permainan akan dimulai dari level 1 dan waktu yang diberikan hanya 300 detik saja. Tidak ada penambahan waktu permainan jika memasuki level berikutnya, permainan akan berakhir jika waktu yang diberikan telah habis. Nilai dan level yang diperoleh pemain akan disimpan ke dalam database Microsoft Access 2007 pada saat pemakai keluar dari permainan.
Daftar nilai tertinggi ini dapat dilihat pada form High Score yang dapat ditampilkan dengan mengklik link ‟Daftar Nilai Tertinggi‟ yang terdapat pada
form Utama, sehingga sistem akan menampilkan form Daftar Nilai Tertinggi
seperti yang terlihat pada gambar 5.5 berikut:
Gambar 5.5 Form Daftar Nilai Tertinggi
Terakhir, apabila pemakai ingin menampilkan data pribadi dari pembuat perangkat lunak, maka pemakai dapat mengklik link ‟Mengenai‟ sehingga sistem akan menampilkan form Mengenai seperti yang terlihat pada gambar 5.6 berikut:
Gambar 5.6 Form Mengenai
5.1.2 Algoritma
Algoritma yang digunakan untuk membangun perangkat lunak pemahaman secara visualisasi teorema Medians and Order Statistics dengan studi kasus Oil Company Problem ini dapat dibagi menjadi beberapa bagian, yaitu: 1. Algoritma Median.
Algoritma ini digunakan untuk menghitung nilai median dengan menggunakan bantuan algoritma divide-and-conquer. Algoritma ini memerlukan beberapa buah input yaitu:
a. Parameter numerik pnN yang merupakan jumlah data. b. Parameter array pnA yang merupakan kumpulan nilai data.
Algoritma ini akan menghasilkan sebuah nilai real yang merupakan nilai median dari sekumpulan nilai data tersebut. Algoritma Median adalah sebagai berikut:
a. Hitung nilai nM = (pnN + 1) div 2.
b. Hitung nilai Median dengan menggunakan bantuan fungsi Randomized_Select(pnA, pnP, pnR, pnI) seperti berikut:
Median = (Randomized_Select(pnA, 1, pnN, nM) + Randomized_Select(pnA, 1, pnN, nM + 1)) / 2
2. Algoritma Randomized-Select.
Algoritma ini digunakan untuk menghitung nilai pada posisi ke-i dari suatu deretan bilangan dengan menerapkan bilangan acak dalam proses kerja algoritmanya. Algoritma ini memerlukan beberapa buah input yaitu:
a. Parameter array pnA yang merupakan kumpulan nilai data. b. Parameter numerik pnP yang merupakan posisi awal. c. Paramater numerik pnR yang merupakan posisi akhir.
d. Parameter numerik pnI yang merupakan posisi dari nilai yang akan dipilih. Algoritma ini akan menghasilkan sebuah nilai bertipe data bilangan bulat positif. Algoritma dari fungsi rekursif Randomized-Select adalah sebagai berikut:
a. Jika pnP = pnR maka nHasil = pnA(pnP).
b. Hitung nilai Q dengan menggunakan bantuan fungsi Randomized_Partition(pnA, pnP, pnR) seperti berikut:
nQ = Randomized_Partition(pnA, pnP, pnR) c. Hitung nilai nK = nQ – pnP + 1.
d. Jika pnI = nK maka set nilai nHasil = pnA(nQ).
e. Jika tidak, jika pnI < nK maka set nilai nHasil = Randomized_Select(pnA, pnP, nQ – 1, pnI). {rekursif}
f. Jika tidak, maka set nilai nHasil = Randomized_Select(pnA, nQ + 1, pnR, pnI – nK). {rekursif}
g. Kembalikan nilai nHasil. 3. Algoritma Randomized-Partition.
Algoritma ini digunakan untuk menghitung nilai dari fungsi partisi dengan menggunakan bantuan bilangan acak dalam proses kerja algoritmanya. Algoritma ini memerlukan beberapa buah input yaitu:
a. Parameter array pnA yang merupakan kumpulan nilai data. b. Parameter numerik pnP yang merupakan posisi awal. c. Paramater numerik pnR yang merupakan posisi akhir.
Algoritma ini akan menghasilkan sebuah nilai bertipe data bilangan bulat positif. Algoritma dari fungsi Randomized-Partition adalah sebagai berikut: a. Ambil nilai acak nI antara pnP sampai pnR.
b. Set nilai nTemp = pnA(pnP). c. Set nilai pnA(pnP) = pnA(nI). d. Set nilai pnA(nI) = nTemp.
e. Kembalikan nilai Partition(pnA, pnP, pnR). 4. Algoritma Partition.
Algoritma ini digunakan untuk menghitung nilai dari fungsi partisi yaitu posisi pemecahan deretan bilangan menjadi dua bagian. Algoritma ini memerlukan beberapa buah input yaitu:
a. Parameter array pnA yang merupakan kumpulan nilai data. b. Parameter numerik pnP yang merupakan posisi awal. c. Paramater numerik pnR yang merupakan posisi akhir.
Algoritma ini akan menghasilkan sebuah nilai bertipe data bilangan bulat positif. Algoritma dari fungsi Partition adalah sebagai berikut:
a. Set nilai nX = pnA(pnP). b. Set nilai nI = pnP – 1. c. Set nilai nJ = pnR + 1.
d. Selama (nI < nJ) lakukan proses berikut:
1) Ulangi proses berikut hingga pnA(nJ) nX, maka set nilai nJ = nJ – 1.
2) Ulangi proses berikut hingga pnA(nI) nX, maka set nilai nI = nI + 1.
3) Jika nI < nJ maka:
a) Set nilai nTemp = pnA(nI). b) Set nilai pnA(nI) = pnA(nJ). c) Set nilai pnA(nJ) = nTemp. 4) Jika tidak, maka kembalikan nilai nJ. 5. Algoritma Randomized-QuickSort.
Algoritma ini digunakan untuk mengurutkan deretan bilangan dengan menerapkan konsep algoritma divide-and-conquer. Algoritma ini memerlukan beberapa buah input yaitu:
a. Parameter array pnA yang merupakan kumpulan nilai data. b. Parameter numerik pnP yang merupakan posisi awal array.
c. Paramater numerik pnR yang merupakan posisi akhir array.
Algoritma ini akan menghasilkan sebuah nilai bertipe data bilangan bulat positif. Algoritma dari prosedur rekursif Randomized-QuickSort adalah sebagai berikut:
Jika pnP < pnR maka:
1) Set nilai nQ = Randomized_Partition(pnA, pnP, pnR). 2) Panggil Randomized_QuickSort(pnA, pnP, nQ). {rekursif} 3) Panggil Randomized_QuickSort(pnA, nQ + 1, pnR). {rekursif}
5.1.3 Spesifikasi Hardware dan Software
Spesifikasi perangkat keras yang direkomendasikan untuk menjalankan perangkat lunak ini adalah sebagai berikut :
1. Prosesor Core 2 Duo 2.1 GHz.
2. Hard disk dengan minimal free space 500 MB.
3. Memori sebesar 256 MB.
4. Monitor SVGA dengan resolusi 1024 x 768. 5. VGA Card 64 MB.
6. Keyboard dan Mouse.
Adapun perangkat lunak (software) yang digunakan untuk menjalankan aplikasi ini adalah sistem operasi Microsoft Windows XP.