BAB 2 LANDASAN TEORI 2.1. Softwere Engineering 2.1.1. Definisi Software Engineering Adalah penetapan dan penggunaan prinsip-prinsip rekayasa dalam rangka mendapatkan perangkat lunak yang ekonomis, yaitu perangkat lunak yang diandalkan dan bekerja secara efisien mesin (Pressman, (2005), p 18). 2.1.2. Metode Pengembangan 2.1.2.1. Process Model Process Model adalah sekumpulan aktifitas, aksi, tugas, dan produk kerja yang dibutuhkan untuk membangun piranti lunak yang berkualitas tinggi (Pressman, (2005), p 77). 8 9 Incremental Model Gambar 2. 1 Incremental Proccess Model Gambar 2.1 Incremental Proccess Model Incremental Proccess Model berdasarkan Pressman (2010,p41) dibagi menjadi beberapa tahap: a. Communication Sangat penting untuk berkomunikasi dengan customer dan para stakeholder untuk memahami tujuan proyek dan mengumpulkan persyaratan yang membantu mendefinisikan fitur perangkat lunak dan fungsinya. b. Planning Perencanaan mendefinisikan kerja rekayasa perangkat lunak dengan menjelaskan teknik tugas yang dilakukan, resiko yang mungkin, sumber daya yang akan diperlukan, produk yang harus diproduksi, dan jadwal. 10 c. Modelling (analysis, design) Software engineer membuat model untuk lebih memahami persyaratan perangkat lunak dan desain yang akan mencapai kebutuhan tersebut. d. Construction (code, test) Kegiatan ini menggabungkan generasi kode (baik manual atau otomatis) dan pengujian yang diperlukan untuk mengungkap kesalahan dalam kode. e. Deployment (delivery, feedback) Perangkat lunak (sebagai entitas lengkap atau sebagai bagian yang telah selesai) dikirim ke customer untuk dievaluasi dan mendapatkan umpan balik berdasarkan evaluasi tersebut. 2.1.2.2. UML (Unified Modeling Language) UML adalah standar bahasa grafik dari pemodelan perangkat lunak bersifat objek (Lethbridge (2002), p 151). Use-Case diagram Use-Case diagram hubungan antara adalah notasi UML untuk menunjukan sekumpulan (Lethbridge(2002),p 237). use-case dan aktor 11 Gambar 2. 2 Diagram usecase Gambar 2.2 Contoh gambar diagram usecase (sumber : http://yudipurnawan.wordpress.com/2008/04/24/unifiedmodeling-language-uml) Sequence diagram Sequence diagram menunjukan urutan dari pertukaran pesan oleh sekumpulan objek melakukan tugas tertentu (Lethbridge(2002), p 270). Gambar 2. 3 Sequence diagram Gambar 2.3 Contoh gambar sequence diagram (sumber : http://bangunariyanto.wordpress.com/category/kampus/page/4 ) 12 Activity diagram Activity diagram dipergunakan untuk memahami aliran kerja dari objek dan menunjukan interaksi antara use-cases yang berbeda. Gambar 2. 4 activity diagram Gambar 2.4 Contoh gambar activity diagram (sumber : http://www.tejhost.com/2010_08_01_archive.html) Kelebihan dari activity diagram adalah merepresentasikan aktifitas yang sedang terjadi bersama-sama dengan menggunakan fork, joins, dan rendezvous. Fork memiliki satu transisi masuk dan beberapa transisi keluar.hasil dari eksekusi tersebut dibagi menjadi dua Thread yang terjadi bersama-sama. 13 Gambar 2. 5 Activity Fork Gambar 2.5 Contoh gambar activity fork (sumber : http://www.claudiodesio.com/ooa&d/UMLSR_EN/DSR/ACTD. htm) Join memiliki beberapa transisi masuk dan satu transisi keluar . Transisi keluar akan berjalan bila semua transisi masuk telah berjalan. Gambar 2. 6 Activity Join Gambar 2.6 Contoh gambar activity join (sumber : http://www.claudiodesio.com/ooa&d/UMLSR_EN/DSR/ACTD. htm) 14 Redezvous memiliki beberapa transisi masuk dan beberapa transisi keluar. Ketika semua transisi masuk sudah berjalan ,sistem akan mengambil semua transisi keluar pada thread yang berbeda (Lethbridge(2002), p 284). Gambar 2. 7 Activity Rendesvouz Gambar 2.7 Contoh gambar activity redezvous (sumber : http://www.claudiodesio.com/ooa&d/UMLSR_EN/DSR/ACTD. htm) 2.2. Database Sistem Menurut Connolly dan Begg (2005, p. 15) Database adalah koleksi bersama data yang berhubungan secara logis, dan deskripsi data ini dirancang untuk memenuhi kebutuhan informasi dari suatu organisasi. Database digunakan untuk membantu perusahaan atau pemakai untuk mengelola informasi yang dibutuhkan secara cepat dan mudah, baik untuk memasukan dan menyimpan informasi baru maupun memperbaiki informasi yang sudah ada dan menampilkannya dalam berbagai bentuk dan format yang tepat dan sangat membantu misalnya dalam bentuk laporan grafik maupun dalam bentuk peta yang dapat 15 menghasilkan suatu ringkasan yang memberikan kemudahan bagi pemakai mengenai sistem terkini. Gambar 2. 8 DBMS Gambar 2.8 Contoh gambar basis data sebuah harddisk (sumber : http://4.bp.blogspot.com/_gpANt0UWpoo/TDxXCMrVl7I/AAAAAAAAA EA/Fa7UWrCj45o/s1600/bd_harddisk_u.jpg) 2.2.1. DBMS Menurut Connolly dan Begg (2005, p. 16) DBMS adalah Sebuah sistem perangkat lunak yang memungkinkan pengguna untuk mendefinisikan, memelihara, dan mengontrol akses ke database. Menurut Connolly dan Begg (2005, p. 16) biasanya DBMS menyediakan fasilitas sebagai berikut : a. Memungkinkan pengguna untuk mendefinisikan database, pada umumnya melalui Definition Data Language (DDL). DDL memungkinkan pengguna untuk menentukan jenis dan struktur data dan kendala pada data yang akan disimpan dalam database. 16 b. Hal ini memungkinkan pengguna untuk memasukkan, memperbaharui, menghapus dan mengembalikan data dari database, biasanya melalui Data Manipulation Language (DML). Memiliki sebuah repositori pusat untuk seluruh data dan deskripsi data memungkinkan DML untuk menyediakan fasilitas penyelidikan umum untuk data ini, disebut bahasa query. Penyediaan bahasa query menyelesaikan masalah dengan sistem berbasis file di mana pengguna harus bekerja dengan seperangkat tetap pertanyaan atau ada proliferasi program, memberikan masalah manajemen softwere utama. Bahasa query yang paling umum adalah Structured Query Language (SQL, diucapkan 'SQ-L', atau 'See-Quel '), yang sekarang baik formal dan de facto bahasa standar untuk DBMS relasional. 2.2.2. Perancangan Database Sistem Menurut Connolly dan Begg (2005, pp. 418 - 419) Metodologi perancangan database terbagi atas 3 tahapan, yaitu: 1. Perancangan Database Konseptual Proses membangun model informasi yang digunakan dalam sebuah perusahaaan, terbebas dari semua pertimbangan fisik. model data konseptual merupakan sumber informasi untuk fase desain logikal. 2. Perancangan Database Logical Proses membngun informasi yang digunakan dalam sebuah perusahaan yang didasarkan oleh data model spesifik, dan terbebas dari DBMS (Database Management System) tertentu dan pertimbangan fisik lainnya. Model dan konseptual yang telah dibuat sebelumnya, diperbaiki dan dipetakan kedalam model data logikal. 17 3. Perancngan Database Fisikal Proses memproduksi sebuah deskripsi dari implementasi database dalam penyimpanan sekunder (secondary storage), yang menggambarkan struktur penyimpanan dan metode akses yang digunakan untuk mencapai akses yang efisien kedata. dapat dikatakan juga, desain fisikal merupakan cara pembuatan menuju sistem DBMS tertentu. 2.3. Internet Internet adalah jaringan international yang terdiri dari jutaan jaringan kecil yang menghubungkan pendidikan, komersial, nonprofit, dan organisasi kemiliteran, serta individual. Komputer klien adalah komputer yang meminta data atau servis. Server atau Host adalah komputer pusat yang membagikan data atau servis yang dimintai. (Williams and sawyer(2007),p60). 2.3.1. Sejarah internet “ARPAnet adalah sebuah jaringan antar komputer. Internet merupakan jaringan dari jejaring. Jejaring antar planet akan menjadi jaringan internet.” (Haas(2005),p2-13) Sebelum ARPAnet • 1957 USSR menerbitkan Sputnik Terjadi “Sputnik Shock” di USA 18 • 1958 Kongres US memberikan dana untuk Advance Research Project Agency (ARPA) Design ARPAnet dimulai: Kelahiran ARPAnet • 1969 Bell Lab menciptakan ESS-1, switch pertama • 1970 ARPAnet menggunakan Network Control Protocol (NCP) • 1971 ARPAnet Menghubungkan 15 situs termasuk organisasi dan universitas • 1972 Ray Tomlinson menciptakan aplikasi email Kesuksesan TCP/IP • 1978 TCP terpecah menjadi TCP dan IP • 1983 ARPAnet meng-convert TCP/IP UNIX dirilis, sebuah kernel untuk TCP/IP Internet Activity Board (IAB) berdiri Lanjutan Milestone • 1984 Terciptanya Domain Name System (DNS) 19 • 1985 Symbolics.com domain pertama yang tercatat Pendiri ARPAnet • J.C.R Licklinder Distributor network dan pengalamatan • Robert Taylor Designer ruang kerja ARPA • Larry Roberts ArsitekturARPA • Barry Wessler Administrator ARPA 2.3.2 HTTP Hyper Text Transfer Protocol (HTTP) adalah serangkaian aturan untuk pertukaran file (teks, grafik, suara, video, dan lain sebagauinya) didalam World Wide Web melalui protokol TCP/IP yang merupakan protokol utama dalam pertukaran informasi di internet. Konsep dasar yang merupakan bagian dari HTTP termasuk ide bahwa di dalam sebuah file bisa terdapat referensi ke file lain dimana pemilihan file tersebut akan memicu terjadinya transfer request. Beberapa web server dalam memenuhi layanan HTML dan file-file lain yang dapat dilayaninya, menambahkan sebuah HTTP daemon, yaitu program yang didesain untuk menunggu HTTP request dan melayanirequest apabila terjadi. HTTP request ini berasala dari HTTP client seperti web browser. 20 2.3.3 World Wide Web (WWW) Menurut Jill Ellsworth (1997, p. 3) World Wide Web (WWW) merupakan sistem yang menyebabkan pertukaran data di Internet menjadi mudah dan efisien. Web terdiri atas dua komponen dasar Server Web dan Browser Web. Server Web adalah sebuah komputer dan perangkat lunak yang menyimpan dan mendistribusikan data ke komputer lain yang meminta data melalui Internet. Browser Web adalah sebuah komponen dan peranngkat lunak yang dijalankan pada komputer client yang meminta informasi dari Server Web dan menampilkan sesuai dengan file itu sendiri. Koneksi web ini menggunakan arsitektur client/server. 2.4. Web Based Application Web Based Application adalah sebuah aplikasi berbasis web, dimana setiap programnya dibututuhkan koneksi jaringan melalui HTTP, tanpa harus menggunakan memory pada perangkat keras. Web Based Application biasanya di jalankan menggunakan web browser. Web Based Application juga memungkinkan untuk membuat server pada client base, dimana sebagian kecil dari program diunduh ke perngkat pengguna, namun pengolahan dilakukan melalui Internet pada server eksternal. (http://www.techopedia.com/definition/26002/web-based-application) 2.4.1 Kelebihan dan Kekurang Web Based Application Keunggulan : 1. Kita dapat menjalankan aplikasi berbasis web dimanapun kapanpun tanpa harus melakukan penginstalan. 21 2. Terkait dengan isu lisensi (hak cipta), kita tidak memerlukan lisensi ketika menggunakan web-based application, sebab lisensi telah menjadi tanggung jawab dari web penyedia aplikasi. 3. Dapat dijalankan di system operasi manapun. Tidak perduli apakah kita menggunakan linux, windows, aplikasi berbasis web dapat dijalankan asalkan kita memiliki browser dan akses internet. 4. Dapat diakses lewat banyak media seperti: computer, handheld dan handphone yang sudah sesuai dengan standard WAP. 5. Tidak perlu spesifikasi computer yang tinggi untuk menggunakan aplikasi berbasis web ini, sebab di beberapa kasus, sebagian besar proses dilakukan di web server penyedia aplikasi berbasis web ini. Kekurangan: 1. Dibutuhkan koneksi intranet dan internet yang handal dan stabil, hal ini bertujuan agar pada saat aplikasi dijalankan akan berjalan dengan baik dan lancar. 2. Dibutuhkan sistem keamanan yang baik dikarenakan aplikasi dijalankan secara terpusat, sehingga apabila server di pusat down maka sistem aplikasi tidak bias berjalan. (http://www.aldo-expert.com/writers/pengertian-aplikasi-berbasisweb-dan-desktop.html) 2.5. Human Interface / Interaction Menurut schneiderman dan plaisant (2010.p 88) Delapan aturan emas tersebut adalah: • Usahakan agar konsistensi(Strive for Consistent) Urutan aksi yang konsisten diperlukan pada prompt, menu, layar bantu, Warna tampilan, kapitalisasi, huruf dan sebagainya juga harus konsisten 22 • Gunakan fitur universal (Cater to Universal Usability) Mengenali dan mengkategorikan kebutuhan pengguna yang beragam, Memfasilitasi transformasi konten. Menambahkan fitur untuk pemula seperti penjelasan dan untuk pemakai yang sudah ahli seperti shortcut dan faster pacing sehingga bisa diperkaya design interface dan meningkatkan kualitas sistem. • Tanggapan yang informatif (Offer Informative Feedback) Untuk setiap tindakan yang dilakukan pemakai, diharapkan adanya respon dari sistem. Untuk tindakan yang sering terjadi dan tidak membutuhkan banyak aksi, respon yang ada bisa di buat secara sederhana, sedangkan tindakan yang jarang dilakukan dan membutuhkan banyak aksi harus lebih di tonjolkan. • Design hasil dialog untuk penutup (Design Dialogs to Yeild Closure) Urutan aksi harus disusun ke dalam kelompok awal, tengah dan akhir suatu umpan balik yang informatif pada akhir pekerjaan sebaiknya dibuat untuk mengindikasikan bahwa pekerjaan telah selesai dan siap untuk dilanjutkan ke aksi berikutnya. • Mencegah Kesalahan (Prevent Error) Sebisa mungkin dibuat sistem yang tidak akan menghasilkan kesalahan yang serius jika digunakan oleh pemakai. Jika pemakai membuat kesalahan, sistem tersebut harus dapat mendeteksi kesalahan dan menawarkan instruksi yang sederhana, konstruktif, dan spesifik untuk perbaikan. • Aksi mudah untuk balik ke keadaan awal (Permit Easy Reversal of Action) Aksi yang telah dilakukan harus dapat dikembalikan ke keadaan awal. • Dukungan kontrol internal (Support Internal Locus of Control) Menjadikan pemakai sebagai pemberi aksi, bukan sebagai orang yang merespon aksi. 23 • Mengurangi beban jangka pendek memori (Reduce Shortterm Memory Load) Karena keterbatasan manusia dalam pemrosesan informasi pada ingantan jangka pendek, sebaiknya tampilan dibuat sederhana, beberapa halaman dijadikan satu, frekuensi pergerakan window dikurangi, dan harus ada waktu yang cukup untuk mempelajari kode-kode, singkatan, serta urutan aksi. Informasi seperti singkatan atau kode sebaiknya juga tersedia. 2.6 e – Education E-Education adalah singkatan dari Electronic Education, merupakan sistem pendidikan berbasis media elektronik, seperti radio dan televisi dan sekarang e-education adalah pendidikan yang menggunakan internet sebagai media utamanya. 2.7 IPA dan IPS IPA adalah suatu ilmu yang mempelajari tentang alam sekitar beserta isinya. Hal ini berarti IPA mempelajari semua benda yang ada di alam, peristiwa, dan gejala-gejala yang muncul di alam. Ilmu dapat diartikan sebagai suatu pengetahuan yang bersifat objektif. Jadi dari sisi istilah IPA adalah suatu pengetahuan yang bersifat objektif tentang alam sekitar beserta isinya. Menurut Somantri (Sapriya, 2008 : 9), IPS adalah penyederhanaan atau disiplin ilmu-ilmu sosial dan humaniora serta kegiatan dasar manusia yang diorganisasikan dan disajikan secara ilmiah dan pedagogis/psikologis untuk tujuan pendidikan. 2.7 Game Pada kamus Bahasa Indonesia juga jika diartikan dalam Bahasa Inggris arti Game itu sendiri adalah “Permainan.” Sebuah permainan adalah 24 sebuah sistem dimana pemain terlibat dalam konflik buatan, permainan terdapat peraturan yang bertujuan untuk membatasi perilaku pemain dan menentukan permainan. Tujuangame adalah pastinya untuk menghibur pemainnya, selain itu game juga dapat meningkatkan konsentrasi & membantu memecahkan masalah dengan tepat & cepat. 2.8 HTML5 HTML5 adalah sebuah standar baru HTML. Versi sebelumnya, HTML 4.01, dibuat pada tahun 1999. Internet saat ini sudah berubah sangat pesat. HTML5 didesign untuk memberikan apa yang diingankan mendekati segalanya tanpa memerlukan plug-ins lagi mencangkupi animasi hingga aplikasi, musik hingga film, dan bisa digunakan untuk membuat aplikasi rumit yang berjalan di web bowser (http://www.w3schools.com/html/html5_intro.asp). 2.9 MySQL Menurut Maslakowski (2000, p. 10) MySQL merupakan sebuah relasi manajemen database yang opensource, enterprse-level dan multithread. 25 Gambar 2. 9 MySql Gambar 2.9 Contoh gambar table pada MySQL (sumber : http://ngutekkomputer.files.wordpress.com/2013/06/join-mysql.jpg) MySQL dikembangkan oleh sebuah perusahaan kosultan di Swedia yang bernama Tcx. Mereka mebutuhkan sebuah sistem database yang cepat dan fleksibel sehingga mereka menciptakan MySQL yang pada dasarnya berbeda dengan DBMS (database management system) yang bernama MySQL. MySQL lebih dari sebuah database biasa yang merupakan sistem yang mengatur database yang ada. MySQL mengontrol siapa saja yang dapat menggunakan database dan bagaimana dimanipulasi. MySQL juga menyimpan catatan dari semua kegiatan dan secara terus menerus bekerja di background. 2.10 PHP Pengertian PHP menurut (Suryatiningsih, 2009, p. 141), "PHP adalah sebuah scripting yang menyatu dengan HTML dan dijalankan pada serverlide. Artinya semua Syntax yang diberikan akan sepenuhnya dijalankan pada server sedangkan yang dikirim ke browser hanya hasilnya saja. 26 2.11 CSS CSS (Cascading Style Sheet) adalah salah satu bahasa desain web (style sheet language) yang mengontrol format tampilan sebuah halaman web yang ditulis dengan menggunakan penanda(markup laguage. Biasanya CSS digunakan untuk mendesain sebuah halaman HTML dan XHTML, tetapi sekarang CSS bisa diaplikasikan untuk segala dokumenXML, termasuk SVG dan XUL bahkan ANDROID. CSS dibuat untuk memisahkan konten utamadengan tampilan dokumen yang meliputi layout, warna da font. Pemisahan ini dapat meningkatkann daya akses konten pada web, menyediakan lebih banyak fleksibilitas dan kontrol dalam spesifikasi darisebuah karakteristik dari sebuah tampilan, memungkinkan untuk membagi halaman untuk sebuah formatting dan mengurangi kerumitan dalam penulisan kode dan struktur dari konten, contohnya teknik tableless pada desain web. CSS juga memungkinkan sebuah halaman untuk ditampilkan dalam berbagai style dengan menggunakan metode pembawaan yang berbeda pula, sepertion-screen, in-print, by voice, dan lain-lain. Sementaraitu, pemilik konten web bisa menentukan link yang menghubungkan konten dengan file CSS. Tujuan utama CSS diciptakan untuk membedakan konten dari dokumen dan dari tampilan dokumen, dengan itu, pembuatan ataupun pemrograman ulang web akan lebih mudah dilakukan. Hal yang termasuk dalam desain web diantaranya adalah warna, ukura dan formatting. Dengan adanya CSS, konten dan desain web akan mudah dibedakan, jadi memungkinkan untuk melakukan pengulangan pada tampilan-tampilan tertentu dalam suatu web, sehingga akan memudahkan dalam membuat halaman web yang banyak, yang pada akhirnya dapat memangkas waktu pembuatan web. (sumber: http://jambispirit.com/berita-15.html) 27 2.12 JavaScript JavaScript adalah sekumpulan perintah khusus yang digunakan untuk membuat sebuah halaman web yang lebih responsif dan interaktif. JavaScript merupakan bahasa script yang dicantumkan pada sebuah halaman web dan dijalankan pada penjelajah web (web browser). JavaScript terutama terkenal karena penggunaannya di halaman web yang memberikan kemampuan tambahan pada HTML dengan mengizinkan pengeksekusian perintah di sisi user (penjelajah web), bukan di sisi server web. JavaScript bergantung kepada penjelajah web yang memanggil halaman web yang berisi script-script dari JavaScript yang terselip di dalam dokumen HTML. Script JavaScript yang dimasukkan di dalam file HTML harus dimasukkan di antara tag <script> dan </script>. JavaScript tidak memerlukan kompilator atau program khusus untuk menjalankannya karena JavaScript sendiri sudah termasuk di dalam penjelajah web tersebut. Secara fungsional, JavaScript digunakan untuk menyediakan akses script pada objek yang dibenamkan (embedded). Script ini dapat membuka halaman pop up, melakukan validasi pada form sebelum data dikirimkan ke server, mengubah kursor ketika melewati objek tertentu, berkomunikasi dengan server, dan banyak yang lainnya. Ada beberapa hal yang harus diperhatikan dalam penggunaan JavaScript, diantaranya JavaScript bersifat "case sensitive", yang artinya JavaScript membedakan huruf besar dan huruf kecil. Hal ini sama dengan bahasa pemrograman C++ dimana huruf "A" tidak sama dengan huruf "a". Sebagai contoh fungsi perintah var tidak boleh ditulis Var dan juga tidak boleh ditulis VAR (huruf besar semua), yang benar adalah var (huruf kecil semua). Perintah lain adalah new Date tidak boleh ditulis new date. Walaupun memiliki nama serupa, JavaScript hanya sedikit berhubungan dengan bahasa pemrograman Java, dengan kesamaan utamanya 28 adalah penggunaan sintaks C. Perbedaan mendasar antara keduanya adalah bahwa pemrograman Java dapat berjalan pada mesin virtual (video game, tablet) dan penjelajah web (Mozilla Firefox, Opera, Google Chrome, Safari, Internet Explorer) sedangkan JavaScript hanya dapat berjalan pada penjelajah web saja. Java merupakan bahasa pemrograman berorientasi objek murni sedangkan JavaScript digunakan secara prosedural. Java dikembangkan oleh Sun Microsystem sedangkan JavaScript dikembangkan oleh Netscape Inc. (sumber: http://destwentyo.blogspot.com/2013/02/pengertian-javascript.html)