BAB II LANDASAN TEORI 2.1 Pengenalan PHP (Personal Home Page) Kasiman Peranginangin (2) menyatakan, bahwa PHP adalah singkatan dari PHP Hypertext Preprocessor yang digunakan sebagai bahasa script server-side dalam pengembangan Web yang disisipkan dalam document HTML (Hyper Text Markup Language). Penggunaan PHP memungkinkan Web dapat dibuat dinamis sehingga maintenance situs Web tersebut menjadi lebih mudah dan efisien. PHP merupakan software Open-Source yang disebarkan dan dilisensikan secara gratis serta dapat di-download secara bebas dari situs resminya http://www.php.net. PHP ditulis menggunakan bahasa C. 2.1.1 Sejarah Singkat PHP Kasiman Peranginangin (2) menyatakan, bahwa PHP diciptakan pertama kali oleh Rasmus Lerdorf pada tahun 1994. Awalnya, PHP digunakan untuk mencatat jumlah serta untuk mengetahui siapa saja pengunjung pada homepage-nya. Rasmus Lerdorf adalah salah seorang pendukung open source. Oleh karena itu, ia mengeluarkan Personal Home Page Tools versi 1.0 secara gratis, kemudian menambah kemampuan PHP 1.0 dan meluncurkan PHP 2.0. Pada tahun 1996, PHP telah banyak digunakan dalam website di dunia. Sebuah kelompok pengembang software yang terdiri dari Rasmus, Zeew Suraski, Andi Gutman, Stig Bakken, Shane Caraveo, dan Jim Winstead bekerja sama untuk menyempurnakan PHP 2.0. akhirnya, pada tahun 1998, PHP 3.0 diluncurkan. Penyempurnaan terus dilakukan sehingga pada tahun 2000 dikeluarkan PHP 4.0. tidak berhenti sampai di situ, kemampuan PHP terus 7 8 ditambah, dan saat buku ini disusun, versi terbaru yang telah dikeluarkan adalah PHP 5.0.x. 2.1.2 Kelebihan-Kelebihan PHP Kasiman Peranginangin (3) menyatakan, bahwa PHP memiliki banyak kelebihan yang tidak dimiliki oleh bahasa script sejenis. PHP difokuskan pada pembuatan script server-side, yang bisa melakukan apa saja yang dapat dilakukan oleh CGI, seperti mengumpulkan data dari form, menghasilkan isi halaman web dinamis, dan kemampuan mengirim serta menerima cookies, bahkan lebih daripada kemampuan CGI. PHP dapat digunakan pada semua sistem operasi, antara lain Linux, Unix (termasuk variannya HP-UX, Solaris, dan OpenBSD), Microsoft Windows, Mac OS X, RISC OS. PHP juga mendukung banyak Web Server, seperti Apache, Microsoft Internet Information Server (MIIS), Personal Web Server (PWS), Netscape and iPlanet servers, Oreilly Website Pro Server, Audium, Xitami, OmniHTTPd, dan masih banyak lagi lainnya, bahkan PHP dapat bekerja sebagai suatu SGI processor. PHP tidak terbatas pada hasil keluaran HTML (HyperText Markup Languages). PHP juga memiliki kemampuan untuk mengolah keluaran gambar, file PDF, dan movies Flash. PHP juga dapat menghasilkan teks seperti XHTML dan file XML lainnya. Salah satu fitur yang dapat diandalkan oleh PHP adalah dukungannya terhadap banyak database. Berikut database yang dapat didukung oleh PHP: • Adabas D • dBase • Direct MS-SQL • Empress • FilePro (read only) • FrontBase • Hyperwave 9 • IBM DB2 • Informix • Ingres • Interbase • MSQL • MySQL • ODBC • Oracle (OCI7 dan OCI8) • Ovrimos • PostgrSQL • Solid • Sybase • Unix DBM • Velocis 2.2 Mengenal MySQL Wahana Komputer (5) menyatakan, bahwa MySQL database server adalah RDBMS (Relasional Database Management System) yang dapat menangani data yang bervolume besar. Meskipun begitu, tidak menuntut resources yang besar. MySQL adalah database yang paling populer diantara database-database yang lain. MySQL adalah program database yang mampu mengirim dan menerima data dengan sangat cepat dan multi user. MySQL memiliki dua bentuk lisensi, yaitu free software dan shareware. Penulis sendiri dalam menjelaskan buku ini menggunakan MySQL yang free software karena bebas menggunakan database ini untuk keperluan pribadi atau usaha tanpa harus membeli atau membayar lisensi, yang berada dibawah lisensi GNU/GPL (general public license), yang dapat Anda download pada alamat resminya http://www.mysql.com. 10 2.3 Konsep Kerja PHP dan MySQL Dodit Suprianto (290) menyatakan, bahwa untuk memahami bagaimana PHP dapat berinterkasi dengan database, perlu dipahami bagaimana konsep kerja antara database MySQL, Web Server (Apache), PHP, dan Browser Client. Web Server Obtain Data PHP Dynamic Page Web Browser MySQL Run Scrip PHP File Page Request Gambar 2.1 Konsep kerja PHP dan MySQL Penjelasan gambar: 1. Pengunjung web browser melakukan permintaan pengiriman halawan web (web request) dengan menggunakan URL standar. 2. Web server, dalam hal ini adalah Apache, mengenali permintaan halamn web tersebut, kemudian menerjemahkan file yang mengandung script PHP. 3. Halaman web yang terkirim harus mengandung script PHP berisi perintah untuk menciptakan koneksi ke database MySQL berupa SQL query. 4. Database MySQL memberikan tanggapan atas permintaan sambungan ke MySQL dan SQL query sesuai dengan isi script PHP yang dikirim. 5. Script PHP menyimpan hasil query database MySQL menjadi satu atau lebih variable PHP, dengan peryataan echo, maka hasil request dikeluarkan. 6. Selanjutnya, PHP mengkopi hasilnya dalam bentuk HTML yang telah diciptakan oleh web server. 11 7. Web server mengirim HTML yang sudah jadi ke web browser client. Unified Modelling language (UML) 2.4 Rosa A. S. and M. Shalahuddin (117) menyatakan, bahwa pada perkembangan teknologi perangkat lunak, diperlukan adanya bahasa yang digunakan untuk memodelkan perangkat lunak yang akan dibuat dan perlu adanya standarisasi agar orang di berbagai Negara dapat mengerti pemodelan perangkat lunak. Pada perkembangan teknik pemrograman berorientasi objek, munculah sebuah standarisasi bahasa pemodelan untuk pembangunan perangkat lunak yang dibangun dengan menggunakan teknik pemrograman berorientasi objek, yaitu Unified Modeling Language (UML). UML muncul karena adanya kebutuhan pemodelan visual untuk menspesifikasikan, menggambarkan, membangun, dan dokumentasi dari sistem perangkat lunak. UML merupakan bahasa visual untuk pemodelan dan komunikasi mengenai sebuah sistem dengan menggunakan diagram dan teks-teks pendukung. UML hanya berfungsi untuk melakukan pemodelan. Jadi penggunaan UML tidak terbatas pada metodologi tertentu, meskipun pada kenyataannya UML paling banyak digunakan pada metodologi berorientasi objek. 2.4.1 Class Diagram Rosa A. S. and M. Shalahuddin (122) menyatakan, bahwa diagram kelas atau class diagram menggambarkan struktur sistem dari segi pendefinisian kelas-kelas yang akan dibuat untuk membangun sistem. Kelas memiliki apa yang disebut atribute dan metode atau operasi. • Atribut merupakan variable-variable yang dimiliki oleh suatu kelas. • Operasi atau metode adalah fungsi-fungsi yang dimiliki oleh suatu kelas. 12 Kelas-kelas yang ada pada struktur sistem harus dapat melakukan fungsifungsi sesuai dengan kebutuhan sistem. Susunan struktur kelas yang baik pada diagram kelas sebaiknya memliki jenis-jenis kelas berikut: 1. Kelas main 2. Kelas yang memiliki fungsi awal dieksekusi ketika sistem dijalankan 3. Kelas yang menangani tampilan sistem 4. Kelas yang mendefinisikan dan mengatur tampilan ke pemakai 5. Kelas yang diambil dari pendefinisian use case 6. Kelas yang menangani fungsi-fungsi yang harus ada diambil dari pendefinisian use case 7. Kelas yang diambil dari pendefinisian data 8. Kelas yang digunakan untuk memegang atau membungkus data menjadi sebuah kesatuan yang diambil maupun akan disimpan ke basis data. Jenis-jenis kelas diatas juga dapat digabungkan satu sama lain sesuai dengan pertimbangan yang dianggap baik asalkan fungsi-fungsi yang sebaiknya ada pada struktur kelas tetap ada. Susunan kelas juga dapat ditambahkan kelas utilitas seperti koneksi ke basis data, membaca file teks, dan lain sebagainya sesuai kebutuhan. Tabel 2.1 Simbol-simbol yang ada pada class diagram Simbol Nama Kelas pada sturktur sistem nama_kelas +atribut keterangan Kelas +operasi() Antarmuka / nama_interface Interface Asosiasi / association Sama dengan konsep interface dalam pemrograman berorientasi objek Relasi antar kelas dengan makna umum, asosiasi biasanya juga disertai dengan multiplicity 13 Tabel 2.1 Simbol-simbol yang ada pada class diagram (lanjutan) Asosiasi berarah / directed association Generalisasi Keberuntungan / Relasi antar kelas dengan makna kelas yang satu digunakan oleh kelas yang lain, asosiasi biasanya juga disertai dengan multiplicity Relasi antar kelas dengan makna generalisasi-spesialisasi (umum khusus) Relasi antar kelas dengan makna dependency keberuntungan antar kelas Agregasi Semua-bagian (whole-part) 2.4.2 Use Case Diagram Rosa A. S. and M. Shalahuddin (130) menyatakan, bahwa use case atau diagram use case merupakan pemodelan untuk kelakuan (behavior) sistem informasi yang akan dibuat. Use case mendeskripsikan sebuah interaksi antara satu atau lebih aktor dengan sistem informasi yang akan dibuat. Secara kasar, use case digunakan untuk mengetahui fungsi apa saja yang ada di dalam sebuah sistem informasi dan siapa saja yang berhak menggunakan fungsi-fungsi itu. Syarat penamaan pada use case adalah nama didefiniskan sesimpel mungkin dan dapat dipahami. Ada dua hal utama pada use case yaitu pendefinisian apa yang disebut aktor dan use case. 1. Aktor merupakan 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 belum tentu merupakan orang. 2. Use case merupakan fungsionalitas yang disediakan sistem sebagai unitunit yang saling bertukar pesan antarunit atau aktor. 14 Tabel 2.2 Simbol-simbol yang ada pada diagram use case Simbol Nama Keterangan Fungsionalitas yang disediakan sistem sebagai unit-unit yang saling bertukar pesan Use case antar unit atau aktor; biasanya dinyatakan dengan menggunakan kata kerja di awal di awal frase nama use case Orang, proses, atau sistem lain yang berinteraksi dengan sistem informasi yang akan dibuat di luar sistem informasi yang Aktor / aktor akan dibuat itu sendiri, jadi walaupun simbol dari aktor adalah gambar orang, tapi aktor belum tentu merupakan orang; biasanya dinyatakan menggunakan kata benda di awal fase nama aktor. Komunikasi antara aktor dan use case yang Asosiasi / association berpartisipasi pada use case atau use case yang memiliki interaksi dengan aktor. System boundary menggambarkan batasan sistem System antara use case dengan aktor Boundary 2.4.3 Activity Diagram Rosa A. S. and M. Shalahuddin (134) menyatakan, bahwa diagram aktivitas atau activity diagram menggambarkan workflow (aliran kerja) atau aktivitas dari sebuah sistem atau proses bisnis. Yang perlu diperhatikan disini adalah bahwa diagram aktivitas menggambarkan aktivitas sistem bukan apa yang dilakukan aktor, jadi aktivitas yang dapat dilakukan oleh sistem. 15 Diagram aktivitas juga banyak digunakan untuk mendefinisikan hal-hal berikut: 1. Rancangan proses bisnis di mana setiap urutan aktivitas yang digambarkan merupakan proses bisnis sistem yang didefinisikan. 2. Urutan atau pengelompokan tampilan dari sistem/user interface di mana setiap aktivitas dianggap memiliki sebuah rancangan antarmuka tampilan. 3. Rancangan pengujian di mana setiap aktivitas dianggap memerlukan sebuah pengujian yang perlu didefinisikan kasus ujinya. Tabel 2.3 Simbol-simbol yang ada pada activity diagram Simbol Nama keterangan Setatus awal aktivitas sistem, sebuah diagram Status awal aktivitas memiliki sebuah status awal Aktivitas yang dilakukan sistem, aktivitas Aktivitas Percabangan / decision biasanya diawali dengan kata kerja Asosiasi percabangan dimana jika ada pilihan aktivitas lebih dari satu Penggabungan Asosiasi penggabungan dimana lebih dari / join satu aktivitas digabungkan menjadi satu Status akhir yang dilakukan sistem, sebuah Status akhir diagram aktivitas memiliki sebuah status akhir Memisahkan organisasi bisnis yang Nama swimlane Swimlane bertanggung jawab terhadap aktivitas yang terjadi 16 2.4.4 Sequence Diagram Rosa A. S. and M. Shalahuddin (137) menyatakan, bahwa diagram sekuen menggambarkan kelakuan objek pada use case dengan mendeskripsikan waktu hidup objek dan message yang dikirimkan dan diterima antarobjek. Oleh karena itu untuk menggambar diagram sekuen maka harus diketahui objek-objek yang terlibat dalam sebuah use case beserta metode-metode yang dimiliki kelas yang diinstansiasi menjadi objek itu. Banyaknya diagram sekuen yang harus digambar adalah sebanyak pendefinisian use case yang memiliki proses sendiri atau yang penting semua use case yang telah didefinisikan interaksi jalannya pesan sudah dicakup pada diagram sekuen sehingga semakin bayak use case yang didefinisikan maka diagram sekuen yang harus dibuat juga semakin banyak. Tabel 2.4 Simbol-simbol yang ada pada sequence diagram Simbol Nama keterangan Orang, proses, atau system lain yang berinteraksi dengan system informasi yang akan dibuat di luar system informasi yang nama aktor atau Aktor akan dibuat itu sendiri, jadi walaupun symbol dari aktor adalah gambar orang, tapi aktor belum tentu merupakan orang; biasanya nama aktor dinyatakan menggunakan kata benda di awal tanpa waktu aktif frase nama aktor Menyatakan kehidupan suatu objek Garis hidup / lifeline 17 Tabel 2.4 Simbol-simbol yang ada pada sequence diagram (lanjutan) Menyatakan objek yang berinteraksi pesan nama objek: nama kelas Objek Menyatakan objek dalam keadaan aktif dan Waktu aktif Pesan / message berinteraksi pesan Menyatakan suatu objek membuat objek yang lain, arah panah mengarah pada objek yang dibuat. 2.5 Rekayasa Perangkat Lunak 2.5.1 Pandangan Umum Tentang Rekayasa Perangkat Lunak Menurut Pressman (2002) IEEE telah mengembangkan definisi rekayasa perangkat lunak yang lebih komprehensif, yaitu sebagai berikut : Rekayasa perangkat lunak : (1). Aplikasi dari sebuah pendekatan kuantifiabel, disiplin dan sistematis kepada pengembangan, operasi dan pemeliharaan perangkat lunak; yaitu aplikasi dari Rekayasa perangkat lunak. (2). Studi tentang pendekatan-pendekatan seperti pada (1). 2.5.2 Model-Model Proses Perangkat Lunak Model proses untuk rekayasa perangkat lunak dipilih berdasarkan sifat aplikasi dan proyeknya, metode dan alat-alat bantu yang akan dipakai, dan kontrol serta penyampaian yang dibutuhkan. Menurut Roger S. Pressman, Ph.D dalam bukunya yang berjudul Rekayasa Perangkat Lunak, 2002, dalam rekayasa perangkat lunak, metodologi pengembangan perangkat lunak atau metodologi pengembangan sistem adalah suatu kerangka kerja yang digunakan untuk menstrukturkan, merencanakan, dan 18 mengendalikan proses pengembangan suatu sistem informasi. Banyak ragam kerangka kerja yang telah dikembangkan selama ini, yang masing-masing memiliki kekuatan dan kelemahan sendiri-sendiri. Suatu metodologi pengembangan sistem tidak harus cocok untuk digunakan untuk semua proyek. Masing-masing metodologi mungkin cocok diterapkan untuk suatu proyek tertentu, berdasarkan berbagai pertimbangan teknis, organisasi, proyek, serta tim. Beberapa contoh metodologi pengembangan perangkat lunak yang tersedia di antaranya : 1. Waterfall Model 2. Sekuensial Linier Model 3. Prototype Model 4. Rapid Application Development (RAD) Model 5. Incremental Model 6. Spiral Model