BAB II
LANDASAN TEORI
2.1 Definisi Jaringan Komputer
Saat ini banyak orang yang memiliki dua komputer atau lebih, terutama bila membeli komputer baru yang lebih canggih, sedangkan komputer lama masih bisa dipakai. Komputer bisa berupa komputer desktop, laptop/notebook, dan personal digital assistant (PDA). Dua unit komputer dapat dihubungkan menjadi sebuah jaringan komputer. Komputer yang terhubung dengan jaringan akan memberikan manfaat yang lebih banyak. Berbagi file antar komputer, berbagi perangkat keras, seperti CDRoom, bermain multiplayer, dan berbagi koneksi internet merupakan beberapa contoh manfaat dari jaringan komputer [Angga Wibowo:2006].
Adapun komunikasi data dapat diartikan pengiriman data secara elektronik dari satu tempat ke tempat lain melalui suatu media komunikasi, dan data yang dikirimkan tersebut merupakan hasil atau akan diproses oleh suatu sistem komputer. Sistem jaringan dapat memiliki peralatan pada komputer server untuk dipakai secara bersama dengan komputer client-nya. Namun pada setiap komputer lokal dapat juga dipasang peralatan khusus untuk keperluan komputer lokal tersebut.
Dalam jaringan ada tiga komponen utama yang harus dipahami, yaitu :
a) Host atau node, yaitu sistem komputer yang berfungsi sebagai sumber atau penerima dari data yang dikirimkan. Masing-masing host mempunyai IP
address untuk mengidentifikasi suatu host dalam melakukan proses koneksi
dalam jaringan TCP / IP. Sedangkan masing-masing IP address di dalamnya terdapat Network ID dan Host ID. Network ID menunjukkan letak atau tempat sistem berada yang terdapat dalam IP Router dalam jaringan fisik yang sama.
Host ID ini lebih dikenal dengan workstation, server, router dan host TCP / IP
yang lainnya dalam suatu jaringan.
Suatu IP Address terdiri dari 32 bit yang bekerja dalam suatu urutan waktu. Dari 32 bit kemudian dipecah menjadi 8 bit atau lebih dikenal dengan oktet dimana masing-masing oktet dikonversikan dalam bilangan desimal yang berkisar antara 0 sampai 255. Node ini dapat berupa:
1. Server : komputer tempat penyimpanan data dan program-program
aplikasi yang digunakan dalam jaringan,
2. Client : komputer yang dapat mengakses sumber daya (berupa data
dan program aplikasi) yang ada pada server,
3. Shared pheriperal : peralatan-peralatan yang terhubung dan digunakan
dalam jaringan (misalnya, printer, scanner, harddisk, modem, dan lain-lain).
b) Link, adalah media komunikasi yang menghubungkan antara node yang satu dengan node lainnya. Media ini dapat berupa saluran transmisi kabel dan tanpa kabel.
c) Software (Perangkat Lunak), yaitu program yang mengatur dan mengelola jaringan secara keseluruhan. Termasuk di dalamnya sistem operasi jaringan yang berfungsi sebagai pengatur komunikasi data dan periferal dalam jaringan.
2.2 Arsitektur Jaringan Komputer
Pada jaringan komputer, komputer dan peranti lainnya saling berkomunikasi melalui seperangkat aturan bersama yang dikenal sebagai protokol. protokol merupakan sejumlah aturan bersama yang dikenal sebagai protokol. Protokol merupakan sejumlah aturan yang diformulasikan untuk mengatur pertukaran data antar entitas yang saling berkomunikasi. arsitektur jaringan komputer membahas aturan umum yang digunakan untuk mendefinisikan bagaimana protokol yang berbeda dalam sistem saling berinteraksi untuk melayani pengguna. Ada tiga bentuk arsitektur yang umum digunakan dalam jaringan komputer [Prof Dr.Zuhal:2004] :
1. Jaringan peer to peer
Pada jaringan peer to peer (Lihat Gambar 2.1.), semua komputer memiliki posisi setara/sejajar, dalam hierarki yang sama. Setiap komputer dapat menjadi klien terhadap komputer peer lainnya, setiap komputer dapat pula
berbagi sumber daya dengan komputer yang berada dalam jaringan
peer-to-peer ini. Sumber daya diletakkan secara desentralisasi pada setiap anggota
jaringan, dan tidak memerlukan administrator jaringan.
Sifat jaringan peer to peer digunakan untuk hubungan antara setiap komputer yang terhubung dalam jaringan komputer yang ada, sehingga komunikasi data terjadi antar komputer dengan hierarki yang sama karena setiap komputer dapat berfungsi sebagai server maupun klien.
2. Jaringan client/server
Pada jaringan client/server (Lihat Gambar 2.2.), perangkat lunak yang mengontrol keseluruhan kerja jaringan berada pada server. Jaringan ini bisa diatur sehingga setiap klien harus log on ke server sebelum bisa memanfaatkan sumber daya yang terhubung ke server.
3. Jaringan hybrid
Jaringan ini merupakan gabungan dari sifat pada jaringan peer to peer dan client/server. Workgroup yang terdiri dari beberapa komputer yang saling terhubung dapat mengelola sumber daya tanpa membutuhkan otorisasi dari administrator jaringan atau server. Pada jenis jaringan ini, terdapat pula sifat dari jaringan client/server sedemikian sehingga tingkat keamanan dapat lebih terjaga dan adanya server yang mempunyai suatu fungsi layanan tertentu, seperti sebagai file server, print server, database server, mail server, dan lainnya.
2.3 Game Berbasis Jaringan
Jaringan untuk game dibagi menjadi dua kategori besar yaitu LAN (Local Area Network) game dan WAN (Wide Area Network) game. Perancangan dan implementasi LAN game lebih sederhana dari pada WAN game. Perbedaan mendasar terdapat pada cara penanganan latency dan cara komputer tersebut dihubungkan di jaringan (tipe koneksi jaringan) [CLI-04:195].
Latency adalah waktu yang dibutuhkan untuk pengiriman sebuah paket data sampai ke tujuan. Besarnya Latency dipengaruhi jarak antara mesin pengirim dan mesin penerima dalam jaringan. Semakin jauh jarak antara mesin pengirim dan penerima semakin besar jumlah latency-nya. Hubungan latency ini dapat dianalogikan dengan latency air melewati sebuah selang [CLI-04:196]. Hubungan latency ini ditunjukkan pada Gambar 2.3.
Gambar 2.3 Latency air untuk melewati sebuah selang yang ditentukan panjang selang. Sumber : [CLI-04:196]
Bandwith adalah faktor kritis yang mempengaruhi besarnya latency. Bandwith merupakan jumlah byte yang dapat dikirim per satuan waktu [CLI-04:197]. Biasanya besarnya bandwith diukur dalam satuan bytes/seconds. Semakin besar bandwith semakin kecil latency-nya. Bandwith dapat dianalogikan sebagai lebar selang air. Analogi ini ditunjukkan pada Gambar 2.4.
Gambar 2.4 Bandwith dari perjalanan air melewati selang ditentukan oleh lebar selang. Sumber : [CLI-04:197]
Komputer yang dipakai dalam WAN networked multiplayer game mempunyai tipe koneksi yang berbeda. Tipe koneksi yang umum dipakai yaitu koneksi dengan analog modem (56K), DSL modem, atau koneksi secara langsung seperti T1 dan T3 lines. Setiap tipe koneksi tersebut mempunyai karakteristik yang berbeda terhadap latency dan bandwith dalam sebuah WAN networked multiplayer game. Sedangkan komputer desktop yang dihubungkan di sebuah LAN melalui
sebuah Ethernet port atau wireless ethernet connection (80211.b or 80211.g) dapat mengabaikan latency dan bandwith. [CLI-04:197].
2.4 Protokol Komunikasi Jaringan
Pengiriman data di jaringan membutuhkan berbagai macam metode. Metode ini yang disebut sebagai protokol. TCP/IP dan UDP merupakan protokol jaringan yang banyak digunakan.
2.4.1 TCP (Transmission Control Protocol)
TCP (Transmission Control Protocol) merupakan protokol yang dirancang khusus untuk menyediakan sebuah reliable end-to-end byte stream melalui sebuah unreliable internetwork [TAN-03:493].
Semua koneksi dari TCP adalah full duplex dan point-to point. [TAN-03:494] Full duplex berarti lalu lintas data dapat berjalan dua arah pada waktu yang sama. Sedangkan point-to-point berarti setiap koneksi pasti mempunyai dua buah end point.
2.4.2 UDP (User Datagram Protocol)
UDP (User Datagram Protocol) merupakan transport protocol yang bersifat connectionless. [TAN-03:487] Protokol ini menyediakan sebuah cara kepada aplikasi untuk mengenkapsulasi IP datagrams tanpa harus menjaga koneksi tersebut. Manfaat dari UDP yang paling besar adalah mendukung beberapa penerima untuk sebuah
pengiriman paket data melalui sebuah multicast channel. Dalam pengembangan game server UDP multicast sangat penting digunakan untuk melakukan pekerjaan seperti mengetahui game dalam sebuah jaringan.
2.5 Socket
Istilah socket pertama kali dikenalkan di Berkeley Unix dan telah diadopsi menjadi sebuah standar untuk menjelaskan koneksi TCP/IP dan UDP yang melewati sistem operasi yang berbeda. Socket merupakan sebuah end point untuk sebuah komunikasi jaringan [CLI-04:200].
2.5.1 TCP/IP Socket
Koneksi TCP/IP dapat dikatakan sebagai dua kabel virtual (virtual wire) yang saling terhubung antara dua buah komputer. Sedangkan TCP/IP socket dapat dikatakan sebagai tempat ditancapkannya kabel tersebut di kedua komputer. TCP/IP socket dapat digunakan sebagai host atau client. Sebuah host socket akan menunggu koneksi dari client dan mempunyai nomor identifikasi yang disebut port. Gambar 2.3 menunjukkan pengiriman data melewati TCP/IP.
2.5.2 UDP Socket
Koneksi UDP dapat dikatakan seperti koneksi tanpa kabel (wireless connection). Sedangkan UDP socket dapat dikatakan sebagai tempat untuk menerima
dan mengirim paket data dari/ke beberapa mesin. Semua paket yang dikirimkan melalui UDP harus dilabeli alamat mesin dan port number yang digunakan. Penerimaan dan pengiriman paket data dari/ke beberapa mesin dapat menggunakan sebuah UDP socket yang sama. Gambar 2.4 menunjukkan pengiriman data melalui UDP.
2.6 Kabel Jaringan
Pertama kali LAN menggunakan kabel “coaxial”. Kemudian, kabel “twisted pair” yang digunakan dalam sistem telepon telah mampu membawa frekuensi yang lebih tinggi dan dapat mendukung trafik LAN. Dan saat ini, kabel fiber optik telah tampil sebagai pilhan kabel berkecepatan sangat tinggi.
Local Area Network menggunakan empat tipe kabel : 1. Coaxial
2. Unshielded Twisted Pair (UTP) 3. Shielded Twisted Pair (STP) 4. Fiber Optik.
Kabel UTP merupakan salah satu media transmisi yang paling banyak digunakan untuk membuat sebuah jaringan local (Local Area Network), selain karena harganya relative murah, mudah dipasang dan cukup bisa diandalkan. Sesuai namanya Unshielded Twisted Pair berarti kabel pasangan berpilin/terbelit (twisted
pair) tanpa pelindung (unshielded). Fungsi lilitan ini adalah sebagai eleminasi terhadap induksi dan kebocoran.
Dalam jaringan LAN atau yang umumnya menggunakan Ethernet dikenal 2 jenis kabel jaringan yaitu Straight dan Cross , dimana keduanya memiliki fungsi koneksivitas yang berbeda dalam jaringan. Kabel Straight umumya digunakan untuk mengghubungakan koneksi dari Port pada Switch / Hub , dan kabel Cross biasa digunakan untuk koneksi point to point antar 2 komputer yang di hubungkan lewat ethernet Card.
1. Kabel Straight
Untuk melakukan terminasi kabel straight biasanya beberapa orang menerapkan cara twin side yaitu menyamakan susunan antara kedua ujung konektor tanpa memperhatikan susunan warna yang dipakai.
2. Kabel Cross
Kabel cross adalah kabel yang memiliki urutan warna yang berbeda pada kedua ujung konektor, dari susunan warna yang disusun hanya menukar urutan pin / warna di salah satu ujung konektor yang di pasang, dimana urutan warna yang ditukar adalah urutan ke 1 dengan yang ke 3 dan urutan warna yang ke 2 dengan yang ke 6.
2.7 Visual Basic Programming
Dalam pembuatan aplikasi kriptografi wake ini menggunakan software Microsoft Visual Basic (sering disingkat sebagai VB saja) yang merupakan sebuah bahasa pemrograman yang bersifat event driven dan menawarkan Integrated Development Environment (IDE) visual untuk membuat program aplikasi berbasis sistem operasi Microsoft Windows dengan menggunakan model pemrograman Common Object Model (COM). Visual Basic merupakan turunan bahasa BASIC dan menawarkan pengembangan aplikasi komputer berbasis grafik dengan cepat, akses ke basis data menggunakan Data Access Objects (DAO), Remote Data Objects (RDO), atau ActiveX Data Object (ADO), serta menawarkan pembuatan kontrol ActiveX dan objek ActiveX.
Para programmer dapat membangun aplikasi dengan menggunakan komponen-komponen yang disediakan oleh Microsoft Visual Basic Program-program yang ditulis dengan Visual Basic juga dapat menggunakan Windows API, tapi membutuhkan deklarasi fungsi eksternal tambahan.
Visual Basic merupakan bahasa yang mendukung OOP, namun tidak sepenuhnya dan tidak bersifat case sensitif. Visual Basic menjadi populer karena kemudahan desain form secara visual dan adanya kemampuan untuk menggunakan komponen-komponen ActiveX yang dibuat oleh pihak lain.
2.8 Permainan Strategi Menyusun N Bola Beruntun Berbasis Multiplayer Permainan ini menyediakan kotak-kotak untuk bermain dengan 3 level permainan, semakin rumitnya permainan maka jumlah kotak yang di sediakan akan semakin lebih banyak. Lihat Gambar 2.5.
Gambar 2.5 kotak permainan strategi menyusun N bola beruntun berbasis multiplayer
Masing-masing pemain bergantian ketika bermain untuk meletakkan bola-bola yang sama warna sebanyak N bola sesuai batas area bermain untuk mendapatkan score nilai, apabila pemain lawan hendak mengisi N bola yang beruntun maka untuk mencegahnya mendapatkan score nilai, maka pemain dapat membuat strategi meletakkan bola di antara N bola beruntun lawan, agar pemain lawan tidak mendapatkan score nilai.
Level Dasar (3x3) Level Menengah (6x6) Level Sulit (9x9)
2.9 Metodologi Rekayasa Perangkat Lunak
Metodologi perangkat lunak yang digunakan dalam pembuatan sistem aplikasi ini adalah sebagai berikut :
Unified Modelling Language (selanjutnya disebut UML) adalah keluarga notasi
grafis yang didukung oleh meta-model tunggal, yang membantu pendeskripsian dan desain sistem perangkat lunak, khususnya sistem yang dibangun menggunakan pemrograman berorientasi objek (Fowler, 2005:1). Selain itu UML juga dapat diartikan sebagai sebuah bahasa yang telah menjadi standar dalam industri untuk visualisasi, merancang dan mendokumentasikan sistem piranti lunak (Dharwiyanti dan Wahono, 2003:2). UML menawarkan sebuah standar untuk merancang model sebuah sistem. Dengan menggunakan UML kita dapat membuat model untuk semua jenis aplikasi piranti lunak, dimana aplikasi tersebut dapat berjalan pada piranti keras, sistem operasi dan jaringan apapun, serta ditulis dalam bahasa pemrograman apapun. Di proyek pengembangan sistem apapun, fokus utama dalam analisis dan perancangan adalah model dan diagram. Model menggambarkan pandangan yang lengkap tentang suatu sistem pada suatu tahapan tertentu dan dari perspektif tertentu. Sedangkan diagram menggambarkan atau mendokumentasikan beberapa aspek dari sebuah sistem. Sebuah model mungkin mengandung satu atau lebih diagram. untuk model sederhana, satu diagram mungkin akan mencukupi. Akan tetapi biasanya sebuah model terdiri dari banyak diagram. UML terdiri atas 13 jenis diagram resmi seperti tertulis dalam Tabel 2.1
Tabel 2.1 Jenis diagram resmi UML
No. Diagram Kegunaan
1 Activity Behavior prosedural dan parallel
2 Class Class, fitur , dan hubungan-hubungan 3 Communication Interaksi antar objek; penekanan pada jalur
4 Component Struktur dan koneksi komponen
5 Composite structure Dekomposisi runtime sebuah class 6 Deployment Pemindahan artifak ke node
7 Interaction overview Campuran sequence dan activity diagram
8 Object Contoh konfigurasi dari contoh-contoh
9 Package Struktur hirarki compile-time
10 Sequence Interaksi antar objek; penekanan pada sequence 11 State machihne Bagaimana even mengubah objek selama aktif 12 Timing Interaksi antar objek; penekanan pada timing 13 Use case Bagaimana pengguna berinteraksi dengan sebuah
Diagram UML yang akan dibahas pada bab ini adalah diagram use case (use
case diagram), diagram aktifitas (activity diagram), dan diagram sekuensial (sequence
diagram)
2.9.1 Diagram Use Case
Diagram use case adalah teknik untuk merekam persyaratan fungsional sebuah sistem. Diagram use case mendeskripsikan interaksi tipikal antara para pengguna sistem dengan sistem itu sendiri, dengan memberi sebuah narasi tentang bagaimana sistem tersebut digunakan (Fowler, 2005:141). Diagram use case menggambarkan fungsionalitas yang diharapkan dari sebuah sistem. Yang ditekankan adalah apa yang diperbuat sistem, dan bukan bagaimana (Dharwiyanti dan Wahono, 2003:4).
Menurut Munawar (2005:63) use case adalah deskripsi fungsi dari sebuah sistem dari perspektif pengguna. Use case bekerja dengan cara mendeskripsikan tipikal interaksi antara pengguna sebuah sistem dengan sistemnya sendiri melalui sebuah cerita bagaimana sebuah sistem dipakai. Urutan langkah-langkah yang menerangkan antara pengguna dan sistem disebut skenario. Setiap skenario mendeskripsikan urutan kejadian. Setiap urutan diinisialisasi oleh orang, sistem yang lain, perangkat keras atau urutan waktu. Dengan demikian secara singkat bisa dikatakan use case adalah serangkaian skenario yang digabungkan bersama-sama
Dalam pembicaraan tentang use case, pengguna biasanya disebut dengan aktor. Aktor adalah sebuah peran yang bisa dimainkan oleh pengguna dalam interaksinya dengan sistem. Aktor mewakili peran orang, sistem yang lain, atau alat ketika berkomunikasi dengan use case. Di dalam use case terdapat Stereotype yaitu sebuah model khusus yang terbatas untuk kondisi tertentu. Untuk menunjukkan
Stereotype digunakan simbol ”<<” diawalnya dan ditutup ”>>” diakhirnya. <<include>> digunakan untuk menggambarkan bahwa suatu use case 15 seluruhnya
merupakan fungsionalitas dari use case lainnya. Biasanya <<include>> digunakan untuk menghindari penggandaan suatu use case karena sering dipakai. <<extend>> digunakan untuk menunjukkan bahwa suatu use case merupakan tambahan fungsional dari use case yang lain jika kondisi atau syarat tertentu dipenuhi. Di dalam
use case juga terdapat generalisasi. Generalisasi diantara aktor adalah spesialisasi
aktor yang bisa berpartisipasi di semua use case yang diasosiasikan dengan aktor yang lebih umum. Tabel 2.2 menampilkan notasi-notasi dalam pemodelan diagram use case menurut Booch, Rumbaugh, dan Jacobson (1998:187).
Tabel 2.2. Notasi pemodelan diagram use case
No. Notasi Keterangan
1 Aktor
2 Use Case
3 Batas sistem (system boundary)
4 Garis penghubung (pengendali arah)
5 Gabungan (association)
6 Generalisasi (generalization)
7 Realisasi (realization)
8 Stereotype penyertaan (include)
Menurut Munawar (2005:179) setiap use case harus dideskripsikan dalam dokumen yang disebut dengan dokumen aliran kejadian (flow of event). Dokumen ini mendefinisikan apa yang harus dilakukan oleh sistem ketika aktor mengaktifkan use
case. Struktur dari dokumen use case ini bisa macam-macam, tetapi umumnya
deskripsi ini paling tidak harus mengandung : 1. Deskripsi singkat (brief description). 2. Aktor yang terlibat.
3. Kondisi awal (precondition) yang penting bagi use case untuk memulai. 4. Deskripsi rinci dari aliran kejadian yang mencakup:
a. Aliran utama (main flow) dari kejadian yang bisa dirinci lagi. b. Aliran bagian (sub flow) dari kejadian.
c. Aliran alternatif untuk mendefinisikan situasi perkecualian.
5 Kondisi akhir yang menjelaskan state dari sistem setelah use case berakhir. Dokumen use case ini berkembang selama masa pengembangan. Di awal-awal penentuan kebutuhan sistem, hanya deskripsi singkat saja yang ditulis. Bagian bagian lain dari dokumen ini ditulis secara gradual dan iteratif. Akhirnya sebuah dokumen lengkap bisa didapatkan di akhir fase spesifikasi. Biasanya pada fase spesifikasi ini sebuah prototipe yang dilengkapi dengan tampilan layar bisa ditambahkan. Pada tahap berikutnya, dokumen use case ini bisa digunakan untuk membuat dokumentasi untuk implementasi sistem.
2.9.2 Diagram Aktifitas
Menurut Munawar (2005:109) diagram aktifitas adalah teknik untuk mendeskripsikan logika prosedural, proses bisnis dan aliran kerja dalam banyak kasus. Diagram aktifitas mempunyai peran seperti halnya diagram alur (flowchart), akan tetapi perbedaannya dengan flowchart adalah diagram aktifitas bisa mendukung perilaku paralel sedangkan flowchart tidak bisa. Berikut pada Tabel 2.3 adalah simbol-simbol yang sering digunakan pada saat pembuatan diagram aktifitas.
Tabel 2.3. Simbol-simbol pada diagram aktifitas
No. Simbol Keterangan
1 Titik awal
2 Titik akhir
3 Aktifitas (activity)
4 Pilihan untuk mengambil keputusan
5 Fork; digunakan untuk menunjukkan
kegiatan yang dilakukan secara paralel atau untuk menggabungkan dua kegiatan paralel menjadi satu
7 Tanda waktu
8 Tanda pengiriman
9 Tanda penerimaan
10 Aliran akhir (Flow final)
2.9.3 Diagram Sekuensial
Menurut Munawar (2005:87) diagram sekuensial digunakan untuk menggambarkan perilaku pada sebuah skenario. Diagram ini menunjukkan sejumlah contoh objek dan pesan yang diletakkan diantara objek-objek ini di dalam use case. Komponen utama diagram sekuensial terdiri atas objek atau disebut juga peserta
(participant) yang dituliskan dengan kotak segi empat bernama, pesan diwakili oleh
garis dengan tanda panah dan waktu yang ditunjukkan dengan garis tegak lurus. Setiap obyek terhubung dengan garis titik-titik yang disebut garis hidup (lifeline). Sepanjang garis hidup terdapat kotak yang disebut penggerakan (activation). Tabel 2.4 memperlihatkan notasi-notasi dalam pemodelan diagram sekuensial.
Tabel 2.4. Notasi pemodelan diagram sekuensial
No. Notasi Keterangan
1 Aktor 2 Obyek 3 Batas (boundary) 4 Kendali (control) 5 Entitas (entity) 6 Penggerakan (activation)
7 Garis hidup (lifeline)
8 Pesan selaras (Synchronous message)
9 Pesan tidak selaras (Asynchronous
message)
10 Pesan kembali yang tidak selaras
(asynchronous return message)
11 Pesan rekursif (self message)
13 Pesan ditemukan (found message)
14 Pesan pembuatan obyek baru
15 Pesan penghapusan obyek
2.10 Perancangan Program
Program adalah kumpulan pernyataan komputer, sedangkan metode dan tahapan sistematis dalam program adalah algoritma. Program ditulis dengan menggunakan bahasa pemrograman. Jadi bisa disebut bahwa program adalah suatu implementasi dari bahasa pemrograman.
Beberapa pakar memberi formula bahwa: Program = Algoritma + Bahasa (Struktur Data)
Bagaimanapun juga struktur data dan algoritma berhubungan sangat erat pada sebuah program. Algoritma yang baik tanpa pemilihan struktur data yang tepat akan membuat program menjadi kurang baik, demikian juga sebaliknya [Heri Sismoro:2005].
2.10.1 Struktur Data
Struktur data adalah cara penyimpanan, penyusunan dan pengaturan data di dalam media penyimpanan komputer sehingga data tersebut dapat digunakan secara efisien. Dalam teknik pemrograman, struktur data berarti tata letak data yang berisi kolom-kolom data, baik itu kolom yang tampak oleh pengguna (user) atau pun kolom yang hanya digunakan untuk keperluan pemrograman yang tidak tampak oleh pengguna. Setiap baris dari kumpulan kolom-kolom tersebut dinamakan catatan (record). Lebar kolom untuk data dapat berubah dan bervariasi. Ada kolom yang lebarnya berubah secara dinamis sesuai masukan dari pengguna, dan juga ada kolom yang lebarnya tetap. Dengan sifatnya ini, sebuah struktur data dapat diterapkan untuk pengolahan database (misalnya untuk keperluan data keuangan) atau untuk pengolah kata (word processor) yang kolomnya berubah secara dinamis. Contoh struktur data dapat dilihat pada berkas-berkas lembar-sebar (spreadsheet), pangkal-data (database), pengolahan kata, citra yang dipampat (dikompres), juga pemampatan berkas dengan teknik tertentu yang memanfaatkan struktur data. Pemakaian struktur data yang tepat di dalam proses pemrograman akan menghasilkan algoritma yang lebih jelas dan tepat, sehingga menjadikan program secara keseluruhan lebih efisien dan sederhana [Heri Sismoro:2005].
2.10.2 Algoritma
Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis dan logis. Kata logis merupakan kata kunci dalam algoritma. Langkah-langkah dalam algoritma harus logis dan harus dapat ditentukan bernilai salah atau benar. Dalam beberapa konteks, algoritma adalah spesifikasi urutan langkah untuk melakukan pekerjaan tertentu. Pertimbangan dalam pemilihan algoritma adalah, pertama, algoritma haruslah benar. Artinya algoritma akan memberikan keluaran yang dikehendaki dari sejumlah masukan yang diberikan. Tidak peduli sebagus apapun algoritma, kalau memberikan keluaran yang salah, pastilah algoritma tersebut bukanlah algoritma yang baik.
Pertimbangan kedua yang harus diperhatikan adalah kita harus mengetahui seberapa baik hasil yang dicapai oleh algoritma tersebut. Hal ini penting terutama pada algoritma untuk menyelesaikan masalah yang memerlukan aproksimasi hasil (hasil yang hanya berupa pendekatan). Algoritma yang baik harus mampu memberikan hasil yang sedekat mungkin dengan nilai yang sebenarnya.
Ketiga adalah efisiensi algoritma. Efisiensi algoritma dapat ditinjau dari 2 hal yaitu efisiensi waktu dan memori. Meskipun algoritma memberikan keluaran yang benar (paling mendekati), tetapi jika kita harus menunggu berjam-jam untuk mendapatkan keluarannya, algoritma tersebut biasanya tidak akan dipakai, setiap orang menginginkan keluaran yang cepat. Begitu juga dengan memori, semakin besar memori yang terpakai maka semakin buruklah algoritma tersebut. Dalam
kenyataannya, setiap orang bisa membuat algoritma yang berbeda untuk menyelesaikan suatu permasalahan, walaupun terjadi perbedaan dalam menyusun algoritma, tentunya kita mengharapkan keluaran yang sama. Jika terjadi demikian, carilah algoritma yang paling efisien dan cepat.
2.11 Pengujian
Pengujian perangkat lunak adalah elemen kritis dari jaminan kualitas perangkat lunak dan merepresentasikan kajian pokok dari spesifikasi, desain, dan pengkodean. (Pressman, 2002:525)
2.11.1 Pengujian Black Box
Salah satu bentuk pengujian black box adalah metode partisi ekivalensi yaitu metode pengujian black box yang membagi domain input dari suatu program ke dalam kelas data dari mana test case dapat dilakukan (Pressman, 2002:526) Pengujian
black box berusaha menemukan kesalahan diantaranya fungsi-fungsi yang hilang atau
tidak benar, kesalahan interface, kesalahan dalam struktur data atau akses basis data eksternal, kesalahan kinerja, inisialisasi dan kesalahan terminasi. Pengujian black box ini dilakukan untuk memperlihatkan bahwa fungsi-fungsi bekerja dengan baik dalam arti masukan yang diterima dengan benar dan keluaran yang dihasilkan benar-benar tepat, pengintegrasian dari eksternal data berjalan dengan baik (file/data). Walaupun
lebih sering dipilih untuk menguji perangkat lunak karena kemudahan dalam pelaksanaannya. Proses yang terdapat dalam pengujian Black-Box :
1. Pembagian kelas data untuk pengujian setiap kasus pada pengujian
White-Box.
2. Analisis batasan nilai yang berlaku untuk setiap data
2.11.2 Pengujian White Box
Pengujian White box ditujukan untuk mengetahui fungsi yang ditentukan dimana produk dirancang untuk melakukannya pengujian dapat dilakukan untuk memperlihatkan bahwa masing-masing fungsi beroperasi sepenuhnya, pada waktu yang sama untuk mencari kesalahan-kesalahan pada setiap fungsi. Dengan metode ini perekayasa sistem dapat melakukan pengujian jalur yang memberikan jaminan bahwa semua jalur independen path atau lintasan pada suatu modul telah digunakan paling tidak satu kali, menggunakan semua keputusan logis pada sisi benar (true) dan salah (false) program akan diuji serta eksekusi semua loop dalam batasan kondisi dan batasan operasionalnya selain itu juga meliputi pengujian validasi struktur data internal. Pelaksanaan pengujian White box :
1. Menjamin seluruh independent path dieksekusi paling sedikit satu kali. Independent path adalah jalur dalam program yang menunjukkan paling sedikit satu kumpulan proses ataupun kondisi baru.
3. Semua konstruksi pengulangan (loop) akan dieksekusi hingga batas akhir pengulangannya.
4. Struktur data internal dapat diuji untuk menjamin validitasnya. Analisa siklomatis adalah metrik perangkat lunak yang memberikan pengukuran kuantitatif terhadap kompleksitas logis suatu program. Nilainya memberikan jumlah dari independent path dalam basis set dan upper bound dari jumlah test untuk memastikan bahwa setiap statement dieksekusi paling tidak satu kali.
Tiga cara untuk menghitung Analisa Siklomatis :
Jumlah region grafik alir sesuai dengan kompleksitas siklomatis Jumlah edge – jumlah node + 2
Jumlah predicate node + 1
Dengan metode ini perekayasa sistem dapat melakukan pengujian yang benar dengan mengikuti prinsip-prinsip yang benar akan menghasilkan perangkat lunak yang memiliki tingkat kesalahan yang minimal dan menghasilkan perangkat lunak yang berkualitas.