BAB II LANDASAN TEORI 2.1. KONSEP DASAR SISTEM Suatu sistem dapat terdiri dari beberapa subsistem atau sistem bagian. Komponen atau subsistem dalam suatu sistem tidak dapat berdiri lepas sendirisendiri. Komponen atau subsistem saling berinteraksi dan saling berhubungan membentuk satu kesatuan sehingga tujuan atau sasaran dapat tercapai. Menurut Jogianto (2005:1) Sistem adalah kumpulan dari elemen elemen yang berinteraksi untuk mencapai suatu tujuan tertentu. Dengan demikian, secara sederhana sistem dapat diartikan sebagai suatu kumpulan dari variabel yang saling terorganisasi, saling berinteraksi, dan saling bergantung sama lain. Gambar 2.1 Model Sistem [Jogiyanto, Analisis dan desain, 2005 ] 8
9 Gambar di atas menunjukan bahwa sistem harus mempunyai beberapa komponen, yakni masukan, pengolahan, keluaran, dan balikan atau kontrol. 2.1.1. PENGERTIAN SISTEM Untuk memahami atau mengembangkan suatu sistem, maka perlu membedakan unsur dari sistem yang membentuknya. Berikut adalah karakteristik sistem yang dapat membedakan suatu sistem dengan sistem lainya: 1. Batas sistem, batas sistem (boundary) merupakan daerah yang membatasi antara suatu sistem dengan sistem lainnya atau dengan lingkungan luarnya. 2. Lingkungan luar system, lingkungan luar (environment) dari suatu sistem adalah apapun di luar batas dari sistem yang mempengaruhi operasi sistem. Lingkungan luar sistem dapat bersifat menguntungkan dan dapat juga merugikan sistem tersebut. 3. Penghubung system, penghubung (interface) merupakan media penghubung antara satu subsistem dengan subsistem lainnya. 4. Masukan sistem, masukan (input) adalah data yang dimasukkan kedalam sistem. Masukan dapat berupa masukan perawatan (maintenance input) dan masukan sinyal. 5. Keluaran sistem, keluaran (output) adalah hasil dari data yang diolah dan diklasifikasikan menjadi keluaran yang berguna dan sisa pembuangan.
10 6. Pengolah sistem, suatu sistem dapat mempunyai suatu bagian pengolah yang akan merubah masukan menjadi keluaran. 7. Sasaran sistem, suatu sistem pasti menjadi suatu tujuan (goal) atau sasaran (objective). 2.1.2. KARAKTERISTIK SISTEM Suatu sistem mempunyai karakterisitik atau sifat-sifat tertentu, yaitu mempunyai kopnonen-komponen (components), batas sistem (boundary), lingkup luar sistem (environments), antar muka (interface), masukan (input), keluaran (output), pengolah (process) dan sasaran (objective) atau tujuan (goal). 2.2. KONSEP DASAR INFORMASI Informasi adalah bentuk akhir dari pengolahan data yang berguna bagi penerimanya. Sumber dari informasi adalah data, dimana data menggambarkan kejadian yang terjadi pada saat tertentu. 2.2.1. PENGERTIAN INFORMASI Menurut Jogiyanto (2005:8) Informasi adalah data yang diolah menjadi bentuk yang lebih berguna dan lebih berarti bagi penggunanya.. Lebih lanjut beliau juga menambahkan bahwa Informasi dapat juga diartikan sebagai data yang telah diolah menjadi bentuk yang mempunyai arti dan menfaat bagi manusia. Sedangkan pengertian akan data adalah sebuah potongan-potongan fakta yang menunjukan sebuah peristiwa yang telah terjadi.
11 2.2.2. PENGERTIAN SISTEM INFORMASI Menurut jogiyanto (2005:11) Sistem informasi adalah suatu sistem di dalam orgnisasi yang mempertemukan kebutuhan pengelolahan transaksi harian, mendukung operasi, bersifat manajerial dan kegiatan strategis di dalam suatu organisasi dan menyedikan pihak luar tertentu dengan laporan - laporan yang diperlukan. 2.3. METODE WATERFALL Proses pengembangan sistem melewati beberapa tahapan dari mulai sistem itu direncanakan sampai dengan sistem tersebut diterapkan, dioperasikan dan dipelihara. Menurut Rosa, Salahuddin(2011:26) metode waterfall adalah salah satu model SDLC (software development life cycle) air terjun yang menyediakan pendekatan alur hidup perangkat lunak secara sekuensial atau terurut. Tahapan dalam metode ini adalah perencanaan, analisis, desain, pemrograman, uji coba, implementasi dan pemeliharaan. 2.3.1 Fase Model Waterfall 1. Planning 2. Analisa dan definisi kebutuhan 3. Design 4. Coding 5. Testing 6. Maintenance gambaran dari proses model waterfall dapat dilihat pada gambar dibawah ini.
12 Gambar 2.2 Metode Waterfall [Jogiyanto, Analisis dan desain, 2005] Penjelasan dari fase-fase model waterfall diuraikan sebagai berikut ini : 1. Sistem Engineering, Merupakan sebuah proses menetapkan kebutuhan sistem yang akan diterapkan kedalam sistem, seperti kebutuhan software, hardware, dan database. 2. Analisis kebutuhan software. Suatu proses pengumpulan kebutuhan software yang akan dibuat seperti fungsi yang dibutuhkan, antar muka sistem dengan user, dan sebagainya. 3. Design, Suatu proses menerapkan kebutuhan software kedalam rancangan awal sebuah sistem yang nantinya akan diimplementasikan. 4. Coding, Suatu proses implementasi rancangan sistem kedalam bentuk yang dapat dimengerti oleh computer atau secara singkat proses ini adalah
13 menerapkan rancangan kedalam sebuah program (perangkat lunak) dengan menggunakan bahasa pemrograman. 5. Testing, Merupakan proses pengujian atas program yang telah dibuat agar dapat menemukan kesalahan-kesalahan atau kekurangan yang ada. 6. Maintenance, Merupakan sebuah proses pemeliharaan sistem, pemeliharaan secara berkala dapat mengatasi kendala-kendala seperti error yang tidak ditemukan pada saat testing, atau juga apabila ada penambahan fitur-fitur. 2.4. UML (Unified Modelling Language) Pada perkembangan teknik pemrograman berorientasi objek, muncullah sebuah standarisasi bahasa pemodelan untuk pembangunan sistem yang dibangun dengan menggunakan teknik pemrograman berorientasi objek, yaitu Unified Modeling Language (UML). Definisi UML menurut Rosa, Salahuddin (2011:118) UML merupakan bahasa visual untuk pemodelan dan komunikasi mengenai sebuah sistem dengan menggunakan diagram dan teks-teks pendukung. 2.4.1. USE CASE DIAGRAM Use case adalah deskripsi fungsi dari sebuah sistem dari perspektif pengguna. Use case bekerja dengan cara mendeskripsikan tipikal interaksi antara user (pengguna) sebuah sistem dengan sistemnya.
14 Gambar 2.3 Use Case Model ( Munawar 2005:64 ) Use Case memiliki beberapa simbol, dimana masing-masing simbol tersebut memiliki fungsi dan kegunaan yang berbeda-beda. Tabel 2.1 Simbol Use Case Diagram Simbol Keterangan Aktor : Mewakili peran orang, sistem yang lain atau alat ketika berkomunikasi dengan use case Use case : Abstraksi dari interaksi antara sistem dan actor Association adalah abstraksi dari penghubung antara aktor dan use case Generalisasi : Menunjukan spesialisai aktor untuk dapat berpartisipasi dalam Use case
15 Lanjutan table 2.1 Simbol Use Case Diagram <<include>> Menunjukkan bahwa suatu suatu use case seluruhnya merupakan fungsionalitas dari use case lain nya <<extend>> Menunjukkan bahwa suatu use casemerupakan tambahan fungsional dariuse case lain nya jika suatu kondisi terpenuhi. (elib.unikom.ac.id/file/disk1/441/jbpetunikompp-gdl-riorusiann-2203711- daftars-l.pdf 24/03/11) 2.4.2. ACTIVITY DIAGRAM Activity diagram adalah teknik untuk menggambarkan logika prosedurial, proses bisnis dan aliran kerja dalam berbagai kasus. Dalam berbagai hal diagram ini memainkan peran seperti diagram alir atau seperti halnya flowchart, akan tetapi perbedaanya dengan flowchart adalah activity diagram bisa mendukung prilaku parallel sedangkan flowchart tidak bisa. Simbol berikut adalah simbol yang sering digunakan pada saat pembuatan activity diagram.
16 Tabel 2.2 Simbol Activity Diagram Simbol Keterangan Activity Memperlihatkan bagaimana masingmasing kelas antarmuka saling berinteraksi satu sama lain Action State dari sistem yang mencerminkan eksekusi dari suatu aksi Initial Node Bagaimana objek dibentuk atau diawali. Actifity Final Node Bagaimana objek dibentuk dan dihancurkan Fork Node Satu aliran yang pada tahap tertentu berubah menjadi beberapa aliran (www.pribadiraharja.com/neli/skripsi/lampiran/dafta R_SIMBOL.doc)
17 2.4.3. SEQUENCE DIAGRAM Menurut Martin Fowler (2004:67) sequence diagram merupakan sebuah model yang menggambarkan bagaimana objek-objek didalam sistem saling beriteraksi dalam waktu tertentu.. Simbol berikut adalah simbol yang sering digunakan pada saat pembuatan sequence diagram. TABEL 2.3 Simbol Sequence Diagram Simbol Keterangan Object, menggambarkan sebuah objek didalam sistem, dapat berupa sebuah aktor (user), antarmuka, simpanan data, ataupun sebuah kondisi yang diciptakan dari hasil interaksi. Lifeline, menggambarkan masa kerja sebuah objek pada saat interaksi berlangsung. Message, sebuah pesan yang dikirim antar objek. Self Message, sebuah pesan yang menuju ke objek itu sendiri. Return, sebuah pesan jawaban dari interaksi objek.
18 2.4.4 Class Diagram Menurut Martin Fowler (2004:49) class diagram menggambarkan objekobjek yang terdapat didalam sistem dan hubungan antar objek tersebut. Simbol berikut adalah simbol yang sering digunakan pada saat pembuatan class diagram. Gambar 2.4 Contoh class diagram (http://bebasbanjir2025.wordpress.com/10-makalah-tentang-banjir-2/adelinenarwastu-dan-eri-prasetyo-w/) 2.5 Basis Data (Database) Menurut Jogiyanto (2008:19) basis data merupakan kumpulan data yang saling berhubungan satu dengan lainnya yang tersimpan dalam perangkat keras komputer dan di perlukan suatu perangkat untuk memanipulasikan basis data tersebut.
19 2.6 PHP PHP (Hypertext Preprocessor) adalah bahasa skrip yang dapat ditanamkan atau disisipkan ke dalam HTML. PHP banyak dipakai untuk memrogram situs web dinamis. PHP dapat digunakan untuk membangun sebuah CMS (Content Management Services). Beberapa kelebihan PHP dari bahasa pemrograman web, antara lain: 1. Bahasa pemrograman PHP adalah sebuah bahasa script yang tidak melakukan sebuah kompilasi dalam penggunaanya. 2. Web Server yang mendukung PHP dapat ditemukan dimana - mana dari mulai apache, IIS, Lighttpd, hingga Xitami dengan konfigurasi yang relatif mudah. 3. Dalam sisi pengembangan lebih mudah, karena banyaknya milis - milis dan developer yang siap membantu dalam pengembangan. 4. Dalam sisi pemahamanan, PHP adalah bahasa scripting yang paling mudah karena memiliki referensi yang banyak. 5. PHP adalah bahasa open source yang dapat digunakan di berbagai mesin (Linux, Unix, Macintosh, Windows) dan dapat dijalankan secara runtime melalui console serta juga dapat menjalankan perintah-perintah system.
20 2.7 MySQL 2.7.1 Pengertian MySQL MySQL adalah sebuah program database server yang mampu menerima dan mengirimkan datanya dengan sangat cepat, multi user serta menggunakan perintah standar SQL(Structured Query Language) Bunafit, Nugroho (2005:1). MySQL adalah sebuah perangkat lunak sistem manajemen basis data SQL atau DBMS yang multithread, multi-user, dengan sekitar 6 juta instalasi di seluruh dunia. MySQL tersedia sebagai perangkat lunak gratis dibawah lisensi GNU General Public License (GPL), tetapi mereka juga menjual dibawah lisensi komersial untuk kasus-kasus dimana penggunaannya tidak cocok dengan penggunaan GPL. SQL adalah sebuah konsep pengoperasian basisdata, terutama untuk pilihan atau seleksi dan pemasukan data, yang memungkinkan data di operasikan dengan mudah dan secara otomatis. Ada bebrapa alasan penggunaan MySQL adalah sebagai berikut : 1. Protabilitas, MySQL stabil dan adapat dgunakan pada setiap system operasi seperti : windows, Linux,Free BSD,Mac OS server, solaris, Amiga dll 2. Perangkat lunak sumer terbuka MySQL dapat digunakan secara gratis karena mnggunakan lisensi GPL dan disbut juga perangkat perangkat lunak terbuka. 3. Multi User MySQL dapat digunakan oleh beberapa user dalam waktu yang bersamaan tanpa adanya konflik atau masalah. 4. Ragam Tipe Data SQL memiliki ragam tipe data yang sangat banyak, seperti integer, float, char, double, text dan date. 5. Keamanan. Memiliki ingkat kemanan seperti subnetmask, nama host dan izin
21 akses user dengan sistem perizinan serta sandi terenkripsi. 2.8 Pengertian PhpMyAdmin PhpMyAdmin adalah suatu program Open Source berbasis web. Program ini berguna untuk mengakses database MySQL Program ini akan mempermudah dan mempersingkat kerja kita, dengan beberapa kelebihan, antara lain pengguna awam tidak harus mengenal syntax syntax SQL dalam pembuatan database dan tabel Bunafit, Nugroho (2005:467). Gambar 2.5 Halaman PHP MyAdmin 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 kebuthan 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 :
22 1. Anggota tim tester tidak harus dari seeseorang yang memiliki kemampuan teknis di bidang pemograman. 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. 3. Cause Effect Graph Dalam teknik ini, dilakukan proses testing yang menghubungkan sebsb dari sebuah inputan dan akibatnya pada output yang dihasilkan. 4. Random Data Selection Teknik ini berusaha melakukan proses inputan data dengan 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.
23 2.9.2 Metode White box White box testing adalah jenis testing yang lebih berkonsentrasi terhadap isi dari perangkat lunak itu sendiri. Jenis ini lebih banyak brkonsentrasi kepada source code dari perangkat lunak yang dibuat Soetam, Rizky (2011:261). Prinsip dari keluaran tipe testing ini adalah : 1. Menjamin bahwa semua alur program yang indenpenden (dalam bentuk modul, form, prosedur, class dal lainnya) telah dites minimal satu kali. 2. Telah melakukan testing terhadap semua jenis percabangan dengan nilai true dan false. 3. Telah melakukan testing terhadap semua jenis perulangan dengan kondisi normal dan kondisi yang dianggap melampaui batas perulangan (umumnya kondisi yang melampaui batas harus diatasi oleh prosedur tertentu). 4. Telah melakukan testing terhadap struktur data internal (seperti variable) agar terjaga validitasnya. Beberapa teknik yang terdapat dalam jenis white box testing adalah: 1. Decision (branch) Coverage Testing ini terfokus pada hasil dari tiap scenario yang dijalankan terhadap bagian perangkat lunak yang mengandung percabangan (If then else). 2. Condition Coverage Teknik ini mirip dengan teknik yang pertama, tetapi dijalankan terhadap percabangan yang dianggap kompleks atau percabangan majemuk. Hal ini biasanya dilakukan jika dalam sebuah perangkat lunak memiliki banyak kondisi yang dijalankan dalam satu proses sekaligus. 3. Path Analysis Merupakan teknik testing yang berusaha menjalankan kondisi yang ada dalam perangkat lunak serta berusaha mengoreksi apakah kondisi yang dijalankan telah sesuai dengan alur diagram yang terdapat dalam proses perancangan. 4. Execution Time Pada teknik ini, perangkat lunak berusaha dijalankan kemudian dilakukan pengukuran waktu pada input masukkan hingga output dikeluarkan. Waktu
24 eksekusi yang dihasilkan kemudian dijadikan bahan evaluasi dan analisa lebih lanjut untuk melihat apakah perangkat lunak telah berjalan sesuai dengan kondisi yang dimaksudkan oleh tester. 5. Algorithm Analysis Teknik ini jarang dilakukan jika perangkat lunak yang dibuat berjenis sistem informasi. Sebab teknik ini membutuhkan kemampuan matematis yang cukup tinggi dari para tester, karena di dalamnya berusaha melakukan analisa terhadap algoritma yang diimplementasikan pada perangkat lunak tersebut. 2.10 Pengertian perusahaan perusahaan adalah setiap bentuk badan usaha yang menjalankan setiap jenis usaha yang bersifat tetap dan terus menerus dan didirikan, bekerja, serta berkedudukan dalam wilayah negara indonesia untuk tujuan memperoleh keuntungan dan atau laba. Kansil (2001 : 2) perusahaan adalah adalah suatu organisasi produksi yang menggunakan dan mengkoordinir sumber-sumber ekonomi untuk memuaskan kebutuhan dengan cara yang menguntungkan. Perusahaan adalah tempat terjadinya kegiatan produksi dan berkumpulnya semua faktor produksi. (Wikipedia perusahaan, 2008).