• Tidak ada hasil yang ditemukan

ANALISIS DAN PERANCANGAN

3.1. Analisis Sistem

Analisis sistem adalah sebuah teknik pemecahan masalah yang menguraikan sebuah sistem menjadi bagian-bagian komponen dengan tujuan mempelajari seberapa bagus bagian-bagian komponen tersebut bekerja dan berinteraksi untuk meraih tujuan mereka (Whitten et al., 2004)

Menurut Jogiyanto (2005), analisis sistem dapat didefinisikan sebagai penguraian dari suatu sistem informasi yang utuh kedalam bagian-bagian komponennya dengan maksud untuk mengidentifikasi dan mengevaluasi permasalahan, kesempatan dan hambatan yang terjadi dan kebutuhan-kebutuhan yang diharapkan sehingga dapat diusulkan perbaikannya.

Pada bab ini diterangkan mengenai analisis masalah dengan bentuk diagram Ishikawa, Kemudian Analisis Persyaratan dengan Fungsional dan Non Fungsional sistem, Setelah itu pemodelan sistem menggunakan Use Case, Activity Diagram, Sequence Diagram, Pseudocode, Flowchart, dan Perancangan sistem.

3.1.1. Analisis masalah

Masalah yang akan dibahas pada penelitian ini adalah bagaimana membuat beberapa strategi berdasarkan aturan-aturan yag diberikan dan menerapkan strategi tersebut di dalam aplikasi permainan Ludo. Salah satu cara yang dapat digunakan untuk menganalisis masalah tersebut adalah dengan menggunakan Diagram Ishikawa.

10

Diagram Ishikawa adalah sebuah alat grafis yang digunakan untuk mengidentifikasi, mengeksplorasi, dan menggambarkan suatu masalah, sebab dan akibat dari masalah itu (Whitten et al., 2004). Gambar 3.1 menjelaskan hubungan sebab akibat dari masalah yang diangkat dalam penelitian ini.

Gambar 3.1. Diagram Ishikawa

Dari Gambar 3.1 dapat dilihat permainan Ludo adalah permainan yang dimainkan lebih dari satu orang pemain. Oleh sebab itu jika jumlah pemain tidak cukup, maka permainan Ludo tidak dapat dimainkan. Alat yang duganakan untuk bermain Ludo juga dalam bentuk fisik yaitu sebuah papan Ludo,bidak dan dadu. Permainan Ludo sekarang dapat dimainkan dalam bentuk aplikasi. Komputer juga dapat menggantikan peran manusia sebagai pemain. Komputer dapat dirancang untuk mengambil keputusan optimal. Untuk mengetahui strategi yang paling optimal, diperlukan uji coba dan perbandingan dari beberapa aturan yang akan diterapkan.

3.1.2. Analisis persyaratan

Persyaratan sistem menentukan apa yang seharusnya dikerjakan oleh sistem atau apa saja properti dan kualitas yang harus dimiliki oleh sistem (Whitten et al., 2004) Persyaratan sistem dibagi menjadi dua bagian yaitu,

11

1. Persyaratan Fungsional

Persyaratan Fungsional menjelaskan apa yang seharusnya dilakukan oleh sistem, dalam hal ini aplikasi yang akan dibangun adalah implementasi Ruby Game Scripting System pada game Ludo.

Berikut adalah persyaratan fungsional yang harus dimiliki oleh sistem ini:

a. User dapat menentukan menentukan strategi yang akan di berikan masing-masing kubu.

b. Sistem dapat menentukan strategi apa yang akan di ambil jika suatu kondisi terpenuhi didalam permainan Ludo.

c. Sistem dapat menjalankan strategi yang telah di terapkan dengan baik tanpa ada masalah.

2. Persyaratan Non Fungsional

Persyaratan Non Fungsional menetapkan properti atau kualitas yang harus dimiliki oleh sistem, berikut adalah klasifikasi PIECES (Perform, Information, Economy, Control, Efficiency, Service) Non-Fungsional yang harus dipenuhi: (Whitten et al., 2004).

a. Performa

Sistem yang dibangun dapat berjalan dengan baik agar dapat membandingkan strategi yang paling optimal untuk di terapkan dalam permainan ludo.

b. Informasi

Sistem dapat menunjukkan keputusan strategi yang di berikan kepada masing-masing kubu.

c. Ekonomi

Sistem tidak memerlukan perangkat tambahan yang mahal. d. Efisiensi

Sistem harus mampu menghasilkan output dengan tingkat ketidak efisienan yang minimal.

e. Kontrol

Sistem mampu dijalankan tanpa kendali dan tampilan yang membingungkan.

12

3.1.3.Pemodelan sistem

