• Tidak ada hasil yang ditemukan

BAB II LANDASAN TEORI

N/A
N/A
Protected

Academic year: 2021

Membagikan "BAB II LANDASAN TEORI"

Copied!
27
0
0

Teks penuh

(1)

8 2.1 Game Networking

Networking 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, waktu yang dibutuhkan oleh 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].

Bandwith, 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.

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

(2)

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. Hal ini dikarenakan kedua koneksi tersebut menambahkan latency yang sangat kecil dan menyediakan bandwith dalam jumlah besar dari pada bandwith yang dibutuhkan oleh game [CLI-04:197].

2.1.1 Game Networking Protocol

Game networking protocol untuk LAN game dapat diklasifikasikan menjadi dua macam cara yaitu, klasifikasi menurut cara bersinkronisasi dan cara berkomunikasi. Klasifikasi game networking protocol menurut cara bersinkronisasi dibagi menjadi dua yaitu, Lock-step dan Open-Loop Synchronization. Sedangkan menurut cara berkomunikasi dibagi menjadi dua yaitu, Controller-State dan Object-State Communication [CLI-04:232].

Lock-step game muncul dari model single player game. Dalam single player game, controller dibaca sekali setiap frame, posisi baru dihitung, dan game logic diproses. Frame yang dihasilkan akan di-render dan di-flip ke layar. Sebuah lock-step game bekerja dengan cara yang sama. Setelah game membaca semua controller, game mengirimkan sebuah paket data ke semua pemain dalam game kemudian menunggu sampai semua pemain bergiliran mengirimkan paket data controller sebelum mengkalkulasi hasilnya. Lock-step game mungkin merupakan model termudah karena sesuai dengan yang ada di game. Dan juga relatif mudah untuk

(3)

menambahkan cheat protection dalam game yaitu, dengan cara mengirimkan data secara rutin pada game state dan controller sehingga game session dapat melakukan sanity-check satu sama lain. Jika sebuah client mengirimkan state yang berbeda dengan client lainnya maka dapat dinyatakan secara jelas telah terjadi cheat atau bug. Kelemahan dari pendekatan ini adalah setiap pemain harus mengirimkan input untuk game agar game dapat berlanjut. Keterbatasan ini menyebabkan lock-step game tidak sesuai untuk permainan Internet karena latency dapat menghentikan game.

Open-loop asynchronous game sangat berbeda dengan lock-step game. Sebuah open-loop asynchronous game berjalan pada game loop dengan kecepatan tertinggi (maximum frame rate). Secara periodik, game meperbarui data berdasarkan data yang diterima dan data sebelumnya. Kemudian game memodifikasi data pemain lain dengan cara memperkirakan apa yang dikerjakan pemain lain. Cara atau teknik ini dinamakan dengan dead reckoning. Tipe game ini sangat sesuai untuk Internet games. Open-loop asynchronous game bersifat latency-immune dan setiap pemain berjalan pada maximum frame rate. Tetapi open-loop asynchronous game ini mempunyai kelemahan terbesar yaitu masalah security. Dalam prakteknya sebagian besar Internet games yang ada sekarang ini merupakan model open-loop asynchronous yang telah dimodifikasi dimana salah satu pemain bertindak sebagai server dan dikontrol oleh game maker.

Controller-state communication menurun dari model single player game. Game akan membaca controller dan mengirimkan sebuah raw packet setiap

(4)

frame-nya sehingga tidak menyediakan informasi yang cukup untuk memperkirakan paket data selanjutnya. Tipe komunikasi ini sesuai untuk lock-step game dan tidak sesuai untuk open-loop asynchronous game.

Object-state communication berbeda dengan controller-state communication. Paket data yang dikirimkan bukan berupa raw packet namun paket data yang berisi seluruh state dan telah dikalkulasi sebelumnya. Object-state communication ini sesuai dengan open-loop asynchronous game yang menggunakan teknik dead reckoning. 2.1.2 Game Networking Process

Secara umum game networking process untuk LAN game dapat dibagi menjadi tiga [CLI-04:207] :

• Discovery, proses untuk menemukan game server atau sesi permainan yang aktif • Creating game session, proses untuk membuat sesi permainan yang baru dan

sekaligus mengaktifkan game server.

• Joining game session, proses untuk bergabung ke sesi permainan yang aktif.

