8 BAB 2 LANDASAN TEORI 2.1 TEORI UMUM 2.1.1 Internet Menurut Brookshear (2012,p149) Internet adalah kumpulan dari jaringanjaringan yang terhubung. Jaringan-jaringan ini dibangun dan dirawat oleh organisasi yang disebut ISP (Internet Service Provider). ISP menyediakan internet bagi end systems merupakan pengguna-pengguna individu yang terhubung ke akses ISP. End systems dapat berupa komputer, telepon genggam, dan alat-alat lainnya. 2.1.2 World Wide Web World wide web adalah dokumen-dokumen yang mencakup keseluruhan dunia melalui jaringan Internet. World wide web terdiri dari web site-web site di seluruh dunia. Sebuah web site terdiri dari halaman-halaman web yang saling berhubungan erat. Sebuah halaman web merupakan dokumen hypertext. Hypertext merupakan dokumen berupa teks yang mengandung link, yang disebut hyperlink. Hyperlink merupakan penghubung dokumen yang satu ke dokumen yang lainnya. 9 Kategori pengakses dokumen hypertext atau web site dapat dibagi menjadi dua, yaitu sebagai pengguna atau sebagai server. Sebagai pengguna, web site dapat diakses melalui browser. Pengguna akan berhadapan dengan layar tatap muka untuk berselancar dalam web site tersebut. Dalam berselancar, pengguna melalui browser-nya akan melakukan permintaan halaman web dan server akan mengirimkan halaman web yang diminta tersebut. Pertukaran halaman web antara browser dan server ini menggunakan protocol yang disebut HTTP (Hypertext Transfer Protocol). Untuk memanggil web site pada world wide web, setiap web site memiliki alamat unik yang disebut URL (Uniform Resource Locator). Setiap URL mengandung informasi yang diperlukan browser untuk memanggil server dan meminta dokumen yang dimaksud. Oleh karena itu, pengguna harus mengetahui alamat URL untuk mengunjungi web site yang diinginkan. 2.1.3 Basisdata (Database) Menurut Connoly (2010,p65), Basisdata atau Database adalah kumpulan data yang berhubungan secara logikal, dan memiliki deskripsi data, yang dirancang untuk memenuhi kebutuhan informasi sebuah organisasi atau perusahaan. Entitas (entities), atribut (attributes), dan relasi (relationships) ditentukan ketika menganalisa kebutuhan informasi suatu organisasi. Database merupakan sebuah tempat penyimpanan besar yang dapat digunakan secara bersama-sama oleh banyak departemen dan pengguna. 10 Database tidak lagi merupakan kepunyaan satu departemen, tetapi merupakan sumber informasi bersama suatu organisasi. Terdapat 3 tahapan dalam perancangan database : - Perancangan basisdata konseptual (Conceptual database design) Perancangan basisdata konseptual merupakan suatu proses pembentukan model data dari informasi yang digunakan dalam organisasi. Perancangan basisdata konseptual terdiri dari beberapa langkah yaitu : 1. Identifikasi tipe entitas 2. Identifikasi tipe hubungan 3. Identifikasi atribut tiap entitas 4. Menentukan domain tiap atribut 5. Menentukan atribut candidate, primary ,dan alternate keys 6. Mempertimbangkan penggunaan enhanced modeling concepts (optional) 7. Memeriksa redudansi pada model 8. Validasi model data konseptual dengan transaksi user 9. Melakukan review model data konseptual dengan user Pada tahap perancangan ini, informasi-informasi kebutuhan user yang telah dikumpulkan akan diuji kebenaran dan kesesuaiannya. Hasil dari informasi-informasi yang sudah sesuai tersebut akan menjadi sumber informasi bagi tahap selanjutnya, yaitu perancangan logikal database. 11 - Perancangan basisdata logikal (Logical database design) Tahap selanjutnya setelah perancangan basisdata konseptual adalah perancangan basisdata logikal. Tujuan dari tahap ini adalah untuk mengubah model data konseptual menjadi model data logikal. Pada tahap ini juga dilakukan pemeriksaan kebenaran dan kelengkapan struktur model untuk mendukung transaksi – transaksi yang diperlukan. Perancangan basisdata logikal terdiri dari : 1. Penurunan relasi untuk model data logikal 2. Validasi relasi menggunakan normalisasi 3. Validasi relasi terhadap transaksi user 4. Memeriksa integrity constraints 5. Melakukan review model data logikal dengan user 6. Menggabungkan model data logikal lokal ke modal data global (optional) 7. Mempertimbangkan perkembangan di masa depan 8. Pemilihan database management system.Hasil dari tahap perancangan ini merupakan sumber informasi untuk tahap perancangan berikutnya, yaitu perancangan database fisik. Desainer database fisik akan membuat database fisik berdasarkan hasil perancangan logikal ini. - Perancangan basisdata fisik (Physical database design) Tujuan perancangan basisdata fisikal adalah untuk menghasilkan gambaran dari implementasi basisdata pada tempat penyimpanan 12 yang menjelaskan basis relasi, organisasi file, dan indeks yang ada untuk efesiensi data, dan menghubungkan beberapa integrity constraint serta tingkat keamanan. Perancangan basisdata fisikal terdiri dari beberapa langkah, yaitu : 1. Menerjemahkan model data logikal untuk DBMS yang digunakan 2. a. Merancang relasi dasar b. Merancang representasi derived data c. Merancang general constraints Merancang organisasi file dan indeks a. Menganalisa transaksi b. Memilih organisasi file c. Memilih indeks d. Memperkirakan kebutuhan disk space 3. Merancang user view 4. Merancang mekanisme keamanan Perancangan basisdata fisik merupakan tahap ketiga dan terakhir dari proses desain database. Desainer database fisik akan memutuskan bagaimana database akan diimplementasikan. Setelah tahap ini selesai, perancang akan mendapatkan database yang dituju. 13 2.1.4 DBMS (Database Management System) Menurut Connoly (2010,p66), DBMS adalah sebuah system software yang memungkinkan penggunanya untuk menciptakan, membuat, memelihara, dan mengontrol akses ke database. DBMS menyediakan fasilitas untuk penggunanya melakukan modifikasi data pada database melalui sebuah DML (Data Manipulation Language). DBMS juga menyediakan fasilitas DDL (Data Definition Language) untuk pengguna menciptakan database. Berikut ini beberapa statement pada Data Definition Language : - Create table : membuat tabel dan mendefinisikan tiap kolom. - Alter table : menghapus atau menambahkan kolom pada tabel. - Drop table : menghapus tabel dan semua data yang ada di dalamnya. - Create index : menambahkan index pada sebuah tabel. - Drop index : menghapus index pada sebuah tabel. Berikut ini beberapa operasi pada Data Manipulation Language : - Insert : memasukkan data ke dalam database. - Update : mengubah data pada database. - Select : memanggil data pada database. - Delete : menghapus data pada database. 14 2.1.5 ERD (Entity Relationship Diagram) Menurut Connoly (2010,p371) ERD adalah pendekatan dalam database yang dimulai dengan mengindentifikasi data penting yang dinamakan entitas dan relasi antar data yang ditampilkan dalam model, detil informasi pada entitas dan relasi adalah attributes. Terdapat 5 komponen ERD, yaitu : a. Entity Entitas (entity) adalah model individu dalam basis data yang mewakili sesuatu yang nyata. Misalnya, pelanggan, pengguna, pekerja, dan lainlain. Himpunan pelanggan merupakan himpunan entitas. Terdapat 2 klasifikasi entitas : - Entitas Kuat (Strong Entity) Entitas kuat adalah himpunan entitas yang keberadaannya independen atau tidak bergantung pada himpunan entitas lainnya. - Entitas Lemah (Weak Entity) Entitas lemah adalah himpunan entitas yang keberadaannya bergantung pada himpunan entitas lainnya. 15 b. Attribute Atribut (attribute) adalah karakteristik atau properti yang mendeskripsikan sebuah entitas. Misalnya, pelanggan mempunya atribut : id_pelanggan, nama_pelanggan, alamat_pelanggan. Terdapat beberapa klasifikasi atribut : - Simple and Composite Attribute o Simple Attribute Simple attribute adalah sebuah atribut yang hanya dapat diisi dengan satu komponen tunggal. Komponen tersebut adalah independen, tidak tergantung pada apapun. Contoh atribut simple ini adalah posisi, salary, gender. o Composite Attribute Composite attribute adalah sebuah atribut yang isinya terdiri dari beberapa komponen. Beberapa komponen tersebut adalah independen satu sama lain. Contoh atribut composite adalah alamat. Alamat dapat terdiri dari beberapa komponen seperti : nama jalan, nama kota, kode pos. - Single-Value dan Multi-Value Attributes o Single-Value Attribute Single-value attribute adalah sebuah atribut yang hanya dapat diisi oleh satu nilai saja. Kebanyakan atribut 16 merupakan atribut single-value. Contoh atribut singlevalue adalah userID. o Multi-Value Attribute Multi-value attribute adalah sebuah atribut yang dapat diisi oleh lebih dari satu nilai. Misalnya, atribut Hobi dapat diisi dengan memasak, menyanyi, otomotif. c. Relationship Relasi menunjukkan hubungan antara himpunan entitas yang satu dengan himpunan entitas yang lain. d. Key Key merupakan sebuah atribut yang unik, tidak ada 2 entitas yang memiliki key yang sama dalam sebuah himpunan entitas. Terdapat 4 macam key : - Candidate Key Candidate key adalah atribut-atribut unik yang dapat membedakan suatu entitas dari entitas lainnya. - Composite Key Composite key adalah sebuah candidate key yang terbentuk dari dua atribut atau lebih. - Primary Key Primary key adalah sebuah candidate key yang terpilih untuk membedakan suatu entitas dari entitas lainnya. 17 e. Multiplicity Multiplicity adalah jumlah entitas yang mungkin terdapat pada hubungan relasi entitas tersebut dengan entitas lainnya. Terdapat 3 macam multiplicity : - One to one (1:1) Menunjukkan hubungan relasi entitas yang hanya dapat berpartisipasi dengan satu entitas lainnya. - One to many (1:*) Menunjukkan hubungan relasi satu entitas yang dapat berpartisipasi dengan banyak entitas lainnya. - Many to many (*:*) Menunjukkan hubungan relasi banyak entitas yang dapat berpartisipasi dengan banyak entitas lainnya. 18 2.1.6 Multimedia Menurut Vaughan (2008, p1), Multimedia adalah perpaduan dari teks, suara, gambar, animasi, dan video yang disampaikan melalui komputer, atau media elektronik lainnya. Proyek multimedia yang memungkinkan pengguna untuk mengendalikan elemen-elemen multimedianya, apa dan kapan suatu informasi dimunculkan, disebut multimedia interaktif (interactive multimedia). Berikut adalah lima elemen multimedia : 1. Teks Dari semua element yang ada, teks mempunyai dampak yang besar pada kualitas multimedia interaktif. Umumnya, teks menyediakan informasi yang penting. 2. Suara Suara digunakan untuk menegaskan aksi pengguna seperti pindah halaman. Apabila digunakan secara tepat, suara dapat merangsang imajinasi pengguna. 3. Video Video merupakan penyajian informasi dengan menggunakan kemampuan visualisasi. Penyampaian informasi dengan menggunakan video sangat mudah dipahami. 19 4. Gambar Gambar memberikan sisi kreatif untuk menarik perhatian pengguna dengan menggunakan foto atau image. 2.1.7 Interaksi Manusia dan Komputer Menurut Shneiderman (2010,p88), interaksi manusia dan komputer adalah ilmu yang mempelajari tentang hubungan manusia dan komputer berupa disain perancangan tatap muka pengguna. Berdasarkan pengalaman para ahli, berikut ini adalah delapan aturan emas (eight golden rules) disain yang harus diterapkan pada sistem yang interaktif : 1. Berusaha untuk konsisten (strive for consistency). Hal – hal yang harus konsisten adalah urutan dalam melakukan aksi – aksi, penggunaan berbagai istilah, menu, layar bantuan, warna, layout dan font. 2. Menyediakan usability universal (provide usability universal). User baru biasanya menginginkan adanya petunjuk penggunaan software. Dengan adanya petunjuk penggunaan, siapa saja dapat belajar bagaimana cara menggunakan suatu software. Sedangkan user lama biasanya sudah mengerti cara penggunaan software dengan jelas. User lama biasanya menginginkan adanya shortcut untuk mempercepat user untuk melakukan aksi-aksinya. 3. Adanya umpan balik yang informatif(offer informative feedback). 20 Sistem harus memberikan umpan balik untuk setiap aksi yang dilakukan oleh user. Untuk aksi yang kecil, umpan baliknya harus sederhana. Untuk aksi yang besar, umpan baliknya harus lengkap. 4. Adanya dialog penutupan(design dialogs to yield closure). Memberikan pemberitahuan apabila suatu aksi selesai dilakukan agar user tidak bingung dan agar user tahu bahwa aplikasi telah siap untuk melakukan aksi lainnya. 5. Adanya pencegahan error dan penanganan error yang sederhana(offer error prevention and simple error handling). Membangun aplikasi sedemikian rupa sehingga user tidak dapat melakukan kesalahan yang fatal. Jika user melakukan sebuah kesalahan, sistem harus mampu mengetahuinya dan memberikan instruksi yang mudah dan sederhana agar user dapat memperbaiki kesalahannya. 6. Memungkinkan user untuk membatalkan aksi yang telah dilakukan(permit easy reversal of action). Sebisa mungkin aksi apapun dapat dibatalkan oleh user. Hal ini akan mengurangi kecemasan user apabila ia hendak melakukan sebuah aksi yang baru baginya. 21 7. Mendukung tempat kendali internal(support internal locus of control). Pengguna seharusnya mengontrol sistem, bukan sistem yang mengontrol pengguna. Kebutuhan informasi pengguna dan aksi – aksi yang mungkin diinginkan pengguna harus disediakan oleh sistem. 8. Mengurangi beban ingatan jangka pendek pengguna(reduce short-term memory load). Tampilan pada aplikasi harus tampil sederhana agar user tidak kesulitan setiap kali menggunakan aplikasi ini. Misalnya tingkat kedalaman menu yang tidak terlalu dalam. 2.1.8 Storyboard Menurut Mathis (2011,p97), pada awalnya storyboard adalah suatu teknik untuk membuat animasi pada film. Storyboard membagi sebuah animasi menjadi kerangka-kerangkanya yang penting. Storyboard mengubah gambar bergerak menjadi gambar-gambar komik. Dalam merancang layar tatap muka pengguna, storyboard digunakan untuk fungsi yang serupa, menggambarkan kerangka langkah-langkah pengguna. Storyboard memfokuskan pada interaksi pengguna dengan menggambarkan apa yang akan dilihat pengguna di setiap layar. Dimana dan bagaimana kejadian interaksi terjadi dijelaskan dengan menggunakan penjelasan singkat. 22 2.1.9 Model SDLC (Software Development Life Cycle) Waterfall Menurut Sommerville (2011,p7), Software Engineering merupakan sebuah disiplin ilmu yang bertujuan untuk menghasilkan software yang bebas dari error atau kesalahan. Software engineering mengupayakan bagaimana proses pembuatan software agar tidak melebihi budget, tidak melewati deadline, tidak terdapat error, dan memenuhi semua kebutuhan pelanggan. Model Waterfall merupakan model software engineering yang menggunakan pendekatan sistematis, tahapannya berurut dari analisis sistem, desain, pengkodean sistem, pengujian sistem, dan perawatan sistem. Langkah-langkah model waterfall didasari oleh perencanaan yang telah ditentukan dari awal. Berikut ini tahapan-tahapan yang dilalui dalam model waterfall : a. Menganalisa dan menentukan kebutuhan Semua fungsi dan tujuan sistem ditentukan lewat konsultasi dengan pengguna. Informasi tersebut kemudian dirumuskan menjadi spesifikasi sistem. b. Disain sistem Mendefinisikan keseluruhan arsitektur sistem dan membuat abstraksi sistem beserta relasi-relasinya. c. Menguji implementasi dan unit Pada tahapan ini, sistem telah berwujud program atau unit-unit program. Tahap ini memastikan semua unit program berfungsi dengan baik. 23 d. Menguji integrasi dan sistem Pada tahapan ini, setiap unit program telah disatukan dan keseluruhan sistem diuji. Setelah pengujian selesai, sistem siap dikirim kepada pengguna. e. Mengoperasi dan merawat sistem Menjalankan sistem dan membetulkan error yang tidak terdeteksi pada tahap-tahap sebelumnya. 2.1.10 Unified Modeling Language (UML) Menurut Britton (2005,p13), UML adalah sebuah himpunan teknik diagram, yang secara khusus disesuaikan untuk pengembangan berorientasi objek, dan telah menjadi standar untuk memodelkan sistem berorientasi objek. Pemodelan sistem merupakan cara untuk mendeskripsikan sistem yang sedang dikembangkan. Setiap model menggambarkan bagian atau aspek daripada sistem, seperti struktur penyimpanan data, atau bagaimana suatu operasi berjalan. Berikut ini adalah 4 diagram yang termasuk dalam komponen UML : a. Class Diagram Class diagram adalah pusat daripada analisis dan disain berorientasi objek. Class diagram mendefinisikan arsitektur software dan struktur setiap objek dalam software. Class diagram digunakan untuk memodelkan class-class dan relasi-relasinya. Relasi yang sering digambarkan dalam class diagram adalah asosiasi dan multiplicity. 24 Relasi asosiasi dan multiplicity menunjukkan bahwa terdapat interaksi diantara dua buah class. Relasi asosiasi digambarkan dengan menyambungkan sebuah garis pada dua buah class. Multiplicity menggambarkan banyaknya objek pada class yang dapat terlibat dengan satu objek pada class lainnya. Pada setiap asosiasi, multiplicity menampilkan derajat asosiasi pada dua class. Oleh karena itu, multiplicity harus didefinisikan pada kedua class. Terdapat beberapa jenis multiplicity : - Tepat satu : Hubungan yang menunjukkan bahwa sebuah class hanya dapat berhubungan dengan satu objek pada suatu class lainnya. Misalnya, satu karyawan hanya dapat bekerja untuk satu departemen. - Nol atau satu : Hubungan yang menunjukkan bahwa sebuah class dapat berhubungan dengan nol atau satu objek pada suatu class lainnya. Misalnya, satu karyawan dapat memiliki nol atau satu suami/isteri. - Nol atau banyak : Hubungan yang menunjukkan bahwa sebuah class dapat berhubungan dengan nol atau banyak objek pada suatu class lainnya. Misalnya, satu pelanggan dapat memiliki nol atau banyak pesanan. 25 - Satu atau banyak : Hubungan yang menunjukkan bahwa sebuah class dapat berhubungan dengan satu atau banyak objek pada suatu class lainnya. Misalnya, sebuah hotel dapat memiliki satu atau banyak kamar. - Jarak tertentu : Hubungan yang menunjukkan bahwa sebuah class dapat berhubungan dengan sejumlah tertentu objek pada suatu class lainnya. Misalnya, sebuah grup dapat beranggotakan tiga sampai lima orang. Agregasi adalah relasi yang menggambarkan tipe ketergantungan suatu class pada class lainnya. Terdapat dua jenis relasi agregasi, yaitu relasi komposisi, dan relasi biasa. - Relasi agregasi komposisi merupakan hubungan relasi yang sangat kuat, dimana keseluruhan objek merupakan bagian dari objek lainnya. Misalnya sebuah buku memiliki beberapa bab, maka keseluruhan bab tersebut adalah bagian dari buku tersebut. Relasi komposisi digambarkan dengan sebuah wajik yang berisi warna hitam penuh. - Relasi agregasi biasa merupakan hubungan relasi yang lemah, dimana kedua class tidak banyak terikat satu sama lain. Pada relasi ini, apabila class yang satu dihancurkan, class lainnya masih memiliki arti. Relasi ini digambarkan dengan sebuah wajik yang berisi warna putih. 26 b. Use Case Diagram Use case memodelkan fungsionalitas sistem dari pandangan user. Use case digunakan dalam tahap spesifikasi kebutuhan user dalam proses pengembangan software. Use case diagram memodelkan himpunan masalah pada software secara grafis menggunakan 4 konsep, yaitu use case, actor, relasi usecase, dan batasan. Berikut adalah Tabel 2.1 mengenai penjelasan keempat konsep tersebut : Tabel 2.1 Tabel Empat Konsep Usecase Use Case : sebuah bentuk elips yang dilabelkan nama dari sebuah use case. Biasanya nama use case diawali dengan kata kerja untuk menegaskan bahwa use case tersebut merepresentasikan sebuah proses. Actor : sebuah figur batang yang dilabelkan nama dari suatu actor/pelaku. Nama dari actor tersebut haruslah mudah untuk diidentifikasi, misalnya Resepsionis, Administrator. merepresentasikan Figur pelaku batang yang juga bukan dapat manusia, misalnya sebuah organisasi, sistem komputer. Relasi Use Case : sebuah garis yang menghubungkan actor ke use case. Garis ini menunjukkan aktor-aktor yang berasosiasi dengan use case-use case. Relasi ini dikenal juga sebagai asosiasi komunikasi. 27 Batasan : sebuah garis yang digambarkan di sekitar use case-use case untuk memisahkan mereka dari actor-actor. c. Activity Diagram Activity diagram digunakan untuk memodelkan detail-detail daripada sebuah proses yang kompleks. Activity diagram merupakan cara yang efektif dalam merepresentasikan tahapan-tahapan pada sebuah proses. Activity diagram terdiri dari state dan transisi-transisinya. Semua state pada activity diagram merupakan aktivitas-aktivitas dan transisi-transisi diantara mereka dipicu oleh telah selesainya sebuah aktivitas. Berikut ini adalah Tabel 2.2 yang menjelaskan komponen-komponen activity diagram. Tabel 2.2 Komponen-Komponen Activity Diagram Start State : Merupakan awal sebuah proses. Hanya terdapat 1 pada setiap activity diagram. Activity : Merupakan aktivitas pada sebuah proses. Transition : Merupakan transisi dari satu aktivitas ke aktivitas lainnya. Diamond : Merupakan percabangan yang bergantung pada kondisi tertentu yang terpenuhi. 28 Stop State : Merupakan akhir dari proses. Boleh terdapat lebih dari 1 pada diagram yang sama. d. Sequence Diagram Sequence diagram menampilkan aliran kontrol diantara objek-objek pada saat eksekusi sebuah skenario dengan jelas dan sederhana. Sequence diagram menunjukkan pertukaran pesan diantara objek-objek dalam langkah-langkah eksekusi sebuah kejadian use case. Berikut ini adalah Tabel 2.3 yang menjelaskan komponen-komponen sequence diagram. Tabel 2.3 Komponen-Komponen Sequence Diagram Actor : Merupakan actor yang terlibat dalam use case yang bersangkutan. Object Lifeline : Menunjukkan durasi kehidupan objek pada skenario. Send Arrow : Anak panah dari object lifeline pengirim ke object lifeline penerima berlabelkan pesan yang dikirim. Return Arrow : Anak panah berlabelkan pesan balasan yang dikirim balik ke pengirim pesan. 29 2.2 TEORI KHUSUS 2.2.1 PHP PHP adalah bahasa server-side scripting yang didesain secara khusus untuk web. Di dalam sebuah halaman HTML, anda dapat menyisipkan kode PHP yang akan dieksekusi setiap kali halaman tersebut diakses. Kode PHP akan diterjemahkan di dalam web server menjadi kode HTML yang kemudian akan disajikan pada user. Bahasa scripting PHP memungkinkan penggunanya untuk membangun web menggunakan arsitektur MVC (Model-View-Controller). Berikut ini adalah penjelasan mengenai arsitektur MVC : a. Model Dalam arsitektur MVC, model berperan dalam operasi data pada sistem. Setiap kali ada proses yang berhubungan dengan data, model akan menjadi perantara antara sistem dan database. b. View View berperan sebagai penyedia layar tatap muka pengguna. Isi dari view hanya berupa disain halaman web. 30 c. Controller Controller bertugas untuk menjalankan setiap proses atau function yang terdapat pada sistem. Controller menentukan jalannya setiap proses logika pada sistem. 2.2.2 Framework Framework (kerangka kerja) merupakan kumpulan program atau fungsi yang sudah diatur sedemikan rupa, sehingga seorang web programmer dapat menggunakan fungsi – fungsi tersebut untuk membangun aplikasi yang diinginkan tanpa harus memulai coding dari awal. Framework digunakan untuk memudahkan dan meringankan dalam membangun sebuah website. Pengguna tinggal memanggil berbagai fungsi yang ada dalam class – class library, helpers, plugins, yang telah disediakan oleh framework tersebut tanpa membuat sendiri fungsi – fungsi tersebut dari awal. Penggunaan framework akan memudahkan developer karena lebih memfokuskan pada pokok persoalan. Aspek penunjang seperti koneksi database, form validation, dan security umumnya telah disediakan oleh framework. Penggunaan framework juga akan bermanfaat, terutama ketika membangun aplikasi yang besar, terutama melibatkan banyak developer. 31 Dengan framework ini akan mempunyai aturan yang jelas dan kerjasama akan semakin mudah. Membangun aplikasi kecil pun tidak masalah dengan menggunakan framework karena lama kelamaan aplikasi keci tersebut akan berkembang menjadi besar seiring dengan kebutuhan pengguna. Alasan seorang programmer menggunakan framework adalah : 1. Efektivitas pemrograman. Dengan menggunakan framework, beban kerja programmer akan lebih ringan, karena akan lebih memfokuskan pada alur proses aplikasi yang akan dibuat. Dengan demika proses pekerjaan aplikasi tersebut akan cepat dan tepat waktu. 2. Lebih terstruktur. Akan berguna pada pengembangan aplikasi yang berskala besar, semakin banyak kode program yang dibuat,maka akan semakin sulit melakukan debugging jika terjadi error atau ketika program tidak jalan. Dengan penggunaan framework, program akan terstruktur sehingga dapat memudahkan dalam menelusuri dan mencari bagian kode program yang perlu diperbaiki. 3. Memudahkan dalam pemeliharaan program. Hal ini bermanfaat ketika melibatkan banyak anggota tim programmer, terutama pada proyek besar. Dengan framework, standarisasi kode program akan lebih mudah sehingga solusi yang 32 diberikan oleh seorang anggota programmer, akan dapat dimengerti oleh anggota yang lain. 2.2.3 MySQL MySQL adalah sebuah RDBMS (relational database management system) yang menghubungkan PHP dan servernya untuk bekerja sama mengakses dan menampilkan data dalam format yang mudah dibaca oleh pengguna. MySQL dirancang untuk menanggung jumlah data yang besar dan mengerjakan operasi query yang kompleks. Sebagai sebuah RDBMS, MySQL dapat menggabungkan beberapa tabel. Karena dapat menanggung jumlah data yang besar, MySQL adalah pilihan yang paling tepat untuk menyajikan data melalui internet. Jika digunakan dengan tepat MySQL dapat menjadi sangat handal, penarikan data dari banyak tabel dapat dilakukan hanya dalam satu query. Selain itu MySQL juga lebih mudah diatur daripada basis data open source lainnya. 2.2.4 TOEFL (Test of English as a Foreign Language) TOEFL merupakan suatu cara dalam upaya mengukur tingkat kefasihan berbahasa Inggris seseorang yang bukan merupakan pengguna asli (native speaker) bahasa Inggris. Nilai uijan TOEFL berskala dari 310 hingga 677 poin. Nilai tersebut merupakan gabungan dari semua aspek yang diukur, yaitu Listening, Strucutre, Reading, dan Writing. Berikut ini adalah penjelasannya : 33 a. Listening Bagian Listening menilai kemampuan memahami dialog percakapan bahasa Inggris. Pada bagian ini, disediakan waktu 35 menit untuk 50 soal pertanyaan. Rentang nilai pada bagian ini adalah 31 sampai 68. b. Structure Bagian Structure menilai kemampuan grammar bahasa Inggris yang tepat. Pada bagian ini, disediakan waktu 25 menit untuk 40 soal pertanyaan. Rentang nilai pada bagian ini adalah 31 sampai 68. c. Reading Bagian Reading menilai kemampuan memahami bahasa Inggris yang tertulis. Pada bagian ini, disediakan waktu 55 menit untuk 50 soal pertanyaan. Rentang nilai pada bagian ini adalah 31 sampai 67. d. Writing Bagian Writing menilai kemampuan dalam menghasilkan tulisan berbahasa Inggris yang bermakna, dapat dipahami dan tepat. Pada bagian ini, disediakan waktu 30 menit untuk satu soal essay. Rentang nilai pada bagian ini adalah satu sampai enam. 34 2.2.5 Perangkat Ajar Menurut Kearsley (2003), perangkat ajar adalah penyampaian materi dalam bentuk instruksi, tutorial, dan latihan yang dibantu oleh komputer. Tujuan penggunaan perangkat ajar adalah meningkatkan semangat belajar siswa dan menghemat waktu belajar. Berikut ini adalah jenis jenis perangkat ajar : a. Instruksi Bagian instruksi memberikan petunjuk penggunaan aplikasi kepada pengguna. Apa yang selanjutnya harus pengguna lakukan dijelaskan pada bagian ini. b. Tutorial Merupakan sebuah penyajian informasi yang memberikan konsep baru melalui media monitor dan pengguna diberikan kesempatan untuk berinteraksi dengan informasi atau konsep baru tersebut. Aplikasi itu sendiri berperan sebagai guru. c. Latihan Bagian yang menampilkan masalah untuk mengevaluasi pemahaman pengguna. Setelah pengguna menyelesaikan masalah, perangkat ajar akan memberikan umpan balik. 35 2.2.6 CodeIgniter CodeIgniter (selanjutnya disebut CI) adalah sebuah framework yang digunakan untuk membuat sebuah aplikasi berbasis web yang disusun dengan menggunakan bahasa PHP. Di dalam CI ini terdapat beberapa macam kelas yang berbentuk library dan helper yang berfungsi untuk membantu pemrogram dalam mengembangkan aplikasinya. Kelebihan framework CodeIgniter adalah : 1. Berukuran kecil Hanya dengan sekitar 4MB, seorang pengembang pemula sudah bias menggunakan CI yang di dalamnya terdapat berbagai fitur andal. Beberapa fitur yang ada dalam CI adalah database access, session control, manage cookies, security dengan xss filtering, bantuan untuk mengunggah file, dan berbagai fitur lain 2. Sangat cepat Kecepatan CI dalam hal eksekusi file sebagai framework untuk membangun aplikasi berskala enterprise. 3. Sederhana (simple) Sederhana dari sisi sintaks yang digunakan dan dari sisi alur penyusunan program. 36 4. Bisa langsung digunakan Penggunaannya hanya tinggal mengunduh, mengekstrak file, dan meletakkan pada folder kerja web server. 5. Bisa dikombinasikan dengan beberapa aplikasi. 6. Kode program rapi Kode program akan menjadi sangat rapi dikarenakan penggunaan system MVC mengelompokkan kode sesuai dengan fungsinya masing – masing. Kode yang memudahkan dalam pencarian error ketika muncul bug. Cara kerja framework CI : Gambar 2.1 Cara kerja framework CodeIgniter Gambar 2.1 merupakan diagram cara kerja framework CI dengan penjelasan seperti berikut : 1. File index.php sebagai file yang bertindak sebagai control halaman depan. File ini menginisialisasi semua resource yang diperlukan untuk menjalankan CI atau halaman situs. 37 2. Routing memeriksa setiap request HTTP dan melakukan apa yang perlu dilakukan terhadap request tersebut, tergantung rule yang ada. 3. Apabila terdapat Cache maka system akan mengirimkan cache tersebut secara langsung ke browser tanpa harus melewati birokrasi sistem secara normal. 4. Sebelum membuka Application Controller, setiap request HTTP dan data yang dikirimkan oleh pengguna maka akan disaring terlebih dahulu melalui sebuah sistem pengamanan. 5. Controller kemudian membuat seluruh resource, baik itu Model, library, maupun Helper yang digunakan untuk memproses request atau data yang dikirimkan. 6. Tahapan terakhir adalah View, berfungsi memproses hasil olahan Controller dan mengirimkannya ke web browser. Apabila sistem cache diaktifkan maka View akan di-cache terlebih dahulu sebelum muncul ke browser. 2.2.7 JavaScript JavaScript adalah sebuah bahasa scripting yang diimplementasikan pada web browser dalam rangka membuat halaman layar pengguna yang 38 interaktif, dan membuat website yang dinamis. JavaScript bersifat opensource sehingga terdapat banyak modul yang tersedia untuk digunakan dan dimodifikasi sesuai kebutuhan. 2.2.8 jQuery jQuery merupakan sebuah library Javascript. Hal itu berrarti, jQuery merupakan kumpulan koleksi kode yang dapat digunakan berulang-ulang untuk menyelesaikan permasalahan yang serupa, jQuery adalah sebuah proyek open source, banyak terdapat kode-kode fungsi yang tersebar dan dapat digunakan oleh siapa saja. Karena para web developer seringkali menghadapi permasalahan yang serupa, jQuery memiliki script library yang sangat banyak dan dapat digunakan secara cuma-cuma. Misalnya, script untuk membuat tooltip, slideshow, menu drop-down, dan lain-lain. 2.2.9 jQuery UI jQuery UI adalah sebuah himpunan plug-in yang menambahkan banyak fungsi-fungsi ke dalam library inti jQuery. jQuery UI merupakan kontrol visual pada jQuery. Beberapa komponen yang tersedia dalam jQuery UI adalah accordion menu, tab, kalender, bar progres, icon, dan lain-lain. 39 2.2.10 Ajax Ajax adalah singkatan dari Asynchronous Javascript and XML. Ajax memungkinkan Javascript melakukan request ke server web secara asinkron, atau tanpa harus melakukan refresh halaman web. Penggunaan Ajax memungkinkan aplikasi website untuk mengirim informasi ke server, server memproses informasi, dan mengubah aspek pada halaman website secara dinamis tanpa pengguna berpindah halaman.