BAB 3
ANALISA DAN PERANCANGAN PROGRAM APLIKASI
3.1 Sejarah Perusahaan dan Struktur Organisasi
Dalam pembuatan skripsi ini, dilakukan penerapan aplikasi pada PT Advance Innovations, sebuah perusahaan yang bergerak di bidang internet solution dan beralamatkan di Jalan Panjang No.28, Kebun Jeruk, Jakarta 11530.
3.1.1. Sejarah Perusahaan
Advance Innovations adalah perusahaan yang bertujuan untuk memberikan solusi e-business melalui integrasi teknologi yang inovatif dengan kreatifitas. Tujuan perusahaan ini yaitu menjadi pemimpin dalam solusi
e-business dengan menggunakan internet sebagai backbone.
Para personil perusahaan merupakan ahli di bidangnya, memiliki motivasi tinggi, dan professional, mereka juga sangat peka terhadap perubahan teknologi informasi yang dibutuhkan oleh client dan menggunakan teknologi terbaru untuk memenuhi kebutuhan bisnis client.
PT. Advance Innovations berdiri bulan April 2000 dengan beranggotakan hanya empat orang. Namun, sekarang perusahaan tersebut telah memiliki sekitar 100 personil yang muda dan enerjik, termasuk 50 di antaranya menangani komunikasi via wireless dengan menggunakan Wi-Fi.
Banyak perusahaan besar telah menjadi client dari PT. Advance Innovations yaitu PT. GE Finance Indonesia, PT. Bank BCA, Direktorat Jenderal Pajak, PT. Indosat, PT. Sumallindo Lestari Jaya, McDonald Indonesia, PT. BFI
Finance Indonesia, PT. Tunas Finansindo Sarana, PT. ANJ Finance, PT. Clipan Finance, PT. Bina Danatama Finance, Nokia Indonesia, dan Cinnervo Picture.
Aplikasi yang dikembangkan Advance Innovations meliputi pengembangan aplikasi berbasis web, infrastruktur internet dan intranet, dan aplikasi mobile.
a. Pengembangan Aplikasi berbasis Web
Pengembangan dilakukan dengan melihat sistem secara keseluruhan dalam membuat atau mengembangkan suatu lingkungan sistem komputasi. Pelayanan meliputi system study, application development, kreasi dan modifikasi sistem, serta supporting components. Pengembangan dilakukan berbasiskan teknologi web yang bersifat open standard sehingga menghasilkan aplikasi yang bersifat cost effective bagi pelanggan dan mengurangi biaya jangka panjang di kemudian hari.
b. Infrastruktur Internet dan Intranet
Pengembangan infrastruktur internet dilakukan perencanaan investasi yang matang. Konsultan perusahaan akan membantu memecahkan masalah pelanggan dengan memahami permasalahan dan kemudian mengusulkan strategi infrastruktur yang dapat memenuhi kebutuhan organisasi.
Pemecahan masalah yang dihadapi oleh pelanggan meliputi diagram jaringan secara keseluruhan, desain cabling/wiring, instalasi
c. Aplikasi Mobile
Perkembangan mobile device telah mendorong Advance Innovations untuk ikut mengembangkan aplikasi ini. Aplikasi ini tidak hanya berupa aplikasi untuk keperluan bisnis, tetapi juga dapat berupa aplikasi permainan (game). Mobile Application Xpert (MAX) merupakan divisi baru yang bergerak di bidang mobile berbasiskan pocket PC, Symbian, dan Java platform.
3.1.2. Struktur Organisasi
PT Advance Innovations memiliki struktur organisasi yang terdiri dari Presiden Direktur, Direktur Marketing, Marketing Manager, Marketing Officer, Direktur Operational, Human Resource Development (HRD), General Affair (GA), Quality Assurance (QA), Software Developer, Finance, dan Accounting.
Gambar 3.1 Struktur Organisasi Presiden Direktur Direktur Marketing Direktur Operasional Marketing Manager Marketing Officer HRD GA QA Software Developer
a. Presiden Direktur
Presiden direktur memiliki wewenang penuh terhadap keputusan yang diambil oleh perusahaan. Keputusan yang diambil bersifat
high-level decision dan berpengaruh terhadap keseluruhan organisasi. Presiden
direktur akan dibantu oleh direktur marketing dan direktur operasional dalam memanajemen posisi-posisi yang lebih rendah pada divisi marketing dan operasional.
b. Direktur Marketing
Direktur marketing bertugas membantu presiden direktur dalam mengelola divisi marketing. Posisi ini bertanggungjawab terhadap pengambilan keputusan yang dilakukan oleh marketing manager. Marketing merupakan ujung tombak perusahaan dalam memasarkan produk sehingga keputusan yang diambil menentukan keberhasilan produk di pasaran.
c. Marketing Manager
Marketing manager bertugas mengelola dan mengambil keputusan untuk tugas yang dilakukan oleh marketing officer, segala tugas yang dilakukan oleh marketing officer dilaporkan kepada marketing manager. d. Marketing Officer
Marketing officer merupakan pelaksana tugas marketing yang paling bawah. Posisi ini berhubungan langsung dengan para pelanggan, tugas-tugas dan laporan pelaksanaannya dilakukan kepada posisi yang lebih tinggi yaitu kepada marketing manager.
e. Direktur Operasional
Direktur operasional bertanggungjawab terhadap segala kegiatan operasional perusahaan, posisi ini mengepalai posisi operasional secara luas, seperti Human Resource Development (HRD), General Affair (GA),
Quality Assurance (QA), software developer, infrastruktur, finance, dan accounting.
f. Human Resource Development (HRD)
Human Resource Development (HRD) berwenang atas segala
kegiatan yang berhubungan dengan pengelolaan sumber daya manusia dalam perusahaan, misalnya perekrutan karyawan baru ataupun permasalahan yang menyangkut karyawan lainnya. HRD harus menjamin bahwa sumber daya manusia yang dibutuhkan memang benar-benar tersedia bagi perusahaan, terlebih pada saat-saat diperlukan.
g. General Affair (GA)
General Affair (GA) bertugas sebagai pembantu umum pada divisi
operasional. Segala tugas operasional seperti infrastruktur, HRD, dan sebagainya dapat dibantu oleh GA. Jadi, tanggungjawab posisi ini lebih merata dan tidak memiliki tanggung jawab yang spesifik bila dibandingkan dengan posisi lain dalam perusahaan.
h. Quality Assurance (QA)
Quality Assurance (QA) bertugas untuk melakukan pengontrolan
terhadap kualitas produk yang dihasilkan. Hal ini dimaksudkan agar produk-produk atau aplikasi-aplikasi yang dihasilkan memiliki kualitas yang memang diinginkan oleh para pelanggan perusahaan.
i. Software Developer
Software developer bertugas untuk mengembangkan aplikasi perangkat lunak sebagai proyek yang dikerjakan oleh perusahaan untuk pelanggan. Personel yang menduduki posisi ini diharapkan memiliki keterampilan teknis yang baik dalam perangkat lunak dan pemrogramannya. Kualitas aplikasi yang dihasilkan akan mempengaruhi kepuasan pelanggan.
j. Infrastruktur
Infrastruktur bertanggungjawab atas segala hal yang berkaitan dengan jaringan dan sistem operasi yang digunakan oleh perusahaan. Secara umum, infratruktur bertugas menangani sistem komputer pada perusahaan secara menyeluruh, bila terdapat gangguan jaringan ataupun sistem operasi, maka infrastruktur lah yang bertanggungjawab.
k. Finance
Finance menangani keuangan perusahaan, segala sesuatu yang
berhubungan dengan pemasukkan dan pengeluaran uang menjadi tanggungjawab posisi ini. Finance juga membuat aliran kas (cash flow) yang pencatatan keuangannya nanti akan dilakukan oleh bagian
accounting. Peran posisi ini sangat vital setelah bagian marketing,
kesalahan menentukan pengeluaran akan berakibat fatal bagi perekonomian perusahaan yang akan berakibat pada kelangsungan hidup perusahaan.
l. Accounting
Accounting bertugas melakukan pencatatan terhadap aliran
keuangan, termasuk pemasukan dan pengeluaran yang dibuat oleh
finance. Pencatatan yang dilakukan antara lain meliputi buku besar dan
AJP (Ayat Jurnal Penyesuaian). Jadi, antara finance dan accounting saling berhubungan erat.
Demikianlah keterangan tentang Perusahaan dalam pembuatan skripsi ini. Dalam pembuatan Skripsi Perancangan Aplikasi Program Game Matematika Sudoku menggunakan Algoritma Bipartite Matching, Perusahaan mendukung dalam hal software yang dibutuhkan dalam pembuatan aplikasi, dan pemahaman penulis tentang aplikasi mobile phone. Selanjutnya akan dijelaskan tentang pembuatan aplikasi program Sudoku secara spesifik tentang Gambaran Umum, Ruang Lingkup, Pemecahan Masalah, Representasi Data, Perancangan Sistem, Perancangan Layar, Perancangan STD, Perancangan Flowchart, dan Perancangan Modul Spesifikasi.
3.2 Gambaran Umum Masalah
Dalam perancangan program aplikasi ini, algoritma bipartite matching merupakan inti dari program tersebut. Dalam program inilah algoritma bipartite matching diterapkan.
Masalah yang akan dikemukakan adalah bagaimana menghasilkan solusi yang tepat dan benar untuk mengatasi permasalahan dalam permainan Sudoku ini. Hal yang menjadi gambaran umum dari permasalahan ini, adalah banyaknya clue yang diberikan ketika permainan dimulai.
Dalam perancangan skripsi ini, diimplementasikan sebuah program yang dapat menghasilkan solusi jawaban dengan diberikan soal permasalahan, aturan permainan, banyaknya clue yang diberikan, dan algoritma bipartite matching.
3.2.1 Mengapa Sudoku
Beberapa hal yang menjadi pertimbangan mengapa permainan ini dijadikan sebagai objek perancangan :
o Permainan ini merupakan permainan baru di Indonesia, dan sudah umum di dunia.
o Permainan ini mempunyai aturan permaainan yang tidak rumit sehingga mudah untuk mengimplementasikannya.
o Permainan ini dapat melatih logika dan kemampuan pemain. 3.2.2 Mengapa Algoritma Bipartite Matching
Penggunaan algoritma bipartite matching dalam program Sudoku ini adalah untuk merancang suatu program yang dapat menghasilkan solusi soal.
Kelebihan dari menggunakan algoritma ini dibandingkan algoritma lainnya adalah
a. Algoritma dapat menyelesaikan permasalahan pada flow network dengan kompleksitas O
(
EV1/2)
.b. Algoritma merupakan implementasi teori graf dan dapat mewakili model permasalahan matching (pemasangan) pada graf bipartite.
c. Augmenting path pada Algoritma Bipartite Matching merupakan kelebihan pada teori flow network yang dapat mempersingkat kompleksitas dari O
( )
EV menjadi O(
EV1/2)
.3.3 Pemecahan Masalah
Pemecahan Masalah dibagi menjadi 3, yaitu Scanning, Marking Up, dan Analisis. Selanjutnya, tahap-tahap akan dijelaskan lebih terperinci.
3.3.1 Scanning
Pemeriksaan digit 1-9 yang belum tersedia di setiap kotak pada saat mulai permainan baik dalam kolom, baris, maupun region.
Gambar 3.2. Proses Scanning
Misal di dalam ada 81 verteks dalam Sudoku. Dimulai dari baris 1 dari kiri ke kanan verteks 1-9, baris 2 verteks 10-18, baris 3 verteks 19-27, baris 4 verteks 28-36, baris 5 verteks 37-45, baris 6 verteks 46-54 baris 7 verteks 55-64, baris 8 verteks 65-72. baris 9 verteks 72-81. Dari semua vertek yang ada, dapat diketahui bahwa vertek-vertek yang kosong tidak mungkin mempunyai jawaban seperti pada kotak yang terisi. Untuk lebih jelas, lihat pada lampiran bagaimana proses berjalannya scanning.
3.3.2 Marking Up
Menandakan beberapa alternatif isi kotak pada masing-masing vertek, dan mengeliminir kemungkinan ketika 1 kotak terisi. Untuk lebih jelas lihat pada lampiran bagaimana proses berjalannya scanning.
Gambar3.3. Proses Marking Up
3.3.3 Algoritma Bipartite Matching
Algoritma bipartite matching digunakan dalam pemrosesan mencari solusi dari persoalan sudoku. Algoritma bipartite matching dijalankan dalam program ini sebelum menghilangkan rantai-rantai, dan set.
Misalkan dalam soal Sudoku memiliki Permutasi graf bipartite :
({1,2,3,5},{3,6},{3,4},{5,6},{1,7,8,9},{5,7,8,9},{4,6},{6,7,8,9},{1,4}), n = 9
Dan untuk setiap permasalahan Sudoku selalu memiliki solusi seperti berikut : ({1},{2},{3},{4},{5},{6},{7},{8},{9}), n = 9
Gambar 3.4 Algoritma Bipartite Matching
Algoritma akan bergerak dari node sebelah kiri, menuju sebelah kanan, dan kembali ke sebelah kiri. Algoritma akan berjalan seperti terus sampai mendapatkan jawaban yang tepat.
3.3.4 Penghilangan Set dan Rantai a. Penghilangan Set
Jika diketahui Permutasi Graf Bipartite
({1,2,3,5},{3,6},{3,4},{5,6},{1,7,8,9},{5,7,8,9},{4,6},{6,7,8,9},{1,4})
Angka 7,8,9 muncul pada 3 vertek seperti berikut.
({1,7,8,9},{5,7,8,9},{6,7,8,9}). Dari ketiga vertek tersebut jika diperhatikan setiap vertek memiliki hanya satu kemungkinan dalam permutasi graf
bipartite, kemungkinannya untuk ketiga vertek tersebut adalah angka 7,
dihapus, yaitu 1,5,6. Angka-angka tersebut dihapus dari ketiga verteks tersebut menjadi:
{1,7,8,9} Æ {7,8,9}
{5,7,8,9} Æ {7,8,9}
{6,7,8,9} Æ {7,8,9}
Dan sehingga keseluruhan permutasi graf bipartite menjadi :
({1,2,3,5},{3,6},{3,4},{5,6},{7,8,9},{4,6},{7,8,9},{1,4}),n=9
b. Penghilangan Rantai
Jika diketahui permutasi graf bipartite adalah :
({1,2,3,7},{3,6},{3,4},{1,4},{5,6,7},{4,6},{2,7},{8,9},{8,9}),n=9
Jika diperhatikan pada posisi ke dua, ketiga dan ke enam didapatkan vertek {3,6},{3,4},{4,6}. Dari ketiga vertek tersebut kesemuanya hanya akan memiliki kemungkinan antara 3,4,6 yang dapat diisi pada verteks tersebut. Dari kejadian tersebut, dapat diketahui bahwa tidak mungkin bahwa angka 3,4,6 muncul pada enam verteks lainnya. Sehingga didapatkan permutasi graf bipartite yang baru menjadi
({1,2,7},{3,6},{3,4},{1},{5,7},{4,6},{8,9},{8,9}), n = 9
Karena sudah ada vertek yang memiliki solusi pasti, pada vertek ke empat dengan nilai 1. Maka angka 1 dapat dihilangkan dari vertek lainnya menjadi
3.4 Representasi Data Input dan Output 3.4.1 Representasi Data Input
a. Generate Soal
Input berupa angka yang diacak dan ditampilkan pada board sesuai level kesulitan. Yang mempengaruhi level kesulitan adalah jumlah
banyaknya clue dan posisi peletakan angka sebagai clue di dalam board. Berikut Tabel 1, yang menunjukkan perbedaan jumlah clue.
Tabel 3.1. Tabel Clue untuk Level Kesulitan
Berikut posisi clue pada board untuk masing-masing level kesulitan :
Tabel 3.2. Tabel Posisi Clue untuk
Level Kesulitan Easy
Tabel 3.3 Tabel Posisi Clue untuk Level Kesulitan Medium
Tabel 3.4. Tabel Posisi Clue untuk Level Kesulitan Hard
b. Generate Solusi
Input berupa nilai yang diacak dan ditampilkan pada board. c. Generate Score
Perhitungan Score ditentukan jika jawaban pemain benar dan semua kotak telah terisi. Waktu permainan disimpan dari permainan dimulai, sampai waktu mengisi kotak terakhir dan benar. Kemudian score didapatkan dari :
Score Easy = 1_____ x 10.000.000 - ( 10 * jumlah pemakaian Hint ) Waktu (detik)
Score Medium = 1_____ x 15.000.000 - ( 10 * jumlah pemakaian Hint ) Waktu (detik)
Score Hard = 1_____ x 20.000.000 - ( 10 * jumlah pemakaian Hint ) Waktu (detik)
Untuk lebih jelasnya dapat dilihat pada tabel 5 sebagai berikut. Tabel 5. Tabel Perhitungan Score
Nilai Jika menggunakan Hint
Easy 10000000 / waktu ( - )10 * banyak hint Medium 15000000 / waktu ( - )10 * banyak hint Hard 20000000 / waktu ( - )10 * banyak hint
3.4.2 Representasi Data Output a. Tampilan Soal
Menampikan variasi soal sesuai level kesulitan pada board di layar New
Game.
b. Tampilan Solusi
Menampilkan solusi jawaban secara lengkap di layar. c. Tampilan Score
Menampilkan hanya satu nilai tertinggi dari semua permainan. 3.5 Perancangan Sistem
3.5.1 Perancangan Struktur Menu Utama
Struktur Menu Utama pada Program Sudoku (Gambar 3.5) terdiri dari menu New Game, Options, Score, Instructions, About, Exit. Menu New Game memiliki sub menu Hint dan Solve. Menu Options memiliki sub menu terdiri dari
Easy, Medium, Hard.
3.5.2 Perancangan Layar
Berikut ini adalah rancangan layar yang akan dibuat dalam program aplikasi Bipartite Matching pada Sudoku.
a. Perancangan Layar Menu Utama
Pada perancangan Layar menu utama (Gambar 3.6) terdapat menu-menu sebagai berikut :
1. Menu New Game
Di dalam menu New Game terdapat submenu baru yaitu : a. Menu Hint
b. Menu Solve
2. Menu Options : terdiri dari sub menu Easy, Medium, Hard 3. Menu Score
4. Menu Instruction 5. Menu About 6. Menu Exit
b. Perancangan Layar Menu New Game
Perancangan layar menu New Game akan menghasilkan tampilan yang baru berupa layar papan permainan Sudoku. Di dalam ini terdapat menu baru dalam options jika dalam permainan dibutuhkan Hint (bantuan
clue) untuk pemain, dan Solve untuk membantu pemain mengetahui
penyelesaian permainan.
Gambar 3.7 Layar NewGame Gambar 3.8 Menu Options
c. Perancangan Layar Menu Options
Perancangan layar menu Options akan menunjukkan submenu terdiri dari Easy, Medium, Hard. Easy menunjukkan level kesulitan permainan mudah, Medium menunjukkan level kesulitan cukup. Dan Hard menunjukkan level kesulitan yang cukup sulit untuk diselesaikan.
Gambar 3.9 Menu Level Kesulitan d. Perancangan Layar Menu Instructions
Pada perancangan layar menu Instructions (Gambar 3.10), terdapat informasi mengenai cara permainan Sudoku.
Gambar 3.10 Menu Information
e. Perancangan Layar Score
Pada perancangan layar Score, terdapat informasi nilai pemain yang paling tertinggi dari semua permainan.
Gambar 3.11 Menu Score
f. Perancangan Layar About
Pada perancangan layer About, terdapat informasi tentang nama pembuat program.
3.5.3 Perancangan STD
Gambar 3.14 State Transition Diagram Game Sudoku Spesifik
Kelas utama dalam perancangan game Sudoku ini adalah kelas Sudoku yang merupakan kelas MIDlet untuk mengatur kelas-kelas lainnya. Kelas ini berfungsi untuk agar aplikasi sistem secara keselurahan berjalan. Kelas-kelas yang terhubung dengan kelas Sudoku ini adalah kelas splashScreen, kelas
mainMenu. Di dalam kelas mainMenu terdapat List kelas yaitu; kelas Options, kelas Score, kelas Instructions, kelas About.
Pertama kali saat game dijalankan kelas Sudoku memanggil kelas
splashScreen. Kelas splashScreen akan menampilkan images Sudoku, dan
kemudian menampilkan mainMenu game Sudoku. Setelah itu kelas mainMenu akan menampilkan list menu NewGame, Options, Instructions, About, Exit. Untuk memilih menu tersebut disediakan menu select agar user dapat mudah untuk memilih. Jika user memilih menu Options maka kelas mainMenu akan memanggil kelas Options yang menampilkan pilihan level kesulitan game Sudoku. Jika user memilih menu Score maka kelas mainMenu akan memanggil kelas Score yang menampilkan score tertinggi dari permainan. Jika user memilih menu Instructions maka kelas mainMenu akan memanggil kelas Instructions yang menjelaskan cara permainan kepada user. Jika user memilih menu About maka kelas mainMenu akan memanggil kelas About yang menampilkan profil pembuat game. Jika user memilih menu NewGame maka kelas Sudoku akan memanggil kelas SudokuBoard. Di dalam kelas SudokuBoard memanggil kelas Board RandomDiagonalGenerator, dan kelas BipartiteSolver. Kelas RandomDiagonalGenerator untuk menghasilkan soal, dan kelas BipartiteSolver untuk menghasilkan jawaban.
3.5.4 Perancangan Flowchart
Flowchart yang akan dijelaskan berikut terdiri dari flowchart generate soal,
a. Flowchart Modul Generate Soal
Proses Generate Soal, terdapat pada kelas
RandomDiagonalGenerator. Dalam proses ini pertama kali ditentukan berdasarkan level kesulitan kemudian Board soal dibuat sesuai level kesulitan. Setelah itu cell dibuat di dalam board, dan dideklarasikan nilai dan tipenya. Masing-masing cell mempunyai nilai yang diperoleh melalui random angka. Kemudian dengan angka yang ada, Proses pencarian solusi dijalankan. Akhirnya diperoleh soal dengan jawaban lengkap, dan untuk soal yang sebenarnya ditampilkan ke dalam layar dengan jumlah minimum clue, sesuai level kesulitannya.
b. Flowchart Modul Generate Solusi (Sudoku Solver)
Modul(Gambar 3.16) ini digunakan untuk membuat permodelan kelas BipartiteSolver. Pada saat akan menghasilkan solusi, terlebih dahulu input diproses. Input terdiri dari dua himpunan yaitu himpunan angka dan himpunan vertek. Setelah memproses input menjadi himpunan yang siap dipasangkan, kemudian proses pemasangan himpunan angka dengan vertek dilakukan. Ketika proses pemasangan tidak berhasil, proses pemasangan dicoba kembali dengan menggunakan augmenting
path pada bipartite matching. Setelah menggunakan metode ini berhasil,
maka dilakukan proses pencetakkan logika output. Jika metode ini tidak berhasil maka soal tidak dapat memiliki solusi disebut gagal.
c. Flowchart Modul Function find_augmenting_path
Dari modul Generate Solusi diatas dapat diperluas lagi untuk proses pencarian posisi yang mungkin dengan augmenting path(Gambar 3.17). Diketahui himpunan number dan himpunan vertek tidak dapat dipasangkan. Jika himpunan number tidak mempunyai pasangan, maka dicari pasangan untuk number. Jika pasangan number sudah memiliki pasangan maka terjadi rekursif penentuan pasangan kembali. Jika himpunan number sudah memiliki pasangan maka dicek verteknya. Jika
vertek tidak punya pasangan maka coba pasangan dengan number yang
tidak memiliki pasangan. Jika masih belum terpasang, program berjalan rekursif. Jika terpasangkan maka proses pemasangan berhasil. Dan Proses selesai, data dikirim ke modul generate solusi untuk diproses menjadi output di layar.
d. Flowchart Modul Function chain_elimination dan set_elimination Seperti pada gambar 3.18, Program memproses input menjadi dua himpunan yaitu himpunan number dan himpunan vertek. Algoritma mencari pasangan yang mungkin dari kedua himpunan. Jika tidak memiliki pasangan, maka proses pencarian chain dilakukan. Setelah chain ditemukan, kemudian himpunan diproses kembali menjadi lebih sederhana. Dan akhirnya hasil himpunan yang lebih sederhana didapatkan.
e. Flowchart Function Pencarian_Chain dan Set
Dari keterangan sebelumnya diketahui, himpunan tidak dapat dipasangkan. Dan untuk berikutnya himpunan akan diminimalisasi agar lebih mudah diproses. Proses minimalisasi dilakukan dengan mencari chain, kemudia mencari tahu himpunan number dan himpunan vertek yang tidak memiliki pasangan. Jika selama mencari chain, himpunan yang ditemukan belum mempunyai pasangan, maka terjadi rekursif. Jika semua sudah terpasang, maka chain berhasil ditemukan. Setelah itu himpunan di minimalisasi. Dan didapatkan minimalisasi himpunan yang baru.
f. Flowchart Modul Generate Score
Gambar berikut merupakan Flowchart dari Menu Score. Untuk pertama kali diinisialisasikan score-score yang ada. Kemudian menentukan level permainan. Setelah level permainan diketahui dilakukan perhitungan score berdasarkan waktu permainan dan pemakaian hint. Setelah itu tampilkan ke layar.
3.5.5 Perancangan Spesifikasi Proses
a. Perancangan spesifikasi proses menu Sudoku Modul Sudoku
Jika (Permainan Berakhir) Keluar permainan Akhir Jika
Jika (Permainan dijalankan) Tampilkan SplashScreen Selain itu
Tampilkan Main Menu Screen Akhir Jika
Akhir Modul
b. Perancangan spesifikasi proses menu splashScreen Modul SplashScreen
Memanggil Image
Tampilkan Image di layar Tunggu beberapa saat
Tampilkan menu mainMenu Selain itu
Keluar permainan Akhir Jika
Akhir modul
c. Perancangan spesifikasi proses menu Main Modul Main Menu
Tampilkan Layar Utama Menunggu Pilihan
Jika Pilihan adalah Menu “NewGame” maka Panggil Modul “NewGame ”
Selain itu
Jika Pilihan adalah Menu “Options” maka Panggil Modul “Options”
Selain itu
Jika Pilihan adalah Menu “Score” maka Panggil Modul “ScoreScreen” Selain itu
Jika Pilihan adalah Menu “Instruction” maka Panggil Modul “Instructions”
Selain itu
Panggil Modul “AboutScreen” Jika Pilihan adalah Menu “Exit” maka Keluar dari Aplikasi
Akhir Jika Akhir Modul
d. Perancangan spesifikasi proses menu New Game Modul NewGame
Memanggil Modul “SudokuBoard”
Memanggil Modul “RandomDiagonalGenerator” Memanggil Modul “BipartiteSolver”
Tampilkan ke Layar Akhir Modul
e. Perancangan spesifikasi proses CommandButton pada New Game Modul CommandMenu
Tampilkan Layar Tambahan Menunggu Pilihan
Jika Pilihan adalah Menu “Hint” maka Panggil Modul “Hint ”
Selain itu
Jika Pilihan adalah Menu “Solve” maka Panggil Modul “Solve”
Akhir Jika Akhir Modul
f. Perancangan spesifikasi proses menu Options Modul Options
Tampilkan Pilihan Radio Button Jika Pilihan adalah “Easy” Simpan sebagai parameter Akhir Jika
Selain itu
Jika Pilihan adalah “Medium” Simpan sebagai parameter Akhir Jika
Selain itu
Jika Pilihan adalah “Hard” Simpan sebagai parameter Akhir Jika
g. Perancangan spesifikasi proses menu Score Modul Score
Tentukan Level Kesulitan Inisialisasi Score
Jika level kesulitan “Easy“ Hitung currentScore
Akhir Jika
Jika level kesulitan “Medium” Hitung currentScore Akhir Jika
Jika level kesulitan “Hard” Hitung currentScore Akhir Jika
Bandingkan dengan Score yang ada Tampilkan Score yang tertinggi Akhir Modul
h. Perancangan spesifikasi proses menu About Modul Menu About
Tampilkan Pesan “ Skripsi by …. “ Jika (Tombol Back di tekan) Tampilkan Main Menu
Akhir Jika Akhir Modul
i. Perancangan spesifikasi proses menu Instructions Modul Instructions
Tampilkan Pesan “ Permainan : Isi kotak…. “ Jika (Tombol Back di tekan)
Tampilkan Main Menu Akhir Jika