BAB II LANDASAN TEORI 2.1. Teori Umum Teori-teori pokok yang merupakan teori-teori landasan bagi teori-teori lainnya yang terdapat dalam skripsi ini, yaitu: 2.1.1. Cryptography Cryptography secara singkat didefinisikan sebagai ilmu yang mempelajari bagaimana mengacak pesan dan mengembalikannya ke bentuk semula. Pengacakan pesan dapat dilakukan dengan kunci atau kata sandi yang ditetapkan. Dalam dunia teknologi seperti saat ini, keamanan data sudah menjadi kebutuhan primer. Teknik penyamaran data seperti ini disebut enkripsi dan teknik untuk mengembalikannya disebut dekripsi. Dalam sebuah algoritma cryptography, terdapat tiga unsur yaitu: a. Enkripsi, yaitu proses mengubah pesan awal menjadi teks chiper. b. Dekripsi, yaitu proses mengubah teks chiper menjadi pesan awal. c. Kunci (key), merupakan kode sandi yang ditetapkan yang akan digunakan untuk proses enkripsi maupun proses dekripsi. 2.1.1.1. Sejarah Cryptography Secara etimologi asal mula kata Cryptography berasal dari bahasa Yunani, kyriptos artinya tersembunyi atau tidak kelihatan dan grafia yang berarti sesuatu yang tertulis. Sehingga Cryptography dapat di artikan sebagai pesan yang tertulis dengan secara tersembunyi atau rahasia. Cryptography memiliki sejarah yang panjang dan mengagumkan. Cryptography sudah terlihat pada tahun 3000 SM yang digunakan oleh bangsa Mesir. Mereka menggunakan hieroglyphcs untuk menyembunyikan tulisan dari mereka yang tidak diharapkan. Hieroglyphcs berasal dari bangsa Yunani, kata hieroglyphica yang berarti ukiran rahasia. Pada tahun 50 SM, Julius Caesar, kaisar Roma, menggunakan cipher substitusi untuk mengirim pesan. Tujuan awal pembuatan pesan dengan kode chipher oleh Julius Caesar agar pesan yang dibawa kurir pada saat perang tidak dapat dibaca andai pesan tersebut jatuh ke tangan musuh. Oleh karena ide pemikiran tersebut, Julius Caesar dianggap bapak dari kriptografi, kemudian kode sandi mulai banyak dipergunakan dan terkenal serta berkembang hingga sekarang ini. Pada cipher ini, huruf- huruf alfabet disubstitusi dengan huruf-huruf yang lain pada alfabet yang sama. Karena hanya satu alfabet yang digunakan, cipher ini merupakan substitusi monoalfabetik. Awal nya Cryptography hanya khusus di gunakan oleh badan-badan intelejen dunia, untuk mengamankan komunikasi mereka. Namun, seperti yang kita lihat sekarang Cryptography sudah menyebar luas di iringi perkembangan teknologi. Sekarang hampir semua service di internet menggunakan Cryptography. Cryptography bukan lagi menjadi monopoli militer atau badan-badan intelejen 2.1.1.2. Advanced Encryption Standard (AES) Advanced Encryption Standard (AES) atau dikenal juga dengan sebutan Rijndael, adalah block cipher yang dianggap sebagai standard enkripsi oleh pemerintah Amerika Serikat. Secara umum, AES terdiri dari 4(empat) langkah, yaitu: 1. SubBytes : Subtitusi dengan S-Box 2. ShiftRows : Byte Rotation 3. MixColumns : Mencampur bytes input menghasilkan bytes output 4. AddRoundKey : Mengoperasikan byte input dengan round key 2.1.2. Steganography Steganography secara etimologi berasal dari bahasa Yunani, yaitu steganos yang berarti “tersembunyi atau terselubung”, dan graphei yang berarti “tulisan atau menulis”. Secara keseluruhan Steganography berarti “tulisan tersembunyi” (cover writing). Namun dalam perkembangan nya Steganography dapat di artikan sebagai ilmu dan seni menyembunyikan pesan rahasia (hidden message) sedemikan rupa sehingga tidak terdeteksi oleh indra manusia dan selain pengirim dan penerima tidak mengetahui atau menyadari ada nya pesan rahasia. 2.1.2.1. Sejarah Steganography Steganography pertama kali di gunakan oleh Herodotus (485 – 525 BC), penguasa yunani. Pada masa Perang antara kerajaan Persia dan Yunani, Herodotus ingin mengirimkan pesan dengan cara mencukur kepala budak dan menulis pesan dikepala budak. Saat rambut sudah tumbuh budak di kirim untuk menyampaikan pesan tersebut tanpa menimbulkan kecurigaan oleh bangsa Persia. Bangsa romawi mengenal steganografi dengan menggunakan tinta tak-tampak (invisible ink). Pliny the elder (AD 23-79) adalah tokoh di balik tinta tak tampak tersebut. Ia menjelaskan bahwa susu dari tumbuhan thithymallyus menjadi transparan saat di keringkan di atas kertas, namun akan terlihat lebih berwarna coklat saat di panaskan. Bangsa Cina kuno menulis pesan rahasia di potongan kecil sutra, yang kemudian di bentuk menjadi gumpalan bola kecil yang kemudian dilapisi dengan lilin yang kemudian di telan oleh pembawa pesan. Di era Renaissance, Johannes Trithemius (1404-1475) menulis buku bercetak pertama mengenai cryptology. Ia menciptakan steganography chiper di mana setiap huruf merepresentasikan kata yang di ambil dari colom tertentu. Hasil dari kumpulan tersebut akan menghasilkan hasil yang sah. Giovanni Battista Porta (1535-1615) menjelaskan bagaimana menyembunyikan pesan pada telor rebus yang masih bercangkang dengan cara menulis di cangkang menggunakan tinta khusus, yang di buat menggunakan alum(bahan kimia) dan cuka. Tinta tersebut akan masuk ke pori dari cangkang, dan tidak meninggalkan jejak terlihat pada permukaan. Untuk mengetahui pesan tersebut, harus membuka cangkang telor, dan pesan nya berada di albumen (putih telor). 2.1.2.2. M4M Steganography Pendekatan Metode M4M ini di dasarkan pada motode M16M(Mod 16 Method) bersama dengan Algoritma Sequance Number Generator untuk menghindari penyisipan data dalam index file cover, yang nantinya akan membantu dalam menghindari distorsi pada kualitas file asli. Secara singkat algoritma ini terbagi menjadi 2 sisi, sisi pengirim dan sisi penerima: Pengirim (sender side) : a. Tentukan cover file b. Tentukan pesan rahasia c. Sisipkan pesan ke cover file dengan embedding Penerima (receiver side): a. Pilih Stegofile b. Gali(Extract) Pesan rahasia menggunakan Data Extraction Algorithm c. Tampilkan pesan rahasia 2.1.2.2.1. Embedding Algorithm Penyisipan data dalam Algoritma M4M di nyatakan dalam flow chart sebagai berikut: Gambar 2.1. M4M Embedding Algorightm Baca cover file yang akan dimanipulasi kemudian ubah ke dalam bilangan ASCII. Sebagai contoh bilangan ASCII 23, bilangan ini di kurangin dengan bilangan ini modulus 4: 23-(23%4)= 23-3 = 20 (1) Baca Secret file kemudian ubah menajadi bilangan biner. Ambil 2 bit kemudian ubah ke desiml. Sebagai contoh : 10110010 => ambil 2 bilangan biner pertama = 10 => ubah ke decimal => 2 (2) Jumlahkan hasil pengurangan dengan hasil perhitungan (1) dengan (2) 20+2=22 Stegofile yang tadi nya 23 akan menjadi 22 sesuai dengan perhitungan di metode ini. Lakukan sampai semua Secret file tersisip di cover file. Error yang mungkin terjadi adalah ±3. 2.1.2.2.2. Data Extraction Algorithm Penggalian data pada stego-file di nyatakan dalam pesudocode sebagai berikut: Gambar 2.2. M4M Extraction Algorithm Baca Stegofile kedalam bilangan ASCII kemudian moduluskan dengan 4. Sebagai contoh: Suatu Stegofile di ambil salah satu bilangan ASCII, contoh nya 22, kemudian moduluskan 22 dengan 4 22%4 = 2 Bilangan 2 ini kemudian di ubah ke dalam kode binner. 2= 10 Lakukan sampai stegofile berhasil di ubah ke dalam kode biner. Dari kode biner ini lah yang kemudian di susun menjadi Secret file. 2.1.2.3. Peak Signal to Noise Ratio (PSNR) PSNR adalah nilai yang nyatakan tingkat noise hasil stego file dalam satuan decibel (db). Menurut Chen (2006) semakin besar nilai PSNR berarti perbedaan antara file asli dengan stego file semakin kecil, sebalik nya kecil nilai PSNR, semakin besar tingkat perbedaan antar stego file dengan file asli. Menurut Cole (2003) nilai PSNR di katakana baik jika berada di atas nilai 20, artinya di bawah nilai 20 distorsi yang terjadi sangat besar antara stego file dengan file asli. Sedangkan MSE menyatakan nilai penyimpangan atau selisih antar stegofile dengan file asli. PSNR dinyatakan sebagai berikut: Sedangkan formula untuk menghitung nilai MSE adalah sebagai berikut: C= file asli (Cover file) S= Stego file X = lebar gambar Y= tinggi gambar 2.1.3. Multimedia Files 2.1.3.1. Audio File audio yang mendukung pada aplikasi ini adalah audio berjenis WAVE. Menurut Margaret Rouse(2005) Wave file adalah tipe format audio yang di ciptakan oleh Microsoft. Wave akhir nya menjadi standar file audio untuk smua nya, mulai dari sistem sampai suara pada game. Extensi dari file Wave adalah WAV (*.wav). Gambar 2.3. Wav Header 2.1.3.2. Gambar Menurut Yusron (2011), Gambar atau citra digital merupakan fungsi intensitas cahaya f(x,y) pada bidang 2D, dimana nilai x dan y merupakan koordinat spasial dan nilai fungsi tersebut pada setiap titik (x,y) merupakan tingkat kecemerlangan citra pada titik tersebut. Jenis file gambar yang di gunakan dalam aplikasi ini adalah JPG dan PNG: 1. JPG/JPEG (Joint Photographic Experts Group) Tipe file JPEG sangat sering digunakan untuk web atau blog. File JPEG menggunakan teknik kompresi yang menyebabkan kualitas gambar turun (lossy compression). Setiap kali menyimpan ke tipe JPEG dari tipe lain, ukuran gambar biasanya mengecil, tetapi kualitasnya turun dan tidak dapat dikembalikan lagi. Ukuran file JPEG dapat turun menjadi sepersepuluhnya setelah dikonversi menjadi JPEG. Meskipun dengan penurunan kualitas gambar, pada gambar-gambar tertentu (misalnya pemandangan), penurunan kualitas gambar hampir tidak terlihat mata. 2. PNG (Portable Network Graphics) Tipe file PNG merupakan solusi kompresi yang powerfull dengan warna yang lebih banyak (24 bit RGB + alfa). Berbeda dengan JPEG yang menggunakan teknik kompresi yang menghilangkan data, file PNG menggunakan kompresi yang tidak menghilangkan data (lossless compression). Kelebihan file PNG adalah adanya warna transparan dan alfa. Warna alfa memungkinkan sebuah gambar transparan, tetapi gambar tersebut masih dapat dilihat mata seperti samarsamar atau bening. File PNG dapat diatur jumlah warnanya 64 bit (true color + alfa) sampai index color 1 bit. Dengan jumlah warna yang sama, kompresi file PNG lebih baik daripada GIF, tetapi memiliki ukuran file yang lebih besar daripada JPG. Kekurangan tipe PNG adalah belum populer sehingga sebagian browser tidak mendukungnya. 2.1.4. Internet Menurut Turban Rainer dan Potter (2005), internet adalah sistem jaringan global dari berbagai jaringan computer yang dapat bejalan sendiri dan dengan bantuan peralatan-peralatan nirkabel yang memungkinkan internet dapat diakses oleh semua orang di sseluruh dunia. Internet merupakan jaringan komunikasi elektronik yand dapat saling bertukar informasi antara orang di seluruh dunia. Sekarang ini penggunaan internet sudah sangat umum bahkan sudah menjadi seperti kebutuhan primer bagi beberapa orang. User biasa nya menggunakan internet untuk surfing membuka website favorit. 2.1.5. Website Menurut Coupey (2001, p127), website adalah suatu jaringan dari dokumen-dokumen elektronik yang disebut halaman web, yang isinya dapat berupa teks, grafis, dan bahkan format suara dan format video. Dokumen-dokumen dengan hyperlinks. Hyperlinks memungkinkan user untuk tersebut mendapatkan terintegrasi informasi yang diinginkan dari satu halaman ke halaman lainnya menggunakan link tersebut dengan mudah. Isi dari website yang berupa teks, grafis, suara atau video biasa di tampilkan oleh HTML. Kumpulan halaman HTML ini lah yang kemudian menjadi website. 2.1.6. HTML Menurut Connolly and Begg (2005,p1001), HTML adalah dokumen yang mengatur bahasa-bahasa yang digunakan untuk mendesain kebanyakan halaman web. HTML adalah suatu sistem untuk marking-up, tagging, sehingga dokumen tersebut dapat dipublikasikan ke web. HTML adalah bahasa yang di mengerti oleh browser. Pada dasar nya user interface HTML sangat kaku dan sederhana, padahal banyak orang yang hendak mengakses website yang menampilkan HTML. Oleh karena itu HTML sekarang di dukung dengan CSS dan JavaScript yang membuat halaman HTML menjadi menarik dan interaktif. 2.1.7. CSS Menurut Sulistyawan, Rubianto, Saleh (2008, P32), CSS adalah suatu bahasa Stylesheets yang mengatur tampilan suatun dokumen. Pada umumnya CSS digunakan untuk mengatur tampilan dokumen. CSS memungkinkan kita untuk menampilkan halaman yang sama dengan format yang berbeda. Versi dari CSS sekarang sudah sampai CSS3 di mana sudah menjadi bagian yang tak bias terlepas dari HTML. CSS memiliki peran khusus untuk “memperindah” halaman HTML. 2.1.8. JavaScript Menurut Douglas (2009, p267), JavaScript adalah bahasa yang memungkinkan sebuah halaman web untuk memasukkan perintah yang di jalankan oleh browser web. JavaScript berbeda dengan bahasa pemrograman Java, hanya kebetulan saja mempunyai sesamaan nama Java.JavaScript pertama dikembangkan oleh Netscape. Dengan nama LiveScript yang memang ditujukan untuk pengembangan HTML. JavaScript memungkin untuk mempilementasikan fitur dinamis pada Client-Side tanpa harus melakukan komunikasi data dengan Server. 2.1.8.1. JQuery JQuery adalah library JavaScript yang memungkinkan kita untuk membuat program web p ada suatu halaman web, tanpa harus secara eksplisit menambahk an ev ent atau pun prop erti p ada halaman web tersebut. Dengan JQuery , suatu halaman web y ang menjadi ap likasi web, jika dilihat sourceny a, akan terlihat sep erti dokumen HTM L biasa, tidak ada kode JavaScrip t y ang terlihat lan gsun g. Teknik p emrograman web sep erti ini disebut sebagai unobstrusive JavaScrip t p rogrammin g. JQuery merup akan salah satu library y ang membu at program web di sisi klien, tidak terlihat seb agai p rogram JavaScr ip t biasa, y ang harus secara eksp lisit disisip kan p ada dokumen web. Pada teknik p emrograman sisi klien dengan men ggunak an JavaScr ip t biasa, setiap elemen y ang ak an memiliki event, akan secara eksp lisit terlihat ada event y ang dilek atkan p ada elemen tersebut. 2.1.8.2. Bootstrap Boostrap adalah open-source Javacript framework yang di kembangan oleh tim di Twitter. Ini merupakan kombinasi HTML, CSS dan Javacript yang di desain untuk membangun komponen antarmuka. Boostraps juga di bangun untuk mendukung pemrograman HTML5 dan CSS3. 2.1.9. Interaksi Manusia dan Komputer 2.1.9.1. Pengertian Interaksi Manusia dan Komputer Menurut Shneiderman (2005, p74), Interaksi manusia dan komputer adalah sebuah sistem berbasis computer selalu mempunyai elemen manusia terkait di dalam nya. Interaksi manusia dan komputer merupakan disiplin ilmu yang mempelajari hubungan antara manusia dan komputer yang meliputi perancangan, evaluasi, dan implementasi antarmuka pengguna computer agar mudah digunakan oleh manusia. 2.1.9.2. Delapan Aturan Emas Menurut Shneiderman (2010, p87-88), mengemukakan 8 aturan yang dapat digunakan sebagai petunjuk dasar yang baik untuk merancang suatu User Interface. Delapan Aturan ini dikenal dengan Eight Golden Rules of Interface Design, yaitu: 1. Berusaha konsisten (Strive for consistency) Konsistensi di perlukan dalam beberapa keadaan yang serupa. Sebagai contoh adalah konsistensi dalam penggunaan warna, layout, dan jenis tulisan. 2. Menyediakan fungsi yang bersifat universal (Cater to Universal Usability) Kemampuan user yang beranekaragam, mulai dari yang baru anak-anak yang baru mengenal computer hingga pakar computer, maka di butuhkan sebuah rancangan yang mudah dikenali user yang beraneka ragam ini. 3. Memberikan umpan balik yang informative (offer informative feedback) Untuk setiap aksi yang di lakukan userm harus ada umpan balik yang merespon sesuai dengan kondisi. Sebagai contoh adalah muncul suara dan layar konfirmasi saat ingin menghapus data secara permanen. 4. Merancang dialog untuk menghasilkan penutup ( Let the user know when they have completed a task) Urutan tindakan sebaiknya di organisir dengan baik. Umpan balik yang informative akan memberikan indikasi bahwa cara yang dilakukan usdah benar, sehingga user bisa bersiap ke tindakan selanjut nya. Sebagai contoh adalah dengan adanya progress bar. 5. Memberikan pencegahan kesalahan yang sederhana (Offer simple error handling) Sangat memungkinkan jika user melakukan kesalahan yang sangat fatal. Jika hal ini terjadi sistem harus bisa mendeteksi kesalahan tersebut dan memberikan penanganan yang tepat dan mudah. 6. Memungkinkan kembali ke tindakan sebelumnya ( Permit easy undo) Sebaiknya, sebuah aplikasi memiliki fitur yang dapat membatalkan aksi. Dengan fitur ini dapat mengurangi kecemasan karena user mengetahui adanya kesalahan dapat segera dipatalkan, dan hal ini memungkinkan user untuk mengeksplorasi pilihan-pilihan yang ada tanpa adanya kecemasan melakukan kesalahan. 7. Mendukung pengendalian internal (Provide a sense of user control) Pengguna ingin menjadi pengontrol sistem dan sistem akan merespon tindakan yang dilakukan pengguna. Sebaiknya sistem dirancang sedemikian rupa menjadi inisiator daripada responden 8. Mengurangi beban ingatan jangka pendek (Reduce short term memory) Designer harus menghindari tampilan antar muka di mana user harus mengingat informansi dari satu tampilan ketampilan lainnya, karena kapasitas ingatan manusia dalam memproses informasi jangka pendek yang terbatas 2.1.10. Unified Modelling Language (UML) Menurut Whitten dan Bentley (2007) Unified modeling language (UML) adalah cetak biru (Blue print) dari sistem informasi yang akan dibuat dalam pengembangan software. Setiap UML memiliki fungsi dan tujuan yang berbeda dalam pengembangan software sesuai dengan jenisnya. Gambar 2.4. UML Dalam pengembangan software, tidak semua perlu untuk digunakan semua nya. UML yang digunakan disesuaikan dengan kebutuhan, dengan syarat sudah dapat menggambarkan proses pengembangan sistem secara jelas. 2.2. Teori Khusus Teori Khusus yang berhubungan dengan topic yang dibahas dalam skripsi ini, terdiri dari: 2.2.1. Software Development Life Cycle Menurut Turban, et. al. (2001, p447-486), Software Development Life Cycle (SDLC) adalah kerangka terstruktur yang terdiri dari beberapa proses yang berurutan yang diperlukan untuk membangun suatu sistem informasi. Pendekatan waterfall digunakan untuk menggambarkan SDLC. SDLC dirancang dengan tujuan untuk membangunb alur pemrograman yang terstruktur dan untuk membantu manajemen proyek dalam perhitungan estimasi waktu dan sumber yang dibutuhkan suatu proyek. 2.2.1.1. Waterfall model Menurut Pressman (2010, p39), waterfall model memberikan pendekatan yang sistematis dan sekuensial bagi pengembangan software yang dimulai dari level sistem dan melalui tahapan communication, planning, construction, dan deployment. Gambar 2.5 Waterfall Model (Sumber: Pressman, 2010, p39) Berikut ini adalah penjelasan dari tahapan-tahapan dari model waterfall: 1. Communication Terdiri dari project initiation dan requirements gathering. Merupakan tahapan pengumpulan kebutuhan yang dilakukan secara intensif dan fokus tertama kepada software. 2. Planning Terdiri dari estimating, scheduling, dan tracking. Pada tahap ini developer membuat perkiraan waktu yang diperlukan. Pada tahap ini dilakukan pula penjadwalan untuk menyelesaikan tahap-tahap pembuatan software sesuai dengan waktu yang telah diperkirakan. 3. Modeling Tahap modeling ini terdiri dari analisis dan desain. Pada saat merancang aplikasi, biasanya ada beberapa proses yang memfokuskan pada empat atribut bagian dari program, diantaranya adalah struktur data, arsitektur software, representasi interface, dan detail algoritma. Proses desain mengubah kebutuhan menjadi representasi dari software yang dapat dinilai untuk kualitas sebelum penulisan kode dimulai. 4. Construction Tahap construction terdiri dari coding dan test. Pada tahap ini, desain diterjemahkan menjadi bentuk yang dapat dibaca oleh mesin. Setelah coding selesai, testing terhadap aplikasi dilakukan. Proses pengukian ini menekankan pada logika internal pada aplikasi, meyakinkan semua pernyataan telah diuji, dan pada fungsi eksternal. 5. Deployment Tahap terakhir yaitu deployment, terdiri dari delivery, support, dan feedback. Pada tahap ini, pengembang menyiapkan aplikasi yang menyediakan fungsi dan fitur yang bermanfaat. Pengembang aplikasi juga menyediakan dokumentasi untuk semua fitur dan fungsi. Pada tahap ini, pengembang aplikasi mendapatkan umpan balik pada aplikasinya yang berakhir pada perubahan atau update fungsi dan fitur dari aplikasi tersebut. 2.2.2. PHP Menurut Connolly and Begg (2005, P1014), PHP adalah bahasa pemrograman open source yang menempel pada HTML yang didukung oleh banyak web server. 2.2.2.1. Sejarah PHP PHP pertama kali di buat oleh Danish Greenlander Rasmus Lerdord pada tahun 1994 yang awal nya bernama Form Interpreted (FI). Kegunaan awal dari FI adalah mengelolah data formulir daru suatu halaman web yang di beri nama PHP tools (Personal Home Page tools) . Kemudian Rasmus merilis source code tersebut untuk umum dengan nama PHP/FI. Perilisan source code ini bersifat open source sehungga banyak programmer yang tertarik untuk mengembangan bahasa ini. Rasmus menulis ulang script tersebut di dalam bahasa pemrograman C dengan alasan peningkatan performa. Setelah selesai di tuliskan, pada November 1997 di rilislah PHP/FI 2.0. Pengembangan selanjutan nya berubah dari 1 orang pengembang menjadi bnyak orang. Adalah Zeev suraski dan Andi gutmans yang menjadi pengembang PHP selanjutnya. Mereka menambahkan feature parser ke PHP yang kemudian dikenal dengan PHP 3. Mereka juga mengubah akronim PHP menjadi PHP: hypertext Preprocessor. Pada 22 May 202 PHP 4 di rilis yang di dukung dengan zend engine 1.0. Versi ini banyak di gunakan karena kemampuan nya di nilai mampu membangun aplikasi web kompleks tetapi tetap memiliki kecepatan dan stabilitas yang tinggi. Pada juni 2004 PHP5 di rilis dan di dukung dengan zend engine 2.0. Perubahan besar-besaran terjadi pada seri ini, seperti object oriented programming. PHP 6 sedang dalam tahap pengembangan. Saat ini PHP menjadi bahasa pemrograman server-side paling popular. 75 % dari semua website menggunakan bahasa pemrograman server-side PHP. Banyak Web Content management sistem yang di tulis menggunakan PHP, seperti Joomla, Wordpress, Drupal, dan masih banyak lagi, bahkan website popular seperti Facebook juga di bangun dari bahasa pemrograman PHP. 2.2.2.2. Keunggulan PHP Kelebihan PHP di banding bahasa pemrograman lain: 1. Bahasa pemrograman PHP adalah bahasa script sehingga tidak diperlukan kompilasi dalam penggunaannya. 2. Web server yang mendukung PHP dapat di teumkan di mana-mana mulai dari apache, IIS, Lighttp hingga Xitami dengan konfigurasi yang relative mudah. 3. Dalam sisi pengembang dan pemahaman lebih mudah, karena banyak milis, forum, website dan developer yang siap membantu dan menyediakan banyak referensi tentang PHP. 4. PHP bersifat open source yang dapat di gunakan di berbagai mesin (Linux, macintosh, windows).