BAB II LANDASAN TEORI 2.1 Pengertian Sistem Definisi sistem berkembang sesuai dengan konteks dimana pengertian sistem itu digunakan. Berikut akan diberikan beberapa definisi sistem secara umum [Hanif Al Fatta, 2007 : 3] : 1. Kumpulan dari bagian-bagian yang bekerja sama untuk mencapai tujuan yang sama. 2. Sekumpulan objek-objek yang saling berelasi dan berinteraksi serta hubungan antar objek bisa dilihat sebagai satu kesatuan yang dirancang untuk mencapai satu tujuan. Dengan demikian, secara sederhana sistem dapat diartikan sebagai suatu kumpulan atau himpunan dari unsur atau variabel-variabel yang saling terorganisasi, saling berinteraksi, dan saling bergantung satu sama lain. 2.2 Definisi Informasi Informasi tanpa adanya data maka informasi tersebut tidak akan terbentuk. Begitu pentingnya peranan data dalam terjadinya suatu informasi yang berkualitas. Keakuratan data sangat mempengaruhi terhadap keluaran informasi yang akan terbentuk. 12 http://digilib.mercubuana.ac.id/ 13 Dalam hal ini antara data dan informasi erat kaitannya dalam sistem, seperti yang dikemukakan oleh Jogiyanto [2005 : 08] : “ Informasi adalah sebagai hasil dari sebuah pengolahan data yang telah diolah kedalam bentuk yang lebih berguna bagi si penerima atau si pemberi informasi untuk mencapai keputusan. “ Sedangkan menurut Kusrini dan Andri Koniyo [2007 : 07], pengertian informasi adalah data yang sudah diolah menjadi sebuah bentuk yang berarti bagi pengguna, yang bermanfaat dalam pengambilan keputusan saat ini atau mendukung sumber informasi. 2.3 Definisi Sistem Informasi Untuk memahami pengertian sistem informasi, harus dilihat keterkaitan antara data dan informasi sebagai entitas penting pembentuk sistem informasi. Data merupakan nilai, keadaan, atau sifat yang berdiri sendiri lepas dari konteks apapun. Sementara informasi adalah data yang telah diolah menjadi bentuk yang berarti bagi penerimanya, dan bermanfaat dalam pengambilan keputusan saat ini atau mendatang. Sistem informasi dapat diartikan sebagai suatu alat untuk menyajikan informasi dengan cara sedemikian rupa, sehingga bermanfaat bagi penerimanya. [Hanif Al Fatta, 2007 : 09] http://digilib.mercubuana.ac.id/ 14 2.4. Rekayasa Perangkat Lunak Perangkat lunak didefinisikan sebagai berikut : 1. Instruksi-instruksi (program komputer) yang biasa dijalankan akan memberikan fungsi dan unjuk kerja yang diharapkan. 2. Struktur data yang memungkinkan program untuk memanipulasi informasi yang memadai. 3. Dokumen-dokumen yang menjelaskan operasi dan penggunaan program-program. Rekayasa perangkat lunak (software engineering) merupakan pembangunan dengan menggunakan prinsip atau konsep rekayasa dengan tujuan menghasilkan perangkat lunak yang bernilai ekonomi yang dipercaya dan bekerja secara efisien menggunakan mesin. [Rosa A.S - M.Shalahuddin, 2011 : 04] 2.5 Metode Waterfall Model SDLC air terjun (waterfall) sering juga disebut model sekuensial linier (sequential linier) atau alur hidup klasik (classic life cycle). Model air terjun menyediakan pendekatan alur hidup perangkat lunak secara sekuensial atau terurut dimulai dari analisis, desain, pengodean, pengujian, dan tahap pendukung (support). [Rosa A.S - M.Shalahuddin, 2011 : 26] Model ini mengusulkan sebuah pendekatan kepada perkembangan software yang sistematik dan sekuensial yang mulai pada tingkat dan kemajuan sistem pada seluruh analisis, desain, kode, pengujian, dan pemeliharaan. http://digilib.mercubuana.ac.id/ 15 Requirements Analysis Design Coding Testing Maintenance Gambar 2.1 Diagram Tahapan dalam Metode Waterfall [Rosa A.S M.Shalahuddin] Tahapan-tahapan dalam metode waterfall adalah sebagai berikut : 1. Requirements (Rekayasa Sistem dan Pemodelan Sistem) Karena sistem merupakan bagian dari sebuah sistem yang lebih besar, kerja dimulai dengan membangun syarat dari semua elemen sistem dan mengalokasikan beberapa subset dari kebutuhan ke software tersebut. Pandangan sistem ini penting ketika software harus berhubungan dengan elemen-elemen yang lain seperti software, manusia, dan database. Rekayasa dan analisis sistem menyangkut pengumpulan kebutuhan pada tingkat sistem dengan sejumlah kecil analisis, serta desain tingkat puncak. Rekayasa informasi mencakup juga pengumpulan kebutuhan pada tingkat bisnis strategis dan tingkat area bisnis. http://digilib.mercubuana.ac.id/ 16 2. Analysis (Analisa Kebutuhan) Proses pengumpulan kebutuhan di intensifkan dan di fokuskan, khususnya pada software untuk memahami sifat program yang dibangun. Analisis harus memahami domain informasi tingkah laku, unjuk kerja, dan interface yang diperlukan kebutuhan, baik untuk sistem maupun software, di dokumentasikan dan dilihat lagi dengan pelanggan. 3. Design (Desain) Desain software sebenarnya adalah proses multi langkah yang berfokus pada empat atribut sebuah program yang berbeda, struktur data, arsitektur software, representasi interface, dan detail (algoritma) prosedural. Proses desain menterjemahkan syarat atau kebutuhan ke dalam sebuah representasi software yang dapat diperkirakan demi kualitas sebelum dimulai pemunculan kode, sebagaimana persyaratan, desain didokumentasikan dan menjadi bagian dari konfigurasi software. 4. Coding (Pengodean) Desain harus diterjemahkan kedalam bentuk mesin yang bisa dibaca. Langkah pembuatan kode melakukan tugas ini. Jika desain dilakukan dengan cara yang lengkap, pembuatan kode dapat diselesaikan secara mekanis. 5. Testing (Pengujian) Sekali program dibuat, pengujian program dimulai. Proses pengujian berfokus pada logika internal software, memastikan bahwa semua pernyataan sudah diuji, dan pada eksternal fungsional, yaitu mengarahkan http://digilib.mercubuana.ac.id/ 17 pengujian untuk menemukan kesalahan-kesalahan dan memastikan bahwa input yang dibatasi akan memberikan hasil aktual yang sesuai dengan hasil yang diharapkan. 6. Maintenance (Pemeliharaan) Software akan mengalami perubahan setelah disampaikan kepada pelanggan (perkecualian yang mungkin adalah software yang dilekatkan). Perubahan akan terjadi karena kesalahan-kesalahan ditentukan, karena software harus disesuaikan untuk mengakomodasi perubahan-perubahan di dalam lingkungan eksternalnya (contohnya, perubahan yang dibutuhkan sebagai akibat dari perangkat peripheral atau sistem operasi yang baru), atau karena pelanggan membutuhkan perkembangan fungsional atau unjuk kerja. Pemeliharaan software mengaplikasikan lagi setiap fase program sebelumnya dan tidak membuat yang baru lagi. 2.6 Analisis Sistem dan Pengembangan Sistem Analisis sistem didefinisikan sebagai bagaimana memahami dan menspesifikasi dengan detail apa yang harus dilakukan oleh sistem [Hanif Al Fatta, 2007 : 24]. Tahapan analisis adalah tahapan dimana sistem yang sedang berjalan dipelajari dan sistem pengganti diusulkan. Tujuan utama dari analisis adalah untuk memahami dan mendokumentasikan kebutuhan bisnis dan persyaratan dari sistem baru [Hanif Al Fatta, 2007 : 27]. Tahapan analisis akan menentukan masalah apa yang harus di selesaikan pada organisasi atau http://digilib.mercubuana.ac.id/ 18 perusahaan. Analisis sistem merupakan tahap awal dari pengembangan sistem yang menjadi fondasi menentukan keberhasilan sistem informasi yang dihasilkan nantinya. Kegiatan analisis sistem adalah kegiatan untuk melihat sistem yang sudah berjalan, melihat bagian mana yang bagus dan tidak bagus, dan kemudian mendokumentasikan kebutuhan yang akan dipenuhi dalam sistem yang baru. Hal tersebut terlihat sederhana, namun sebenarnya tidak. Banyak hambatan yang akan ditemui dalam proses tersebut. [Rosa A.S - M.Shalahuddin, 2011 : 16] Pada banyak proyek sistem informasi, proses analisis dan desain seringkali berjalan bersama-sama. Jadi selama kegiatan analisis, kegiatan desain juga dilakukan. Hal ini dilakukan karena pada banyak kasus, user sering kesulitan untuk mendefinisikan kebutuhan mereka. Jadi mereka akan lebih mudah mendefinisikan kebutuhan sistem yang mereka inginkan, jika mereka telah melihat gambar rancangan sistem yang baru, khususnya rancangan antarmuka (interface). [Rosa A.S - M.Shalahuddin, 2011 : 16] 2.7 Pengenalan UML Pada perkembangan teknologi perangkat lunak, diperlukan adanya bahasa yang digunakan untuk memodelkan perangkat lunak yang akan dibuat dan perlu adanya standarisasi agar orang di berbagai negara dapat mengerti pemodelan perangkat lunak. Seperti yang kita ketahui bahwa menyatukan banyak kepala untuk menceritakan sebuah ide dengan tujuan untuk memahami hal yang sama http://digilib.mercubuana.ac.id/ 19 tidaklah mudah, oleh karena itu diperlukan sebuah bahasa pemodelan perangkat lunak yang dapat dimengerti oleh banyak orang. Banyak orang yang telah membuat bahasa pemodelan pembangunan perangkat lunak sesuai dengan teknologi pemrograman yang berkembang pada saat itu, misalnya yang sempat berkembang dan digunakan oleh banyak pihak adalah Data Flow Diagram (DFD) untuk memodelkan perangkat lunak yang menggunakan pemrograman prosedural atau struktural, kemudian juga ada State Transition Diagram (STD) yang digunakan untuk memodelkan sistem real time (waktu nyata). [Rosa A.S-M.Shalahuddin, 2011:117] Pada perkembangan teknik pemrograman berorientasi objek, muncullah sebuah standarisasi bahasa pemodelan untuk pembangunan perangkat lunak yang dibangun dengan menggunakan teknik pemrograman berorientasi objek, yaitu Unified Modeling Language (UML). UML muncul karena adanya kebutuhan pemodelan visual untuk menspesifikasikan, menggambarkan, membangun, dan dokumentasi dari sistem perangkat lunak. UML merupakan bahasa visual untuk pemodelan dan komunikasi mengenai sebuah sistem dengan menggunakan diagram dan teks-teks pendukung. UML hanya berfungsi untuk melakukan pemodelan. Jadi penggunaan UML tidak terbatas pada metodologi tertentu, meskipun pada kenyataannya UML paling banyak digunakan pada metodologi berorientasi objek. Seperti yang kita ketahui bahwa banyak hal di dunia sistem informasi yang tidak dapat dibakukan, semua tergantung kebutuhan, lingkungan dan konteksnya. Begitu juga dengan perkembangan penggunaan UML bergantung http://digilib.mercubuana.ac.id/ 20 pada level abstraksi penggunaannya. Jadi, belum tentu pandangan yang berbeda dalam penggunaan UML adalah suatu yang salah, tapi perlu ditelaah dimanakah UML digunakan dan hal apa yang ingin di visualkan. Secara analogi jika dengan bahasa yang kita gunakan sehari-hari, belum tentu penyampaian bahasa dengan puisi adalah hal yang salah. Sistem informasi bukanlah ilmu pasti, maka jika ada banyak perbedaan dan interpretasi didalam bidang sistem informasi merupakan hal yang sangat wajar. [Rosa A.S - M.Shalahuddin, 2011 : 118] 2.7.1 Diagram UML Pada UML terdapat 13 macam diagram yang dikelompokkan dalam 3 kategori. [Rosa A.S - M.Shalahuddin, 2011 : 120] UML Diagram Structure Diagram Behavior Diagram Intraction Daigram Class Diagram Use Case Diagram Sequence Diagram Object Diagram Activity Diagram Communication Diagram Component Diagram State Machine Diagram Component Structure Diagram Timing Diagram Interaction Overview Diagram Package Diagram Deployment Diagram Gambar 2.2 Pembagian Diagram dalam UML Diagram [Rosa A.S M.Shalahuddin] http://digilib.mercubuana.ac.id/ 21 Berikut ini penjelasan singkat dari pembagian tersebut : Structure Diagram yaitu kumpulan diagram yang digunakan untuk menggambarkan suatu struktur statis dari sistem dimodelkan. Behavior Diagram yaitu kumpulan diagram yang digunakan untuk menggambarkan kelakuan sistem atau rangkaian perubahan yang terjadi pada sebuah sistem. Interaction Diagram yaitu kumpulan diagram yang digunakan untuk menggambarkan interaksi sistem dengan sistem laain maupun interaksi antar subsistem pada suatu sistem. [Rosa A.S - M.Shalahuddin, 2011 : 121] Diagram yang pada umumnya digunakan dalam pemodelan sistem adalah sebagai berikut : 1. Class Diagram Menurut Rosa A.S dan M.Shalahuddin [2011:122], diagram kelas atau class diagram menggambarkan struktur sistem dari segi pendefinisian kelas-kelas yang akan dibuat untuk membangun sistem. Kelas memiliki apa yang disebut atribut dan metode atau operasi, yaitu : Atribut merupakan variabel-variabel yang dimiliki oleh suatu kelas. Operasi atau metode adalah fungsi-fungsi yang dimiliki oleh suatu kelas. http://digilib.mercubuana.ac.id/ 22 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 utama 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. Jenis-jenis kelas diatas juga dapat digabungkan satu sama lain sesuai dengan pertimbangan yang dianggap baik asalkan fungsi-fungsi yang sebaiknya ada pada struktur kelas tetap ada. Susunan kelas juga dapat ditambahkan kelas utilitas seperti koneksi ke basis data, membaca file teks, dan lain sebagainya sesuai dengan kebutuhan. [Rosa A.S - M.Shalahuddin, 2011 : 122] Dalam mendefinisikan metode yang ada di dalam kelas perlu memperhatikan apa yang disebut dengan cohesion dan coupling. Cohesion adalah ukuran seberapa dekat keterkaitan instruksi di dalam sebuah metode terkait satu sama lain, sedangkan coupling adalah ukuran seberapa dekat keterkaitan instruksi http://digilib.mercubuana.ac.id/ 23 antara metode yang satu dengan metode yang lain dalam sebuah kelas. Sebagai aturan secara umum maka sebuah metode yang dibuat harus memiliki kadar cohesion yang kuat dan kadar coupling yang lemah. Berikut adalah simbol-simbol yang ada pada class diagram : Tabel 2.1 Simbol-simbol yang ada pada Class Diagram [Rosa A.S M.Shalahuddin] Simbol Kelas Deskripsi Kelas pada struktur sistem nama kelas Antarmuka / interface nama interface Sama dengan konsep interface pemrograman berorientasi objek. dalam Asosiasi / association Relasi antar kelas dengan makna umum, asosiasi biasanya juga disertai dengan multiplicity. Asosiasi berarah / directed association Relasi antar kelas dengan makna kelas yang satu digunakan oleh kelas yang lain, asosiasi biasanya juga disertai dengan multiplicity. Generalisasi Relasi antar kelas dengan makna generalisasi-spesialisasi (umum khusus). Kebergantungan / dependency Relasi antar kelas dengan kebergantungan antar kelas. Agregasi / aggregationi Semua-bagian (whole-part). http://digilib.mercubuana.ac.id/ makna 24 2. Use Case Diagram Use case atau diagram use case merupakan pemodelan untuk kelakuan (behaviour) sistem informasi yang akan dibuat. Use case mendeskripsikan sebuah interaksi antara satu atau lebih aktor dengan sistem informasi yang akan dibuat. Secara kasar, use case digunakan untuk mengetahui fungsi apa saja yang ada di dalam sebuah sistem informasi dan siapa saja yang berhak menggunakan fungsifungsi itu. [Rosa A.S - M.Shalahuddin, 2011 : 130] Syarat penamaan pada use case adalah nama didefinisikan sesederhana mungkin dan dapat dipahami. Ada dua hal utama pada use case yaitu pendefinisian apa yang disebut aktor dan use case. Aktor merupakan orang, proses, atau sistem lain yang berinteraksi dengan sistem informasi yang akan dibuat, di luar sistem informasi yang akan dibuat itu sendiri. Jadi walaupun simbol dari aktor adalah gambar orang, tapi aktor belum tentu orang. Use case merupakan fungsionalitas yang disediakan sistem sebagai unitunit yang saling bertukar pesan antar unit atau aktor. Berikut ini adalah simbol-simbol yang ada pada use case diagram : Tabel 2.2 Simbol-simbol yang ada pada Use Case Diagram [Rosa A.S M.Shalahuddin] Simbol Use case nama usecase Deskripsi Fungsionalitas yang disediakan sistem sebagai unit-unit yang saling bertukar pesan antar unit atau aktor; biasanya dinyatakan dengan menggunakan kata kerja di awal frase nama use case. http://digilib.mercubuana.ac.id/ 25 Lanjutan Tabel 2.2 Aktor / actor Orang, proses, atau sistem lain yang berinteraksi dengan sistem informasi yang akan dibuat diluar sistem informasi yang akan dibuat itu sendiri, jadi walaupun simbol dari aktor adalah gambar orang, tapi aktor belum tentu merupakan orang; biasanya dinyatakan menggunakan kata benda di awal frase nama aktor. nama aktor Asosiasi / association Komunikasi antara aktor dan use case yang berpartisipasi pada use case atau use case memiliki interaksi dengan aktor. Ekstensi / extend Relasi use case tambahan ke sebuah use case yang ditambahkan dapat berdiri sendiri walau tanpa use case tambahan itu; mirip dengan prinsip inheritance pada pemrograman berorientasi objek; biasanya use case tambahan memiliki nama depan yang sama dengan use case yang ditambahkan. «extends» Generalisasi / generalization Hubungan generalisasi dan spesialisasi (umum-khusus) antara dua buah use case dimana fungsi yang satu adalah fungsi yang lebih umum dari lainnya. Menggunakan / include / uses Relasi use case tambahan ke sebuah use case dimana use case yang ditambahkan memerlukan use case ini untuk menjalankan fungsinya atau sebagai syarat dijalankan use case ini. Ada dua sudut pandang yang cukup besar mengenai include di use case : Include berarti use case yang ditambahkan akan selalu dipanggil saat use case tambahan dijalankan. Include berarti use case yang tambahan akan selalu melakukan pengecekan apakah use case yang ditambahkan telah dijalankan sebelum use case tambahan dijalankan. «include» «uses» http://digilib.mercubuana.ac.id/ 26 3. Activity Diagram Menurut Rosa A.S dan M.Shalahuddin [2011:134], diagram aktivitas atau activity diagram menggambarkan workflow (aliran kerja) atau aktivitas dari sebuah sistem atau proses bisnis. Yang perlu diperhatikan disini adalah bahwa diagram aktivitas menggambarkan aktivitas sistem bukan apa yang dilakukan aktor, jadi aktivitas yang dapat dilakukan oleh sistem. Diagram aktivitas juga banyak digunakan untuk mendefinisikan hal-hal berikut : Rancangan proses bisnis, dimana setiap urutan aktivitas yang digambarkan merupakan proses bisnis sistem yang didefinisikan. Urutan atau pengelompokkan tampilan dari sistem / user interface, dimana setiap aktivitas dianggap memiliki sebuah rancangan antarmuka tampilan. Rancangan pengujian, dimana setiap aktivitas dianggap memerlukan sebuah pengujian yang perlu didefinisikan kasus ujinya. Berikut adalah simbol-simbol yang ada pada activity diagram : Tabel 2.3 Simbol-simbol yang ada pada Activity Diagram [Rosa A.S M.Shalahuddin] Simbol Deskripsi Status awal / initial state Status awal aktiivitas sistem. Sebuah diagram aktivitas memiliki sebuah status awal. Aktivitas Aktivitas yang dilakukan sistem, aktivitas biasanya diawali dengan kata kerja. aktivitas http://digilib.mercubuana.ac.id/ 27 Lanjutan Tabel 2.3 Percabangan / decision Asosiasi percabangan dimana jika ada pilihan aktivitas lebih dari satu. Penggabungan / join Asosiasi penggabungan dimana lebih dari satu aktivitas digabungkan menjadi satu. Status akhir / final state Satus akhir yang dilakukan sistem. Sebuah diagram aktivitas memiliki sebuah status akhir. Swimlane Memisahkan organisasi bisnis yang bertanggung jawab terhadap aktivitas yang terjadi. nama swimlane nama swimlane atau http://digilib.mercubuana.ac.id/ 28 Sequence Diagram 4. Menurut Rosa A.S dan M.Shalahuddin [2011:137], diagram sekuen (sequence diagram) menggambarkan kelakuan objek pada use case dengan mendeskripsikan waktu hidup objek dan message yang dikirimkan dan diterima antar objek. Oleh karena itu untuk menggambar diagram sekuen, maka harus diketahui objek-objek yang terlibat dalam sebuah use case beserta metode-metode yang dimiliki kelas yang diinstansiasi menjadi objek itu. Banyaknya diagram sekuen yang harus digambar adalah sebanyak pendefinisian use case yang memiliki proses sendiri, atau yang penting semua use case yang telah didefinisikan interaksi jalannya pesan sudah dicakup pada diagram sekuen, sehingga semakin banyak use case yang didefinisikan, maka diagram sekuen yang harus dibuat juga semakin banyak. Berikut adalah simbol-simbol yang ada pada sequence diagram : Tabel 2.4 Simbol-simbol yang ada pada Sequence Diagram [Rosa A.S - M.Shalahuddin] Simbol Aktor nama aktor Deskripsi Orang, proses, atau sistem lain yang berinteraksi dengan sistem informasi yang akan dibuat diluar sistem informasi yang akan dibuat itu sendiri, jadi walaupun simbol dari aktor adalah gambar orang, tapi aktor belum tentu merupakan orang; biasanya dinyatakan menggunakan kata benda di awal frase nama aktor. atau nama aktor tanpa waktu aktif http://digilib.mercubuana.ac.id/ 29 Lanjutan Tabel 2.4 Garis hidup / lifeline Menyatakan kehidupan suatu objek. Objek Menyatakan objek yang berinteraksi pesan. nama objek : nama kelas Waktu aktif Menyatakan objek dalam keadaan aktif dan berinteraksi pesan. Pesan tipe create Menyatakan suatu objek membuat objek yang lain, arah panah mengarah pada objek yang dibuat. <<create>> Pesan tipe call 1 : nama_metode() Pesan tipe send 1 : masukan Pesan tipe return 1 : keluaran Menyatakan suatu objek memanggil operasi / metode yang ada pada objek lain atau dirinya sendiri. Menyatakan bahwa suatu objek mengirimkan data / masukan / informasi ke objek lainnya, arah panah mengarah pada objek yang dikirimi. Menyatakan bahwa suatu objek yang telah menjalankan suatu operasi atau metode menghasilkan suatu kembalian ke objek tertentu, arah panah mengarah pada objek yang menerima kembalian. http://digilib.mercubuana.ac.id/ 30 2.8 Basis Data Object Oriented Menurut Connolly dan Begg (2005:15), “Basis data adalah sebuah koleksi logical data yang saling terhubung satu sama lain dan gambaran dari data tersebut dirancang untuk menemukan kebutuhan informasi pada suatu organisasi atau perusahaan”. Konsep Objek Oriented Database (OODB) bermula dari Objek Oriented Programming (OOP) yang kemudian dikembangkan menjadi Objek Oriented Design (OOD) dan pada akhirnya menjadi Objek Oriented Analysis (OOA). Didalam konsep objek oriented database kita dapat melakukan pemodelan data dari semua atribut-atribut khusus dari tiap model dan dapat dinyatakan dalam bahasa umum (natural). OODB pada dasarnya merupakan kosep dari pemrograman berorientasi objek secara umum ditambah dengan database sebagai media penyimpanan datanya yang berbentuk class-class, sehingga dalam hal ini masih berhubungan erat dengan Diagram ER (Entity Relational Diagram), walau sudah mengalami perubahan bentuk dalam hal memodelkan objek-objeknya. OODB masih menerapkan konsep dari Relational Database Manejemen Sistem (RDBMS). Mekanisme penyimpanan objek-objek didalam RDBMS ini sering dikenal dengan istilah ORDBMS (Objek Relational Database Managemen System). http://digilib.mercubuana.ac.id/ 31 2.9 PHP PHP pertama kali dibuat dan diperkenalkan oleh Rasmus Lerdof pada tahun 1995 dengan menggunakan nama PHP/FI. Generasi awal PHP/FI dibuat dari Perl, yang waktu itu digunakan untuk kebutuhan pribadi saja. Pada awalnya, PHP/FI merupakan bagian dari Personel Home Page Tools. Namun, karena kebutuhan pengguna web yang semakin kompleks, maka dikembangkan PHP/FI dengan menggunakan Bahasa C. Rasmus menulis sejumlah besar fungsi untuk pengaksesan ke dalam database. Penulisan itu juga bertujuan membangun halaman web menjadi dinamis. PHP/FI merupakan akronim dari Personel Home Page / Forms Interpreter. Pada awal penyusunan, PHP/FI hanya mempunyai fungsi dasar dari PHP yang ada sekarang ini. Jadi dengan kata lain, pondasi PHP sekarang ini adalah PHP/FI. Karena ketika pertama dibuat menggunakan Perl maka PHP/FI juga mempunyai susunan dan karakter pemrograman yang sama dengannya. Pada tahun 1997, dikeluarkan PHP/FI versi 2.0. Fungsi-fungsi pada PHP/FI ditulis dengan menggunakan bahasa C. Karena telah memiliki fungsi khusus untuk mengakses database maka pada tahun yang sama, terdapat kurang lebih 50.000 domain yang menggunakan PHP/FI sebagai bahasa pemrograman untuk website, atau sekitar 1% dari total domain yang ada pada waktu itu. Booming PHP/FI tersebut membuat semakin banyak orang yang tertarik untuk berpartisipasi mengembangkan PHP/FI. Berkat kerjasama dan kontribusi mereka, http://digilib.mercubuana.ac.id/ 32 PHP versi 3.0 pun dikeluarkan walau kala itu masih dalam tahap alpha. [M. Syafii : 1] Salah satu database server yang berhubungan erat dengan PHP adalah MySQL. Menurut Kusrini dan Koniyo Andri [2007], database yang berjalan dan dikendalikan oleh komputer dinamakan database server. Database server yang cukup dikenal saat ini adalah MySQL. Keluaran T.c.X, Data KonsultAB. Untuk menjalankan PHP dan MySQL kita membutuhkan web server. Web server yang juga dikenal dengan istilah HTTPD (Hypertext Transfer Protocol Daemon) atau HTTP server, adalah server yang bekerja untuk melayani request dari HTTP client, web server ke komputer server. PHP dan MySQL dapat bekerja sama dengan banyak server. Salah satu web server yang dikenal dan sudah terbukti ketangguhan serta konektifitasnya dengan PHP dan MySQL, adalah Apache. Seperti halnya PHP dan MySQL, Apache juga dikembangkan oleh komunitas open source di internet. Saat ini, Apache merupakan web server yang paling populer. Berdasarkan hasil penelitian Neteraft web Server Service pada tahun 2002, 63% website di dunia menggunakan Apache sebagai web server. 2.10 Pengertian XAMPP XAMPP adalah sebuah software web server Apache yang didalamnya sudah tersedia database server MySQL dan support [PHP programming]. XAMPP merupakan software yang mudah digunakan, gratis dan mendukung http://digilib.mercubuana.ac.id/ 33 instalasi di Linux dan Windows. Keuntungan lainnya adalah hanya menginstal sekali saja sudah tersedia Apache Web Server, MySQL Database Server, PHP Support (PHP 4 dan PHP 5) dan beberapa modul lainnya. Hanya bedanya kalau yang versi untuk Windows sudah dalam bentuk instalasi grafis dan yang Linux dalam bentuk file terkompresi tar.gz. Kelebihan lain yang berbeda dari versi untuk Windows adalah memiliki fitur untuk mengaktifkan sebuah server secara grafis, sedangkan Linux masih berupa perintah-perintah di dalam console. Oleh karena itu, yang versi Linux sulit dioperasikan. Dulu XAMPP untuk Linux dinamakan LAMPP, sekarang diganti namanya menjadi XAMPP FOR LINUX. Berikut adalah tampilan XAMPP untuk Windows : Gambar 2.3 Tampilan Jendela Awal XAMPP for Windows http://digilib.mercubuana.ac.id/ 34 Berikut ini adalah tampilan XAMPP Control Panel : Gambar 2.4 Tampilan XAMPP Control Panel Apache merupakan web server yang terpopuler saat ini. Server Apache sangat luwes, memenuhi standar HTTP, mengimplementasikan protokol terbaru dan sangat luwes dikonfigurasi, serta dapat ditambahkan modul lainnya melalui modul Apache. Tersedia untuk berbagai sistem operasi. Apache menyediakan fasilitas yang kaya, yang sangat dibutuhkan suatu server serius seperti otentikasi, pengaturan akses direktori, virtual host, kemampuan URL rewritting dan juga alias. Kemampuan melakukan content negotiation membuat Apache mampu melayani berbagai client secara otomatis, baik untuk berbagai browser yang memiliki kemampuan berbeda ataupun untuk device akses yang berbeda. Fungsi log yang dimiliki oleh Apache dapat dikirim http://digilib.mercubuana.ac.id/ 35 melalui proses piping, sehingga dapat dilakukan rotasi log, filter log, serta melakukan pemisahan log secara langsung. Awalnya Apache dikembangkan berdasarkan keinginan untuk memperbaiki web server yang saat itu populer (NCSA web server). Tetapi akhirnya mengalami perombakan dan penulisan ulang dan menjadi web server yang berdiri sendiri dan berbeda dengan NCSA. Kini malah mengalahkan kepopuleran NCSA web server. Pada tahun 1999 dibentuk Apache Software Foundation untuk mengurus perkembangan Apache ini. Apache telah membuktikan sebagai web server yang cepat, stabil dengan fitur yang paling kaya diantara web server lainnya. Saat ini proses Apache telah berkembang dan tidak hanya sekedar web server. Apache berkembang sejak versi pertamanya. Apache bersifat open source, artinya setiap orang boleh menggunakannya, mengambil dan bahkan mengubah kode programnya. Tugas utama Apache adalah menghasilkan halaman web yang benar kepada peminta, berdasarkan kode PHP yang dituliskan oleh pembuat halaman web. Jika diperlukan juga berdasarkan kode PHP yang dituliskan, maka dapat saja suatu database diakses terlebih dahulu (misalnya, dalam MySQL) untuk mendukung halaman web yang dihasilkan. 2.10.1 Mengenai PHP myAdmin Pengelolaan database dengan MySQL harus dilakukan dengan mengetikkan baris-baris perintah yang sesuai (command line) untuk setiap maksud tertentu. Jika kita ingin membuat database, ketikkan baris perintah yang sesuai untuk membuat database. jika kita ingin menghapus tabel, ketikkan baris http://digilib.mercubuana.ac.id/ 36 perintah yang sesuai untuk menghapus tabel. Hal tersebut tentu cukup menyulitkan, karena kita harus hafal dan mengetikkan perintahnya satu persatu. Banyak sekali perangkat lunak yang dapat digunakan untuk mengelola database dalam MySQL, salah satunya adalah phpMyAdmin. Dengan phpMyAdmin kita dapat membuat tabel, mengisi data, dan lain-lain dengan mudah tanpa harus menghafal perintahnya. Untuk mengaktifkan phpMyAdmin langkah-langkahnya adalah sebagai berikut : Setelah XAMPP ter-install, kita harus mengaktifkan web server Apache dan MySQL dari Control Panel XAMPP. Lalu jalankan browser kesayangan Anda (Internet Explorer, Mozzila Firefox, atau Opera). Lalu ketikkan alamat web berikut : http://localhost/phpmyadmin/ pada address bar, lalu tekan Enter. Langkah ketiga adalah, apabila telah tampak interface (tampilan antar muka) dari phpMyAdmin, kita bisa memulainya dengan mengetikkan nama database, nama tabel, dan seterusnya. 2.11 Pengertian MySQL MySQL merupakan software sistem manajemen database (Database Management System – DBMS) yang sangat populer di kalangan pemrograman web, terutama di lingkungan Linux dengan menggunakan script PHP dan Perl. http://digilib.mercubuana.ac.id/ 37 Software database ini kini telah tersedia juga pada platform sistem operasi Windows (98/ME atau pun NT/2000/XP). [M. Syafii, 2005 : 01] MySQL meupakan database yang paling populer digunakan untuk membangun aplikasi web yang menggunakan database sebagai sumber dan pengelola datanya. Kepopuleran MySQL dimungkinkan karena kemudahannya untuk digunakan, cepat secara kinerja query, dan mencukupi untuk kebutuhan database perusahaan-perusahaan skala menengah kecil. MySQL merupakan database yang digunakan oleh situs-situs berkemuka di internet untuk menyimpan datanya. Software database MySQL kini dilepas sebagai software manajemen database yang open source, sebelumnya merupakan software database shareware. Shareware adalah suatu software yang dapat didistribusikan secara bebas untuk keperluan penggunaan secara pribadi, tetapi jika digunakan secara komersial maka pemakai menjadikan software dapat didistribusikan secara bebas dan dapat dipergunakan untuk keperluan pribadi atau pun komersial, termasuk di dalamnya source code dari software tersebut. [M. Syafii, 2005 : 02] Database MySQL tersedia secara bebas cuma-cuma dan boleh digunakan oleh setiap orang, dengan lisensi open source GNU General Public License (GPL) atau pun lisensi komersial non GPL. Saat ini diperkirakan lebih dari 3 juta pemakai di seluruh dunia, dengan lebih dari setengah juta server yang memasangnya, termasuk di dalamnya Yahoo!, MP3.com, Motorola, NASA, Silicon Graphics, HP, Xerox, dan Texas Instruments. http://digilib.mercubuana.ac.id/ 38 Database MySQL, merupakan database yang menjanjikan sebagai alternatif pilihan database yang dapat dugunakan untuk sistem database personal atau organisasi kita. Oracle sebagai database besar telah membuat kit (modul) untuk memudahkan proses migrasi dari MySQL ke dalam Oracle, hal ini dapat menunjukkan bahwa Oracle telah memperhitungkan database MySQL sebagai database alternatif masa depan. Demikian juga dengan pengguna dari database MySQL, menunjukkan makin banyaknya perusahaan besar yang menggunakannya. 2.12 Mengenal Macromedia Dreamweaver 8 Macromedia Dreamweaver adalah sebuah HTML editor professional untuk mendesain secara visual dan mengelola situs atau halaman web. Saat ini terdapat software dari kelompok Macromedia yang belakangan banyak digunakan untuk mendesain suatu situs web, salah satunya adalah Macromedia Dreamweaver 8. Pada Macromedia Dreamweaver 8, terdapat beberapa kemampuan bukan hanya sebagai software untuk desain web saja, tetapi juga untuk menyunting kode serta pembuatan aplikasi web dengan menggunakan berbagai bahasa pemrograman web antara lain JPS, PHP, ASP, dan ColdFusion. Dreamweaver merupakan software utama yang digunakan oleh web designer maupun web programmer dalam mengembangkan suatu situs web. Hal ini disebabkan ruang kerja, fasilitas, dan kemampuan Dreamweaver yang mampu meningkatkan produktivitas dan efektivitas dalam desain mampu membangun http://digilib.mercubuana.ac.id/ 39 suatu situs web. Dreamweaver juga dilengkapi dengan fasilitas untuk manajemen situs yang cukup lengkap. Ketika memulai Dreamweaver tanpa membuka sebuah dokumen, akan tampil halaman awal Dreamweaver pada lembar kerja. Berikut adalah tampilan jendela halaman awal pada program Macromedia Dreamweaver 8 : Gambar 2.5 Tampilan Awal Jendela Halaman Macromedia Dreamweaver 8 [Adi Winarno : 2009] Ruang kerja pada Macromedia Dreamweaver 8 memiliki komponenkomponen yang memberikan fasilitas dan ruang untuk menuangkan kreasi. Komponen-komponen yang disediakan oleh ruang kerja Macromedia Dreamweaver 8 antara lain Insert Bar, Document Toolbar, Document Window, Panel Groups, Tag Selector, Property Inspector, dan Site Panel. http://digilib.mercubuana.ac.id/ 40 Berikut ini adalah tampilan lembar kerja untuk desain web pada Macromedia Dreamweaver 8 : Gambar 2.6 Tampilan Jendela Halaman Kerja Desain Web pada Macromedia Dreamweaver 8 [Adi Winarno : 2009] 2.13 Pengertian Dispensasi Dispensasi adalah pengecualian dari aturan karena adanya pertimbangan yang khusus, pembebasan dari suatu kewajaiban atau larangan. Selain itu, hak pengecualian berdasarkan tindakan hukum yang menyatakan suatu peraturan perundang-undangan tidak berlaku untuk suatu hal yang khusus. [istilahkata.com] http://digilib.mercubuana.ac.id/ 41 2.14 Pengertian Pembayaran Menurut Himawan Kusprianto dalam blognya, definisi dari pembayaran adalah perpindahan nilai antara dua pihak (pembeli dan penjual) yang secara bersamaan, terjadi pula perpindahan barang dan jasa secara berlawanan. Dalam setiap transaksi ekonomi selalu melibatkan pembayaran ini. Sedangkan sistem pembayaran adalah sistem yeng mencakup seperangkat aturan, lembaga dan mekanisme yang digunakan untuk melaksanakan pemindahan dana, guna memenuhi suatu kewajiban yang timbul dari suatu kegiatan ekonomi (UU No.23/1999 tentang Bank Indonesia Pasal 1). http://digilib.mercubuana.ac.id/