BAB 2 LANDASAN TEORI
2.1 Teori Umum 2.1.1 Database 2.1.1.1 Pengertian Data Menurut Whitten, Bentley, dan Dittman (2004, p23), pengertian dari data adalah fakta mentah mengenai orang, tempat, kejadian, dan hal-hal yang penting dalam organisasi.
2.1.1.2 Pengertian Database Menurut Connolly dan Begg (2002, p14), pengertian dari database adalah kumpulan dari data yang terhubung secara logis dan deskripsi dari data tersebut yang dirancang untuk menemukan informasi yang dibutuhkan dari sebuah organisasi.
2.1.1.3 Pengertian DBMS Menurut Connolly dan Begg (2002, p16), pengertian dari DBMS (Database Management System) adalah sistem software yang memungkinkan pengguna untuk mendefinisikan, membuat, memelihara, dan mengontrol akses ke database.
2.1.1.4 Multiplicity Menurut Connolly dan Begg (2002, pp344-348), multiplicity adalah banyaknya kemungkinan kejadian dari tipe entity yang mungkin memiliki hubungan dengan kejadian tunggal dari sebuah tipe entity yang terhubung melalui relasi tertentu. 5
3 tipe hubungan : •
One to One Misalkan entity mahasiswa dengan entity orang tua mahasiswa, satu mahasiswa hanya memiliki satu orang tua.
•
One to Many Misalkan entity pelanggan dengan entity transaksi pembelian, satu pelanggan dapat mempunyai banyak transaksi pembelian.
•
Many to Many Misalkan entity produk dengan entity pelanggan, satu produk dapat dibeli oleh banyak pelanggan dan satu pelanggan dapat membeli banyak produk.
2.1.1.5 Pengertian SQL Menurut Connolly dan Begg (2002, p111), pengertian dari SQL (Structured Query Language) adalah sebuah bahasa yang dirancang untuk menggunakan relasi untuk mengubah masukkan (input) menjadi keluaran (output) yang dibutuhkan.
2.1.1.6 Komponen SQL Menurut Connolly dan Begg (2002, p111), SQL terdiri dari 2 komponen utama yaitu : •
DDL (Data Definition Language) Untuk mendefinisikan struktur database dan mengontrol akses ke data.
•
DML (Data Manupulation Language) Untuk mendapatkan dan memperbaharui data.
6
2.1.1.7 ODBC Menurut Connolly dan Begg (2002, p677), ODBC (Open Database Connectivity) adalah teknologi dari Microsoft yang menyediakan antarmuka umum untuk mengakses SQL database yang beraneka ragam, berdasarkan pada SQL sebagai standar untuk mengakses data.
2.1.1.8 JDBC Menurut Connolly dan Begg (2002, p978), JDBC (Java Database Connectivity) adalah pendekatan paling menonjol untuk mengakses relational DBMS dari Java. Paket JDBC mendefinisikan API pengakses database yang mendukung fungsi dasar SQL dan memungkinkan akses ke relational DBMS yang lebih luas.
2.1.2 Web 2.1.2.1 URL Menurut Connolly dan Begg (2002, p952), URL (Uniform Resource Locator) adalah kumpulan karakter yang menunjukkan lokasi atau alamat dari sebuah sumber dan bagaimana sumber akan diakses.
2.1.2.2 LAN Menurut Thomas (1997, p442), LAN (Local Area Network) adalah suatu bentuk atau sistem jaringan dimana dua atau lebih komputer dapat saling bertukar data melalui kabel atau alat penyiar (broadcast) lainnya. “Local” merupakan kata yang mengandung arti yang relatif, maksudnya adalah komputer-komputer yang terhubung pada suatu
7
jaringan dialokasikan di dalam area dengan tingkat proksimitas(proximity) yang sesuai satu sama lain.
2.1.2.3 HTTP Menurut Connolly dan Begg (2002, p949), HTTP (Hyper Text Transfer Protocol) adalah aturan yang digunakan untuk mengirimkan halaman web.
Transaksi HTTP terdiri dari tahapan-tahapan berikut : •
Connection : Client menentukan koneksi ke web server.
•
Request : Client mengirimkan pesan permintaan ke web server.
•
Response : Web server mengirimkan respon ke client.
•
Close : Koneksi ditutup oleh web server.
2.1.2.4 Web Browser Menurut Deitel, Deitel, dan Nieto (2001, p42), web browser adalah sebuah program yang memperlihatkan beberapa file di internet dan dapat diakses secara visual dengan cara yang menyenangkan. Contoh dari web browser adalah Internet Explorer dan Opera.
2.1.2.5 Web Server Menurut Deitel, Deitel, dan Nieto (2001, p298), web server adalah sebuah mesin yang menjalankan paket software.
8
2.1.3 Software Engineering 2.1.3.1 Pengertian Software Menurut Pressman (2005, p36), pengertian software adalah instruksi yang ketika dieksekusi menyediakan fitur, fungsi, dan kemampuan yang diinginkan.
2.1.3.2 Kualitas Software 6 karakteristik utama kualitas software menurut Hughes dan Cotterell (2006, p263) : •
Functionality Fungsi-fungsi yang sebuah produk software sediakan untuk memuaskan kebutuhan pengguna.
•
Reliability Kemampuan software untuk menjaga tingkat performanya.
•
Usability Usaha yang dibutuhkan untuk menggunakan software.
•
Efficiency Sumber daya fisik yang digunakan ketika software dijalankan.
•
Maintainability Usaha yang dibutuhkan untuk membuat perubahan-perubahan pada software.
•
Portability Kemampuan software untuk dipindahkan ke lingkungan yang berbeda.
9
2.1.3.3 Pengertian Software Engineering Menurut Pressman (2005, p53), pengertian software engineering adalah aplikasi dari pendekatan sistematis, teratur, dapat dihitung untuk pengembangan, pengoperasian, dan pemeliharaan software.
2.1.3.4 Model Waterfall Menurut Pressman (2005, p79), model waterfall menunjukkan pendekatan sistematis, berurutan untuk pengembangan software yang dimulai dengan spesifikasi keperluan
pelanggan
dan
perkembangan-perkembangan
melalui
perencanaan,
pemodelan, dan pembangunan.
Gambar 2.1 Model Waterfall
2.1.4 OOP 2.1.4.1 Pengertian OOP Menurut
Hubbard
(1999,
p110),
pengertian
OOP
(Object
Oriented
Programming) adalah penulisan program yang mendefinisikan kelas-kelas metodenya untuk melaksanakan instruksi programnya. Program dirancang dengan memutuskan objek-objek apa saja yang akan digunakan dan aksi-aksi apa yang akan ditampilkan.
10
2.1.4.2 Encapsulation Menurut Deitel dan Deitel (2007, p21), encapsulation adalah proses pembungkusan atribut-atribut dan operasi-operasi menjadi objek dimana atribut dan operasi objek terikat bersama. Objek memiliki properti information hiding yang berarti objek mengetahui bagaimana berkomunikasi satu sama lainnya melalui antarmuka yang telah didefinisikan, tapi tidak diizinkan untuk mengetahui detil implementasinya.
2.1.4.3 Inheritance Menurut Deitel dan Deitel (2007, p422), inheritance adalah pembuatan suatu kelas dengan menyerap anggota-anggota kelas yang ada dan memodifikasinya dengan kemampuan baru.
2.1.4.4 Java 2.1.4.4.1 JSP Menurut Deitel dan Deitel (2007, p1234), JSP (JavaServer Pages) adalah merupakan teknologi perluasan dari teknologi servlet. Setiap JSP diterjemahkan menjadi servlet oleh JSP container. JSP memungkinkan programmer aplikasi web untuk membuat isi dinamis dengan menggunakan predefined component dan dengan berinteraksi dengan komponen-komponen dengan menggunakan server-side scripting.
2.1.4.4.2 Servlet Menurut Deitel dan Deitel (2007, p1234), servlet adalah tingkatan paling rendah dari teknologi pengembangan web di java. Servlet memperluas fungsionalitas dari server dengan mengizinkan server membangun isi yang dinamis. Servlet container menerima 11
HTTP request dari client dan mengarahan setiap request ke servlet yang sesuai, kemudian servlet memproses request dan mengembalikan respon yang sesuai ke client.
2.1.4.4.3 JavaBean Menurut Deitel dan Deitel (2007, p1234), JavaBean adalah komponen yang dapat digunakan kembali yang mengikuti beberapa peraturan untuk desain kelas.
2.1.5 Diagram 2.1.5.1 ERD Menurut Whitten, Bentley, dan Dittman (2004, p281), ERD (Entity Relationship Diagram) adalah model data yang menggunakan beberapa notasi untuk menggambarkan data dalam konteks entity dan hubungan yang dideskripsikan oleh data tersebut.
Gambar 2.2 ERD
12
2.1.5.2 UML 2.1.5.2.1 Pengertian UML Menurut Bennett, Skelton, dan Lunn (2005, p8), pengertian UML (Unified Modeling Language) adalah bahasa visual yang dapat digunakan dalam pengembangan sistem software. Bahasanya berupa kumpulan aturan yang menjelaskan bagaimana sistem software dapat digunakan. Sedangkan menurut Whitten, Bentley, dan Dittman (2004, p408), pengertian UML (Unified Modeling Language) adalah satu kumpulan konvensi pemodelan yang digunakan untuk menentukan atau menggambarkan sebuah sistem software yang terkait dengan objek.
2.1.5.2.2 Class Diagram Menurut Bennett, Skelton, dan Lunn (2005, p42), class diagram adalah diagram yang menunjukkan blok-blok bangunan dari semua sistem berorientasi objek, potensi kolaborasi di antara kelas-kelas, pengiriman pesan, dan relasi di antara kelas-kelas. Sedangkan menurut Whitten, Bentley, dan Dittman (2004, p432), class diagram adalah gambar grafis mengenai struktur objek statis dari suatu sistem, menunjukkan kelas-kelas objek yang menyusun sebuah sistem dan juga hubungan antara objek tersebut.
13
Gambar 2.3 Class Diagram
2.1.5.2.3 Usecase Diagram Menurut Bennett, Skelton, dan Lunn (2005, p21), usecase diagram adalah diagram yang digunakan untuk menjelaskan sifat-sifat dari beberapa entity seperti sistem atau subsistem. Bagaimanapun juga detilnya akan dijelaskan secara rinci menggunakan model lainnya. Sedangkan menurut Whitten, Bentley, dan Dittman (2004, p257), usecase diagram adalah diagram yang menggambarkan interaksi antara sistem dengan sistem eksternal dan pengguna. Dengan kata lain, secara grafis menggambarkan siapa yang akan menggunakan sistem dan dengan cara apa pengguna mengharapkan untuk berinteraksi dengan sistem.
14
Gambar 2.4 Usecase Diagram
2.1.5.2.4 Sequence Diagram Menurut Whitten, Bentley, dan Dittman (2004, p663), sequence diagram adalah diagram yang memodelkan logika sebuah usecase dengan cara menggambarkan interaksi pesan di antara objek-objek dalam rangkaian waktu.
Gambar 2.5 Sequence Diagram 15
2.1.6 Interaksi Manusia Komputer 2.1.6.1 8 Aturan Emas Menurut Shneiderman (1998, pp74-75), 8 aturan emas, yaitu: •
Usahakan konsisten (strive for consistency) Aturan ini merupakan yang paling penting, karena konsistensi memiliki banyak bentuk. Konsistensi dalam hal urutan aksi harus disesuaikan dengan situasi yang sama, terminologi yang identik harus digunakan dalam menu dan layar bantuan. Konsistensi dalam hal warna, tampilan, kapitalisasi, font, dan seterusnya harus disesuaikan.
•
Memungkinkan penggunaan shortcut untuk pengguna (enable frequent users to use shortcuts) Seiring dengan meningkatnya keahlian pengguna dari suatu sistem, pengguna menginginkan pengurangan dalam hal interaksi terhadap sistem dan peningkatan kecepatan dalam interaksi terhadap sistem agar pekerjaan atau tugas cepat terselesaikan.
•
Memberikan umpan balik yang informatif (offer informative feedback) Untuk setiap sistem diharapkan adanya suatu umpan balik bagi pengguna. Respon yang diberikan tergantung aksi yang dilakukan oleh pengguna.
16
•
Merancang dialog sebagai penutupan (design dialogs to yield closure) Urutan aksi seharusnya diatur menurut kelompok tertentu yang terdiri dari awal, tengah, dan akhir. Umpan balik yang informatif kepada pengguna pada taraf akhir dari suatu kelompok aksi akan memberikan kepuasan kepada pengguna bahwa aksi yang mereka lakukan berhasil dengan baik, sehingga akan memberika kesan kepada pengguna bahwa ia aman untuk melakukan aksi selanjutnya.
•
Memberikan pencegahan kesalahan dan penanganan kesalahan sederhana (offer error prevention and simple error handling) Sebisa mungkin, suatu sistem dirancang agar pengguna tidak melakukan kesalahan yang serius. Jika pengguna akhirnya melakukan suatu kesalahan, maka sistem hendaknya memberikan peringatan yang sederhana dan jelas.
•
Memungkinkan pembalikan aksi dengan mudah (permit easy reversal of actions) Sebisa mungkin, sekumpulan aksi harus dirancang untuk dapat melakukan pembalikan kembali ke keadaan sebelum aksi-aksi tersebut dijalankan. Aksi yang dimaksud bisa berupa aksi tunggal, aksi memasukkan data ke dalam database, atau sekumpulan aksi yang lengkap seperti memasukkan nama dan alamat.
17
•
Mendukung pusat kendali internal (support internal locus of control) Pengguna yang berpengalaman biasanya memiliki keyakinan bahwa mereka bertanggung jawab terhadap sistem dan sistem akan memberikan respon terhadap aksi yang mereka lakukan. Respon yang tidak jelas, urutan aksi yang tidak jelas dalam memasukan data dan kesulitan dalam memperoleh informasi serta ketidakmampuan untuk mendapatkan hasil sesuai aksi yang dilakukan akan menimbulkan kekecewaan dan keraguan bagi pengguna.
•
Mengurangi beban ingatan jangka pendek (reduce short-term memory load) Keterbatasan daya ingat manusia dalam memproses informasi mengakibatkan suatu tampilan harus dirancang sesederhana mungkin dan frekwensi pergerakan layar dikurangi.
2.1.7 MVC Dalam arsitektur MVC (Model View Controller) logika dan komponenkomponen terbagi dalam 3 kategori (Allamaraju et al, 2000, pp1222-1223): •
Model : Menggambarkan logika inti bisnis dan status. Model biasanya memetakan ke data dalam database perusahaan dan juga akan mengandung logika inti bisnis yang dimiliki data tersebut.
•
View : Menampilkan hasil yang sesuai dengan permintaan client. Fungsinya murni untuk menampilkan logika.
•
Controller : Merupakan komponen khusus suatu aplikasi aplikasi yang mendefinisikan proses atau cara kerja. Controller mengandung logika yang
18
mencapai fungsionalitas dari sistem dengan cara memanipulasi gabungan komponen model.
2.2 Teori Khusus 2.2.1 Analisis dan Perancangan Sistem 2.2.1.1 Pengertian Analisis Sistem Menurut Whitten, Bentley, dan Dittman (2004, p33), pengertian dari analisis sistem adalah studi domain masalah bisnis untuk merekomendasikan perbaikan dan menspesifikasikan persyaratan dan prioritas bisnis untuk solusi.
2.2.1.2 Pengertian Perancangan Sistem Menurut Whitten, Bentley, dan Dittman (2004, p34), pengertian dari perancangan sistem adalah spesifikasi atau konstruksi solusi yang teknis dan berbasis komputer untuk persyaratan bisnis yang diidentifikasikan dalam analisis sistem.
19