2.2 Arsitektur Sistem Berdasarkan LAN

Adalah sebuah model komputerisasi dimana sebuah aplikasi client dijalankan di komputer desktop atau komputer pribadi yang mengakses informasi pada server atau host yang terletak di lain tempat. Bagian dari aplikasi yang dijalankan di client biasanya digunakan untuk mengoptimalkan interaksi dengan user, dimana server menyediakan proses tersentralisasi dan bekerja secara multiuse.r

(5)

Arsitektur jaringan Client-Server merupakan model konektivitas pada jaringan yang membedakan fungsi computer sebagai Client dan Server .Arsitektur ini menempatkan sebuah komputer sebagai Server. Server ini yang bertugas memberikan pelayanan kepada terminal-terminal lainnya tang terhubung dalam system jaringan atau yang kita sebut Client-nya. Pada aplikasi game Battleship ini menggunakan arsitektur jaringan dengan LAN. Lihat Gambar 2.1

Gambar 2.1 Arsitektur Jaringan LAN

2.3 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.3.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]. Hal ini berarti setiap paket data yang dikirim melalui TCP dijamin untuk sampai ke penerima sesuai dengan urutan paket data yang benar. Sebuah internetwork berbeda dengan sebuah single network karena internetwork memiliki berbagai macam topologi, bandwith, delay, ukuran paket yang

(6)

berbeda. TCP dirancang untuk beradaptasi dengan karakteristik dari internetwork dan handal dalam menghadapi berbagai macam bentuk failures. TCP didefinisikan dalam RFC 793, RFC 1122, dan RFC 1323.

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. Karena itu TCP tidak mendukung multicasting atau broadcasting.

2.3.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. UDP tidak menjamin setiap paket data yang dikirim sampai ke penerima dengan urutan yang benar (unreliable). Hal ini membuat UDP sebagai protokol yang lebih sederhana daripada TCP.

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.4 Socket

Istilah socket pertama kali dikenalkan di Berkeley Unix dan telah diadopsi menjadi sebuah standar untuk menjelaskan koneksi TCP/IP dan UDP yang melewati

(7)

sistem operasi yang berbeda. Socket merupakan sebuah end point untuk sebuah komunikasi jaringan [CLI-04:200].

2.4.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.2 menunjukkan pengiriman data melewati TCP/IP.

Gambar 2.2 Pengiriman data lewat TCP/IP. Sumber : [CLI-04:200]

2.4.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.

(8)

Penerimaan dan pengiriman paket data ke beberapa mesin dapat menggunakan UDP socket yang sama. Gambar 2.3 menunjukkan pengiriman data melalui UDP.

Gambar 2.3 Pengiriman data melalui UDP . Sumber : [CLI-04:200]

2.5 Visual Basic

Microsoft Visual Basic (sering disingkat sebagai VB saja) 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

(9)

objek ActiveX. Beberapa bahasa skrip seperti Visual Basic for Applications (VBA) dan VBScript, mirip seperti halnya Visual Basic, tetapi cara kerjanya yang berbeda.

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.

Dalam pemrograman untuk bisnis, Visual Basic memiliki pangsa pasar yang sangat luas. Dalam sebuah survey yang dilakukan pada tahun 2005, 62% pengembang perangkat lunak dilaporkan menggunakan berbagai bentuk Visual Basic, yang diikuti oleh C++, JavaScript, C#, dan Java. Bill Gates, pendiri Microsoft, memulai bisnis software-nya dengan mengembangkan interpreter bahasa Basic untuk Altair 8800, untuk kemudian ia ubah agar dapat berjalan di atas IBM PC dengan sistem operasi DOS. Perkembangan berikutnya ialah diluncurkannya BASICA (basic-advanced) untuk DOS. Setelah BASICA, Microsoft meluncurkan Microsoft QuickBasic dan Microsoft Basic (dikenal juga sebagai Basic Compiler).

Sejarah BASIC di tangan Microsoft sebagai bahasa yang diinterpretasi (BASICA) dan juga bahasa yang dikompilasi (BASCOM) membuat Visual Basic diimplementasikan sebagai gabungan keduanya. Programmer yang menggunakan Visual Basic bisa memilih kode terkompilasi atau kode yang harus diinterpretasi sebagai hasil executable dari kode VB. Sayangnya, meskipun sudah terkompilasi jadi bahasa mesin, DLL bernama MSVBVMxx.DLL tetap dibutuhkan. Namun

