BAB II LANDASAN TEORI 2.1 Basis Data Basis data (bahasa Inggris: database), atau sering pula dieja basisdata, adalah kumpulan informasi yang disimpan di dalam komputer secara sistematik sehingga dapat diperiksa menggunakan suatu program komputer untuk memperoleh informasi dari basis data tersebut. [Wikipedia, 2011] Menurut [ Fathansyah, 2001:2 ] , Basis Data diartikan sebagai gudang atau tempat bersarang dan Data yang berarti representasi fakta dunia nyata yang mewakili suatu objek seperti manusia, hewan, peristiwa, konsep dan sebagainya yang direkam dalam bentuk angka, huruf, simbol, teks, gambar, bunyi atau kombinasinya. Perancangan basis data dibutuhkan agar diperoleh suatu sistem yang sesuai dengan apa yang diinginkan, dimana dapat melalui tahapan berikut : a. Entity Relationship Diagram ERD merupakan suatu model untuk menjelaskan hubungan antar data dalam basis data berdasarkan objek-objek dasar data yang mempunyai hubungan antar relasi. ERD untuk memodelkan struktur data dan hubungan antar data, untuk menggambarkannya digunakan beberapa notasi dan simbol. Pada dasarnya ada tiga simbol yang digunakan, yaitu : a. Entity (Entitas) Entity merupakan objek yang mewakili sesuatu yang nyata dan dapat dibedakan dari sesuatu yang lain (Fathansyah, 1999: 30). Simbol dari entiti ini biasanya digambarkan dengan persegi panjang. b. Atribut Setiap entitas pasti mempunyai elemen yang disebut atribut yang berfungsi untuk mendeskripsikan karakteristik dari entitas tersebut. Isi dari atribut mempunyai sesuatu yang dapat mengidentifikasikan isi elemen satu dengan yang lain. Gambar atribut diwakili oleh simbol elips. c. Hubungan / Relasi Hubungan antara sejumlah entitas yang berasal dari himpunan entitas yang berbeda. Relasi dapat digambarkan sebagai berikut : Relasi yang terjadi diantara dua himpunan entitas (misalnya A dan B) dalam satu basis data yaitu (Abdul Kadir, 2002: 48) : 1. Satu ke satu (One to one) Hubungan relasi satu ke satu yaitu setiap entitas pada himpunan entitas A berhubungan paling banyak dengan satu entitas pada himpunan entitas B. 2. Satu ke banyak (One to many) Setiap entitas pada himpunan entitas A dapat berhubungan dengan banyak entitas pada himpunan entitas B, tetapi setiap entitas pada entitas B dapat berhubungan dengan satu entitas pada himpunan entitas A. 3. Banyak ke banyak (Many to many) Setiap entitas pada himpunan entitas A dapat berhubungan dengan banyak entitas pada himpunan entitas B. Metode pembuatan ERD Dalam membuat ERD, ada beberapa hal yang perlu kita waspadai, selain itu kita juga dituntut untuk lebih teliti dalam menentuka entity, relasi, atribut, menghindarkan terjadinya relasi "many to many" dan lain sebagainya. [Fikri, 2011]. Untuk itu lihat beberapa langkah berikut agar kita bisa membuat ERD dengan baik: 1. Menentukan Entity Disini kita dituntut untuk menentukan dengan cermat sebuah entity yang ada dalam suatu proyek atau masalah. Entity berguna untuk menentukan peran, kejadian, lokasi, hal nyata dan konsep penggunaan untuk database 2. Menentukan Relasi Setelah kita berhasil membuat Entity, langkah selanjutnya adalah menentukan relasi antar entity. Relasi apa yang terdapat antara Entity A dan B, apakah entity A dan B memiliki relasi "one to one", "one to many", atau "many to many". 3. Gambar ERD sementara Jika sudah mengetahui Entity beserta Relasinya, sekarang kita buat dulu gambar ERD sementara. Entity digambarkan dengan persegi, relasi digambarkan dengan garis. 4. Isi kardinalitas Kardinalitas menentukan jumlah kejadian satu entitas untuk sebuah kejadian pada entitas yang berhubungan. Contohnya antara Entitas Buku, Distributor dan Pengarang, kardinalitas yang ada berupa : Satu pengarang dapat menulis banyak buku Satu buku ditulis satu pengarang Banyak buku di distribusikan oleh satu distributor. Dari sini kita bisa mengetahui harus memberi relasi apa. One to one kah?, dsb. 5. Tentukan Primary Key (Kunci Utama) Menentukan Primary Key pada masing-masing entity. Primary Key adalah atribut pada entity yang bersifat unik. Jadi setiap entity hanya memiliki satu Primary Key saja. Contoh: Entity Buku memiliki Primary Key bernama kode buku. Kode Buku ini bersifat unik, karena masing-masing buku memiliki kode yang berbedabeda. Tentukan pula Foreign Key (Kunci Tamu) pada masing-masing Entity. Foreign Key adalah Primary Key yang ada dalam Entity yang lain. Contoh pada Entity Pengarang misalnya terdapat atribut kode buku, yang mana, kode buku merupakan Primary Key dari Entity buku. 6. Gambar ERD berdasarkan Primary Key Menghilangkan relasi "many to many" dan memasukkan Primary dan Foreign Key pada masing-masing entitas. Relasi many to many antar entity perlu dihilangkan dengan cara menambah atribut baru antara 2 entity yang memiliki relasi many to many. 7. Menentukan Atribut Jika sudah melakukan step diatas, sekarang saatnya menentukan atribut pada masing-masing Entitas. Telitilah dalam menentukan atribut. 8. Pemetaan Atribut Apabila atribut telah ditentukan, sekarang pasang atribut dengan entitas yang sesuai. 9. Gambar ERD dengan Atribut Mengatur ERD seperti langkah 6 dengan menambahkan atribut dan relasi yang ditemukan. 10. Periksa Hasil Periksa lagi ERD. Apakah ERD sudah menggambarkan system yang akan dibangun? Jika belum, check kembali dari awal. b. Normalisasi Normalisasi adalah suatu teknik untuk mengorganisasi data ke dalam tabel-tabel untuk memenuhi kebutuhan pemakai di dalam suatu organisasi. Tujuan dari normalisasi 1. Untuk menghilangkan kerangkapan data 2. Untuk mengurangi kompleksitas 3. Untuk mempermudah pemodifikasian data Proses Normalisasi 1. Data diuraikan dalam bentuk tabel, selanjutnya dianalisis berdasarkan persyaratan tertentu ke beberapa tingkat. 2. Apabila tabel yang diuji belum memenuhi persyaratan tertentu, maka tabel tersebut perlu dipecah menjadi beberapa tabel yang lebih sederhana sampai memenuhi bentuk yang optimal. Tahapan Normalisasi Bentuk Tidak Normal ↓ Menghilangkan perulangan group Bentuk Normal Pertama (1NF) ↓ Menghilangkan ketergantungan sebagian Bentuk Normal Kedua (2NF) ↓ Menghilangkan ketergantungan transitif Bentuk Normal Ketiga (3NF) ↓ Menghilangkan anomali-anomali hasil dari ketergantungan fungsional Bentuk Normal Boyce-Codd (BCNF) ↓ Menghilangkan Ketergantungan Multivalue Bentuk Normal Keempat (4NF) ↓ Menghilangkan anomali-anomali yang tersisa Bentuk Normal Kelima Ketergantungan Fungsional Definisi : Atribut Y pada relasi R dikatakan tergantung fungsional pada atribut X (R.X ---> R.Y), jika dan hanya jika setiap nilai X pada relasi R mempunyai tepat satu nilai Y pada R. Ketergantungan Fungsional Penuh Definisi : Atribut Y pada relasi R dikatakan tergantung fungsional penuh pada atribut X pada relasi R, jika Y tidak tergantung pada subset dari X ( bila X adalah key gabungan) Ketergantungan Transitif Definisi : Atribut Z pada relasi R dikatakan tergantung transitif pada atribut X , jika atribut Y tergantung pada atribut X pada relasi R dan atribut Z tergantung pada atribut Y pada relasi R. ( X Y, Y Z , maka X Z ) Bentuk Normal Kesatu (1NF) Suatu relasi dikatakan sudah memenuhi Bentuk Normal Kesatu bila setiap data bersifat atomik yaitu setiap irisan baris dan kolom hanya mempunyai satu nilai data Bentuk Normal Kedua (2NF) Suatu relasi dikatakan sudah memenuhi Bentuk Normal Kedua bila relasi tersebut sudah memenuhi bentuk Normal kesatu, dan atribut yang bukan key sudah tergantung penuh terhadap keynya. Bentuk Normal Ketiga (3NF) Suatu relasi dikatakan sudah memenuhi Bentuk Normal ketiga bila relasi tersebut sudah memenuhi bentuk Normal kedua dan atribut yang bukan key tidak tergantung transitif terhadap keynya. c. Relasi Tabel Merupakan hubungan yang terjadi pada suatu tabel dengan tabel yang lainnya, yang berfungsi untuk mengatur operasi suatu database. [Deckynoviar, 2008]. Hubungan yang dapat dibentuk dapat mencakupi 3 (tiga) macam hubungan yaitu ; a. One-To-One (1 – 1) Mempunyai pengertian “Setiap baris data pada tabel pertama dihubungkan hanya ke satu baris data pada tabel ke dua”. b. One-To-Many (1 – ) Mempunyai pengertian “Setiap baris data dari tabel pertama dapat dihubungkan ke satu baris atau lebih data pada tabel ke dua “. c. Many-To-Many ( – ) Mempunyai pengertian “Satu baris atau lebih data pada tabel pertama bisa dihubungkan ke satu atau lebih baris data pada tabel ke dua “. Referential Integrity Referential Integrity merupakan suatu aturan terhadap relasi antar tabel untuk menjamin validasi hubungan antara record-record didalam tabel-tabel yang terkait. Dan secara otomatis akan memastikan relasi tersebut ada atau tidaknya record pada sisi Many (tabel yang terhubung dengan tabel Utama ) yang foregn key nya tidak memiliki pasangan ditabel sisi One (Tabel Utama) Model Relasi Referential Integrity Ada dua model relasi terhadap Referential Integrity, dengan memilih salah satu atau kedua pilihan, yaitu : a. Cascade Update Related Fields Setiap perubahan pada Primary Key, pada tabel Utama , maka secara otomatis mengubah nilai pada record-record yang berkesesuaian didalam tabel yang memilik relasi dengan tabel Utama Cascade Delete Related Records Setiap penghapusan record Primary Key pada tabel Utama, maka akan mengakibatkan penghapusan record-record yang berkesesuaian didalam tabel yang memiliki relasi dengan tabel Utama. Aturan-Aturan Referential Integrity 1. Field yang dihubungkan dari tabel utama haruslah berupa Primary Key. 2. Kedua field yang saling behubungkan harus memiliki Tipe data dan lebar data yang sama. 3. Tidak dibenarkan penghapusan record pada tabel utama yang telah dihubungkan dengan tabel yang direlasikan. 4. Tidak diperbolehkan melakukan penambahan record pada tabel relasi bila record tersebut berisi data atau fakta yang belum ada pada tabel utama. Setelah memunculkan semua table yang dimaksud, hubungkan primary-key dan foregn-key yang ada, seperti gambar berikut: Join Digunakan untuk mengakses data dari lebih dari satu tabel dan menggabungkan hasilnya. Join Properties memiliki tiga macam pilihan join, yaitu : 1. Only include rows where the joined field form both tables are equal Pengertian Pilihan ini merupakan pilihan default, yaitu hanya menampilkan recordrecord yang berkesesuaian dari kedua tabel yang memiliki relasi 2. Include ALL records from ‘XXX’ and only those records form ‘ZZZ’ where the joined fields are equal Pengertian Menggabungkan semua record pada tabel XXX dan hanya record-record yang berkesesuaian dari tabel ZZZ yang direlasikan 3. Include ALL records from ‘ZZZ’ and only those records form ‘XXX’ where the joined fields are equal Pengertian Menggabungkan semua record pada tabel ZZZ dan hanya record-record yang berkesesuaian dari tabel XXX yang direlasikan. d. Kamus Data (Data Dictionary) Kamus data atau systems data dictionary adalah katalog fakta tentang data dan kebutuhan-kebutuhan informasi dari suatu sistem informasi. Dengan DD analis sistem dapat mendefinisikan data yang mengalir di sistem dengan lengkap. Pada tahap analisis sistem, DD digunakan sebagai alat komunikasi antara analis sitem dengan pemakai sistem tentang data yang mengalir ke sistem, yaitu tentang data yang masuk ke sistem dan tentang informasi yang dibutuhkan oleh pemakai sistem. Pada tahap perancangan sistem, DD digunakan untuk merancang input, merancang laporan-laporan dan database. DD dibuat berdasarkan arus data yang ada di DFD (Data Flow Diagram). Arus data di DFD sifatnya adalah global, hanya ditunjukkan nama arus datanya saja. Keterangan lebih lanjut tentang struktur dari suatu arus data di DFD secara lebih terinci dapat dilihat di DD. DD tidak menggunakan notasi grafik sebagaimana halnya DFD. DD berfungsi membantu pelaku sistem untuk mengerti aplikasi secara detil, dan mereorganisasi semua elemen data yang digunakan dalam sistem secara presisi sehingga pemakai dan penganalisa sistem punya dasar pengertian yang sama tentang masukan, keluaran, penyimpanan dan proses. DD mendefinisikan elemen data dengan fungsi sebagai berikut: 1. Menjelaskan arti aliran data dan penyimpanan dalam DFD. 2. Mendeskripsikan komposisi paket data yang bergerak melalui aliran, misalnya alamat diuraikan menjadi kota, kodepos, propinsi, dan negara. 3. Mendeskripsikan komposisi penyimpanan data. 4. Menspesifikasikan nilai dan satuan yang relevan bagi penyimpanan dan aliran. 5. Mendeskripsikan hubungan detil antara penyimpanan yang akan menjadi titik perhatian dalam entity relationship diagram. Isi Data Dictionary Data dictionary harus dapat mencerminkan keterangan yang jelas tentang data yang dicatatnya. Untuk maksud keperluan ini, maka DD harus memuat hal-hal berikut : a. Nama arus data. Karena DD dibuat berdasarkan arus data yang mengalir di DFD, maka nama dari arus data juga harus dicatat di DD, sehingga mereka yang membaca DFD dan memerlukan penjelasan lebih lanjut tentang suatu arus data tertentu di DFD dapat langsung mencarinya dengan mudah di DD. b. Nama Alias. Alias atan nama lain dari data dapat dituliskan bila nama lain ini ada. Alias perlu ditulis karena data ayang sama mempunyai nama yang berbeda untuk orang atau departemen satu dengan yang lainnya, misalnnya bagia npembuat faktur dan langganan menyebut bukti penjualan sebagai faktur, sedang bagian gudang menyebutnya sebagai tembusan permintaan persediaan. Baik faktur dan tembusan permintaan persediaan ini mempunyai struktur data yang sama, tetapi mempunyai struktur yang berbeda. c. Bentuk data. Bentuk data perlu dicatat di DD, karena dapat digunakan untuk mengelompokkan DD ke dalam kegunaannya sewaktu perancangan sistem. 1. DD yang mencatat data yang mengalir dalam bentuk dokumen dasar atau formulir akan digunakan untuk merancang bentuk input sistem. 2. DD yang mencatat data yang mengalir dalam bentuk laporan tercetak dan dokumen hasil cetakan komputer akan digunakan untuk merancang output yang akan dihasilkan oleh sistem. 3. DD yang mencatat data yang mengalir dalam bentuk tampilan dilayar monitor akan digunakan untuk merancang tampilan layar yang akan dihasilkan oleh sistem. 4. DD yang mencatat data yang mengalir dalam bentuk parameter dan variabel akan digunakan untuk merancang proses dari program. 5. DD yang mencatat data yang mengalir dalam bentuk dokumen, formulir, laporan, dokumen cetakan komputer, tampilan di layar monitor, variabel dan field akan digunakan untuk merancang database. d. Arus data. Arus data menunjukkan dari mana data mengalir dan ke mana data akan menuju. Keterangan arus data ini perlu dicatat di DD supaya memudahkan mencari arus data ini di DFD. e. Penjelasan. Untuk tidak memperjleas lagi tentang makna dari arus data yang dicatat di DD, maka bagian penjelasan dapat diisi dengan keteranganketerangan tentang arus data tersebut. Sebagai misalnya nama dari arus data adalah tembusan permintaaan persediaan, maka dapat lebih dijelaskan sebagai tembusan dari faktur penjualan untuk meminta barang dari gudang. f. Periode. Periode ini menunjukkan kapan terjadinya arus data ini. Periode perlu dicatat di DD karena dapat digunakan untuk mengidentifikasikan kapan input data harus dimasukkan ke sistem, kapan proses dari program harus dilakukakan dan kapan laporan-laporan harus dihasilkan. g. Volume. Volume yang perlu dicatat di DD adalah tentang volumen rata-rata dan volume puncak dari arus data. Volume rata-rata menunjukkan banyaknya rata-rata arus data yang mengalir dalam suatu periode tertentu dan volume puncak menunjukkan volume yang terbanyak, Volume ini digunakan untuk mengidentifikasikan besarnya simpanan luar yang akan digunakan, kapasitas dan jumlah dari alat input, alat pemroses dan alat output. h. Struktur data. Struktur data menunjukkan arus data yang dicatat di DD terdiri dari item-item apa saja. Simbol Data Dictionary Kebanyakan sistem, kadang-kadang elemen data terlalu kompleks untuk didefinisikan. Kekomplekkan tersebut seharusnya diuraikan melalui sejumlah elemen data yang lebih sederhana. Kemudian elemen data yang lebih sederhana tersebut didefinisikan kembali hingga nilai dan satuan relevan dan elementer. Pendefinisian tersebut menggunakan notasi yang umum digunakan dalam menganalisa sistem dengan menggunakan sejumlah simbol, seperti berikut : Tabel 2.1 Simbol Data Dictionary No Simbol Uraian 1 = Terdiri dari, mendefinisikan, diuraikan menjadi, artinya 2 + Dan 3 () Opsional (boleh ada atau boleh tidak ada) 4 {} Pengulangan 5 [] Memilih salah satu dari sejumlah alternatif, seleksi 6 ** Komentar 7 @ Identifikasi atribut kunci 8 | Pemisah sejumlah alternatif pilihan antara simbol [ ] Sumber : Pengantar Perancangan Sistem, Husni Iskandar Pohan, dkk. Untuk melengkapi definis elemen data ada sejumlah hal yang perlu diperhatikan, yaitu : a. Kejelasan arti elemen data dalam konteks aplikasi yang biasanya dideskripsikan sebagai komentar dengan notasi **. b. Komposisi elemen data, jika masih dapat diuraikan lagi. c. Nilai dan satuan elemen data, jika sudah tidak dapat diuraikan lagi. Elemen data opsional didefinisikan sebagai sesuatu yang dapat digunakan atau tidak perlu digunakan sebagai pilihan dari sejumlah alternatif. Masalah alternatif pilihan merupakan hal penting, karena pemakai harus diyakinkan bahwa semua kemungkinan yang ada sudah tercakup.Pemakai akan kewalahan jika harus membaca seluruh DD, item demi item untuk mengecek kebenaran DD tersebut. [Ika, 2011] 2.2 DMBS (Sistem Manajemen Basis Data) Sistem manajemen basis data (Bahasa Inggris: database management system, DBMS), atau kadang disingkat SMBD, adalah suatu sistem atau perangkat lunak yang dirancang untuk mengelola suatu basis data dan menjalankan operasi terhadap data yang diminta banyak pengguna. Contoh tipikal SMBD adalah akuntansi, sumber daya manusia, dan sistem pendukung pelanggan, SMBD telah berkembang menjadi bagian standar di bagian pendukung (back office) suatu perusahaan. Contoh SMBD adalah Oracle, SQL server 2000/2003, MS Access, MySQL dan sebagainya. DBMS merupakan perangkat lunak yang dirancang untuk dapat melakukan utilisasi dan mengelola koleksi data dalam jumah yang besar. DBMS juga dirancang untuk dapat melakukan masnipulasi data secara lebih mudah. Sebelum adanya BMS maka data pada umumnya disimpan dalam bentuk flatfile, yaitu file teks yang ada pada sistem operasi. Sampai sekarangpun masih ada aplikasi yang menimpan data dalam bentuk flat secara langsung. Menyimpan data dalam bentuk flat file mempunyai kelebihan dan kekurangan. Penyimpanan dalam bentuk ini akan mempunyai manfaat yang optimal jika ukuran filenya relatif kecil, seperti file passwd. File passwd pada umumnya hanya igunakan untuk menyimpan nama yang jumlahnya tidak lebih dari 1000 orang. Selain dalam bentuk flat file, penyimpanan data juga dapat dilakukan dengan menggunakan program bantu seperti spreadsheet. Penggunaan perangkat lunak ini memperbaiki beberapa kelemahan dari flat file, seperti bertambahnya kecepatan dalam pengolahan data. Namun demikian metode ini masih memiliki banyak kelemahan, diantaranya adalah masalah manajemen dan keamanan data yang masih kurang. [Wikipedia, 2011] Bahasa-Bahasa yang Terdapat di dalam DBMS a) DDL (Data Definition Language) DDL digunakan untuk mendefinisikan database, misal untuk membuat tabel, modifikasi tabel, membuat index, membuat view dan kelengkapan databse serta tabel yang lain-lain. Secara garis besar DDL digunakan untuk melakukan maintenance database. Syntaks atau keyword yang masuk dalam kategori ini antara lain : digunakan untuk membuat objek baru, DROP digunakan untuk menghapus tabel atau database. UPDATE digunakan untuk meng- ubah record. ALTER digunakan untuk memodifikasi database. b) DML (Data Manipulation Language) DML digunakan untuk melakukan manipulasi atau pengolahan data dalam database. Misalnya untuk mengambil data (record) dengan kriteris tertentu, meng-ubah data pada tabel, menjumlahkan data dalam tabel, dan menambahkan data kedalam tabel. Syntaks atau keyword yang masuk dalam kategori ini antara lain : SELECT untuk menampilkan data, INSERT data baru, UPDATE untuk menambahkan untuk mengubah data yang sudah ada, DELETE untuk menghapus data. [Doni, 2011]. 2.3 Perangkat Lunak Pendukung XAMPP merupakan singkatan dari X (empat system operasi apapun), Apache, MySQL, PHP, Perl. XAMPP merupakan tool yang menyediakan paket perangkat lunak ke dalam satu buah paket. Dalam paketnya sudah terdapat Apache (web server), MySQL (database), PHP (server side scripting), Perl, FTP server, phpMyAdmin dan berbagai pustaka bantu lainnya. Dengan menginstall XAMPP maka tidak perlu lagi melakukan instalasi dan konfigurasi web server Apache, PHP dan MySQL secara manual. XAMPP akan menginstalasi dan mengkonfigurasikannya secara otomatis untuk Anda. Versi XAMPP yang ada saat ini adalah Versi 1.7.3 yang terdiri atas : 1. Apache 2.2.14 (IPv6 enabled) + OpenSSL 0.9.8l 2. MySQL 5.1.41 + PBXT engine 3. PHP 5.3.1 4. phpMyAdmin 3.2.4 5. Perl 5.10.1 6. FileZilla FTP Server 0.9.33 7. Mercury Mail Transport System 4.72 Berikut ini penjelasan tentang web server Apache, PHP, MySQL, phpMyAdmin dan Perl: 1. Apache sudah berkembang sejak versi pertamanya. Sampai saat ditulisnya artikel ini versi terakhirnya yang ada yaitu Apache ver 2.2.41. Apache bersifat open source, artinya setiap orang boleh menggunakannya, mengambil dan bahkan mengubah kode programnya. Tugas utama apache adalah menghasilkan halaman web yang benar kepada peminta, berdasarkan kode PHP yang dituliskan oleh pembuat halaman web. Jika diperlukan juga berdasarkan kode PHP yang dituliskan, maka dapat saja suatu database diakses terlebih dahulu (misalnya dalam MySQL) untuk mendukung halaman web yang dihasilkan. 2. PHP, Bahasa pemrograman PHP merupakan bahasa pemrograman untuk mebuat web yang bersifat server-side scripting. PHP memungkinkan kita untuk membuat halaman web yang bersifat dinamis. PHP dapat dijalankan pada berbagai macam Operating System (OS), misalnya Windows, Linux dan Mac OS. Selain Apache, PHP juga mendukung beberapa web server lain, misalnya Microsoft IIS, Caudium, PWS dan lain-lain. PHP dapat memanfaatkan database untuk menghasilkan halaman web yang dinamis. Sistem manajemen database yang sering digunakan bersama PHP adalah MySQL. Namun PHP juga mendukung system manajemen Database Oracle, Microsoft Acces, Interbase, dBase, PostgreSQL dan sebagainya. Hingga kini PHP sudah berkembang hingga versi ke 5. PHP 5 mendukung penuh Object Oriented Programing (OOP), integrasi XML, mendukung semua ekstensi terbaru MySQL, pengembangan web services dengan SOAP dan REST, serta ratusan peningkatan kemampuan lainnya dibandingkan versi sebelumnya. Sama dengan web server lainnya PHP juga bersifat open source sehingga setiap orang dapat menggunakannya dengan gratis. 3. MySQL, perkembangannya disebut SQL yang merupakan kepanjangan dari Structured Query Language. SQL merupakan bahasa terstruktur yang khusus digunakan untuk mengolah database. SQL pertama kali didefinisikan oleh American National Standards Institute (ANSI) pada tahun 1986. MySQL adalah sebuah sistem manajemen database yang bersifat open source. MySQL adalah pasangan serasi dari PHP. MySQL dibuat dan dikembangkan oleh MySQL AB yang berada di Swedia. MySQL dapat digunakan untuk membuat dan mengola database beserta isinya. Kita dapat memanfaatkan MySQL untuk menambahkan, mengubah dan menghapus data yang berada dalam database. MySQL merupakan sisitem manajemen database yang bersifat at relational. Artinya data-data yang dikelola dalam database akan diletakkan pada beberapa tabel yang terpisah sehingga manipulasi data akan menjadi jauh lebih cepat. MySQL dapat digunakan untuk mengelola database mulai dari yang kecil sampai dengan yang sangat besar. MySQL juga dapat menjalankan perintah-perintah Structured Query Language (SQL) untuk mengelola database-database yang ada di dalamnya. Hingga kini, MySQL sudah berkembang hingga versi 5. MySQL 5 sudah mendukung trigger untuk memudahkan pengelolaan tabel dalam database. 4. PhpMyAdmin, Pengelolaan database dengan MYSQL harus dilakukan dengan mengetikkan baris-baris perintah yang sesuai (command line) untuk setiap maksud tertentu. Jika anda ingin membuat database, ketikkan baris perintah yang sesuai untuk membuat database. Jika kita ingin menghapus tabel, ketikkan baris perintah yang sesuai untuk menghapus tabel. Hal tersebut tentu cukup menyulitkan karena kita harus hafal dan mengetikkan perintahnya satu persatu. Banyak sekali perangkat lunak yang dapat dimanfaatkan untuk mengelola data base dalam MySQL, salah satunya adalah phpMyAdmin. Dengan phpMyAdmin kita dapat membuat tabel, mengisi data dan lain-lain dengan mudah tanpa harus hafal perintahnya. Untuk mengaktifkan phpMyAdmin langkah-langkahnya adalah : yang pertama setelah XAMP kita terinstall, kita harus mengaktifkan web server Apache dan MySQL dari control panel XAMPP. Yang kedua, jalankan browser kesayangan Anda (IE, Mozilla Firefox atau Opera) lalu ketikkan alamat web berikut: http://localhost/phpmyadmin/ pada address bar lalu tekan Enter. Langkah ketiga apabila telah nampak interface (tampilan antar muka) phpMyAdmin anda bisa memulainya dengan mengetikkan nama database, nama tabel dan seterusnya. 5. Perl adalah bahasa pemrograman untuk segala keperluan, dikembangkan pertama kali oleh Larry Wall di mesin Unix. Perl dirilis pertama kali pada tanggal 18 Desember 1987 ditandai dengan keluarnya Perl 1. Pada versi-versi selanjutnya, Perl tersedia pula untuk berbagai sistem operasi varian Unix (SunOS, Linux, BSD, HP-UX), juga tersedia untuk sistem operasi seperti DOS, Windows, PowerPC, BeOS, VMS, EBCDIC, dan PocketPC. Dukungan terhadap pemrograman berbasis obyek (object oriented programming/OOP) ditambahkan pada Perl 5, yang pertama kali dirilis pada tanggal 31 Juli 1993. Proyek pengembangan Perl 6 dimulai pada tahun 2000, dan masih berlangsung hingga kini tanpa tanggal yang jelas kapan mau dirilis. Ini dikatakan sendiri oleh Larry Wall dalam satu pidatonya yang dikenal dengan seri The State of the Onion. Dua di antara karakteristik utama Perl adalah penanganan teks dan berbagai jalan pintas untuk menyelesaiakn persoalan-persoalan umum. Perl sangat populer digunakan dalam program-program CGI (Common Gateway Interface) dan berbagai protokol Internet lainnya. Seperti diketahui, TCP/IP sebagai basis bagi semua protokol Internet yang dikenal sekarang ini menggunakan format teks dalam komunikasi data. Seperti juga bahasa populer lainnya, Perl menerima banyak kritikan. Meski banyak di antaranya hanya berupa mitos, atau berlebihlebihan, tapi terdapat juga sejumlah kritikan yang valid. Salah satunya adalah, sintaksnya susah dibaca, karena banyak menggunakan simbol-simbol yang bukan huruf dan angka.