BAB 2 LANDASAN TEORI
2.1
Pendekatan Basis Data 2.1.1
Pengertian Basis Data Basis data adalah sekumpulan relasi data logika dan deskripsi dari data,
dirancang untuk memenuhi kebutuhan organisasi. (Connolly dan Begg, 2005). Sedangkan sistem basis data adalah sekumpulan aplikasi progam yang berinteraksi dengan database melalui DBMS dan basis data itu sendiri. (Connolly dan Begg, 2005). Menurut Michael V. Manino (2001), basis data adalah sekumpulan data persisten yang bisa di bagi (shared) dan saling berhubungan (interrelated). Persisten dalam arti data disimpan pada media penyimpanan yang stabil, contoh : Magnetic Disk. Dapat di bagi (shared) berarti basis data memiliki banyak kegunaan dan banyak pengguna sekaligus. Sedangkan saling berhubungan (interralated) berarti data yang disimpan dalam unit-unit terpisah bisa saling berhubungan untuk menyediakan data yang utuh. Dari berbagai sumber definisi di atas, maka dapat disimpulkan bahwa basis data adalah sekumpulan relasi data persisten yang terhubung secara logika dimana data tersebut merupakan deskripsi dari satu atau lebih aktivitas dari organisasi yang bersangkutan yang digunakan oleh aplikasi sistem perusahaan yang bisa dibagi (shared) dan saling berhubungan (interrelated) serta dirancang untuk memenuhi kebutuhan organisasi. Sedangkan sistem basis data dapat disimpulkan 7
8
sebagai sekumpulan aplikasi progam yang berinteraksi dengan basis data melalui DBMS dan basis data itu sendiri serta merupakan suatu sistem penyimpanan record yang terkomputerisasi.
2.1.2 Database Management System (DBMS) 2.1.2.1 Pengertian Database Management System Database Management System atau Sistem Manajemen Basis Data adalah suatu sistem perangkat lunak yang memungkinkan user untuk mendefinisikan, merawat, dan mengatur pengaksesan terhadap basis data (Connolly, 2005). DBMS mempunyai tiga fasilitas utama yaitu: a. Data Definition Languages (DDL) Memperbolehkan user untuk mendefinisikan basis data, membuat spesifikasi basis data, struktur data, dan constraint data untuk disimpan dalam bentuk basis data. b. Data Manipulation Languages (DML) Memperbolehkan
pengguna
untuk
memasukkan,
memperbaharui,
menghapus, dan mengirim data dari suatu basis data. c. Data Control Languages (DCL) Memperbolehkan pengguna untuk menjaga agar hanya user yang memiliki hak akses yang dapat melakukan suatu aksi.
9
2.1.2.2 Komponen Database Management System Terdapat lima komponen DBMS yaitu: a. Hardware (Perangkat Keras) Perangkat Keras digunakan untuk menjalankan DBMS dan aplikasi. Contoh : Single Personal Computer, Single Main Frame. b.
Software (Perangkat Lunak) Komponen perangkat lunak yang terdiri dari perangkat lunak DBMS itu sendiri dan program-program aplikasi, bersamaan dengan sistem operasi, termasuk perangkat lunak jaringan jika DBMS tersebut menggunakan jaringan.
c. Data Merupakan komponen yang paling penting dalam DBMS, khususnya dari sudut pandang end user mengenai data. Data merupakan komponen yang merupakan inti dari DBMS itu sendiri. d. Prosedur Merupakan cara untuk menjalankan sistem, seperti bagaimana masuk ke dalam DBMS, memulai dan menghentikan DBMS, dan juga bagaimana cara untuk membuat backup data dari suatu basis data.
10
e. Manusia Komponen terakhir dalam DBMS adalah manusia. Manusia yang terlibat dengan sistem DBMS adalah Database Administrator (DBA), perancang basis data, pengembang aplikasi, dan end user.
Gambar 2.1 : Gambar Komponen Database Management System
2.1.3 Database System Development Lifecycle (DSDLC) Terdapat tahapan–tahapan yang dilalui dalam merancang sebuah sistem basis data yang disebut dengan Database System Development Lifecycle atau disingkat dengan DSDLC. Untuk sistem basis data yang kecil, maka lifecycle yang terjadi tidaklah terlalu kompleks, sedangkan untuk sistem basis data yang besar, lifecycle yang terjadi bisa menjadi sangat kompleks. Berikut ini adalah gambar dari siklus hidup sebuah aplikasi basis data (Connolly dan Begg 2005) :
11
Gambar 2.2 : Gambar Database System Development Lifecycle (DSDLC) a. Database Planning Tujuan dari tahap ini adalah merencanakan agar tahap–tahap dari aplikasi basis data dapat direalisasikan secara efektif dan efisien. Pada tahap ini, penentuan misi dari proyek basis data sangatlah penting untuk menentukan tujuan utama dari aplikasi basis data.
12
b. System Definition Menggambarkan ruang lingkup dan batasan dari aplikasi basis data, pandangan user, dan daerah aplikasi basis data. Pandangan user mendefinisikan apa yang dibutuhkan pada sebuah aplikasi basis data dari sudut pandang sebuah jabatan tertentu atau daerah aplikasi basis data. Sebuah aplikasi basis data dapat memiliki satu atau lebih pandangan user. c. Requirement Collection and Analysis Proses pengumpulan dan analisis informasi mengenai bagianbagian dari sebuah organisasi yang didukung oleh aplikasi basis data, dan menggunakan informasi tersebut untuk mengidentifikasikan kebutuhan user akan sistem yang baru. Ada 3 (tiga) pendekatan untuk mengatur kebutuhan dari sebuah aplikasi basis data dengan banyak pandangan user yaitu : 1. The Centralized approach Kebutuhan akan setiap user dikumpulkan menjadi satu kesatuan kebutuhan untuk aplikasi basis data yang baru. 2. The view integration approach Kebutuhan akan setiap user digunakan untuk membangun model data yang terpisah, yang kemudian hasil dari model data tersebut digabung di dalam tahapan database design. 3. A combination of both approach Pendekatan yang merupakan gabungan dari kedua pendekatan diatas.
13
d. Database Design Suatu proses diperlukan bagi perancangan basis data yang dibagi menjadi tiga tahap utama, yaitu perancangan basis data konseptual, perancangan basis data logikal, dan perancangan basis data fisikal (Connolly dan Begg, 2005). Dalam tahap ini, akan dilakukan peninjauan ulang dari pendekatan utama ke desain basis data. Kemudian akan dibahas tujuan dan kegunaan dari model data dalam desain basis data. Pada perancangan basis data terdapat tiga tahap utama yaitu : 1.
Perancangan Basis Data Konseptual Tahap - tahap dalam perancangan konseptual basis data : Tahap 1: Membangun Model Data Konseptual Lokal untuk setiap View •
Tahap 1.1 : Mengidentifikasikan entitas.
•
Tahap 1.2 : Mengidentifikasikan hubungan.
•
Tahap 1.3 : Mengidentifikasikan dan Menghubungkan Atribut dengan Entitas atau Relasinya.
•
Tahap 1.4 : Menentukan Domain Atribut.
•
Tahap 1.5 : Menentukan Atribut-Atribut Candidate, Primary, dan Alternate Key.
•
Tahap 1.6 (optional step) : Mempertimbangkan Penggunaan dari Konsep Permodelan Enhanced.
•
Tahap 1.7 : Memerikasa Model untuk Redudansi
14
•
Tahap 1.8 : Melakukan Validasi Model Konseptual Lokal terhadap Transaksi User.
•
Tahap 1.9 : Meninjau Ulang Model Data Konseptual dengan User.
2. Perancangan Basis Data Logikal Tahap - tahap dalam perancangan logikal basis data : Tahap 2 : Membangun dan Memvalidasi Model Data Logikal Global untuk Setiap Sudut Pandang. •
Tahap 2.1 (optional): Menghilangkan bagian yang tidak sesuai dengan model relasi.
•
Tahap 2.2 : Validasi Relasi dengan Menggunakan Teknik Normalisasi.
•
Tahap 2.3 : Validasi Relasi dengan Transaksi-Transaksi yang Sesuai dengan Kebutuhan User.
•
Tahap 2.4 : Menentukan Batasan-Batasan Integritas.
•
Tahap 2.5 : Meninjau Ulang Model Data Logikal Lokal terhadap Kebutuhan User.
•
Tahap 2.6 (optional) : Menggabungkan model data logikal lokal ke dalam model data logikal global. 9 Tahap 2.6.1 : Menggabungkan Model Data Logikal Lokal ke dalam Model Data Logikal Global. 9 Tahap 2.6.2 : Memvalidasi Model Data Logikal Global.
15
9 Tahap 2.6.3 : Meninjau Ulang Model Data Logika Global Terhadap Kebutuhan User. •
Tahap 2.7 : Memeriksa Model Data untuk Kebutuhan Masa Depan.
3. Perancangan Basis Data Fisikal Tahap - tahap dalam perancangan fisikal basis data : Tahap 3 : Menerjemahkan Model Data Logikal Global untuk DBMS yang Digunakan. •
Tahap 3.1 : Merancang Relasi Dasar
•
Tahap 3.2 : Merancang Representasi dari Derived Data.
•
Tahap 3.3 : Merancang Batasan Umum.
Tahap 4 : Merancang Representasi Fisikal •
Tahap 4.1 : Menganalisa Transaksi.
•
Tahap 4.2 : Memilih Organisasi file.
•
Tahap 4.3: Memilih Indeks.
•
Tahap 4.4 : Memperkirakan Kebutuhan Disk Space.
Tahap 5 : Perancangan User Views. Tahap 6 : Perancangan Mekanisme Keamanan. Tahap 7 : Mempertimbangkan Kemunculan Redudansi Terkontrol. •
Tahap 7.1 : Menggabungkan relasi 1:1
•
Tahap 7.2 : Melakukan duplikasi pada atribut non key pada relasi 1:* untuk mengurangi penggunaan joins.
16
•
Tahap 7.3 : Melakukan duplikasi pada atribut foreign key pada relasi 1:* untuk mengurangi penggunaan joins.
•
Tahap 7.4 : Melakukan duplikasi pada atribut pada relasi *:* untuk mengurangi penggunaan joins.
•
Tahap 7.5 : Mengenali repeating groups.
•
Tahap 7.6 : Menggabungkan lookup tables dengan relasi dasar.
•
Tahap 7.7 : Membuat tabel ekstraksi.
Tahap 8 : Memonitor Sistem Operasional. e. DBMS Selection (optional) Pada tahap ini dilakukan pemilihan DBMS yang sesuai dan mendukung aplikasi basis data. Tahapan dalam memilih DBMS yang tepat antara lain : 1.
Mendefinisikan syarat-syarat sebagai referensi. Untuk menentukan tujuan dan ruang lingkup dari pembelajaran dan tugas yang harus dikerjakan.
2.
Daftar singkat dari dua atau tiga produk. Kriteria yang diperlukan untuk keberhasilan implementasi untuk menghasilkan produk DBMS seperti dana yang tersedia, tingkat dukungan vendor, kecocokan dengan perangkat lunak lainnya, dan apakah produk berjalan pada perangkat keras tertentu.
17
3.
Mengevaluasi produk–produk. Terdapat beberapa fitur yang digunakan untuk mengevaluasi produk-produk DBMS. Untuk tujuan dari evaluasi, fitur-fitur ini dapat digabung menjadi sebuah kelompok.
4.
Merekomendasikan pilihan dan membuat laporan. Tahap
terakhir
dari
pemilihan
DBMS
ini
adalah
mendokumentasikan proses dan menghasilkan pernyataan akan penemuan dan rekomendasi dari produk DBMS tertentu. f. Application Design Merancang desain untuk user interface dan program aplikasi yang menggunakan dan memproses basis data. Terdapat 2 (dua) aspek penting dalam mendesain aplikasi, yaitu : 1.
Transaction Design Suatu aksi yang dilakukan oleh seorang user atau program aplikasi untuk mengakses atau mengubah isi dari basis data. Transaksi mempresentasikan keadaan sesungguhnya seperti : registrasi klien, peminjaman alat-alat. Transaksi semacam ini harus dimasukkan kedalam basis data untuk menjamin data yang berada di basis data tetap dalam terkini dan mendukung informasi yang dibutuhkan oleh user.
18
Terdapat 3 (tiga) jenis transaksi antara lain : a.
Retrieval transaction : Digunakan untuk mendapatkan data untuk diperlihatkan di monitor atau di dalam pembuatan laporan.
b.
Update transaction : Digunakan untuk memasukkan record baru, menghapus record lama, ataupun mengubah record yang ada.
c.
Mixed transaction : Melibatkan kedua jenis transaksi yaitu mendapatkan dan mengupdate data.
2.
User Interface Design Sebelum mengimplementasikan sebuah laporan, penting sekali untuk membuat sebuah layout. Beberapa petunjuk penting untuk membuat report antara lain : a.
Penetapan judul yang bermakna Informasi yang disampaikan dalam judul harus jelas.
b.
Instruksi yang dapat dipahami Menggunakan istilah yang mudah dimengerti dan seharusnya dapat menyampaikan instruksi kepada user.
c.
Pengelompokan logika dan urutan kolom Kolom yang saling berhubungan seharusnya diurutkan bersamaan dalam laporan.
d.
Tampilan form yang menarik Laporan yang dibuat harus dapat menarik bagi user.
19
e.
Penggunaan judul kolom yang jelas Judul kolom haruslah mudah diketahui.
f.
Penggunaan istilah dan singkatan yang konsisten
g.
Penggunaan warna yang konsisten Warna digunakan untuk tampilan dan memperjelas pesan yang penting.
h.
Ruang dan batasan harus terlihat untuk mengisi kolom Seorang user seharusnya dapat melihat ruang yang tersedia untuk setiap kolomnya.
i.
Pergerakan kursor yang baik
j.
Perbaikan kesalahan untuk satu huruf dan semua kolom
k.
Pesan error pada nilai yang tidak dapat diterima Pesan error harus muncul jika user melakukan suatu kesalahan.
l.
Kolom pilihan harus terlihat dengan jelas
m. Terdapat kolom untuk pesan penjelasan n.
Pemberian tanda selesai Harus jelas bagi user ketika proses pengisian laporan selesai.
g. Prototyping (optional) Proses membangun sebuah model kerja dari aplikasi basis data. Tujuan utama dari tahap ini adalah untuk member izin user menggunakan prototype untuk mengidentifikasikan fitur dalam sistem berjalan baik, dan jika
20
memungkinkan dapat memberi saran perbaikan atau menambah fitur baru ke dalam aplikasi basis data. h. Implementation Proses realisasi fisikal dari pembuatan basis data yang baru dan desain aplikasi. Implementasi basis data menggunakan DDL (Data Definition Language) dari DBMS yang terpilih, sedangkan program aplikasi di implementasikan dengan 3GL atau 4GL (Third or Fourth Generation Language). i. Data Conversion and Loading Mengirim data ke basis data yang baru dan mengubah aplikasi yang berjalan ke basis data yang baru. Tahap ini dilakukan hanya jika sistem basis data yang baru menggantikan sistem basis data yang lama. j. Testing Suatu proses mengeksekusi program aplikasi dengan menemukan kesalahan apa saja yang terjadi. Sebelum program aplikasi dipakai, sistem basis data yang dibuat harus benar-benar dilakukan uji coba. Sebaiknya menggunakan perencanaan testing dan menggunakan data yang realistis, sehingga keseluruhan sistem dapat diuji coba. k. Operational Maintainance Suatu proses memantau dan memelihara sistem dan diikuti dengan instalasi pada sistem yang berjalan. Proses pemantauan sangat penting untuk menjaga kelangsungan sistem dapat berjalan dengan baik atau tidak.
21
2.1.4 Entitiy Relationship Modeling (ER Modeling) 2.1.4.1 Definisi ER Modeling ER Modelling adalah sebuah pendekatan top-down untuk merancang basis data yang dimulai dengan mengidentifikasi data yang penting yang disebut entitas dan relationship antar data harus dipresentasikan dalam model (Connoly, 2005).
2.1.4.2 Konsep ER Modeling Beberapa konsep dasar dalam model E-R yaitu : •
Entitas (Entity) Entity adalah sekumpulan objek yang memiliki property yang sama,
yang
diidentifikasikan
di
dalam
organisasi
karena
keberadaannya yang bebas (independent existence) (Connolly, 2005). Sedangkan entity occurence adalah sebuah objek dari satu entity yang dapat diidentifikasikan secara unik (Connolly, 2005). Setiap entity dilambangkan dengan sebuah persegi panjang yang diberi nama dari entity tersebut. Nama entity biasanya adalah kata benda tunggal. Representasi diagram entity terlihat pada gambar 2.3.
22 Entity
Staff
Branch
Gambar 2.3 : Gambar Representasi Diagram dari Tipe Entity Pegawai dan Cabang (Connolly, 2005) Entity dapat diklasifikasikan menjadi : •
Entity Kuat, yaitu tipe entity yang keberadaannya tidak bergantung pada tipe entity lainnya (Connolly, 2005).
•
Entity Lemah, yaitu tipe entity yang keberadaannya bergantung pada tipe entity lainnya (Connolly, 2005).
Strong
Client ClientNo {PK} Name fName lName telNo
Weak
States ►
Preference prefType maxRent
Gambar 2.4 : Gambar Representasi Diagram Entity Kuat dan Entity Lemah (Connolly, 2005)
23
•
Relationship Relationship adalah hubungan antar entity yang memiliki arti (Connolly, 2005). Sedangkan relationship occurence adalah sebuah hubungan yang dapat diidentifikasikan secara unik, yang meliputi sebuah kejadian (occurrence) dari setiap entity di dalam relationship (Connolly, 2005). Relationship
digambarkan
dengan
sebuah
garis
yang
menghubungkan entity – entity yang saling berhubungan. Garis tersebut diberi nama sesuai dengan nama hubungannya dan diberi tanda panah satu arah di samping nama hubungannya. Biasanya sebuah relationship dinamakan dengan menggunakan kata kerja, seperti frase singkat yang meliputi sebuah kata kerja seperti DisewaOleh. Sedangkan tanda panah ditempatkan di samping nama relationship yang mengindikasikan arah bagi pembaca untuk mengartikan nama dari suatu relationship ditulis dengan huruf besar. Representasi diagram dari suatu tipe relationship terlihat pada gambar 2.5. Relationship name
Staff
◄Has
Branch
Branch has Staff
Gambar 2.5 : Gambar Representasi Diagram Relationship (Connolly, 2005)
24
•
Atribut Atribut adalah property sebuah entity atau relationship (Connolly, 2005). a.
Domain Attribute Domain attribute merupakan kumpulan dari nilai – nilai yang diperbolehkan untuk satu atau lebih atribut, misalnya untuk atribut NIM harus diisi nilai antara 1 sampai 20. b. Simple and Composite Attributes i. Simple attribute adalah atribut yang terdiri dari komponen tunggal dengan keberadaannya yang bebas (Connolly, 2005). Misalnya adalah jabatan, gaji pada entity staff. ii. Composite attribute adalah atribut yang terdiri dari beberapa komponen, dan keberadaan komponen tersebut adalah bebas (Connolly, 2005). c. Single – Value and Multi – Value Attributes i. Single - value attribute adalah atribut yang hanya memiliki sebuah nilai untuk setiap tipe entity (Connolly, 2005, p351p352). Sebagian besar atribut merupakan single – value, contohnya pada entity ii. Derived Attributes Derived
attributes
merupakan
sebuah
atribut
yang
merepresentasikan sebuah nilai yang berasal dari nilai sebuah atribut yang berhubungan atau set atribut, dan tidak harus berada dalam tipe entity yang sama (Connolly,
25
2005). •
Keys Candidate key adalah himpunan atribut yg minimal yang secara unik mengidentifikasikan setiap occurence dari sebuah entity (Connolly, 2005). Composite key adalah sebuah candidate key yang terdiri atas dua atau lebih atribut (Connolly, 2005). Primary key adalah candidate key yang terpilih untuk mengidentifikasikan secara unik setiap occurence dari sebuah entity (Connolly, 2005). Pada setiap entity biasanya terdapat lebih dari satu candidate key yang kemudian akan dipilih salah satu untuk dijadikan primary key. Pemilihan primary key berdasarkan panjang atribut, jumlah minimal atribut, dan keunikannya. Alternate key adalah setiap candidate key yang tidak terpilih menjadi primary key, atau biasa disebut dengan secondary key (Connolly, 2005)
26
Gambar 2.6 : Gambar Representasi Diagram Entity Pegawai dan Cabang Beserta Atribut dan Primary Key-nya (Connolly, 2005)
•
Batasan Struktural (Structural Constraints) Batasan–batasan
yang
menggambarkan
pembatasan
pada
relationship seperti yang ada pada “real world” harus diterapkan pada entity yang ikut serta pada sebuah relationship dinamakan multiplicity (Connolly, 2005). Multiplicity merupakan sejumlah kemunculan (occurence) yang mungkin dari sebuah tipe entity yang berhubungan dengan kemunculan tunggal dari sebuah tipe entity yang berhubungan melalui relasi tertentu (Connolly, 2005). Derajat yang umum pada suatu relationship adalah binary relationship, yang terdiri atas :
27
•
-
One-to-one (1:1) Relationship
-
One-to-many (1:*) Relationship
-
Many-to-many (*:*) Relationship
Cardinality dan Participation Constraints Multiplicity terdiri dari dua batasan yaitu cardinality dan participation. Cardinality menggambarkan jumlah maksimum relasi yang mungkin terjadi dari sebuah entity yang berpartisipasi dalam tipe relasi. One-to-one (1:1), one-to-many (1:*), dan many-to-many (*:*) merupakan cardinality dari relasi binary, participation menentukan apakah semua atau hanya sebagian dari entity yang berpartisipasi dalam relasi.
Gambar 2.7 : Gambar Cardinality dan Participation antara Branch dan Staff
28
2.1.5 Normalisasi Normalisasi adalah suatu teknik yang bertujuan untuk menghasilkan himpunan relasi dengan property yang diinginkan berdasarkan kebutuhankebutuhan data suatu perusahaan (Connolly dan Begg, 2005). Tujuan dari normalisasi adalah untuk menghilangkan data yang berulang (redudansi) sehingga mengurangi kompleksitas data, dan untuk memudahkan dalam modifikasi data. Manfaat dari normalisasi adalah sebagai berikut : a.
Meminimalkan jumlah storage space yang digunakan untuk menyimpan data.
b.
Meminimalkan resiko data yang tidak konsisten dalam suatu basis data.
c.
Meminimalkan kemungkinan update and delete anomaly.
d.
Mengoptimalkan stabilitas dari struktur data. Pada saat suatu data belum dilakukan normalisasi, maka bentuk tersebut
dikenal sebagai Unnormalized Form (UNF) adalah suatu relasi yang terdiri dari satu atau lebih kelompok yang berulang (repeating group). Repeating group adalah suatu atribut atau kumpulan atribut dalam suatu tabel yang memiliki lebih dari satu nilai untuk satu buah primary key pada tabel yang sama.
Normalisasi terdiri dari 3 tahapan yaitu : a.
First Normal Form (1NF) Suatu relasi dapat dikatakan 1NF jika titik temu setiap baris dan kolom pada relasi tersebut mengandung hanya satu nilai (Connolly dan Begg, 2005). Sebuah relasi akan berada dalam keadaan 1NF jika repeating
29
groupnya sudah hilang. Terdapat dua pendekatan untuk menghilangkan repeating group pada tabel yang tidak normal (unnormalized table), yaitu : a. Dengan memasukkan data yang sesuai ke dalam kolom yang kosong dari baris yang mengandung data yang berulang. b. Dengan menempatkan data yang berulang bersama salinan dari atribut kunci pada relasi yang terpisah. b.
Second Normal Form (2NF) Suatu relasi dikatakan dalam bentuk 2NF jika relasi tersebut telah berada pada keadaan 1NF dan setiap atribut yang bukan primary key bergantung sepenuhnya (fully functionally dependent) terhadap primary key (Connolly dan Begg, 2005). Full funtional dependency terjadi jika A dan B merupakan atribut dari suatu relasi, dan B bisa dikatakan bergantung terhadap A, namun bukan subset dari A (Connolly dan Begg, 2005).
c.
Third Normal Form (3NF) Suatu relasi dikatakan 3NF jika relasi tersebut telah berada dalam keadaan 1NF dan 2NF, dan tidak ada atribut yang bukan primary key bergantung secara transitif (transitively dependent) terhadap primary key (Connolly dan Begg, 2005). Transitive dependency adalah sebuah kondisi dimana A, B, dan C merupakan atribut dari relasi yang jika B bergantung pada A dan C bergantung pada B maka dapat dikatakan bahwa C disebut bergantung secara transitif (transitively dependent) terhadap A melalui B (A tidak functionally dependent terhadap B dan C (Connolly dan Begg, 2005).
30
2.2
Pemahaman Sistem Berbasis Web 2.2.1 Internet Internet adalah sebuah jaringan dari kumpulan jaringan, yang bertukar informasi tanpa terlihat, dengan menggunakan standarisasi dan protokol yang terbuka dan tanpa pemilik. Internet merupakan kumpulan dari banyak jaringan komputer tunggal yang dimiliki oleh pemerintah, universitas, grup nonprofit, dan perusahaan. Internet juga merupakan sebuah jaringan packet-switched yang menggunakan Transmission Control Protocol/Internet Protocol (TCP/IP). User dapat terkoneksi ke Internet melalui sebuah server LAN, SLIP/PPP, atau melalui sebuah layanan online (Internet Service Provider). Internet menyediakan tiga tipe layanan utama: komunikasi, information retrieval, dan layanan Web. Layanan komunikasi meliputi electronic mail (email), USENET newsgroup, LISTSERV, chatting, Telnet, Internet telephony, dan Internet fax. Layanan Information Retrieval meliputi gophers, Archie, WAIS, File Transfer Protocol (FTP), dan Veronica. Sedangkan layanan Web adalah aplikasi perangkat lunak yang dikirim sebagai layanan melalui Internet. (Turban, Rainer, dan Potter, 2003).
2.2.2 Intranet Menurut Turban, Rainer, dan Potter (2003), intranet adalah jaringan privat yang menggunakan perangkat lunak Internet dan protokol TCP/IP. Intinya, intranet adalah Internet privat, atau grup dari segmen privat dari jaringan Internet publik, digunakan oleh orang-orang yang diberikan otorisasi untuk menggunakan jaringan tersebut.
31
Keamanan intranet merupakan suatu hal yang penting. Perusahaan dapat mencegah gangguan yang tidak diinginkan dengan berbagai cara. Public key security digunakan sebagai perantara otorisasi untuk masuk ke dalam intranet. Ada dua bagian di dalamnya, yaitu enkripsi dan digital certificate. Enkripsi mengacaukan data yang keluar, sementara digital certificate seperti kartu identitas elektronik yang memastikan bahwa orang yang mengakses intranet adalah user yang valid. Cara lain yang digunakan perusahaan untuk melindungi intranet adalah dengan menggunakan firewall. Firewall merupakan sebuah alat yang ditempatkan di antara jaringan internal perusahaan (intranet) dan jaringan eksternal (Internet).
Gambar 2.8 : Gambar Diagram Intranet
2.2.3
World Wide Web (WWW) WWW merupakan singkatan dari World Wide Web adalah sistem berbasis
hypermedia yang menyediakan layanan browsing informasi di internet dengan menggunakan hyperlink yang tidak berurutan (Connolly dan Begg, 2005).
32
Web adalah aplikasi internet yang mampu menyimpan sejumlah besar informasi dan jasa yang diakses melalui internet (Eaglestone dan Ridley, 2001). Berdasarkan definisi-definisi diatas, maka dapat disimpulkan bahwa web adalah aplikasi sistem berbasis hypermedia yang menyediakan layanan browsing informasi di internet dengan menggunakan hyperlink yang tidak berurutan serta mampu menyimpan sejumlah besar informasi dan jasa yang diakses melalui internet.
2.2.4
Internet Service Provider Seringkali disebut Internet Access Provide (IAP) adalah perusahaan yang
menawarkan jasa internet kepada customer-nya melalui teknologi transmisi data seperti dial up, DSL, wireless, dan sebagainya.
2.2.5
Web Statis dan Web Dinamis Menurut Connolly dan Begg (2005, p1004), dokumen HTML yang disimpan
dalam file merupakan halaman web statis, isinya tidak akan pernah berubah kecuali file tersebut diubah, sedangkan isi dari halaman web dinamis dibangun setiap kali akses. Halaman web dinamis memiliki beberapa fitur yang dimiliki oleh web statis, yakni sebagai berikut : • Respon terhadap input yang diberikan oleh pelanggan melalui browser. • Dapat diubah sesuai keinginan oleh dan untuk setiap pengguna
33
Halaman web dinamis memerlukan hypertext yang harus dibangun oleh server serta membutuhkan script yang menampilkan konversi dari format data yang berbeda ke HTML
2.2.6
Web Database
2.2.6.1 Definisi Web Database Web database merupakan aplikasi penggunaan web sebagai platform yang menghubungkan pengguna dengan antarmuka satu atau lebih basis data (Connolly dan Begg, 2005). Web database merupakan suatu sistem yang bisa di bangun dengan menggabungkan teknologi basis data dan web (Eaglestone dan Ridley, 2001). Berdasarkan disimpulkan
web
sumber-sumber database
definisi
diatas,
maka
dapat
suatu
sistem
aplikasi
yang
adalah
menggabungkan teknologi basis data dan web serta dapat berinteraksi dengan pengguna.
2.2.6.2 Syarat-syarat Integrasi Web Database Berikut adalah daftar dari beberapa syarat-syarat penting untuk mengintegrasikan aplikasi basis data dengan web, yaitu (Conolly dan Begg, 2005) : •
Kemampuan untuk mengakses data perusahaan yang berharga dengan cara yang aman
34
•
Data dan vendor tidak saling bergantung sehingga memungkinkan kebebasan untuk memilih DBMS.
•
Kemampuan untuk berinteraksi dengan basis data, tidak bergantung pada browser atau web server tertentu.
•
Solusi keterhubungan yang memberikan keuntungan dari seluruh fitur DBMS organisasi.
•
Arsitektur terbuka memungkinkan kemampuan untuk diganti dengan sistem dan teknologi yang bervariasi.
•
Solusi
efektivitas
biaya
yang
memungkinkan
scalability,
pertumbuhan, dan perubahan dalam petunjuk strategis, dan membantu mengurangi biaya pembuatan aplikasi. •
Dukungan untuk transaksi yang menjangkau permintaan multiple HTTP.
•
Dukungan untuk session dan aplikasi berdasarkan autentifikasi.
•
Performa yang dapat diterima
•
Pengeluaran tambahan (overhead) administrasi yang minimal
•
Penentuan
perangkat
produktivitas
level
tinggi
sehingga
memungkinkan aplikasi untuk dibangun, dipelihara, dan disebarkan dengan relatif mudah dan cepat.
35
2.3
Perangkat (Tools) yang Digunakan 2.3.1 Definisi Flowchart Flowchart adalah penggambaran secara grafik dari langkah-langkah dan urutan-urutan prosedur dari suatu progam. Flowchart menolong analis dan programmer untuk memecahkan lain masalah ke dalam segmen-segmen yang lebih kecil dan menolong dalam menganalisis alternatif-alternatif lain dalam pengoperasian. Simbol-simbol yang terdapat dalam flowchart :
Tabel 2.1 : Tabel Simbol Flowchart Nama input/output
Simbol
Arti Merepresentasikan input data yang diproses dan ouput data yang telah di proses
Proses (proccess)
Merepresentasikan operasi
Anak panah (arrow)
Merepresentasikan alur kerja
Keputusan (decision)
Keputusan dalam progam
Sub progam
Rincian operasi berada di
(predefined proccess)
tempat lain
36
Persiapan
Pemberian harga awal
(Preparation) Titik Terminal
Awal atau akhir flow
(Terminal Point)
chart
Dokumen (Document)
Input dan output dalam format yang dicetak
Tampilan (Display)
Input atau output yang di tampilkan di monitor
Penghubung
Penghubung
(Connector)
bagianbagian flowchart di halaman lain
Manual Input
Input yang dimasukkan secara manual dari keyboard
Operasi Manual
Operasi secara manual
(Manual Operation) Punched Tape
Input atau output yang menggunakan pita kertas berlubang
.
37
2.3.2
State Transition Diagram (STD) STD (State Transition Diagram) menunjukkan bagaimana sistem bertingkah laku sebagai akibat dari kejadian eksternal. Menurut Pressman (2005) STD (State Transition Diagram) dapat mengindikasikan bagaimana perilaku (behavior) suatu sistem terhadap suatu tindakan (event). STD menunjukkan berbagai model tingkah laku (state) sistem dan cara dimana transisi dibuat dari state satu ke state lainnya. STD
ini
sendiri
merupakan
suatu
Modelling
Tool
yang
menggambarkan suatu sifat ketergantungan akan waktu yang terdapat di sistem. Pada STD ini terdapat 2 macam cara kerja, yaitu : 1. Pasif Disini sifatnya lebih kepada menerima data saja dalam melakukan kontrol terhadap lingkungan. Contoh : sistem yang bertugas menerima sinyal yang dikirim satelit. 2. Aktif Untuk sistem ini kontrol dilakukan secara aktif sehingga selain menerima data, sistem ini juga memberikan suatu respon terhadap lingkungannya. Contoh : sistem yang digunakan untuk proses kontrol. Penyajian STD merupakan dasar untuk pembentukan perilaku, STD disajikan dengan menggunakan notasi-notasi berikut :
38
• State Merupakan suatu kumpulan model dari tingkah laku yang dapat diobservasi. Simbol state :
Gambar 2.9 : Gambar State pada STD • Transisi Merupakan simbol yang menyatakan perubahan dari satu keadaan ke keadaan yang lain. Simbol transisi : Gambar 2.10 : Transisi pada STD • Kondisi Adalah kejadian pada lingkungan eksternal yang dideteksi oleh sistem. Hal tersebut menyebabkan terjadinya perubahan dari suatu ke state ke state lainnya. • Aksi Adalah hal yang dilakukan sistem bila terjadi perubahan state. Aksi menghasilkan keluaran seperti tampilan pesan, cetakan pada printer atau alat output lainnya.
39 Kondisi Aksi State 1
State 2
Gambar 2.11 : Gambar STD (State Transition Diagram)
2.3.3 Perangkat Lunak yang Digunakan 2.3.3.1 PHP PHP adalah bahasa script open source HTML embedded yang mendukung banyak web server dengan tujuan memampukan web developer untuk mampu menulis banyak halaman dinamis secara cepat (Connoly dan Begg, 2005). PHP adalah bahasa script open source yang tersedia untuk banyak platforms. PHP sering di hubungkan dengan MySQL atau PostgreSQL karena kombinasi secara bebas dari basis data yang tersedia dan bahasa script yang menyediakan paket lengkap untuk membangun aplikasi web database. (Eaglestone dan Ridley, 2001). Berdasarkan sumber-sumber definisi diatas maka dapat di simpulkan PHP adalah bahasa script server side yang open source yang tesedia untuk banyak platform yang bisa disisipkan pada HTML sehingga dapat menghasilkan halaman web yang dinamis sehingga perawatan menjadi lebih mudah dan efisien. Kelebihan menggunakan PHP :
40
PHP memiliki banyak kelebihan yang tidak dimiliki oleh bahasa script sejenis. Kelebihan itu antara lain sebagai berikut (Kasiman Peranginangin,2006) : •
PHP difokuskan pada pembuatan script server side, yang bisa melakukan apa saja yang dapat dilakukan oleh CGI, seperti mengumpulkan data dari form, menghasilkan isi halaman web dinamis, dan kemampuan mengirim serta menerima cookies, bahkan daripada kemampuan CGI.
•
PHP dapat digunakan pada semua sistem operasi, bahkan PHP dapat bekerja sebagai CGI processor.
•
PHP tidak terbatas pada hasil keluaran HTML. PHP juga memiliki kemampuan untuk mengolah keluaran gambar, file PDF, dan animasi Flash. PHP juga dapat menghasilkan teks seperti XHTML dan file XML lainnya.
•
PHP dapat mendukung banyak sistem basis data.
2.3.3.2 MySQL MySQL adalah sebuah perangkat lunak sistem manajemen basis data (DBMS) yang multithread dan multiuser. Konsep dari MySQL sendiri adalah pengoperasian basis data baik dalam hal pemilihan atau seleksi dan pemasukkan data, yang memungkinkan pengoperasikan data dilakukan dengan mudah secara otomatis. Kelebihan menggunakan MySQL sebagai database server:
41
1. MySQL didistribusikan dibawah lisensi GPL (General Public License) sehingga dapat dipakai secara gratis (Open Source). 2. MySQL dapat digunakan secara stabil di berbagai sistem operasi (Linux, Mac OS, Windows) sehingga bersifat Portability. 3. Multiuser, sebab dapat digunakan oleh beberapa user dalam waktu yang bersamaan tanpa bermasalah. 4. MySQL dapat menangani database dalam skala yang besar dengan jumlah record lebih dari 50 juta dan 60 ribu tabel serta 5 milyar baris 5. Performance tuning dimana MySQL memiliki kecepatan dalam menangani query sederhana, dengan kata lain dapat memproses lebih banyak SQL per satuan waktu. 6. MySQL memiliki tingkat security atau keamanan yang tinggi seperti level subnet mask, nama host, dan izin akses user dengan sistem perizinan yang mendetail serta password terenkripsi.
2.3.3.3 CodeIgniter Framework 2.3.3.3.1
Framework
Software framework adalah suatu desain untuk sistem piranti lunak yang dapat digunakan secara berulang-ulang (reusable). Software framework terkadang meliputi kumpulan kode, skrip, dan piranti lunak lainnya dalam mendukung pengembangan dan kompatibilitas terhadap komponen-komponen lainnya dalam suatu proyek piranti lunak.
42
2.3.3.3.2
Pengertian CodeIgniter Framework
CodeIgniter Framework merupakan framework open source untuk PHP 5 yang dirancang khusus untuk mempersingkat pengkodean dan bertujuan agar penggunanya dapat fokus pada gambaran-gambaran aplikasi. CodeIgniter adalah sebuah PHP library yang digunakan untuk membangun aplikasi web dengan menggunakan PHP. CodeIgniter telah menyediakan komponen-komponen agar memudahkan penggunanya dalam membangun aplikasi dengan PHP lebih mudah. CodeIgniter juga memberikan kemudahan dalam perawatan dan penggunaan ulang aplikasi yang dibangun dengan menggunakan framework CodeIgniter.
2.3.3.3.3
Pengertian Model View Controller (MVC)
Menurut Rob Allen (2008), MVC adalah suatu pola rancangan dalam sebuah arsitektur piranti lunak. MVC memisahkan arsitektur suatu piranti lunak menjadi tiga bagian, yaitu : • Model Adalah bagian yang menentukan bagaimana data terstruktur. Merepresentasikan data yang aktual dan logika yang digunakan. •
View Adalah bagian dimana terjadi interaksi langsung dengan pengguna. Merepresentasikan
bagaimana
data
ditampilkan.
View
tidak
menitikberatkan pada bagaimana data tersebut ditampilkan, melainkan seperti apa data tersebut ditampilkan.
43
•
Controller Adalah bagian dimana semua proses suatu aksi dijalankan. Merepresentasikan bagaimana data tersebut ditampilkan. Aksi-aksi yang dijalankan, memanggil data yang diminta oleh model (dalam bentuk sistem basis data, variabel), lalu mengirimkan hasilnya kepada view dan kemudian ditampilkan pada browser oleh view.
HTML Header PHP Db HTML Start of PHP Db Query HTML & PHP HTML Footer
Gambar 2.12 : Gambar Struktur non-MVC Antara Database, logika bisnis, dan logika presentasi masih sulit untuk dipecahkan menjadi modul-modul dalam aplikasi sehingga akan mempersulit dalam maintenance aplikasi yang sudah besar atau kompleks karena jika kita merubah satu kode saja akan merubah keseluruhan dari struktur kode itu.
44
Bootstrap File: index.php (database connection)
Controller File (application logic) Model File (database query) View Template File (HTML)
Gambar 2.13 : Gambar Struktur MVC CodeIgniter framework yang berinteraksi dengan database apapun dengan satu bahasa tunggal. Controller file yang berperan sebagai pengatur data yang didapat dari class-class model yang dibuat tersebut untuk diarahkan ke view sebagai layout nya, controller file mengatur proses request untuk diarahkan ke fungsi pada suatu mode sesuai request. Alur request tersebut kemudian dimunculkan kedalam view atau layout. Model file merupakan class class yang dibuat sebagai tempat code-code, manipulasi data induk yang dijadikan sumber acuan pada model. View file membuat tempat layout untuk tampilan ke publik.
2.3.3.4 Extensible Markup Language (XML) Extensible Markup Language atau sering kali disebut XML merupakan suatu bahasa pemrograman yang digunakan untuk menyimpan data dan tidak tergantung dengan tools tertentu (DBMS, compiler, dan sebagainya).
45
XML tidak sama dengan HTML, sebab XML berfungsi menyimpan dan membawa data sedangkan HTML berfungsi untuk menampilkan data. Dengan kata lain, HTML adalah bagaimana menampilkan
suatu
informasi
dan
XML
adalah
bagaimana
mendeskripsikan informasi. Keuntungan menggunakan XML: a. Ekstensibilitas karena dapat ditukar atau digabungkan dengan dokumen XML lain. b. Plain text disebabkan sintaks XML yang sederhana dan terbatas c. XML dapat digunakan oleh banyak orang sebab sifatnya yang independent dan cross platform memungkinkan XML dapat diakses pada banyak browser. d. XML dapat memisahkan data dari HTML, sebab dengan XML user dapat lebih berkonsentrasi pada perancangan suatu layout tanpa perlu khawatir jika data berubah akan mengubah HTML. e. XML dapat digunakan untuk pertukaran data antara sistem yang tidak kompatibel.
2.3.3.5 Asynchronous JavaScript and XML (Ajax) Ajax adalah singkatan dari Asynchronous JavaScript and XML adalah sebuah teknologi berbasis client-side yang menggunakan 2 komponen utama, yakni Javascript dan XML. Penggunaan teknologi ini dapat meningkatkan kinerja suatu aplikasi web karena Ajax hanya
46
mempertukarkan data antara client dan server bukan suatu halaman web secara keseluruhan. Kelebihan Ajax adalah objek XML HTTP Request karena dengan menggunakan objek javascript ini, maka request data ke server dapat dilakukan tanpa mengirimkan keseluruhan halaman
2.3.3.6 Jquery Adalah library dari Javascript yang membuat suatu aplikasi web menjadi lebih baik, dalam hal interface, proses maupun interaktivitas.
2.3.3.7 Cascading Style Sheet (CSS) Cascading Style Sheet atau CSS adalah suatu bahasa stylesheet yang digunakan untuk mengatur tampilan suatu halaman web. Penggunaan paling umum adalah untuk memformat halaman web yang ditulis dengan HTML dan XHTML. CSS dapat digunakan untuk mengatur besar kecilnya text, warna dan style font, mengatur warna atau gambar background, dan berbagai manfaat lainnya. (Schengili dan Roberts, 2000)
2.3.3.8 Web Server Adalah suatu komputer yang digunakan untuk menyimpan data suatu website dan tentu saja komputer tersebut harus 24 jam menyala, sehingga data dari suatu website dapat diakses oleh pengunjung.
47
Web server memiliki arti sebuah sebuah software server yang menerima permintaan HTTP/HTTPS dari komputer client (meminta informasi) melalui web browser dan mengirimkannya kembali dalam bentuk halaman web yang berbentuk dokumen HTML.
2.3.3.9
Web Browser Dikenal juga dengan istilah browser atau internet browser.
Browser adalah software aplikasi yang memperbolehkan user dalam menampilkan dan berinteraksi dengan teks, gambar, video, musik, dan informasi lainnya yang terdapat di halaman web. Teks dan gambar di halaman web bisa merupakan hyperlink yang mengarah ke halaman lain. Web browser menjadikan user lebih cepat dan mudah mengakses informasi. Dua program web browser yang cukup popular saat ini adalah Google Chrome dan Mozilla Firefox.
2.3.3.10 Elemen dan Aplikasi Internet 2.3.3.10.1
Protokol Utama Internet Protokol utama internet menggunakan TCP/IP (Transmission
Control Protocol / Internet Protocol) yang memungkinkan proses pertukaran data dari satu komputer dengan komputer yang lain. TCP/IP merupakan sebuah jaringan terbuka yang independen terhadap mekanisme transpor jaringan fisik yang digunakan sehingga dapat digunakan di mana saja. Protokol ini menggunakan alamat IP sehingga
48
beberapa ratus komputer dapat berhubungan satu sama lain melalui internet. (Ellsworth, 1997)
2.3.3.10.2
Protokol Transfer Seringkali disebut dengan File Transfer Protocol (FTP)
merupakan protokol yang paling awal dikembangkan dan sampai saat ini digunakan untuk mendownload meng-upload berkas – berkas komputer antar klien FTP dengan server FTP. Klien FTP dapat mengakses server FTP menggunakan URL (Universal Resource Locator) dengan format ftp://namaserver.
2.3.3.10.3
Uniform Resource Locator (URL) URL merupakan rangkaian karakter sesuai dengan format
standar tertentu yang menunjuk suatu alamat sebuah halaman web (homepage) yang ingin ditampilkan. URL mempunyai 2 macam tipe : a.
URL Absolute merupakan alamat URL yang berisi domain, direktori pada domain dan file pada direktori tersebut. Contoh :
b.
URL Relative menentukan suatu alamat berdasarkan URL yang aktif pada saat itu. Contoh :
Suatu format URL adalah http://server/path yang berarti :
49
a.
“http” merupakan protokol yang menunjukkan dimana sumber web yang diakses melalui URL.
b.
“server” merupakan nama web server yang dapat di akses.
c.
“path” merupakan lokasi dari sumber di server. Contoh : photos/img23092010004.jpg, yang menunjukkan path dari dokumen utama melalui struktur direktori Web Server menuju file tertentu.
2.3.3.10.4
Hyper Text Markup Language (HTML) HTML
sebenarnya
bukan
merupakan
suatu
bahasa
pemrograman tetapi lebih tepatnya merupakan bahasa markup yang terdiri dari serangkaian tag markup yang mampu untuk membuat suatu halaman web. Tag markup atau sering disebut tag HTML ini biasanya kata kunci yang diapit oleh tanda sudut kurung dan berpasangan biasanya disebut sebagai tag awal/pembuka dan tag akhir/penutup seperti
dan diakhiri oleh , contoh : . Format dari suatu dokumen HTML adalah sebagai berikut: <TITLE>Judul Web
50
Isi dokumen Tag dan berfungsi menandai suatu awal dan akhir dari sebuah dokumen HTML. Tag dan berfungsi memberikan informasi umum dari sebuah halaman web dan di dalam tag ini terdapat tag <TITLE> dan yang berfungsi memberikan judul halaman web. Dan tag dan berisi isi dari dokumen dalam halaman web tersebut.
2.4
Delapan Aturan Emas dalam Perancangan Terdapat delapan aturan emas dalam merancang sebuah user interface yaitu :
(Shneiderman, 1998) a. Konsisten Konsisten dalam kesamaan terminology dalam membuat menu, tampilan, font, dan help screen. Selain itu, konsisten dalam warna, kapitalitas, dan tampilan juga merupakan hal yang penting. b. Memungkinkan user untuk menggunakan shortcut Setelah user mulai tanggap dalam mengakses sebuah website, maka user akan menginginkan shortcut yang akan mempercepat navigasi dalam menelusuri website tersebut. c. Memberikan umpan balik yang informatif Untuk setiap tindakan operator, sebaiknya disertakan suatu sistem umpan balik. Untuk tindakan yang sering dilakukan dan sederhana, dapat diberikan umpan balik
51
yang sederhana. Tetapi ketika tindakan merupakan hal yang penting, maka umpan balik sebaiknya lebih substansial. Misalnya muncul suatu suara ketika salah menekan tombol pada waktu input data atau muncul pesan kesalahannya. d. Merancang dialog untuk menghasilkan keadaan akhir Bertujuan untuk membuat user merasa yakin dan tenang dalam melakukan suatu tindakan dengan memberikan gambaran hasil akhir dari suatu pilihan, serta memberikan banyak option kepada user sehingga bisa ikut mempengaruhi hasil akhir. e. Memberikan penanganan kesalahan yang sederhana Sedapat mungkin suatu website harus dirancang agar user tidak melakukan kesalahan yang fatal, dan pesan kesalahan yang dimunculkan harus mudah dimengerti oleh user. f. Memungkinkan pembalikan aksi yang mudah Tindakan yang dilakukan oleh user harus dapat dikembalikan pada kondisi sebelumnya sehingga user merasa aman untuk mengeksplorasi website karena ia tahu bahwa kesalahan yang ia lakukan dapat diperbaiki. g. Mendukung internal locus of control (tempat pemakaian internal) Sistem harus dibuat agar user merasa memegang kendali atas suatu website. Kesulitan user dalam melakukan navigasi website atau dalam menampilkan data dapat membuat user menjadi tidak puas. h. Mengurangi beban ingatan jangka pendek Manusia tidak dapat mengingat banyak info pada suatu waktu yang bersamaan. Oleh karena itu, suatu website harus dibuat sesederhana mungkin sehingga tidak membuat user bingung karena terlalu banyak info yang harus diingat.