Sebuh sistem harus dibuat model, model diartikan sebagai sebuah representasi piktorial dari realitas sebagai cara untuk memahami sistem tersebut dengan lebih baik dan sebagai cara mendokumentasikan persyaratan bisnis atau desain teknis untuk sistem yang sedang diusulkan (Whitten et al., 2004).

a. Use Case Diagram

Menurut Satzinger, Jackson dan Burd (2009), use case adalah sebuah daftar yang memberikan apa yang sistem lakukan pada saat suatu peristiwa terjadi.

Use Case Modelling adalah proses pemodelan fungsi-fungsi sistem dalam konteks peristiwa-peristiwa. Siapa yang mengawalinya, dan bagaimana sistem itu merespon hal tersebut (Whitten et al., 2004).

Gambar 3.2 Use Case Diagram

Menurut use case pada Gambar 3.2, ketika user (manusia) memulai permainan, user dapat memilih strategi yang akan di terapkan ke setiap kubu. Selanjutnya, komputer akan melanjutkan semua proses secara otomatis. Selama proses

13

permainan berlangsung maka sistem akan terus melakukan penyimpanan variabel posisi bidak agar kubu yang sedang bermain dapat menentukan strategi yang akan digunakan. Selama proses pengambilan keputusan yang akan dilakukan, sistem akan terus melakukan cek nilai variabel posisi bidak, cek nilai variabel dadu dan cek variabel switch yang aktif.

b. Activity Diagram

Menurut Shelly, Gary dan Rosenblatt (2012), Unified Modelling Language Activity Diagram menyerupai flowchart horisontal yang menunjukkan tindakan dan peristiwa aliran proses pada saat proses tersebut terjadi. Activity diagram pada aplikasi permainan Ludo dapat dilihat pada Gambar 3.3.

Gambar 3.3. Activity Diagram

14

c. Sequence Diagram

Sequence diagram adalah diagram UML (Unified Modelling Language) yang digunakan untuk memodelkan logika sebuah use case dengan cara menggambarkan interaksi pesan diantara objek-objek dalam rangkaian waktu (Whitten et al., 2004). Sequence diagram dari implementasi strategi menggunakan ruby game scripting system pada game ludo dapat dilihat pada Gambar 3.4.

Gambar 3.4. Sequence Diagram

Dapat dilihat pada Gambar 3.4 ketika aplikasi dijalankan user akan di bawa ke menu utama (main activity) untuk memulai permainan. Selama proses permainan berlangsung, user tidak dapat memberi input atau melakukan aktifitas lain. Semua aktifitas akan dilakukan oleh sistem, dimana sistem akan terus melakukan penyimpanan variabel posisi dan switch di database lalu kubu yang bermain akan melakukan pengambilan keputusan berdasarkan data variabel dan switch yang tersimpan di database.

15

3.1.4. Pseudocode

Strategi yang akan di implementasikan akan memliki prioritas yang berbeda pada masing-masing kubu. Secara mendasar ada 3 aturan yang akan di program yaitu Hit First, Go Out First, dan Quick Finish.

Untuk menentukan keputusan yang akan di ambil, maka diperlukan beberapa variabel data yang akan menyimpan informasi nilai-nilai yang dapat diproses. Variabel-variabel tersebut adalah :

a. Variabel nilai posisi bidak yang nilainya sesuai dengan posisi bidak di dalam permainan. Variabel ini berupa bilangan integer.

b. Variabel nilai dadu yang nilainya random dari satu sampai enam. Variabel ini berupa bilangan integer.

c. Variabel switch yang nilainya booleans. Jika aktif, maka switch == true dan sebaliknya jika mati, maka switch == false.

d. Variabel temporary yang bersifat sementara untuk melakukan perhitungan-perhitungan nilai variabel.

Berikut adalah Pseudocode beserta penjelasan rancangan dari masing-masing aturan : Vp = Variabel posisi bidak-bidak dari kubu yang sedang bermain.

[ Vp = { bidak1, bidak2, bidak3, bidak4 } ] Ve = Variabel posisi bidak-bidak kubu lawan.

[ Ve = { lawan1, lawan2, lawan3..., lawan 12 } ]

Vd = Variabel nilai dadu yang bernilai random dari satu sampai enam. [ Vd = rand(6)+1 ]

Vt = Vp + Vd

Vj = Variabel nilai langkah yang dimiliki oleh kubu yang sedang bermain. Nilai Variabel ini diambil dari nilai variabel dadu.

[ Vj = Vd ]

Vr = Variabel nilai posisi pintu rumah dari setiap kubu.

[ Vr[merah] = 5; Vr[kuning] = 18; Vr[hijau] = 31;Vr[biru] = 44 ] Va = Variabel nilai posisi aman yang berada dekat finish.

[ Va = {56,57,58,59,60,61} ]

