BAB II LANDASAN TEORI 2.1. Internet 2.1.1. Pengertian Internet Menurut Lorenzo Cantoni dan Stefano Tardini (2006, p31), internet adalah sebuah jaringan dimana komputer-komputer saling terhubung melalui setiap kemungkinan (kabel, radio, infrared, satelit, dan sebagainya) dan berbagi komunikasi protokol yang sama (TCP/IP). Menurut John Hamilton (2005, p4), internet adalah sebuah alat yang kuat untuk berbagi informasi. Ini juga sebagai salah satu cara untuk orang – orang saling berkomunikasi. E-mail, chat rooms, dan instant mesangging membantu orang – orang untuk saling berhubungan. Menurut Michael Eck (2002, p2), internet adalah kumpulan raksasa dari jaringan komputer yang saling berhubungan yang mencakup dunia dengan menggunakan kabel fiber optik, menara radio, dan satelit. Juga mencakup informasi dan program – program dari sumber daya yang luas yang terdapat dalam komputer – komputer yang terhubung dengan internet. Menurut Simon Collin (1997, p1), internet adalah sumber daya yang luas dimana setiap perusahaan harus memanfaatkannya. Internet merupakan revolusi komunikasi paling menarik yang ada di dunia sejak percetakan ditemukan. 8 9 2.1.2. WWW (World Wide Web) Menurut Nancy J. Yeager dan Robert E. McGrath (1996, p1), The World Wide Web, sering disingkat “The WWW” atau secara sederhananya “The Web” adalah hal yang paling popular, sejak televisi, membawa jutaan orang ke dalam internet untuk pertama kali. Dengan sebuah “point-and-click” sederhana, kemampuan untuk secara otomatis menampilkan variasi informasi informasi multimedia yang luas, dan, melalui web browser membuat setiap orang bisa menikmati dan menyembunyikan kerumitan dari internet. 2.2. UML (Unified Modeling Language) 2.2.1. Pengertian UML Menurut Mark Priestley (2000, p1), Unified Modelling Language (UML) adalah sebuah tujuan umum bahasa pemodelan visual yang digunakan untuk menentukan, membayangkan, membangun, dan mendokumentasikan arsitektur sistem software. Menurut Roger S. Pressman (2008, p167), UML menyediakan diagram array yang luas yang bisa digunakan untuk analisa dan desain pada level sistem dan level software sekaligus. Menurut Mark Priestley (2000, p8), UML diinformasikan oleh sebuah visi dari struktur sistem software yang dikenal sebagai 4+1 view model. 10 Gambar 2.1 4+1 View Model - Use Case View mendefinisikan perilaku sistem eksternal dan keuntungannya ke pengguna akhir, analis, dan tester. - Design View menggambarkan struktur logika yang mendukung kebutuhan fungsional yang ditunjukkan dalam use case view. - Implementation View meninjau komponen fisik dimana sistem dibangun. - Process View berurusan dengan isi konkurensi dalam sistem. - Deployment View menggambarkan bagaimana komponen fisik didistribusikan melalui lingkungan fisik, seperti sebuah jaringan pada komputer, dimana sistem tersebut berjalan. 2.2.1.1. Use Case Diagram Menurut Mark Priestley (2000, p42), use case diagram adalah sebuah diagram yang menggambarkan use case dan hubungan mereka dengan aktor atau use case lain. Contoh diagram use-case dapat dilihat pada Gambar berikut: 11 Gambar 2.2 Contoh Use Case Diagram 12 2.2.1.2. Sequence Diagram Menurut Timothy C. Laga (2002, p270), sequence diagram menunjukkan urutan pesan – pesan yang saling ditukar oleh beberapa objek (kadang juga oleh aktor) yang melakukan suatu tugas. Menurut Eric J. Naiburg dan Robert A. Maksimehuk (2001, p25), sequence diagram adalah sebuah diagram yang mengkolaborasikan objek dan pesan yang saling dikirimkan, mengatur waktu pesanan, yang menunjukkan bagaimana use case direalisasikan. 2.2.1.3. Statechart Diagram Menurut Eric J. Naiburg dan Robert A.Maksimchuk (2001, p11), statechart diagram adalah diagram yang menangkap perilaku dinamis sistem atau objek dalam sistem. Menurut Mark Priestley (2000, p79), salah satu fungsi dari statechart adalah untuk menunjukkan urutan pesan yang diharapkan untuk diterima. 2.2.1.4. Class Diagram Menurut Eric J. Naiburg dan Robert A. Maksimchuk (2001, p25), class diagram adalah sebuah diagram yang menggambarkan kelas, hubungan antar kelas, dan hubungan dengan elemen lain. 13 2.3. Rekayasa Piranti Lunak 2.3.1. Pengertian Rekayasa Piranti Lunak Menurut Pressman (2010, p.12), rekayasa piranti lunak adalah pembentukan dan penggunaan prinsip – prinsip rekayasa untuk mencptakan piranti lunak yang ekonomis yang handal dan bekerja secara efisien pada mesin nyata. Definisi rekayasa perangkat lunak menurut Sommerville (2011, p6), adalah sebuah prinsip tentang perekayasaan yang berhubungan dengan semua aspek dari pembuatan perangkat lunak dari tahap awal spesifikasi sistem sampai perawatan sistem setelah memasuki tahap pembangunan. 2.3.2. SDLC (System Development Life Cycle) Menurut Turban (2010, p690), System Development Life Cycle (SDLC) adalah kerangka kerja tradisional yang terstruktur dan yang digunakan untuk proyek TI besar, serta terdiri atas berbagai proses berurutan untuk mengembangkan sistem informasi. SDLC terdiri dari beberapa tahap, meliputi : penelitian, analisis, desain, pemograman, pengujian, implementasi, operasi, dan pemeliharaan. 2.3.2.1. Waterfall Model Menurut Pressman (2010, p.39), waterfall model, atau disebut juga classic life cycle, merupakan model pengembangan piranti lunak yang sistemik dan berurut yang dimulai dari spesifikasi permintaan dari klien, kemudian berlanjut ke tahap 14 perencanaan, pemodelan, konstruksi dan penyebaran memuncak sampai pengawasan yang terus menerus terhadap piranti lunak yang telah selesai dibuat. Analisa Kebutuhan Desain Sistem Implementasi Verifikasi Maintenance Gambar 2.3. Proses waterfall model 2.4. MVC (Model-View-Controller) Menurut Krasner dan Pope (1988, p.26), Model-View-Controller adalah arsitektur software yang memisahkan aplikasi menjadi 3 bagian, yaitu: - Bagian yang mewakili model dari domain dasar aplikasi atau disebut sebagai model - Bagian yang mewakili cara model disajikan kepada user atau disebut sebagai view - Bagian yang mewakili cara user berinteraksi dengan aplikasi tersebut atau disebut sebagai controller 15 Controller View Model Gambar 2.4. Komponen MVC dan interaksinya Metode ini mempermudah perancang aplikasi untuk memahami dan mengubah tiap bagian tertentu tanpa harus mengetahui bagian lain sepenuhnya. Bagian – bagian tersebut memiliki fungsi masing – masing yaitu - Model Model adalah adalah struktur inti dari aplikasi yang bersifat domain-specific. Isinya bisa berupa integer sederhana atau objek yang lebih kompleks seperti class. - View View berperan dalam segala hal yang bersifat grafis. View meminta data dari model dan kemudian menampilkan data tersebut. View mengandung bukan hanya komponen yang diperlukan untuk display, tapi juga bisa mengandung subview dan/atau superview. - Controller Controller mengandung interface antara model, view dan perangkat input seperti keyboard atau mouse. Controller juga menangangi interaksi dengan view seperti melacak gerakan mouse pada tampilan aplikasi, dan menampilkan pesan atas setiap tindakan dari perangkat input. 16 2.5. Interaksi Manusia dan Komputer Interaksi manusia dan komputer merupakan disiplin ilmu yang berhubungan dengan perancangan, evaluasi, dan implementasi sistem komputer interaktif untuk digunakan oleh manusia, serta studi fenomena – fenomena besar yang berhubungan dengannya. Tujuan dari ilmu ini adalah untuk membangun atau merancang suatu sistem yang aman, sesuai dengan kebutuhan, efektif, efisien, dan dapat dipakai. Konsep utama dari interaksi manusia dan komputer adalah bagaimana membuat sistem yang mudah dipelajari dan digunakan. 2.5.1. Eight Golden Rules Menurut Shneiderman (2007, p.74-75), ada delapan aturan yang harus diikuti dalam membangun atarmuka sebuah aplikasi: 1. Konsistensi Tampilan yang ada diusahakan untuk tetap konsisten 2. Kemungkinan frequent user untuk menggunakan shortcut Umumnya user yang sudah sering menggunakan aplikasi lebih menginginkan kecepatan dalam mengakses informasi yang diinginkan. Jadi tingkat interaksi yang diminta lebih pendek/singkat dan langsung menunjuk pada fungsi tersebut. Sehingga perlu disediakan tombol/perintah yang spesial. 3. Memberikan umpan balik yang informatif Umpan balik harus diberikan untuk memberikan informasi kepada user sesuai dengan aksi yang dilakukannya. User akan mengetahui aksi apa yang telah dan akan dilakukan dengan adanya umpan balik. Umpan balik biasanya berupa konfirmasi/informasi dari suatu aksi. 4. Merancang dialog untuk menghasilkan keadaan akhir 17 Umpan balik atas akhir dari suatu proses dan aksi akan sangat membantu dan juga user akan mendapatkan sinyal untuk melakukan aksi lainnya, misalnya pada saat ingin menghapus suatu data akan ditampilkan konfirmasi penghapusan. 5. Memberikan pencegahan kesalahan dan penanganan kesalahan sederhana Sistem dirancang sedemikian rupa sehingga dapat mencegah user dalam melakukan kesalahan dan mengatasi kesalahan tersebut. 6. Mengijinkan pembalikan aksi dengan mudah Terkadang user tidak sengaja melakukan aksi yang tidak diinginkan, untuk itu ia ingin melakukan pembatalan aksi ini. User akan lebih aman dan tidak takut dalam mencoba dan memakai sistem ini. 7. Mendukung internal locus of control User yang berpengalaman sangat mendambakan kontrol yang kuat pada sistem ini sehingga mereka menguasai sistem tersebut. 8. Mengurangi beban ingatan jangka pendek Keterbatasan memori pada manusia harus ditanggulangi oleh program dengan tidak banyak membuat user untuk melakukan proses penyimpanan memori. 2.6. Database 2.6.1. Pengertian Database Menurut Thomas Connolly (2010, p14), database adalah sekumpulan data – data yang dapat digunakan bersama – sama dan saling berhubungan secara logika, dirancang untuk memenuhi kebutuhan informasi yang diperlukan oleh sebuah organisasi. 18 Menurut O’Brien (2005, p211), database adalah kumpulan dari elemen data yang terintegrasi secara logika dan saling berhubungan. 2.6.2. DBMS (Database Management System) Menurut Connolly (2010, p16), DBMS adalah suatu sistem perangkat lunak yang memungkinkan user untuk mendefinisikan, menciptakan, memelihara, dan mengontrol akses pada basis data. Menurut Ramakrishnan (2003, p4), Database Management System (DBMS) adalah sebuah software yang diciptakan untuk membantu memelihara dan memanfaatkan data yang berjumlah sangat banyak. 2.6.2.1. Kelebihan DBMS Menurut Ramakrishnan (2003, p9), keuntungan menggunakan DBMS dalam mengelola data antara lain: 1. Independensi data Program aplikasi seharusnya tidak bergantung pada representasi dan penyimpanan data. DBMS memberikan abstract view pada data untuk menyembunyikan detail seperti itu. 2. Akses data yang efisien DBMS memanfaatkan berbagai macam cara yang mutakhir untuk menyimpan dan mengambil data secara efisien. Fitur ini sangat penting jika data tersimpan di alat penyimpanan external 19 3. Keutuhan dan keamanan data Jika data selalu diakses melalui DBMS, DBMS bisa menjaga keutuhan data. Contohnya, sebelum memasukkan informasi gaji seorang karyawan, DBMS bisa memeriksa bahwa anggaran belanja dari perusahaan masih mencukupi. DBMS juga bisa menjaga kontrol akses yang mengatur data apa saja yang bisa dilihat oleh jenis user yang berbeda 4. Administrasi data Ketika beberapa user melakukan sharing data, memusatkan administrasi data bisa memberikan manfaat yang signifikan. Profesional berpengalaman yang memahami sifat data yang sedang diatur dan bagaimana kelompok user yang berbeda menggunakannya, bisa bertanggung jawab mengorganisasikan representasi data untuk meminimalkan redundansi dan memperbaik penyimpanan data sehingga pengambilan data menjadi lebih efisien. 5. Akses yang bersamaan dan pemulihan dari crash DBMS mengatur akses serentak dengan cara tertentu sehingga user bisa berpikir bahwa data sedang diakses oleh satu user dalam satu waktu. Terlebih lagi, DBMS melindungi user dari efek kegagalan sistem. 20 6. Waktu pengembangan aplikasi yang berkurang Sudah sangat jelas bahwa DBMS membantu fungsi – fungsi yang penting yang umum untuk banyak aplikasi mengakses data di DBMS. Bersamaan dengan interface tingkat tinggi untuk data, DBMS bisa mempercepat pengembangan aplikasi. Aplikasi dengan DBMS juga bisa lebih kuat daripada aplikasi yang berdiri sendiri pada umumnya karena banyak tugas penting yang dikerjakan oleh DBMS 2.6.3. MySQL MySQL adalah multiuser database yang menggunakan bahasa SQL. MySQL berada dibawah lisensi GNU General Public License dan juga MySQL merupakan perangkat lunak yang bersifat open source. Sesuai dengan namanya, bahasa standar yang digunakan oleh MySQL adalah SQL. SQL adalah singkatan dari Structured Query Language, merupakan bahasa standar untuk pengolahan database. SQL mulai dikembangkan pada akhir tahun 1970-an di laboratorium IBM (Bimo Sunahfrihantono ST, 2002, p65). 2.6.3.1. Kelebihan MySQL Menurut Windra Swastika (2006, p65), MySQL adalah database yang sangat populer dikalangan pengembang situs yang sifatnya dinamis. Berikut adalah kelebihan dari MySQL: 1. Dukungan standar 21 Dukungan entry-level ANSI SQL92 dan ODBC level 0-2 SQL Standard. 2. Dukungan bahasa Database server MySQL dapat mengeluarkan pesan kesalahan dalam berbagai bahasa, seperti: bahasa Belanda, Ceko, Inggris, Perancis, Jerman, Italia, Spanyol, dan lain-lain. 3. Bahasa pemograman API’s bagi clients untuk mengakses database. 4. Aplikasi database MySQL dapat ditulis dalam beberapa bahasa pemograman, seperti C, Perl, PHP, dan lain-lain. 5. Tabel yang besar 6. MySQL menyimpan setiap tabel kedalam database sebagai file tersendiri di dalam database directory. Ukuran maksimum dari suatu tabel antara empat Gigabyte dan batas sistem operasi pada ukuran file maksimum. 7. Kecepatan dan kekuatan MySQL kira – kira tiga hingga empat kali lebih cepat daripada database komersil lainnya. 8. Tidak mahal Walaupun mempunyai versi komersial, namun sesungguhnya MySQL dapat diunduh dengan gratis. 9. Kemudahan penggunaan 22 Anda dapat berinteraksi dengan MySQL menggunakan perintah SQL yang sederhana. Perintah SQL adalah standar bahasa untuk RDBMS. 10. Berjalan pada berbagai sistem operasi MySQL berjalan dengan baik pada banyak sistem operasi, seperti Windows, Linux, Mac OS, Unix (Solaris, AIX, dan DEC Unix), free BSD, OS/2, Irix dan lainnya. 11. Dukungan pengguna banyak tersedia 2.7. Tools Pemrograman Dan Desain 2.7.1. HTML (Hypertext Markup Language) Menurut Berners-Lee (2000, p5), HTML atau Hypertext Markup Language adalah sebuah bahasa yang digunakan untuk menyajikan konten sebuah halaman hypertext, dan juga bahasa yang paling banyak digunakan dalam merancang sebuah halaman web 2.7.2. PHP Menurut Kasiman (2006, p2-4), PHP singkatan dari PHP Hypertext Preprocessor yang digunakan sebagai bahasa script server-side dalam pengembangan web yang disisipkan pada dokumen HTML. Pengunaan PHP memungkinkan web dapat dibuat dinamis sehingga maintenance situs tersebut menjadi lebih mudah dan efisien. PHP merupakan software open source yang 23 disebarkan dan dilisensikan secara gratis dan dapat diunduh secara bebas dari situs resminya yaitu http://www.php.net. PHP ditulis menggunakan bahasa C. PHP memiliki banyak kelebihan yang tidak dimiliki oleh bahasa script sejenis. PHP difokuskan pada pembuatan script server-side, yang bisa melakukan apa saja yang dilakukan oleh CGI, seperti mengumpulkan data dari form, menghasilkan isi halaman web dinamis, dan kemampuan mengirim serta menerima cookies, bahkan lebih daripada kemampuan CGI. 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, IBM DB2, Informix, Ingres, Interbase, MSQL, MySQL, ODBC, Oracle (OC17 dan OC18), Ovrimos, PostgrSQL, Solid, Sybase, Unix DBM, Vekocis. 2.7.3. CSS (Cascading Style Sheets) Menurut Meyer (2006, p3 – 11), CSS atau Cascading Style Sheets secara sederhana adalah sebuah cara untuk memisahkan struktur sebuah dokumen dari presentation dokumen tersebut, yang kemudian membuat CSS memungkinkan tampilan yang jauh lebih kaya dan menarik daripada yag bisa diberikan HTML, serta juga menghemat waktu karena kita bisa mengubah tampilan seluruh halaman dari satu tempat saja. Dan dengan ukurannya yang relatif kecil, CSS memungkinkan untuk pemuatan halaman yang lebih cepat