BAB II LANDASAN TEORI 2.1 Game Playing Games adalah salah satu fasilitas yang sangat menarik dalam komputer. Ide games pertama kali dimunculkan oleh Claude Shannon (1950) yang menulis paper tentang mekanisme pembuatan program permainan catur. Beberapa tahun kemudian, Alan Turing mendeskripsikan program permainan catur namun ia sendiri belum pernah membuat rancangan program. Baru pada awal tahun 1960an Arthur Samuel mencoba untuk membuat program catur tersebut. Ada beberapa alasan mengapa games merupakan domain yang baik untuk di eksplore, yaitu: 1.
Sangat
mudah
untuk
menentukan
ukuran
kesuksesan
dan
kegagalannya (menang atau kalah). 2.
Tidak membutuhkan terlalu banyak pengetahuan. Permainan dapat diselesaikan dengan melakukan pencarian dari arah start sampai pada posisi menang (finish).
3.
Ruang keadaan mudah direpresentasikan.
4.
Opertaor-operator yang digunakan tidak terlalu banyak.
5.
Sebagian besar game dapat dimodelkan.
6.
Sangat mungkin untuk dibandingkan dengan kemampuan manusia.
Alasan pertama memang masih bisa diterima sampai sekarang. Namun alasan kedua ternyata tidak cocok untuk games yang besar (kompleks). Sebagai contoh pada permainan catur: 10
11
1.
Rata-rata setiap node bercabang sebanyak 35;
2.
Tiap-tiap pemain rata-rata bergerak 50 kali;
3.
Sehingga total dalam satu pohon, akan terdapat posisi sebanyak . (Kusumadewi, 2003)
Ruang
keadaan
dalam
games
dapat
direpresentasikan
dengan
menggunakan pohon pelacakan. Tiap-tiap node pada pohon tersebut berhubungan dengan keadaan yang mungkin dalam permainan tersebut. Setiap gerakan akan membawa perubahan dari keadaan sekarang (current state) ke keadaan selanjutnya (child state). Untuk mengefektifkan proses pencarian, maka dapat dilakukan dengan 2 cara, yaitu: 1.
Membentuk suatu prosedur sedemikian hingga hanya gerakangerakan yang baik saja yang dibangkitkan.
2.
Membentuk suatu prosedur sedemikian hingga gerakan (path) yang terbaik yang akan dieksplore pertama kali.
2.1.1
Depth First Search Depth First Search (DFS), proses akan dilakukan pada semua anaknya
sebelum dilakukan pencarian ke node-node (titik) yang selevel. Pencarian dimulai dari node akar ke level yang lebih tinggi. Proses ini diulangi terus hingga ditemukannya solusi. Stack atau tumpukan adalah struktur data yang setiap proses baik penambahan maupun penghapusan hanya bisa dilakukan dari posisi teratas tumpukan. Cara kerja stack adalah LIFO (Last In First Out), dimana data yang terakhir masuk akan keluar pertama. (Kusumadewi, 2003)
12
Proses pencarian langkah terpendek untuk DFS pada aplikasi dilakukan dengan menerapkan algoritma berikut : Untuk J = (i - 1) sampai 1 dengan step -1 Jika A(J) = pnPosisiAwal And IsValidMove2(B(Indeks array tertinggi(B)), A(J)) maka i = 1 nLangkah = A(1) Jika tidak, jika IsValidMove1(B(UBound(B)), A(J)) maka i = i – 1 nLangkah = A(J) Jika i = 1 maka keluar dari looping Next J
Algoritma 1. Jika keadaan awal merupakan tujuan, keluar (sukses). 2. Jika tidak demikian, kerjakan langkah-langkah berikut ini sampai tercapai keadaan sukses atau gagal : (a) Bangkitkan successor E dari keadaan awal. Jika tidak ada successor, maka akan terjadi kegagalan (b) Panggil depth-first search dengan E sebagai keadaan awal. (c) Jika sukses berikan tanda sukses. Namun jika tidak, ulangi langkah 2 Keuntungan 1. Membutuhkan memori yang relatif kecil, karena hanya node-node pada lintasan yang aktif saja yang disimpan 2. Secara kebetulan, metode depth-first search akan menemukan solusi tujuan tanpa harus menguji lebih banyak lagi dalam ruang keadaan.
13
Kelemahan 1. Memungkinkan tidak ditemukannya tujuan yang diharapkan. 2. Hanya akan mendapatkan 1 solusi pada tiap pencarian. Analisis ruang dan waktu
Gambar 2.1 Pohon pencarian Depth-First Search 1. Analisis ruang •
Setelah berjalan 1 langkah, stack akan berisi b node.
•
Setelah berjalan 2 langkah, stack akan berisi (b-1)+b node.
•
Setelah berjalan 3 langkah, stack akan berisi (b-1)+(b-1)+b node.
•
Setelah berjalan d langkah, stack akan berisi (b-1)*d+1 node, mencapai maksimum.
14
2. Analisi waktu •
Pada kasus terbaik, depth-first search akan mencapai tujuan pada kedalaman d pertama, sehingga dibutuhkan pencarian sebanyak d+1 node.
•
Pada kasus terburuk, depth-first search akan mencapai tujuan pada kedalaman d pada node terakhir, sehingga dibutuhkan pencarian sebanyak: 1+b+ (
2.1.2
+
+…+
=
-1)/(b-1).
Minimax Ide dasar dari teori games (permainan) adalah perilaku strategis dari
pemain dalam pengambilan suatu keputusan yang bertujuan untuk memenangkan permainan, setiap pemain dianggap mempunyai suatu rencana untuk setiap situasi yang timbul dalam proses permainan. Algoritma Minimax adalah salah satu algoritma yang digunakan pada permainan papan yang dimainkan oleh dua user dan berbasis zero-sum (pendapatan poin untuk user yang satu merupakan kehilangan poin untuk user lawan). Algoritma ini sering mendasari pola pikir langkah penyelesaian masalah dalam beberapa jenis permainan papan yang dimainkan di komputer. Secara garis besar konsep algoritma minimax ini adalah meminimalkan kemungkinan kekalahan dan memaksimalkan kemungkinan kemenangan.
15
Algoritma MINIMAX : Minimax (StatusSaya, Kedalaman, Pemain) IF (Kedalaman==Max) RETURN static (StatusSaya, Pemain) Bangkitkan successor S [1..n] IF (Pemain==Saya) RETURN max of Minimax (S[i], kedalaman+1, Lawan) ELSE RETURN min of Minimax (S[i], kedalaman+1, Saya)
Salah satu teknik games yang terkenal adalah minimax. Minimax menggunakan depth-first search dengan kedalaman terbatas. Fungsi evaluasi yang digunakan adalah fungsi evaluasi statis, dengan mengasumsikan bahwa lawan akan membuat langkah terbaik yang mungkin. Gambar 2.1 menunjukkan pohon pelacakan minimax. (Kusumadewi, 2003) A Gerakan saya (Maximum play)
B
C
D
Gerakan lawan (Minimum play)
E
F
G
H
I
J
K
9
-6
0
0
-2
-4
-3
Gambar 2.2 pohon pelacakan Minimax Pada Minimax kita mengenal adanya istilah ply yaitu gerakan ‘saya’ dan ‘lawan’. Gambar 2.1 menunjukkan games dengan 1 ply search, sedangkan Gambar 2.2 menunjukkan games dengan 2 ply search.
16
A
Saya
B
C
D
-6
-2
-4
Lawan
Gambar 2.3 Satu ply Search
A
B
Saya
C
Lawan
D
E
F
G
H
I
J
K
9
-6
0
0
-2
-4
-3
Saya
Gambar 2.4 Dua ply Search 2.1.3
Permainan dalam Minimax Pada Minimax ada 2 prosedur yang dijalankan, yaitu: Maksimisasi
(dilakukan oleh ‘saya’), dan Minimisasi (dilakukan oleh ‘lawan’). Dalam hal ini diperlukan suatu fungsi evaluasi statis yang menyatakan nilai yang mungkin didapat oleh pemain (misalkan nilai tersebut antara -10 sampai +10).
17
B
-6
A
-2
C
-2
Maksimasi
D
-4 Minimasi
E
F
G
H
I
J
K
9
-6
0
0
-2
-4
-3
Gambar 2.5 Backing Up Nilai dalam Dua ply search Gambar 2.4 menunjukkan backing up nilai yang diperoleh dalam 2 ply search. Pada level pertama ‘saya’ melakukan maksimisasi, sedangkan pada level kedua ‘lawan’ melakukan minimisasi. Lawan memilih nilai yang paling rendah yaitu -6, -2 dan -4. Pada saat ‘saya’ melakukan maksimisasi, saya akan memilih -2 (nilai terbesar diantara -6, -2 dan -4. Sehingga nilai inilah yang nantinya akan didapat. Pada Minimax, terdapat istilah pruning. Kita dapat menggunakan teknik branch-and-bound untuk mengurangi junlah keadaan yang harus diuji untuk menentukan nilai dari suatu pohon pelacakan. Kita dapat menyimpan nilai batas bawah pada node yang melakukan maksimasi, dan kita tidak perlu menghiraukan cabang-cabang yang tidak akan memperbaiki batas tersebut (lebih tinggi). Demikian pula, kita dapat menyimpan batas atas dari node yang melakukan minimasi, dan kita juga tidak perlu menghiraukan cabang-cabang yang tidak akan memperbaiki batas tersebut (lebih rendah).
18
2.2 Permainan Ular Tangga 2.2.1
Sejarah Ular Tangga Ular tangga adalah permainan papan untuk anak-anak yang dimainkan
oleh 2 orang atau lebih. Papan permainan dibagi dalam kotak-kotak kecil dan di beberapa kotak digambar sejumlah “tangga” atau “ular” yang menghubungkannya dengan kotak lain. Permainan ini diciptakan pada tahun 1870. Tidak ada papan permainan standar dalam ular tangga – setiap orang dapat menciptakan papan mereka sendiri dengan jumlah kotak, ular dan tangga yang berlainan. Tahun 1990, Mizan pernah membuat “Ular Tangga Muslim”. Mungkin yang perlu dicermati adalah unsur filosofi dan akidahnya.
Gambar 2.6 Permainan ular tangga Setiap pemain mulai dengan bidaknya di kotak pertama (biasanya kotak di sudut kiri bawah) dan secara bergiliran melemparkan dadu. Bidak dijalankan sesuai dengan jumlah mata dadu yang muncul. Bila pemain mendarat di ujung
19
bawah sebuah tangga, mereka dapat langsung pergi ke ujung tangga yang lain. Bila mendarat di kotak dengan ular, mereka harus turun ke kotak di ujung bawah ular. Pemenang adalah pemain pertama yang mencapai kotak terakhir. Biasanya bila seorang pemain mendapatkan angka 6 dari dadu, mereka mendapat giliran sekali lagi. Bila tidak, maka giliran jatuh ke pemain selanjutnya. Ular Tangga adalah game yang ditemukan dan dimainkan oleh orangorang India sejak dahulu kala. Di India populer dengan nama MOKSHA PATAMU yang ditemukan oleh Guru spiritual Hindu. Permainan ini disebut “Leela” dan mencerminkan kesadaran Hindu di sekitar kehidupan sehari-hari. Nama lainnya adalah “Tangga Keselamatan” yang lalu dibawa ke Victoria Inggris di mana versi barunya telah dibuat dan diperkenalkan oleh John Jacques di tahun 1892. Dan lalu masuk ke Amerika oleh seorang pembuat mainan bernama Milton Bradley di tahun 1943 yang lalu diberi nama “Snakes n Ladder” yang artinya “Ular Tangga”. Moksha Patam dikaitkan dengan Filsafat tradisional Hindu yakni: “Karma dan Kama” atau yang diartikan dengan “Takdir dan Keinginan”. Permainan ini juga ditafsirkan dengan Pembelajaran Efek dari Perbuatan Baik Melawan Perbuatan Buruk. Tangga mewakili kebaikan seperti kemurahan hati , iman , dan kerendahan hati. Ular mewakili keburukan dan kejahatan seperti nafsu, kemarahan, pembunuhan, dan pencurian. Pelajaran moral dari permainan itu adalah moksh, seseorang dapat mencapai keselamatan melalui berbuat baik. Sementara dengan melakukan yang jahat akan mewarisi kelahiran kembali ke bentuk kehidupan yang rendah.
20
Jumlah tangga kurang dari jumlah ular sebagai pengingat bahwa jalan yang baik adalah jauh lebih sulit untuk melangkah dari jalan dosa. Agaknya angka “100? diwakili Moksha (keselamatan). Di Andhra Pradesh, ular dan tangga dimainkan dalam nama Vaikuntapali. 2.2.2
Aturan Permainan Tujuan dari permainan ini adalah untuk memindahkan pion dari posisi
start menuju garis finish sesuai pion yang telah dipilih pada awal mula permainan, permainan biasanya dimainkan oleh dua pemain dan maksimal empat pemain. Permainan dapat dimulai setelah menentukan siapa pemain pertama yang mendapatkan giliran pertama, dan pemain lain berikutnya. Kadangkala untuk menentukan siapa pemain yang mendapat giliran pertama kali melangkah adalah dengan cara pengocokan dadu, dan pemain yang mendapat angka 6 mendapat gilian pertama. Pemain dapat melakukan lompatan kotak apabila pemain tersebut berhenti tepat pada awal mula kotak yang terdapat anak tangga, dan berhenti pada akhir anak tangga. Sedangkan pemain yang berhenti pada kotak ular, maka pemain tersebut harus turun sampai pada akhir kotak yang terdapat ular tersebut. Adapun langkah-langkah permainannya sebagai berikut: 1.
Hompimpah kalo jumlah pemain lebih dari dua, dan suit jika jumlah pemain dua orang.
2.
Tentukan pion sesuai warna yang diinginkan.
3.
Permainan dimulai dari pemain yang mendapat giliran pertama.
4.
Kocok dadu, dan liat angka yang ditunjukkannya.
21
5.
Melangkah sesuai angka yg ditunjukkan oleh dadu.
6.
Jika anda bertemu ular, maka anda harus turun ke kotak yang menjadi ujung ekor ular tersebut, dan jika anda mendapatkan anak tangga maka naik sampai ujung anak tangga tersebut.
2.3 Pengolahan Citra Digital Citra (image) secara umum dapat diciptakan dari aplikasi multimedia seperti Adobe Photoshop, bisa juga berupa hasil scan dari foto atau lukisan, penggabungan hasil scanning dan editing, juga hasil foto kamera digital. (Murni, 1992). 2.3.1
Definisi Citra Citra adalah representasi visual yang terdiri dari sekumpulan piksel atau
titik berwarna dalam bentuk dua dimensi. Citra merupakan representasi dua dimensi (2-D) dari intensitas cahaya yang dinyatakan dengan fungsi f(x,y), dimana x dan y merupakan koordinat spasial dan nilai fungsi f menunjuk pada titik (x,y). (Gonzales, 2001) 2.3.2
Definisi Pixel Pixel didefinisikan sebagai unsur citra (image) atau unsur pengindraan,
yang menunjuk pada satuan terkecil yang dapat dialamati dalam kegunaan grafik. Pada citra berformat bitmap, sekumpulan pixel adalah titik-titik yang digunakan untuk membangun suatu citra. (Murni, 1992)
22
2.3.3
Resolusi Kualitas sebuah citra ditentukan pula oleh resolusi. Resolusi adalah
banyaknya pixel yang menghasilkan sebuah citra dalam sebuah layar atau printer. Semakin banyak jumlah pixel-nya, maka semakin tinggi resolusinya dan akan dihasilkan citra yang lebih baik dan lebih halus. Resolusi yang ideal merupakan keseimbangan antara kualitas dengan ukuran penyimpanan citra tersebut. (Murni, 1992) 2.3.4
Format Penyimpanan Citra Format penyimpanan citra yaitu TIFF (Tagged Image File Format), GIF
(Graphics Interchange Format), JPEG (Joint Photographic Experts Group), PNG (Portable Network Graphics), PCD (Photo CD), BMP (Bitmap), PIXAR (Pixar Image Computers), WMF (Windows Metafile). (Murni, 1992) a. Format File BMP BMP adalah format file gambar standar untuk sistem operasi Windows. Format file ini dikembangkan oleh Microsoft untuk menyimpan gambar (bitmap) dan memungkinkan Windows untuk menampilkan kembali gambar tersebut. Struktur dari file BMP terdiri dari BitmapFileHeader yang mengandung informasi mengenail file, BitmapInfoHeader yang menyimpan informasi mengenai gambar (seperti dimensi, warna dan lain – lain), tabel warna yang didefinisikan sebagai array dari struktur RGBQUAD, dan sisanya adalah data gambar. Jumlah warna yang terdapat pada gambar ditentukan oleh BiBitCount. Kemungkinan nilai untuk BiBitCount adalah 1 (hitam/putih), 4 (16 warna), 8 (256
23
warna), dan 24 (16,7 juta warna). Elemen data BiBitCount sekaligus menentukan apakah pada file BMP terdapat tabel warna atau tidak, sekaligus susunan dari tabel warnanya. Gambar 1 bit, tabel warna hanya berisi dua warna (biasanya hitam dan putih). Jika setiap bit dari data gambar bernilai 0 maka warna yang ditunjuknya adalah warna pertama di dalam tabel warna. Jika setiap bit dari data gambar bernilai 1 maka warna yang ditunjuknya adalah warna kedua yang terdapat di dalam tabel warna. Pada gambar 4 bit, tabel warnanya berisikan 16 warna. Setiap byte yang terdapat pada data gambar mewakili dua piksel. Byte-byte tersebut dibagi menjadi dua bagian, masing – masing 4 bit. Bit – bit tadi menunjukkan ke warna – warna yang terdapat pada tabel warna. Pada gambar 8 bit, setiap byte mewakili satu piksel. Nilai dari setiap byte tadi menunjuk ke salah satu warna yang terdapat pada tabel warna yang di dalamnya berisi 256 warna. Gambar 24 bit, 3 byte digunakan untuk mewakili satu piksel. Byte yang pertama mewakili unsur warna merah, byte yang kedua mewakili unsur warna hijau, dan byte ketiga mewakili unsure warna biru. Pada gambar 24 bit, tabel warna tidak dibutuhkan karena setiap piksel mengandung unsur warna merah, hijau dan biru yang sebenarnya. Tabel warna sendiri dibentuk dari struktur RGBQUAD yang disusun dalam bentuk array. Struktur dari RGHQUAD dapat dilihat pada tabel dibawah ini. (Murni, 1992)
24
b. Format File GIF Format file GIF (Graphics Interchange Format) merupakan hasil rancangan CompuServe Incorporated. Format ini dirancang untuk memudahkan pertukaran citra bitmap antar komputer. GIF hanya mendukung resolusi warna sampai 256 warna (8-bit) [HPJ90]. Format file GIF memiliki dua versi yaitu GIF 87a dan GIF89a. Versi GIF89a diperkenalkan pada bulan Juli 1989 merupakan perbaikan dari versi GIF87a. Pada GIF89a ditambahkan kemampuan untuk menampilkan citra dengan latar belakang transparan (background transparency), penyimpanan data citra secara interlaced dan kemampuan untuk menampilkan citra animasi. GIF menggunakan variable-length code yang merupakan modifikasi dari algoritma LZW (Lemple-Ziv Wetch) untuk mengkompresi data citra. Teknik kompresi data ini mampu menghasilkan kompresi yang baik dan merupakan teknik kompresi yang mampu mengembalikan data sama persis dengan aslinya (lossless data compression). (Murni, 1992) 2.4 Audio Dalam sistem komunikasi bercirikan video, sinyal elektrik digunakan untuk membawa unsur bunyi. Istilah ini juga biasa digunakan untuk menerangkan sistem-sistemyang berkaitan dengan proses perekaman dan transmisi yaitu sistem pengambilan/penangkapan suara, sambungan transmisi pembawa bunyi, amplifier danlainnya.
25
2.4.1
Format File Audio Berikut beberapa format file audio yang populer digunakan :
a. AAC ( Advance Audio Codec ) Adalah sistem lossy compession untuk file audio, dikembangkan oleh Motion Picture Expert Group ( Fraunhofer Institute, Dolby, Sony, Nokia dan AT&T ) untuk menggantikan MP3. Ini perluasan dari MPEG-2 standard dan mempunyai kelebihan tersendiri dibandingkan MP3, kompresi yang lebih effisien dengan kualitas suara audio yang lebih baik dan mendukung audio multichannel. b. AIFF dan AIFC ( Audio Interchange File Format ) Merupakan format file yang tidak dikompres, yang dikembangkan oleh Apple pada Machintosh dan platform Unix. c. MP3 ( MPEG-1/2 Audio Layer 3 ) Adalah format audio yang paling poluler. Menggunakan algoritma audio lossy compression untuk mengurangi ukuran file, sambil memprouksi kembali lagi aslinya. MP3 dikembangkan di German Fraunhofer Institute dan berbasis format MPEG ( lihat format video ). MP3 mengalami kejayaan pada tahun 1995, dimana semakin banyak file MP3 tersedia diinternet dan popularitasnya semakin terdongkrak karena kualitasnya dan kapasitas yang menjadi relatif sangat kecil. Kompresi MP3 dapat dilakukan dengan bit-rate yang beragam. Standar yang baik untuk kualitas audio dan ukuran file adalah 128 Kbps, untuk mendapati kualitas yang mendekati kualitas CD diperlukan bit-rate 192 kbps. Kualitas CD dan MP3 sulit dibedakan pada bit-rate 192 kbps. Pada tahun 2001, MP3 Pro
26
generasi berikutnya diperkenalkan dan menawarkan kualitas suara dan kompresi yang sudah ditingkatkan, namun karena tidak ada decoder MP3Pro gratisan, format yang sebenarnya luar biasanya ini belum dapat menggantikan standar MP3. d. Ogg dan Ogg Vorbis Ogg adalah format multimedia gratisan yang dirancang untuk streaming dan penyimpanan yang effiesien. Format ini dikembangkan oleh Xiph.org Foundation. Begitu pula Vorbis yang merupakan codec audio gratisan. Vorbis biasanya dipasang bersama Ogg, sehingga muncullah yang namanya Ogg Vorbis. Peluncuran format dan codec ini sebenarnya respon atas rencana pemilik MP3 pada tahun 1998 yang hendak mengenakan biaya lisensi untuk format MP3. OggVorbis sangat populer dikalangan open source, karena kualitas dan sifatnya yang gratis. Namun hingga saat ini walaupun gratis, masih sedikit player yang mendukung format ini, salah satu yang terkenal adalah winamp yang ikut mendukung format Ogg Vorbis. e. Real Audio Adalah codec audio yang dikembangkan oleh Real Networks pada tahun 1995. Codec ini awalnya dikembangkan untruk transmisi bandwith rendah. Dapat digunakan untuk streaming informasi audio dan dapat berjalan saat file audio tersebut masih didownload. RealAudio banyak digunakan oleh statiun radio untuk streaming program-program mereka via internet secara real time. RealNetworks juga menyediakan player software gratisan dan berbayar yang bernama
27
RealPlayer, namun untuk yang gratisan tidak dapat melakukan meyimpan audio stream sebagai file. f. WAV (WAVE-form) Adalah standar audio yang dikembangkan oleh Microsoft dan IBM, WAV ini adalah format utama untuk menyimpan data audio mentah pada Windows dan menggunakan metode yang sama dengan AIFF Apple untuk menyimpan data. WAV menggunakan teknik pulse-code modulation (PCM) yang tidak dikompres. Dengan cara ini , detil tidak hilang ketika audio analog didigitalkan dan disimpan. Ini membuat format WAV (menggunakan PCM) menjadi pilihan untuk mengedit audio high-fidelity. Akan tetapi untuk keperluan mengoleksi musik, transfer via internet dan memainkan diplayer portable, format ini kurang popular dibandingkan dengan MP3, Ogg Vorbis dan VMA yang dikarenakan ukuran file yang sangat besar. g. WMA ( Window Media Audio ) Adalah codec untuk lossy compression, yang dikembangkan pertama sekali ujua untuk menyaingi MP3 oleh Microsoft. Sementara ini Microsoft memposisikan WMA bersaing dengan AAC yang digunakan pada produk Apple seperti iPod dan iTunes Music Strore. WMA juga menggunakan sistem Digital Rights Management seperti AAC untuk proteksi penggandaan dan membatasi pemutaran pada PC atau peranti tertentu. WMA audio stream hampir selalu dengan file ASF. Jika hanya membawa data audio, biasnya file mempunyai
28
ekstensi .WMA. Adapula versi lossless untuk multichannel surround sound dan untuk voice encoding (WMA Voice). 2.5 Flowchart Flowchart atau diagram alir adalah bagan-bagan yang mempunyai arus yang menggambarkan
langkah-langkah
penyelesaian
suatu masalah.
Dengan adanya flowchart, akan sangat membantu untuk memvisualisasikan isi dari setiap kegiatan yang dilakukan. Flowchart adalah sekumpulan simbol-simbol yang menunjukkan atau menggambarkan rangkaian kegiatan-kegiatan program dari awal hingga akhir, jadi flowchart juga digunakan untuk menggambarkan urutan langkah-langkah pekerjaan di suatu algoritma. (Pressman, 1995) 2.6 Notepad Notepad adalah sebuah aplikasi sebuah text editor simple yang sudah ada sejak Windows 1.0 di tahun 1985 yang ada di setiap system windows baik xp, vista, seven dan sebagainya. aplikasi ini dapat dikatakan aplikasi yang paling sering di gunakan oleh para user, baik kepentingan pribadi ataupun lainnya, misalnya noteped di gunakan untuk sekedar belajar, mengetik HTML, membuat catatan, dan bahkan
ada saja untuk tindakan yang merugikan orang lain
contohnya membuat virus. 2.7 Microsoft Visual Basic NET Microsoft Visual Studio.NET merupakan salah satu bahasa program yang termasuk dalam Microsoft Visual Studio.NET dan merupakan pemrograman visual yang berbasis pada bahasa BASIC. Akhiran NET berarti di Visual Studio ini juga
29
anda bisa aplikasi berbasis WEBSITE. Microsoft telah merilis Versi Visual Studio.NET sebagai berikut Visual Studio.NET 2005, Visual Studio .NET 2008 dan Visual Studio.NET 2010 (versi terbaru) Karena merupakan bahasa pemrograman yang mudah dipelajari dan handal. Microsoft Visual Studio.NET 2010 adalah salah satu program berorientasi objek, selain itu ada pula program Java dan C++ yang juga berbasis objek. Program Microsoft Visual Studio.NET 2010 adalah produksi Microsoft Corp. Program ini biasanya dipaket bersama-sama dengan Visual C# 2010 dan Visual C++ 2010 dalam paket Microsoft Visual Studio.NET 2010. Bahasa Visual Basic telah digunakan secara luas karena kemudahan penggunaannya bagi orang awam dan penulisan kode di dalamnya tidak terlalu rumit dibandingkan bahasa C, Delphi, dan Java. Microsoft Visual Studio.NET 2010 (disingkat VB.Net 2010) menawarkan banyak kemudahan dibandingkan versi-versi sebelumnya, antara lain teknik pemrograman dapat dibuat lebih terstruktur dan lebih banyak bantuan dalam pemrograman. Jauh lebih mudah untuk menguasainya dibandingkan dengan versinya yang terdahulu, yaitu Visual Basic 6 (disingkat VB6). Ada banyak perubahan dalam VB.Net 2010 ini dibandingkan VB6, antara lain: •
Bahasa pemprograman sekarang bahasa berbasis objek (Object Oriented Programming), sedangkan VB6 bukan bahasa berbasis objek.
•
Aplikasi dan komponen yang ditulis di VB.Net 2010 mempunyai akses penuh ke Net Framework, sedangkan di VB6 tidak dikenal atau tidak digunakan Net Framework.
30
•
Semua aplikasi yang dibuat beroperasi dalam manajemen Common Language Runtime (CLR). Net Framework sendiri (yang sekarang sudah versi 4.5) adalah suatu
himpunan file-file pustaka yang telah terorganisasi dan berguna sebagai fasilitas untuk sistem dan aplikasi. Seorang programmer tidak perlu lagi menghapal fungsi-fungsi Windows API untuk akses sistem seperti didalam bahasa VB6 karena sudah diorganisasi oleh Net Framework. Semua fungsi-fungsi Windows API tersebut telah dijadikan objek-objek yang dapat dengan mudah digunakan dan ditemukan oleh programmer VB.Net 2010. Pemrograman Berbasis Objek (PBO) sendiri adalah suatu pendekatan ke arah struktur pengembangan aplikasi berdasarkan objek, dimana objek tersebut dapat berupa prosedur, event, ataupun variabel. Objek satu dapat menjadi bawahan objek lainnya berdasarkan susunan fungsinya, artinya suatu objek terdepan terdiri atas beberapa objek yang memiliki tugas lebih sempit, dan antar objek dapat saling berinteraksi dalam melaksanakan tugas tertentu. Common Language Runtime (CLR) adalah suatu runtime lingkungan yang memproses, melaksanakan, dan mengatur kode dasar Visual Basic, mirip dengan runtime Visual Basic terdahulu, yaitu vbrun300.dll atau msvbvm60.dll. Kemampuannya lebih ditingkatkan sehingga jalannya program yang dibuat lebih stabil dan penanganan kesalahan lebih baik, dengan tujuan supaya program dapat berjalan secara optimum.
31
2.8
Pengujian Didalam pengembangan software, pengujian pada umumnya sangat
diperlukan sebelum perangkat lunak tersebut diberikan kepada kalayak ramai. Pengujian yang dikenal dengan alpha testing sering dilakukan dibawah suatu debugger atau dengan hardware-assisted yang debugging untuk menangkap bugs dengan cepat. Teknik ini juga dikenal sebagai white-box testing. Selanjutnya diserahkan kepada staff pengujian untuk pemeriksaan tambahan di dalam lingkungan yang serupa. Teknik ini dikenal juga dengan black-box testing dan sering disebut langkah lanjutan dari white-box testing. 2.8.1
Pengujian White Box White box testing atau pengujian glass box adalah desain test case
menggunakan struktur control desain prosedural untuk mendapatkan test case, dengan menggunakan metode white box analisis sistem akan memperoles test case yang : 1. Menjamin independent path didalam modul yang dikerjakan sekurangkurangnya sekali 2. Mengerjakan seluruh keputusan logical 3. Mengerjakan seluruh loop sesuai dengan batasnya 4. Mengerjakan seluruh struktur internal yang menjamin validitas Pengujian aliran data dan kondisi lebih lanjut menggunakan logika program dan pengujian loop menyempurnakan teknik white box yang lain dengan memberikan sebuah prosedur untuk menguji loop dari tingkat kompleksitas yang bervariasi.
32
Pada pengujian white box terdapat 2 metode yaitu Basis Path dan Struktur kendali tetapi pada pembahsan ini penulis hanya membahas tentang pengujian Basis Path. Pengujian basis path adalah pengujian white box yang diusulkan pertama kali oleh Tom McCabe. Metode ini memungkinkan penguji dapat mengukur kompleksitas logis dari desain procedural dan menggunakannya sebagai pedoman untuk menetapkan himpunan basis dari semua jalur eksekusi. Kasus uji dihasilkan untuk melakukan sekumpulan basis yang dijamin untuk mengeksekusi setiap perintah dalam program, sedikitnya satu kali selama uji coba. Adapun tahapantahapan pada pengujian white box testing dengan metode basis path adalah sebagai berikut : a. Notasi Diagram Air Sebelum metode basis path dapat diperkenalkan, notasi sederhana untuk representasi aliran control yang disebut diagram alir harus diperkenalkan. Grafik alir itu menggambarkan aliran kontrol logika yang menggunakan notasi yang ditunjukkan pada gambar berikut. Masing-masing gagasan tersebut memiliki symbol grafik alir yang sesuai.
Gambar 2.7 Notasi diagram aliran
33
Contoh sederahan grafik alir yang sesuai diperlihatkan pada gambar berikut : Var A, B, C : integer Begin A := 10; B :=5; C:= 6; If A>B then C:=A+B Else if A>C then C:=A Else C:=B; Endif Endif Writeln(‘Nilai C = ‘,C); End.
Penggambaran Flowchart
(1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12)
Penggambaran Flow Graf
Gambar 2.8 Contoh diagram aliran basis path
34
b. Kompleksitas Siklomatis Kompleksitas Siklomatis adalah matrik perangkat lunak yang memberikan pengukuran kuantitatif terhadap kompleksitas logis suatu program. Nilai yang terhitung untuk kompleksitas Siklomatis menentukan jumlah jalur independent dalam basis set suatu program dan memberi batas atas bagi jumlah pengujian yang harus dilakukan untuk memastikan bahwa semua statement telah dieksekusi sedikitnya satu kali. Fondasi kompleksitas Siklomatis adalah teori grafik, dan memberi kita matrik perangkat lunak yang sangat berguna. Kompleksitas dihitung dengan salah satu dari 3 cara berikut : 1. Jumlah region grafik alir sesuai dengan kompleksitas Siklomatis. 2. Kompleksitas Siklomatis, V(G), untuk grafik alir G ditentukan sebagai V(G) = E – N + 2 dimana E adalah jumlah edge grafik alir dan N adalah jumlah simpul grafik alir. 3. Kompleksitas Siklomatis, V(G), untuk grafik alir G juga ditentukan sebagai V(G) = P + 1 dimana P adalah jumlah simpul predikat yang diisikan dalam grafik alir G. Simpul Predikat adalah penggambaran suatu simpul node yang memiliki 2 kondisi atau lebih busur yang keluar. Berdasarkan contoh sebelumnya, maka jalur independent yang didapat : Jalur 1 : 1,2,3 – 4 – 5 – 10 – 11 – 12 Jalur 2 : 1,2,3 – 4 – 6 – 7 – 9 – 10 – 11 – 12 Jalur 3 : 1,2,3 – 4 – 8 – 9 – 10 – 11 – 12
35
2.8.2
Pengujian Black Box Pengujian black box merupakan pendekatan komplementer dari teknik
white box, karena pengujian black box diharapkan mampu mengungkap kelas kesalahan yang lebih luas dibandingkan teknik white box. Pengujian black box berfokus pada pengujian persyaratan fungsional perangkat lunak, untuk mendapatkan serangkaian kondisi input yang sesuai dengan persyaratan fungsional suatu program. Pengujian black box adalah pengujian aspek fundamental sistem tanpa memperhatikan struktur logika internal perangkat lunak. Metode ini digunakan untuk mengetahui apakah perangkat lunak berfungsi dengan benar. Pengujian black box merupakan metode perancangan data uji yang didasarkan pada spesifikasi perangkat lunak. Data uji dibangkitkan, dieksekusi pada perangkat lunak dan kemudian keluaran dari perangkat lunak dicek apakah telah sesuai dengan yang diharapkan. Pengujian black box berusaha menemukan kesalahan dalam kategori : 1. Fungsi-fungsi yang tidak benar atau hilang 2. Kesalahan interface 3. Kesalahan dalam struktur data atau akses database eksternal 4. Kesalahan kinerja 5. Inisialisasi dan kesalahan terminasi.
36
2.8.3
Pengujian Beta Dilakukan pada satu atau lebih pelanggan oleh pemakai akhir perangkat
lunak dalam lingkungan yang sebenarnya, pengembang biasanya tidak ada pada pengujian ini. Pelanggan merekam semua masalah (real atau imajiner) yang ditemui selama pengujian dan melaporkan pada pengembang pada interval waktu tertentu. Untuk mendapat persentase pada pengujian beta, penulis menggunakan rumus pada gambar 2.9 Y = P/Q*100 Gambar 2.9 Rumus persentase pengujian beta Keterangan : P Q Y
= = =
Banyaknya jawaban responden dari setiap soal Jumlah responden Nilai persentase