16

Sr = Variabel switch untuk menentukan jika ada bidak pemain teman yang berada di pintu rumah.

[ if Vp[merah] == Vr[merah]; Sr = true; end ] [ if Vp[kuning] == Vr[kuning]; Sr = true; end ] [ if Vp[hijau] == Vr[hijau]; Sr = true; end ] [ if Vp[biru] == Vr[biru]; Sr = true; end ]

Sb = Variabel switch bidak yang telah memenuhi kondisi untuk dijalankan. Jika Sb == true maka bidak yang memenuhi kondisi akan dimainkan.

if Sb == true while Vj != 0 Vp + 1; Vj - 1 end end 1. Hit First

Pada aturan ini, jika nilai posisi suatu bidak ditambah dengan nilai dadu bernilai sama dengan posisi salah satu bidak musuh dan jika nilai variabel langkah tidak sama dengan nol, maka bidak tersebut akan dimainkan untuk memakan bidak lawan. Jika kondisi tidak terpenuhi maka sistem akan melakukan cek apakah nilai dadu sama dengan enam dan ada musuh di pintu rumah kubu yang sedang

bermain? Jika benar, maka sistem akan memanggil aturan “Go Out First”. Pseucode untuk Hit First dapat ditulis sebagai berikut :

if Vt == Ve and Ve != Va [kondisi untuk memakan bidak lawan] if Vj != 0

Sb = true end

elsif Vd == 6 and Ve == Vr

Go Out First [memanggil aturan “Go Out First”] end

17

2. Go Out First

Pada aturan ini, jika nilai dadu bernilai enam, nilai langkah tidak sama dengan nol, posisi bidak berada di rumah dan jika tidak ada bidak di pintu rumah pemain, maka bidak yang memenuhi kondisi akan di pindahkan ke posisi pintu rumah lalu nilai langkah akan menjadi nol. Jika kondisi atas dipenuhi namun ada bidak yang berada di pintu rumah, maka bidak yang berada di pintu rumah tersebut akan di jalankan.

if Vd == 6 and Vj != 0 and Vp == 0 if Sr == false

Vp go_to Vr [memindahkan bidak ke posisi Vr] Vj = 0 elsif Sr + Vd != Vp Sb = true end end 3. Quick Finish

Pada aturan ini, jika posisi bidak tidak berada di finish, bidak tidak berada di dalam rumah dan nilai langkah tidak sama dengan nol, maka sistem melakukan sorting nilai variabel posisi bidak-bidak kubu yang sedang bermain secara ascending. Jika nilai variabel posisi bidak ditambah nilai dadu lebih kecil dari nilai maksimal jalur dan nilai variabel posisi bidak ditambah nilai dadu tidak sama dengan nilai variabel bidak-bidak lainnya (bidak lainnya dari kubu yang sedang bermain), maka jalankan bidak yang memenuhi kondisi.

if Vp != 61 and Vp != 0 and Vj != 0 [Vp(61) adalah posisi garis finish] Vs = Vp.sort [sorting Vp secara ascending] i = 3 j = 4 if Vt <= 61 and Vt != Vp while j != 0 Sb[Vs[i]] = true i - 1 unless i == 0 j – 1 end end end

18

3.1.5. Flowchart

Flowchart digunakan untuk membantu menyusun sebuah gambaran aliran program sehingga dapat mudah dipahami. Flowchart sistem yang akan digunakan didalam implementasi strategi pada game Ludo dapat dilihat pada Gambar 3.5.

Gambar 3.5. Flowchart sistem

Pada Gambar 3.5 dapat dilihat ketika permainan dimulai, sistem akan menyimpan variabel posisi dan switch setiap bidak. Lalu sistem akan mengaktifkan switch pemain yang akan bermain sesuai urutan gilirannya. Selanjutnya sistem akan melakukan proses untuk mendapatkan variabel nilai dadu. Hasil dari variabel nilai

19

dadu, variabel posisi dan switch akan mempengaruhi proses penentuan aturan yang akan di panggil sesuai dengan strategi yang telah di berikan kepada masing-masing kubu. Jika ada aturan yang dapat dijalankan, bidak yang memenuhi kondisi akan di jalankan. Jika tidak ada aturan yang dapat dijalankan dan nilai dadu adalah enam, variabel langkah akan di ubah menjadi nol dan proses pelemparan dadu akan di panggil kembali oleh sistem. Jika nilai dadu tidak sama dengan enam, maka variabel langkah akan di ubah menjadi nol dan switch pemain yang sedang bermain akan di matikan. Sistem akan kembali mengulang rangkaian proses ini dari awal selama permainan berlangsung.

3.1.6. Strategi Ludo