(10)

karakteristik bahasa terkompilasi tetap muncul (ia lebih cepat dari kalau kita pakai mode terinterpretasi). Visual Basic merupakan bahasa yang mendukung OOP, namun tidak sepenuhnya. Beberapa karakteristik obyek tidak dapat dilakukan pada Visual Basic, seperti Inheritance tidak dapat dilakukan pada class module. Polymorphism secara terbatas bisa dilakukan dengan mendeklarasikan class module yang memiliki Interface tertentu. Visual Basic (VB) 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. Namun komponen ActiveX memiliki masalahnya tersendiri yang dikenal sebagai DLL hell. Pada Visual Basic .NET, Microsoft mencoba mengatasi masalah DLL hell dengan mengubah cara penggunaan komponen (menjadi independen terhadap registry).

(11)

2.6 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

(12)

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

(13)

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.6.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 oleh tujuan umum pengguna.

(14)

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).

(15)

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)

9 Stereotype perluasan (extend)

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 :

(16)

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.6.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). Berikut pada Tabel 2.3 adalah simbol-simbol yang sering digunakan pada saat pembuatan diagram aktifitas.

(17)

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 parallel atau untuk menggabungkan dua kegiatan paralel menjadi satu

6 Rake; menunjukkan adanya dekomposisi

7 Tanda waktu

8 Tanda pengiriman

9 Tanda penerimaan

10 Aliran akhir (Flow final)

2.6.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..

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.

(18)

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)

12 Pesan hilang (lost message)

13 Pesan ditemukan (found message)

14 Pesan pembuatan obyek baru

(19)

Algoritma berisi langkah-langkah penyelesaian suatu masalah. Langkah langkah tersebut dapat berupa runtunan aksi (sequence), pemilihan aksi (selection), pengulangan aksi (iteration) atau kombinasi dari ketiganya. Jadi struktur dasar pembangunan algoritma ada tiga, yaitu:

1. Struktur Runtunan, Digunakan program yang pernyataannya sequential/urutan. 2. Struktur Pemilihan, Digunakan untuk program yang menggunakan pemilihan atau

penyeleksian kondisi.

3. Struktur Perulangan, Digunakan untuk program yang pernyataannya akan dieksekusi berulang-ulang.

Penyajian algoritma secara garis besar bisa dalam 2 bentuk penyajian yaitu tulisan dan gambar. Algoritma yang disajikan dengan tulisan yaitu dengan struktur bahasa tertentu (misalnya bahasa Indonesia atau bahasa Inggris) dan pseudocode. Pseudocode adalah kode yang mirip dengan kode pemrograman yang sebenarnya seperti Pascal, atau C, sehingga lebih tepat digunakan untuk menggambarkan algoritma yang akan dikomunikasikan kepada pemrogram.

Sedangkan algoritma disajikan dengan gambar, misalnya dengan flowchart. Secara umum, pseudocode mengekspresikan ide-ide secara informal dalam proses penyusunan algoritma. Salah satu cara untuk menghasilkan kode pseudo adalah dengan meregangkan aturan-aturan bahasa formal yang dengannya versi akhir dari algoritma akan diekspresikan. Pendekatan ini umumnya digunakan ketika bahasa pemrograman yang akan digunakan telah diketahui sejak awal.

(20)

2.7 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.7.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

(21)

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.7.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

(22)

