5 BAB II LANDASAN TEORI 2.1. MySQL 2.1.1. Mengenal MySQL MySQL adalah sebuah perangkat lunak sistem manajemen basis data SQL atau DBMS yang multithread dan multi-user. MySQL adalah Relation Database Management System (RDBMS) yang didistribusikan secara gratis dibawah lisensi GPL (General Public License). Setiap orang bebas untuk menggunakan MySQL. MySQL sebenarnya merupakan turunan dari SQL (Structured Query Language). SQL adalah sebuah konsep pengoperasian basis data, terutama untuk pemilihan atau seleksi dan pemasukkan data, yang memungkinkan pengoperasian data dikerjakan secara mudah secara otomatis. Sebagai server basis data, MySQL dapat dikatakan lebih unggul dibandingkan server basis data lainnya dalam query data. Hal ini terbukti untuk query yang diakukan oleh single user, kecepatan query MySQL bisa sepuluh kali lebih cepat dari PostgreSQL dan lima kali lebih cepat dibandingkan Interbase. 2.1.2 Kelebihan MySQL MySQL memiliki beberapa kelebihan, antara lain sebagai berikut: 1. Portability. MySQL dapat berjalan stabil pada berbagai sistem operasi seperti Windows, Linux, FreeBSD, Mac Os X Server, Solaris, Amiga, dan masih banyak lagi. 2. Open Source. MySQL didistribusikan secara open source (gratis), dibawah lisensi GPL sehingga dapat digunakan secara gratis. 3. Multi User. MySQL dapat digunakan oleh beberapa user dalam waktu yang bersamaan tanpa mengalami masalah atau konflik. 6 4. Performance Tuning. MySQL memiliki kecepatan yang menakjubkan dalam menangani query sederhana. 5. Column types. MySQL memiliki tipe kolom yang sangat kompleks, seperti signed/unsigned integer, float, double, char, text, date, timestamp, dan lainlain. 6. Command and functions. MySQL memiliki operator dan fungsi secara penuh yang mendukung perintah Select dan Where dalam query. 7. Security. MySQL memiliki beberapa lapisan sekuritas seperti level subnetmask, nama host, dan izin akses user dengan sistem perizinan yang mendetail serta password terenkripsi. 8. Scalability dan limits. MySQL dapat menangani basis data dalam skala besar, dengan jumlah records lebih dari 50 juta dan 60 ribu tabel serta 5 milyar baris. 9. Connectivity. MySQL dapat melakukan koneksi dengan client menggunakan protokol TCP/IP, Unit soket (UNIX), atau Named Pipes (NT). 10. Localisation. MySQL dapat mendeteksi pesan kesalahan pada client dengan menggunakan lebih dari dua puluh bahasa. 11. Interface. MySQL memiliki interface (antar muka) terhadap barbagai aplikasi dan bahasa pemrograman dengan menggunakan fungsi API (Application Programming Interface). 12. Clients and tools. MySQL dilengkapi dengan berbagai tool yang dapat digunakan untuk administrasi basis data, dan pada setiap tool yang ada disertakan petunjuk online. 13. Struktur table. MySQL memiliki struktur tabel yang lebih fleksibel dalam menangani ALTER TABLE, dibandingkan basis data lainnya semacam PostgreSQL ataupun Oracle. 7 2.2. PHP 2.2.1. Mengenal PHP PHP (akronim dari PHP Hypertext Preprocessor) yang merupakan bahasa pemrogramman berbasis web yang memiliki kemampuan untuk memproses data dinamis. PHP dikatakan sebagai sebuah server-side embedded script language artinya sintaks-sintaks dan perintah yang kita berikan akan sepenuhnya dijalankan oleh server tetapi disertakan pada halaman HTML biasa. Aplikasi-aplikasi yang dibangun oleh PHP pada umumnya akan memberikan hasil pada web browser, tetapi prosesnya secara keseluruhan dijalankan di server. Pada prinsipnya server akan bekerja apabila ada permintaan dari client. Dalam hal ini client menggunakan kode-kode PHP untuk mengirimkan permintaan ke server. Ketika menggunakan PHP sebagai server-side embedded script language maka server akan melakukan hal-hal sebagai berikut : 1. Membaca permintaan dari client/browser 2. Mencari halaman/page di server 3. Melakukan instruksi yang diberikan oleh PHP untuk melakukan modifikasi pada halaman/page. 4. Mengirim kembali halaman tersebut kepada client melalui internet atau intranet. 2.2.2. Kelebihan PHP 1. PHP dapat dijalankan pada platform yang berbeda-beda (Windows, Linux, Unix, etc.) 2. PHP merupakan web scripting open source 3. PHP mudah dipelajari 8 2.3. Pengertian Data, Informasi dan Basis Data Data mengacu pada informasi atau fakta yang biasanya dikumpulkan sebagai hasil dari pengalaman, observasi atau eksperimen, atau memprosesnya dalam suatu sistem komputer, atau sebagai landasan pemikiran. Data terdiri dari angka, kata, atau gambar, terutama sebagai pengukuran atau observasi terhadap kumpulan variabel. Data sering dipandang sebagai level terendah dalam abstraksi dari informasi dan pengetahuan yang diperoleh. Dalam bukunya, Fathansyah (2007) mengatakan bahwa data adalah representasi fakta dunia nyata yang mewakili suatu objek seperti manusia (pegawai, siswa, pembeli, pelanggan), barang, hewan, peristiwa, konsep, keadaan, dan sebagainya, yang direkam dalam bentuk angka, huruf, simbol, teks, gambar, bunyi, atau kombinasinya. Sedangkan informasi adalah sebagai konsep yang mempunyai perbedaan arti, dalam penggunaan sehari-hari sampai ke hal yang teknis. Secara umum, konsep dari informasi berhubungan erat pada pengertian terhadap batasan, komunikasi, kontrol, data, format, instruksi, pengetahuan, maksud, stimulus mental, pola, persepsi, dan penyajian. Dalam kaitannya terhadap data, informasi dapat didefinisikan sebagai kumpulan fakta hasil dari penarikan kesimpulan. Menurut Fathansyah (2007), basis data adalah kumpulan file/tabel/arsip yang saling berhubungan yang disimpan dalam media penyimpanan elektronis. Sedangkan menurut Indrajani (2011), sebuah basis data adalah sebuah kumpulan data yang saling berhubungan secara logis, dan merupakan sebuah penjelasan dari data tersebut, yang didesain untuk menemukan data yang dibutuhkan oleh sebuah organisasi . 9 2.4. Flowchart Menurut Indrajani (2011), Flowchart merupakan penggambaran secara grafik dari langkah-langkah dan urutan prosedur suatu program. Biasanya mempermudah penyelesaian masalah, khususnya yang perlu dipelajari dan dievaluasi lebih lanjut. Simbol-simbol Flowchart : Simbol-simbol flowchart yang biasanya dipakai adalah simbol-simbol flowchart standar yang dikeluarkan oleh ANSI dan ISO. Tabel 2.1. Simbol Flowchart (Indrajani, 2011) Simbol Arti Sebagai awal / akhir flowchart Terminal points Mempresentasikan operasi Proses Merepresentasikan input data atau output data yang di proses / informasi Input / output Keputusan dalam program Keputusan 10 Lanjutan tabel 2.1 simbol flowchart (Indrajani, 2011) Merepresentasikan alur kerja Anak panah I/O yang menggunakan magnetic drum Magnetic drum Keluar ke atau masuk dari bagian lain flowchart khususnya halaman yang sama Penghubung 2.5. ERD (Entity Relationship Diagram) 2.5.1. Model Entity relationship (Model ERD) Menurut Indrajani (2011), Entity Relational (ER) Modeling adalah sebuah pendekatan top-bottom dalam perancangan basis data yang dimulai dengan mengidentifikasikan data-data terpenting yang disebut dengan entitas dan hubungan antara entitas-entitas tersebut yang digambarkan dalam suatu model. Karena terdapat keterbatasan pada ER Model, maka terdapat pengembangan penambahan konsep semantik pada ER yang disebut Enhanced Entity Relational (EER) model. 11 Tabel 2.2 Notasi ERD (Elib.unikom.ac.id, 12 Desember 2012) Notasi Entitas Relasi Atribut Keterangan Entitas adalah suatu objek yang dapat diidentifikasi dalam lingkungan pemakai Relasi, menunjukan adanya hubungan di antara sejumlah entitas yang berbeda. Atribut, berfungsi mendeskripsikan karakter entitas (atribut yang berfungsi sebagai key diberi garis bawah) Garis, sebagai penghubung antara relasi dengan entitas, relasi dan entitas dengan atribut. 2.5.2. Kardinalitas Relasi Dalam ERD hubungan (relasi) dapat terdiri dari sejumlah entitas yang disebut dengan derajat relasi. Derajat relasi maksimum disebut dengan kardinalitas sedangkan derajat minimum disebut dengan modalitas. Jadi kardinalitas relasi menunjukan jumlah mkasimum entitas yang dapat berelasi dengan entitas pada himpunan entitas lain. Kardinalitas relasi yang terjadi diantara dua himpunan entitas (misalnya A dan B) dapat berupa : 1. Satu ke satu (one to one/ 1-1) Setiap entitas pada himpunan entitas A dapat berelasi dengan paling banyak satu entitas pada himpunan entitas B, demikian juga sebaliknya. 2. Satu ke banyak (one to many/1-N) Setiap entitas pada himpunan entitas A dapat berelasi dengan banyak entitas pada himpunan entitas B tetapi tidak sebaliknya. 12 3. Banyak ke banyak (many to many/ N-N) Setiap entitas pada himpunan entitas A dapat berelasi dengan banyak entitas pada himpunan entitas B, demikian juga sebaliknya. 2.5.3. Tahapan pembuatan ERD Diagram ER dibuat secara bertahap, ada dua kelompok pentahapan yang biasa ditempuh di dalam pembuatan diagram ER yaitu: 1. Tahap pembuatan diagram ER awal (preliminary design) Tujuan dari tahap pertama adalah mendapatkan sebuah rancangan basis data minimal yang dapat mengakomodasi kebutuhan penyimpanan data terhadap sistem yang sedang ditinjau. Tahap awal ini umumnya mengabaikan anomali-anomali (proses pada basis data yang memberikan efek samping yang tidak diharapkan) yang memang ada sebagai suatu fakta. Anomali-anomali tersebut biasnya baru dipertimbangkan pada tahap kedua. 2. Tahap optimasi diagram ER (final design) Tahap kedua mempertimbangkan anomali-anomali dan juga memperhatikan aspek-asspek efisiensi, performasi dan fleksibilitas. Tiga hal tersebut sering kali bertolak belakang. Karena itu, tahap kedua ini ditempuh dengan melakukan koreksi terhadap tahap pertama. Bentuk koreksi yang terjadi dapat berupa pendekomposisian himpunan entitas, penggabungan himpunan entitas, pengubahan derajat relasi, penambahan relasi baru atau perubahan (penambahan dan pengurangan) atribut-atribut untuk masing-masing entitas dan relasi. Langkah-langkah teknis yang dapat dilakukan untuk mendapatkan ERD awal adalah : a. Mengidentifikasi dan menetapkan seluruh himpunan entitas yang akan terlibat. 13 b. Menentukan atribut-atribut key (kunci) dari masing-masing himpunan entitas. c. Mengidentifikasi dan menetapkan seluruh himpunan relasi diantara himpunan entitas-himpunan entitas yang ada beserta foreignkeynya (kunci asing/kunci tamu). d. Menentukan derajat/kardinalitas relasi untuk setiap himpunan relasi. e. Melengkapi himpunan entitas dan himpunan relasi dengan atribut dekriptif (atribut yang bukan kunci). 2.5.4. Implementasi Basis Data Tahap implementasi basis data merupakan upaya untuk membangun basis data fisik yang ditempatkan dalam memori sekunder dengan bantuan DBMS (database Management System) yang di pilih. Secara umum sebuah diagram ER akan direpresentasikan menjadi sebuah basis data secara fidik, sedangkan komponen-komponen diagram ER yang berupa himpunan entitas dan himpunan relasi akan ditransformasi menjadi tabel-tabel (file-file data) yang merupakan komponen utama pembentuk basis data. Setiap himpunan entitas akan diimplementasikan menjadi sebuah tabel (file data), sedangkan himpunan relasi tergantun pada derajad relasi. Untuk kardinalitas relasii 1-1, maka relasi tidak diimplementasi menjadi tabel tetapi atribut pada relasi akan yang mewakili salah satu dari kedua himpunan entitas dengan mempertimbangkan derajad relasi minimumnya. Untuk kardinalitas relasi 1-N juga akan direpresentasikan dengan penambahan atribut yang ada pada relasi ke tabel yang mewakili himpunan entitas yang berderjad banyak (N). 2.6. DFD (Data Flow Diagram) Menurut Indrajani (2011), Data Flow Diagram (DFD) adalah sebuah alat yang menggambarkan aliran data sampai sebuah sistem selesai, dan kerja atau 14 proses dilakukan dalam sistem tersebut. Istilah dalam bahasa indonesianya adalah diagram aliran data. Dalam DFD ini terdapat 4 komponen utama, yaitu: 1. External Agent Agen eksternal mendefinisikan orang atau sebuah unit organisasi, sistem lain, atau organisasi yang berada di luar sistem proyek tapi dapat mempengaruhi kerja sistem. 2. Process Proses adalah penyelenggaraan kerja atau jawaban, datangnya aliran data atau kondisinya. 3. Data Store Data Store adalah penyimpanan data. 4. Data Flow Data Flow merepresentasikan sebuah input data ke dalam sebuah proses atau output dari data (atau informasi) pada sebuah proses. 2.6.1. Komponen DFD Berikut ini adalah komponen DFD menurut Yourdan dan DeMacro . Terminator Proses Data Store Alur data Gambar 2.1. Komponen Data Flow Diagram (Indrajani, 2011) 1. Komponen Terminator / Entitas Luar Terminator mewakili entitas ekssternal yang berkomunikasi dengan sistem yang sedang dikembangkan. Biasanya terminator dikenal dengan nama entitas luar (external entity) 15 Terdapat dua jenis terminator : a. Terminator Sumber (source) : merupakan terminator yang menjadi sumber. b. Terminator Tujuan (sink) : merupakan terminator yang menjadi tujuan data / informasi sistem. Terminator dapat berupa orang, sekelompok orang, organisasi, departemen di dalam organisasi, atau perusahaan yang sama tetapi di luar kendali sistem yang sedang dibuat modelnya. Terminator dapat juga berupa departemen, devisi atau sistem di luar sistem yang berkomunikasi dengan sistem yang sedang di kembangkan. Komponen terminator ini perlu diberi nama seesuai dengan dunia luar yang berkomunikasi dengan sistem yang sedang dibuat modelnya, dan biasanya menggunakan kata benda. Ada tiga hal penting yang harus diingat tentang terminator : a. Terminator merupakan bagian/lingkungan luar sistem. Alur data yang menghubungkan terminator dengan berbagai proses sistem, menunjukan hubungan sistem dengan dunia luar. b. Profesional sistem tidak dapat mengubah isi atau cara kerja, organisasi, atau prosedur yang berkaitan dengan terminator. c. Hubungan yang ada antar terminator yang satu dengan yang lain tidak digambarkan pada DFD. 2. Proses Komponen proses menggambarkan bagian dari sistem yang mentransformasikan input menjadi output. Proses diberi nama untuk menjelaskan proses/kegiatan apa yang sedang/akan dilaksanakan. Pemberian nama proses dilakukan dengan menggunakan kata kerja transitif (kata kerja yang membutuhkan obyek), seperti mengirim repot, mengirim NFI. 16 Ada empat kemungkinan yang dapat terjadi dalam proses sehubungan dengan input dan output: Satu input & satu output satu input & banyak output Banyak input & satu output Banyak input dan banyak output Gambar 2.2. Proses Input dan Output (fenni.staff.gunadarma.ac.id, 12 Desember 2012) Ada beberapa hal yang perlu di perhatikan tentang proses : a. Proses harus memiliki input dan output b. Proses dapat di hubungkan dengan komponen terminator, data store atau proses melalui alur data. c. Sistem/bagian/divisi/departemen yang sedang dianalisi oleh professional sistem digambarkan dengan komponen proses. 3. Data store Komponen ini digunakan untuk membuat model sekumpulan paket data dan diberi nama dengan kata benda jamak, misalnya inspektor, mahasiswa. Data store ini biasanya berkaitan dengan penyimpanan-penyimpanan, seperti file atau database yang berkaitan dengan penyimpanan secara komputerisasi, misalnya filee disket, file hardisk, file pita magnetik. Data store juga berkaitan dengan penyimpanan secara manual seperti buku alamat, file folder, dan agenda. Suatu data store dihubungkan dengan alur data hanya pada komponen proses, tidak dengan komponen DFD lainnya. Alur data yang 17 menghubungkan data store dengan suatu proses mempunyai pengertian sebagai berikut; a. Alur data dari data store yang berarti sebagai pembacaan atau pengaksesan satu paket tunggal data, lebih dari satu paket data, sebagian dari satu paket data, atau sebagian dari lebih dari satu paket data untuk suatu proses. b. Alur data ke data store yang berarti sebagai peng-updatean data, seperti menambah satu paket data baru atau lebih, menghapus satu paket atau lebih, atau mengubah/memodifikasi satu paket data atau lebih. 4. Alur Data Suatu data flow / alur data digambarkan dengan anak panah, yang menunjukan arah ked an keluar dari suatu proses. Alur data ini di gunakan untuk menerangkan perpindahan data atau paket data/informasi dari satu bagian sistem ke bagian lainnya. Selain menunjukan arah, alur data pada model yang di buat oleh professional sistem dapat merepresentasikan bit, karakter, pesan, formulir, bilangan real, dan macam-macam informasi yang berkaitan dengan komputer. Alur data juga dapat merepresentasikan data/informasi yang tidak berkaitan dengan komputer. Alur data perlu diberi nama sesuai dengan data/informasi yang dimaksud, biasanya pemberian nama pada alur data dilakukan dengan menggunakan kata benda, misalnya laporan inspeksi. 18 2.7. Model Waterfall Model waterfall sering disebut “sekuensial linier” atau “siklus kehidupan klasik” analisis desain kode tes Gambar 2.3. Waterfall (Verdi Yasin, 2012) Sekuensial linier mengusulkan sebuah pendekatan kepada perkembangan perangkat lunak yang sistematik dan sekuential yang mulai pada tingkat kemajuan sistem pada seluruh analisis, desain, kode, pengujian, model sekuensial linier melingkupi aktivitas-aktivitas sebagai berikut: o Rekayasa dan pemodelan sistem/informasi Karena perangkat lunak selalu merupakan bagian dari sebuah sistem bisnis (bisbis) yang lebih besar, kerja dimulai dengan membangun syarat dari semua elemen sistem yang mengalokasikan beberapa subset dari kebutuhan ke perangkat lunak tersebut. Pandangan sistem ini penting ketika perangkat lunak harus berhubungan dengan elemen-elemen yang liaan seperti perangkat lunak, manusia, dan database. Rekayasa dan analisa sistem menyangkut pengumpulan kebutuhan pada tingkat bisnis strategis dan tingkat area bisnis. o Analisis kebutuhan perangkat lunak Proses pengumpulan kebutuhan diinfestasikan dan difokuskan, khususnya pada perangkat lunak. Untuk memahami sifat program yang dibangun , perekayasa perangkat lunak (analis) harus memahami domain informasi, tingkah laku, unjuk kerja, dan 19 antar muka (interface) yang diperlukan. Kebutuhan baikuntuk sistem maupun perangkat lunak didokumentasikan dan dilihat lagi oleh pelanggan. o Desain Desain perangkat lunak sebenarnya adalah proses multi langkah yang berfokus pada empat atribut sebuah program yang berbeda, struktur data, arsitektur perangkat lunak, representasi interface, dan detail (algoritma) procedural. Proses desain menerjemahkan syarat/kebutuhan kedalam sebuah representasi perangkat lunak yang dapat diperkirakan demi kualitas sebelum dimulai pemunculan kode. Sebagaimana persyaratan, desain didokumentasikan dan menjadi bagian dari konfigurasi perangkat lunak o Generalisasi kode Desain harus diterjemahkan ke dalam bentuk mesin yang bias dibaca. Langkah pembuatan kode melakukan tugas ini. Jika desain dilakukan dengan cara yang lengkap, pembuatan kode dapat diselesaikan dengan mekanis. o Pengujian Sekali kode dibuat, pengujian program dimulai. Proses pengujian berfokus pada logika internal perangkat lunak, memastikan bahwa semua pernyataan telah diuji, dan pada eksternal fungsional yaitu mengarahkan pengujian untuk menemukan kesalahan-kesalahan dan memastikan bahwa input yang dibatasi akan memberikan hasil actual yang sesuai dengan hasil yang dibutuhkan. 20 o Pemeliharaan Perangkat lunak akan mengalami perubahan setelah disampaikan kepada pelanggan (pengecualian yang mungkin adalah perangkat lunak yang direkatkan). Perubahan akan terjadi karena kesalahan-kesalahan diteentukan, karena perangkat lunak harus disesuaikan untuk mengakomodasi perubahan-perubahan di dalam lingkungan eksternalnya. 2.8. Hosting Hosting adalah salah satu bentuk layanan jasa penyewaan tempat di internet yang memungkinkan perorangan ataupun organisasi menampilkan layanan jasa atau produknya di web atau situs internet. Tempat disini dapat juga diartikan sebagai tempat penyimpanan data berupa megabytes (mb) hingga terabytes (tb) yang memiliki koneksi ke internet sehingga data tersebut dapat di-request atau diakses oleh userdari semua tempat secara simultan. Inilah yang menyebabkan sebuah website dapat diakses bersamaan dalam satu waktu oleh multi user. 2.9. Bootstrap Bootstrap merupakan sebuah toolkit yang dikembangkan oleh twitter untuk mempermudah web developer dalam mendesain tampilan aplikasi. Bootstrap sudah menyediakan CSS, HTML, dan juga JQuery. Plugin untuk typography, forms, buttons, tables, grids, navigation dan berbaga komponen interface lainnya. Bootstrap pertama kali dirilis pada Agustus 2012 dan berlisensi open source. Bootstrap bias didownload secara gratis di Github (http://twitter.github.com/bootstrap/index.html). Kelebihan utama dari Bootstrap adalah responsive layout yaitu aplikasi web yang didesain dengan menggunakan Bootstrap akan langsung menyesuaikan dengan lebar dari media perambannya. Sehingga tampilan 21 web akan tetap rapi dibuka dengan media apapun baik itu telepon genggam, tablet, laptop, ataupun PC desktop. Tampilan web tidak akan terganggu dengan resolusi dari layar.