Pada sub-bab 3.1.4 Pseudocode, telah dijelaskan rancangan aturan-aturan yang digunakan untuk pengambilan keputusan strategi permainan Ludo. Aturan-aturan tersebut dapat di gabungkan berdasarkan prioritas dan dari aturan-aturan tersebut dapat berlakukan enam kemungkinan strategi.

1. Strategi 1 : Go Out First > Hit First > Quick Finish

Strategi ini memprioritaskan agar semua bidak pemain dikeluarkan terlebih dahulu dari rumah jika mendapatkan nilai dadu enam walaupun ada bidak lawan yang bisa dimakan. Jika nilai dadu enam namun ada bidak teman yang berada di pintu rumah, maka bidak tidak dikeluarkan dari rumah dan sistem akan menjalankan bidak yang berada di pintu rumah tersebut. Selanjutnya jika kondisi tersebut tidak terpenuhi dan nilai dadu tidak enam maka sistem akan melakukan cek posisi bidak lawan yang bisa dimakan. Jika tidak ada bidak yang bisa dimakan, sistem akan memainkan bidak dengan posisi terdekat ke garis finish.

2. Strategi 2 : Go Out First > Quick Finish > Hit First

Strategi ini memiliki prioritas utama yang sama seperti strategi 1. Perbedaan strategi ini adalah jika nilai dadu tidak enam maka sistem akan memainkan bidak dengan posisi terdekat ke garis finish. Jika tidak ada bidak yang bisa dimainkan, maka dapat dipastikan aturan Hit First juga tidak akan menemukan bidak yang bisa dimainkan.

20

3. Strategi 3 : Hit First > Go Out First > Quick Finish

Strategi ini memprioritaskan untuk memakan bidak lawan jika nilai variabel posisi bidak yang berada diluar rumah ditambah variabel dadu sama dengan variabel posisi lawan. Jika nilai dadu sama dengan enam dan ada bidak lawan yang berada di pintu rumah, sistem akan mengeluarkan bidak dari rumah untuk memakan bidak lawan selama ada bidak yang bisa di keluarkan dari rumah. Selanjutnya jika kondisi tersebut tidak terpenuhi dan nilai dadu sama dengan enam, sistem akan mengeluarkan bidak selama tidak ada bidak teman yang berada di pintu rumah. Jika nilai dadu enam namun ada bidak teman yang berada di pintu rumah, maka bidak tidak dikeluarkan dari rumah dan sistem akan menjalankan bidak yang berada di pintu rumah tersebut. Jika kondisi tersebut tidak terpenuhi, sistem akan memainkan bidak dengan posisi terdekat ke garis finish.

4. Strategi 4 : Hit First > Quick Finish > Go Out First

Strategi ini memiliki prioritas utama yang sama seperti strategi 3. Perbedaan strategi ini adalah jika tidak ada bidak yang bisa dimakan dan nilai dadu sama dengan enam, sistem akan memilih untuk memainkan bidak dengan posisi terdekat ke garis finish walaupun masih ada bidak yang belum keluar rumah. Selanjutnya Jika tidak ada bidak yang bisa dimainkan dan nilai dadu bernilai enam, sistem akan mengeluarkan bidak selama tidak ada bidak teman yang berada di pintu rumah. Jika nilai dadu enam namun ada bidak teman yang berada di pintu rumah, maka bidak tidak dikeluarkan dari rumah dan sistem akan menjalankan bidak yang berada di pintu rumah tersebut.

5. Strategi 5 : Quick Finish > Go Out First > Hit First

Strategi ini memprioritaskan agar bidak yang telah berada di luar rumah di mainkan untuk sampai ke finish terlebih dahulu walaupun nilai dadu sama dengan enam. Jika kondisi tersebut tidak terpenuhi dan nilai dadu sama dengan enam, sistem akan mengeluarkan bidak selama tidak ada bidak teman yang berada di pintu rumah. Jika nilai dadu enam namun ada bidak teman yang berada di pintu rumah, maka bidak tidak dikeluarkan dari rumah dan sistem akan menjalankan bidak yang berada di pintu rumah tersebut. Jika aturan Quick Finish tidak terpenuhi, dapat dipastikan aturan Hit First juga tidak akan terpenuhi.

21

6. Strategi 6 : Quick Finish > Hit First > Go Out First

Strategi ini serupa dengan strategi 5 namun memiliki alur aturan yang berbeda. Strategi ini memiliki prioritas utama yang sama untuk menjalankan bidak yang berada di luar rumah mencapai garis finish terlebih dahulu. Walaupun prioritas selanjunyta adalah aturan Hit First, jika kondisi pada aturan Quick Finish tidak terpenuhi maka dapat dipastikan kondisi pada aturan Hit First juga tidak akan terpenuhi.

Dokumen terkait