6
BAB II LANDASAN TEORI
2.1 REKAYASA PERANGKAT LUNAK Rekayasa Perangkat Lunak merupakan sebuah disiplin ilmu yang mempelajari semua aspek produksi dalam suatu proses perancangan perangkat lunak (Sommerville 2003:17). Metode waterfall merupakan salah satu paradigma dalam pengembangan perangkat
lunak
yang
sistematis,
dilakukan
secara
berututan
untuk
mengembangkan perangkat lunak yang dimulai dari analisis, perancangan, pengkodean, pengujian dan pemeliharaan (Pressman 2002:39). Metode Waterfall mencakup beberapa aktifitas sebagai berikut:
a. Analisa Kebutuhan Proses pengumpulan kebutuhan perangkat lunak yang bertujuan untuk memahami karakteristik sistem yang akan dibangun. Analisa kebutuhan ini harus memahami tingkah laku sistem, informasi apa saja yang dibutuhkan serta interface yang dibutuhkan. b. Perancangan Proses perancangan/desain perangkat lunak yaitu proses yang dilakukan multi tasking yang di fokuskan pada struktur data, astitektur, representasi interface serta detail proseduralnya. Pada proses desain ini berfungsi menterjemahkan kebutuhan sistem kedalam gambaran perangkat lunak sebelum di mulai melakukan pengkodean dengan tujuan untuk melihat kualitas dari perangkat lunak yang akan dibangun. c. Development / Pengkodean Semua desain yang dibuat diaplikasikan pada proses pengkodean sehingga sistem akan terbentuk dan dapat segera digunakan.
6
7
d. Pengujian / Testing Untuk mengetahui keberhasilan sebuah pembangunan sistem, maka dilakukan pengujian untuk melihat kualitas sistem yang dibuat, memastikan bahwa semua fungsional sistem berjalan lancar sehingga sistem yang dihasilkan dapat memberikan hasil yang diharapkan. e. Pemeliharaan Setiap perangkat lunak yang dibuat pasti akan mengalami perkembangan, maka pada tahapan ini dibutuhkan pemeliharaan sistem agar kebutuhan user dapat terpenuhi dengan baik. Pemeliharaan perangkat lunak mengaplikasikan setiap interface program yang dibuat dan jika terjadi kesalahan pada interface tersebut bisa ditangani pada tahapan ini
2.2 MICROSOFT VISUAL C# C# ( dibaca : C sharp) merupakan bahasa pemprogramman yang berorientasi objek yang di buat oleh Microsoft dan termasuk didalam kerangka .NET Framework.. Bahasa pemprogramman ini dibuat berbasiskan bahasa C++ yang digabungkan dengan fitur – fitur bahasa pemprogramman lainnya seperti Java, Delphi, Visual Basic, dan lain-lain dengan beberapa penyederhanaan. C# pertama kali diperkenalkan bulan Juli 2000. Projek pembuatan bahasa pemprogramman C# di
pimpin
oleh
Anders
Helsberg
yang
merupakan
pencipta
bahasa
pemprogramman Turbo Pascal. Berikut dibawah ini adalah fitur yang di miliki oleh C# : a. Type Safety, artinya kemungkinan terjadinya type error lebih kecil , hal ini disebabkan karena bahasa pemprogramman C# mengharuskan setiap konversi tipe data harus jelas apakah konversi eksplisit atau konversi implisit.
b. Mendukung fasilitas garbage collection, yaitu suatu mekanisme yang dilaksanakan dengan algoritma khusus untuk memeriksa apakah objek tersebut masih dipakai atau tidak, dan untuk melakukan penghapusan suatu objek.
8
c. Mendukung fasilitas unsafe mode, yaitu kemampuan untuk menggunakan pointers untuk mengatur memori dari suatu objek yang tidak diatur oleh garbage collector. d. Mendukung penggunaan beberapa Application Programming Interface (API) yang dimiliki oleh : 1. NET Framework. 2. COM. 3. Automation. 4. C-Style.
2.3 MySQL MySQL atau sering dibaca (: mai-se-kyu-el), merupakan sebuah aplikasi relational database management system (RDBMS) yang didistribusikan secara gratis dibawah lisensi GPL. Setiap pengguna memiliki kebebasan untuk mempelajari kode programnya, mengubah kode program, meningkatkan kemampuan program tersebut dan menyebarluaskan selama tidak untuk tujuan komersil. MySQL pertama kali muncul pada tanggal 23 Mei 1995 berada di bawah
kepemilikan
perusahan
swedia
yaitu
MySQL
AB
dan
pada
perkembangannya MySQL sekarang telah dimiliki oleh Oralce Corporation. Keistimewaan Mysql antara lain adalah : a. Perintah dan Fungsi. MySQL memiliki operator dan fungsi secara penuh yang mendukung perintah Select dan Where dalam perintah (query). b. Portabilitas. MySQL dapat berjalan pada berbagai macam system operasi seperti Windows, Linux, FreeBSD, Mac Os X Server, Solaris, Amiga, dan masih banyak lagi. c. Multi user. MySQL dapat digunakan oleh lebih dari satu pengguna dalam waktu yang bersamaan. d. Konektivitas. MySQL dapat melakukan koneksi dengan klien yang menggunakan menggunakan protokol TCP/IP, Unix soket (UNIX), atau Named Pipes (NT).
8
9
e. Keamanan. MySQL memiliki beberapa lapisan keamanan seperti level subnetmask, nama host, dan izin akses user dengan sistem perizinan yang mendetail serta sandi terenkripsi. f. Skalabilitas dan Pembatasan. MySQL mampu menangani basis data dalam skala besar, dengan jumlah rekaman (records) lebih dari 50 juta dan 60 ribu tabel serta 5 milyar baris. Selain itu batas indeks yang dapat ditampung mencapai 32 indeks pada tiap tabelnya. g. Antar Muka. MySQL memiliki antar muka (interface) terhadap berbagai aplikasi dan bahasa pemrograman dengan menggunakan fungsi API (Application Programming Interface). Partitioning. h. Ragam tipe data. MySQL memiliki ragam tipe data yang sangat kaya, seperti signed / unsigned integer, float, double, char, text, date, timestamp, dan lain-lain.
2.4 WEB BROWSER Web browser adalah perangkat lunak yang berfungsi untuk menerima dan menyajikan informasi yang berasal dari sistem yang saling terhubung oleh jaringan internet. Sumber informasi tersebut dikenal dengan nama Uniform Resource Identifier (URI/URL) yang bisa berupa halaman web, gambar, video atau jenis konten lainnya. Web browser yang pertama kali di ciptakan oleh Sir Tim Berners-Lee pada tahun 1990 dengan nama World Wide Web. Nama web browser tersebut kemudian diubah menjadi Nexus. Diantara web browser yang sudah umum dipakai antara lain adalah : a. Internet Explorer. Dirilis pertama kali oleh Microsoft pada tahun 1995 dan disertakan di setiap rilis sistem operasi Microsoft Windows sejak 1995. Browser Internet Explorer menggunakan mesin rendering Trident v7.0 lalu diganti menggunakan mesin rendering Chakra. b. Opera. Dirilis pertama kali oleh Opera Software pada tahun 1996. Opera menggunakan mesinrendering Presto pada awalnya lalu diganti dengan mesin rendering Blink . Opera juga mengeluarkan versi Opera Mini yang
10
banyak digunakan pada perangkat mobile seperti ponsel, ponsel pintar, dan personal digital assistant. c. Mozilla Firefox. Pada awalnya bernama Phoenix, dikembangkan oleh Mozilla Foundation dan ratusan sukarelawan. Dirilis pertama kali pada tanggal 9 November 2004. Web brower Mozilla Firefox menggunakan mesin rendering Gecko dan merupakan salah satu perangkat lunak yang gratis sehingga sangat populer di gunakan oleh komputer rumahan. d. Google Chrome. Dirilis sebagai versi beta pertama kali oleh perusahaan Google pada tanggal 2 September 2008, dan versi stabilnya dirilis pada tanggal 11 Desember 2008. Goole Chrome di kembangkan oleh Google dengan menggunakan mesin rendering Webkit. e. Safari. Dirilis sebagai versi beta pada tanggal 7 Januari 2003. Browser Safari dibuat oleh perusahaan Apple dengan menggunakan mesin rendering Webkit. Browser Safari menjadi browser utama sistem operasi Mac OS X v10.3 dan sistem operasi iOS.
2.5 UNIFIED MODELING LANGUANGE (UML) Unified Modeling Language (UML) adalah sebuah “bahasa” yang telah menjadi
standar
dalam
industri
untuk
visualisasi,
merancang
dan
mendokumentasikan sistem perangkat lunak, baik untuk pemodelan bisnis ataupun perangkat lunak yang lain.UML merupakan sebuah notasi pemodelan yang memiliki banyak aspek variasi dalam sebuah perangkat lunak (Grady Booch etal.2007:147). UML versi pertama kali yaitu versi 0.8 di release pada tahun 1995 dengan nama Unified Method. Sampai saat ini versi UML sudah mencapai versi 2.4.1 yang di release pada bulan agustus tahun 2011. Tipe diagram pada UML dibagi menjadi 2 kategori yaitu : Structure Diagrams dan Behavior Diagrams. Structure Diagram menggambarkan aspek statis dari sistem yang kita buat. Behavior Diagrams menggambarkan aspek dinamis dari sistem yang kita buat. UML diagram yang termasuk ke dalam Structure Diagram adalah sebagai berikut:
10
11
a. Class Diagram b. Object Diagram c. Package Diagram d. Composite Structure Diagram e. Component Diagram f. Deployment Diagram
UML diagram yang termasuk ke dalam Behavior Diagram adalah sebagai berikut: a. UseCase Diagram b. Activity Diagram c. State Machine Diagram d. Interaction Diagram, terdiri dari beberapa tipe diagram yaitu : 1. Sequence Diagram 2. Interaction Overview Diagram 3. Communication Diagram 4. Timing Diagram
2.5.1
Class Diagram
Menurut Grady Booch, James Rumbaugh dan Ivar Jacobson (2005, chap.8), “A class diagram is a diagram that shows a set of classes, interfaces, and collaborations and their relationships”, yang artinya class diagram adalah diagram yang
menampilkan kumpulan dari objek, layanan dari objek tersebut, cara objek tersebut bekerjasama dan hubungan antar objek tersebut. Berikut ini contoh dari class diagram:
12
Gambar 2.5.1 Contoh Class Diagram [Sumber: Grady Booch, James Rumbaugh dan Ivar Jacobson. 2005:chap 8]
2.5.2
Use Case Diagram
Menurut Fowler (2003), Use case adalah teknik untuk menangkap persyaratan fungsional dari sebuah system. Use case diagram bekerja dengan menggambarkan interaksi khusus antara user dengan sistem, dan antar sistem itu sendiri. Use case diagram mengilustrasikan sekelompok use case sistem, aktor-aktor yang terlibat dan relasi antara use case dengan aktor tersebut (Larman,1998). Elemen-elemen penting dari sebuah use case diagram adalah : 1. Use case Use case adalah serangkaian transaksi yang dilaksanakan oleh sistem dan mengasilkan keluaran yang bermanfaat bai aktor tertentu.
12
13
2. Aktor Aktor adalah sebuah entitas eksternal yang berperan dalam sebuah use case. Dimana aktor inilah yang berinteraksi sengan sistem. 3. Hubungan (relationship) Hubungan antara use case dan aktor, hubungan terjadi karena ada interaksi.
Gambar 2.5.2. Contoh Use Case Diagram
14
2.5.3
Activity Diagram
Menurut Fowler(2003), Activity diagram adalah teknik yang digunakan untuk menggambarkan logika prosedural, proses bisnis dan aliran proses. Menurut Quatrani(1999), activity diagram memodelkan alur kerja sebuah sistem, yaitu menunjukkan aktivitas-aktivitas yang dilakukan dalam sistem tersebut.
Gambar 2.5.3. Contoh Activity Diagram
14
15
2.5.4
Sequence Diagram
Menurut Fowler(2003), sequence diagram menggambarkan interaksi objek dalam sekuens waktu. Sequence diagram biasanya di asosiasikan dengan use case. Sequence diagram memperlihatkan tahap demi tahap apa yang seharusnya terjadi untuk menghasilkan sesuatu di dalam use case.
Gambar 2.5.4. Contoh Sequence Diagram [Sumber: Grady Booch et al. 2007:207]
2.6 METODE PENGUJIAN PERANGKAT LUNAK Menurut Deutsch (1979:329) bahwa “pengujian perangkat lunak sangat penting untuk dilakukan sebagai jaminan kualitas aplikasi yang dibuat”. Sebelum melakukan pengujian terhadap perangkat lunak yang kita buat, kita harus memahami terlebih dahulu dasar-dasar pengujiannya, yaitu sebagai berikut: a. Sasaran pengujian Menurut (2005:234) ada beberapa hal yang menjadi aturan yang berfungsi sebagai sasaran pengujian: 1. Pengujian yaitu proses eksekusi suatu program dengan maksud menemukan kesalahan. 2. Test Case yang baik yaitu test case yang memiliki probabilitas yang tinggi untuk menemukan kesalahan yang belum ditemukan sebelumnya.
16
3. Pengujian yang sukses yaitu pengujian yang mengungkapkan semua kesalahan yang belum pernah ditemukan sebelumnya.
b. Prinsip pengujian Ada beberapa hal yang menjadi prinsip dalam pengujian yaitu sebagai berikut: 1. Pengujian harus dimulai dari kasus yang kecil dan berkembang ke kasus yang lebih besar. 2. Pengujian harus direncanakan. 3. Prinsip pareto harus diterapkan dalam proses pengujian (prinsip pareto yaitu prinsip yang mengimplikasikan bahwa 80% dari semua kesalahan di temukan selama pengujian dan ditemukan 20% dari modul program). 4. Semua pengujian harus disampaikan kepada user. 5. Lakukan pengujian oleh pihak ketiga supaya proses pengujian lebih efektif.
c. Testabilitas Secara sederhana testabilitas perangkat lunak yaitu seberapa mudah sebuah program atau aplikasi komputer dapat kita uji. Ada beberapa metode pengujian yang dapat dilakukan yaitu : 1. Pengujian White Box Proses pengujian ini berfocus pada struktur control program, test case dilakukan untuk memastikan bahwa semua statemen pada program telah di eksekusi paling tidak sekali selama pengujian. 2. Pengujian Black Box Teknik ini didesain untuk menangkap kesalahan pada persyaratan fungsional tanpa mengabaikan kerja internal dari suatu program. Teknik ini berfocus pada domain informasi dari perangkat lunak, dengan melakukan test case dengan mempartisi domain input dan output dari suatu program.
16
17
3. Pengujian Basis Path Teknik ini merupakan teknik pengujian white box yang menggunakan grafik program atau matrix untuk melakukan serangkaian pengujian yang independen. 4. Pengujian Struktur Kontrol Pengujian ini merupakan pengembangan dari white box yang menggunakan logika program. 5. Pengujian Untuk Aplikasi dan Lingkungan Khusus Pengujian yang terspesialisasi meliputi sejumlah kemampuan perangkat lunak dan lingkungannya diantaranya yaitu pada client/server, system real-time, graphical user interface, dokumentasi serta kelengkapan fasilitas help.
Metode black-box ini didesain untuk menangkap kesalahan pada persyaratan fungsional tanpa mengabaikan kerja internal dari suatu program. Metode ini berfocus pada domain informasi dari perangkat lunak, dengan melakukan test case dengan mempartisi domain input dan output dari suatu program. Pada metode black box dapat didefinisikan beberapa hal berikut ini: a. Digunakan untuk menguji fungsi-fungsi khusus dari perangkat lunak yang dirancang. b. Kebenaran pengujian dilihat dari keluaran yang dihasilkan dari data atau kondisi masukan yang diberikan untuk fungsi yang ada tanpa melihat bagaimana proses untuk mendapatkan keluaran tersebut. c. Dari keluaran yang dihasilkan, kemampuan program dalam memenuhi kebutuhan pemakai dapat diukur sekaligus dapat diketahui kesalahannya. Adapun yang menjadi tujuan pengujian black box yaitu: 1.
Fungsi yang tidak benar atau hilang.
2.
Kesalahan interface.
3.
Error pada struktur data atau akses database external.
4.
Error pada kinerja.
5.
Error pada saat inisialisasi dan terminasi.
6.
Kesensitifan sistem terhadap nilai input tertentu.
7.
Batasan dari suatu data.