BAB 2 LANDASAN TEORI - library.binus.ac.id · 7 BAB 2 LANDASAN TEORI Untuk memudahkan pengkajian...
Transcript of BAB 2 LANDASAN TEORI - library.binus.ac.id · 7 BAB 2 LANDASAN TEORI Untuk memudahkan pengkajian...
7
BAB 2
LANDASAN TEORI
Untuk memudahkan pengkajian skripsi ini, maka dibutuhkan teori-teori untuk
dipakai dalam pengerjaan aplikasi layanan zakat. teori-teori tersebut dibagi menjadi dua
bagian yaitu teori dasar/umum yang menjelaskan tentang teori-teori yang berkaitan
dengan aplikasi berbasis web dan teori khusus yang menjelaskan tentang masalah zakat.
2.1 Teori-teori Dasar/Umum
2.1.1 Intranet
Menurut Bidgoli (2004, p290) Intranet adalah sebuah jaringan dalam
organisasi yang menggunakan teknologi web (TCP/IP, HTTP, FTP, SMTP, HTML
dan XML) untuk mengumpulkan, menyimpan, dan menyebarluaskan informasi yang
berguna di dalam organisasi tersebut. Menurut syafrizal (2005, p204), intranet adalah
jaringan komputer berbasis protokol TCP/IP seperti internet, hanya saja digunakan
dalam internal perusahaan/kantor dengan aplikasi berbasis web dan teknologi
komunikasi data seperti internet.
Walaupun menggunakan teknologi yang sama, internet berbeda dengan
intranet. Internet adalah jaringan yang luas dan untuk umum, setiap orang dapat
mengakses internet selama dia mempunyai akun di ISP (Intenet Service Provider).
Sedangkan intranet adalah jaringan private, hanya terhubung dengan jaringan tertentu
di dalam perusahaan, dan biasanya pengguna dari intranet adalah karyawan
perusahaan tersebut. Pada umumnya, Intranet memiliki performa yang lebih unggul
dan juga lebih aman dibandingkan dengan internet.
8
2.1.2 TCP/IP (Transmission Control Protocol/Internet Protocol)
Menurut Blank (2004, p2) TCP/IP adalah kumpulan protokol yang
memungkinkan komunikasi antar komputer. Menurut syafrizal (2005, p63) TCP/IP
adalah protokol standar pada jaringan internet yang tidak tergantung pada jenis
komputer yang digunakan sehingga memungkinkan berbagai komputer untuk
berinteraksi satu dengan yang lain.
Menurut Sardiman (2008, p102) TCP/IP adalah suatu set protocol standar
yang digunakan untuk menghubungkan jaringan komputer, mengamati lalu lintas
dalam jaringan, mengatur format data yang diizinkan, penanganan kesalahan dan
standar komunikasi lainnya. Selama 20 tahun lebih sudah protokol TCP/IP digunakan,
dan waktu telah membuktikannya bahwa protokol ini telah teruji dan sangat stabil.
TCP/IP memiliki beberapa fitur dan keuntungan, seperti:
1. Dukungan dari berbagai vendor
Seperti yang telah disebutkan diatas, TCP/IP sangat kompatibel dengan
hardware dan software dari berbagai vendor, sehingga tidak terikat pada satu
vendor saja.
2. Interoperability
Alasan mengapa TCP/IP sangat populer dan banyak digunakan adalah TCP/IP
dapat diinstall dan dipakai di berbagai platform sistem operasi. Contohnya host
yang berplatform Linux dapat berkomunikasi dan berbagi data dengan host
yang berplatform windows.
3. Flexibility
TCP/IP merupakan protokol yang sangat fleksibel. Contoh dari fleksibilitas
TCP/IP adalah seorang administrator dapat menentukan dan memindahkan
9
alamat IP, menetapkan alamat IP ke dalam host secara manual ataupun
otomatis dan dapat merubah TCP/IP host menjadi sebuah nama yang mudah
diingat seperti www.google.com.
4. Routability
TCP/IP dapat beradaptasi dengan baik terhadap proses routing data dari satu
segmen jaringan ke segmen jaringan yang lain atau dari host ke host yang lain.
2.1.3 WWW (World Wide Web)
Web merupakan nama lain dari world wide web. Menurut Levine, Young
(2010, p89) web adalah sekelompok halaman informasi yang saling berhubungan satu
dengan yang lain di seluruh dunia. Pada setiap halaman web bisa berupa kombinasi
dari text, gambar, suara, atau video dan hal-hal lainnya. Menurut Quinn (2000, p14),
web bukan nama lain dari internet, tetapi bagian dari internet yang menampilkan text,
gambar, suara dan animasi.
Sebelum kehadiran web, informasi dari internet hanya berupa layar text saja
dan tidak ada link yang menghubungkan situs-situs lain. Dengan kehadiran web, kita
dapat dengan mudah mendapatkan informasi dari sebuah halaman yang tidak hanya
sekedar text saja tetapi kombinasi dari gambar, suara, video dan beberapa media
lainnya. Selain itu, pada halaman tersebut terdapat link yang mengantarkan kita secara
langsung menuju halaman lain dari situs tersebut atau halaman lain dari berbagai situs.
Web ditemukan pada tahun 1989 di Lab Pusat Penelitian Nuklir Eropa,
sebuah tempat yang tidak cocok untuk revolusi komputer. Penemunya adalah seorang
peneliti dari Inggris yang bernama Sir Tim Berners-Lee, direktur dari World Wide
10
Web Consortium (W3C) sebuah organisasi yang membuat standarisasi dan
mengawasi pengembangan web.
Tim juga menemukan HTTP, protokol yang mengkomunikasikan web
browser dengan web server; HTML yang merupakan bahasa untuk pembuatan web;
dan URL yaitu alamat dari web pages. Tim menginginkan web sebagai sebuah cara
untuk mempublikasikan atau mengambil informasi dari internet.
2.1.4 HTTP (HyperText Transfer Protocol)
Menurut Sunarto (2005, p22) HTTP adalah sebuah protokol yang menetukan
aturan main antara software client dan software server dalam penyediaan dokumen
yang diminta browser. Menurut Wong (2000, p1), HTTP adalah protokol dibalik
sebuah web, dipanggil pada setiap transaksi web, dan merupakan protokol yang
digunakan web untuk mendistribusikan informasi ke dalam internet.
Menurut J.R.Okin (2005, p120) HTTP adalah suatu mekanisme yang
memungkinkan komputer menjangkau internet, mengambil salinan informasi dari file
tertentu atau resource yang diminta sehingga bisa ditampilkan dan digunakan pada
komputer lokal.
HTTP termasuk application layer yang berjalan melalui TCP/IP dengan
membuat hubungan TCP ke port tertentu (biasanya port 80). Sebagaimana internet
protokol lainnya, HTTP berfungsi sebagai model client-server, dimana browser
bertindak sebagai client dan membuat kode permintaan data (request) kemudian web
server menjawab request tersebut dan menyediakan data yang diinginkan.
11
2.1.5 URL (Uniform Resorce Locator)
Menurut Suyanto (2003, p195), URL adalah alamat sebuah file yang dapat
diakses di internet, berisi nama protokol internet yang dibutuhkan untuk mengkases
file, nama komputer yang berisi file tersebut, dan direktori dimana file tersebut berada.
Menurut Colmer (2006, p145), URL adalah sistem pengalamatan standar yang
digunakan untuk mengakses informasi melalui internet. Menurut Peltzer (2004, p243),
URL adalah elemen dari halaman web yang menunjukkan komponen yang digunakan
browser untuk meminta halaman web.
Secara umum, URL dibagi menjadi tiga bagian. Bagian pertama menunjukan
protokol yang dipakai seperti http:// atau https://. Bagian kedua menunjukan alamat
host seperti www.yahoo.com. Bagian ketiga menunjukan path direktori file, yaitu
tempat dimana file yang ingin diakses disimpan dalam server.
2.1.6 Web Browser
Menurut Sunarto (2005, p23), web browser atau biasa disebut browser adalah
sebuah program aplikasi yang digunakan untuk menjelajahi dunia maya internet dan
menampilkan web page yang ada di internet. Menurut Price, wix (2002, p32) web
browser adalah sebuah program yang memungkinkan kita untuk melihat informasi
yang berada di internet. Menurut Comer (2007, p209) web browser adalah program
yang menampilkan dan menyediakan akses dokumen hypermedia yang ada di internet.
Lynx dan mosaic adalah contoh web browser yang pertama. Lynx adalah web
browser yang hanya menampilkan text, karena itu browser ini dapat membuka web
pages dengan cepat. Mosaic adalah web browser yang dapat menampilkan text dan
gambar.
12
Saat ini, perkembangan web browser sudah demikian pesat. Para developer
telah berkreasi dengan menciptakan browser yang memiliki banyak kemampuan
dengan performa yang lebih baik baik, baik yang komersial seperti internet explorer
ataupun open sorce seperti mozilla firefox.
2.1.7 Web Server
Menurut Supardi (2009, p181) web server adalah perangkat lunak yang
mengatur atau mengelola program berdasarkan permintaan browser dan mengirimkan
hasil dari permintaan tersebut. Menurut Zaki dan Komunitas Smitdev (2008, p21),
web server adalah sebuah hardware dan software yang bertugas melakukan
interpretasi HTTP request untuk kemudian melakukan respon atas HTTP request
tersebut dalam bentuk kode HTML, dan kode-kode lainnya yang bisa dipahami
browser. Ada banyak sekali web server yang bisa digunakan diantaranya:
1. Apache Tomcat
2. Microsoft windows Server 2003 Internet Information Services (IIS)
3. Lighttpd
4. Sun Java System Web Server
5. Xitami Web Server
6. Zeus Web Server
13
2.1.8 Web Programming
2.1.8.1 HTML (Hyper Text Markup Language)
Menurut Richardson (2005, p15) HTML adalah sebuah bahasa dasar
pemrograman yang digunakan untuk membuat website. Menurut Brooks (2007, p1)
HTML bukanlah sebuah bahasa pemrograman, tapi lebih mirip sebagai kumpulan
instruksi tentang bagaimana menampilkan sebuah content. Menurut Callihan
(2003,p3) HTML adalah bahasa yang terdiri dari dua elemen. Sebagai bahasa
hypertext yang memungkinkan kita menulis dokumen interlinking non-sequential.
Sebagai bahasa markup yang merupakan kode atau tag-tag untuk menentukan
format dokumen saat ditampilkan di web.
Saat ini HTML merupakan bahasa standar Internet yang didefinisikan dan
dikendalikan penggunaannya oleh World Wide Web Consortium (W3C). Dokumen
HTML terdiri dari 4 elemen:
1. <html>…..</html>, sebagai format dokumen itu sendiri
2. <head>…..</head>, sebagai bagian pendahuluan
3. <title>…..</title>, sebagai bagian judul
4. <body>…..</body>, sebagai bagian isi
Sebuah file yang merupakan file HTML dapat dibuka dengan
menggunakan browser web seperti Mozilla Firefox atau Microsoft Internet
Explorer. HTML juga dapat dikenali oleh aplikasi pembuka email ataupun dari
PDA dan program lain yang memiliki kemampuan browser.
14
2.1.8.2 PHP (PHP Hypertext Prepocessor)
Menurut Quigley, Gargenta (2007, p4) PHP adalah bahasa scripting yang
simple, cepat dan portable sangat sesuai digunakan untuk membuat website yang
memiliki database. Menurut Stobart, Vassileiou (2004, p106) PHP adalah bahasa
scripting open source untuk membuat web secara dinamis seperti web untuk
e-commerce dan aplikasi web lainnya. Menurut Brooks (2008, p2), PHP adalah
bahasa scripting server-side, artinya dokumen php diolah diserver bukan di
browser, php juga menerima informasi dari dokumen HTML dan menjadikan
sebuah web menjadi lebih dinamis.
Versi pertaman PHP dibuat oleh Rasmus Leodorf pada tahun 1995. Versi
ini berupa sekumpulan skrip PERL yang digunakan oleh Rasmus Lerdorf untuk
membuat halaman Web yang dinamis pada hompage pribadinya. Rasmus menulis
ulang skrip-skrip PERL tersebut menggunakan bahasa C, kemudian menambahkan
fasilitas Form HTML, koneksi MySQL dan meluncurkan PHP/F1 pada tahun 1996.
Selanjutnya, PHP terus dikembangkan hingga saat ini telah meluncur PHP versi 5.0.
Karena script ini bersifat open source, maka php bisa didapatkan secara
gratis di www.php.net. PHP juga mendapatkan dukungan dari sebagian besar
komunitas di internet. Komunitas ini menyediakan dukungan fasilitas untuk
pengembangan seperti laporan kesalahan-kesalahan pada script php kemudian
memperbaikinya. Kelebihan lain dari PHP adalah dukungan kepada banyak paket
database, seperti PostgreSQL, MySQL, Oracle, Microsoft SQL Server, Sybase dan
lain lain.
15
2.1.8.3 Javascript
Menurut Brooks (2007, p3) Javascript adalah bahasa pemrograman yang
diinterpretasikan bukan dikompile, diadopsi dari bahasa C/C++ yang dikembangkan
menjadi bahasa pemrograman web client-side. Javascript didesain untuk bekerja
sama dengan HTML membuat web page yang interaktif. Menurut McFarland
(2008, p1), Javascript adalah bahasa pemrograman yang digabungkan dengan
HTML untuk membuat halaman web yang beranimasi, interaktif dan memiliki
visual effect yang dinamis.
Javascript pertama kali dirancang oleh perusahaan Netscape yang ingin
melengkapi fitur browser miliknya –Navigator- yang sebelumnya telah mendukung
Java untuk lebih bisa dimanfaatkan oleh programmer non-Java. Diciptakanlah
bahasa pemrograman yang bernama Livescript untuk mengakomodasi hal tersebut.
Dari bahasa pemrograman inilah kemudian berkembang menjadi Javascript,
walaupun tidak ada hubungannya antara bahasa Java dengan Javascript.
Javascript merupakan bahasa pemrograman yang cukup mudah dikuasai
dan memiliki banyak fungsi yang dapat digunakan untuk meningkatkan efek visual
dari halaman web. Kode dari javascript harus diapit oleh tag, diawali dengan tag
<script language=”javascript”> dan diakhiri dengan dengan tag </script>.
2.1.8.4 JQuery
Menurut Beighley (2010, p8) jQuery adalah open source add-on pustaka
JavaScript yang menekankan pada interaksi antara JavaScript dan HTML. JQuery
merupakan kode javascript yang telah ditulis, kita tinggal menambahkan satu atau
dua baris koding untuk memanggil koding jQuery.
16
jQuery memberikan cara yang mudah dalam membuat efek-efek webpage
yang canggih kepada para pengembang dan perancang website, karena jQuery
sangat mudah diimplementasikan pada setiap halaman web. Pustaka ini dirilis pada
Januari 2006 di BarCamp NYC oleh John Resig dan berlisensi ganda di bawah
Lisensi MIT dan GPL.
2.1.8.5 CSS (Cascading Style Sheets)
Menurut Sulistyawan, Rubianto, Saleh (2008, p32), CSS adalah suatu
bahasa stylesheet yang mengatur tampilan suatu dokumen. Pada umumnya CSS
digunakan untuk memformat halaman web yang ditulis dengan HTML dan
XHTML. Menurut Juju, Matamaya Studio (2008, p95) CSS adalah bahasa
stylesheet yang digunakan untuk mengatur tampilan dokumen. CSS memungkinkan
kita untuk menampilkan halaman yang sama dengan format yang berbeda.
Dengan CSS, tampilan website akan lebih cantik dan konsisten. Ada dua
cara untuk menuliskan kode CSS. Pertama secara internal, yaitu menuliskan
langsung diantara tag HTML/XHTML. Kedua secara eksternal, yaitu kode CSS
disimpan dalam file yang terpisah kemudian dipanggil saat halaman web dibuka.
CSS sendiri merupakan sebuah teknologi internet yang direkomendasikan oleh
World Wide Web Consortium (W3C) dan diperkenalkan pada tahun 1996.
Sampai saat ini, hampir seluruh website yang ada di dunia menggunakan
CSS untuk memformat halaman webnya. Beberapa alasan web developer selalu
menggunakan CSS dalam memformat tampilan webnya adalah:
1. CSS dapat memecahkan permasalahan keseragaman style pada suatu
dokumen HTML/XHTML.
17
2. CSS meringankan pekerjaan untuk memformat seluruh tampilan dokumen
3. Multiple style akan tersimpan dalam satu dokumen
2.1.8.6 MySQL
Menurut Wahana Komputer (2010, p26), MySQL adalah salah satu
software sistem manajemen database (DBMS) Structured Query Language (SQL).
Menurut Sakur (2005, p57) MySQL merupakan sistem manajemen database,
relasional sistem database dan software open source SQL yang sangat popular.
MySQL dikembangkan oleh perusahaan MySQL AB, yaitu perusahaan komersial
yang didirikan oleh dua orang swedia untuk memberikan pelayanan seputar
MySQL database termasuk mengembangkan kembali software tersebut
2.1.9 Database dan Database Management System
Dalam manajemen data, file diperlukan untuk menyimpan data-data secara
permanent. File tersebut dapat digunakan untuk menyimpan dan mencari data dengan
meknisme yang sederhana untuk mengakses dan sharing data. Koleksi data tersebut
adalah database (Atzeni et al, 1999, p3). Menurut Date (1990, p9) Database adalah
koleksi data-data tetap yang digunakan oleh sistem aplikasi sebuah perusahaan.
Menurut Connolly, Begg (2004, p15), database adalah kumpulan data yang terhubung
secara logis beserta deskripsi dari masing-masing data, dirancang untuk memenuhi
kebutuhan informasi suatu organisasi.
Umtuk memudahkan akses ke database diperlukan DBMS, yaitu software
yang memungkinkan pengguna untuk mendefinisikan, menciptakan, memelihara dan
mengontrol akses ke database (Connolly, Begg, 2005, p16). Secara khusus, DBMS
18
menyediakan fasilitas untuk mendefinisikan database (DDL), memanipulasi seperti
insert, update, delete, dan retrieve database (DML), dan menyediakan akses kontrol
database.
2.1.9.1 DDL (Data Definition Language)
Menururt Connolly, Begg (2004, p40), DDL adalah sebuah bahasa yang
memungkinkan database administrator atau user untuk menggambarkan dan
memberi nama entitas, attribute, dan hubungan yang dibutuhkan aplikasi, termasuk
didalamnya integritas terkait dan masalah keamanan. Dengan bahasa inilah kita
dapat membuat tabel baru, membuat indeks, mengubah tabel, menentukan struktur
penyimpanan tabel dan sebagainya. Hasil dari kompilasi statement DDL adalah satu
set table yang disimpan didalam file khusus secara bersama yang disebut dengan
sistem katalog.
Pembuatan (Create)
Perubahan (Alter & Rename)
Penghapusan (Drop)
Create database
Create function
Create index
Create procedure
Create table
Create trigger
Create view
Alter database
Alter function
Alter procedure
Alter table
Alter view
Rename table
Drop database
Drop function
Drop index
Drop procedure
Drop table
Drop trigger
Drop view
Tabel 2.1 : Daftar perintah DDL pada Mysql 5.0
19
2.1.9.2 DML (Data Manipulation Language)
Menururt Connolly, Begg (2004, p40), DML adalah sebuah bahasa yang
menyediakan kumpulan perintah yang mendukung operasi manipulasi data yang
berada di database. Operasi manipulasi data biasanya adalah:
• Memasukan data baru ke dalam database.
• Modifikasi data yang disimpan di database.
• Mengambil data yang berada di database.
• Menghapus data dari database.
DATA MANIPULATION LANGUAGE
CALL
INSERT
UPDATE
DELETE
SELECT
LOAD DATA INFILE
REPLACE
TRUNCATE
DO
HANDLER
2.1.9.3 ERD (Entity Relationship Diagram)
ERD adalah pendekatan top-down dalam perancangan database yang
dimulai dengan mengidentifikasi entitas dan hubungan antara entitas tersebut.
Kemudian kita menambahkan informasi-informasi yang berhubungan dengan
keduanya (Connolly, Begg, 2004, p343). Model ERD merupakan teknik yang
Tabel 2.2 : Daftar perintah DML pada Mysql 5.0
20
penting dalam perancangan database. Untuk membuat ERD, ada tiga buah
komponen yang harus diidentifikasi yaitu:
1. Entitas
Menurut Connolly, Begg (2004, p343) entitas adalah representasi dari
kumpulan obyek yang ada di dunia nyata dengan properti yang sama, yang
diidentifikasi oleh lingkungan sebagai obyek yang memiliki keberdaan
independent. Secara sederhana, entitas adalah obyek yang harus berada pada
lingkungan tertentu. Contoh: entitas ‘mahasiswa’ harus ada pada lingkungan
kampus, demikian pula dengan entitas ‘dosen’, ‘mata kuliah’ dsb.
2. Attribute
Menurut Connolly, Begg (2004, p346) elemen-elemen dari entitas
disebut atribut untuk mendeskripsikan karakteristik dari entitas tersebut. Isi
dari atribut mempunyai sesuatu yang dapat mengidentifikasikan isi elemen
satu dengan yang lain.
3. Hubungan (Relation)
Menurut Connolly, Begg (2004, p346) relation adalah hubungan antara
sejumlah entitas. Masing-masing relasi diberi nama untuk menggambarkan
fungsinya.
21
Gambar 2.1 : Potongan ERD pemesanan makanan
2.1.10 Normalisasi
Normalisasi adalah teknik perancangan database, yang dimulai dengan
memeriksa hubungan antara attribut. Normalisasi menggunakan berbagai tahap tes
(yang disebut dengan normal form) untuk membantu mengidentifikasi
pengelompokan atribut tersebut secara optimal, sehingga membentuk serangakaian
hubungan data yang sesuai (Connolly, Begg, 2005, p387).
Database yang memiliki hubungan data optimal akan memberikan manfaat,
diantaranya memudahkan user untuk mengakses dan memelihara data serta
meminimalisir ruang penyimpanan pada komputer. Selain itu, normalisasi juga
bertujuan untuk menghilangkan data yang berulang dan membuat data independent
(hanya data yang berhubunga saja yang berada dalam satu table)
Pemesan
Makanan
Memesan
Kode
Makanan Jenis
Makanan
Nama
Makanan
Kode
Makanan
Nomor meja
Nama
Pemesan
Kode
pemesan
22
Pada dasarnya tahapan proses normalisasi atau normal form ada tiga tahap,
yaitu First Normal Form (1NF), Second Normal Form (2NF), dan Third Normal Form
(3NF). Kemudian, R. Boyce and E.F. Codd memperkenalkan normal form ketiga yang
lebih baik yang disebut dengan Boyce-Codd Normal Form (BCNF). Tahapan
selanjutnya setelah BCNF adalah Fourth Normal Form (4NF) dan Fifth Normal Form
(5NF), namun dalam penerapannya sangatlah jarang.
Gambar 2.2 : Hubungan antar normal form
23
Gambar 2.3 : Ilustrasi proses normalisasi hingga bentuk ketiga (3NF)
User User’s requirements specification
Forms/report that are used or generated by the
enterprise
Sources describing the enterprise such as data dictionary and corporate
data model
Unnormalized Form (UNF)
First Normal Form (1NF)
Second Normal Form (2NF)
Third Normal Form (3NF)
Data sources
Transfer attributes into tabl e f t
Romove repeating groups
Remove partial dependencies
Remove transitive dependencies
24
Gambar 2.5 : ‘Client Rental’ dalam bentuk normal pertama (1NF)
Gambar 2.4 : ‘Client Rental’ dalam bentuk tidak normal (UNF)
2.1.10.1 Bentuk Tidak Normal
Bentuk ini merupakan kumpulan data yang disimpan dari sumber data
kedalam format table dengan baris dan kolom. Tidak ada keharusan mengikuti
suatu aturan, sehingga data dapat terduplikasi (Connolly, Begg, 2005, p403).
2.1.10.2 Bentuk Normal Pertama
Untuk mengubah tabel bentuk tidak normal menjadi bentuk normal
pertama adalah dengan menghilangkan repeating group yang berada di dalam tabel.
Repeating group adalah attribut atau kelompok attribut di dalam tabel yang
memiliki beberapa nilai (Connolly, Begg, 2005, p403).
25
Gambar 2.6 : ‘Client Rental’ dalam bentuk normal kedua (2NF)
2.1.10.3 Bentuk Normal Kedua
Suatu tabel berada dalam bentuk normal kedua (2NF) jika tabel berada
dalam bentuk normal pertama, dan setiap atribut yang bukan primary key memiliki
ketergantungan sepenuhnya terhadap primary key (Utami, Raharjo, 2006, p33).
2.1.10.4 Bentuk Normal Ketiga
Suatu tabel berada dalam bentuk normal ketiga (3NF) jika tabel berada
dalam bentuk normal kedua, dan setiap attribute yang bukan primary key tidak
memiliki ketergantungan secara transitif terhadap primary key (Utami, Raharjo,
2006, p33).
Suatu atribut disebut memiliki ketergantungan transitif jika A, B, dan C
adalah atribut dari sebuah relasi, dimana A → B dan B → C, maka C secara
transitif memiliki ketergantungan dengan A (Connolly, Begg, 2005, p397).
26
Gambar 2.7 : ‘Client Rental’ dalam bentuk normal ketiga (3NF)
2.1.11 IMK (Interaksi Manusia dan Komputer)
2.1.11.1 Definisi
Ketika seseorang bekerja dengan sebuah komputer, secara disadari
atau tidak, dia melakukan interaksi dengan komputer dengan menggunakan cara-
cara tertentu. Interaksi terjadi ketika pengguna memasukan data, yang kemudian
akan ditanggapi oleh komputer dengan menampilkan suatu keluaran ke layer
tampilan atau pencetak (Santoso, 2009, p2). Pembuat interface bisa dikatakan
sebagai pahwalan transformasi dikarenakan pekerjaannya yang membuat
personal computer sebagai social computer, yang memungkinkan user untuk
berkomunikasi dengan komputer dan berkolaborasi dengan cara yang luar biasa
(Shneiderman, Plaisant, 2010, p22).
Dalam membuat interface ada ukuran atau parameter yang harus
diperhatikan para designer interface agar interface yang dibuatnya dapat dikatan
27
user-friendly. Ukuran atau parameter tersebut adalah (Shneiderman, Plaisant,
2010, p32):
1. Waktu untuk belajar. Berapa lama waktu yang dibutuhkan user untuk
mempelajari aksi yang harus dilakukan pada suatu tugas.
2. Kecepatan performa. Berapa lama waktu yang dibutuhkan untuk
melaksanakan tugas.
3. Tingkat kesalahan user. Berapa banyak dan apa saja jenis kesalahan yang
dilakukan orang dalam melaksanakan tugas? meskipun waktu untuk membuat
dan memperbaiki kesalahan mungkin dimasukkan ke dalam kecepatan
kinerja, penanganan kesalahan adalah suatu komponen penting dari
penggunaan antarmuka utamanya layak studi ekstensif
4. Retensi dari waktu ke waktu. Seberapa baik pengguna mempertahankan
pengetahuan mereka setelah satu jam, sehari, atau seminggu? retensi sangat
berhubungan erat dengan waktu untuk belajar, dan frekuensi pemakaian.
5. Kepuasan subjektif. Berapa banyak pengguna menyukai penggunaan
berbagai macam aspek dari penampilan? jawabannya dapat dipastikan dengan
wawancara atau kuesioner.
2.1.11.2 Delapan Aturan Emas
Golden Rules adalah 8 prinsip yang berlaku untuk kebanyakan
sistem-sistem interaktif. Prinsip-prinsip ini berasal dari pengalaman dan telah
disempurnakan lebih dari tiga decade (Ben Shneiderman 2010, p88).
28
1. Berusaha untuk konsisten.
Konsistensi dilakukan pada urutan tindakan, perintah, dan istilah yang
digunakan pada prompt, menu, atau layar bantuan.
2. Menyediakan usability universal (shortcut).
Untuk meningkatkan kecepatan interaksi, maka diperlukan tombol fungsi,
perintah tersembunyi, dan fasilitas makro.
3. Memberikan umpan balik yang informatif.
Untuk setiap tindakan user, sebaiknya disertakan suatu sistem umpan balik.
Untuk tindakan yang sering dilakukan dan tidak terlalu penting, dapat
diberikan umpan balik yang sederhana. Tetapi untuk tindakan yang penting,
maka umpan balik sebaiknya lebih substansial. Misalnya muncul suatu suara
ketika salah menekan tombol pada waktu input data atau muncul pesan
kesalahannya.
4. Merancang dialog yang memberikan penutupan (keadaan akhir).
Urutan tindakan sebaiknya diorganisir dalam suatu kelompok dari bagian
awal, tengah, samapi akhir. Pada bagian akhir tindakan, sebaiknya diberikan
indikasi bahwa cara yang dilakukan sudah benar dan dapat mempersiapkan
kelompok tindakan berikutnya.
5. Memberikan pencegahan dan penanganan kesalahan yang sederhana.
Sedapat mungkin sistem dirancang agar pengguna tidak melakukan kesalahan
fatal. Jika kesalahan terjadi, sistem dapat mendeteksi kesalahan dengan cepat
dan memberikan mekanisme yang sedehana dan mudah dipahami untuk
penanganan kesalahan.
29
6. Mudah untuk kembali ke tindakan sebelumnya.
Hal ini dapat mengurangi kekhawatiran pengguna karena mengetahui
kesalahan yang dilakukan dapat dibatalkan, sehingga pengguna tidak takut
untuk mengekplorasi pilihan-pilihan lain yang belum biasa digunakan.
7. Mendukung pusat kendali internal (internal locus of control).
User adalah pengontrol sistem dan sistem akan merespon tindakan yang
dilakukannya. Sebaiknya sistem dirancang sedemikan rupa sehingga
pengguna menjadi inisiator daripada responden.
8. Mengurangi beban ingatan jangka pendek.
Karena keterbatasan ingatan manusia maka interface sebaiknya dibuat
dengan tampilan yang sederhana, serta tidak memakan waktu untuk melatih,
dan mengetahui urutan-urutan tindakan.
30
2.1.12 Rekayasa Piranti Lunak
2.1.12.1 Definisi dan Tujuan
Menurut Steward (1987, p4), rekayasa piranti lunak adalah mengatur
keseluruhan proses pengembangan sistem komputer untuk memecahkan suatu
masalah. Menurut Sommerville (2011, p7), rekayasa piranti lunak adalah
rekayasa dengan konsentrasi terhadap seluruh aspek produksi software mulai dari
spesifikasi sistem hingga memelihara sistem dan dipakai oleh user. Rekayasa
piranti lunak adalah pembangunan dan pengunaan prinsip-prinsip perekayasaan
untuk mendapatkan software ekonomis yang dapat bertahan dan bekerja secara
efisien di mesin-mesin yang nyata. (Pressman, 2005, p53).
Tujuan dari rekayasa perangkat lunak adalah untuk menghasilkan
software yang berkualitas tinggi, tidak terlalu banyak memakan biaya produksi,
cepat dalam produksinya dan juga termasuk didalamnya dokumentasi yang
menjelaskan bagaimana menginstall dan memakai software tersebut.
Disiplin rekayasa perangkat lunak dimunculkan akibat krisis
pengembangan perangkat lunak selama tahun 1960-an dan tahun 1970-an sebagai
reaksi terhadap kegagalan proyek peranngkat lunak, kerugian ekonomi,
keterlambatan jadwal, pasar kompetitif yang terus meningkat, dan peningkatan
permintaan untuk kemampuan, kualitas, dan keandalan.
Dalam disiplin rekayasa piranti lunak, terdapat sebuah pondasi yang
digunakan untuk membangun software secara lengkap dengan mengidentifikasi
beberapa aktifitas-aktifitas kecil yang dapat diaplikasikan ke seluruh proyek
pembuatan software tanpa melihat besar atau kompleksnya software tersebut.
Proses aktifitas-aktifitas tersebut ada lima yaitu:
31
1. Communication; aktifitas ini melibatkan komunikasi yang intensif serta
kolaburasi dengan customer guna mendapatkan kebutuhan-kebutuhan yang
terkait dalam pembuatan software.
2. Planning; aktifitas ini berguna untuk membangun sebuah rencana sebagai
panduan para software engineer dalam membuat software. Aktifitas ini
menggambarkan teknik lapangan yang harus dilakukan, resiko-resiko yang
didapat, sumber daya yang dibutuhkan, jadwal kerja, dan produk yang
dihasilkan.
3. Modeling; aktifitas ini meliputi perancangan atau pembuatan model yang
memungkinkan developer dan customer untuk dapat memahami kebutuhan
dengan baik.
4. Construction; aktifitas ini melibatkan pembuatan koding (entah itu manual
atau otomatis) dan testing yang digunakan untuk mengidentifikasi kesalahan
pada koding
5. Deployment; software diberikan kepada user untuk dievaluasi, kemudian user
memberikan feedback berdasarkan evaluasinya terhadap software tersebut.
Lima aktifitas ini dapat digunakan selama masa pengembangan
software yang kecil atau besar dan rumit. Walaupun detail dari masing-masing
aktifitas mungkin akan sedikit berbeda namun aktifitasnya tetap sama.
32
Gambar 2.8 : Model incremental
2.1.12.2 Incremental Model
Menurut Pressman (2005, p80), model incremental
mengkombinasikan element-element dari waterfall dengan sifat
iterasi/perulangan. Model incremental mengaplikasikan urutan pengerjaan yang
berurutan dan berulang, dimulai dari fase pertama sampai fase akhir dan
menghasilkan produk dengan spesifikasi yang lebih lengkap dari yang
sebelumnya. Demikian seterusnya hingga semua spesifikasi memenuhi
kebutuhan yang ditetapkan oleh pengguna.
Produk hasil increment pertama biasanya merupakan produk inti
yaitu produk yang memenuhi kebutuhan dasar. Produk tersebut digunakan oleh
pengguna dan dilakukan review/pengecekan detil. Hasil review tersebut menjadi
bekal untuk pembangunan pada increment berikutnya. Hal ini terus dikerjakan
sampai produk yang dihasilkan telah komplit dan memenuhi kebutuhan. Model
33
ini mampu mengakomodasi perubahan secara fleksibel sehingga cocok
digunakan untuk proses pengembangan yang kebutuhannya berubah-ubah atau
tidak lengkap. Produk yang dihasilkan pada increment pertama bukanlah
prototype, tapi produk yang sudah bisa berfungsi sesuai dengan spesifikasi dasar.
2.1.13 UML (Unified Modeling Language)
Menurut Booch, Rumbaugh, dan Jacobson (1999, p14), UML adalah bahasa
untuk visualisasi, menentukan, membangun, dan mendokumentasikan artifak-artifak
dari sistem perangkat lunak-intensif. UML adalah bahasa pemodelan yang memiliki
kosa kata dan aturan fokus pada representasi konseptual dan fisik sistem. Kosakata
dari UML meliputi tiga jenis blok bangunan:
Things
Relationships
Diagrams
UML pertama kali diperkenalkan pada tahun 1990-an ketika Grady Booch,
Ivar Jacobson dan James Rumbaugh mengadopsi ide serta kemampuan tambahan dari
masing-masing metodanya dan berusaha membuat metodologi terpadu yang kemudian
dinamakan UML (Unified Modeling Language).
34
Gambar 2.9 : Struktur diagram UML
Gambar 2.10 : Notasi hubungan dependency
Hubungan dalam UML
Dependency; hubungan yang menyatakan bahwa objek yang satu dapat
mempengaruhi objek lain yang menggunakannya, tetapi tidak sebaliknya.
Generalisasi; hubungan antara hal yang umum (biasa disebut superclass atau
parent) dengan hal yang lebih spesifik (biasa disebut subclass atau child).
Generalisasi adalah hubungan yang menyatakan “ bagian dari “.
35
Gambar 2.11 : Notasi hubungan generalisasi
Gambar 2.12 : Notasi hubungan asosiasi
Gambar 2.13 : Notasi multiplicity
Asosiasi; hubungan yang menyatakan bahwa objek yang satu dengan objek yang
lain saling berhubungan
Multiplicity; angka dihubungan asosiasi yang menyatakan berapa kali objek yang
satu dengan yang lain saling berhubungan.
36
Gambar 2.15 : Notasi Class diagram
Gambar 2.14 : Notasi hubungan agregasi
Agregasi; hubungan dimana terdapat objek yang digambarkan lebih besar dan
memiliki objek yang lebih kecil. Agregasi adalah hubungan yang menyatakan
“mempunyai”
1.1.1.1. Class Diagram
Menurut Booch, Rumbaugh, dan Jacobson (1999, p25), Class
diagram menunjukkan set kelas, interface, kolaborasi dan hubungan mereka.
Diagram ini adalah diagram yang paling umum ditemukan dalam sistem
pemodelan berorientasi objek. Class diagram menangani tampilan desain statis
dari suatu sistem. Class diagram biasanya terdiri dari:
37
Gambar 2.16 : Class diagram
1. Nama kelas; setiap kelas harus mempunyai nama yang akan membedakannya
dengan kelas yang lain. Nama kelas berupa text yang dapat berisi bilangan
dan huruf. Pada prakteknya, nama kelas merupakan kata benda atau kata frasa
yang menggambarkan atributnya.
2. Atribut; nama atribut berupa text. Atribut merupakan nama benda atau frasa
yang menggambarkan kelasnya. Satu kelas bisa memiliki banyak atribut atau
tidak sama sekali.
3. Operasi; nama operasi berupa text. Operasi merupakan sesuatu yang dapat
dilakukan oleh object class.
38
Gambar 2.17 : Use case diagram
1.1.1.2. Use Case Diagram
Menurut Booch, Rumbaugh, dan Jacobson (1999, p25), Use case
diagram menunjukkan set aktivitas, pelaku, dan hubungan mereka. Use case
menangani tampilan statis use case dari sebuah sistem. Diagram ini sangat
penting dalam mengatur dan pemodelan perilaku sistem. Use case diagram
biasanya terdiri dari:
1. Use cases; sesuatu yang dilakukan oleh aktor pada sistem
2. Aktor; merupakan suatu kumpulan yang mempunyai peran dengan use case.
Aktor bisa berupa manusia atau sistem yang otomatis
3. Hubungan dependency, generalisasi dan asosiasi
39
Gambar 2.18 : Sequence diagram
1.1.1.3. Sequence Diagram
Menurut Booch, Rumbaugh, dan Jacobson (1999, p25), Sequence
diagram menunjukkan interaksi, yang terdiri dari sekumpulan objek dan
hubungan mereka, termasuk pesan yang dapat dikirim di antara mereka. Diagram
ini menekankan waktu pemesanan pesan; Sequence diagram menangani
tampilan dinamis dari sistem. Sequence diagram biasanya terdiri dari:
1. Objek
2. Link
3. Message
40
Gambar 2.19 : Activity diagram
1.1.1.4. Activity Diagram
Menurut Booch, Rumbaugh, dan Jacobson (1999, p25), Activity
diagram adalah jenis khusus dari statechart diagram yang menunjukkan alur dari
kegiatan ke kegiatan yang lain dalam sistem. Activity diagram menangani
tampilan dinamis sistem, diagram ini penting terutama dalam pemodelan fungsi
sistem dan menekankan aliran kontrol antara objek-objek. Activity diagram
biasanya terdiri dari:
1. Action states dan activity states
2. Transitions
Triggerless transition
Branching
Forking dan joining
Swimlanes
3. Objects
41
2.2 Teori-teori Khusus
2.2.1 Zakat
Ditinjau dari segi bahasa, kata zakat memiliki beberapa arti, yaitu
al-Barakatu ‘keberkahan’, al-namaa ‘pertumbuhan dan perkembangan’, ath-thaharatu
‘kesucian’, dan ash-shalahu ‘keberesan’. Sedangkan secara istilah, meskipun para
ulama mengemukakannya dengan redaksi yang berbeda antara satu dengan yang
lainnya, akan tetapi pada prinsipnya sama, yaitu bagian dari harta dengan persyaratan
tertentu, yang Allah SWT mewajibkan kepada pemiliknya, untuk diserahkan kepada
yang berhak menerimanya dengan persyaratan tertentu pula (Hafidhudin, 2002, p7).
Harta yang wajib untuk dikeluarkan zakatnya adalah:
1. Zakat Penghasilan atau profesi.
2. Zakat emas, perak, uang, dan deposito.
3. Zakat perdagangan atau perusahaan.
4. Zakat pertanian dan perternakan.
5. Zakat barang tambang dan barang temuan
Adapun persyaratan harta yang wajib dizakatkan itu, adalah (Hafidhudin, 1998, p13):
1. al-milk at-tam yang berarti harta tersebut dimiliki secara sah dan dikuasai
penuh.
2. an-namaa yaitu harta yang berkembang atau memiliki potensi untuk
berkembang seperti harta perniagaan, peternakan, pertanian dan sebagainya.
3. Telah mencapai nishab, yaitu ukuran minimal harta yang dikenai kewajiban
zakat. Misalnya untuk zakat emas atau perak, ukuran minimalnya adalah 85
gram dan 85 gram emas untuk zakat perdagangan atau perusahaan. Jika
42
seseorang memiliki harta yang lebih dari ukuran minimal, maka harta
tersebut wajib untuk dizakati.
4. Telah melebihi kebutuhan pokok, yaitu kebutuhan minimal yang diperlukan
seseorang untuk kelangsungan hidupnya atau keluarganya.
5. Telah mencapai haul, yaitu masa yang sudah mencapai satu tahun untuk
harta-harta tertentu seperti perdagangan, emas atau perak. Namun jika harta
tanaman, dikeluarkan zakatnya pada setiap panen. Haul adalah masa satu
tahun yang harus dilewati oleh nishab harta tertentu tanpa berkurang
sedikitpun dari nishab sampai akhir tahun.
Zakat adalah ibadah dalam harta dan termasuk dalam rukun Islam yang
ketiga. Keberadaan zakat memiliki peranan penting dalam kehidupan Islam, karena
memiliki banyak sekali manfaat dan hikmah, diantaranya (Hafidhudin, 2002, p10):
1. Sebagai perwujudan keimanan seorang muslim kepada Allah SWT sebagai
rasa syukur atas nikmat-Nya, menumbuhkan akhlak yang mulia dengan rasa
kemanusiaan yang tinggi, dan menghilangkan sifat kikir dan rakus.
2. Zakat merupakan hak mustahiq, sehingga berfungsi untuk menolong,
membantu, dan membina mereka ke arah kehidupan yang lebih baik dan
sejahtera.
3. Salah satu bentuk konkret jaminan sosial yang disyariatkan oleh ajaran
agama Islam.
4. Sebagai salah satu sumber dana bagi pembangunan sarana dan prasarana
yang harus dimiliki umat Islam, seperti sarana ibadah, pendidikan,
kesehatan, sosial maupun ekonomi. Sekaligus sebagai pengembangan
kualitas sumber daya manusia muslim.
43
2.2.2 Infaq
Infaq berasal dari anfaqa yang berarti ‘mengeluarkan sesuatu (harta) untuk
kepentingan tertentu. Sedangkan menurut terminologi syariat, infaq adalah
mengeluarkan sebagian dari harta/pendapatan untuk suatu kepentingan yang
diperintahkan ajaran agama Islam. Jika zakat memiliki nishab, maka infaq tidak
mengenal nishab. Infaq dikeluarkan oleh siapa saja dan berapapun jumlahnya tanpa
ada persyaratan tertentu. Jika zakat harus diberikan kepada mustahiq, maka infaq
boleh diberikan kepada siapa saja. Misalnya orang tua, sahabat, keluarga, anak yatim,
dan sebagainya (Hafidhudin, 1998, p14).
2.2.3 Sedekah
Sedekah berasal dari kata shadaqa yang berarti ‘benar’. Orang yang
bershadaqah adalah orang yang benar pengakuan imannya. Sedangkan secara
terminologi, pengertian sedekah hampir sama dengan pengertian infaq termasuk
hukum dan ketentuan-ketentuannya. Hanya saja, jika infaq selalu dikaitkan dengan
materi, sedekah tidak hanya materi namun juga nonmaterial. Bentuk-bentuk shadaqah
nonmaterial, diantaranya (Hafidhudin, 1998, p15):
1. Tasbih, Tahlil, dan Tahmid
2. Amar Ma’ruf Nahi Mungkar
3. Hubungan Intim Suami Istri
4. Bekerja dan memberi nafkah pada sanak keluarganya
5. Membantu urusan orang lain
6. Menjenguk orang sakit
7. Berwajah manis atau memberikan senyuman.
44
2.2.4 Muzaki
Muzakki adalah orang atau badan lembaga yang memiliki harta dan telah
mencapai nishab dan haulnya, kemudian mengeluarkan zakatnya
2.2.5 Mustahik
Menurut Utomo (2009, p42) Mustahiq adalah orang-orang yang berhak
menerima zakat. Sebagaimana QS: Al-Taubah (9): 103, menyebutkan bahwa mustahiq
dibagi menjadi 8 golongan. Adapun 8 golongan tersebut adalah:
1. Fakir yaitu orang yang tidak mempunyai harta untuk memenuhi kebutuhan
dirinya sendiri dan keluarganya baik dalam berupa makanan, minuman,
pakaian, ataupun tempat tinggal.
2. Miskin adalah orang yang memiliki penghasilan, namun belum mencukupi
kebutuhan hidupnya sehari-hari.
3. Amil yaitu orang yang kerjanya mengurusi, mengumpulkan, dan menakar
zakat. Petugas zakat diberi upah dari zakat kendati ia orang kaya.
4. Untuk memerdekakan budak
5. Muallaf yaitu orang yang baru memeluk Islam.
6. Fii Sabilillah, yaitu amal perbuatan yang diridhai oleh Allah dan mencakup
kepentingan orang banyak, seperti pembangunan masjid, madrasah, rumah
sakit, dan lain sebagainya.
7. Gharimiin yaitu orang yang dililit hutang.
8. Ibnu Sabil yaitu orang yang melakukan perjalanan yang jauh meninggalkan
negerinya dengan tujuan yang baik dan kehabisan bekal.
45
2.2.6 Badan dan Lembaga Zakat
BAZ (Badan Amil Zakat) dan LAZ (Lembaga Amil Zakat) adalah Badan dan
Lembaga Zakat yang bergerak dalam pengelolaan zakat meliputi kegiatan
perencanaan, pengorganisasian, pelaksanaan, dan pengawasan terhadap pengumpulan
dan pendistribusian serta pendayagunaan zakat. BAZ dan LAZ merupakan lembaga
resmi yang dibentuk pemerintah berdasarkan Undang-undang Nomor 38 Tahun 1999.
BAZ dan LAZ mempunyai tingkatan-tingkatan dari tingkat Nasional hingga tingkat
kecamatan.