BAB 2 LANDASAN TEORI
2.1 Permainan Matematika Sudoku 2.1.1 Sejarah Sudoku Menurut
website
http://en.wikipedia.org/wiki/Sudoku
November
2006,
Sudoku, disebut juga sebagai Number Place atau permainan puzzle berdasarkan logika. Permainan ini sudah dikenal di media mass sejak abad ke 19, ketika permainan puzzle Magic Squares di Perancis ramai dibicarakan. Magic Squares sendiri berbeda dengan Sudoku, karena Sudoku terdiri dari 9 angka dan lebih membutuhkan kemampuan
aritmatika
daripada
kemampuan
logika
untuk
menyelesaikan
permainan. Awalnya permainan sudoku hanya mengenal baris dan kolom saja tapi dalam perkembangannya ada yang namanya region. Menurut Will Shortz, Sudoku modern kebanyakan di desain oleh Howard Garns, arsitek berumur 74 tahun dan sekaligus freelance konstruktor puzzle, dan pertama kali permainan Sudoku dipublikasikan tahun 1979 oleh majalah Dell sebagai Number Place. Kemudian ia meninggal pada tahun 1989 sebelum melakukan perubahan-perubahan Sudoku. Puzzle tersebut diperkenalkan di Jepang oleh Nikoli dalam majalah bulanan Nikolist sekitar April 1984 sebagai ”As Suuji wa dokushin ni kagiru” yang dapat diterjemahkan sebagai ”Angka harus terjadi sekali”, dan akhirnya nama tersebut dinamakan menjadi Sudoku oleh Maki Kaji, nama tersebut didapatkan dari bahasa kanji.
6 Tahun 1997, sudah banyak ditemukan puzzle Sudoku dalam toko buku Jepang, dan dalam 6 tahun berikutnya Sudoku dikembangkan menjadi program komputer. Peningkatan permainan Sudoku semakin cepat diketahui umum melalui majalahmajalah dan koran dari berbagai dunia. Dan pada tahun 2005 untuk pertama kalinya Sudoku menjadi bagian dari acara TV berjudul Sudoku Show, Sudoku Live.
2.1.2 Pengertian Sudoku Sudoku merupakan permainan puzzle angka dengan batasan angka 1 sampai dengan 9 dengan syarat-syarat tertentu. Dalam permainan Sudoku, pemain diminta untuk mengisi N 2 × N 2 kotak dengan angka (notasi : integer) dari 1 sampai N 2 . Aturan permainan setiap baris dan kolom terdiri dari 1 kemungkinan pilihan dari N 2 integers. Dan juga untuk N 2 memiliki N × N bujursangkar yang juga harus terdiri dari 1 kemungkinan dari N 2
integers. Contoh pada gambar 2.1 adalah Sudoku dengan kotak N = 3.
Gambar 2.1. Contoh permasalahan Sudoku yang harus diselesaikan.
Penggunaan angka dalam Sudoku sering digunakan untuk kenyamanan, karena hubungan aritmatika menggunakan angka lebih mudah. Beberapa simbol lain dapat
7 digunakan juga misalnya; huruf, bentuk dan warna. Pada umumnya angka lebih sering digunakan dalam permainan ini dibandingkan yang lainnya. Hal yang menarik dari permainan ini adalah peraturan yang mudah, tetapi untuk mendapatkan jawaban yang benar ternyata kompleks. Tingkat kesulitan pada permainan Sudoku dapat juga disesuaikan dengan kemampuan pemain. Untuk memainkan permainan ini bisa didapatkan di toko buku, atau melalui internet. 2.1.3 Cara Permainan Permainan Sudoku secara umum terdiri dari tabel dengan kotak 9 x 9, yang dibuat dengan region 3 x 3. Untuk memulai permainan ini, beberapa kotak telah diisi dengan angka-angka yang menjadi petunjuk (clue). Tujuan akhir dari permainan ini adalah mengisi kotak-kotak yang masih kosong di mana setiap kotak diisi satu angka. Dalam setiap baris, kolom, dan region diisi dengan angka 1 (satu) sampai dengan 9 (sembilan) dengan kemungkinan hanya sekali. Setiap angka dalam solusi ini terjadi hanya sekali dalam 3 kondisi (baris, kolom dan region). Berikut contoh penyelesaian permainan pada gambar 2.2.
Gambar 2.2. Hasil jawaban yang benar permainan Sudoku
8 2.1.4 Jenis-jenis Sudoku Dalam perkembangannya
permainan
Sudoku
tidak
hanya
dimainkan
menggunakan angka saja, tetapi juga menggunakan huruf dan gambar. Dan untuk alas permainannya dapat dimainkan dalam beraneka ragam ukuran, dan untuk region dapat divariasikan dengan bentuk yang bermacam-macam. Tetapi dalam penulisan skripsi ini hanya akan dibahas Sudoku 9 x 9 dengan region berbentuk bujur sangkar. Contoh variasi pada sudoku : -
Alas permainan kotak 4 x 4 dengan region 2 x 2.
-
Alas permainan kotak 5 x 5 dengan region berupa pentomino
-
Alas permainan kotak 6 x 6 dengan region 2 x 3
-
Alas permainan kotak 7 x 7 dengan region berupa heptomino
-
Alas permainan kotak 9 x 9 dengan region berupa nonomino seperti pada gambar 2.3.
-
Alas permainan kotak 16 x 16 dengan region hexudoku
Sumber : http://en.wikipedia.org/wiki/Sudoku Gambar 2.3 Contoh Sudoku 9 x 9 dengan region berupa nonomino
2.2 Graf Bipartite ( Bipartite Graph ) 2.2.1 Graf Bipartite Menurut Johnsonbaugh (1997,p8), Graf bipartite adalah sebuah Graf G (V , E )
terdiri dari dua bagian (dwi pihak) jika himpunan verteks V dapat dibagi menjadi
9 dua subhimpunan V1 dan V2 sehingga setiap rusuk (edge) dalam E insiden pada satu verteks di V1 dan satu verteks pada V2 . Gambar 2.4 adalah contoh graf bipartite. Misalkan V1 = {v1,v2,v3} dan V2 = {v4,v5} maka didapatkan setiap rusuk insiden pada satu verteks dalam V1 dan satu verteks dalam V2.
Gambar 2. 4 Sebuah graf bipartite (Johnsonbaugh, 1997,p8)
Perhatikan bahwa pengertian graf di atas menyatakan bahwa jika e adalah sebuah rusuk dalam sebuah graf bipartite, maka e insiden pada satu verteks dalam V1 dan satu verteks dalam V2. Definisi itu menyatakan bahwa jika v1 adalah sebuah verteks di V1 dan v2 adalah sebuah verteks di V2, maka terdapat sebuah rusuk di antara v1 dan v2. Sebagai contoh, graf pada gambar 2.4 adalah bipartite karena masing-masing rusuk insiden pada satu verteks di V1 = {v1,v2,v3} dan satu verteks di V2 = {v4,v5}. Akan tetapi , tidak semua rusuk di antara verteks V1 dan V2 berada dalam graf. Contohnya rusuk (v1,v5) tidak ada.
10 2.2.2 Graf Bipartite Lengkap
Graf bipartite lengkap pada m dan n verteks, dinyatakan dengan Km,n adalah graf sederhana yang himpunan verteksnya dibagi menjadi himpunan V1 dengan m verteks dan V2 dengan n verteks di mana terdapat sebuah rusuk di antara setiap pasangan verteks v1 dan v2 dengan v1 berada di V1 dan v2 berada di V2. Gambar 2.5 adalah Graf bipartite lengkap pada dua dan empat verteks, K2,4.
Gambar 2.5 Graf bipartite lengkap K2,4 (Johnsonbaugh, 1997,p8)
2.3 Jaringan (Network)
Menurut Thomas.H et all (2001, p643) Network Flow dapat dideskripsikan sebagai graf berarah pada peta perjalanan yang digunakan untuk mencari path terpendek dari satu titik ke titik lainnya. Menurut Robert Sedgewick (2002, p354), Contoh ilustrasi dari permasalahan model network flow, algoritma dan implementasinya terdiri dari banyak contoh seperti; Permasalahan distribusi, permasalahan pemasangan, dan permasalah pemotongan. Dalam skripsi ini akan dibahas lebih spesifik tentang permasalahan pemasangan dalam jaringan untuk mencari kemungkinan jalan yang mungkin untuk menghubungkan pasangan vertek. Tujuan akhir dari permasalahan adalah untuk memilih hubungan
11 sepasang vertek di mana vertek tidak boleh digunakan dua kali. Misalnya memasangkan murid dengan sekolah, pelamar dengan pekerjaan, pelajaran dengan jam sekolah, dan lain lain. 2.3.1 Permasalahan Pemasangan
Menurut Johnsonbaugh (1997,p174), Dalam teorema pemasangan berikut akan dijelaskan pemasalahan unsur-unsur dalam satu himpunan dengan unsur-unsur di himpunan lain. Permasalahan ini dapat diturunkan pada pencarian sebuah aliran maksimal dalam suatu jaringan. Misalkan terdapat empat orang A, B, C, D melamar lima pekerjaan J1, J2 , J3 , J4 , dan J5. Andaikan pelamar A cocok untuk pekerjaan J2 dan J5 ; Pelamar B cocok untuk pekerjaan J2 dan J5. Pelamar C cocok untuk pekerjaan J1, J3 , J4,dan J5; serta pelamar D cocok untuk pekerjaan J2 dan J5. Adakah kemungkinan untuk mendapatkan sebuah pekerjaan bagi masing-masing pelamar ? Situasi tersebut dapat dimodelkan dengan graf pada gambar 2.6. Verteksverteks mewakili pelamar dan pekerjaan. Sebuah rusuk menghubungkan sebuah pelamar dengan sebuah pekerjaan yang cocok. Kita bisa menunjukkan bahwa tidak mungkin memasangkan sebuah pekerjaan pada masing-masing pelamar dengan memperhatikan pelamar A, B, dan D yang cocok dengan pekerjaan J2 dan J5. Jika A dan B mendapatkan sebuah pekerjaan , maka tidak ada pekerjaan tersisa untuk D. Oleh karena itu, tidak ada penempatan A, B, C, dan D. Pada contoh di atas sebuah pemasangan terdiri dari pencarian pekerjaan untuk orang-orang dengan keahlian tertentu. Sebuah pemasangan masksimal mencarikan pekerjaan untuk setiap orang. Kita telah melihat bahwa graf pada gambar 2.6 tidak mempunyai pemasangan lengkap.
12
Gambar 2.6 Pelamar (A,B,C,D) dan pekerjaan (J1, J2 , J3 , J4 , dan J5). Sebuah rusuk menghubungkan seorang pelamar dengan sebuah pekerjaan yang cocok. Garis tebal menunjukkan pemasangan maksimal (yakni, jumlah maksimum pelamar mendapatkan pekerjaan) (Johnsonbaugh, 1997,p175)
a. Jenis Pemasangan Misalkan G adalah sebuah graf bipartite terarah dengan himpunan verteks saling lepas V dan W yang disini rusuk-rusuk terarah dari verteksverteks di V ke verteks-verteks di W. (Vertek sembarang di G dapat di V atau pun di W.) o
Pemasangan untuk G adalah sebuah himpunan rusuk E dengan tidak ada verteks yang sama.
o Pemasangan maksimal untuk G adalah sebuah pemasangan E di mana E
mengandung jumlah rusuk maksimum. o
Pemasangan lengkap untuk G adalah pemasangan E yang mempunyai sifat jika v ∈ V , maka (v, w) ∈ E untuk suatu w ∈ W .
13 Sebagai contoh pada pemasangan seperti di gambar 2.7, yang ditunjukkan dengan garis-garis tebal, merupakan pemasangan maksimal dan pemasangan lengkap.
Gambar 2.7 Garis-garis tebal menunjukkan sebuah pemasangan maksimal (jumlah rusuk maksimm yang digunakan) dan pemasangan lengkap (masing-masing dari A, B ,C terpasang). (Johnsonbaugh, 1997,p175)
Pada contoh selanjutnya, akan diilustrasikan bagaimana masalah pemasangan dapat dimodelkan sebagai sebuah masalah jaringan.
b. Sebuah Jaringan Pemasangan Modelkan masalah pemasangan pada contoh sebelumnya sebagai sebuah jaringan. Pertama-tama kita tandai setiap rusuk dalam graf pada gambar 2.6 kapasitas 1 (Lihat gambar 2.8). Selanjutnya ditambahkan sebuah sumbernya a dan rusuk-rusuk kapasitas 1 dari a ke masing-masing dari A, B, C, D. Akhirnya kita tampilkan sebuah tujuan raya z dan rusuk-rusuk berkapasitas 1 dari
14 masing-masing J1, J2, J3, J4, dan J5 ke z. Kita sebut jaringan seperti pada Gambar 2.8 sebuah jaringan pemasangan (matching network).
Gambar 2.8 Masalah pemasangan (gambar 2.5) sebagai jaringan pemasangan. (Johnsonbaugh, 1997,p176)
2.3.2 Aliran Jaringan (Flow Network)
Menurut Johnsonbaugh (1997,p155) Aliran (Flow) dalam sebuah jaringan menempatkan sebuah aliran dalam setiap rusuk terarah yang tidak melampaui kapasitas rusuk itu. Contoh Flow Network diambil dari buku Robert Sedgewick (2002, pp359360), Di dalam jaringan terdapat single source dan single sink. Kapasitas minyak yang masuk sama dengan kapasitas minyak yang keluar. Jika begitu maka tidak ada masalah yang terjadi. Dengan
15 mudah setiap pipa memiliki kapasitas penuh. Jika sebaliknya, semua pipa penuh tetapi aliran minyak melalui jaringan dikontrol oleh switch dalam perjalanannya, seperti jumlah minyak melalui jalan sama dengan jumlah aliran yang keluar dari sumber. Pertanyaannya, bagaimana pengaturan switch agar jumlah minyak yang mengalir dari source ke sink menjadi maksimal? Untuk lebih jelas lihat gambar 2.9. Permasalahan tersebut dapat dimodelkan dalam jaringan (graf berarah yang mempunyai ukuran) dengan single source dan single sink. Rusuk dari jaringan merupakan pipa minyak, verteks menghubungkan jalan dengan switch yang mengontrol bagaimana minyak masuk dan keluar dari setiap rusuk, dan ukuran minyak yang lewat dari setiap rusuk disesuaikan dengan kapasitas pipa. Kita menganggap bahwa rusuk berarah dan minyak dapat mengalir secara satu arah dari setiap pipa. Setiap pipa memiliki ukuran yang pasti dari aliran, di mana kurang atau sama dari kapasitas verteknya, dan setiap vertek memberikan kondisi bahwa aliran yang masuk sama dengan aliran yang keluar.
2.3.3 Augmenting Path pada Algoritma Max Flow
Proses cara mengatasi permasalahan Max Flow dikembangkan oleh L.R. Ford dan D.R. Fulkerson pada tahun 1926. Metode umum yang dihasilkan adalah proses peningkatkan aliran terus-menerus sepanjang path-path yang ada dari source menuju sink. Metode yang dihasilkan ini lebih dikenal sebagai Ford Fulkerson. Gambar 2.10 menunjukkan beberapa perbedaan alur augmenting path yang dapat memberikan max flow dalam network sederhana. Dalam contoh berikut,
16 pencarian augmenting path dilakukan terus-menerus pada network sampai tidak ditemukan lagi augmenting path.
Gambar 2.10 Gambar Augmenting path (Robert Sedgewick, 2002, p377)
Dari gambar di atas ada beberapa kemungkinan flow seperti berikut. •
0-1-3-5 dengan kapasitas flow yang dibawa 2.
•
0-2-4-5 dengan kapasitas flow yang dibawa 1.
•
0-2-3-1-4-5 dengan kapasitas flow yang dibawa 1.
Jadi dari 3 kemungkinan di atas diketahui Max Flow adalah path 0-1-3-5.
Gambar 2.11 Gambar Flow Network (Robert Sedgewick, 2002, p372)
17
2.3.4 Algoritma Bipartite Matching
Algoritma yang digunakan dalam permasalahan Bipartite Matching yaitu Algoritma Max Flow dan secara khusus dikenal dengan nama Algoritma Ford Fulkerson. Algoritma Ford Fulkerson umumnya digunakan untuk menyelesaikan permasalahan max flow. Algoritma atau metode Ford Fulkerson merupakan perulangan. Aliran nilai pertama f (u, v) =0 untuk semua u, v ∈ V . Setiap sekali iterasi, nilai aliran ditingkatkan dengan menemukan augmenting path, di mana kita dapat memikirkan dengan mudah path dari source s ke tujuan t seterusnya di mana kita dapat mengirim terus aliran dan kemudian augmenting aliran melalui path. Kita ulangi proses ini sampai tidak ada augmenting path yang ditemukan. Teorema Max flow akan menunjukkan bahwa ketika terminate, proses ini memberikan aliran maksimum.
Algoritma Ford Fulkerson (G,s,t) 1 initialize flow f to 0 2 while there exists an augmenting path p do augmenting flow f along p 3 4 return f
Menurut Thomas H. et al(2001, p664), Dalam suatu permasalahan ditemukan pemasangan maksimal dalam graf bipartite dapat menggunakan metode Ford Fulkerson. Selain itu dapat juga dilihat bahwa metode Ford Fulkerson digunakan untuk menyelesaikan permasalahan maximum bipartite matching dalam graf G = (V , E ) dalam waktu O (V,E).
18
a. Permasalahan maksimum bipartite matching Diberikan graf tak berarah G = (V , E ) , matching memiliki anggota rusuk rusuk M ⊆ E . Misalnya untuk semua verteks v ∈ V , paling tidak ada rusuk anggota M yang insiden terhadap v . Dikatakan bahwa verteks v ∈ V terpasang dengan matching M jika beberapa rusuk anggota M insiden terhadap v , jika tidak insiden maka v tidak terpasang. Pemasangan maksimum berarti bahwa pemasangan M terhubung untuk beberapa pemasangan M’, dinotasikan sebagai | M |≥| M ′ | . Dalam bahasan ini, permasalahan dibatasi untuk menemukan pemasangan maksimal dalam graf bipartite. Diketahui bahwa set verteks dapat dibagi menjadi V = L ∪ R , di mana L dan R adalah tidak saling berhubungan dan semua
rusuk(edge) dalam E terletak antara L dan R. Lebih jauh dikatakan bahwa setiap verteks dalam V mempunyai paling tidak satu rusuk yang insiden. Gambar 2.8 menggambarkan notasi pemasangan.
Gambar 2.12. Graf bipartite (a)
G = (V , E ) dengan sebagian verteks V = L ∪ R .
Pemasangan dengan 2 anggota maksimum (b) Pemasangan maksimal dengan 3 anggota maksimum. (Thomas H, 2001, p665)
19 Permasalahan dalam menemukan pemasangan maksimal dalam graf bipartite mempunyai beberapa contoh aplikasi praktis. Sebagai contoh, kita dapat menganggap pemasangan perangkat L dari mesin dengan perangkat R dari tugas untuk bekerja secara bersamaan. Adanya rusuk (u,v) dalam E yang berarti bahwa mesin u ∈ L dapat mengerjakan beberapa tugas v ∈ R . Pemasangan maksimum menyediakan kerja bagi banyak mesin.
b. Menemukan pemasangan maksimal dalam kasus bipartite Kita dapat menggunakan metode Ford Fulkerson untuk menemukan pemasangan maksimal dalam graf bipartite tak berarah G = (V , E ) dengan time polynomial dalam | V | dan | E | . Triknya untuk menyusun aliran jaringan di mana aliran dihubungkan dengan pemasangan, seperti yang ditunjukkan pada gambar 2.13.
Hubungan
aliran
jaringan
G ′ = (V ′, E ′) untuk
graf
bipartite
G
dideskripsikan sebagai berikut; dua verteks ditambahkan di luar V sebagai sumber s dan tujuan t, dan V ' = V ∪ {s, t}. Jika sebagian verteks dari G adalah V = L ∪ R , rusuk berarah dalam G ′ adalah rusuk dalam E, langsung dari L
menuju R, selama | V | merupakan verteks baru : E ′ = {(s, u ) : u ∈ L}
∪ {(u , v ) : u ∈ L, v ∈ R, dan(u , v ) ∈ E} ∪ {(v, t ) : u ∈ R}
Untuk melengkapi konstruksi, kita menyatakan unit kapasitas untuk setiap rusuk dalam E’. Sejak setiap verteks dalam V mempunyai paling tidak satu rusuk
20 yang insiden, | E |≥| V | / 2 . Kemudian | E |≤| E ′ | = | E | + | V |≤ 3 | E |, dan juga | E | = Θ(E )
Gambar 2.13 Aliran jaringan berhubungan dengan graf bipartite. (a) Graf bipartite verteks
V = L∪R
aliran jaringan
G = (V , E )
dengan sebagian
dari gambar 2.8. Pemasangan maksimum dperlihatkan dengan rusuk yang tebal. (b) Hubungan
G ′ dengan aliran maksimal ditunjukkan. Rusuk tebal dari L menuju R berhubungan dengan pemasangan maksimum dalam graf bipartite. (Thomas H, 2001, p666)
Lemma berikut menunjukan pemasangan dalam G secara langsung dengan aliran dalam aliran G berhubungan dengan aliran jaringan G’. Dapat dikatakan bahwa aliran f dalam aliran jaringan G = (V , E ) adalah bernilai integer jika f(u,v) adalah integer untuk semua (u, v) ∈ V × V .
Sebagai penjelasan dari teori di atas, berikut contoh implementasi berdasarkan Sedgewick,Robert (2001,pp420-421). Pada gambar 2.14 diketahui permasalahan bipartite matching mempunyai anggota dari satu set dengan set lainnya. Di dalam graf bipartite tersebut terdapat rusuk yang saling menghubungkan setiap set. Source merupakan node baru yang menghubungkan ke banyak set pertama di
21 bawahnya, dan Sink merupakan node baru yang dihubungkan dari banyak set kedua di atasnya seperti pada gambar 2.15.
Gambar 2.14 Gambar contoh Bipartite Matching (Sedgewick, 2001, p421)
Gambar 2.15 Gambar contoh Bipartite Matching dengan source dan sink (Sedgewick, 2001, p421)
Dari permasalahan di atas, untuk mencari pemasangan maksimal digunakan metode Ford Fulkerson. Perulangan berlaku untuk mencari path-path yang mungkin, dan augmenting path dijalankan ketika ada node yang dikunjungi dua kali. Perulangan berlaku sampai ditemukan pemasangan maksimal. Dari
22 permasalah di atas, didapatkan beberapa pemasangan maksimum diantaranya seperti pada gambar 2.16 dan gambar 2.17.
Gambar 2.16 Gambar Solusi 1 soal Bipartite Matching
Gambar 2.17 Gambar Solusi 2 contoh Bipartite Matching
23 2.4
Konsep Dasar Rekayasa Piranti Lunak 2.4.1 Pengertian Rekayasa Piranti Lunak
Pengertian rekayasa piranti lunak pertama kali diperkenalkan oleh Fritz Bauer sebagai penetapan dan penggunaan prinsip-prinsip rekayasa dalam usaha mendapatkan piranti lunak yang ekonomis, yaitu piranti lunak yang terpercaya dan bekerja secara efisien pada mesin atau komputer (Pressman, 1992, p19). 2.4.2 Paradigma Rekayasa Piranti Lunak
Terdapat lima paradigma (model proses) dalam merekayasa suatu piranti lunak, yaitu The Classic Life Cycle atau sering juga disebut Waterfall Model, Prototyping Model, Fourth Generation Techniques (4 GT), Spiral Model, dan Combine Model. Pada penulisan skripsi ini dipakai model Waterfall Model. Menurut Pressman (1992, p20-21), ada enam tahap dalam Waterfall Model, seperti pada gambar berikut:
System Engineering Analysis Design Coding and Development Testing Maintenance
Gambar 2.18 Model Waterfall
24
a. Rekayasa sistem (System Engineering) Aktivitas ini dimulai dengan penetapan kebutuhan dari semua elemen sistem. Gambaran sistem ini penting jika perangkat lunak harus berinteraksi dengan elemen-elemen lain, seperti hardware, manusia dan database.
b. Analisis kebutuhan perangkat lunak (Software Requirement Analysis) Yang dilakukan pada tahap ini adalah untuk mengetahui kebutuhan piranti lunak, sumber informasi piranti lunak, fungsi-fungsi yang dibutuhkan, kemampuan piranti lunak dan antarmuka piranti lunak tersebut.
c. Perancangan (Design) Tahap ini menitikberatkan pada empat atribut program, yaitu struktur data, arsitektur piranti lunak, rincian prosedur dan karakter antarmuka. Tahap ini pula menerjemahkan kebutuhan ke dalam sebuah representasi perangkat lunak yang dapat dinilai kualitasnya sebelum dilakukan pengkodean.
d. Pengkodean (Coding) Tahap
pengkodean
yang
dilakukan
adalah
memindahkan
hasil
perancangan menjadi suatu bentuk yang dapat dimengerti oleh mesin, yaitu dengan membuat program.
25 e. Pengujian (Testing) Tujuan dari tahap pengujian adalah agar output yang dihasilkan oleh program sesuai dengan yang diharapkan. Pengujian dilakukan secara menyeluruh hingga semua elemen, perintah dan fungsi dapat berjalan sebagaimana mestinya. f. Pemeliharaan (Maintenance) Tahap pemeliharaan dilakukan dengan tujuan mengantisipasi kebutuhan pemakai terhadap fungsi-fungsi baru yang dapat timbul sebagai akibat munculnya sistem operasi baru, teknologi baru dan hardware baru.
2.5 Program Pendukung yang dipakai
2.5.1 J2ME (Java 2 Mobile Edition) Menurut Tri Mardiono (2006,p9), Teknologi mobile merupakan trend teknologi TI yang sudah mulai matang. Vendor-vendor raksasa sudah mengembangkan teknologi ini. Vendor-vendor itu antara lain : Microsoft, Sun, IBM, Oracle, dan sebagainya. Salah satu teknologi mobile yang populer adalah teknologi Java. Konsep “Write once run everywhere” membuat banyak pengembang aplikasi mobile mengadopsi Java. Sun Java menyusun bingkai kerja pengembangan aplikasi mobile ke dalam J2ME (Java 2 Mobile Edition). a. Keunggulan J2ME • Multiplatform
Aplikasi J2ME bisa berjalan di atas banyak platform yang di dalamnya terdapat JVM(Java Virtual Machine). Beberapa platform yang tersedia installer mobile JVM antara lain : Windows CE, Symbian, embedded Linux, dan sebagainya.
26 • Robust
Kode-kode Java adalah kode-kode yang robust, karena Virtual Marchine mengatur keamanan proses eksekusi aplikasi. • Terintegrasi dengan baik
J2ME bisa terhubung dengan back end J2EE server dan web service dengan mudah. • Berorientasi objek
Memudahkan pengembangan sistem yang dikembangkan dengan metode analisa dan desain berorientasi objek.
b. Arsitektur J2ME
Sumber : http://grasia.fdi.ucm.es/j2me/images/j2meLayers.jpg Gambar 2.19 Arsitektur J2ME
Dari gambar di atas kita bisa melihat bahwa J2ME memiliki dua konfigurasi virtual marchine. Dua konfigurasi tersebut adalah
27 -
Connected Limited Device Configuration(CLDC) CDCL bertujuan di desain untuk peranti mobile terkecil dengan memori 128-512 Kb, prosesor 16-32 bit. Profil dasar yang berjalan di atas CDLC adalah MIDP. Contoh device : mobile phone, PDA.
-
Connected Device Configuration(CDC) Konfigurasi high end yang membutuhkan memori minimum 2 Mb dan prosesor 32 bit. Profil dasar yang berjalan di atas CLC adalah foundation profile. Contoh Device : Nokia communicator, Internet TV, Car TV.
2.5.2 MIDP (Mobile Information Device Profile)
Menurut Wicaksono(2002, p9) MIDP menyediakan librari-librari Java untuk implementasi antarmuka, implementasi jaringan, database, timer. MIDP dirancang khusus untuk piranti mobile yang memiliki kapasitas terbatas. MIDP menyediakan pustaka yang cukup lengkap. Versi terbaru dari profil MIDP adalah MIDP versi 2.0. Paket-paket yang sudah tersedia pada MIDP 2.0 •
Paket opsional untuk PDA
•
Mobile Media API
•
Wireless messaging API
•
Location API
•
J2ME service API
•
Bluetooth API
•
Security and trust API
•
Mobile 3D Graphics API
28
2.5.3 IDE ( Integrated Development Environment ) dan Emulator
Menurut Tri Mardiono (2006,p19), Pengembangan aplikasi MIDP menjadi lebih mudah dengan tersedianya banyak IDE J2ME atau alat bantu pemrograman J2ME. Salah satu IDE J2ME adalah Netbeans dari SUN, Eclipse dari IBM, dan lain lain. Emulator merupakan aplikasi pada PC yang digunakan untuk menjalankan program dengan tampilan dan fungsionalitas seperti sebuah mobile phone.
2.5.4 MIDlet
Menurut Antonius Aditya Hartanto (2003, p13) MIDlet adalah aplikasi yang dibuat menggunakan J2ME dengan profile MIDP(Mobile information Device Profile). MIDP dikhususkan untuk digunakan pada handset dengan kemampuan CPU, memori, keyboard, dan layar terbatas misalnya pada mobile phone, PDA dan sebagainya. Untuk menjalankan MIDlet tentunya diperlukan perangkat keras (device) yang mendukung Java artinya perangkat tersebut harus memiliki Java Virtual Machine untuk menjalankan MIDlet. Sekarang tidak susah lagi untuk menemui perangkat yang bisa menjalankan MIDlet terutama untuk jenis mobile phone. Hampir setiap mobile phone keluaran terbaru telah menyertakan dukungan akan teknologi Java.
2.5.5 Mobile Phone Nokia
Menurut Martin J. Wells, Mobile Phone untuk merk dagang Nokia, memiliki bermacam-macam jenis dibagi-bagi berdasarkan serinya dapat dilihat di tabel berikut :
29
Tabel 2.1. Tabel Seri mobile phone Nokia
Seri
Screen
Type
Input Use
Seri 30
96 x 65
Monochrome / color
One – handed
Seri 40
128 x 128
Color
One – handed
Seri 60
176 x 208
Color
One – handed
Seri 80
640 x 200
Color
Two – handed
Seri 90
640 x 320
Color
Two – handed
Contoh Nokia Seri 30 terdapat pada mobile phone 3510i, Sedangkan contoh untuk Seri 40 pada mobile phone 3300. Contoh Seri 60 pada mobile phone 3600, 3650, 6600, 7650, 7610, N-Gage. Contoh Seri 80 pada mobile phone 9290, communicator. Contoh Seri 90 pada Mobile phone 7700.