BAB II LANDASAN TEORI 2.1. Konsep Dasar Sistem Menurut [Sutabri Tata, 2012] kegiatan yang dilaksanakan oleh suatu organisasi didasarkan pada suatu ketentuan atau aturan tertentu. Pendefinisian suatu aturan digambarkan sebagai suatu sistem dalam organisasi tersebut. Terdapat beberapa pendekatan dalam mendefinisikan suatu sistem. Pendekatan sistem yang lebih menekankan pada prosedur, mendefinisikan sistem sebagai berikut : “Sistem adalah suatu jaringan kerja dari prosedur-prosedur yang saling berhubungan, berkumpul bersama-sama untuk melakukan suatu kegiatan atau menyelesaikan suatu sasaran tertentu“. Pendekatan lain yang lebih menekankan pada elemen atau komponennya mendefinisikan sebagai berikut : “Sistem bagian-bagian yang saling berkaitan yang beroperasi bersama untuk mencapai beberapa sasaran atau maksud”. 2.2. Definisi UML (Unified Modelling Language) 2.2.1. Pengertian UML UML singkatan dari Unified Modeling Language, UML adalah kosakata umum berbasis objek dan diagram teknik yang cukup efektif untuk memodelkan setiap proyek pengembangan system mulai tahap analisis sampai tahap perancangan dan tahap implementasi. (Alan Dennis, 2012 : 513) 2.2.2. Diagram – Diagram UML Beberapa literature menyebutkan bahwa UML menyediakan Sembilan jenis diagram. Namun kesembilan diagram ini tidak mutlak harus digunakan 8 http://digilib.mercubuana.ac.id/ 9 dalam pengembangan perangkat lunak, semuanya dibuat sesuai dengan kebutuhan. Diagram yang sering digunakan adalah Diagram Use case, Diagram Aktivitas (Activity Diagram), Diagram Sequence, Diagram Class. 2.2.3.1. Use Case Diagram Use Case Diagram merupakan suatu diagram yang menangkap kebutuhan bisnis untuk sistem dan untuk menggambarkan interaksi antara sistem dan lingkungannya. (Alan Dennis, 2012 : 513). Tabel 2. 1. Use Case Diagram (Alan Dennis, 2012 : 518) Komponen pembentuk diagram use case adalah, sebagai berikut : 1. Aktor (An actor), menggambarkan pihak-pihak yang berperan dalam sistem. 2. A Use case, aktifitas / sarana yang disiapkan oleh bisnis / sistem. 3. A System boundary, sebuah kotak yang mewakili sebuah sistem. 4. Hubungan (An association relationship), aktor mana saja yang terlibat dalam use case, dan bagaimana hubungan use case dengan use case lain. ada hubungan antar use case. Digolongkan menjadi 2 : yaitu extend digambarkan dengan keterangan <<extend>>, dan include digambarkan dengan keterangan <<include>>. http://digilib.mercubuana.ac.id/ 10 Gambar 2.2. Perbedaan include dan extend pada use case (Alan Dennis, 2012 : 520) Tabel 2.2. Perbedaan include dan extend pada use case Include Extend Use case terpanggil (included use case) selalu diperlukan oleh use Use case ekstensi tidak selalu dibutuhkan oleh use case dasar case dasar Yang memutuskan kapan dipanggilnya use case included Yang memutuskan kapan dipanggilnya use case extend adalah adalah use case dasar use case extend itu sendiri Panah hubungan dari use case dasar Panah hubungan dari use case ke use case include extend ke use case dasar http://digilib.mercubuana.ac.id/ 11 Use case biasanya disertai dengan penjelesan narasi yang dirangkum dalam tabel yaitu disebut Use case Description. Use case Description merupakan tabel yang digunakan untuk membuat dan menjelaskan keterangan terperinci mengenai tiap tiap use case. Terdapat istilah pre condition dan post condition, fungsinya adalah memberikan informasi penting mengenai keadaan sistem sebelum dan sesudah use case. Hal ini dapat dilakukan dengan memberikan penjelasan singkat atau dapat pula berupa nama use case. Gambar 2.3. Contoh Use Case (Alan Dennis, 2012 : 519) http://digilib.mercubuana.ac.id/ 12 2.2.3.2 Activity Diagram Diagram aktivitas atau Activity Diagram yang menggambarkan alur kerja bisnis independen dari kelas, aliran kegiatan dalam use case atau desain rinci sebuah metode. (Alan Dennis, 2012 : 513) Gambar 2.4. Contoh Activity Diagram (Alan Dennis, 2008 : 167) http://digilib.mercubuana.ac.id/ 13 Tabel 2.3. Komponen Activity Diagram (Alan Dennis, 2008 : 166) Actor Actor Digunakan untuk melakukan tindakan Activity Activity Digunakan untuk mewakili serangkaian tindakan Object Node Class Diagram Digunakan untuk mewakili suatu objek yang terhubung ke satu set Arus Obyek Control Flow Menunjukkan urutan eksekusi Object Flow Menunjukkan arus dari sebuah objek dari satu kegiatan (atau tindakan) untuk kegiatan lain (atau tindakan) Initial Node Menggambarkan awal dari serangkaian tindakan atau kegiatan Initial activity Node Digunakan untuk menghentikan semua arus kontrol dan arus objek dalam suatu kegiatan (atau tindakan) Final activity Node Digunakan untuk menghentikan aliran kontrol tertentu atau aliran objek Decision Node Digunakan untuk mewakili kondisi tes untuk memastikan bahwa aliran kontrol atau aliran objek hanya turun satu jalur Marge Node Digunakan untuk membawa kembali jalur keputusan bersama yang berbeda yang dibuat menggunakan keputusannode http://digilib.mercubuana.ac.id/ -----------------> 14 Fork Node Adalah node kontrol yang memiliki satu dan dua atau lebih aliaran keluar Join Node Adalah gabungan dari satu atau lebih activity aliran masuk Swimline Digunakan untuk memecah sebuah diagram aktivitas dalam baris dan kolom untuk menetapkan aktivitas individu (atau tindakan) kepada individu atau benda yang bertanggung jawab untuk melaksanakan kegiatan (atau tindakan) http://digilib.mercubuana.ac.id/ Name 15 2.2.3.3 Sequence Diagram Sequence Diagram merupakan urutan model dinamis yang menggambarkan contoh kelas yang berpartisipasi dalam use case dan pesan yang lewat di antara mereka dari waktu ke waktu. (Alan Dennis, 2012 : 540) Berikut merupakan komponen utama dalam sequence diagram : Tabel 2.4. Komponen Sequence Diagram ( Alan Dennis dkk, 2012 : 532 ) http://digilib.mercubuana.ac.id/ 16 Gambar 2.5. Komponen Sequence Diagram (Alan Dennis, 2010 : 531) 2.2.3.4 Class Diagram Diagram kelas atau Class Diagram adalah model statis yang mendukung pandangan statis dari sistem berkembang. Ini menunjukkan kelas dan hubungan antar kelas yang tetap konstan dalam sistem dari waktu ke waktu. Diagram kelas sangat mirip dengan diagram hubungan entitas (ERD). (Alan Dennis, 2012 : 521) Gambar 2.6. Contoh Class Diagram (Alan Dennis, 2010 : 530) http://digilib.mercubuana.ac.id/ 17 Tabel 2.5. Komponen Class Diagram ( Alan Dennis, 2010 ) 2.3.Database Basis data (Database) adalah kumpulan informasi yang disimpan di dalam komputer secara sistematik, sehingga data digunakan oleh suatu program komupter untuk memperoleh informasi dari basis data tersebut. Basis data adalah sekumpulan data yang terhubung satu sama lain secara logika dan suatu deskripsi data yang dirancang untuk memenuhi kebutuhan informasi suatu organisasi. [Verdi Yasin, 2012:274] Menurut Fathansyah [2012:2-3] basis didefinisikan dalam sejumlah sudut pandang seperti http://digilib.mercubuana.ac.id/ data (Database) dapat 18 Himpunan kelompok data (arsip) yang saling berhubungan yang diorganisasi sedemikian rupa agar kelak data dimanfaatkan kembali dengan cepat dan mudah. Kumpulan data yang saling berhubungan yang disimpan secara bersama sedemikian rupa dan tanpa pengulangan (redundansi) yang tidak perlu, untuk memenuhi berbagai kebutuhan. Kumpulan file/table/arsip yang saling berhubungan yang disimpan dalam media penyimanan elektronis. 2.4. Adobe Dreamweaver CS3 Adobe Dreamweaver adalah aplikasi desain dan pengembangan web yang menyediakan editor WYSIWYG ( What You See Is What You Get ) visual (lebih dikenal sebagai Design view) dan kode editor dengan fitur standar sepeti syntax highlighting, code completion, dan code collapsing.. Versi Dreamweaver ini adalah Dreamweaver CS3 Versi ini memiliki performa lebih baik dan memiliki tampilan yang memudahkan anda untuk membuat dan mengelola halaman web, termasuk diantaranya dalam hubungannya dengan bahasa pemrograman PHP dan database MySQL. Gambar 2.7. AdobeDreamweaver CS3 http://digilib.mercubuana.ac.id/ 19 2.5. PHP (Hypertext Preprocessor) menurut Nugroho (2006b:61) “PHP atau singkatan dari Personal Home Page merupakan bahasa skrip yang tertanam dalam HTML untuk dieksekusi bersifat server side”. PHP termasuk dalam open source product, sehingga source code PHP dapat diubah dan didistribusikan secara bebas. Versi terbaru PHP dapat diunduh secara gratis melalui situs resmi PHP : http://www.php.net. PHP juga dapat berjalan pada berbagai web server seperti IIS (Internet Information Server), PWS (Personal Web Server), Apache, Xitami. PHP juga mampu berjalan di banyak sistem operasi yang beredar saat ini, diantaranya : Sistem Operasi Microsoft Windows (semua versi), Linux, Mac Os, Solaris. PHP dapat dibangun sebagai modul web server Apache dan sebagai binary yang dapat berjalan sebagai CGI (Common Gateway Interface). PHP dapat mengirim HTTP header, dapat mengatur cookies , mengatur authentication dan redirect user. Salah satu keunggulan yang dimiliki PHP adalah kemampuannya untuk melakukan koneksi ke berbagai macam software sistem manajemen basis data atau Database Management Sistem (DBMS), sehingga dapat menciptakan suatu halaman web dinamis. PHP mempunyai koneksitas yang baik dengan beberapa DBMS seperti Oracle, Sybase, mSQL, MySQL, Microsoft SQL Server, Solid, PostgreSQL, Adabas, FilePro, Velocis, dBase, Unix dbm, dan tidak terkecuali semua database ber-interface ODBC. Hampir seluruh aplikasi berbasis web dapat dibuat dengan PHP. Namun kekuatan utama adalah konektivitas basis data dengan web. Dengan kemampuan ini kita akan mempunyai suatu sistem basis data yang dapat diakses. http://digilib.mercubuana.ac.id/ 20 2.6. Framework CodeIgniter Menurut [ Betha Sidik, 2012] Framework CodeIgniter adalah aplikasi open source yang berupa framework dengan model MVC (Model, View, Controller) untuk membangun website dinamis dengan menggunakan PHP. CodeIgniter memudahkan developer untuk membuat aplikasi web dengan cepat dan mudah dibandingkan dengan membuatnya dari awal. Model View Controller merupakan suatu konsep yang cukup populer dalam pembangunan aplikasi web, berawal pada bahasa pemrograman Small Talk, MVC memisahkan pengembangan aplikasi berdasarkan komponen utama yang membangun sebuah aplikasi seperti manipulasi data, user interface, dan bagian yang menjadi kontrol aplikasi. Terdapat 3 jenis komponen yang membangun suatu MVC pattern dalam suatu aplikasi yaitu : 1. View, merupakan bagian yang menangani presentation logic. Pada suatu aplikasi web bagian ini biasanya berupa file template HTML, yang diatur oleh controller. View berfungsi untuk menerima dan merepresentasikan data kepada user. Bagian ini tidak memiliki akses langsung terhadap bagian model. 2. Model, biasanya berhubungan langsung dengan database untuk memanipulasi data (insert, update, delete, search), menangani validasi dari bagian controller, namun tidak dapat berhubungan langsung dengan bagian view. 3. Controller, merupakan bagian yang mengatur hubungan antara bagian model dan bagian view, controller berfungsi untuk menerima request dan data dari user kemudian menentukan apa yang akan diproses oleh aplikasi. Dengan menggunakan prinsip MVC suatu aplikasi dapat dikembangkan sesuai dengan kemampuan developernya, yaitu programmer yang menangani bagian model dan controller, sedangkan designer yang menangani bagian view, sehingga penggunaan arsitektur MVC dapat meningkatkan maintanability dan organisasi kode. Walaupun demikian dibutuhkan komunikasi yang baik antara programmer dan designer dalam menangani variabel-variabel yang akan ditampilkan. http://digilib.mercubuana.ac.id/ 21 Ada beberapa kelebihan CodeIgniter (CI) dibandingkan dengan Framework PHP lain, Performa sangat cepat : salah satu alasan tidak menggunakan framework adalah karena eksekusinya yang lebih lambat daripada PHP from the scracth, tapi Codeigniter sangat cepat bahkan mungkin bisa dibilang codeigniter merupakan framework yang paling cepat dibanding framework yang lain. Konfigurasi yang sangat minim (nearly zero configuration) : tentu saja untuk menyesuaikan dengan database dan keleluasaan routing tetap diizinkan melakukan konfigurasi dengan mengubah beberapa file konfigurasi seperti database.php atau autoload.php, namun untuk menggunakan codeigniter dengan setting standard, anda hanya perlu mengubah sedikit saja file pada folder config. Banyak komunitas: dengan banyaknya komunitas CI ini, memudahkan kita untuk berinteraksi dengan yang lain, baik itu bertanya atau teknologi terbaru. Dokumentasi yang sangat lengkap : Setiap paket instalasi codeigniter sudah disertai user guide yang sangat bagus dan lengkap untuk dijadikan permulaan, bahasanya pun mudah dipahami. 2.7. MySql Menurut Arief (2011d:152) MySQL termasuk jenis RDBMS (Relational Database Management System). Sehingga istilah seperti tabel, baris, dan kolom tetap digunakan dalam MySQL. Pada MySQL sebuah database mengandung satu beberapa tabel, tabel terdiri dari sejumlah baris dan kolom. mysql dikembangkan oleh sebuah perusahaan Swedia bernama mysql AB,. dapat dilihat dan gratis, serta server mysql dapat dipakai tanpa biaya tapi hanya untuk kebutuhan nonkomersial. Sementara distribusi Windows mysql sendiri dirilis secara shareware. Barulah pada Juni 2000 mysql AB mengumumkan bahwa sejak versi 3.23.19, mysql adalahSoftware bebas berlisensi GPL. Artinya, “Source code mysql dapat http://digilib.mercubuana.ac.id/ 22 dilihat dan gratis, serta server mysql dapat dipakai tanpa biaya untuk kebutuhan apa pun. Perangkat lunak ini bermanfaat untuk mengelola data dengan cara yang sangat flexibel dan cepat. Berikut adalah sejumlah aktivitas yang terkait dengan data yang didukung oleh perangkat lunak tersebut : 1. Menyimpan data ke dalam tabel 2. Menghapus data dalam tabel 3. Mengubah data dalam tabel 4. Mengambil data yang tersimpa dalam tabel 5. Memungkinan untuk memilih data tertentu yang diambil 6. Memungkinkan untuk melakukan pengaturan hak akses terhadap data. Dan pada penggunaannya dalam MySql ini bisa menggunakan banyak tools, salah satunya phpMyAdmin. Gambar 2.8. phpMyAdmin Localhost http://digilib.mercubuana.ac.id/ 23 2.8. XAMPP Menurut Riyanto (2010:1) XAMPP Adalah perangkat yang menggabungkan tiga aplikasi ke dalam satu paket, yaitu Apache, MySQL, Dan PHP MyAdmin. Dengan XAMPP pekerjaan Anda akan sangat dimudahkan, karena dapat menginstalasi dan mengkonfigurasi ketiga aplikasi tadi secara sekaligus dan otomatis. XAMPP telah mengalami perkembangan dari waktu ke waktu. Versi yang terbaru adalah revisi dari edisi sebelumnya, sehingga lebih baik dan lebih lengkap. Aplikasi utama dalam paket Xampp setidaknya terdiri atas web server Apache, MySQL, FileZilla, Mercury, Tomcat. Gambar 2.9. Control Panel XAMPP http://digilib.mercubuana.ac.id/ 24 2.9. Testing Perangkat Lunak “Testing adalah sebuah proses yang dijelaskan sebagai siklus hidup dan merupakan bagian dari proses rekayasa perangkat lunak secara terintegrasi demi memastikan kualitas dari perangkat lunak serta memenuhi kebutuhan teknis yang telah disepakati dari awal” Soetam Rizky ( 2011:237) 2.9.1. Metode Black Box “Black box Testing adalah tipe testing yang memperlakukan perangkat lunak yang tidak diketahui kinerja internalnya. Sehingga para tester memandang perangkat lunak seperti layaknya sebuah “kotak hitam” yang tidak penting dilihat isinya, tapi cukup dikenai proses testing di bagian luar” Soetam Rizky (2011:264). Beberapa keuntungan yang diperoleh dari jenis testing ini antara lain : 1. Anggota tim tester tidak harus dari seseorang yang memiliki kemampuan teknis di bidang pemrograan. 2. Kesalahan dari perangkat lunak ataupun bug seringkali ditemukan oleh komponen tester yang berasal dari pengguna. 3. Hasil dari black box testing dapat memperjelas kontradiksi ataupun keracunan yang mungkin timbul dari eksekusi sebuah perangkat lunak. 4. Proses testing dapat dilakukan lebih cepat dibandingkan white box testing. Beberapa teknik testing yang tergolong dalam tipe ini antara lain : 1. Equivalence Partitioning Pada teknik ini, tiap inputan data dikelompokkan ke dalam grup tertentu, yang kemudian dibandingkan outputnya. 2. Boundary Value Analysis Merupakan teknik yang sangat umum digunakan pada saat awal sebuah perangkat lunak selesai dikerjakan. Pada teknik ini, dilakukan inputan yang melebihi dari batasan sebuah data, jika perangkat lunak berhasil mengatasi inputan yang salah maka dapat dikatakan teknik ini telah selesai dilakukan. http://digilib.mercubuana.ac.id/ 25 3. Cause Effect Graph Dalam teknik ini, dilakukan proses testing yang dapat menghubungkan sebab dari sebuah inputan dan akibatnya pada output yang dihasilkan. 4. Random Data Selection Teknik berusaha melakukan proses inputan data yang menggunakan nilai acak. Dari hasil inputan tersebut kemudian dibuat sebuah tabel yang menyatakan validitas dari output yang dihasilkan. 5. Feature Test Pada teknik ini dilakukan proses testing terhadap spesifikasi dari perangkat lunak yang telah selesai dikerjakan. http://digilib.mercubuana.ac.id/