BAB II LANDASAN TEORI 2.1 Tinjauan Pustaka 2.1.1 Penelitian Terdahulu Penelitian ini diambil dari berbagai hal yang berkaitan dengan teori rancang bangun inventori. Penelusuran dilakukan melalui berbagai sumber baik itu internet maupun studi literatur. Berdasarkan penelusuran diatas, didapat beberapa pendapat tentang teori yang berkaitan dengan sistem informasi penjualan, yaitu : 1. Penelitian Moch Arifin, (2010), melakukan penelitian mengenai “Rancang bangun sistem informasi inventory & prediksi jumlah pembelian Barang pada koperasi pegawai telekomunikasi”. Hasil penelitian adalah berdasarkan hasil uji coba dengan Menggunakan metode single moving avegare dapat Diketahui bahwa metode ini dapat diterapkan dalam Aplikasi untuk membantu mengambil keputusan Jumlah prediksi pembelian barang periode kedepan. 2. Penelitian Dewi Sawitri (2010), yang melakukan penelitian mengenai “Perancangan Sistem Informasi Manajemen di CV Momentum Teknik”, guna menerapkan perancangan tersebut maka digunakan metode SDLC mulai dari perencanaan sistem hingga tahap perancangan sistem yang rinci, mencakup perancangan database, perancangan kontrol, perancangan input output, hingga teknologinya. 6 3. Penelitian Wahyu Dwiyantoro (2009), yang melakukan penelitian mengenai “Analisis Aplikasi Sistem Informasi Manajemen Inventori pada PT Trans Coffee”, Dengan adanya sistem inventori diharapkan dapat memudahkan perusahaan tersebut dalam melaksanakan prose inventori secara terencana, terkontrol, sistematis dan saling terhubung. 4. Penelitian Imam Nursalim (2010), dengan judul “Sistem Informasi Persediaan Barang pada Apotik Madukoro Menggunakan Java”, Aplikasi ini dapat mengelola stok inventory barang. Sistem ini juga mampu mencatat secara otomatis tentang perubahan stok barang. Terutama saat terjadi transaksi pembelian barang. Penjualan barang dan transaksi retur barang. 5. Penelitian Budi Mochamad Noviandi (2012), dengan judul “Perancangan Sistem Informasi Inventori Barang di Bank Sampah Garut”, dijelaskan bahwa Perancangan sistem informasi inventori ini meliputi tahap Analisis dan desain sistem dengan menggunakan metodologi berorientasi objek dari Ali Bahrami (1999) yaitu dengan menggunakan metode Unified Approach. 2.2 Rancang Bangun Berikut definisi dari beberapa ahli mengenai pengertian dari rancang bangun : 1. Menurut Pressman (2002) menjelaskan bahwa rancang bangun merupakan serangkaian prosedur untuk menerjemahkan hasil analisa dari sebuah sistem ke dalam bahasa pemrograman untuk 7 mendeskripsikan dengan detail bagaimana komponen-komponen sistem diimplementasikan 2. Menurut Mc Leod (2002) menjelaskan bahwa rancangan sistem adalah penentuan proses dan data yang diperlukan oleh sistem baru. 3. Menurut Ladjamudin (2005) menjelaskan bahwa perancangan adalah kegiatan yang memiliki tujuan untuk mendesain sistem baru yang dapat menyelesaikan masalah-masalah yang dihadapi perusahaan yang diperoleh daari pemilihan alternatif sistem yang terbaik 4. Menurut Whitten Et El (2004) menjelaskan bahwa bangun sistem adalah membangun sistem informasi dan komponen yang didasarkan pada spesifikasi desain. Dengan demikian pengertian rancang bangun merupakan kegiatan menerjemahkan hasil analisa ke dalam bentuk paket perangkat lunak kemudian menciptakan sistem tersebut ataupun memperbaiki sistem yang sudah ada. 2.3 Aplikasi Berikut beberapa pendapat para ahli mengenai definisi dari aplikasi : 1. Menurut Shelly dkk (2009) menjelaskan bahwa aplikasi adalah seperangkat instruksi khusus dalam komputer yang dirancang agar kita menyelesaikan tugas-tugas tertentu. 2. Menurut Kamus Besar Bahasa Indonesia (2005) pengertian aplikasi adalah suatu perangkat lunak yang dijalankan oleh para pengguna untuk mencapai tujuan tertentu. Misalnya, menjelajah Internet dengan 8 menggunakan aplikasi “Browser”, atau mengubah sebuah berkas dengan aplikasi “E 3. Menurut Dhanta (2009), aplikasi (application) adalah software yang dibuat oleh suatu perusahaan komputer untuk mengerjakan tugastugas tertentu, misalnya Microsoft Word, Microsoft Excel. Berdasarkan penjelasan mengenai pengertian aplikasi oleh para ahli maka penulis dapat menyimpulkan bahwa aplikasi adalah sebuah unit perangkat lunak (software) yang dirancang untuk mengerjakan tugas-tugas tertentu dengan maksud tujuan tertentu. Klasifikasi aplikasi dapat dibagi menjadi 2 (dua) yaitu : 1. Aplikasi software spesialis, program dengan dokumentasi tergabung yang dirancang untuk menjalankan tugas tertentu. 2. Aplikasi paket, dengan dokumentasi tergabung yang dirancang untuk jenis masalah tertentu Sedangkan macam-macam data yang digunakan untuk membuat aplikasi adalah : 1. Data sumber (sourcedata) ialah fakta yang disimpan di dalam basis data misalnya: nama, tempat lahir, tanggal lahir dan lain-lain. 2. Meta Data, digunakan untuk menjelaskan struktur dari basis data, tipe dan formal penyimpanan data perunit dan berbagai pembatas pada data. 3. Data Dictionary atau data Repository, digunakan untuk menyimpan informasi katalog skema dan pembatas serta data lain seperti: pembakuan, deskripsi program aplikasi dan informasi pemakai. 9 4. Overhead Data, berisi linked list, indeks dan struktur data lain yang digunakan untuk menyajikan relationship record. 2.4 Inventori Inventory atau persediaan merupakan simpanan material yang berupa bahan mentah, barang dalam proses dan barang jadi. Dari sudut pandang sebuah perusahaan maka persediaan adalah inventasi modal yang dibutuhkan untuk penyimpanan material pada kondisi tertentu. (Sumayang, 2003). Pengedaliaan persediaan adalah soal yang besar dan penting.Ia minta perhatian lebih besar daripada yang telah diberikan dewasa ini. Ia merupakan anak dari industri dan perdagangan yang tidak disenangi selama kurun waktu yang sangat panjang. Terdapat banyak pandangan yang berbeda-beda mengenai kegiatan ini, sebagian menganggap tidak perlu dan merupakan kegiatan yang mahal, sedang sebagian lain berpendapat bahwa kegiatan itu merupakan kebutuhan yang sangat vital dan menggunakan metode yang paling mutakhir untuk mengendalikan setiap segi dari perusahaan yang amat kecil sekalipun.(Warman,2012). Barang persediaan adalah sejumlah material yang disimpan dan dirawat menurut aturan tertentu dalam tempat persediaa agar selalu dalam keadaan siap pakai dan ditatausahakan dalam buku perusahaan. (Indrajit dan Pranoto, 2003). Sediaan (Inventory) adalah sejumlah bahan atau barang yang tersedia untuk digunakan sewaktu-watu di masa yang akan datang. Sediaan terjadi apabila jumlah bahan atau barang yang diadakan (dubeli atau dibuat sendiri). Dengan kata lain, sediaan adalah kelebihan jumlah yang diadakan di atas jumlah yang 10 digunakan. Selama sebelum digunakan, sediaan ini sebenarnya merupakan sumberdaya yang menganggur. Namun demikian itu tidak berarti bahawa sumberdaya yang menganggur itu tidak bermanfaat. Sediaan itu berguna untuk berjaga-jaga agar tidak ada permintaan atau kebutuhan i masa depan yang tidak dapat dipenuhi. (Pardede, 2005). 2.5 Metode Pengembangan Perangkat Lunak Menurut Rosa A. S Dan M. Shalahuddin dalam bukunya yang berjudul Modul Pembelajaran Rekayasa Perankat Lunak (Terstruktur Dan Berorientasi Objek), menjelaskan bahwa: “Pengembangan perangkat lunak atau yang lebih dikenal dengan Sofware Development Life Cycle (SDLC) adalah proses mengembangkan atau mengubah suatu sistem perangkat lunak dengan menggunakan modelmodel dan metodologi yang digunakan orang untuk mengembangkan sistem-sistem perangkat lunak sebelumnya (berdasarkan best practice atau cara-cara yang sudah teruji baik)” (2011:24). Pada umumnya tahapan model-model yang digunkan dalam tahapan SDLC mengacu pada tahapan analisi, desain, implementasi, dan pemeliharaan dalm merancang atau mengembangkan perangkat lunak dimana pada perkembangnannya, tahapan tersebut dikemas dalam model SDLC yang lebih lengkap. Adapun beberapa model SDLC yang dapat digunakan salah satunya model prototipe dapat digunakan untuk menyambung ketidak pahaman pelanggan mengenai hal teknis dan memper jelas spesifikasi kebutuhan yang diinginkan pelanggan kepada pengembangg perangkat lunak. 11 Model prototipe dapat digunakan untuk menyambungkan ketidak pahaman pelanggan mengenai hal teknis dan memperjelas spesifikasi kebutuhan yang diinginkan pelanggan kepada pengembang perangkat lunak. Model protipe dimulai dari mengumpulkan kebutuhan pelanggan terhadap perangkat lunak yang akan dibuat. Lalu, dibuatlah program prototipe agar pelanggan lebih terbayang dengan sebenarnya apa yang diinginkan. Program prototipe biasanya merupakan program yang belum jadi. Program ini biasanya menyediakan tampilan dengan simulasi alur perangkat lunak seperti perangkat lunak yang sudah jadi. Program prototipe ini dievaluasioleh pelanggan atau user sampai ditemukan spesifikasi yang sesuai dengan keinginan pelanggan atau user. Gambar 2.1 Ilustrasi model Prototipe Sumber : A. S. Rosa, dkk (2011) langkah-langkat yang penting dalam model ini adalah sebagai berikut : a. Prototype Paradigma dimulai dengan mengumpulkan kebutuhan-kebutuhan customer. b. Developer dan customer bertemu dan mendefinisikan obyektif software secara menyeluruh, mengidentifikasi kebutuhan-kebutuhan yang diketahui dari area pekerjaan. 12 c. Setelah itu dibuat Quick Design. d. Quick Design difokuskan pada representasi aspek software yang bisa dilihat customer/user (misal: format input dan output). e. Quick Design cenderung ke pembuatan prototype. f. Prototipe dievaluasi customer/user dan digunakan untuk menyempurnakan kebutuhan software yang akan dikembangkan. 2.6 Unified Modelling Language (UML) Menurut A.S Rosa dkk (2011;118) UML merupakan bahasa visual untuk pemodelan dan komunikasi mengenai sebuah sistem dengan menggunakan diagram dan teks-teks pendukung. UML muncul karena adanya karena adanya kebutuhan pemodelan visual untuk menspesifikasikan, menggambarkan, membangun dan mendokumentasi dari sistem perangkat lunak. Pada diangram UML 2.3 terdiri dari 13 macam diagram yang dikelompokkan dalam 3 kategori. Pembagian kategori dan macam-macam diagram tersebut dapat dilihat pada gambar dibawah ini. Gambar 2.2. Diagram UML UML Diagram Behaviour Berikut ini adalah penjelasan mengenai berbagaiInteraction diagran UML serta Diagram Diagram Structure Diagram tujuannya : Class Diagram 2.6.1 Use Case Diagram Object Diagram Use Case Diagram Sequence Diagram Activity Diagram Communication Diagram Use Case diagram secara garis besar menggambarkan interaksi antara Component Diagram State Machine Diagram Timing Diagram sistem, sistem eksternal dan pengguna. Dengan kata lain Use Case diagaram Composite Structure Diagram Package Diagram Deployment Diagram Interaction Overview Diagram 13 secara grafis mendeskripsikan siapa yang akan menggunakan sistem dan dalam cara apa pengguna (user) mengharapkan interaksi dengan sistem itu. Tabel 2.1. Simbol-simbol Use Case Nama dan Simbol Deskripsi Fungsionalitas yang disediakan sistem sebagai unit-unit Nama Use Case yang saling bertukar pesan antar unit atau aktor; biasanya dinyatakan dengan menggunakan kata kerja di Aktor/Actor Orang, proses, atau sistem lain yang berinteraksi dengan awal di awal frase nama use case sistem informasi yang akan dibuat di luar sistem informasi yang akan dibuat itu sendiri, jadi walaupun simbol dari aktor adalah gambar orang, tapi aktor belum Aktor tentu merupakan orang; biasanya dinyatakan Asosiasi/Association Komunikasi antara aktor dan use case yang menggunakan kata benda di awal frase nama aktor berpartisipasi pada use case atau use case memiliki Ekstensi / Extend interaksi aktor Relasi usedengan case tambahan ke sebuah use case dimana use case yang ditambahkan dapat berdiri sendiri walau << extend >> tanpa use case tambahan itu; mirip dengan prinsip inheritance pada pemrograman berorientasi objek; biasanya use case tambahan memiliki nama depan yang sama dengan use case yang ditambahkan 14 Generalisasi / Hubungan generalisasi dan spesialisasi (umum - khusus) generalization antara dua buah use casedimana fungsi yang satu adalah fungsi yang lebih umum dari lainnya 2.6.2 Class Diagram Menggambarkan struktur objek sistem. Diagram ini menunjukkan class object yang menyusun sistem dan juga hubungan antara class object tersebut. Tabel 2.2. Simbol-simbol Class Diagram Nama dan Simbol Package Deskripsi Package merupakan sebuah bungkusan dari satu atau lebih kelas Package1 Kelas / Class Class1 antarmuka / interface Kelas pada struktur sistem Sama dengan konsep interface dalam pemrograman berorientasi objek asosiasi berarah / directed association Relasi antar kelas dengan makna kelas yang satu digunakan oleh kelas yang lain, asosiasi biasanya juga disertai dengan multiplicity 15 Generalisasi / generalization Relasi antar kelas dengan makna generalisasispesialisasi (umum khusus) kebergantungan / dependency Relasi antar kelas dengan makna kebergantungan antar kelas agregasi / aggregation -End3 1 -End4 Relasi antar kelas dengan makna semua-bagian (whole-part) * 2.6.3 Activity Diagram Diagram aktivitas atau activity diagram menggambarkan workflow (aliran kerja) atau aktivitas sebuah sistem atau operasi bisnis. Yang perlu diperhatikan disini adalah bahwa diagram aktivitas menggambarkan aktivitas sistem bukan apa yang dilakukan aktor, jadi aktivitas yang dapat dilakukan oleh sistem. Diagram aktivitas juga banyak digunakan untuk mendefinisikan hal-hal berikut : a. Rancangan proses bisnis dimana setiap urutan aktivitas yang digambarkan merupakan proses bisnis sistem yang didefinisikan. b. Urutan atau pengelompokan tampilan dari sistem / user interface dimana setiap aktivitas dianggap memiliki sebuah rancangan antarmuka tampilan. c. Rancangan pengujian dimana setiap aktivitas dianggap memerlukan sebuah pengujian yang perlu didefinisikan kasus ujinya. 16 Berikut adalah simbol-simbol yang ada pada diagram aktivitas : Tabel 2.3 Activity Diagram Nama dan Simbol Deskripsi Status awal Status awal aktivitas sistem, sebuah diagram aktivitas memiliki sebuah status awal Aktivitas ActionState1 Percabangan / Decision Penggabungan / Join Aktivitas yang dilakukan sistem, aktivitas biasanya diawali dengan kata kerja Asosiasi percabangan dimana jika ada pilihan aktivitas lebih dari satu Asosiasi penggabungan dimana lebih dari satu aktivitas digabungkan menjadi satu status Status Akhir Status akhir yang dilakukan sistem, sebuah diagram aktivitas memiliki sebuah status akhir 17 Swimlane Nama Swimlane Memisahkan organisasi bisnis yang bertanggung jawab terhadap aktivitas yang terjadi 2.6.4 Sequence Diagram Diagram sekuen menggambarkan kelakuan objek pada use case dengan mendeskripsikan waktu hidup objek dan message yang dikirimkan dan diterima antar objek. Oleh karena itu untuk menggambarkan diagram sekuen maka harus diketahui objek-objek yang terlibat dalam sebuah use case beserta metode-metode yang dimiliki kelas yang diinstansiasi menjadi objek itu. Banyak diagram sekuen yang harus digambar adalah sebanya pendefinisian use case yang memiliki proses sendiri atau yang penting semua use case yang telah didefinisikan interkasi jalannya pesan sudah dicakup pada diagram sekuen sehingga semakin banyak use case yang didefinisikan maka diagram sekuen yang harus dibuat juga semakin banyak. Berikut adalah simbol-simbol yang ada pada diagram sekuen: Tabel 2.4 Sequence Diagram Nama dan Simbol Deskripsi 18 Aktor/Actor Orang, proses, atau sistem lain yang berinteraksi dengan sistem informasi yang akan dibuat di luar sistem informasi yang akan dibuat itu sendiri, jadi walaupun simbol dari aktor adalah gambar orang, tapi Aktor aktor belum tentu merupakan orang; biasanya dinyatakan menggunakan kata benda di awalfrase nama aktor Objek Object1 Menyatakan objek yng berinteraksi pesan Activation Menyatakan objek dalam keadaan aktif dan berinteraksi pesan Nama dan Simbol Pesan tipe create << create >> Deskripsi Menyatakan suatu objek membuat objek yang lain, arah panah mengarah pada objek yang dibuat. Mengatakan suatu objek memanggil operasi/metode Pesan tipe call yang ada pada objek lain atau dirinya sendiri, arah panah mengarah pada objek yang memiliki operasi/ 1: nama_metode() metode, karena ini memanggil operasi/metode maka operasi/metode yang dipanggil harus ada pada diagram kelas sesuai dengan kelas objek yang berinteraksi. 19 Pesan tipe send 1 : masukan Menyatakan bahwa suatu objek mengirimkan data/masukan/ informasi ke objek lainnya, arah panah mengarah pada objek yang dikirimi Pesan tipe return 1 : keluaran Menyatakan bahwa suatu objek yang telah menjalankan suatu operasi atau metode menghasilkan suatu kembalian ke objek tertentu, arah panah mengarah pada objek yang menerima kembalian Pesan tipe destroy Message3 Menyatakan suatu objek mengakhiri hidup objek yang lain, arah panah mengarah pada objek yang diakhiri, sebaiknya jika ada create maka ada destroy Penomoran pesan berdasarkan uraian interkasi pesan. Penggambaran letak pesan harus berurutan, pesan yang lebih atas dari lainnya adalah pesan yang berjalan terlebih dahulu. 2.7 Java Java adalah suatu teknologi di dunia software komputer, yang merupakan suatu bahasa pemrograman, dan sekaligus suatu platform. Sebagai bahasa pemrograman, Java dikenal sebagai bahasa pemrograman tingkat tinggi. Java mudah dipelajari, terutama bagi programmer yang telah mengenal C/C++. Java merupakan bahasa pemrograman berorientasi objek yang merupakan paradigma pemrograman masa depan. Sebagai bahasa pemrograman Java dirancang menjadi 20 handal dan aman. Java juga dirancang agar dapat dijalankan disemua platform. Juga dirancang untuk menghasilkan aplikasi-aplikasi dengan performansi yang terbaik, seperti aplikasi database Oracle 8i/9i yang corenya dibangun menggunakan bahasa pemrograman Java. Sedangkan Java bersifat neutral architecture, karena Java Compiler yang digunakan untuk mengkompilasi kode program Java dirancang untuk menghasilkan kode yang netral terhadap semua arsitektur perangkat keras yang disebut sebagai Java Bytecode. Sebagai sebuah platform, Java terdiri atas dua bagian utama, yaitu: Java Virtual Machine (JVM) Dan Java Application Programming Interface (Java API). 2.7.1 Arsitektur Java Sun membagi arsitektur Java membagi tiga bagian, yaitu: 1. Enterprise Java (J2EE) untuk aplikasi berbasis web, aplikasi sistem tersebar dengan beraneka ragam klien dengan kompleksitas yang tinggi. Merupakan superset dari Standar Java. 2. Standar Java (J2SE), ini adalah yang biasa dikenal sebagai bahasa Java. 3. Micro Java (J2ME) merupakan subset dari J2SE dan salah satu aplikasinya yang banyak dipakai adalah untuk wireless device/mobile device.( Abdul Kadir, Belajar Pemrograman Java.) 2.8 Basis Data 21 Menurut A. S. Rosa, dkk (2011) dalam bukunya yang berjudul Modul Pembelajaran Rekayasa Perangkat Lunak (Terstruktur dan Berorientasi Objek), menjelaskan bahwa : “Sistem basis data adalah sistem terkomputerisasi yang tujuan utamanya adalah memelihara data yang sudah diolah atau informasi dan membuat informasi tersedia saat dibutuhkan. Pada intinya basis data adalah media untuk menyimpan data agar dapat diakses dengan mudah dan cepat.” Kebutuhan basis data dalam sistem infomasi meliputi : 1. Memasukkan, menyimpan, dan mengambil data. 2. Membuat laporan berdasarkan data yang telah disimpan. Berikut beberapa pendapat para ahli mengenai definisi dari basisdata: Menurut Ramez (2000), Data merupakan fakta mengenai suatu objek seperti manusia, benda, peristiwa, konsep, keadaan, dan sebagainya yang dapat dicatat dan mempunyai arti secara implisit. Data dapat dinyatakan dalam bentuk angka, karakter atau simbol, sehingga bila data dikumpulkan dan saling berhubungan maka dikenal dengan istilah basis data (database). Dari beberapa definisi-definisi tersebut, menurut Waliyanto (2000) dapat dikatakan bahwa basis data mempunyai berbagai sumber data dalam pengumpulan data, bervariasi derajat interaksi kejadian dari dunia nyata, dirancang dan dibangun agar dapat digunakan oleh beberapa user untuk berbagai kepentingan. 2.8.1 Database Management System (DBMS) DBMS dapat diartikan sebagai program komputer yang digunakan untuk memasukkan, mengubah, menghapus, data/informasi dengan praktis dan efisien. memodifikasi, dan memperoleh 22 Kelebihan dari DBMS antara lain adalah: 1. Kepraktisan. DBMS menyediakan media penyimpan permanen yang berukuran kecil namun banyak menyimpan data jika dibandingkan dengan menggunakan kertas. 2. Kecepatan. Komputer dapat mencari dan menampilkan informasi yang dibutuhkan dengan cepat. 3. Mengurangi menimbulkan kejemuan. Pekerjaan kebosanan bagi yang manusia, berulang-ulang sedangkan mesin dapat tidak merasakannya. 4. Update to date. Informasi yang tersedia selalu berubah dan akurat setiap. Menurut Waliyanto (2000), Keuntungan-keuntungan dalam penggunaan DBMS antara lain adalah: Pemusatan kontrol data. Dengan satu DBMS di bawah kontrol satu orang atau kelompok dapat menjamin terpeliharanya standar kualitas data dan keamanan batas penggunaannya serta dapat menetralkan. 1. konflik yang terjadi dalam persyaratan data dan integritas data dapat terjaga. 2. Pemakaian data bersama (Shared Data). Informasi yang ada dalam basis data dapat digunakan lebih efektif dengan pemakaian beberapa user dengan kontrol data yang terjaga. 3. Data yang bebas (independent). Program aplikasi terpisah dengan data yang disimpan dalam komputer. 4. Kemudahan dalam pembuatan program aplikasi baru. 23 5. Pemakaian secara langsung. DBMS menyediakan interface yang memudahkan pengguna dalam mengolah data. 6. Data yang berlebihan dapat dikontrol. Data yang dimasukkan dapat terjadi kerangkapan (redudant), untuk itu DBMS berfungsi untuk menurunkan tingkat redudancy dan pengelolaan proses pembaruan data. 7. Pandangan user (user view). Ada kemungkinan basis data yang diakses adalah sama, maka DBMS mampu mengatur interface yang berbeda dan disesuaikan dengan pemahaman tiap user terhadap basis data menurut kebutuhan. Kelemahan-kelemahan DBMS antara lain: 1. Biaya. Kebutuhan untuk medapatkan perangkat lunak dan perangkat keras yang tepat cukup mahal, termasuk biaya pemeliharaan dan sumber daya manusia yang mengelola basis data tersebut. 2. Sangat kompleks. Sistem basis data lebih kompleks dibandingkan dengan proses berkas, sehingga dapat mudah terjadinya kesalahan dan semakin sulit dalam pemeliharaan data. 3. Resiko data yang terpusat. Data yang terpusat dalam satu lokasi dapat beresiko kehilangan data selama proses aplikasi. 2.8.2 MySQL MySQL adalah sebuah perangkat lunak sistem manajemen basis data SQL (Database management system) atau DBMS yang multithread, multi-user, dengan sekitar 6juta instalasi di seluruh dunia. MySQL AB membuat MySQL tersedia sebagai perangkat lunak gratis dibawah lisensi GNU General Public License 24 (GPL), tetapi mereka juga menjual dibawah lisensi komersial untuk kasus – kasus dimana penggunaanya tidak cocok dengan penggunaan GPL. Kelebihan yang dimiliki MySQL : 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. Ragam tipe data, MySQL memiliki ragam tipe data yang sangat kaya, seperti signed / unsigned integer, float, double, char, text, date, timestamp, dan lain – lain. 5. Perintah dan fungsi, MySQL memiliki operator dan fungsi secara penuh yang mendukung perintah Select dan Where dalam perintah (query). 6. Keamanan, MySQL memiliki beberapa lapisan keamanan seperti level subnetmask, nama host, dan izin akses user dengan sistem perizinan yang mendetail serta sandi terenkripsi. 7. Skalabilitas dan Pembatasan, MySQL mampu menangani basis data dalam skala besar, dengan jumlah rekaman (record) lebih dari 50 juta dan 60 ribu serta 5 milyar baris. Selain itu batas indeks yang dapat ditampung mencapai 32 indeks pada tiap labelnya. 25 8. Antar muka, MySQL memiliki antar muka (interface) terhadap berbagai aplikasi dan bahasa pemrograman dengan menggunakan fungsi API (application programming interface). 9. Struktur tabel, MySQL memiliki struktur tabel yang lebih fleksibel dalam menangani ALTER TABLE, dibandingkan basis data lainnya semacam Postgree SQL. 2.9 Pengujian Perangkat Lunak Menurut A. S. Rosa, dkk (2011), pengujian perangkat lunak adalah sebuah elemen sebuah topik yang memiliki cakupan luas dan sering dikaitkan dengan verifikasi (verification) dan validasi (validation). Verifikasi mengacu pada sekumpulan aktifitas yang menjamin bahwa perangkat lunak mengimplementasikan dengan benar sebuah fungsi yang spesifik. Validasi mengacu pada sekumpulan aktifitas yang berbeda yang menjamin bahwa perangkat lunak yang dibangun dapat ditelusuri sesuai dengan kebutuhan pengguna. Verifikasi dan validasi meliputi beberapa aktifitas yang sering disebut sebagai jaminan kualitas perangkat lunak (Software Quality Assurance (SQA)). Menurut A. S. Rosa, dkk (2011), pengujian untuk validasi memiliki beberapa pendekatan sebagai berikut: 1. Black-Box Testing (pengujian kotak hitam) Black-Box Testing yaitu menguji perangkat lunak dari segi spesifikasi fungsional tanpa menguji desain dan kode program. Pengujian dimaksudkan 26 untuk mengetahui apakah fungsi-fungsi, masukan, dan keluaran dari perangkat lunak sesuai dengan spesifikasi yang dibutuhkan. 2. White-Box Testing (pengujian kotak putih) White-Box Testing yaitu menguji perangkat lunak dari segi desain dan kode program apakah mampu menghasilkan fungsi-fungsi, masukan dan keluaran yang sesuai dengan spesifikasi kebutuhan. Pengujian kotak putih dilakukan dengan memeriksa logika dari kode program. Pembuatan kasus uji bisa mengikuti standar pengujian dari standar pemrograman yang seharusnya. Contoh dari pengujian kotak putih misalkan menguji alur (dengan menelusuri) pengulangan (looping) pada logika pemrograman.