BAB II LANDASAN TEORI 2.1 Bimbingan Menurut Pangaribuan (2005) mengintroduksi pendapat bebrapa ahli yang menyatakan bahwa bimbingan ialah pertolongan yang diberikan oleh seseorang kepada orang lain dalam membuat pilihan, mengadakan penyesuaian, dan dalam memecahkan masalah. Bimbingan biasanya dipakai dalam dunia pendidikan untuk pertolongan yang diberikan kepada pelajar dalam menyelesaikan masalah – masalah yang berada diluar situasi mengajar dikelas. Di jaman teknologi seperti sekarang ini, bukan perkara yang sulit untuk melakukan bimbingan. Dengan memanfaatkan internet, para mahasiswa dan pembimbing tugas akhir dapat melakukan bimbingan dengan mudah. Dengan cara membuat sebuah website yang berguna sebagai tempat penghubung antara mahasiswa dan dosen pembimbing tugas akhir. 2.2 Codeigniter Codeigniter adalah sebuah aplikasi open source berbentuk framework dengan model MVC (Models, Views, Controller) untuk membangun website dinamis dengan menggunakan PHP. Codeigniter memudahkan developer untuk membuat aplikasi web dengan cepat dan mudah dibandingan dengan membuatnya dari awal. 2.3 Framework Framework merupakan sekumpulan perintah atau fungsi dasar yang dapat membantu dalam menyelesaikan proses-proses yang lebih kompleks menangani berbagai masalah dalam pemrograman seperti koneksi database, pemanggilan variable, dll. Sehingga developer dapat lebih fokus dan lebih cepat membangun aplikasi. Secara sederhana dapat dijelaskan bahwa framework adalah kumpulan fungsi-fungsi yang sudah ada sehingga programmer tidak perlu lagi membuat fungsi- 6 7 fungsi (kumpulan library) dari awal, yang tentunya hanya dengan memanggil kumpulan library yang terdapat didalam framework tersebut. Fungsi - fungsi standar yang telah tersedia dalam suatu framework adalah fungsi enkripsi, email, SEO, session, security, kalender, bahasa, manipulasi gambar, grafik, tabel bergaya zebra, validasi, upload, captcha, proteksi terhadap XSS (XSS filtering), template, kompresi, XML dan lain - lain. 2.3.1 2.4 Macam-macam framework: Cake PHP CodeIgniter Symfony Zend Kohana Dll. PSPad Editor PSPad editor adalah editor programmer dengan beberapa sintaks penyorotan profil. Muncul dengan hex editor, CP konfersi, perbedaan teks, makro, template pilihan periksa ejaan, auto completion, kode Explorer, dan banyak lagi. Program ini adalah pra-dikonfigurasi untuk bahasa pemrograman yang popular (VB,SQL, HTML, PHP, PYTHON, dll ) dan anda dapat mengatur penyesuaian pengaturan sintaks. PSPad termasuk beberapa alat tambahan yang sangat berguna untuk mengedit HTML (kompres, kode format) dan juga mengintegrasikan TopStyle Lite dan tidyHTML. Program ini dapat digunakan sebagai IDE untuk compiler apapun. Fitur tambahan termasuk dukungan untuk proyek, browsing file, cara pintas kustom, built in FTP klien untuk mengedit file pada server dan banyak lagi. 2.5 PHP Hypertext Preprocessor (PHP) 8 PHP digunakan sebagai bahasa script server-side dalam pengembangan web yang disisipkan pada dokumen HTML. 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. Beberapa pesaing dari PHP ialah Perl, Microsoft Active Server Pages (ASP), Java Server Pages (JSP), dan Allaire Cold Fusion. Dalam perbandingan dengan produk-produk tersebut, PHP memiliki beberapa kekuatan termasuk diantaranya ialah: 1. Performa yang tinggi PHP sangat efisien. Menggunakan server yang tidak mahal, dapat melayani berjuta-juta permintaan setiap harinya. 2. Integrasi Database PHP memiliki koneksi yang mengijinkan penggunaan berbagai sistem database. Selain dari koneksi ke MySQL, PHP juga dapat melakukan koneksi langsung ke database PostgreSQL, Msql, Oracle, dbm, filePro, Hyperwave, Informix, InterBase dan Sybase. Menggunakan Open Database Connectivity Standart (ODBC), PHP dapat melakukan koneksi ke banyak database yang disediakan oleh driver ODBC, termasuk produk Microsoft. 3. Library yang built-in Karena PHP dirancang untuk digunakan pada web, PHP memiliki banyak fungsi yang telah dibangun untuk mendukung berbagai tugas yang berguna pada web. Dengan PHP, kita dapat menampilkan gambar GIF, terkoneksi dengan layanan jaringan yang lain, mengirim email, dan membuat file PDF. 4. Portabilitas PHP dapat digunakan pada banyak sistem informasi. Kode PHP dapat ditulis pada sistem operasi UNIX yang gratis seperti LIBUX dan FreeBSD, system operasi UNIX yang komersial seperti Solaris dan IRIX atau berbagai versi di Microsoft Windows. 9 5. Ketersediaan Source Code Source code PHP dapat diakses tidak seperti produk komersial yang source code-nya tertutup, jika ada sesuatu yang hendak dimodifikasi atau ditambahkan pada PHP, dapat dilakukan secara langsung dan gratis. Berikut contoh script dari PHP form untuk login : <? if(!empty($sesi)) { echo"Anda sudah login $sesi"; } else { ?> <html> <head> <title>Form Login</title> </head> <body> <table width="200" border="0" cellspacing="0" cellpadding="0"> <form action="login_proses.php" method="post"> <tr> <td>Username</td> <td>:</td> <td><input type="text" name="username"></td> </tr> <tr> <td>Password</td> <td>:</td> <td><input type="password" name="password"></td> </tr> 10 <tr> <td>&nbsp;</td> <td>&nbsp;</td> <td><input type="submit" name="Submit" value="Login"></td> </tr> </form> </table> </body> </html> <? }?> Gambar 2.1 Contoh script PHP untuk login Hasil tampilannya : Gambar 2.2 Contoh tampilan login dengan php 2.6 Sejarah Singkat PHP Pada awalnya PHP merupakan kependekan dari Personal Home Page (Situs Personal). PHP pertama kali dibuat oleh Rasmus Lerdorf pada tahun 1995. Pada waktu itu PHP masih bernama FI (Form Interpreted), yang wujudnya berupa sekumpulan script yang digunakan untuk mengolah data form dari web. Selanjutnya Rasmus merilis kode sumber tersebut untuk umum dan menamakannya PHP/FI. Dengan perilisan kode sumber ini menjadi open source, maka banyak programmer yang tertarik untuk ikut mengembangkan PHP. 11 Pada November 1997, dirilis PHP/FI 2.0. pada rilis ini interpreter PHP sudah diimplementasikan dalam program C. Dalam rilis ini disertakan juga modul- modul ekstensi yang meningkatkan kemampuan PHP/FI secara signifikan. Pada tahun 1997, sebuah perusahaan bernama Zend menulis ulang interpreter PHP menjadi lebih bersih, lebih baik, dan lebih cepat. Kemudian pada Juni1998, perusahaan tersebut merilis interpreter baru untuk PHP dan meresmikan rilis tersebut sebagai PHP 3.0 dan singkatan dirubah menjadi akronim berulang PHP : Hypertext Preprocessing. Pada pertengahan tahun 1999, Zend merilis interpreter PHP baru dan rilis tersebut dikenal dengan PHP 4.0. PHP 4.0 adalah versi PHP yang paling banyak dipakai pada awal abad ke-21. Versi ini banyak dipakai disebabkan kemampuannya untuk membangun aplikasi web kompleks tetapi tetap memiliki kecepatan dan stabilitas yang tinggi. Pada Juni 2004, Zend merilis PHP 5.0. Dalam versi ini, inti dari interpreter PHP mengalami perubahan besar. Versi ini juga memasukkan model pemograman berorientasi objek ke dalam PHP untuk menjawab perkembangan bahasa pemograman ke arah paradigma berorientasi objek. 2.7 Pengenalan Framework Codeigniter Menurut Saputra (2011:2) Codeigniter merupakan framework yang diklaim memiliki eksekusi tercepat dibandingkan dengan framework lainnya. CodeIgniter bersifat open source dan menggunakan model basis MVC (Model View Controller), yang merupakan model konsep modern framework yang digunakan saat ini. Framework sendiri dapat diartikan sebagai suatu kertas / kerangka kerja dalam aplikasi web yang didalammnya memiliki suatu potongan – potongan program yang disusun (modul), sehingga programmer tidak perlu membuat kode dari nol, karena framework telah menyediakannya. Yang harus kita lakukan adalah mengerti, melakukan, dan menerapkannya saja. Codeigniter menawarkan banyak library yang dapat kita gunakan seperti Benchmark yang digunakan untuk menghitung penggunaan memori, Calender yang digunakan untuk membuat kalender, Cart yang dapat digunakan untuk membuat cart 12 pada toko online, dan masih banyak lagi. Codeigniter dibuat pertama kali oleh Rick Ellis yang merupakan CEO dari Ellislab. Ellislab merupakan sebuah perusahaan yang memproduksi CMS – CMS handal. Codeigniter dirilis pertama kali pada 28 Februari 2006. Versi terakhir 2.1.3 yang dirilis pada 8 Oktober 2012. Beberapa kelebihan Framework Codeigniter antara lain : 1) Berukuran kecil Hanya dengan sekitar 4MB, seorang pengembang pemula sudah bisa menggunakan Codeigniter yang di dalamnya terdapat berbagai fitur andal yang bisa digunakan untuk membangun sebuah aplikasi. Beberapa fitur yang ada dalam Codeigniter adalah database access, session control, manage cookies, security dengan xss filtering, bantuan untuk mengunggah file, dan berbagai fitur lain yang sungguh luar biasa. 2) Sangat cepat Sangat cepat disini dalam hal eksekusi file. Kecepatan ini memungkinkan Codeigniter digunakan sebagai framework untuk membangun aplikasi berskala enterprise. 3) Sederhana (simple) Sederhana dari sisi sintaks yang digunakan maupun sisi alur penyusunan program. 4) Bisa langsung digunakan Setiap orang akan bisa menggunakan Codeigniter. Hanya tinggal mengunduh, mengekstrak file, dan meletakkan pada folder kerja web server yang digunakan (htdocs atau public html). 5) Bisa dikombinasikan dengan beberapa aplikasi dengan cara yang sangat mudah. 6) Kode program rapi Kode program akan menjadi sangat rapi dikarenakan penggunaan sistem MVC yang mengelompokkan kode sesuai dengan fungsinya masing – masing kode yang rapi memudahkan dalam pencarian error ketika muncul bug. 13 2.7.1 Struktur Direktori Kerja Codeigniter Codeigniter merupakan PHP Framework yang berisi kumpulan file PHP dan folder, javascript, CSS serta file lainnya yang memiliki aturan tertentu untuk penggunaannya, dan menyediakan Library serta Helper yang dapat digunakan secara langsung. Folder Codeigniter ini diletakkan di bawah folder direktori web server yang digunakan. Struktur file dalam Codeigniter terlihat seperti pada gambar berikut : Gambar 2.3 Struktur file codeigniter 14 Penulis menggunakan Codeigniter versi 1.7.2. Terdapat dua folder utama Codeigniter, yaitu system, dan user_guide. Dari kedua folder tersebut, yang perlu diperhatikan lebih adalah folder ( system/application ) karena disinilah direktori kerja Codeigniter dan disini pula tempat programmer meletakkan semua file yang berkaitan dengan aplikasi yang akan dikembangkan. Dalam folder system/application ini terdapat beberapa subfolder dengan peran masing – masing. Beberapa subfolder inilah yang nantinya digunakan untuk mengelompokkan file aplikasi yang akan dibuat sesuai dengan fungsinya. Dari sekian banyak subfolder yang ada, terlebih dahulu fokuskan perhatian pada empat subfolder utama, yaitu : Config, digunakan untuk menyimpan berbagai macam file konfigurasi sistem aplikasi yang akan dibuat. Controllers, digunakan untuk meletakkan controller sistem aplikasi yang akan dibuat. Models, digunakan untuk meletakkan file model sistem aplikasi yang akan dibuat. Views, digunakan untuk meletakkan file view sistem aplikasi yang akan dibuat. 2.7.2 Mengenal Konsep MVC (Model View Controller) MVC memiliki kepanjangan dari Model View Controller, merupakan alur kerja dari Framework CodeIgniter. Dengan konsep MVC ini, segala macam logika dan layout telah dipisahkan, sehingga si programmer dan designer dapat mengerjakan masing – masing tugasnya secara fokus. Konsep model MVC juga dapat menuntun para pembuat program untuk membangun web dengan cara yang terstruktur. Dilihat dari cara kerjanya, Framework CodeIgniter menekankan pada MVC. Untuk alurnya dapat dilihat pada gambar 2.4 15 Gambar 2.4 Konsep MVC Model, digunakan sebagai presentasi database. Berbeda dengan Framework CakePHP. Dalam CodeIgniter, segala macam perintah – perintah query SQL diletakkan dalam file model, seperti insert, edit, delete, dan select. Karena semuanya itu berhubungan dengan database. Controller, digunakan sebagai pengendali (control) antara view dan model melalui permintaan dari HTTP. View, suatu halaman khusus yang digunakan untuk menyajikan informasi kepada client. Secara definisi, segala macam permintaan yang dikelola oleh controller dan model, akan dikembalikan kepada view sesuai hasil permintaan yang di-request 2.7.3 Perbedaan Antara Pemograman PHP Murni dengan Framework PHP Perbedaan dari kedua teknik pemograman tersebut terdapat pada penanganan file dan kode PHP. Pada pemograman dengan teknik PHP murni programmer tidak membuat pengelompokkan intruksi atau kode pada sebuah Class sehingga akan menambah waktu pekerjaan penulisan kode program. Sedangkan pada PHP Framework penulisan kode program PHP dibuat berbasis Class dimana dapat digunakan kembali untuk pembuatan aplikasi yang lain. 16 2.7.4 Pustaka pada Framework Codeigniter Pustaka pada Framework CodeIgniter dapat bermanfaat sebagai alat bantu untuk mempermudah dan mempercepat pembuatan sebuah aplikasi. Pustaka CART Pustaka CART merupakan sebuah kelas yang dibuat khusus untuk membantu pemogram dalam membuat aplikasi e-commerce atau aplikasi lain yang menggunakan sistem keranjang belanja. Namun demikian, pustaka CART hanya menangani proses penyimpanan produk ke dalam keranjang belanja dan tidak menangani proses lainnya semacam shipping, penggunaan kartu kredit, pembayaran, dan proses lainnya. Kelas CART ini memiliki lima macam reserved index yang akan digunakan pada fungsi – fungsi lain. Indeks array tersebut antara lain : 1. Id , merupakan id produk. 2. Qty , setiap produk harus memiliki nilai kuantitas. 3. Price , setiap produk tertentu harus memiliki harga. 4. Name , setiap produk harus memiliki nama. 5. Options , merupakan varian produk. Dari kelima indeks di atas, empat yang pertama (id, qty, price, dan name) merupakan indeks wajib yang harus ada. Jika salah satu indeks tersebut tidak ada, maka data tidak akan disimpan ke dalam keranjang belanja, sedangkan indeks options bersifat opsional. 2.8 Pengertian MySQL Menurut Kadir (2003 : 101) SQL merupakan kependekan dari Structured Query Language. SQL digunakan untuk berkomunikasi dengan sebuah database, sesuai dengan ANSI, SQL merupakan bahasa standar untuk system manajemen database relasional. Statement SQL digunakan untuk melakukan update terhadap database, atau mengambil data dari sebuah database. Suatu database memungkinkan kita untuk melakukan penyimpanan, pencarian, pengurutan, dan pengambilan data secara efisien. Server MySQL 17 mengendalikan akses ke data untuk menjamin bahwa beberapa user dapat bekerja bersama – sama, menyediakan akses yang cepat dan menjamin hanya user yang memiliki hak yang dapat mengakses. Merupakan sebuah system manajemen database relasi (relational database management system). Bersifat open source dapat didownload secara bebas, mysql memiliki kinerja, kecepatan, proses, dan ketangguhan yang tidak kalah dengan database yang lain. Contohnya oracle, Sybase, unity, dll. Pada awalnya mysql hanya berjalan diatas platform system operasi linux. Hampir semua distro linux telah memasukkan mysql sebagai database standarnya, namun saat ini mysql dapat pula berjalan diatas system operasi lainnya. Contoh Ms. Windows, Solaris, FreeBSD, mac OSX, dsb. Karen itu MYSQL adalah server multi-user, multi-threaded. M. Bersifat open source dapat didownload secara bebas, mysql memiliki kinerja, kecepatan, proses, dan ketangguhan yang tidak kalah dengan database yang lain. Contohnya oracle, Sybase, unity, dll. Pada awalnya mysql hanya berjalan diatas platform system operasi linux. Hampir semua distro linux telah memasukkan mysql sebagai database standarnya, namun saat ini mysql dapat pula berjalan diatas system operasi lainnya. Contoh Ms. Windows, Solaris, FreeBSD, mac OSX, dsb. Karen itu MYSQL adalah server multi-user, multi-threaded. MySQL menggunakan SQL, standar bahasa query database di seluruh dunia. MySQL dipublikasikan sejak 1996, tetapi memiliki sejarah perkembangan dari tahun 1979. 2.8.1 Keistimewaan MySQL MySQL memiliki beberapa keistimewaan, antara lain : a. Portabilitas. MySQL dapat berjalan stabil pada berbagai sistem operasi seperti Windows, Linux, FreeBSD, Mac Os X Server, Solaris, Amiga, dan masih banyak lagi. b. Open Source. MySQL didistribusikan secara open source, dibawah lisensi GPL sehingga dapat digunakan secara cuma – cuma. 18 c. Multiuser. MySQL dapat digunakan oleh beberapa user dalam waktu yang bersamaan tanpa mengalami masalah atau konflik. d. Performance Tuning. MySQL memiliki kecepatan yang menakjubkan dalam menangani query sederhana, dengan kata lain dapat memproses lebih banyak SQL per satuan waktu. e. Jenis Kolom. MySQL memiliki tipe kolom yang sangat kompleks, seperti signed / unsigned integer, float, double, char, text, date, timestamp, dan lain lain. f. Perintah dan Fungsi. MySQL memiliki operator dan fungsi secara penuh yang mendukung perintah Select dan Where dalam perintah (query). g. Keamanan. MySQL memiliki beberapa lapisan sekuritas seperti level subnetmask, nama host, dan izin akses user dengan sistem perizinan yang mendetail serta sandi terenkripsi. h. Skalabilitas dan Pembatasan. MySQL mampu menangani basis data dalam skala besar, dengan jumlah rekaman (records) lebih dari 50 juta dan 60 ribu tabel serta 5 milyar baris. Selain itu batas indeks yang dapat ditampung mencapai 32 indeks pada tiap tabelnya. i. Konektivitas. MySQL dapat melakukan koneksi dengan klien menggunakan protocol TCP/IP, Unix soket (UNIX), atau Named Pipes (NT). j. Lokalisasi. MySQL dapat mendeteksi pesan kesalahan pada klien dengan menggunakan lebih dari dua puluh bahasa. k. Antar Muka. MySQL memiliki interface (antar muka) terhadap berbagai aplikasi dan bahasa pemograman dengan menggunakan fungsi API (Application Programming Interface). l. Klien dan Peralatan. MySQL dilengkapi dengan berbagai peralatan (tool) yang dapat digunakan untuk administrasi basis data, dan pada setiap peralatan yang ada disertakan petunjuk online. m. Struktur Tabel. MySQL memiliki struktur tabel yang lebih fleksibel dalam menangani ALTER TABLE, dibandingkan basis data lainnya semacam PostgreSQL ataupun oracle. 19 2.9 Metodologi Rekayasa Perangkat Lunak Untuk melakukan sebuah rekayasa perangkat lunak tahap pemodelan merupakan tahap awal yang harus dilakukan. Tahap pemodelan harus dilakukan dengan baik karena akan sangat berpengaruh pada tahap – tahap selanjutnya. Model proses perangkat lunak merupakan deskripsi yang disederhanakan dari proses perangkat lunak yang dipresentasikan dengan sudut pandang tertentu. Jenis pemodelan yang digunakan dalam penyelesaian tugas akhir ini menggunakan pemodelan yang secara umum digunakan dalam rekayasa perangkat lunak yaitu model waterfall. Waterfall mengusulkan sebuah pendekatan kepada perkembangan perangkat lunak yang sistematik dan sekuensial yang mulai pada tingkat dan kemajuan sistem pada seluruh analisis, desain, kode, pengujian, dan pemeliharaan. Berikut di bawah ini rangkaian aktifitas proses dalam model Waterfall (Pressman, 2007) : 1. Tahapan Rekayasa Sistem Tahapan ini sangat menekan pada masalah pengumpulan kebutuhan pengguna pada tingkatan sistem dengan menentukan konsep sistem beserta antarmuka yang menghubungkannya dengan lingkungan sekitar. Hasilnya berupa spesifikasi sistem. 2. Tahapan Analisis Pada tahap ini dilakukan pengumpulan kebutuhan elemen – elemen di tingkat perangkat lunak. Dengan analisis harus dapat ditentukan domain – domain data atau informasi, fungsi, proses, atau prosedur yang diperlukan beserta unjuk kerjanya, dan antarmuka. Hasilnya berupa spesifikasi kebutuhan perangkat lunak. 3. Tahapan Perancangan Pada tahap perancangan, kebutuhan - kebutuhan perangkat lunak yang dihasilkan pada tahap analisis, ditransformasikan ke dalam bentuk arsitektur perangkat lunak yang memiliki karakteristik mudah dimengerti dan tidak sulit untuk diterapkan. 20 4. Tahapan Pemograman Tahap ini melakukan penerapan hasil rancangan ke dalam baris – baris kode program yang dapat dimengerti oleh komputer. 5. Tahapan Pengujian Setelah perangkat lunak selesai diterapkan, pengujian dapat segera dimulai. Pengujian terlebih dahulu dilakukan pada setiap modul. Jika tidak ada masalah, modul tersebut akan diintegrasikan hingga membentuk perangkat lunak secara utuh. Kemudian dilakukan pengujian di tingkat perangkat lunak yang memfokuskan pada masalah – masalah logika internal, fungsi internal, potensi masalah yang mungkin terjadi dan pemeriksaan hasil apakah sudah sesuai dengan permintaan. 6. Tahapan Pengoperasian dan Pemeliharaan Dalam operasional sehari – hari, suatu perangkat lunak mungkin saja mengalami kesalahan atau kegagalan dalam menjalankan fungsi – fungsinya. Atau, pemilik bisa saja meminta peningkatan kemampuan perangkat lunak pada pengembangnya. Dengan demikian, kedua faktor ini menyebabkan perlunya perangkat lunak dipelihara dari waktu ke waktu. Biasanya ini merupakan tahapan yang panjang dari perangkat lunak. Agar dapat lebih jelas, berikut ini Gambar 2.5 model Waterfall : 21 Gambar 2.5 Model Waterfall 2.10 Basis Data Menurut Fathansyah (2012 : 2) Basis data terdiri atas 2 kata, yaitu Basis dan Data. Basis kurang lebih dapat diartikan sebagai markas atau gudang, tempat bersarang / berkumpul. Sedangkan Data adalah representasi fakta dunia nyata yang mewakili suatu objek seperti manusia (pegawai, siswa, pembeli, pelanggan), barang, hewan, peristiwa, konsep, keadaan, dan sebagainya, yang diwujudkan dalam bentuk angka, huruf, simbol, teks, gambar, bunyi, atau kombinasinya. Sebagai satu kesatuan istilah, Basis Data (Database) sendiri dapat didefinisikan dalam sejumlah sudut pandang seperti : Himpunan kelompok data (arsip) yang saling berhubungan yang diorganisasikan sedemikian rupa agar kelak dapat dimanfaatkan kembali dengan cepat dan mudah. Kumpulan data yang saling berhubungan yang disimpan secara bersama sedemikian rupa dan tanpa pengulangan (redudansi) yang tidak perlu, untuk memenuhi berbagai kebutuhan. Kumpulan file/tabel/arsip yang saling berhubungan yang disimpan dalam media penyimpanan elektronis. 22 Tujuan utama dalam pengelolaan data dalam sebuah basis data adalah agar kita dapat memperoleh menemukan kembali data (yang kita cari) dengan mudah dan cepat. Disamping itu, pemanfaatan basis data untuk pengelolaan data, juga memiliki tujuan – tujuan lain seperti berikut ini : Kecepatan dan Kemudahan (Speed) Pemanfaatan basis data memungkinkan kita untuk dapat menyimpan data atau melakukan perubahan / manipulasi terhadap data atau menampilkan kembali data tersebut dengan lebih cepat dan mudah. Efisiensi Ruang Penyimpanan (Space) Dengan basis data, efisiensi / optimalisasi penggunaan ruang penyimpanan dapat dilakukan, karena kita dapat melakukan penekanan jumlah redudansi data, baik dengan menerapkan sejumlah pengkodean atau dengan membuat relasi – relasi (dalam bentuk tabel) antarkelompok data yang saling berhubungan. Keakuratan (Accuracy) Pemanfaatan pengkodean atau pembentukan relasi antardata bersama dengan penerapan aturan / batasan (constraint) tipe data, domain data, keunikan data, dan sebagainya, yang secara ketat dapat diterapkan dalam sebuah basis data, sangat berguna untuk menekan ketidakakuratan penyimpanan data. Ketersediaan (Availability) Dengan pemanfataan teknologi jaringan komputer, data yang berada di suatu cabang, dapat juga diakses (menjadi tersedia/available) bagi cabang lain. Kelengkapan (Completeness) Untuk mengakomodasi kebutuhan kelengkapan data yang semakin berkembang, maka kita tidak hanya dapat menambah record – record data, tetapi juga dapat melakukan perubahan struktur dalam basis data, baik dalam bentuk penambahan objek baru (tabel) atau dengan penambahan field – field baru pada sebuah tabel. Keamanan (Security) Kita dapat menentukan siapa – siapa (pemakai) yang boleh menggunakan basis data beserta objek – objek di dalamnya dan menentukan jenis – jenis operasi apa saja yang boleh dilakukannya. 23 Kebersamaan Pemakaian (Sharability) Pemakai basis data sering kali tidak terbatas pada satu pemakai saja, atau di satu lokasi saja oleh satu sistem/aplikasi saja. Basis data yang dikelola oleh sistem (aplikasi) yang mendukung lingkungan multi-user, akan dapat memenuhi kebutuhan ini, tetapi tetap dengan menjaga/menghindari munculnya persoalan baru seperti inkonsistensi data (karena data yang sama diubah oleh banyak pemakai pada saat yang bersamaan) atau kondisi deadlock (karena ada banyak pemakai yang saling menunggu untuk menggunakan data). 2.10.1 Proses Perancangan Basis Data Menurut Kadir (2003 : 39) Proses perancangan basis data, terlepas dari masalah yang ditangani dibagi menjadi tiga tahapan, yaitu : 1. Perancangan basis data secara konseptual 2. Perancangan basis data secara logis 3. Perancangan basis data secara fisis Perancangan basis data secara konseptual merupakan upaya untuk membuat model yang masih bersifat konsep. Perancangan basis data secara logis merupakan tahapan untuk memetakan model konseptual ke model basis data yang akan dipakai, seperti model relasional, hirarki, atau jaringan. Namun sebagaimana halnya perancangan basis data secara konseptual, perancangan ini tidak tergantung pada DBMS (Database Management System) yang akan dipakai. Itulah sebabnya perancangan basis data secara logis terkadang disebut pemetaan model data. Perancangan basis data secara fisis merupakan tahapan untuk menuangkan perancangan basis data yang bersifat logis menjadi basis data fisis yang tersimpan pada media penyimpanan eksternal. 2.10.2 Entity Relationship Diagram (ERD) Menurut Fathansyah (2001:70) Diagram keterhubungan entitas atau EntityRelationship Diagram selanjutnya disebut ERD adalah model konseptual yang 24 mendeskripsikan hubungan antar penyimpanan (dalam DAD). ERD digunakan untuk memodelkan struktur data dan hubungan antar data. Model ERD yang berisi komponen – komponen himpunan entitas dan himpunan relasi yang masing – masing dilengkapi dengan atribut – atribut yang merepresentasikan seluruh fakta dari dunia nyata yang ditinjau, yang digambarkan dengan lebih sistematis dengan menggunakan ERD. Berikut adalah notasi – notasi yang sering digunakan pada saat pembuatan entity relationship diagram. Notasi Deskripsi Menyatakan himpunan entitas Atribut A sebagai key A Himpunan Relasi R R Link Tabel 2.1 Notasi ERD Berikut adalah contoh penggambaran relasi antar himpunan entitas lengkap dengan kardinat relasi dan atribut – atributnya : 1. Relasi satu-ke-satu (one-to-one) Adanya relasi antara himpunan entitas Kepala Sekolah dengan Himpunan entitas Sekolah. Himpunan relasinya kita beri nama “Mengepalai”. Para relasi ini, setiap kepala sekolah paling banyak mengepalai satu sekolah. Dan setiap sekolah pasti dikepalai oleh paling banyak satu orang kepala sekolah. Maka penggambarannya adalah Gambar 2.6 Contoh relasi one to one 25 2. Relasi satu-ke-banyak (one to many) Adanya relasi antara himpunan entitas dosen dengan himpunan entitas kuliah. Himpunan relasinya kita beri nama “Mengajar”. Pada relasi ini, setiap dosen dapat mengajar lebih dari satu mata kuliah, sedang setiap mata kuliah diajar hanya oleh paling banyak satu dosen. Maka penggambarannya adalah : Gambar 2.7 Contoh relasi one to many 3. Relasi banyak-ke-banyak (many-to-many) Adanya relasi antar himpunan entitas mahasiswa dengan himpunan entitas kuliah. Himpunan relasinya kita beri nama “Mempelajari”. Pada relasi ini, setiap mahasiswa bisa mempelajari lebih dari satu mata kuliah. Demikian juga sebaliknya, setiap mata kuliah dapat dipelajari oleh lebih dari satu orang mahasiswa. Gambar 2.8 Contoh relasi many to many Gambar 2.8 Contoh relasi many to many 2.11 Unified Modelling Language 26 Unified Modelling Language (UML) adalah keluarga notasi grafis yang didukung oleh meta – model tunggal, yang membantu pendeksripsian dan desain sistem perangkat lunak, khususnya sistem yang dibangun menggunakan pemograman berorientasi objek (Fowler, 2005 : - 1). UML adalah sebuah bahasa yang telah menjadi standart yang berdasarkan grafik atau gambar untuk memvisualisasikan, menspesifikasikan, membangun, dan pendokumentasian dari sebuah pengembangan sustem perangkat lunak berorientasi objek (Object Oriented). UML merupakan suatu kumpulan teknik terbaik yang sudah terbukti sukses dalam memodelkan sistem yang besar dan kompleks yang dikembangkan oleh Booch, Object Modelling Technique (OMT) dan Object Oriented Software Engineering (OOSE). Metode Booch atau yang kita kenal dengan metode Design Object Oriented yang dibuat oleh Gardy Booch. Metode ini menjadikan proses analisis dan design ke dalam empat tahapan interaktif, yaitu : 1. Identifikasi kelas – kelas dan objek – objek 2. Identifikasi semantik dari hubungan objek dan kelas 3. Perincian interface 4. Implementasi Dengan menggabungkan UML, metode Booch, OMT dan OOSE lalu ditambahkan dengan elemen – elemen baru yang lebih efektif dan lebih ekspresif dari metode lainnya. UML terdiri atas 13 jenis diagram resmi seperti tertulis dalam tabel berikut. No. Diagram Kegunaan 1. Activity Behaviour prosedural dan paralel 2. Class Class, fitur, dan hubungan – hubungan 3. Communication Interaksi antar objek; penekanan pada jalur 4. Component Struktur dan koneksi komponen 5. Composite Dekomposisi runtime sebuah class Structure 27 6. Deployment Pemindahan artifak ke node 7. Interaction Campuran sequence dan activity diagram overview 8. Object Contoh konfigurasi dari contoh – contoh 9. Package Struktur hirarki compile-time 10. Sequence Interaksi antar objek; penekanan pada sequence 11. State machine Bagaimana even mengubah objek selama aktif 12. Timing Interaksi antar objek; penekanan pada timing 13. Use case Bagaimana pengguna berinteraksi dengan sebuah sistem Tabel 2.2 Jenis Diagram Resmi UML 2.11.1 Use Case Diagram Use Case diagram adalah layanan (services) atau fungsi – fungsi yang disediakan oleh sistem untuk pengguna – penggunanya (Henderi et al, 2008). Use Case diagram menggambarkan fungsionalitas dari sebuah sistem. Yang ditekankan adalah “apa” yang diperbuat sistem, dan bukan “bagaimana”. Sebuah Use case diagram merepresentasikan sebuah interaksi antara pengguna sistem dengan sistem. Use case diagram menggambarkan sebuah pekerjaan tertentu, misalnya login ke sistem, membuat sebuah daftar belanja, dan sebagainya. Aktor adalah sebuah entitas manusia atau sistem yang berinteraksi dengan sistem untuk melakukan pekerjaan – pekerjaan tertentu. Notasi – notasi yang digunakan dalam pemodelan duagram use case dapat dilihat pada tabel berikut ini : Notasi Deskripsi Aktor, segala sesuatu digunakan untuk menggambarkan pelaku atau pengguna yang sedang berinteraksi langsung. 28 Use case berfungsi untuk menggambarkan spesifikasi pekerjaan (job spesification) dan deskripsi pekerjaan (job description), serta keterkaitan antar pekerjaan (job). Aliran proses (relationship), berguna untuk menggambarkan hubungan antara use case dengan use case lainnya. Aliran perpanjang (extension points), berguna untuk menggambarkan hubungan antara use case dengan use case yang diperpanjang (extended use case) maupun dengan use case yang dimasukkan (included use case). Aliran yang digunakan untuk menggambarkan hubungan antara aktor dengan use case. <<extended>> Kondisi yang mendeksripsikan apa yang terjadi antara use case dengan use case yang diperpanjang. <<include>> Include adalah kondisi aliran proses langsung (directed relationship) antara dua use case yang secara tak langsung menyatakan kelakukan (behaviour) dari use case yang dimasukkan. <<has>> Adalah kondisi yang mendeskripsikan apa yang terjadi antara aktor dengan use case. Tabel 2.3 Notasi Use Case Diagram. 2.11.2 Activity Diagram Activity diagram merupakan bagian dari model dinamis yang digunakan untuk menggambarkan work flow / proses sistem kita. Diagram ini menunjukkan bagaimana suatu proses dimulai, kemudian alur proses dari tiap keputusan yang ada hingga berakhirnya proses. Serta diagram ini juga memungkinkan untuk menampilkan proses yang terjadi secara paralel. Activity diagram memungkinkan siapapun yang melakukan proses untuk memilih urutan dalam melakukannya. Dengan kata lain, diagram hanya menyebutkan 29 aturan – aturan rangkaian dasar yang harus kita ikuti. Hal ini penting untuk pemodelan bisnis karena proses – proses sering muncul secara paralel. Notasi – notasi yang digunakan dalam pemodelan activity diagram dapat dilihat pada Tabel 2.4. No. 1. Notasi Keterangan Titik awal, digunakan untuk menggambarkan awal dari diagram aktifitas. 2. Titik akhir, digunakan untuk menggambarkan akhir dari diagram aktifitas. 3. Aktivitas, digunakan untuk menggambarkan aktifitas dalam diagram aktifitas. 4. Pilihan untuk pengambilan keputusan, digunakan untuk menggambarkan kelakuan pada kondisi tertentu. 5. Akhir alur (flow final), digunakan untuk menghancrukan semua tanda yang datang dan tak memiliki efek alur dalam aktifitas. 6. Fork ; digunakan untuk menunjukkan kegiatan – kegiatan yang dilakukan secara paralel atau untuk menggabungkan dua kegiatan paralel menjadi satu 7. Rake ; menunjukkan adanya dekomposisi 8. Tanda waktu 30 9. Node Fork memiliki satu aksi yang masuk dan beberapa aksi yang keluar. 10. Join node digunakan untuk menggambarkan beberapa aksi yang masuk dan satu aksi yang keluar. 11. Tanda Pengiriman 12. Tanda Penerimaan Tabel 2.4 Notasi Activity Diagram 2.11.3 Sequence Diagram Sebuah sequence diagram secara khusus menjabarkan aktifitas sebuah skenario tunggal. Diagram tersebut menunjukkan sebuah objek contoh dan pesan– pesan yang melewati objek – objek di dalam use case diagram (Fowler, 2005). Sequence diagram menggambarkan interaksi dengan menampilkan setiap partisipan dengan garis alir secara vertikal dan pengurutan pesan dari atas ke bawah. Sequence diagram biasa digunakan untuk menggambarkan skenario atau rangkaian langkah – langkah yang dilakukan sebagai respons dari sebuah event untuk menghasikan output tertentu. Diagram ini juga menunjukkan serangkaian pesan yang dipertukarkan oleh objek – objek yang melakukan suatu tugas atau aksi tertentu. Diawali dari apa yang men-trigger aktivitas tersebut, proses dan perubahan apa saja yang terjadi secara internal dan output apa yang dihasilkan. Masing – masing objek, termasuk aktor memiliki lifeline vertikal. Pesan digambarkan sebagai garis berpanah dari satu objek ke objek lainnya. 31 Notasi – notasi yang digunakan dalam pemodelan sequence diagram terlihat dalam tabel berikut : No. Notasi 1. Keterangan Aktor : Merupakan sebuah peran yang dimainkan seseorang pengguna dalam kaitannya dengan sistem. 2. Activation : Menggambarkan waktu yang dibutuhkan suatu objek untuk menyelesaikan suatu aktivitas. 3. Participant (Obyek) : Object1 Simbol yang digunakan untuk menyederhanakan diagram 4. Lifeline : Digambarkan dengan garis putus – putus, yang menggambarkan bahwa hadirnya objek terhadap waktu. 5. Aliran Pesan : Digambarkan dengan tanda panah, yang menggambarkan komunikasi antar objek. Tabel 2.5 Notasi Pemodelan Sequence Diagram 2.11.4 Class Diagram Diagram kelas atau class diagram menggambarkan struktur sistem dari segi pendefinisian kelas-kelas yang akan dibuat atau membangun sistem.Kelas memiliki apa yang disebut atribut dan metode atau operasi. Atribut merupakan variabel-variabel yang dimiliki oleh suatu kelas. Operasi atau metode adalah fungsi-fungsi yang dimiliki oleh suatu kelas. 32 Kelas-kelas yang ada pada struktur sistem harus dapat melakukan fungsifungsi sesuai dengan kebutuhan sistem. Susunan struktur kelas yang baik pada diagram kelas sebaiknya memiliki jenis-jenis kelas berikut : Kelas main. Kelas yang memiliki fungsi awal dieksekusi ketika sistem dijalankan. Kelas yang menangani tampilan sistem. Kelas yang mendefinisikan dan mengatur tampilan ke pemakai. Kelas yang diambil dari pendefinisian use case. Kelas yang menangani fungsi-fungsi yang harus ada diambil dari pendefinisian use case. Kelas yang diambil dari pendefinisian data. Kelas yang digunakan untuk memegang atau membungkus data menjadi sebuah kesatuan yang diambil maupun akan disimpan ke basis data Berikut adalah simbol – simbol yang sering digunakan pada saat pembuatan class diagram. Simbol Class1 Antarmuka/interface Deskripsi Kelas pada struktur sistem Sama dengan konsep interface dalam pemrograman berorientasi objek Nama_interface Asosiasi/association Relasi antar kelas dengan umum, asosiasi biasanya juga disertai dengan multiplicity Asosiasi berarah/directed Relasi antar kelas dengan makna kelas association yang satu digunakan oleh kelas yang lain, asosiasi biasanya juga disertai dengan multiplicity Generalisasi Relasi antar kelas dengan makna 33 generalisasi-spesialisasi(umum-khusus) Kebergantungan/dependency Relasi antar kelas dengan makna kebergantungan antar kelas Tabel 2.6 Simbol – simbol yang ada pada Class Diagram 2.12 Web World Wide Web (WWW), lebih dikenal dengan web yang merupakan salah satu layanan yang didapat oleh pemakai komputer yang terhubung ke internet dengan fasilitas hypertext untuk menampilkan data berupa text, gambar, suara, animasi dan data multimedia lainnya. Sehingga web pada awalannya adalah ruang informasi dalam internet, dengan menggunakan teknologi hypertext oemakai dituntun menemukan informasi dengan mengikuti link yang disediakan dalam dokumen web yang ditampilkan dalam web browser. (Kustiyahningsih dan Rosa Anamisa, 2011) Situs / web dapat dikategorikan menjadi dua yaitu “web statis” dan “web dinamis”. Web statis adalah web yang menampilkan informasi – informasi yang sifatnya statis (tetap), sedangkan web dinamis adalah web yang menampilkan informasi serta dapat berinteraksi dengan pengguna. 2.12.1 Web Browser Web browser adalah perangkat lunak yang digunakan untuk menampilkan informasi dari server web. Perangkat lunak ini kini telah dikembangkan dengan menggunakan user interface grafis, sehingga pemakai dapat dengan melakukan „point and click‟ untuk pindah antar dokumen. 2.12.2 Web Server Web server adalah komputer yang digunakan untuk menyimpan dokumendokumen web, komputer ini akan melayani permintaan dokumen web dari kliennya. Komputer dapat dikatakan sebagai web server jika komputer tersebut memiliki suatu program server yang disebut Personal Web Server (PWS). PWS ini difungsikan agar 34 halaman web yang ada didalam sebuah komputer server dapat dipanggil oleh komputer klien. Macam – macam web server : a. Apache Web Server – The HTTP Web Server b. Apache Tomcat c. Microsoft Windows Server 2003 Internet Information Services (IIS) d. Lighttpd e. Sun Java System Web Server f. Xitami Web Server g. Zeus Web Server 2.13 Pengertian Internet Internet “Interconnected Network atau yang lebih populer dengan sebutan Internet – adalah sebuah sistem komunikasi global yang menghubungkan komputer – komputer dan jaringan – jaringan komputer di seluruh dunia“. (Purbo, 1998). Setiap komputer dan jaringan terhubung secara langsung maupun tidak langsung ke beberapa jalur utama yang disebut “internet backbone” dan dibedakan satu dengan yang lainnya menggunakan “unique name” yang biasa disebut dengan “alamat IP” 32bit. Komputer dan jaringan dengan berbagai platform yang mempunyai perbedaan dan ciri khas masing – masing (Unix, Linux, Windows, Mac, dll) bertukar informasi dengan sebuah protokol standar yang dikenal dengan nama TCP/IP (Transmission Control Protocol/Internet Protocol). TCP/IP tersusun atas 4 layer (network access, internet, host-to-host transport, dan application) yang masing – masing memiliki protokolnya sendiri – sendiri. 2.13.1 Media Penghubung Saat ini dikenal 2 (dua) macam media penghubung pada jaringan komputer, yaitu media penghubung kabel dan media penghubung dengan menggunakan gelombang radio (Wi-Fi). 35 Perbedaan yang mencolok dari kedua bentuk media penghubung di atas adalah pada sisi instalasinya. Penggunaan media penghubung (Wi-Fi) mudah untuk diinstalasi dan penempatan komponen jaringan lebih fleksibel. 2.14 Pendekatan Test / Pengujian Pengujian perangkat lunak adalah elemen kritis dari jaminan kualitas perangkat lunak dan merepresentasikan kajian pokok dari spesifikasi, desain, dan pengkodean. Terdapat 2 macam bentuk pendekatan test / pengujian : 2.14.1 Pendekatan White Box Pendekatan White Box adalah meramalkan cara kerja perangkat lunak secara rinci, karena jalur logika (logical path) perangkat lunak akan ditest dengan menyediakan test case yang akan mengerjakan kumpulan kondisi dan atau pengulangan secara spesifik. Secara sekilas dapat diambil kesimpulan white box testing merupakan petunjuk untuk mendapatkan program yang benar secara 100%. Uji coba white box adalah metode perancangan test case yang menggunakan struktur kontrol dari perancangan prosedural untuk mendapatkan test case. Dengan menggunkan metode white box, analis sistem akan dapat memperoleh test case sebagai berikut : a. Menjamin seluruh kebebasan jalur di dalam modul yang dikerjakan miinimal sekali. b. Mengerjakan seluruh keputusan logika. c. Mengerjakan seluruh perulangan yang sesuai dengan batasannya. d. Mengerjakan seluruh struktur data internal yang menjamin validitas. 2.14.2 Pendekatan Black Box Pengujian Black Box berfokus pada persyaratan fungsional perangkat lunak. Pengujian ini memungkinkan analis sistem memperoleh kumpulan kondisi masukan 36 yang akan mengerjakan seluruh keperluan fungsional program. Tujuan metode ini mencari kesalahan pada : a. Fungsi yang salah atau hilang. b. Kesalahan pada interface. c. Kesalahan pada struktur data atau akses basis data. d. Kesalahan performansi. e. Kesalahan insialisasi dan tujuan akhir. Pengujian Black Box dirancang untuk menjawab pertanyaan sebagai berikut : a. Bagaimana validitas fungsional diuji b. Apa kelas input yang terbaik untuk uji coba yang baik c. Apakah sistem sangat peka terhadap nilai input tertentu d. Bagaimana jika kelas data yang terbatas dipisahkan e. Bagaimana volume data yang dapat ditoleransi oleh sistem? f. Bagaimana pengaruh kombinasi data terhadap pengoperasian sistem Untuk menganalisa pengujian metode black box dilakukan dengan tiga cara : 1. Pemisah padanan (equivalence partitioning) a. Menggunakan data terpisah yang diturunkan dari test case. b. Satu test case menemukan sekumpulan kesalahan yang spesifik yang biasanya membutuhkan beberapa test case. c. Mengurangi jumlah test case yang dibuat. 2. Analisa batas nilai (boundary value analisys) a. Merupakan pelengkap dari equivalence partitioning. b. Sebagian besar masalah terjadi pada batas input. Bukan pada inti dari input domain. c. Contohnya : pengujian batas atas / bawah dari sebuah array. 3. Pengujian grafik (graph-based testing) Menggunakan graph untuk merepresentasikan object dan relasinya terhadap object lain.