(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.8 Metode Analysis

Model rekayasa piranti lunak yang diuraikan oleh Roger S. Pressman (1992: 24) salah satunya adalah waterfall model. Model ini memberikan pendekatan-pendekatan sistematis dan berurutan bagi pengembangan piranti lunak. Berikut ini adalah gambar pengembangan sistem perangkat lunak dengan proses SDLC (System Development Life Cycle) dengan model waterfall.

(23)

Gambar 2.4 Model Proses Waterfall. Sumber : [CLI-04:200]

Penjelasan dari tahap-tahap waterfall model adalah sebagai berikut: Perancangan Sistem (System Enginering)

Perancangan sistem sangat diperlukan, karena piranti lunak biasanya merupakan bagian dari suatu sistem yang lebih besar. Pembuatan sebuah piranti lunak dapat dimulai dengan melihat dan mencari apa yang dibutuhkan oleh sistem. Dari kebutuhan sistem tersebut akan diterapkan kedalam piranti lunak yang dibuat.

Analisa Kebutuhan Piranti Lunak (Software Requirement Analysis)

Merupakan proses pengumpulan kebutuhan piranti lunak. Untuk memahami dasar dari program yang akan dibuat, seorang analisis harus mengetahui ruang lingkup informasi, fungsi-fungsi yang dibutuhkan, kemampuan kinerja yang ingin dihasilkan dan perancangan antarmuka pemakai piranti lunak tersebut.

(24)

Perancangan (Design)

Perancangan piranti lunak merupakan proses bertahap yang memfokuskan pada empat bagian penting, yaitu: Struktur data, arsitektur piranti lunak, detil prosedur, dan karakteristik antar muka pemakai.

Pengkodean (Coding)

Pengkodean piranti lunak merupakan proses penulisan bahasa program agar piranti lunak tersebut dapat dijalankan oleh mesin.

Pengujian (Testing)

Proses ini akan menguji kode program yang telah dibuat dengan memfokuskan pada bagian dalam piranti lunak. Tujuannya untuk memastikan bahwa semua pernyataan telah diuji dan memastikan juga bahwa input yang digunakan akan menghasilkan output yang sesuai.

Pada tahap ini pengujian ini dibagi menjadi dua bagian, pengujian internal dan pengujian eksternal. Pengujian internal bertujuan menggambarkan bahwa semua statement sudah dilakukan pengujian, sedangkan pengujian eksternal bertujuan untuk menemukan kesalahan serta memastikan output yang dihasilkan sesuai dengan yang diharapkan.

Pemeliharaan (Maintenance)

Proses ini dilakukan setelah piranti lunak telah digunakan oleh pemakai atau konsumen. Perubahan akan dilakukan jika terdapat kesalahan, oleh karena

(25)

itu piranti lunak harus disesuaikan lagi untuk menampung perubahan kebutuhan yang diinginkan konsumen.

2.9 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.9.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 sulit untuk menelusuri kesalahan yang mungkin didapat, teknik pengujian black box 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

(26)

2.9.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.

2. Semua titik keputusan akan teruji.

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

(27)

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 :

1. Jumlah region grafik alir sesuai dengan kompleksitas siklomatis 2. Jumlah edge – jumlah node + 2

3. 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.

Gambar

Gambar 2.1 Arsitektur Jaringan LAN
Gambar 2.2 Pengiriman data lewat TCP/IP.
Gambar 2.3 Pengiriman data melalui UDP .   Sumber : [CLI-04:200]
Tabel 2.1 Jenis diagram resmi UML
+4

Referensi

Dokumen terkait

Untuk kelompok perlakuan MRP dengan Kinesiotaping didapatkan nilai p sebesar 0,996 (p&gt;0.05) sehingga dapat dikatakan bahwa tidak ditemukan perbedaan yang

Selanjutnya setelah mendapatkan persetujuan dari Pemimpin Proyek ( leader) dan Manajer Proyek, maka form klaim voucher diberikan kepada Admin Operasional untuk dilakukan

Dalam penelitian ini akan dilakukan kegiatan evaluasi Usaha Kecil dan Menengah dari Dinas Perdagangan dan Perindustrian Kota Surabaya berupa evaluasi kelengkapan

khususnya psikologi klinis mengenai makna hidup pada orang dengan epilepsi (ODE), yang hasilnya dapat menjadi masukan bagi penelitian – penelitian

Saran yang dapat diberikan dari penelitian ini adalah: 1 guru SD, sebaiknya dapat mengembangkan media gambar seri dalam pembelajaran mengarang, sehingga memudahkan siswa dalam

Berdasarkan analisis data yang telah dilakukan, dapat disimpulkan bahwa ada tiga bentuk interaksi sosial yang ditemukan dalam novel Senandung Sabai: Cinta dan

pemeriksaan laboratorium 5 Ruang Pelayanan Umum : Pasien yang diperiksa oleh dokter masih dibawah standar yang ditetapkan.. Jumlah dokter umum hanya dua dengan

Dalam ayat tersebut dijelaskan dan ditafsirkan oleh Shihab (2002) bahwa salah satu bencana yang dapat menimpa tumbuhan adalah adanya hama dan kuman. Kuman dalam