BAB II LANDASAN TEORI 2.1 Definisi Sistem Definisi Sistem menurut Dr. Ir. Harijono Djojodihardjo (1984:78) “Suatu sistem adalah sekumpulan objek yang mencakup hubunga fungsional antara tiap-tiap objek dan hubungan antara ciri tiap objek, dan yang secara keseluruhan merupakan suatu kesatuan secara fungsional.” 2.2 Definis Pendaftaran Pengertian pendaftaran disini pada dasarnya hanya untuk memperlancar dan mempermudah dalam proses pendaftaran siswa siswi baru, pendataan dan pembagian kelas selas seorang siswa siswi. Sehungga dapat terorganisir, teratur dengan cepat dan tepat dengan beberapa persyaratan yang telah ditentukan oleh sekolah. Proses pendaftaran siswa baru merupakan salah satu kewajiban pihak sekolah dan Dinas Pendidikan setiap tahun ajaran baru. 2.3 Definisi Rekayasa Perangkat Lunak Saat ini, perangkat lunak memiliki dua peran. Di satu sisi berfungsi sebagai sebuah produk, dan di sisi lain sebagai kendaraan yang mengantarkan sebuah produk. Sebagai produk, perangkat lunak mengantarkan potensi perhitungan yang dibangun oleh perangkat lunak komputer. Tidak peduli apakah perangkat lunak ada di dalam sebuah telepon seluler, atau beroperasi di sebuah mainframe komputer, perangkat lunak merupakan transformer informasi yang memproduksi, mengatur, memeperoleh, memodifikasi, menampilkan, atau memancarkan informasi, dimana pekerjaan ini dapat menjadi sesederhana suatu bit tunggal atau sekompleks sebuah simulasi multimedia. Sebagai kendaraan yang dipakai untuk mengantarkan produk, perangkat lunak berlaku sebagai dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan), dan penciptaan serta kontrol dari program-program lain (peranti dan lingkungan perangkat lunak). Definisi dari “rekayasa” menurut arti kata adalah pemakaian “science” untuk menyelesaikan “masalah praktis” atau dari tidak ada menjadi ada. Sedangkan definisi 8 http://digilib.mercubuana.ac.id/ 9 dari “perangkat lunak” menurut arti kata adalah kumpulan program komputer dengan fungsi tertentu. Menurut Pressman (1977), definisi dari perangkat lunak adalah: 1. Instruksi (program komputer) yang bila dieksekusi dapat menjalankan fungsi tertentu 2. Struktur data yang dapat membuat program memanipulasi informasi. 3. Dokumen yang menjelaskan operasi dan penggunaan program. Perangkat lunak lebih dikenal sebagai elemen logic daripada fisik, oleh karena itu perangkat lunak memiliki karakteristik yang sedikit berbeda dari perangkat keras, diantaranya : 1. Perangkat lunak dikembangkan atau direkayasa, jadi tidak diproduksi dalam pengertian klasik. 2. Merupakan produk yang unik (tidak ada seri produksi). 3. Perangkat lunak tidak pernah akan rusak/aus karena selalu diperbaharui. 4. Tidak terlihat (invisible). 5. Perangkat lunak pada umumnya dibangun sesuai keinginan, jadi tidak dibentuk dari komponen yang sudah ada. 6. Fleksibel, sehingga mudah dimodifikasi. 7. Dihubungkan (linked) dengan system computer. Sehingga rekayasa perangkat lunak (Software Engineering) adalah suatu proses rancang bangun. Menurut Pressman (1997), rekayasa perangkat lunak adalah suatu disiplin ilmu yang mengintegrasikan proses/prosedur, metode, dan perangkat (tools) untuk pembangunan perangkat lunak komputer. Model proses pengembangan perangkat lunak yang akan digunakan pada tugas akhir ini berlandaskan pada Waterfall Model dimana metode ini adalah metode pengembangan perangkat lunak dengan pendekatan sekuensial dengan cakupan aktifitas sebagai berikut : 1. Analisis kebutuhan perangkat lunak (Software Requirement Analysis). 2. Perancangan desain system (Design). 3. Pembuatan kode program (Coding). 4. Pengujian Program (Testing). 5. Pemeliharaan program (Maintenance). http://digilib.mercubuana.ac.id/ 10 Berikut adalah skema Model Waterfall : Gambar 2. 1 Skema Waterfall Model 2.4 UML (Unified Modeling Languange) UML (Pender, 2002) adalah standar untuk menciptakan model yang mewakili perangkat lunak berorientasi objek dan sistem bisnis. UML mencakup spesifikasi untuk sembilan diagram berbeda yang digunakan untuk berbagai dokumen perspektif dari solusi perangkat lunak dari awal proyek sampai instalasi dan pemeliharaan mikrofinansial. Tujuan permodelan (modeling) sendiri adalah sebagai sarana analisis, pemahaman, visualisasi, komunikasi, serta dokumentasi yang sangat bermanfaat untuk menelaah perilaku perangkat lunak yang akan dikembangkan. 2.4.1 Use Case Diagram Use case merupakan pemodelan untuk menggambarkan kelakuan (behavior) aplikasi perangkat lunak yang akan dibuat. Use case mendeskripsikan sebuah inteaksi antara satu atau lebih aktor dengan aplikasi yang akan dibuat. Secara umum, use case digunakan untuk mengetahui fungsi/proses apa saja yang ada di dalam sebuah aplikasi dan siapa saja yang berhak menggunakan fungsi-fungsi tersebut (Rosa and Shalahuddin, 2010). Ada dua hal utama pada use case yaitu pendefinisian aktor dan use case/proses. Berikut adalah simbolsimbol yang ada pada diagram Use case. http://digilib.mercubuana.ac.id/ 11 Tabel 1. Simbol-simbol Use Case Berdasarkan Tabel 1, berikut contoh usecase diagram : Gambar 2. 2 Use Case Diagram http://digilib.mercubuana.ac.id/ 12 2.4.2 Class Diagram Class Diagram merupakan pemodelan untuk menggambarkan struktur aplikasi berorientasi objek dari segi pendefinisian kelas-kelas yang akan dibuat untuk membangun aplikasi. Kelas memiliki attribut, metode atau operasi serta parameter. 1. Attribut merupakan variabel-variabel yang dimiliki oleh suatu kelas. 2. Metode atau operasi adalah fungsi-fungsi yang dimiliki oleh suatu kelas 3. Parameter adalah variabel yang memiliki nilai yang digunakan sebagai inputan sebuah metode. Berikut adalah simbol-simbol yang ada pada Class Diagram. Tabel 3 Simbol Class Diagram http://digilib.mercubuana.ac.id/ 13 Berdasarkan Tabel 4, berikut contoh sequence diagram : Gambar 2. 3 Contoh Class Diagram 2.4.3 Activity Diagram Diagram ini menggambarkan proses yang termasuk tugas berurutan, logika kondisional, dan konkurensi. Diagram ini adalah seperti flowchart, tetapi telah ditingkatkan untuk digunakan dengan pemodelan objek. Tabel 2. Simbol Activity Diagram http://digilib.mercubuana.ac.id/ 14 2.4.4 Sequence Diagram Sequence diagram menggambarkan interaksi antar objek di dalam dan di sekitar sistem (termasuk pengguna, display, dan sebagainya) berupa message yang digambarkan terhadap waktu. Sequence diagram terdiri atas dimensi vertikal (waktu) dan dimensi horizontal (objek-objek yang terkait). Sequence diagram biasa digunakan untuk menggambarkan skenario atau rangkaian langkahlangkah yang dilakukan sebagai respons dari sebuah event untuk menghasilkan output tertentu. Berikut adalah simbol-simbol yang terdapat pada sequence diagram (Wahono, 2003). Tabel 4. Simbol Sequence Diagram Berdasarkan Tabel 4, berikut contoh sequence diagram : Gambar 5. Contoh sequence diagram http://digilib.mercubuana.ac.id/ 15 2.5 PHP PHP adalah bahasa pemrograman untuk dijalankan melalui halaman web, umumnya digunakan untuk mengolah informasi internet, tapi dalam pengertian lain PHP adalah singkatan dari Hypertext Preprocessor bahasa pemrograman web serverside yang bersifat gratis. PHP merupakan script yang menyatu dengan HTML. PHP juga merupakan script untuk membaut halaman web menjadi dinamis, dan paling banyak digunakan pada saat ini. PHP pertama kali dibuat oleh RASMUS LERDORF pada tahun 1995, pada saat itu PHP masih bernama FI (form interpreted) sekumpulan script yang digunakan untuk mengolah data form web, perkembangan selanjutnya RASMUS melepas kode-kdoe sumber tersebut menjadi PHP atau FI yang berganti kepanjangan menjadi Personal Home Page atau Form Interpreter. Ada pun kelebihan dan kekurangan dari PHP dijelaskan sebagai berikut : Kelebihan : 1. Membuat halaman web bisa menjadi lebih dinamis. 2. PHP bersifat free atau gratis. 3. Beberapa server seperti Apache, Microsoft IIS, PWS, AOLserver, phttpd, fhttpd, dan Xitami mampu menjalankan PHP. 4. PHP mampu berjalan di Linux sebagai platform sistem operasi utama bagi PHP, tetapi dapat juga berjalan di FreeBSD, Unix, Solaris, Windows, dan yang lainnya. 5. Tingkat akses PHP lebih cepat serta memiliki tingkat keamanan yang tinggi. 6. Beberapa database yang sudah ada, baik yang bersifat free/gratis ataupun komersial sangat mendukung akses PHP, diantaranya MySQL, PosgreSQL, Msql, Informix, dan MicrosoftSQL server. PHP adalah sebuah bahasa script yang tidak melakukan kompilasi dalam penggunaannya karena berbagai script sudah tersedia dengna gratis. Dalam sisi pengembangan lebih mudah, dan segi pemahaman pun lebih mudah. Web Server yang mendukung PHP dapat ditemukan dimana-mana dan bisa di download secara gratis. Kekurangan : 1. Permasalahan yang sering terjadi pada Register Global http://digilib.mercubuana.ac.id/ 16 2. Kode PHP dapat dibaca semua orang jika tidak di encoding, dan biaya encoding cukup mahal. 3. Tidak mengenal package. 4. Tidak memiliki sistem pemrograman berorientasi objek yang sesungguhnya. 5. PHP memiliki kelemahan pada keamanan. 2.6 MySQL MySQL adalah sebuah perangkat lunak system menajemen basis data SQL (DBMS) yang multithread, dan multi-user. MySQL adalah implementasi dari sistem manajemen basis data relasional (RDBMS). MySQL memiliki beberapa keistimewaan, antara lain : 1. Portabilitas. MySQL dapat berjalan stabil pada berbagai sistem operasi seperti Windows, Linux, FreeBSD, Mac Os X Server, Solaris, Amiga, dan masih banyak lagi. 2. Perangkat lunak sumber terbuka. MySQL didistribusikan sebagai perangkat lunak sumber terbuka, dibawah lisensi GPL sehingga dapat digunakan secara gratis. 3. Multi-user. MySQL dapat digunakan oleh beberapa pengguna dalam waktu yang bersamaan tanpa mengalami masalah atau konflik. 4. 'Performance tuning', MySQL memiliki kecepatan yang menakjubkan dalam menangani query sederhana, dengan kata lain dapat memproses lebih banyak SQL per satuan waktu. 5. Ragam tipe data. MySQL memiliki ragam tipe data yang sangat kaya, seperti signed / unsigned integer, float, double, char, text, date, timestamp, dan lain-lain. 6. Perintah dan Fungsi. MySQL memiliki operator dan fungsi secara penuh yang mendukung perintah Select dan Where dalam perintah (query). 7. Keamanan. MySQL memiliki beberapa lapisan keamanan seperti level subnetmask, nama host, dan izin akses user dengan sistem perizinan yang mendetail serta sandi terenkripsi. http://digilib.mercubuana.ac.id/ 17 8. 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 miliar baris. Selain itu batas indeks yang dapat ditampung mencapai 32 indeks pada tiap tabelnya. 9. Konektivitas. menggunakan MySQL dapat melakukan protokol TCP/IP, Unix koneksi soket (UNIX), dengan klien atau Named Pipes (NT). 10. semacam PostgreSQL ataupun Oracle. 2.7 Pengujian Black Box 1. Lokalisasi. MySQL dapat mendeteksi pesan kesalahan pada klien dengan menggunakan lebih dari dua puluh bahasa. Meski pun demikian, bahasa Indonesia belum termasuk di dalamnya. 2. Antar Muka. MySQL memiliki antar muka (interface) terhadap berbagai aplikasi dan bahasa pemrograman dengan menggunakan fungsi API (Application Programming Interface). 3. Klien dan Peralatan. MySQL dilengkapi dengan berbagai peralatan (tool) yang dapat digunakan untuk administrasi basis data, dan pada setiap peralatan yang ada disertakan petunjuk online. 4. Struktur tabel. MySQL memiliki struktur tabel yang lebih fleksibel dalam menangani ALTER TABLE, dibandingkan basis data lainnya Menurut Agustiar Budiman (2012), berpendapat bahwa “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 diuji apakah telah sesuai dengan yang diharapkan”. Metode ujicoba blackbox memfokuskan pada keperluan fungsional dari software. Karna itu ujicoba blackbox memungkinkan pengembang software untuk membuat himpunan kondisi input yang akan melatih seluruh syarat-syarat fungsional suatu program. Ujicoba blackbox bukan merupakan alternatif dari ujicoba whitebox, tetapi merupakan pendekatan yang melengkapi untuk menemukan kesalahan lainnya, http://digilib.mercubuana.ac.id/ 18 selain menggunakan metode whitebox. Ujicoba blackbox berusaha untuk menemukan kesalahan dalam beberapa kategori, diantaranya: 1. Fungsi-fungsi yang salah atau hilang 2. Kesalahan interface 3. Kesalahan dalam struktur data atau akses database eksternal 4. Kesalahan performa 5. Kesalahan inisialisasi dan terminasi. Menurut Pressman (2010), Black Box Testing juga disebut pengujian tingkah laku, memusat pada kebutuhan fungsional perangkat lunak. Teknik pengujian Black Box memungkinkan memperoleh serangkaian kondisi masukan yang sepenuhnya menggunakan semua persyaratan fungsional untuk suatu program. beberapa jenis kesalahan yang dapat diidentifikasi adalah fungsi tidak benar atau hilang, kesalahan antar muka, kesalahan pada struktur data (pengaksesan basis data), kesalahan performasi, kesalahan inisialisasi dan akhir program. http://digilib.mercubuana.ac.id/