1 APLIKASI PERHITUNGAN ZAKAT BERBASIS WEB MENGGUNAKAN BAHASA PEMROGRAMAN PHP Laporan Tugas Akhir Diajukan untuk melengkapi persyaratan mencapai gelar ...
APLIKASI PERHITUNGAN ZAKAT BERBASIS WEB MENGGUNAKAN BAHASA PEMROGRAMAN PHP
Laporan Tugas Akhir
Diajukan untuk melengkapi persyaratan mencapai gelar sarjana strata satu (S1) Program Studi Teknik Informatika
oleh INDRI SITI NURJANAH NIM 01502-032
PROGRAM STUDI TEKNIK INFORMATIKA FAKULTAS ILMU KOMPUTER UNIVERSITAS MERCU BUANA JAKARTA 2009
i
ABSTRAK
Zakat adalah rukun Islam ketiga dalam agama Islam. Kedudukan zakat sama pentingnya dengan shalat. Bagi umat Islam yang mempunyai kekayaan yang lebih dari cukup, maka ia telah diwajibkan untuk berzakat. Manfaat zakat banyak sekali. Selain untuk menyucikan harta dan diri orang yang berzakat, juga untuk membantu orang yang kurang mampu dengan menerima zakat tersebut. Namun masih banyak orang yang belum mengerti tentang perhitungan zakat. Dengan latar belakang tersebut, penulis membuat aplikasi perhitungan zakat berbasis web sebagai alternatif untuk memudahkan proses perhitungan zakat yang harus dikeluarkan/dibayarkan. Aplikasi perhitungan zakat berbasis web tersebut dibangun menggunakan PHP versi 5.2.5 sebagai server web dan MySQL versi 5.0 sebagai basis data. Dalam melakukan analisis kebutuhan untuk aplikasi perhitungan zakat tersebut penulis menggunakan diagram keterhubungan entitas, diagram aliran data (Data Flow Diagram), dan diagram transisi keadaan.
Kata kunci: aplikasi perhitungan zakat, menghitung zakat, pemrograman zakat berbasis web.
ii
ABSTRACT
In Islam, zakat is the third Islam pillar. The position of zakat is the same as pray position. For moslems which the wealth has reach to give zakat, then they have to pay zakat. Benefit of zakat is very many. One of them is zakat can pure the soul of the person who give zakat and clean their treasure, and also help another people in financial. But many people still don’t understand how to calculate zakat. Based on these background, I developed a web based application program to calculate zakat as an alternatif to ease the process of zakat calculation. The application of zakat calculation is built on PHP version 5.2.5 as the programming language and MySQL version 5.0 as the database. To analyse the requirements of the application I used Entity Relationship diagram, Data Flow diagram, and State Transition diagram.
Keywords: the application of zakat calculation, calculate zakat, web base zakat programming
iii
LEMBAR PENGESAHAN
Yang bertanda tangan dibawah ini menyatakan bahwa laporan Tugas Akhir dari mahasiswa berikut ini: Nama
: Indri Siti Nurjanah
NIM
: 01502-032
Fakultas
: Ilmu Komputer
Jurusan
: Teknik Informatika
Judul
: Aplikasi Perhitungan Zakat Berbasis Web Menggunakan Bahasa Pemrograman PHP
Telah disidangkan, diperiksa, dan disetujui sebagai laporan Tugas Akhir. Jakarta, …..Agustus 2009
Menyetujui,
Menyetujui,
(Drs. Achmad Kodar, ST., MT) Pembimbing I Tugas Akhir
(Bambang Joko Nowo, SSi, MTI) Pembimbing II Tugas Akhir
Mengesahkan,
Mengetahui,
(Abdusy Syarif, ST., MT) Ketua Program Studi Teknik Informatika
(Devi Fitrianah, S.Kom, MTI) Koordinator Tugas Akhir
iv
LEMBAR PERNYATAAN
Yang bertanda tangan dibawah ini:
Nama
: Indri Siti Nurjanah
NIM
: 01502-032
Fakultas
: Ilmu Komputer
Jurusan
: Teknik Informatika
Judul
: Aplikasi Perhitungan Zakat Berbasis Web Menggunakan Bahasa Pemrograman PHP.
Menyatakan bahwa laporan Tugas Akhir ini dibuat dengan sebenar-benarnya tanpa menyadur Tugas Akhir orang lain.
Penulis
Indri Siti Nurjanah
v
KATA PENGANTAR
Dengan memanjatkan puji syukur kepada Allah SWT, atas rahmat dan izinNya penulis telah dapat menyelesaikan laporan Tugas Akhir ini. Laporan Tugas Akhir yang telah penulis susun berjudul ”Aplikasi Perhitungan Zakat Menggunakan Bahasa Pemrograman PHP”. Penulisan Tugas Akhir ini dapat terwujud karena adanya motivasi dan bantuan dari berbagai pihak. Dalam kesempatan ini dengan tulus dan ikhlas penulis mengucapkan terima kasih kepada: 1. Kedua orangtuaku tercinta atas segala dukungan baik moril maupun materil yang telah diberikan selama ini. 2. Bapak Abdusy Syarif, ST., MT., selaku ketua program studi Teknik Informatika dan Ibu Devi Fitrianah, S.Kom., MTI, selaku koordinator tugas akhir program studi Teknik Informatika. 3. Bapak Drs. Achmad Kodar, ST., MT., selaku pembimbing I tugas akhir penulis, yang telah dengan sabar membimbing dan mengajar penulis selama kuliah. 4. Bapak Bambang Joko Nowo, SSi, MTI, selaku pembimbing II tugas akhir penulis, yang telah dengan sabar membimbing penulis dalam menyusun tugas akhir. 5. Bapak Raka Yusuf ST., MTI., selaku dosen Pembimbing Akademik angkatan 2002, yang telah dengan sabar mengajar, membimbing, dan memotivasi penulis selama kuliah 6. Sahabat-sahabat terbaikku selaku teman seperjuangan; Rahayu Setianingsih, Rapiah Nurkholifah, Rohani, Siti Rubi A., Ria Angelia, Ika Puji Astuti dan
vi
teman-teman lainnya yang telah membantu memberi semangat dalam menyusun laporan tugas akhir ini. 7. Iriawan, Pandu Handoko, Dede Sulaeman, dan semua teman-teman angkatan 2002 yang telah membantu pemrograman PHP, buku, dan memberikan tausyiah kepada penulis untuk tetap semangat dalam menyusun laporan tugas akhir ini. 8. Seluruh dosen Teknik Informatika yang telah memberikan ilmu pengetahuannya kepada penulis. 9. Semua pihak yang telah banyak membantu penulis dalam menyusun tugas akhir ini yang tidak dapat disebutkan satu per satu. Semoga Allah membalas kebaikan mereka semua. Penulis menyadari bahwa laporan Tugas Akhir ini masih jauh dari sempurna. Untuk itu penulis selalu terbuka terhadap segala saran dan kritik yang bersifat membangun. Demikian penulis berharap semoga laporan Tugas Akhir ini dapat bermanfaat.
Jakarta, Agustus 2009
Indri Siti Nurjanah
vii
DAFTAR ISI
Halaman Judul ....................................................................................................... i Abstrak ................................................................................................................... ii Lembar Pengesahan ............................................................................................... iv Kata Pengantar ...................................................................................................... vi Daftar Isi ................................................................................................................ viii Daftar Gambar........................................................................................................ xii Daftar Tabel ........................................................................................................... xv Daftar Kode............................................................................................................ xvi BAB I
: PENDAHULUAN ................................................................................ 1 1.1 Latar Belakang ............................................................................... 1 1.2 Tujuan Penulisan............................................................................ 2 1.3 Batasan Masalah ............................................................................ 3 1.4 Metodologi Penelitian.................................................................... 3 1.5 Sistematika Penulisan .................................................................... 4
BAB II : LANDASAN TEORI............................................................................ 6 2.1 Pengertian Zakat ............................................................................ 6 2.1.1 Dasar Hukum Mengeluarkan Zakat ...................................... 6 2.1.2 Jenis-Jenis Zakat....…………………....................................7 2.1.2.1 Zakat Emas dan Perak............................................... 7 2.1.2.2 Zakat Uang................................................................ 9 2.1.2.3 Zakat Harta Perniagaan............................................. 9 2.1.2.4 Zakat Binatang Ternak.............................................. 10
viii
2.1.2.5 Zakat Lembu atau Kerbau......................................... 11 2.1.2.6 Zakat Kambing ......................................................... 12 2.1.2.7 Zakat Hasil Bumi ...................................................... 13 2.1.2.8 Zakat Fitrah............................................................... 15 2.1.3 Orang Yang Berhak Menerima Zakat....................................16 2.1.4 Orang Yang Tidak Boleh Menerima Zakat............................18 2.2 Rekayasa Perangkat Lunak Model Sequensial Linier.................... 18 2.3 Diagram Keterhubungan Entitas.................................................... 20 2.3.1 Diagram Aliran Data (DFD) ................................................. 23 2.3.2 Diagram Transisi Keadaan.................................................... 24 2.3.3 Kamus Data........................................................................... 26 2.3.4 Diagram Alur (Flowchart) .................................................... 28 2.4 Basis Data ...................................................................................... 29 2.4.1 Proses Perancangan Basis Data ............................................ 30 2.4.2 Kunci (key) ........................................................................... 33 2.4.3 Normalisasi ........................................................................... 34 2.5 Interaksi Manusia dan Komputer................................................... 46 2.6 Hypertext Preprocessor (PHP) ....................................................... 48 2.7 Structured Query Language (SQL) ................................................ 48 BAB III : ANALISIS DAN PERANCANGAN ................................................... 51 3.1 Rekayasa Sistem ............................................................................ 51 3.2 Analisis .......................................................................................... 52 3.2.1 Diagram Keterhubungan Entitas........................................... 52 3.2.2 Diagram Aliran Data............................................................. 60
4.1.3.6 Jendela Hitung Zakat Hasil Bumi ............................. 87 4.1.3.7 Jendela Hitung Zakat Harta Ternak .......................... 87 4.1.3.8 Jendela Hitung Zakat Fitrah...................................... 88 4.1.3.9 Jendela Data Zakat .................................................... 89 4.2 Pengujian........................................................................................ 90 4.2.1 Skenario Pengujian ..................................................................... 91 4.2.2 Hasil Pengujian ........................................................................... 92 4.2.3 Analisis Hasil Pengujian ............................................................. 94 BAB V : PENUTUP ............................................................................................ 96 5.1 Kesimpulan .................................................................................... 96 5.2 Saran .............................................................................................. 97 Daftar Pustaka........................................................................................................ 98 Lampiran ................................................................................................................ L
xi
DAFTAR GAMBAR
Gambar 2.1 Model Sequensial Linier .................................................................... 19 Gambar 2.2 Notasi ERD ........................................................................................ 21 Gambar 2.3 Contoh Hubungan Relasi satu ke Satu............................................... 22 Gambar 2.4 Contoh Hubungan Relasi satu ke banyak........................................... 22 Gambar 2.5 Contoh hubungan Relasi banyak ke banyak ...................................... 22 Gambar 2.6 Model Aliran Informasi ..................................................................... 23 Gambar 2.7 Notasi DFD Dasar .............................................................................. 24 Gambar 2.8 Notasi STD......................................................................................... 25 Gambar 2.9 STD software fotocopy....................................................................... 26 Gambar 2.10 Notasi deskripsi isi untuk kamus data.............................................. 27 Gambar 2.11 simbol-simbol diagram alur ............................................................. 28 Gambar 2.12 Penggunaan simbol-simbol proses flowchart .................................. 29 Gambar 2.13 Komponen-komponen perancangan basis data konseptual ............. 31 Gambar 2.14 Contoh kunci primer dan kunci tamu............................................... 34 Gambar 2.15 Contoh data belum ternormalisasi.................................................... 36 Gambar 2.16 Relasi yang memiliki bentuk 1NF.................................................... 36 Gambar 2.17 Diagram dependensi fungsional relasi ............................................. 37 Gambar 2.18 Relasi-relasi dekomposisi yang memenuhi bentuk 2NF.................. 38 Gambar 2.19 Bentuk relasi 2NF, tapi tidak memenuhi 3NF ................................. 39 Gambar 2.20 Bentuk relasi yang memenuhi bentuk 3NF...................................... 41 Gambar 2.21 Bentuk relasi 3NF tapi tidak memiliki bentuk BCNF...................... 42 Gambar 2.22 Diagram dependensi fungsional pada relasi SKT ............................ 43
xii
Gambar 2.23 Isi relasi ST dan TK ......................................................................... 44 Gambar 2.24 Bentuk tidak normal dan relasi hasil normalisasinya....................... 45 Gambar 2.25 Relasi-relasi hasil dekomposisi dari relsai pada Gambar 2.24......... 46 Gambar 3.1 ERD user dengan zakat harta emas.................................................... 57 Gambar 3.2 ERD user dengan zakat harta fitrah ................................................... 58 Gambar 3.3 ERD user dengan zakat harta hasil bumi ........................................... 58 Gambar 3.4 ERD user dengan zakat harta perak ................................................... 58 Gambar 3.5 ERD user dengan zakat harta perniagaan........................................... 59 Gambar 3.6 ERD user dengan zakat harta ternak .................................................. 59 Gambar 3.7 ERD user dengan zakat harta uang .................................................... 59 Gambar 3.8 Diagram Konteks ............................................................................... 60 Gambar 3.9 DFD Level 1....................................................................................... 61 Gambar 3.10 DFD Level 2..................................................................................... 62 Gambar 3.11 STD user .......................................................................................... 65 Gambar 3.12 STD login dan pendaftaran user....................................................... 65 Gambar 3.13 STD perhitungan zakat..................................................................... 66 Gambar 3.14 Diagram alur halaman index ............................................................ 68 Gambar 3.15 Diagram alur pendaftaran................................................................. 69 Gambar 3.16 Diagram alur perhitungan zakat ....................................................... 70 Gambar 3.17 Antarmuka login .............................................................................. 71 Gambar 3.18 Antarmuka isi ................................................................................... 71 Gambar 3.19 Antarmuka perhitungan zakat .......................................................... 72 Gambar 4.1 Tampilan Jendela Inisialisasi ............................................................. 84 Gambar 4.2 Tampilan halaman hitung zakat emas ................................................ 84
xiii
Gambar 4.3 Tampilan halaman hitung zakat perak ............................................... 85 Gambar 4.4 Tampilan halaman hitung zakat uang ................................................ 86 Gambar 4.5 Tampilan halaman hitung zakat niaga................................................ 86 Gambar 4.6 Tampilan halaman hitung zakat hasil bumi ....................................... 87 Gambar 4.7 Tampilan halaman hitung zakat ternak .............................................. 88 Gambar 4.8 Tampilan halaman hitung zakat fitrah................................................ 89 Gambar 4.9 Tampilan halaman data seluruh zakat ................................................ 90
Kode 4.1 Potongan kode sumber hitung zakat harta emas ....................................... 75 Kode 4.2 Potongan kode sumber hitung zakat harta perak....................................... 76 Kode 4.3 Potongan kode sumber hitung zakat harta uang........................................ 78 Kode 4.4 Potongan kode sumber hitung zakat niaga ................................................ 79 Kode 4.5 Potongan kode sumber hitung zakat hasil bumi........................................ 81 Kode 4.6 Potongan kode sumber hitung zakat fitrah ................................................ 82
xvi
BAB I PENDAHULUAN
1.1 Latar Belakang Perkembangan dan kemajuan teknologi komputer
saat ini sudah
memasuki aspek kehidupan manusia diseluruh dunia. Baik perangkat keras (hardware) maupun perangkat lunak (software), bahkan sekarang ini komputer sudah merupakan kebutuhan yang sangat penting untuk kelancaran aktifitas di suatu badan lembaga atau organisasi. Dengan kemajuan teknologi komputer dewasa ini maka kemampuan komputer menjadi lebih besar manfaatnya dan semakin optimal cara kerjanya dalam pengolahan data ataupun dalam pengolahan angka. Penggunaan komputer sudah diterapkan di berbagai bidang seperti ekonomi, pendidikan, militer, kedokteran dan sebagainya. Skala penggunaan teknologi komputer tidak hanya suatu badan lembaga atau organisasi besar dan menengah bahkan badan lembaga atau organisasi
kecil
pun
tidak
ingin
tertinggal. Pada bidang agama, teknologi memiliki peran yang tidak kalah
1
2
pentingnya seperti dalam proses pendaftaran calon haji, penunjuk arah kiblat dan jadwal sholat pada handphone atau situs - situs bernuansa
islami,
software-software mengenai agama Islam dan lain - lain. Badan, lembaga atau organisasi yang bergerak pada bidang agama membutuhkan pengolahan data baik itu
untuk
pembuatan laporan
atau
proses perhitungan yang cepat dan akurat. Dimisalkan pada perhitungan zakat
yang terdiri
dari
bermacam-macam
jenis
zakat
yang
harus
dikeluarkan. Dengan kemajuan teknologi saat ini, kita dapat membuat proses perhitungan
zakat yang lebih akurat dan memberikan informasi kepada
masyarakat tentang zakat. Oleh karena itu, dalam menulis laporan tugas akhir ini, penulis membuat suatu aplikasi berbasis teknologi informasi berupa Aplikasi Perhitungan Zakat Berbasis Web M enggunakan B ahasa Pemrograman PHP. Selain mempermudah dalam proses perhitungan zakat, aplikasi ini juga memberikan informasiinformasi tentang zakat.
1.2 Tujuan Penulisan Tujuan yang hendak dicapai dari penulisan laporan tugas akhir ini adalah membangun aplikasi perhitungan zakat. Selain itu dalam aplikasi ini juga akan memberikan keterangan akan kewajiban seseorang untuk mengeluarkan zakat, dalil - dalil yang mendukung dan kriteria-kriteria yang menyebabkan seseorang diwajibkan untuk mengeluarkan zakat, serta memudahkan seseorang dalam menghitung besarnya zakat yang harus dibayarkan.
3
1.3 Batasan Masalah Dalam penulisan laporan tugas akhir ini, penulis hanya membahas pembuatan suatu aplikasi perhitungan zakat, untuk membantu mengetahui berapa besar zakat yang harus dikeluarkan oleh seseorang yang memenuhi persyaratan zakat. Aplikasi tersebut dibangun menggunakan bahasa pemrograman PHP. Zakat yang dibahas dalam penulisan laporan tugas akhir ini, hanya mencakup masalah perhitungan zakat harta yaitu emas dan perak, zakat uang, zakat binatang ternak yaitu lembu atau kerbau dan kambing, zakat perniagaan, zakat hasil bumi dan zakat fitrah. Untuk zakat harta dibatasi oleh satuan yang digunakan yaitu gram dan kilogram, sedangkan zakat uang dibatasi oleh mata uang yang digunakan yaitu rupiah. Hal-hal selain yang telah disebutkan diatas, termasuk zakat profesi, tidak akan dibahas.
1.4 Metodologi Penelitian Dalam melakukan perancangan aplikasi ini, metodologi perangkat lunak yang digunakan oleh penulis adalah model sequensial linier. Model sequensial linier meliputi aktivitas-aktivitas sebagai berikut: (Pressman, 2001:38) 1. Rekayasa sistem Rekayasa sistem menyangkut pengumpulan kebutuhan pada tingkat sistem dengan sejumlah kecil analisis dan desain.
4
2. Analisis kebutuhan perangkat lunak Merupakan tahapan pengumpulan kebutuhan yang diintensifkan dan difokuskan pada perangkat lunak. 3. Desain Proses desain menerjemahkan syarat atau kebutuhan kedalam sebuah representasi perangkat lunak sehingga dapat diperkirakan kualitasnya sebelum dimulai pemunculan kode. 4. Pengkodean Merupakan tahapan dimana desain yang diterjemahkan ke dalam bentuk mesin yang dapat dibaca oleh komputer. 5. Pengujian Merupakan tahapan dimana perangkat lunak yang dibuat diujikan untuk menemukan kesalahan-kesalahan dan memastikan input memberikan hasil yang aktual sesuai dengan yang dibutuhkan.
1.5 Sistematika Penulisan Laporan Tugas Akhir ini disusun dengan sistematika terstruktur. Lima (5) bab yang disusun agar pembaca dapat memahami secara jelas pokok pembahasan penulis. Sistematika penulisannya adalah sebagai berikut: BAB I
: PENDAHULUAN Bab ini menerangkan latar belakang, tujuan penulisan, batasan masalah, metodologi, dan sistematika penulisan dari laporan tugas akhir ini.
5
BAB II
: LANDASAN TEORI Bab ini berisikan tentang sejarah dari PHP dan gambaran umum tentang teori yang dipakai dalam pembuatan aplikasi ini.
BAB III
: ANALISIS DAN PERANCANGAN Bab ini meliputi tentang hal-hal yang berhubungan dengan analisa masalah,
analisis
kebutuhan
sistem,
rancangan
proses
implementasi, dan perancangan antarmuka. BAB IV
: IMPLEMENTASI DAN PENGUJIAN Bab ini berisikan penerapan yang dilakukan penulis terhadap perancangan yang telah dilakukan terutama dalam masalah pengkodean.
BAB V
: PENUTUP Bab ini berisi tentang kesimpulan dari laporan tugas akhir dan saran terhadap hasil aplikasi yang dibuat penulis agar dapat dikembangkan lebih lanjut.
BAB II LANDASAN TEORI
2.1.
Pengertian Zakat Zakat menurut istilah agama Islam artinya “kadar harta yang tertentu,
yang diberikan kepada yang berhak menerimanya, dengan beberapa syarat.” (H. Sulaiman Rasjid: hal-129:1998) Zakat ialah “nama atau sebutan dari sesuatu hak Allah Ta’ala yang dikeluarkan seseorang kepada fakir miskin, dinamakan zakat karena didalamnya terkandung harapan untuk beroleh berkat, membersihkan jiwa dan memupuknya dengan kebaikan.” (Sayyid Sabiq:hal-5:1998).
2.1.1. Dasar Hukum Mengeluarkan Zakat Mengeluarkan zakat hukumnya wajib bagi tiap-tiap muslim yang mempunyai harta benda menurut ketentuan yang telah ditetapkan oleh hukum Islam. Ayat-ayat Al Qur’an yang mewajibkan zakat :
6
7
Artinya : “Dan dirikanlah olehmu shalat, dan keluarkanlah zakat, dan tunduklah bersama -sama orang-orang yang tunduk”.( QS. Al Baqarah, ayat 43 )
Artinya: “Ambillah zakat dari sebagian harta mereka dengan zakat itu kamu membersihkan dan mensucikan mereka,
dan
mendo’alah
untuk mereka.
Sesungguhnya do’a kamu itu ( menjadi ) ketentraman jiwa bagi mereka. Dan Allah maha mendengar lagi maha mengetahui”. ( QS. At Taubah, ayat 103 )
2.1.2. Jenis-jenis Zakat Zakat dibagi menjadi dua yaitu : 1. Zakat Mal Adalah zakat harta benda seperti emas, perak, uang, perniagaan, hasil bumi,hewan ternak. 2. Zakat Fitrah Adalah zakat yang berfungsi sebagai pembersih bagi orang yang berpuasa, ditunaikannya di bulan Ramadhan sebelum shalat ‘Ied.
2.1.2.1 Zakat Emas dan Perak Emas dan perak wajib dikeluarkan zakatnya berdasarkan firman Allah:
8
Artinya: “Dan orang-orang yang menyimpan emas dan perak ( tidak dikeluarkan zakatnya ) dan tidak membelanjakannya dijalan Allah, maka beritakanlah kepada mereka bahwa mereka akan memperoleh ‘azab yang pedih”.( QS. At Taubah, ayat 34 ) Syarat-syarat wajib zakat emas dan perak adalah sebagai berikut : a
Pemiliknya orang Islam,
b
Pemiliknya orang merdeka,
c
Milik penuh ( dimiliki dan menjadi hak penuh ),
d
Sampai nishabnya,
e
Genap satu tahun. Nishab emas bersih ialah 20 dinar ( mistqal ) = 12 ½ pound sterling ( ± 96
gram ). Zakatnya 2½ % atau seperempat puluhnya. Jadi orang Islam yang memiliki 96 gram atau lebih, dari emas yang bersih dan telah cukup setahun dimilikinya, maka wajiblah ia mengeluarkan zakatnya 2½ % atau seperempat puluhnya. Sedangkan Nishab perak bersih 200 dirham ( sama dengan 672 gram ). Zakatnya 2½ %, apabila telah dimiliki cukup satu tahun. Emas dan perak yang dipakai untuk perhiasan oleh orang perempuan dan tidak berlebih-lebihan dan bukan simpanan, tidak wajib dikeluarkan zakatnya.
9
2.1.2.2 Zakat Uang Peredaran uang pada dasarnya berstandar emas. Karena peredaran uang itu berdasar emas, maka nishab dan zakatnya 2½ % atau seperempat puluh. Syaratsyarat wajib zakat uang sama dengan zakat emas dan perak.
2.1.2.3 Zakat Harta Perniagaan Barang ( harta ) perniagaan wajib dikeluarkan zakatnya, mengingat firman Allah :
Artinya : “Hai orang-orang yang beriman, nafkahkanlah ( di jalan Allah ) sebagian dari apa yang kami keluarkan dari bumi untukmu. Dan janganlah kamu memilih yang buruk-buruk kemudian kamu nafkahkan dari padanya, padahal kamu sendiri tidak mau mengambilnya melainkan dengan memicingkan mata terhadapnya”. ( QS. Al Baqarah, ayat 267 ) Sabda Rasulullah SAW : Artinya : Dari Samurah : “Rasulullah SAW. memerintahkan kepada kami agar mengeluarkan zakat dari barang yang disediakan untuk dijual”. ( HR. Daruquthni dan Abu Dawud ) Syarat-syarat wajib zakat perniagaan adalah sebagai berikut : a. Pemiliknya orang Islam.
10
b. Pemiliknya orang merdeka. c. Milik penuh ( dimiliki dan menjadi hak penuh ) d. Sampai nishabnya. e. Genap satu tahun. Setiap tahun pedagang harus membuat neraca atau perhitungan harta benda dagangannya. Tahun perniagaan dihitung dari mulai berniaga. Yang dihitung bukan hanya labanya saja, tetapi seluruh barang yang diperdagangkan itu. Apabila sudah cukup senishab maka wajiblah dikeluarkan zakatnya seperti zakat emas, yaitu 2½ %. Harta benda perdagangan perseroan, Firma, C.V., atau perkongsian dan sebagainya, tegasnya harta benda yang dimiliki oleh beberapa orang dan menjadi satu maka hukumnya sebagai suatu perniagaan.
2.1.2.4 Zakat Binatang Ternak Dasar wajib mengeluarkan zakat binatang ternak ialah: Diberitahukan
oleh
Bukhari dan Muslim dari Abi Dzar, bahwasanya Nabi Muhammad SAW. bersabda sebagai berikut : Artinya : “Seorang laki-laki yang mempunyai unta, sapi, atau kambing, yang tidak mengeluarkan zakatnya, maka binatang-binatang itu nanti pada hari kiamat akan datang dengan keadaan yang lebih besar dan gemuk dan lebih besar daripada didunia, lalu hewan-hewan
itu
menginjak-injak
pemilik
dengan
kaki-kakinya. Setiap
selesai
mengerjakan yang demikian, binatang-binatang itu kembali mengulangi pekerjan itu sebagaimana semula, dan demikianlah terus menerus hingga sampai selesai Allah menghukum para manusia”.
11
Syarat-syarat wajibnya zakat binatang ternak adalah sebagai berikut : a. Pemiliknya orang Islam. b. Pemiliknya orang merdeka. c. Miliknya sendiri. Sampai senishab. d. Cukup setahun. e. Makannya dengan penggembalaan, bukan dengan rumput belian. f. Binatang itu bukan digunakan untuk bekerja, seperti angkutan dan sebagainya.
2.1.2.5 Zakat Lembu atau Kerbau Orang yang memiliki lembu atau kerbau 30 ekor keatas ( nishab ), wajib mengeluarkan zakatnya, seperti yang diperlihatkan Tabel 2.1. Tabel 2.1 Nishab dan Zakat Lembu atau Kerbau Zakatnya Nishab Bilangan dan Jenis Zakat
Umurnya
30 s/d 39
1 ekor sapi atau kerbau
1 tahun lebih
40 s/d 59
1 ekor sapi atau kerbau betina
2 tahun lebih
60 s/d 69
2 ekor sapi atau kerbau
1 tahun lebih
1 ekor sapi atu kerbau
1 tahun lebih
Dan 1 ekor sapi atau kerbau betina
2 tahun lebih
80 s/d 89
2 ekor sapi atau kerbau betina
2 tahun lebih
90 s/d 99
3 ekor sapi atau kerbau
1 tahun lebih
70 s/d 79
12
Tabel 2.1 (lanjutan) Nishab dan Zakat Lembu atau Kerbau Zakatnya Nishab Bilangan dan Jenis Zakat
Umurnya
2 ekor sapi atau kerbau
1 tahun lebih
Dan 1 ekor sapi atau kerbau betina
2 tahun lebih
2 ekor sapi atau kerbau betina
2 tahun lebih
Dan 1 ekor sapi atau kerbau
1 tahun lebih
4 ekor sapi atau kerbau
1 tahun lebih
Atau 3 ekor sapi atau kerbau
2 tahun lebih
100 s/d 109
110 s/d 119
120 s/d ...
Seterusnya tiap-tiap 30 ekor sapi atau kerbau zakatnya 1 ekor sapi atau kerbau berumur 1 tahun lebih, dan tiap – tiap 40 ekor sapi atau kerbau zakatnya 1 ekor sapi atau kerbau betina berumur 2 tahun lebih. Sedangkan zakat kerbau sama dengan zakat lembu, baik nishab maupun zakatnya.
2.1.2.6 Zakat Kambing Orang yang memiliki kambing 40 ekor ( nishab ), wajib mengeluarkan zakatnya seperti yang diperlihatkan oleh Tabel 2.2. Tabel 2.2 Nishab dan Zakat Kambing Zakatnya Nishab Bilangan dan Jenis Zakat 40 s/d 120
Umurnya
1 ekor ksmbing betina
2 tahun lebih
Atau 1 ekor domba betina
1 tahun lebih
13
Tabel 2.2. (lanjutan) Nishab dan Zakat Kambing Zakatnya Nishab Bilangan dan Jenis Zakat
Umurnya
2 ekor kambing betina
2 tahun lebih
Atau 2 ekor domba betina
1 tahun lebih
3 ekor kambing betina
2 tahun lebih
Atau 3 ekor domba betina
1 tahun lebih
4 ekor kambing betina
2 tahun lebih
Atau 4 ekor domba betina
1 tahun lebih
5 ekor kambing betina
2 tahun lebih
Atu 5 ekor domba betina
1 tahun lebih
121 s/d 200
201 s/d 300
301 s/d 400
401 s/d 500
2.1.2.7 Zakat Hasil Bumi Hasil bumi wajib dikeluarkan zakatnya, yaitu yang dapat dijadikan makanan pokok ( biji makanan yang mengenyangkan ), seperti padi, jagung, gandum dan sebagainya. Adapun biji makanan yang tidak mengenyangkan seperti kacang tanah, kacang panjang, buncis, tanaman muda, dan sebagainya, tidak wajib dizakati. Sedangkan buah - buahan yang wajib dikeluarkan zakatnya hanya anggur dan kurma saja, buah – buahan yang lain tidak wajib zakat..
14
Firman Allah SWT. :
Artinya : “Hai orang-orang yang beriman, nafkahkanlah ( dijalan Allah ) sebagian dari apa yang kami keluarkan dari bumi untukmu. Dan janganlah kamu memilih yang buruk-buruk kemudian kamu nafkahkan dari padanya, padahal kamu sendiri tidak mau mengambilnya melainkan dengan memicingkan mata terhadapnya”. ( QS. Al Baqarah, ayat 267 )
Artinya : “Dan Dialah yang menjadikan kebun-kebun yang berjunjung dan yang tidak
berjunjung,
pohon
korma,
tanam-tanaman yang
bermacam-macam
buahnya, zaitun dan delima yang serupa ( bentuk dan warnanya ), dan tidak sama (irasanyai). Makanlah dari buahnya ( yang bermacam-macam itu ) bila dia berbuah, dan tunaikanlah haknya di hari memetik hasilnya ( dengan dikeluarkan zakatnya ), dan janganlah kamu berlebih-lebihan. Sesungguhnya Allah tidak
15
menyukai orang - orang yang berlebih-lebihan”. ( QS. Al An’am, ayat 141 ) Buah-buahan yang wajib dikeluarkan zakatnya sebagai mana sabda Rasulullah SAW. sebagai berikut : Artinya : “Tidak ada sedekah ( zakat ) pada biji dan buah – buahan sehingga sampai banyaknya lima wasaq, ( ± 700 kg )”. ( H.R. Muslim ) Syarat-syarat wajib mengeluarkan zakat hasil bumi adalah sebagai berikut : a. Pemiliknya orang Islam. b. Pemiliknya orang yang merdeka. c. Milik sendiri. d. Sampai senishab. e. Dikeluarkan pada tiap-tiap menuai atau panen. Nishab hasil bumi yang sudah dibersihkan ialah 5 wasaq, yaitu kirakira 700 kg. Sedang yang masih berkulit nishabnya 10 wasaq = 1.400 kg. Zakatnya 10 % ( sepersepuluh ) jika diairi dengan air hujan, air sungai, siraman air yang tidak dengan pembelian. Jika diairi dengan air yang diperoleh dengan pembelian maka zakatnya 5 % ( seperduapuluh ).
2.1.2.8 Zakat Fitrah Zakat fitrah ialah “zakat pribadi” yang harus dikeluarkan pada hari raya fithrah. Yang wajib dizakati fitrah adalah sebagai berikut: 1. Untuk dirinya sendiri, tua, muda baik laki-laki maupun perempuan. 2. Orang-orang yang hidup di bawah tanggungannya. Sabda Rasulullah SAW yang artinya :
16
Dari Ibnu ‘Umar ra. katanya : Telah bersabda Rasulullah SAW : “Bayarkanlah zakat fitrah orang-orang yang menjadi tanggunganmu”. ( H.R. Daruquthni dan Baihaqi ) Syarat-syarat wajib zakat fitrah adalah sebagai berikut : a. Islam b. Mempunyai kelebihan makanan untuk sehari semalam bagi seluruh keluarganya pada waktu terbenam matahari dari penghabisan bulan Ramadhan. c. Orang-orang yang bersangkutan hidup di kala matahari terbenam pada akhir bulan Ramadhan. Zakat fitrah untuk tiap-tiap jiwa 1 sha’ = 2,303 kg = 3,5 liter dari beras atau lainnya yang menjadi makanan pokok bagi penduduk negeri. Lebih utama dikeluarkan sebelum shalat ‘Idul Fithri, boleh juga dikeluarkan semenjak permulaan bulan Ramadhan, sebagai ta’jil ( voorschot ).
2.1.3. Orang Yang Berhak Menerima Zakat ( Mustahik ) Orang-orang yang berhak menerima zakat, telah ditentukan oleh Allah SWT. Sebagaimana tersebut dalam Al Qur’an sebagai berikut :
17
Artinya : “Sesungguhnya zakat-zakat itu hanyalah untuk orang-orang fakir miskin, pengurus zakat, para muallaf yang baru dibina jiwanya kearah Islam, untuk memerdekakan budak, orang-orang yang berhutang, untuk jalan Allah, dan orang-orang yang sedang dalam perjalanan. Allah Maha Mengetahui lagi Maha Bijaksana”. ( QS. At Taubah, ayat 60 ).
Dengan ayat Al Qur’an tersebut dapat dijelaskan bahwa orang yang berhak menerima zakat itu ialah sebagai berikut : 1.
Fakir Yaitu orang yang tidak mempunyai harta atau usaha yang dapat menjamin 50% kebutuhan hidupnya untuk seharihari.
2.
Miskin Yaitu orang yang mempunyai harta dan usaha yang dapat menghasilkan lebih dari 50% untuk kebutuhan hidupnya,tetapi tidak mencukupinya.
3.
Amil Yaitu panitia zakat yang dapat dipercayakan untuk mengumpulkan, dan membagi-bagikannya kepada yang berhak menerimanya
sesuai dengan
hukum islam. 4.
Muallaf Yaitu orang yang baru masuk islam dan belum kuat imannya dan jiwanya perlu dibina agar bertambah kuat imannya supaya dapat meneruskan Islam.
5.
Hamba Sahaya Yaitu orang yang mempunyai perjanjian akan dimerdekakan oleh tuannya
18
dengan jalan menebus dirinya. 6.
Gharim Yaitu orang yang berhutang untuk sesuatu kepentingan yang bukan ma’shiat dan ia tidak sanggup untuk melunasinya.
7.
Sabilillah Yaitu orang yang berjuang dengan suka rela untuk menegakkan agama Allah.
8.
Musafir Yaitu orang yang kekurangan perbekalan dalam perjalanan dengan maksud baik, seperti menuntut ilmu, menyiarkan agama dan sebagainya.
2.1.4. Orang Yang Tidak Boleh Menerima Zakat Beberapa kriteria yang tidak boleh menerima zakat sebagai berikut : 1. Keturunan Nabi ( Bani Hasyim dan Bani Muthalib ). 2. Keluarga Muzaki ( Bapak, Kakek, Ibu, Nenek, Anak Laki-laki / Perempuan dan cucu orang yang membayar zakat ). 3. Istri. 4. Orang yang sibuk beribadat sunat. 5. Orang-orang kafir dari golongan Atheis.
2.2
Rekayasa Perangkat Lunak Model Sequensial Linier Salah satu model perekayasaan perangkat lunak yang sering digunakan
adalah model sequensial linier, yang disebut juga classical lifecycle atau waterfall model. Model sequensial linear dapat dilihat pada Gambar 2.1.
19
System / information engineering
Analysis
Design
Code
Test
Gambar 2.1. Model sequensial linier (Pressman, 2002:37)
Dari gambar di atas, tahapan-tahapan model sequensial linier meliputi: 1. Rekayasa sistem Level ini menekankan pada pengumpulan kebutuhan pengguna pada tingkatan sistem dengan sejumlah kecil analisis serta desain tingkat puncak. 2. Analisis kebutuhan perangkat lunak Level ini sama sepeti level sebelumnya namun pada level ini pengumpulan kebutuhan diintensifkan dan difokuskan khususnya pada perangkat lunak. 3. Desain Merupakan proses yang berfokus pada algoritma dan perancangan antar muka. Proses desain menerjemahkan kebutuhan ke dalam sebuah representasi perangkat lunak yang dapat diperkirakan sebelum dimulai pemunculan kode. 4. Pengkodean Pengkodean merupakan desain yang diterjemahkan kedalam bentuk mesin yang bisa dibaca oleh komputer. 5. Pengujian Merupakan tahapan dimana perangkat lunak yang dibuat diujikan untuk menemukan kesalahan-kesalahan dan memastikan input memberikan hasil yang aktual sesuai dengan yang dibutuhkan.
20
2.3.
Diagram Keterhubungan Entitas Model diagram keterhubungan antitas atau entity-relationship yang berisi
komponen-komponen himpunan entitas dan himpunan relasi yang masing-masing dilengkapi dengan atribut-atribut yang merepresentasikan seluruh fakta dari dunia nyata (Pressman, 2002:365). Notasi-notasi ERD dapat dilihat pada Gambar 2.2. Pada Gambar 2.2, ERD memiliki komponen seperti: a.
Objek data Objek data adalah berupa entitas yang menghasilkan atau mengkonsumsi informasi. Contoh: orang, mobil, bagian akuntansi, dan sebagainya
b.
Atribut Atribut merupakan properti dari suatu objek data. Contoh atribut dari objek data mobil: id, tipe body, warna, tahun produksi.
c.
Hubungan Relasi adalah hubungan di antara sejumlah objek data yang berasal dari objek data
yang
berbeda.
Contoh:
nama_mhs=”Anita
Rahayu”
dengan
nim=”01502-043” mempunyai relasi dengan sebuah objek data matakuliah dengan kode_kul=”IF1220”. d.
Objek data Objek data adalah berupa entitas yang menghasilkan atau mengkonsumsi informasi. Contoh: orang, mobil, bagian akuntansi, dan sebagainya
e.
Atribut Atribut merupakan properti dari suatu objek data. Contoh atribut dari objek data mobil: id, tipe body, warna, tahun produksi.
21
f.
Hubungan Relasi adalah hubungan di antara sejumlah objek data yang berasal dari objek data
yang
berbeda.
Contoh:
nama_mhs=”Anita
Rahayu”
dengan
nim=”01502-043” mempunyai relasi dengan sebuah objek data matakuliah dengan kode_kul=”IF1220”.
Gambar 2.2. Notasi ERD
Pada ERD terdapat karnialitas yang terjadi diantara dua atau lebih pada objek. Kardinalitas merupakan spesifikasi dari sejumlah peristiwa dari suatu objek yang dapat dihubungkan ke sejumlah peristiwa dari objek lain. (Pressman, 2002:359). hubungan relasi tersebut dapat berupa: 1. Satu ke satu (1:1). Suatu peristiwa dari objek A dapat berhubungan dengan satu dan hanya satu kejadian dari objek B. Dan sebuah peristiwa dari B hanya dapat berhubungan dengan satu kejadian A. Contoh: satu orang pasien ditempatkan pada satu tempat tidur. Lihat Gambar 2.3.
22 1 Pasien
1 Di tempat
Tempat tidur
Gambar 2.3. Contoh hubungan relasi satu ke satu
2. Satu ke banyak (1:N). Suatu kejadian A dapat berhubungan dengan satu atau lebih kejadian dari objek B, tetapi sebuah kejadian B dapat berhubungan dengan hanya satu kejadian dari A. Misal, seorang ibu dapat memiliki banyak anak, tetapi seorang anak hanya dapat memiliki satu ibu. Lihat Gambar 2.4.
Memiliki
Ibu
Anak
Gambar 2.4. Contoh hubungan relasi satu ke banyak
3. Banyak ke banyak (M:N). Sebuah kejadian objek A dapat berhubungan satu atau lebih kejadian dari B, sementara kejadian dari B dapat berhubungan dengan satu atau lebih kejadian dari A. Misalnya, seorang paman memiliki banyak keponakan, sementara itu seorang keponakan dapat memiliki banyak paman. Lihat pada Gambar 2.5.
Paman
Memiliki
Keponakan
Gambar 2.5. Contoh hubungan relasi banyak ke banyak
23
2.3.1
Diagram Aliran Data (DFD) Data flow diagram atau Diagram aliran data adalah sebuah teknik grafis yang
menggambarkan aliran informasi dan tranformasi yang diaplikasikan pada saat data bergerak dari masukan menjadi keluaran (Pressman, 2002:364). Bentuk dasar dari suatu diagram alir data diilustrasikan dalam Gambar 2.6.
Gambar 2.6. Model aliran informasi
DFD tingkat 0, yang disebut juga model konteks atau model sistem fundamentasi, merepresentasikan seluruh elemen sistem sebagai sebuah bubble atau gelembung tunggal dengan data masukan dan keluaran yang ditunjukkan oleh anak panah yang masuk dan keluar secara berurutan. Proses tambahan (bubble) dan jalur aliran informasi direpresentasikan pada saat DFD tingkat 0 dipartisi untuk mengungkap detail yang lebih. Contohnya, sebuah DFD tingkat 1 dapat berisi lima atau enam gelembung/ bubble dengan anak panah yang saling menghubungkan. Setiap proses yang direpresentasikan pada tingkat 1 merupakan subfungsi dari seluruh sistem yang digambarkan dalam diagram konteks. Notasi dasar yang digunakan untuk menciptakan suatu DFD diilustrasikan di dalam Gambar 2.7 (Pressman, 2002:365)
24
Gambar 2.7. Notasi DFD dasar
Sebuah persegi panjang digunakan untuk merepresentasikan sebuah entitas eksternal, yaitu sebuah elemen sistem (misalnya perangkat keras, seseorang, program yang lain) atau sistem yang lain yang menghasilkan informasi bagi transformasi oleh perangkat lunak atau menerima informasi yang dihasilkan oleh perangkat lunak Lingkaran merepresentasikan sebuah proses atau transformasi yang diaplikasikan ke data (atau kontrol) dan mengubahnya dengan berbagai cara. Anak panah melambangkan satu atau lebih data. Garis dobel merepresentaikan sebuah penyimpanan data − informasi tersimpan yang digunakan oleh perangkat lunak.
2.3.2
Diagram Transisi Keadaan Diagram transisi keadaan atau state transition diagram (selanjutnya disebut
STD) merepresentasikan tingkah laku dari suatu sistem dengan menggambarkan keadaan dan kejadiannya yang menyebabkan sistem mengubah keadaan. STD juga menunjukkan bahwa aksi (seperti aktivasi proses) diambil sebagai akibat dari suatu
25
kejadian khusus. Notasi-notasi pada STD dapat dilihat pada Gambar 2.8 (Pressman, 2002: 373).
Gambar 2.8. Notasi STD
Dari gambar di atas notasi STD terdiri atas 3 komponen, yaitu States, Events, Transitions. Sebuah states menyatakan kondisi dari sistem disuatu waktu (biasanya dilambangkan dengan sebuah kotak), transitions dilambangkan dengan panah yang menunjukan arah jalannya sistem, sedangkan events menjelaskan peristiwa apa yang terjadi pada perpindahan status sistem, biasanya diletakkan disebelah garis transitions. Ilustrasi pemodelan diagram state-transition dapat dilihat pada Gambar 2.9.
26
Gambar 2.9. STD software fotocopy
Pada Gambar 2.9, ketika sistem sedang menunggu (idle), sistem sedang membaca masukan dan masih berada di proses membaca perintah. Setelah terdapat perintah full & start, sistem akan memanggil manage-copying untuk menuju ke proses mengkopi. Dari proses mengkopi terdapat 3 kejadian. Pertama, jika copies done maka sistem akan memanggil membaca masukan yang akan kembali ke proses membaca masukan. Kedua, jika kertas kosong (empty) maka akan meyebabkan pemanggilan reloaded paper yang kemudian menuju ke proses mengisi kertas kembali. Jika sudah penuh, maka akan memanggil membaca masukan dan kembali ke proses membaca perintah.
2.3.3
Kamus Data Kamus data merupakan tata bahasa untuk menggambarkan kandungan dari
objek yang didefinisikan selama analisis berlangsung.
27
Kamus data hampir selalu diimplementasikan sebagai bagian dari sebuah “piranti desain dan analisis terstruktur” CASE. Meskipun format kamus bervariasi dari satu piranti ke piranti yang lain, sebagian besar berisi informasi berikut: (Pressman, 2002: 387-388) a. name: nama sebenarnya dari data atau item kontrol, penyimpanan data, atau entitas eksternal. b. aliasi: nama lain yang digunakan untuk masukan pertama. c. where-used/how-used: suatu daftar dari proses yang menggunakan data atau item kontrol dan bagaimana dia digunakan (misalnya, masukan ke proses, keluaran dari proses, sebagai suatu penyimpanan, sebagai suatu entitas eksternal). d. content description: suatu notasi untuk merepresentasikan isi. e. supplementary information: informasi lain mengenai tipe data, harga preset (bila diketahui), barasan, dan lain-lain. Notasi yang digunakan untuk mengembangkan deskripsi isi dapat digambarkan pada Gambar 2.10.
Gambar 2.10. Notasi deskripsi isi untuk kamus data
28
2.3.4
Digram Alur (Flowchart) Diagram alur menunjukkan alur di dalam program atas prosedur sistem
secara logika. Diagram alur digunakan terutama untuk alat bantu komunikasi dan untuk dokumentasi (Jogiyanto, 2005:795). Simbol-simbol tersebut dapat dilihat pada Gambar 2.11. Simbol :
1
2
10
11
3
4
5
6
7
8
9
12
Keterangan simbol :
1.
Dokumen input dan output baik untuk proses manual, mekanik, atau komputer
2.
Operasi secara manual/bukan dengan komputer
3.
Kegiatan proses dari operasi program komputer
4.
Masukkan serta keluaran
5.
masukan secara manual (menggunakan online keyboard)
6.
Pita punched
7.
Output yang ditampilkan di monitor
8.
Input/output dengan menggunakan disket
9.
Kotak keputusan
10. Mulai dan selesai 11. Simbol penghubung 12. Arus dari proses
Gambar 2.11. Simbol-simbol diagram alur (Jogiyanto, 2005:796-798)
29
Berikut adalah gambar sebuah dasar diagram alir sebagai contoh dari penggunaan simbol-simbol yang telah diberikan, lihat Gambar 2.12
1 Start
NO 7 Choice
5 Action
YES 6 Action
3 Action
NO 4 Action
7 Choice
YES
8 End
Gambar 2.12. Penggunaan simbol-simbol proses flowchart
2.4
Basis Data Basis data dapat dianggap sebagai tempat untuk sekumpulan berkas data
terkomputerisasi. Sistem basis data pada dasarnya adalah sistem terkomputerisasi yang tujuan utamanya adalah memelihara informasi dan membuat informasi tersebut tersedia saat dibutuhkan (Date, 1995:3). Tujuan dalam basis data adalah mempermudah penciptaan sruktur data dan membebaskan program dari masalah penyusunan file yang tidak terstruktur, sehingga mempermudah dalam mendesain dan menyiapkan suatu basis data yang dapat digunakan oleh sejumlah program aplikasi yang berlainan.
30
2.4.1
Proses Perancangan Basis Data Proses perancangan basis data, terlepas dari dari masalah yang ditangani
dibagi menjadi tiga tahapan, yaitu: (Abdul Kadir, 2003:39) 1. Perancangan basis data secara konseptual. 2. Perancangan basis data secara logis. 3. Perancangan basis data secara fisis. Perancangan basis data secara konseptual merupakan upaya untuk membuat model yang masih bersifat konsep. Perancangan basis data secara logis merupakan tahapan untuk memetakan model konseptual ke model basis data yang akan dipakai, seperti model relasional, hirarki, atau jaringan. Namun sebagaimana halnya perancangan basis data secara konsptual, perancangan ini tidak tergantung pada DBMS (DataBase Management System) yang akan dipakai. Itulah sebabnya perancangan basis data secara logis terkadang disebut pemetaan model data. Perancangan basis data secara fisis merupakan tahapan untuk menuangkan perancangan basis data yang bersifat logis menjadi basis data fisis yang tersimpan pada media penyimpanan eksternal. Perancangan basis data secara konseptual terdiri atas tiga langkah berikut: 1. Penentuan entitas pada basis data Menentukan entitas serta atribut dari entitas apa saja yang diperlukan 2. Pendefinisian hubungan antar entitas Pendefinisian hubungan antar entitas dilakukan dengan menggunakan pemodelan diagram keterhubungan entitas (ERD)
31
3. Penerjemahan hubungan ke dalam entitas. Setelah hubungan antar entitas didefinisikan, hubungan akan diterjemahkan ke dalam tabel. Hal ini dilakukan dengan cara: penentuan kunci entitas, penerjemahan hubungan ke dalam kunci tamu dan penormalisasian basis data. Langkah-langkah
di
atas
melibatkan
komponen-komponen
sebagaimana
diperlihatkan pada Gambar 2.13. Model Data Logis
Entitas
Atribut
Kunci Kandidat
Kunci Primer
Kunci Asing
Kunci Alternatif
Nama
Hubungan
Integritas Referensial
Penambahan
Tipe
Kekangan
Format
Peremajaan
Panjang
Domain
Penghapusan
Nilai
Gambar 2.13. Komponen-komponen perancangan basis data konseptual
Penjelasan mengenai beberapa komponen pada Gambar 2.13 adalah sebagai berikut: 1. Entitas Entitas terkadang disebut tipe entitas atau kelas entitas. Entitas menyatakan objek atau
kejadian.
PELANGGAN,
PEGAWAI,
DEPARTEMEN,
BUKU,
MATAKULIAH merupakan contoh dari entitas. Pada model relasional entitas akan menjadi tabel.
32
2. Atribut Atribut adalah item data yang menjadi bagian dari suatu entitas. Istilah lain atribut adalah properti. Nama Pegawai ataupun NIP adalah contoh atribut yang terdapat pada entitas PEGAWAI. Jumlah SKS, Kode Matakuliah merupakan contoh atribut pada entitas MATAKULIAH. 3. Hubungan Hubugan adalah asosiasi atau kaitan antara dua entitas. Misalnya, antara DOSEN_WALI dan MAHASISWA terdapat hubungan berupa bimbingan. Pada model relasional, hubungan akan menjadi kunci tamu (kinci tamu dibahas pada sub bab berikutnya). 4. Kekangan Kekangan digunakan untuk melindungi integritas data (Misalnya, melindungi kesalahan sewaktu pengisian data). 5. Domain Domain adalah himpunan nilai yang berlaku bagi suatu atribut. Kekangan domain mendefinisikan nama, tipe, format, panjang, dan nilai masing-masing item data. Sebagai contoh: Agama dinyatakan dengan nama AGAMA, panjang 1 karakter, dengan kemungkinan nilai berupa I, K, P, H, dan B (masing-masing untuk menyatakan Islam, Katholik, Protestan, Hindu, dan Budha). 6. Integritas referensial Integritas referensial adalah aturan-aturan yang mengatur hubungan antara kunci primer dengan kunci tamu milik table-tabel yang berada dalam suatu basis data relasional untuk menjaga konsistensi data. Jenis integritas referensial ada tiga, yaitu: penambahan (insert), penghapusan (delete), dan peremajaan (update)
33
2.4.2
Kunci (Key) Penentuan kunci merupakan hal yang paling penting dalam basis data
relasional. Kunci tidak sekedar sebagai metode untuk mengaskses suatu baris tertentu, tetapi juga sekaligus dapat menjadi pengenal unik terhadap table (Abdul Kadir, 2003: 54). Kunci dapat berupa sebuah atribut atau gabungan dari beberapa atribut. Berikut di bawah ini jenis-jenis kunci: 1. Kunci sederhana Kunci sederhana adalah kunci yang dibentuk oleh sebuah elemen data sebuah atribut. Misalnya NIP merupakan contoh kunci sederhana untuk membedakan antara suatu pegawai dengan pegawai lainnya. 2. Kunci kandidat Kunci kandidat adalah kunci yang secara unik (tidak mungkin kembar) dapat dipakai untuk mengidentifikasi suatu baris di dalam tabel. Contoh: NIP dipakan sebagai kunci kandidat. Dengan menggunakan NIP, seorang pegawai dapat diidentifikasikan (tidak mungkin ada dua pegawai dengan NIP yang sama) 3. Kunci primer Kunci primer adalah kunci kandidat yang dipilih sebagai kunci utama untuk mengidentifikasi baris dalam tabel. 4. Kunci alternatif Kunci alternatif adalah semua kunci kandidat yang tidak bertindak sebagai kunci primer
34
5. Kunci tamu Kunci tamu (foreign key) adalah sebarang atribut yang menunjuk ke kunci primer pada tabel lain. Lihat Gambar 2.14 Sebagai contoh. PELANGGAN Kode_Pelanggan 160002 160003 160004
Nama_Pelanggan Amirudin Sita Devi Ivan Lesmana
Kode_Kota 1201 1101 1201
KOTA Kode_Kota 1101 1201 1202 1203
Nama_Kota Semarang Yogyakarta Sleman Bantul
Gambar 2.14. Contoh kunci primer dan kunci tamu
Pada gambar di atas terdapat dua tabel. Kode_Pelanggan adalah kinci primer milik tabel PELANGGAN, dan Kode_Kota adalah kunci primer milik tabel KOTA. Bagi tabel PELANGGAN, Kode_Kota merupakan kunci tamu yang menunjuk ke tabel KOTA. Terlihat bahwa atribut yang berkedudukan sebagai kunci tamu bias saja memiliki nilai kembar, tetapi yang bertindak sebagai kunci primer tidak mungkin kembar.
2.4.3
Normalisasi Normalisasi merupakan proses untuk mengubah suatu relasi yang memiliki
masalah tertentu ke dalam dua buah relasi atau lebih yang tidak memiliki masalah tersebut. Masalah yang dimaksud oleh Kroenke ini sering disebut dengan istilah anomaly (Abdul Kadir,2003:65).
35
Tujuan normalisasi adalah membuat kumpulan tabel relasional yang bebas dari data berulang dan dapat dimodifikasi secara benar dan konsisten (Simarmata dan Paryudi, 2006:78) Aturan-aturan normalisasi dinyatakan dalam istilah bentuk normal. Bentuk normal adalah suatu aturan yang dikenakan pada relasi-relasi dalam basis data dan harus dipenuhi oleh relasi-relasi tersebut pada level-level normalisasi. Suatu relasi dikatakan berada dalam bentuk normal tertentu jika memenuhi kondisi-kondisi tertentu. Beberapa level yang biasa digunakan pada normalisasi adalah: (Abdul Kadir, 2003:73) 1. Bentuk normal pertama (1NF) 2. Bentuk normal kedua (2NF) 3. Bentuk normal ketiga (3NF) 4. Bentuk normal Boyce-Codd (BCNF) 5. Bentuk normal keempat (4NF) Pada proses normalisasi perlu dikenal definisi dari tahapan-tahapan normalisasi seperti berikut ini : 1. Bentuk Normal Pertama (1NF) Suatu relasi dikatakan dalam bentuk normal pertama jika dan hanya jika setiap atribut bernilai tunggal untuk satu baris (Abdul Kadir, 2003:75). Bentuk normal pertama biasa dikenakan pada tabel
yang belum
ternormalisasi. Tabel yang belum ternormalisasi adalah tabel yang memiliki atribut yang berulang, lihat Gambar 2.15.
36
NIP
Nama
Jabatan
Keahlian
107
Ilham
Analis Seior
Cobol Oracle
Lama (Tahun) 6 1
109
Rian
Analis Senior
112
Fika
Pemrogram
Cobol Dbase III+ Cobol Dbase III+ Sybase
2 1 1 1 1
Gambar 2.15. Contoh data belum ternormalisasi
Pada contoh Gambar 2.15, Keahlian menyatakan atribut yang berulang (misalnya FIKA memiliki tiga keahlian, dan Ilham memiliki dua keahlian). Dari data pada Gambar 2.15 dapat diubah ke dalam bentuk normal pertama dengan cara membuat setiap baris berisi kolom dengan jumlah yang sama dan setiap kolom hanya mengandung satu nilai. Bentuk normal pertama dapat dilihat pada Gambar 2.16.
NIP
Nama
Jabatan
Keahlian
Lama (Tahun)
107
Ilham
Analis Senior
Cobol
6
107
Ilham
Analis Senior
Oracle
1
109
Rian
Analis Senior
Cobol
2
109
Rian
Analis Senior
dbase III+
1
112
Fika
Pemrogram
Cobol
1
112
Fika
Pemrogram
dbase III+
1
112
Fika
Pemrogram
Sybase
1
Gambar 2.16. Relasi yang memenuhi bentuk 1NF
37
2. Bentuk Normal Kedua (2NF) Suatu relasi dikatakan berada dalam normal kedua jika dan hanya jika berada pada bentuk normal pertama dan semua atribut bukan kunci (Atribut bukan kunci adalah atribut yang tidak merupakan bagian dari kunci primer) memiliki dependesi sepenuhnya terhadap kunci primer (Abdul Kadir, 2003:77). Relasi pada Gambar 2.16 tidak tergolong pada bentuk normal kedua, meskipun memenuhi persyaratan bentuk normal pertama. Perhatikan bahwa Nama dan Jabatan mempunyai dependensi sepenuhnya terhadap NIP (sebab untuk setiap nilai NIP yang sama, Nama dan Jabatan juga sama). Namun tidak halnya dengan Keahlian dan Pengalaman. Untuk mengubah suatu relasi yang tergolong sebagai bentuk normal pertama ke bentuk normal kedua perlu dilakukan dekomposisi terhadap relasi tersebut. Proses dekomposisi dapat dilakukan dengan menggambarkan diagram dependensi fungsional terlebih dahulu. Berdasarkan diagram ini, relasi dalam bentuk normal pertama dipecah ke dalam sejumlah relasi. Sebagai contoh akan dilakukan dekomposisi data dari Gambar 2.16 menjadi diagram dependensi fungsional yang diperlihatkan pada Gambar 2.17.
Nama NIP Lama Jabatan
Keahlian
Gambar 2.17. Diagram dependensi fungsional relasi pada Gambar 2.16
38
Diagram dependensi pada Gambar 2.17 di atas menjelaskan bahwa: 1. Nama dan Jabatan memiliki dependensi fungsional terhada NIP 2. Lama mempunyai dependensi fungsional terhadap gabungan NIP dan Keahlian Berdasarkan diagram
dependensi fungsional tersebut, pendekomposisiannya
menghasilkan dua buah relasi, Lihat Gambar 2.18. Relasi NNJ NIP
Nama
Jabatan
107
Ilham
Analis Senior
109
Rian
Analis Senior
112
Fika
Pemrogram
Relasi NKP NIP
Keahlian
Lama (Tahun)
107
Cobol
6
107
Oracle
1
109
Cobol
2
109
Dbase III+
1
112
Cobol
1
112
Dbase III+
1
112
Sybase
1
Gambar 2.18. Relasi-relasi hasil dekomposisi yang memenuhi bentuk 2NF
39
3. Bentuk Normal Ketiga (3NF) Suatu relasi dikatakan dalam bentuk normal ketiga jika berada dalam bentuk normal kedua dan setiap atribut bukan kunci tidak memiliki dependensi transitif terhadap kunci primer (Abdul Kadir, 2003:81). Contoh suatu relasi yang memenuhi bentuk normal kedua tapi tidak memenuhi bentuk normal ketiga dapat dilihat pada Gambar 2.19. Nomor_Pesanan
Nomor_Urut
Kode_Item
Nama_Item
50001
0001
P1
Pensil
50001
0002
P2
Buku Tulis
50001
0003
P3
Penggaris
50001
0004
P4
Penghapus
50002
0001
P3
Penggaris
50002
0002
P5
Pulpen
50002
0003
P6
Spidol
50003
0001
P1
Pensil
50003
0002
P2
Buku Tulis
Gambar 2.19 Bentuk relasi 2NF, tetapi tidak memenuhi 3NF
Pada contoh Gambar 2.19 di atas, kunci primer relasi berupa gabungan Nomor_Pesanan
dan
Nomor_Urut.
Baik
Kode_Item
maupun
Nama_Item
mempunyai dependensi fungsional terhadap kunci primer tersebut. Namun perlu diperhatikan bahwa bila Kode_Item bernilai sama, Nama_Item juga bernilai sama. Hal ini menunjukkan adanya suatu dependensi di antara kedua atribut tersebut. Lalu manakah yang menjadi penentu? Apakah Kode_Item bergantung pada Nama_Item
40
atau sebaliknya? Suatu item bisa saja memiliki nama sama, tetapi mempunyai karakterisitik yang berbeda. Sebagai contoh dua buah mobil bisa saja diberi nama sama, tetapi masing-masing mempunyai warna tersendiri. Pada keadaan seperti ini tidaklah bisa dikatakan bahwa Nama_Item-lah yang menentukan Kode_Item. Lebih tepat kalau Kode_Item yang menjadi penentu. Jadi Nama_Item memiliki dependensi fungsional
terhadap
Kode_Item. Adanya
dependendi
Nama_Item terhadap
Kode_Item pada relasi ini menunjukkan bahwa Nama_Item tidak memiliki dependensi secara langsung terhadap kunci primer (gabungan Nomor_Pesanan dan Nomor_Urut). Dengan kata lain, Nama_Item memiliki dependensi transitif terhadap kunci primer. Agar relasi pada Gambar 2.19 memenuhi bnetuk normal ketiga, maka diperlukan langkah normalisasi dengan mengikuti pendekatan berikut: Bila terdapat relasi R seperti berikut: R (A, B, C) KUNCI PRIMER (A) BC Maka relasi R dapat digantikan dengan dua proyeksi R1 dan R2, dengan bentuk sebagai berikut: R1 (B, C) KUNCI PRIMER (B) R2 (A, B) KUNCI PRIMER (A) KUNCI TAMU (B) REFERENSI R1
41
Dengan menggunakan pendekatan di atas, maka relasi pada Gambar 2.19 dapat didekomposisi menjadi dua relasi, seperti pada Gambar 2.20. Nomor_Pesanan Nomor_Urut
Kode_Item
50001
0001
P1
50001
0002
P2
50001
0003
P3
50001
0004
P4
50002
0001
P3
50002
0002
P5
50002
0003
P6
50003
0001
P1
50003
0002
P2
Kode_Item
Nama_Item
P1
Pensil
P2
Buku Tulis
P3
Penggaris
P4
Penghapus
P3
Penggaris
P5
Pulpen
P6
Spidol
P1
Pensil
P2
Buku Tulis
Gambar 2.20. Bentuk relasi yang memenuhi bentuk 3NF
42
4. Bentuk Normal Boyce-Codd (BCNF) Suatu relasi disebut memenuhi bentuk normal Boyce-Codd jika dan hanya jika semua penentu (determinan) adalah kunci kandidat (atribut yang bersifat unik) (Abdul Kadir, 2003:83). BCNF merupakan perbaikan terhadap 3NF. Suatu relasi yang memenuhi BCNF selalu memenuhi 3NF, tetapi sebaliknya belum tentu relasi yang memenuhi 3NF memenuhi BCNF. Lihat Gambar 2.21. Siswa
Kursus
Tutor
Anwar
Bahasa Perancis
Pierre
Anwar
Bahasa Inggris
Richard
Budi
Bahasa Perancis
Pierre
Cecep
Bahasa Inggris
Suzanne
Gambar 2.21. Bentuk relasi 3NF, tetapi tidak memenuhi bentuk BCNF
Relasi pada Gambar 2.21 di atas didasarkan fakta: a. Seorang siswa dapat mengambil sejumlah kursus bahasa. b. Setiap tutornya hanya mengajar pada sebuah kursus bahasa (misalnya, Pierre hanya mengajar bahasa Prancis). c. Setiap siswa pad setiap kursus bahasa hanya diajar oleh seorang tutor (missal, tutor bahasa Inggris pada kelas Anwar hanyalah Richard). d. Suatu kursus bahasa asing yang sama bisa saja memiliki satu tutor (missal, ada kelas bahasa Inggris yang diajar oleh Richard dan ada kelas bahasa Inggris lain yang diajar oleh Suzzane). Pada keadaan ini, kunci relasi SKT berupa gabungan: Siswa dan Kursus, serta Siswa dan Tutor.
43
Relasi SKT memenuhi bentuk 3NF, karena tidak ada dependensi transitif pada relasi tersebut. Namun relasi SKT tidak memenuhi BCNF karena adanya determinan Tutor (yang menentukan Kursus) dan determinan ini tidak berdiri sebagai kunci kandidat. Lihat Gambar 2.22.
Siswa Tutor Kursus
Gambar 2.22. Diagram dependensi fungsional pada relasi SKT
Cara mengkonversi relasi yang memenuhi bentuk 3NF ke BCNF adalah: a. Carilah semua penentu b. Bila terdapat penentu yang bukan kunci kandidat, maka pisahkan relasi tersebut dan buat penentu tersebut sebagai kunci primer Untuk memenuhi bentuk BCNF, relasi SKT perlu didekomposisi menjadi ST (Siswa, Tutor), dan TK (Tutor, Kursus). Komposisi data kedua relasi di atas dipelihatkan pada Gambar 2.23.
44
Relasi ST Siswa
Tutor
Anwar Pierre Anwar Richard Budi
Pierre
Cecep
Suzanne
Relasi TK Tutor
Kursus
Pierre
Bahasa Perancis
Richard
Bahasa Inggris
Pierre
Bahasa Perancis
Suzanne
Bahasa Inggris
Gambar 2.23. Isi relasi ST dan TK
5. Bentuk Normal Keempat (4NF) Suatu relasi memenuhi di atas memenuhi bentuk normal keempat jika telah berada pada BCNF, dan tidak mengandung dua atribut atau lebih yang bernilai banyak (Abdul Kadir, 2003:88). Pada suatu relasi R dengan atribut A, B, C, atribut B dikatakan bersifat multidependen terhadap A jika sekumpulan nilai B yang diberikan pada pasangan (A,C) hanya tergantung pada nilai A, dan tidak tergantung pada nilai C.
45
Mata_Kuliah Pengetahuan Komputer
Dosen
Isi
Amir
Dasar Komputer
Fitira
Pengenalan Pengolah kata Pengenalan Lembar Kerja
Matematika I
Ftiria
Diferensial Integral
Mata_Kuliah
Dosen
Isi
Pengetahuan Komputer
Amir
Dasar Komputer
Pengetahuan Komputer
Amir
Pengenalan Pengolah kata
Pengetahuan Komputer
Amir
Pengenalan Lembar Kerja
Pengetahuan Komputer
Fitira
Dasar Komputer
Pengetahuan Komputer
Fitira
Pengenalan Pengolah kata
Pengetahuan Komputer
Fitira
Pengenalan Lembar Kerja
Matematika I
Fitira
Diferensial
Matematika I
Fitira
Integral
Gambar 2.24. Bentuk tidak normal dan relasi hasil normalisasinya
Untuk memenuhi bentuk 4 NF, bentuk normal di atas perlu didekomposisi. Hasil normalisasi relasi MDI diatas, didekomposisi menjadi dua buah relasi seperti pada Gambar 2.25.
46
Mata_Kuliah
Dosen
Pengetahuan Komputer
Amir
Pengetahuan Komputer
Fitira
Matematika I
Fitira
Mata_Kuliah
Isi
Pengetahuan Komputer
Dasar Komputer
Pengetahuan Komputer
Pengenalan Pengolah kata
Pengetahuan Komputer
Pengenalan Lembar Kerja
Matematika I
Diferensial
Matematika I
Integral
Gambar 2.25. Relasi-relasi hasil dekomposisi dari relsai pada Gambar 2.24
2.5
Interaksi Manusia dan Komputer Berdasarkan pendapat Schneiderman [8], Interaksi Manusia dan Komputer
(IMK) atau Human Computer Interaction (HCI) adalah disiplin ilmu yang berhubungan dengan perancangan, evaluasi, dan implementasi sistem komputer interaktif untuk digunakan oleh manusia, serta studi fenomena-fenomena besar yang berhubungan dengannya. Jadi dapat dikatakan bahwa interaksi manusia dan komputer dititik beratkan pada perancangan dan evaluasi antarmuka pemakai (user interface). Antarmuka pemakai adalah bagian sistem komputer yang memungkinkan
47
manusia berinteraksi dengan komputer. Ada tiga kategori pedoman desain HCI, yaitu: (Pressman: 2002:471-474) 1. Interaksi umum. Pedoman interaksi umum diantaranya meliputi: a. Konsisten: Gunakan format yang konsisten untuk misalnya pada pemilihan menu, masukan perintah, tampilan data. b. Mintalah verifikasi terhadap sembarang aksi destruktif yang siginifikan. Misal berikan pertanyaan kepada pemakai ketika ia meminta penghapusan file. c. Ijinkan kemudahan pembatalan sebagian besar aksi. d. Kurangi jumlah informasi yang harus diingat di antara aksi-aksi. e. Usahakan adanya efisiensi dalam dialog, gerakan, dan pemikiran. f. Memaafkan kesalahan: Sistem harus melindungi dirinya sendiri dari kesalahan yang dapat menyebabkan kegagalan pada sistem. g. Kategorikan aktivitas menurut fungsi dan atur geografi layar secara sesuai. h. Sediakan fasilitas help. 2. Tampilan informasi. Pedoman tampilan informasi diantaranya meliputi: a. Hasilkan pesan kesalahan yang berarti. b. Gunakan huruf besar dan kecil untuk membantu pemahaman. c. Jangan membanjiri pemakai dengan data, gunakan format yang representasi. 3. Input data. Pedoman-pedoman yang fokus pada input data diantaranya meliputi: a. Minimalkan jumlah aksi input yang dibutuhkan dari pemakai. b. Jagalah konsistensi di antara tampilan informasi dan input data. c. Sediakan help untuk membatu semua aksi input.
48
2.6.
Hypertext Preprocessor (PHP ) PHP (Hypertext Preprocessor), selanjutnya disebut PHP, dikenal sebagai
bahasa scripting yang menyatu dengan tag-tag HTML (Hypertext Markup Language), dieksekusi di server, dan digunakan untuk membuat halaman web yang dinamis (Azis, 2001:1). Model kerja PHP diawali dengan permintaan suatu halaman web oleh browser. Berdasarkan URL (Uniform Resource Locator) dikenal juga dengan sebutan alamat Internet, browser mendapatkan alamat dari web server, mengidentifikasikan halaman yang dikehendaki, dan menyampaikan segala informasi yang dibutuhkan oleh web server. Informasinya berupa: ”nama browser, versinya, dan sistem operasinya..” Selanjutnya, web server akan memilih apakah yang diminta klien adalah kode HTML atau PHP. Apabila klien ingin menampilkan kode HTML maka web server akan melakukan proses penerjemahan kode HTML dan menampilkannya ke layar klient, sebaliknya ketika berkas PHP yang diminta didapatkan oleh web server, isinya segera dikirimkan ke mesin PHP dan mesin inilah yang memproses dan memberikan hasilnya (berupa kode HTML) ke web server. Selanjutnya, web server menyampaikan ke client.
2.7
Structured Query Language (SQL) SQL dapat diartikan sebagai bahasa standar yang digunakan untuk
berinteraksi dengan database relasional. SQL menawarkan beberapa alat utnuk berinteraksi dengan database, yaitu: (Fathansyah, 2001:195) 1. Data structure definition: SQL dapat menentukan konstruksi yang bermacammacam yang digunakan database untuk menyimpan data.
49
a. Untuk membuat tabel menggunakan create table. create table mahasiswa (nim char(6), nama_mhs varchar(60), alamat_mhs varchar(60) tgl_lahir date)
b. Untuk menghapus tabel menggunakan drop table. drop table mahasiswa
c. Untuk menambahkan atribut baru menggunakan alter table. alter table mahasiswa add ip numeric(5,2)
2
Data querying: SQL dapat mendapatkan data dalam database dan ditampilkan dalam format yang dapat dibaca. Contoh: select nim, nama_mhs from mahasiswa
3. Data manipulation: SQL dapat memasukkan, memperbaharui, dan menghapus data. a. Memasukkan data. insert into mahasiswa(nim, nama_mhs, alamat_mhs, tgl_lahir) values (‘01502043’, ’pandu handoko, ’jl.antasena blok e5/39’, ’08/10/1984)
b. Memperbaharui data update mahasiswa set alamat=’Jl. Beringin 3 No.63 Tangerang’ where nim=’01501030’
c. Menghapus data delete from mahasiswa where nim=’01501030’
Di dalam SQL terdapat sejumlah fungsi yang digunakan untuk mengakses basis data mysql. Sejumlah fungsi tersebut diantaranya:
50
a. Fungsi mysql_connect Mysql_connect digunakan untuk membuat hubungan ke basis data mysql yang terdapat pada suatu host. Contohnya : mysql_connect (host,nama_pemakai,password); b. Fungsi mysql_close Fungsi ini berguna untuk menutup hubungan ke basis data mysql. Contohnya : mysql_close (pengenal_hubungan); c. Fungsi mysql_select_db Fungsi ini berguna untuk memilih basis data. Contohnya : mysql_select_db (basis data, pengenal_hubungan); d. Fungsi mysql_query Fungsi ini berguna untuk mengeksekusi permintaan terhadap sebuah tabel atau sejumlah tabel. Contohnya : mysql_query (permintaan, pengenal_hubungan); e. Fungsi mysql_affected_row Fungsi ini berguna untuk memperoleh jumlah baris yang dikenai operasi insert, delete, dan update. Contohnya : mysql_affected_rows (pengenal_hsl); f. Fungsi mysql_fetch_row Fungsi ini menghasilkan suatu array yag berisi seluruh kolom dari sebuah baris pada suatu himpunan kecil. Contohnya : mysql_fetch_row (pengenal_hsl);
BAB III ANALISIS DAN PERANCANGAN
3.1
Rekayasa Sistem Badan lembaga atau organisasi yang bergerak pada bidang agama
membutuhkan pengolahan data baik itu untuk pembuatan laporan atau proses perhitungan yang cepat dan akurat. Dimisalkan pada perhitungan zakat yang terdiri dari bermacam-macam jenis zakat yang harus dikeluarkan. Dengan kemajuan teknologi saat ini, kita dapat membuat proses perhitungan zakat yang lebih akurat dan memberikan informasi kepada masyarakat tentang zakat. Dengan dimanfaatkannya teknologi informasi baik dalam bidang komputer, telekomunikasi maupun Internet saat ini, dapat
dibuat s e b u a h a p l i k a s i
perhitungan zakat yang dapat melakukan prosese perhitungan zakat yang lebih akurat dan cepat untuk memberikan kemudahani kepada masyarakat dalam perhitungan zakat. Aplikasi perhitungan zakat yang dibuat penulis mencakup masalah perhitungan zakat harta yaitu emas dan perak, zakat uang, zakat binatang ternak
51
52
yaitu lembu atau kerbau dan kambing, zakat perniagaan, zakat hasil bumi dan zakat fitrah. Untuk zakat harta dibatasi oleh satuan yang digunakan yaitu gram dan kilogram, sedangkan zakat uang dibatasi oleh mata uang yang digunakan yaitu rupiah. Aplikasi perhitungan zakat juga mendukung beberapa layanan diantaranya adalah pendaftaran online, dan menyediakan data record anggota dalam perhitungan zakat.
3.2. Analisis Pada sub bab analisis akan disajikan pemodelan-pemodelan analisis yang meliputi pemodelan data dengan diagram keterhubungan entitas (ERD), pemodelan fungsional dan aliran informasi dengan diagram aliran data (DFD), kamus data, dan pemodelan tingkah laku sistem dengan diagram tingkah laku sistem (STD).
3.2.1 Diagram Keterhubungan Entitas Berikut di bawah ini pendefinisan objek data (berupa entitas), atribut, dan tipe data dari atribut objek yang terdapat pada sistem aplikasi perhitungan zakat, yang disajikan dalam bentuk tabel sebagai berikut: 1. User Entitas user terdapat 8 atribut yaitu: id_user, user_name, password, privilige, name, adrress, phone, email. Primary key pada entitas ini adalah id_user. Lihat Tabel 3.1.
53
Tabel 3.1. Tabel master_user Atribut
Tipe
Panjang
id_user
Int
11
user_name
Varchar
50
password
Varchar
100
privilege
Int
1
name
Varchar
25
adrress
Varchar
100
phone
Varchar
20
mail
Varchar
100
Keterangan Primary key
2. Zakat harta emas Entitas zakat harta emas terdapat 6 atribut yaitu: id_zakat_emas, id_user, zakat_emas, wajib_zakat, harga_emas, tgl_input. Primary key pada entitas ini adalah id_zakat_emas. Lihat Tabel 3.2. Tabel 3.2. Tabel zakat_harta_emas Atribut
Tipe
Panjang
Keterangan
id_zakat_emas
Varchar
50
Primary key
id_user
Int
11
Foreign key
zakat_emas
Int
11
wajib_zakat
Int
11
harga_emas
Int
11
tgl_input
Datetime
54
3. Zakat harta fitrah Entitas zakat harta fitrah terdapat 6 atribut yaitu: id_zakat_emas, id_user, harga_beras, wajib_zakat, jml_orang, tgl_input. Primary key pada entitas ini adalah id_zakat_fitrah. Lihat Tabel 3.3. Tabel 3.3. Tabel zakat_harta_fitrah Atribut
Tipe
Panjang
Keterangan
id_zakat_fitrah
Varchar
50
Primary key
id_user
Int
11
Foreign key
harga_beras
Float
wajib_zakat
Varchar
100
jml_orang
Int
11
tgl_input
Datetime
4. Zakat harta hasil bumi Entitas zakat harta hasil bumi terdapat 8 atribut yaitu: id_zakat_hasil_bumi, id_user,
Primary key pada entitas ini adalah id_zakat_hasil_bumi. Lihat Tabel 3.4. Tabel 3.4. Tabel zakat_harta_hasil_bumi Atribut id_zakat_hasil_
Tipe
Panjang
Keterangan
Varchar
50
Primary key
id_user
Int
11
Foreign key
harta_bumi
Varchar
100
wajib_zakat
Int
11
kondisi
Varchar
100
bumi
55
Tabel 3.4. Tabel zakat_harta_hasil_bumi Atribut
Tipe
Panjang
pengairan
Varchar
100
hasil_bumi
Int
11
tgl_input
Datetime
Keterangan
5. Zakat harta perak Entitas zakat harta perak terdapat 6 atribut yaitu: id_zakat_perak, id_user, zakat_perak, wajib_zakat, harga_perak, tgl_input. Primary key pada entitas ini adalah id_zakat_perak. Lihat Tabel 3.5. Tabel 3.5. Tabel zakat_harta_perak Atribut
Tipe
Panjang
Keterangan
id_zakat_perak
Varchar
50
Primary key
id_user
Int
11
Foreign key
zakat_perak
Float
wajib_zakat
Float
harga_perak
Int
tgl_input
Datetime
11
6. Zakat harta perniagaan Entitas zakat harta pernigaan terdapat 5 atribut yaitu: id_zakat_niaga, id_user, zakat_niaga, wajib_zakat, tgl_input. Primary key pada entitas ini adalah id_zakat_ niaga. Lihat Tabel 3.6.
56
Tabel 3.6. Tabel zakat_harta_perniagaan Atribut
Tipe
Panjang
Keterangan
id_zakat_niaga
Varchar
50
Primary key
id_user
Int
11
Foreign key
zakat_niaga
Int
11
wajib_zakat
Int
11
tgl_input
Datetime
7. Zakat harta ternak Entitas zakat harta ternak terdapat 6 atribut yaitu: id_zakat_ternak, id_user, jenis_ternak, wajib_zakat, jml_ternak, tgl_input. Primary key pada entitas ini adalah id_zakat_ternak. Lihat Tabel 3.7. Tabel 3.7. Tabel zakat_harta_ternak Atribut
Tipe
Panjang
Keterangan
Varchar
50
Primary key
id_user
Int
11
Foreign key
jenis_ternak
Varchar
100
wajib_zakat
Varchar
100
jml_ternak
Int
11
tgl_input
Datetime
id_zakat_tern ak
57
8. Zakat harta uang Entitas zakat harta uang terdapat 5 atribut yaitu: id_zakat_uang, id_user, zakat_uang, wajib_zakat, tgl_input. Primary key pada entitas ini adalah id_zakat_uang. Lihat Tabel 3.8. Tabel 3.8. Tabel zakat_harta_uang Atribut
Tipe
Panjang
Keterangan
id_zakat_uang Varchar
50
Primary key
id_user
Int
11
Foreign key
zakat_uang
Int
11
wajib_zakat
Int
11
tgl_input
Datetime
Dari pendefinisian objek data beserta atributnya terdapat entitas yang saling ketergantungan. Entitas yang saling tergantung dengan entitas lain dapat dilihat dalam bentuk diagram hubungan antar entitas (Entity Relationship Diagram/ ERD) sebagai berikut: 1. Entitas user dengan zakat harta emas Derajat kardinalitas entitas user dengan zakat harta emas adalah satu-ke-banyak (1:M), yang artinya satu user dapat membayar banyak zakat harta emas. Lihat Gambar 3.1.
Gambar 3.1 ERD user dengan zakat harta emas
58
2. Entitas user dengan zakat harta fitrah Derajat kardinalitas entitas user dengan zakat harta fitrah adalah satu-ke-banyak (1:M), yang artinya satu user dapat membayar banyak zakat harta fitrah. Lihat Gambar 3.2.
Gambar 3.2 ERD user dengan zakat harta fitrah 3. Entitas user dengan zakat harta hasil bumi Derajat kardinalitas entitas user dengan zakat harta hasil bumi adalah satu-kebanyak (1:M), yang artinya satu user dapat membayar banyak zakat harta hasil bumi. Lihat Gambar 3.3.
Gambar 3.3 ERD user dengan zakat harta hasil bumi 4. Entitas user dengan zakat harta perak Derajat kardinalitas entitas user dengan zakat harta perak adalah satu-ke-banyak (1:M), yang artinya satu user dapat membayar banyak zakat harta perak. Lihat Gambar 3.4.
Gambar 3.4 ERD user dengan zakat harta perak
59
5. Entitas user dengan zakat harta perniagaan Derajat kardinalitas entitas user dengan zakat harta perniagaan adalah satu-kebanyak (1:M), yang artinya satu user dapat membayar banyak zakat harta perniagaan. Lihat Gambar 3.5.
Gambar 3.5 ERD user dengan zakat harta perniagaan 6. Entitas user dengan zakat harta ternak Derajat kardinalitas entitas user dengan zakat harta ternak adalah satu-ke-banyak (1:M), yang artinya satu user dapat membayar banyak zakat harta ternak. Lihat Gambar 3.6.
Gambar 3.6 ERD user dengan zakat harta ternak 7. Entitas user dengan zakat harta uang Derajat kardinalitas entitas user dengan uang harta ternak adalah satu-ke-banyak (1:M), yang artinya satu user dapat membayar banyak zakat harta uang. Lihat Gambar 3.7.
Gambar 3.7 ERD user dengan zakat harta uang
60
3.2.2
Diagram Aliran Data Aliran informasi yang terjadi pada aplikasi perhitungan zakat dapat
digambarkan pada diagram aliran data (DFD) sebagai berikut:
3.2.2.1 Diagram Konteks Pada diagram konteks terdapat dua entitas yang saling berhubungan dengan sistem, yaitu anggota dan pengunjung. Lihat Gambar 3.8.
Gambar 3.8 Diagram Konteks
Dari Gambar 3.8 dapat dijelaskan bahwa aliran informasi dari aplikasi ke anggota merupakan output yang berupa informasi dan data perhitungan zakat, sedangkan perintah anggota dan data merupakan input dari anggota kepada aplikasi. Pada aplikasi perhitungan zakat, data yang di-input adalah data harta yang akan dihitung zakatnya. Aliran informasi dari sistem ke pengunjung adalah informasiinformasi mengenai berbagai jenis zakat.
3.2.2.2 DFD Level 1 DFD Level 1 terdiri dari tiga sub proses yaitu: pendaftaran, proses perhitungan zakat, dan, display data. Pada sub proses pendaftaran, calon anggota mendaftar secara online, dan data disimpan pada file user. Anggota dengan username dan password valid dapat berinteraksi dengan sistem. Interaksi anggota dengan
61
sistem merupakan bagian dari sub proses perhitungan zakat. Anggota dapat melakukan perhitungan zakat, dengan memasukkan nilai sejumlah harta, untuk kemudian diproses oleh sistem, dan hasilnya di display kepada anggota. Lihat Gambar 3.9.
Gambar 3.9 DFD Level 1
3.2.2.3 DFD Level 2 Dari DFD level 1, beberapa sub proses akan diuraikan lagi menjadi sub proses-sub proses yang digambarkan pada Gambar 3.10 di bawah ini.
62
Gambar 3.10 DFD Level 2 DFD level 2 perhitungan zakat lebih dititik beratkan pada proses perhitungan zakat. Terdapat tiga sub proses yaitu: baca data input zakat, hitung zakat, dan menampilkan hasil perhitungan. Sub proses pencarian diawali dengan membaca data harta zakat yang di input anggota. Dari data yang di input sistem akan melakukan proses perhitungan zakat, dari hasil proses tersebut, sistem ditampilkan berupa informasi hasil perhitungan zakat.
3.2.3
Kamus Data Dari bentuk pemodelan DFD didefinisikan, selanjutnya digambarkan makna
atau kandungan dari setiap aliran data dan media penyimpanan data yang terdapat pada DFD ke dalam kamus data. Bentuk dari kamus data akan dijelaskan sebagai berikut: 1. Data Flow Data flow dari DFD aplikasi perhitungan zakat antara lain : data anggota = { @id_user + username + password + privilege + name + adrress + phone + mail }
63
data zakat harta emas = { @id_zakat_emas + @id_user + zakat_emas + wajib_zakat + harga_emas + tgl_input } data zakat harta fitrah = { @id_zakat_fitrah + @id_user + harga_beras + wajib_zakat + jml_orang + tgl_input } data zakat harta hasil bumi = { @id_zakat_hasil_bumi + @id_user + harta_bumi + wajib_zakat + kondisi + pengairan + hasil_bumi + tgl_input } data zakat harta perak = { @id_zakat_perak + @id_user + zakat_perak + wajib_zakat + harga_perak + tgl_input } data zakat harta perniagaan = { @id_zakat_niaga + @id_user + zakat_niaga + wajib_zakat + tgl_input } data zakat harta ternak = { @id_zakat_ternak + @id_user + jenis_ternak + wajib_zakat + jml_ternak + tgl_input } data zakat harta uang = { @id_zakat_uang + @id_user + zakat_uang + wajib_zakat + tgl_input } 2. Data Store Data store dari DFD aplikasi perhitungan zakat antara lain: file user = { @id_user + username + password + privilege + name + adrress + phone + mail } file zakat harta emas = { @id_zakat_emas + @id_user + zakat_emas + wajib_zakat + harga_emas + tgl_input } file zakat harta fitrah = { @id_zakat_fitrah + @id_user + harga_beras + wajib_zakat + jml_orang + tgl_input } file zakat harta hasil bumi = { @id_zakat_hasil_bumi + @id_user + harta_bumi + wajib_zakat + kondisi + pengairan + hasil_bumi + tgl_input }
3.2.4 Diagram Transisi Keadaan Diagram transisi keadaan (STD) digunakan untuk menggambarkan urutanurutan tampilan sistem yang akan dibuka oleh user aplikasi pembayaran zakat. Berikut gambar STD pada aplikasi perhitungan zakat. 1. STD user User masuk ke halaman user dengan memasukkan username dan password. Jika input username dan password benar, sistem akan menampilkan halaman menu utama user, jika input username dan password salah, sistem akan menampilkan pesan kesalahan dan meminta login ulang. Pada gambar STD user terdapat menu-menu yang meliputi menu zakat harta, zakat perniagaan, zakat hasil bumi, zakat ternak, zakat fitrah, perhitungan zakat, dan data zakat anda. Untuk dapat masuk ke menu-menu tersebut user hanya meng-klik menu tersebut, untuk kemudian sistem akan menampilkan isi/data dari menu. Untuk keluar dari aplikasi dilakukan dengan meng-klik “logout”, sistem keluar dan menampilkan halaman login user. Lihat Gambar 3.11.
65
Gambar 3.11 STD user
2. STD login dan pendaftaran user Pada halaman pertama akan terdapat link pendaftaran untuk user yang ingin mendaftar dan login user. Lihat Gambar 3.12.
Gambar 3.12 STD login dan pendaftaran user
66
3. STD Perhitungan zakat Pada saat user meng-klik perhitungan zakat, sistem akan menampilkan halaman pehitungan zakat, dan sistem menunggu data inputan. Ketika user meng-klik submit, sistem akan menampilkan hasil perhitungan zakat sesuai dengan data inputan user. Lihat Gambar 3.13.
Gambar 3.13 STD perhitungan zakat
3.3.
Perancangan Pada sub bab perancangan akan disajikan model-model perancangan yang
meliputi perancangan procedural dalam bentuk flowchart dan perancangan antar muka yang akan dijelaskan dalam sub bab berikut.
3.3.1 Diagram Alur (Flowchart) Pemodelan diagram alur pada aplikasi perhitungan zakat digambarkan sebagai berikut:
67
1. Diagram alur halaman utama (index) Pada halaman utama terdapat form login untuk masuk ke menu anggota. Bagi anggota yang sudah memiliki username dan password dapat langsung login dengan memasukkan username dan password. Jika username dan password valid, sistem akan berlanjut ke halaman B, jika tidak sistem akan meminta masukkan username dan password kembali. Jika pengunjung ingin mendaftar sebagai anggota dapat memilih menu daftar, dan sistem akan berlanjut ke halaman A. Lihat Gambar 3.14. 2. Diagram alur pendaftaran Ketika menu perndaftaran dipilih, sistem akan menampikan form pendaftar. Setelah form tersebut diisi, sistem menyimpan data pendaftaran dan menampilkan pesan kepada pengunjung. Lihat Gambar 3.15.
68
Gambar 3.14 Diagram alur halaman index
69
Gambar 3.15 Diagram alur pendaftaran
3. Diagram alur perhitungan zakat Jika anggota memilih menu perhitungan zakat, sistem akan menampilkan form perhitungan zakat sesuai dengan jenis harta yang akan dizakatkan. Anggota memilih memasukan banyaknya jumlah harta, kemudian sistem akan memproses perhitungan dan menampilkan hasil perhitungan zakat. Lihat Gambar 3.16.
70
Gambar 3.16 Diagram alur perhitungan zakat
3.3.2 Perancangan Antarmuka Pemakai Perancangan antarmuka pada aplikasi perhitungan zakat pada
umumnya
memiliki dasar yang sama, pada setiap bagian atau halaman. Seperti posisi menu, banner-banner, posisi form dan informasi, yang membedakan hanyalah isi dari menu tersebut. Berikut di bawah ini ditampilkan beberapa bentuk antarmuka pemakai dengan sistem pada apliaksi perpustakaan perhitungan zakat: 1. Antarmuka halaman login (index) Antarmuka halaman login memiliki beberapa bagian yaitu form login user dan link daftar yang terletak di sudut kanan atas. Lihat Gambar 3.17.
71
Gambar 3.17 Antarmuka login
2. Antarmuka halaman home Ketika user berhasil melakukan login, sistem akan menampilkan halaman home, pada halaman ini akan ditampilkan mengenai informasi tentang zakat atau informasi sesuai dengan link-nya. Lihat Gambar 3.18.
Gambar 3.18 Antarmuka isi
72
3. Antarmuka halaman perhitungan zakat Pada antarmula halaman perhitungan zakat terdapat dua bagian, yaitu form input data zakat, dimana user dapat memasukan data harta yang akan dizakatkan dan form hasil perhitungan zakat. Lihat. Gambar 3.19.
Gambar 3.19 Antarmuka perhitungan zakat
BAB IV IMPLEMENTASI DAN PENGUJIAN SISTEM
4.1 Implementasi Setelah tahap analisis dan perancangan selesai dilakukan, maka tahap selanjutnya adalah tahap implementasi. Pada subbab berikut akan dijelaskan implementasi dari aplikasi penghitungan zakat berbasis web yang penulis bangun yang terdiri dari lingkungan implementasi, pengkodean, dan antarmuka dari aplikasi penghitungan zakat tersebut.
4.1.1 Lingkungan Implementasi Aplikasi perhitungan zakat dibangun dan diimplementasikan pada seperangkat komputer jinjing (notebook) dengan spesifikasi sebagai berikut: 1. Perangkat Keras yang digunakan: a. Prosesor
: Intel Core 2 Duo 1.83 Ghz.
b. Memori
: 1 GB DDR
c. VGA
: SIS Mirage 3 Graphics 256 MB
73
74
d. Harddisk
: Seagate Barracuda 80 Gb 7200 Rpm
2. Perangkat Lunak yang digunakan: a. Microsoft Windows XP Professional, sebagai Sistem Operasi. b. PHP versi 5.2.5 sebagai bahasa pemrograman berbasis web, MySQL versi 5.0 sebagai basis data, dan Apache versi 2.2.8 sebagai server web (web server). c. Php Expert Editor versi 3.3 sebagai teks editor dalam membangun aplikasi perhitungan zakat tersebut. d. Mozilla Firefox 2.0 sebagai penjelajah web (web browser).
4.1.2 Pengkodean Pada subbab ini penulis akan menjelaskan potongan-potongan kode sumber (source code) dari aplikasi perhitungan zakat berbasis web yang telah penulis bangun dengan bahasa pemrograman PHP.
4.1.2.1 Pengkodean Hitung Zakat Emas Pengguna yang ingin menghitung zakat harta emas yang dimilikinya diharuskan memasukkan informasi mengenai berapa harga emas saat ini dan berapa jumlah emas yang dimilikinya tersebut pada formulir di halaman hitung zakat emas. Kemudian hasil masukan dari pengguna tersebut akan dihitung secara matematis oleh kode sumber PHP seperti yang diperlihatkan oleh Kode 4.1.
75
Kode 4.1 Potongan kode sumber hitung zakat harta emas 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
Pada Kode 4.1, potongan kode program pada baris ke 1 menandakan permulaan suatu kode PHP. Kode baris ke 2 menerangkan bahwa jika jumlah emas hasil masukan dari pengguna lebih besar dari 96 gram, maka jumlah emas tersebut dikalikan dengan 0.025 yang kemudian hasil dari perkalian tersebut disimpan pada variabel $hasilemas (kode baris ke 3). Kemudian nilai yang tersimpan pada variabel $hasilemas dikalikan dengan nilai yang tersimpan pada variabel $hargaemas dan hasil perkalian kedua variabel tersebut disimpan pada variabel $zakat (kode baris ke 4). Kode baris ke 5 memasukkan nilai variabel $zakat ke dalam variabel $hasilzakat. Kode baris ke 6 adalah kondisi jika jumlah emas tidak lebih besar dari 96 gram (kebalikan dari kode baris ke 2), maka isi variabel $hasilemas dengan angka nol (0) dan isi variabel $hasilzakat dengan kalimat ”belum sampai nishabnya” (kode baris ke 7 & 8). Kode baris ke 10 memasukkan nilai integer secara acak ke dalam variabel
76
$id_zakat. Kode baris ke 11 memasukkan nilai tanggal saat ini ke dalam variabel $tanggal. Kode baris ke 12 - 17 melakukan perintah memasukkan data ke dalam basis data. Kode baris ke 18 – 21 menampilkan hasil penghitungan zakat emas tersebut ke layar monitor. Kode baris ke 22 adalah sebagai tanda akhir dari kode pemrograman PHP.
4.1.2.2 Pengkodean Hitung Zakat Perak Pengguna yang ingin menghitung zakat dari harta perak yang dimilikinya diharuskan memasukkan informasi mengenai berapa harga perak saat ini dan berapa jumlah perak yang dimilikinya tersebut pada halaman hitung zakat perak. Kemudian hasil masukan dari pengguna tersebut akan dihitung secara matematis oleh kode sumber seperti yang ditunjukkan oleh Kode 4.2. Kode 4.2 Potongan kode sumber hitung zakat harta perak 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
Pada Kode 4.2, potongan kode program pada baris ke 1 menandakan permulaan suatu kode PHP. Kode baris ke 2 adalah kondisi untuk melakukan perbandingan, jika jumlah perak hasil masukan dari pengguna bernilai lebih besar dari 672 gram maka jalankan kode baris ke 3 – 5 yaitu kalikan jumlah perak dengan 0.025 dan simpan hasilnya ke dalam variabel $hasilperak (kode baris ke 3), kemudian nilai pada variabel $hasilperak dikalikan dengan nilai pada variabel $hargaperak dan simpan hasilnya pada variabel $zakat (kode baris ke 4), kemudian isi variabel $hasilzakat dengan nilai pada variabel $zakat (kode baris ke 5). Kode baris ke 6 menjelaskan jika kondisinya tidak sama dengan kondisi pada kode baris ke 2 (jumlah perak tidak lebih besar atau sama dengan 672 gram), maka jalankan kode pada baris ke 7 – 8) yaitu isi variabel $hasilperak dengan nol (0) dan isi variabel $hasilzakat dengan kalimat ”Belum sampai nishabnya”. Kode baris ke 10 memasukkan nilai integer secara acak ke dalam variabel $id_zakat. Kode baris ke 11 memasukkan nilai tanggal saat ini ke dalam variabel $tanggal. Kode baris ke 12 - 17 melakukan perintah memasukkan data ke dalam basis data. Kode baris ke 18 – 21 menampilkan hasil penghitungan zakat perak tersebut ke layar monitor. Kode baris ke 22 adalah sebagai tanda akhir dari kode pemrograman PHP.
4.1.2.3 Pengkodean Hitung Zakat Uang Karena zakat uang pada dasarnya mengikuti standar harga emas, maka bagi pengguna yang akan menghitung zakat harta uang yang dimilikinya diharuskan memasukkan informasi mengenai harga emas saat ini dan jumlah uang yang dimilikinya tersebut di formulir yang tersedia di halaman hitung zakat uang.
78
Selanjutnya hasil informasi masukan dari pengguna tersebut akan dihitung secara matematis oleh kode sumber seperti yang ditunjukkan oleh Kode 4.3. Kode 4.3 Potongan kode sumber hitung zakat harta uang 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
Pada kode 4.3, baris ke 1 adalah tanda permulaan sebuah pemrograman PHP. Baris ke 2 membagi nilai jumlah uang yang tersimpan pada variabel $jlhuang dengan harga emas yang tersimpan pada variabel $hargaemas, yang selanjutnya hasil pembagian tersebut disimpan pada variabel $nishab. Baris ke 3 adalah logika perbandingan yang menyatakan jika nilai $nishab lebih besar atau sama dengan 96, maka jalankan kode baris ke 4 – 7 yaitu kalikan nilai pada variabel $jlhuang dengan 0.025 dan simpan hasilnya pada variabel $hasiluang (kode baris ke 4). Isi variabel $hasilzakat dengan nilai variabel $hasiluang (kode baris ke 5). Bagi nilai pada variabel $hasiluang dengan nilai pada variabel $hargaemas dan simpan hasilnya pada variabel $hasilemas (kode baris ke 6). Isi variabel $zakatemas dengan nilai variabel $hasilemas (kode baris ke 7). Kode baris ke 8 menjelaskan jika nilai variabel $nishab
79
tidak lebih besar atau sama dengan 96 (baris ke 3) maka jalankan kode baris ke 9 – 10 yaitu isi variabel $hasilzakat dengan Rp. 0,00 dan isi variabel $zakatemas dengan kalimat ”Belum sampai nishabnya”. Kode baris ke 11 adalah akhir dari perbandingan logika if – else di atas. Kode baris ke 12 memasukkan nilai integer secara acak ke dalam variabel $id_zakat. Kode baris ke 13 memasukkan nilai tanggal saat ini ke dalam variabel $tanggal. Kode baris ke 14 - 17 melakukan perintah memasukkan data ke dalam basis data. Kode baris ke 18 – 21 menampilkan hasil penghitungan zakat harta uang tersebut ke layar monitor. Kode baris ke 22 adalah sebagai tanda akhir dari kode pemrograman PHP.
4.1.2.4 Pengkodean Hitung Zakat Niaga Pengguna
yang
ingin
menghitung
zakat
perniagaannya
diharuskan
memasukkan informasi jumlah harta yang dimilikinya dan harga emas per gram saat ini di halaman hitung zakat niaga. Kemudian informasi tersebut akan diolah oleh kode PHP yang ditunjukkan pada Kode 4.4. Kode 4.4 Potongan kode sumber hitung zakat niaga 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Pada Kode 4.4, potongan kode program pada baris ke 1 menandakan permulaan suatu kode PHP. Kode baris ke 2 mengalikan jumlah harta niaga yang tersimpan pada variabel $jlhharta dengan 0.025 dan hasil dari perkalian tersebut disimpan pada variabel $zakat. Kode baris ke 3 membagi nilai $hasilzakat dengan nilai $hargaemas dan hasilnya disimpan pada variabel $hasilemas. Kode baris ke 4 memasukkan nilai integer secara acak ke dalam variabel $id_zakat. Kode baris ke 5 memasukkan nilai tanggal saat ini ke dalam variabel $tanggal. Kode baris ke 6 - 10 melakukan perintah memasukkan data ke dalam basis data. Kode baris ke 11 – 14 menampilkan hasil penghitungan zakat niaga tersebut ke layar monitor. Kode baris ke 15 adalah sebagai tanda akhir dari kode pemrograman PHP.
4.1.2.5 Pengkodean Hitung Zakat Hasil Bumi Untuk menghitung zakat hasil bumi, pengguna diharuskan memasukkan informasi mengenai jenis dari hasil bumi yang akan dihitung zakatnya apakah hasil bumi tersebut berupa padi, jagung, gandum, atau buah-buahan. Selanjutnya tentukan tipe pengairan yang dilakukan apakah pengairan dengan pembelian atau tidak. Kemudian tentukan kondisi dari hasil bumi tersebut apakah sudah dibersihkan atau masih berkulit. Informasi terakhir yang harus dimasukkan adalah jumlah hasil bumi tersebut dalam kilogram. Selanjutnya informasi di atas akan diolah oleh kode PHP seperti yang ditunjukkan oleh Kode 4.5.
81
Kode 4.5 Potongan kode sumber hitung zakat hasil bumi 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
Pada Kode 4.5, potongan kode program pada baris ke 1 menandakan permulaan suatu kode PHP. Kode baris ke 2 merupakan kondisi perbandingan, jika nilai variabel $kondisihslbumi sama dengan kalimat ”Sudah dibersihkan”, maka jalankan kode baris ke 3 – 12 . Kode baris ke 3 adalah perbandingan jika jumlah hasil bumi yang tersimpan pada variabel $jlhhasilbumi lebih besar atau sama dengan 700 (kg) maka jalankan kode baris ke 4 – 9. Isi variabel $ket dengan kalimat ”Kilogram” (kode baris ke 4). Jika nilai yang tersimpan pada variabel $tiperair sama dengan kalimat ”Dengan Pembelian” (baris ke 5) maka kalikan nilai $jlhhasilbumi dengan 0.05 dan simpan hasilnya pada variabel $hasilzakat (baris ke 6). Namun jika sebaliknya nilai $tipeair tidak sama dengan kalimat ”Dengan Pembelian” (baris ke 7) maka kalikan nilai $jlhhasilbumi dengan 0.1 dan simpan hasilnya pada variabel
82
$hasilzakat (baris ke 8). Jika nilai $jlhhasilbumi tidak lebih besar atau tidak sama dengan 700 (kode else pada baris ke 10), maka isi variabel $ket dengan kalimat ”Belum sampai nishabnya” (kode baris ke 11). Jika nilai $kondisihslbumi sama dengan kalimat “”Masih Berkulit” (kode baris ke 13), maka jalankan kode baris ke 14 – 20. Kode baris ke 14 adalah perbandingan jika nilai $jlhhasilbumi lebih besar atau sama dengan 1400, maka isi variabel $ket dengan kalimat ”Kilogram” (baris ke 15). Kode baris ke 16 – 22 penjelasannya sama dengan kode baris ke 5 – 11.
4.1.2.6 Pengkodean Hitung Zakat Fitrah Untuk menghitung zakat fitrah, pengguna harus memasukkan informasi berapa jumlah orang yang wajib zakat dan harga beras saat ini (per liter). Selanjutnya informasi tersebut akan diolah oleh kode PHP yang ditunjukkan oleh Kode 4.6. Kode 4.6 Potongan kode sumber hitung zakat fitrah 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
“; echo “Harga beras saat ini “ . $hargaberas . “ /liter “; echo “Jumlah Zakat “ . $hasilrupiah . “ “; echo “dalam Kg dan Liter “. $hasilkg . “ Kg “; echo $hasilliter . “ liter “; ?>
Pada Kode 4.6, potongan kode program pada baris ke 1 menandakan permulaan suatu kode PHP. Kode baris ke 2 mengalikan nilai jumlah wajib zakat
83
yang tersimpan pada variabel $jlhwz dengan harga beras saat ini yang tersimpan pada variabel $hargaberas dan mengalikan lagi dengan 3.5. Kemudian hasil perkalian tersebut disimpan pada variabel $hasilrupiah. Kode baris ke 3 mengalikan nilai jumlah wajib zakat $jlhwz dengan 2.5 yang hasil dari perkalian tersebut disimpan pada variabel $hasilkg. Kemudian nilai pada variabel $hasilkg dibagi dengan 2.5 dan dikalikan dengan 3.5 yang hasilnya disimpan pada variabel $hasilliter. Kode baris ke 5 memasukkan nilai integer secara acak ke dalam variabel $id_zakat. Kode baris ke 6 memasukkan nilai tanggal saat ini ke dalam variabel $tanggal. Kode baris ke 7 - 12 melakukan perintah memasukkan data ke dalam basis data. Kode baris ke 11 – 14 akan menampilkan hasil penghitungan zakat fitrah di atas ke layar monitor. Kode baris ke 18 adalah sebagai tanda akhir dari kode pemrograman PHP.
4.1.3 Antarmuka Aplikasi Pada subbab berikut akan dijelaskan implementasi Antarmuka Aplikasi Penghitungan Zakat berbasis web yang telah dibangun.
4.1.3.1 Jendela Inisialisasi Ketika aplikasi dibuka menggunakan penjelajah web, yang pertama kali ditampilkan kepada pengguna adalah jendela inisialisasi. Pada jendela tersebut diinformasikan mengenai pengertian zakat, dasar hukumnya, dan jenis-jenis zakat. Untuk lebih jelas lihat Gambar 4.1.
84
Gambar 4.1. Tampilan Jendela Inisialisasi
4.1.3.2 Jendela Hitung Zakat Emas Bagi pengguna yang ingin menghitung zakat emas yang dimilikinya, ia diharuskan mengisi informasi mengenai harga emas saat ini dan jumlah harta emas yang dimilikinya dalam satuan gram pada kotak yang tersedia di halaman hitung zakat emas. Hasil dari penghitungan informasi tersebut akan tampil pada bagian bawah halaman tersebut. Untuk lebih jelasnya lihat Gambar 4.2.
Gambar 4.2. Tampilan halaman hitung zakat emas
85
4.1.3.3 Jendela Hitung Zakat Perak Bagi pengguna yang ingin menghitung zakat perak yang dimilikinya, ia diharuskan mengisi informasi mengenai harga perak saat ini dan jumlah harta perak yang dimilikinya dalam satuan gram pada kotak yang tersedia di halaman hitung zakat perak. Hasil dari penghitungan informasi di atas akan ditampilkan dibawah kotak isian informasi tersebut. Untuk lebih jelas lihat Gambar 4.3.
Gambar 4.3. Tampilan halaman hitung zakat perak
4.1.3.4 Jendela Hitung Zakat Harta Uang Bagi pengguna yang ingin menghitung zakat harta uang yang dimilikinya, ia diharuskan mengisi informasi mengenai harga emas saat ini dan jumlah uang yang dimilikinya pada kotak yang tersedia di halaman hitung zakat harta uang. Kemudian zakat yang wajib dikeluarkan akan tampil pada bagian bawah halaman tersebut, seperti yang ditunjukkan oleh Gambar 4.4.
86
Gambar 4.4. Tampilan halaman hitung zakat uang
4.1.3.5 Jendela Hitung Zakat Niaga Untuk menghitung zakat harta niaga, pengguna diharuskan mengisi informasi mengenai jumlah harta niaga yang dimilikinya dan harga emas saat ini pada kotak yang tersedia di halaman hitung zakat harta perniagaan. Kemudian zakat niaga yang wajib dikeluarkan akan tampil pada bagian bawah halaman tersebut, seperti yang ditunjukkan oleh Gambar 4.5.
Gambar 4.5. Tampilan halaman hitung zakat niaga
87
4.1.3.6 Jendela Hitung Zakat Hasil Bumi Untuk menghitung zakat hasil bumi, pengguna harus mengisi informasi mengenai jenis hasil bumi yang akan dihitung zakatnya, tipe pengairan yang digunakan pada pengolahan hasil bumi tersebut, kondisi dari hasil bumi tersebut, dan jumlah hasil bumi tersebut dalam satuan kilogram. Kemudian hasil penghitungan zakat hasil bumi tersebut akan ditampilkan pada bagian bawah halaman hitung zakat hasil bumi. Untuk lebih jelasnya lihat Gambar 4.6.
Gambar 4.6 Tampilan halaman hitung zakat hasil bumi
4.1.3.7 Jendela Hitung Zakat Ternak Untuk menghitung zakat ternak, pengguna diharuskan mengisi informasi mengenai jenis ternak dan jumlah hewan ternak yang akan dihitung zakatnya. Jumlah
88
hewan ternak yang harus dikeluarkan zakatnya akan tampilkan dihalaman hitung zakat ternak tersebut. Untuk lebih jelasnya lihat Gambar 4.7.
Gambar 4.7 Tampilan halaman hitung zakat ternak
4.1.3.8 Jendela Hitung Zakat Fitrah Untuk menghitung zakat fitrah, pengguna diharuskan mengisi informasi jumlah orang yang akan keluarkan zakat fitrahnya dan harga per liter beras saat ini. Kemudian zakat fitrah yang harus dikeluarkan akan ditampilkan seperti ditunjukkan oleh Gambar 4.8.
89
Gambar 4.8 Tampilan halaman hitung zakat fitrah
4.1.3.9 Jendela Data Zakat Pengguna juga dapat melihat penghitungan zakat yang harus dikeluarkannya secara keseluruhan yang telah disimpan di dalam basis data, baik itu zakat emas, zakat perak, zakat uang, zakat perniagaan, zakat hasil bumi, zakat ternak, hingga zakat fitrah. Lihat Gambar 4.9.
90
Gambar 4.9 Tampilan halaman data seluruh zakat
4.2 Pengujian Pengujian dilakukan agar dapat diketahui apakah aplikasi penghitungan zakat yang telah dibangun tersebut dapat berjalan sesuai dengan kebutuhan hasil analisis pada bab III. Pengujian pada aplikasi penghitungan zakat tersebut dilakukan berdasarkan metode Black Box Testing yaitu Pengujian untuk menemukan kesalahan dalam lingkup kategori sebagai berikut: (1) fungsi-fungsi yang tidak benar atau hilang, (2) kesalahan Antarmuka, (3) kesalahan dalam struktur data atau akses basis data, dan (4) kesalahan kinerja (Pressman, 2002:551). Pengujian-pengujian yang akan dilakukan terdiri atas skenario pengujian, hasil pengujian, dan analisis hasil pengujian yang akan dijelaskan pada subbab berikut ini.
91
4.2.1 Skenario Pengujian Skenario pengujian digunakan untuk menentukan langkah-langkah dalam melakukan
pengujian.
Pengujian
dilakukan
dengan
menjalankan
aplikasi
penghitungan zakat pada penjelajah web Mozilla Firefox 2.0. Kemudian dilakukan pengujian dengan mengisi formulir aplikasi zakat tersebut satu-persatu. Selanjutnya pengujian dilakukan dengan melihat apakah hasil penghitungan zakat tersebut sesuai dengan informasi sebenarnya yang telah dimasukkan. Skenario pengujian untuk aplikasi penghitungan zakat yang lebih lengkap dapat dilihat pada Tabel 4.1. Tabel 4.1 Tabel skenario pengujian No Antarmuka yang diuji
Bagian dari Antarmuka yang diuji Formulir penghitungan zakat emas dan tombol submit
1.
Jendela hitung zakat emas
2.
Jendela hitung zakat perak
Formulir penghitungan zakat perak dan tombol submit
3.
Jendela hitung zakat harta uang
Formulir penghitungan zakat harta uang
Skenario pengujian
Hasil yang diharapkan
Isilah harga emas saat ini dalam satuan gram dan jumlah emas yang akan dihitung zakatnya pada kotak formulir isian masing-masing. Kemudian tekan tombol submit. Isi tiap-tiap kotak formulir dengan harga perak saat ini dalam satuan gram dan jumlah perak yang akan dihitung zakatnya. lalu tekan tombol submit
Akan ditampilkan besarnya jumlah zakat emas yang harus dikeluarkan dalam satuan gram dan Rupiah.
Isi formulir dengan jumlah harta uang yang akan dihitung zakatnya dan harga emas saat ini pada kotak masingmasing. Kemudian tekan tombol submit
Akan ditampilkan besarnya jumlah zakat perak yang harus dikeluarkan dalam satuan gram.
Akan ditampilkan besarnya jumlah zakat harta uang yang harus dikeluarkan dalam Rupiah.
92
Tabel 4.1 (lanjutan) Tabel skenario pengujian Bagian dari Skenario pengujian No Antarmuka yang diuji Antarmuka yang diuji 4. Jendela hitung Formulir hitung Isi formulir dengan zakat niaga zakat niaga jumlah harta niaga dan harga emas saat ini. Kemudian tekan tombol submit
Hasil yang diharapkan Akan ditampilkan besarnya jumlah zakat niaga yang harus dikeluarkan dalam Rupiah dan dalam satuan gram emas.
5.
Jendela hitung zakat hasil bumi
Formulir hitung Isi formulir dengan zakat hasil memilih jenis hasil bumi bumi, tipe pengairan, kondisi hasil bumi, dan tentukan besarnya hasil bumi dalam satuan kilogram
Akan ditampilkan besarnya zakat hasil bumi yang harus dikeluarkan dalam satuan
6.
Jendela hitung zakat fitrah
7.
Jendela login
8.
Jendela daftar anggota
Formulir hitung Isi formulir pengisian zakat fitrah dengan jumlah orang dan harga beras saat ini dalam satuan kilogram. Kemudian tekan tombol submit Formulir login Isi formulir pengisian dengan nama pengguna dan password. Kemudian tekan tombol login Formulir daftar Isi formulir pengisian anggota dengan data pengguna dan password yang akan digunakan. Kemudian tekan tombol simpan
Akan ditampilkan besarnya zakat fitrah yang harus dikeluarkan dalam bentuk uang atau beras dengan satuan kilogram dan liter Pengguna yang telah terdaftar di basis data akan dapat mengakses halaman penghitungan zakat Data pengguna akan disimpan di dalam basis data
4.2.2 Hasil Pengujian Setelah aplikasi penghitungan zakat selesai diuji berdasarkan skenario pengujian pada Tabel 4.1, maka dapat diperoleh hasil pengujian dari aplikasi penghitungan zakat tersebut. Untuk lebih jelas lihat Tabel 4.2.
93
Tabel 4.2 Tabel hasil pengujian No
Antarmuka yang diuji
Bagian dari Antarmuka yang diuji Formulir penghitungan zakat emas dan tombol submit
Skenario pengujian
Hasil pengujian
1.
Jendela hitung zakat emas
Isilah harga emas saat ini dalam satuan gram dan jumlah emas yang akan dihitung zakatnya pada kotak formulir isian masing-masing. Kemudian tekan tombol submit. Isi tiap-tiap kotak formulir dengan harga perak saat ini dalam satuan gram dan jumlah perak yang akan dihitung zakatnya. Kemudian tekan tombol submit
Besarnya zakat emas yang harus dikeluarkan dapat ditampilkan di layar monitor sesuai dengan informasi masukan dari pengguna Besarnya zakat perak yang harus dizakatkan dapat ditampilkan di layar monitor sesuai dengan informasi masukan dari pengguna Dapat ditampilkan besarnya jumlah zakat niaga yang harus dikeluarkan berdasar kan informasi masukan dari pengguna
2.
Jendela hitung zakat perak
Formulir penghitungan zakat perak dan tombol submit
3.
Jendela hitung zakat niaga
Formulir hitung zakat niaga
Isi formulir dengan jumlah harta niaga dan harga emas saat ini. Kemudian tekan tombol submit
4.
Jendela hitung zakat hasil bumi
Formulir hitung zakat hasil bumi
Isi formulir dengan memilih jenis hasil bumi, tipe pengairan, kondisi hasil bumi, dan tentukan besarnya hasil bumi dalam satuan kilogram
5.
Jendela hitung zakat ternak
Formulir hitung zakat ternak
Isi formulir pengisian dengan memilih jenis ternak dan jumlah ternak yang akan hitung zakatnya. Kemudian tekan tombol submit
Dapat ditampilkan besarnya zakat hasil bumi yang harus dikeluarkan berdasarkan informasi masukan dari pengguna Dapat ditampilkan jumlah ekor ternak yang harus dizakatkan berdasarkan informasi masukan dari pengguna
94
Tabel 4.2 (lanjutan) Tabel hasil pengujian No
Antarmuka yang diuji
Bagian dari Antarmuka yang diuji Formulir hitung zakat fitrah
Skenario pengujian
Hasil pengujian
6.
Jendela hitung zakat fitrah
Isi formulir pengisian dengan jumlah orang dan harga beras saat ini dalam satuan kilogram. Kemudian tekan tombol submit
Dapat ditampilkan besarnya zakat fitrah yang harus dikeluarkan dalam bentuk uang atau beras dengan satuan kilogram dan liter berdasarkan informasi masukan dari pengguna Pengguna yang telah terdaftar di basis data dapat mengakses halaman penghitungan zakat Data pengguna dapat disimpan di dalam basis data
7.
Jendela login
Formulir login
Isi formulir pengisian dengan nama pengguna dan password. Kemudian tekan tombol login
8.
Jendela daftar anggota
Formulir daftar anggota
Isi formulir pengisian dengan data pengguna dan password yang akan digunakan. Kemudian tekan tombol simpan
4.2.3 Analisis Hasil Pengujian Setelah dilakukan pengujian secara menyeluruh terhadap aplikasi penghitungan zakat tersebut, didapatkan beberapa keterbatasan dari aplikasi tersebut yaitu sebagai berikut: 1. Data hasil penghitungan zakat yang telah disimpan di dalam basis data hanya dapat dilihat oleh pengguna yang bersangkutan. Hal ini dikarenakan diperlukannya hak akses untuk tiap-tiap pengguna. Untuk pengguna yang belum mempunyai hak akses, ia dapat mendaftarkan dirinya dengan mengisi formulir dihalaman pendaftaran anggota pada aplikasi penghitungan zakat tersebut.
95
2. Informasi zakat yang telah disimpan tidak dapat dihapus karena tidak disediakan tombol untuk menghapus informasi tersebut. Hal ini dimaksudkan sebagai dokumentasi untuk masa yang akan datang.
BAB V PENUTUP
5.1 Kesimpulan Setelah aplikasi perhitungan zakat tersebut selesai dibangun dan diuji, maka dapat diambil beberapa kesimpulan sebagai berikut: 1. Data hasil penghitungan zakat yang telah disimpan di dalam basis data hanya dapat dilihat oleh pengguna yang bersangkutan. Hal ini dikarenakan diperlukannya hak akses untuk tiap-tiap pengguna. Sedangkan untuk pengguna yang belum mempunyai hak akses, ia dapat mendaftarkan dirinya dengan mengisi formulir dihalaman pendaftaran anggota pada aplikasi penghitungan zakat tersebut. 2. Dengan menggunakan aplikasi perhitungan zakat berbasis web ini seseorang dapat mengetahui pembagian zakatnya dan dapat mengetahui berapa zakat yang harus dibayar.
96
97
5.2 Saran Aplikasi perhitungan zakat yang telah dibangun dirasakan masih memiliki beberapa kekurangan. Penulis menjadikan kekurangan tersebut sebagai saran untuk pengembangan di masa yang akan datang. Beberapa kekurangan tersebut adalah sebagai berikut: 1. Informasi zakat yang telah disimpan tidak dapat dihapus karena tidak disediakan tombol untuk menghapus informasi tersebut. Disarankan untuk menyediakan tombol hapus data zakat, agar pengguna dapat menghapus data miliknya yang telah tidak digunakan lagi. 2. Tidak tersedia fasilitas penghitungan zakat profesi. Disarankan untuk menyediakan fasilitas penghitungan zakat profesi bagi para pegawai yang bekerja untuk suatu perusahaan.
DAFTAR PUSTAKA
Andi, Membuat Animasi Web Dengan Swish 2.0, Edisi Kesatu, Andi Offset, Yogyakarta, 2003. Azis, M. Farid, Belajar Sendiri Pemrograman PHP 4, Cetakan Kedua, PT. Elex Media Komputindo, Jakarta, 2002. Hasbi, Teungku M., Pedoman Zakat, Cetakan Kesembilan, P.T. Pustaka Rizki Putra, Semarang, 2004. Kadir, Abdul, Dasar Pemrograman WEB Dinamis Menggunakan PHP, Cetakan Pertama, Andi Offset, Yogyakarta, 2002. Purbo, Onno W., Buku Pintar Internet TCP / IP, Cetakan Keenam, PT. Elex Media Komputindo, Bandung 2002. Rasjid, Sulaiman, Fiqih Islam, Cetakan Ketiga puluh sembilan, PT. Sinar Baru Algesindo, Bandung, 2006. Sabiq, Sayyid, Fiqih Sunnah Jilid 1, Cetakan Kesatu, Pena Pundi Aksara, Jakarta, 2006. Sabiq, Sayyid, Panduan Zakat, Cetakan Kesatu, Pustaka Ibnu Katsir, Bogor, 2005. Sidik, Betha, Pemrograman Web dengan PHP, Cetakan Kedua, Informatika, Bandung, 2002. Sidik, Betha dan Pohan, Husni, HTML dan XML, Edisi Kedua, Informatika, Bandung, 2002.
Zakat dari segi istilah syara’ ialah : "Mengeluarkan sebagian dari harta benda atas perintah Allah, sebagai shadaqah wajib kepada mereka yang telah ditetapkan menurut syarat-syarat yang telah ditentukan oleh hukum islam".
Zakat ialah "nama atau sebutan dari sesuatu hak Allah Ta'ala yang dikeluarkan seseorang kepada fakir miskin, dinamakan zakat karena didalamnya terkandung harapan untuk beroleh berkat, membersihkan jiwa dan memupuknya dengan pelbagai kebaikan".
Dasar Hukum Mengeluarkan Zakat
Mengeluarkan zakat hukumnya wajib bagi tiap - tiap muslim yang mempunyai harta benda menurut ketentuan yang telah ditetapkan oleh hukum Islam.
Ayat-ayat Al Qur’an yang mewajibkan zakat :
Artinya :
“Ambillah zakat dari sebagian harta mereka dengan zakat itu kamu membersihkan dan mensucikan mereka, dan mendo’alah untuk mereka. Sesungguhnya do’a kamu itu ( menjadi ) ketentraman jiwa bagi mereka. Dan Allah maha mendengar lagi maha mengetahui”.
( QS. At Taubah, ayat 103 )
Artinya :
“Dan dirikanlah olehmu shalat, dan keluarkanlah zakat, dan tunduklah bersama - sama orang - orang yang unduk”.
( QS. Al Baqarah, ayat 43 )
Jenis - jenis Zakat
Zakat dibagi menjadi dua yaitu :
Zakat Mal : adalah zakat harta benda seperti emas, perak, uang, perniagaan, hasil bumi, hewan ternak. Zakat Fithrah : adalah zakat sebagai pembersih bagi orang yang berpuasa, yang ditunaikan di bulan Ramadhan sebelum shalat ‘Ied.
4. zakat_emas.php <style type="text/css">
L-4
margin-bottom: 0px; } -->
Zakat Harta
<pre> Zakat Emas dan Perak Emas dan perak wajib dikeluarkan zakatnya berdasarkan firman Allah:
Artinya : “Dan orang-orang yang menyimpan emas dan perak ( tidak dikeluarkan zakatnya ) dan tidak membelanjakannya dijalan Allah, maka beritakanlah kepada mereka bahwa mereka akan memperoleh ‘azab yang pedih”. ( QS. At Taubah, ayat 34 ) Syarat - syarat wajib zakat emas dan perak adalah sebagai berikut : a. Milik orang Islam. b. Yang memiliki adalah orang merdeka. c. Milik penuh ( dimiliki dan menjadi hak penuh ). d. Sampai nishabnya. e. Genap satu tahun. Zakat Emas Nishab emas bersih ialah 20 dinar ( mistqal ) = 12 ½ pound sterling ( ± 96 gram ). Zakatnya 2½ % atau seperempat puluhnya. Jadi seorang Islam yang memiliki 96 gram atau lebih, dari emas yang bersih dan telah cukup setahun dimilikinya, maka wajiblah ia mengeluarkan zakatnya 2½ % atau seperempat puluhnya. Zakat Perak Nishab perak bersih 200 dirham ( sama dengan 672 gram ). Zakatnya 2½ %, apabila telah dimiliki cukup satu tahun. Emas dan perak yang dipakai untuk perhiasan oleh orang perempuan dan tidak berlebih - lebihan dan bukan simpanan, tidak wajib dikeluarkan zakatnya. Zakat Uang Peredaran uang pada dasarnya berstandar emas, karena peredaran uang itu berdasar emas, maka nishab dan zakatnya 2½ % atau seperempat puluh. Syarat - syarat wajib zakat uang sama dengan zakat emas dan perak.
//========== Edit Data ===============// if($ada > 0) { $perintah = mysql_query("delete from zakat_harta_emas where id_user='$id_user'"); $id_zakat = rand(); $perintah="insert into zakat_harta_emas (id_zakat_emas, id_user, zakat_emas, wajib_zakat, harga_emas) values ('$id_zakat', '$id_user', '$jlhemas', '$zakat', '$hargaemas')"; $hasil=mysql_query($perintah); }*/ ?>
Hasil Hitung Zakat Harta Emas
Harga Emas Saat Ini
:
Rp. ,00/gram
Jumlah Harta Emas
:
gram
Jumlah Emas yang harus dizakatkan
:
L-8
} ?>
6. zakat_niaga.php Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As
Zakat Perniagaan
<pre> Zakat Perniagaan Barang ( harta ) perniagaan wajib dikeluarkan zakatnya, mengingat firman Allah :
<pre>
<pre> Artinya : “Hai orang-orang yang beriman, nafkahkanlah ( di jalan Allah ) sebagian dari apa yang kami keluarkan dari bumi untukmu. Dan janganlah kamu memilih yang buruk-buruk kemudian kamu nafkahkan dari padanya, padahal kamu sendiri tidak mau mengambilnya melainkan dengan memicingkan mata terhadapnya”. < QS. Al Baqarah, ayat 267 > Sabda Rasulullah SAW : Artinya : Dari Samurah : “Rasulullah SAW. memerintahkan kepada kami agar mengeluarkan zakat dari barang yang disediakan untuk dijual”. ( HR. Daruquthni dan Abu Dawud ) Syarat - syarat wajib zakat perniagaan adalah sebagai berikut : a. Pemiliknya orang Islam. b. Pemiliknya adalah orang merdeka. c. Milik penuh ( dimiliki dan menjadi hak penuh ). d. Sampai nishabnya. e. Genap satu tahun. Setiap tahun pedagang harus membuat neraca atau perhitungan harta benda dagangannya. Tahun perniagaan dihitung dari mulai berniaga. Yang dihitung bukan hanya labanya saja, tetapi seluruh barang y ang diperdagangkan itu. Apabila sudah cukup senishab maka wajiblah dikeluarkan zakatnya seperti zakat emas, yaitu 2½ %. Harta benda perdagangan perseroan, Firma, C.V., atau perkongsian dan sebagainya,
L-9
tegasnya harta benda yang dimiliki oleh beberapa orang dan menjadi satu maka hukumnya sebagai suatu perniagaan.
//} //==================== Edit Data ====================// /* if($ada > 0) { $perintah = mysql_query("delete from zakat_harta_perniagaan where id_user=$id_user"); $id_zakat = rand(); $perintah="insert into zakat_harta_perniagaan (id_zakat_niaga, id_user, zakat_niaga, wajib_zakat) values ('$id_zakat', '$id_user', '$jlhharta', '$hasilzakat')"; $hasil=mysql_query($perintah); } */ ?>
Hasil Hitung Zakat Perniagaan
Jumlah Harta Perniagaan
:
Rp. ,00
Harga Emas Saat Ini
:
Rp. ,00 /gram
Jumlah Zakat Niaga yang harus dikeluarkan
:
Rp. ,00
atau Emas gram
L-12
} ?>
8. zakat_hslbumi.php
Zakat Hasil Bumi
<pre> Zakat Hasil Bumi Hasil bumi wajib dikeluarkan zakatnya, yaitu yang dapat dijadikan makanan pokok ( biji makanan yang mengenyangkan ), seperti padi, jagung, gandum dan sebagainya. Adapun biji makanan yang tidak mengenyangkan seperti kacang tanah, kacang panjang, buncis, tanaman muda, dan sebagainya, tidak wajib dizakati. Sedangkan buah - buahan yang wajib dikeluarkan zakatnya hanya anggur dan kurma saja, buah - buahan yang lain tidak wajib zakat. Firman Allah SWT. : Artinya : “Hai orang-orang yang beriman, nafkahkanlah ( di jalan Allah ) sebagian dari apa yang kami keluarkan dari bumi untukmu. Dan janganlah kamu memilih yang buruk-buruk kemudian kamu nafkahkan dari padanya, padahal kamu sendiri tidak mau mengambilnya melainkan dengan memicingkan mata terhadapnya”. (QS. Al Baqarah, ayat 267) Artinya : “Dan Dialah yang menjadikan kebun-kebun yang berjunjung dan yang tidak berjunjung, pohon korma, tanam-tanaman yang bermacammacam buahnya, zaitun dan delima yang serupa (bentuk dan warnanya), dan tidak sama (rasanya). Makanlah dari buahnya (yang bermacam-macam itu) bila dia berbuah, dan tunaikanlah haknya di hari memetik hasilnya (dengan dikeluarkan zakatnya); dan janganlah kamu berlebih-lebihan. Sesungguhnya Allah tidak menyukai orang-orang yang berlebihlebihan”. (QS. Al An’am, ayat 141) Buah-buahan yang wajib dikeluarkan zakatnya sebagai mana sabda Rasulullah SAW. sebagai berikut : Artinya : “Tidak ada sedekah (zakat) pada biji dan buah - buahan, sehingga sampai banyaknya lima wasaq”, (± 700 kg). (H.R. Muslim) Sabda Rasulullah SAW. sebagai berikut : Artinya : Dari Abu Sa'id : "Sesungguhnya Nabi SAW, berkata : Satu wasaq enampuluh sha'." (H.R. Ahmad dan Ibnu Majah) Syarat-syarat wajib mengeluarkan zakat hasil bumi adalah sebagai berikut:
L-13
a. b. c. d. e.
Pemiliknya orang Islam. Pemiliknya orang yang merdeka. Milik sendiri. Sampai senishab. Dikeluarkan pada tiap-tiap menuai/panen.
Nishab hasil bumi yang sudah dibersihkan ialah 5 wasaq, yaitu kira-kira 700 kg. Sedang yang masih berkulit nishabnya 10 wasaq = 1.400 kg. Zakatnya 10 % (sepersepuluh) jika diairi dengan air hujan, air sungai, siraman air yang tidak dengan pembelian. Jika diairi dengan air yang diperoleh dengan pembelian maka zakatnya 5 % (seperduapuluh).
{ $ket="Kilogram"; if ($tipeair=="Dengan Pembelian") { $hasilzakat=$jlhhasilbumi*0.05; //echo("$hasilzakat"); } else { $hasilzakat=$jlhhasilbumi*0.1; //echo("$hasilzakat"); } } else { $ket="Belum Sampai Nishabnya"; //echo("Belum Sampai Nishabnya"); } } //======== filter dulu data pada master data niaga ==========// $sql = "select count(*) as ada from zakat_harta_hasilbumi where id_user='$id_user'"; $result = mysql_query($sql); if ($row=mysql_fetch_array($result)) { $ada = $row[ada]; } //============Insert baru ============// $id_zakat = rand(); $tanggal = date("Y-m-d-"); $perintah="insert into zakat_harta_hasilbumi (id_zakat_bumi, id_user, harta_bumi, wajib_zakat, kondisi, pengairan, hasil_bumi, tgl ) values ('$id_zakat', '$id_user', '$hasilbumi', '$hasilzakat', '$kondisihslbumi', '$tipeair', '$jlhhasilbumi', '$tanggal')"; $hasil=mysql_query($perintah); //} //================ Edit Data ================// /* if($ada > 0) { $perintah = mysql_query("delete from zakat_harta_hasilbumi where id_user=$id_user"); $id_zakat = rand(); $perintah="insert into zakat_harta_hasilbumi (id_zakat_bumi, id_user, harta_bumi, wajib_zakat, kondisi, pengairan, hasil_bumi ) values ('$id_zakat', '$id_user', '$hasilbumi', '$hasilzakat', '$kondisihslbumi', '$tipeair', '$jlhhasilbumi')"; $hasil=mysql_query($perintah); } */ ?>
Hasil Hitung Zakat
L-17
Hasil Bumi
Jenis Hasil Bumi
:
Tipe Pengairan
:
Kondisi Hasil Bumi
:
Jumlah Zakat Hasil Bumi
:
echo $hasilzakat." ".$ket;?>
} ?>
10. zakat_ternak.php
Zakat Ternak
<pre> Zakat Binatang Ternak Dasar wajib mengeluarkan zakat binatang ternak ialah : Diberitahukan oleh Bukhari dan Muslim dari Abi Dzar, bahwasanya Nabi Muhammad SAW. bersabda sebagai berikut : Artinya : “ Seorang laki-laki yang mempunyai unta, sapi, atau kambing, yang tidak mengeluarkan zakatnya, maka binatang-binatang itu nanti pada hari kiamat akan datang dengan keadaan yang lebih besar dan gemuk dan lebih besar daripada didunia, lalu hewan hewan itu menginjak-injak pemilik dengan kaki-kakinya. Setiap selesai mengerjakan yang demikian, binatang-binatang itu kembali mengulangi pekerjan itu sebagaimana semula, dan demikianlah terus menerus hingga sampai selesai Allah menghukum para manusia”. Syarat-syarat wajibnya zakat binatang ternak adalah sebagai berikut : a. Pemiliknya orang Islam. b. Pemiliknya merdeka. c. Miliknya sendiri. Sampai senishab.
L-18
d. Cukup setahun. e. Makannya dengan penggembalaan, bukan dengan rumput belian. f. Binatang itu bukan digunakan untuk bekerja, seperti angkutan dan sebagainya. Zakat Ternak Jenis Lembu/Kerbau Orang yang memiliki lembu/kerbau 30 ekor keatas (nishab), wajib mengeluarkan zakatnya sebagai berikut : 30 s/d 39 lembu/kerbau zakatnya : 1 ekor sapi/kerbau umur 1 th lebih. 40 s/d 59 lembu/kerbau zakatnya : 1 ekor sapi/kerbau betina umur 2 th lebih. 60 s/d 69 lembu/kerbau zakatnya : 2 ekor sapi/kerbau umur 1 th lebih. 70 s/d 79 lembu/kerbau zakatnya : 1 ekor sapi/kerbau umur 1 th, dan 1 ekor sapi/kerbau betina umur 2 th lebih. 80 s/d 89 lembu/kerbau zakatnya : 2 ekor sapi/kerbau betina umur 2 th lebih. 90 s/d 99 lembu/kerbau zakatnya : 3 ekor sapi/kerbau umur 1 th lebih. 100 s/d 109 lembu/kerbau zakatnya : 2 ekor sapi/kerbau umur 1 th lebih, dan 1 ekor sapi/kerbau betina umur 1 th lebih. 110 s/d 119 lembu/kerbau zakatnya : 2 ekor sapi/kerbau umur 2 th lebih, dan 1 ekor sapi/kerbau umur 1 th lebih. 120 s/d ... Lembu/kerbau zakatnya : 4 ekor sapi/kerbau berumur 1 th lebih, atau 3 ekor sapi/kerbau betina berumur 2 th lebih. Seterusnya tiap - tiap 30 ekor sapi atau kerbau zakatnya 1 ekor sapi atau kerbau berumur 1 tahun lebih, dan tiap - tiap 40 ekor sapi atau kerbau zakatnya 1 ekor sapi atau kerbau betina berumur 2 tahun lebih. Zakat kerbau sama dengan zakat lembu, baik nishab maupun zakatnya. Zakat Ternak Jenis Kambing Orang yang memiliki kambing 40 ekor (nishab), wajib mengeluarkan zakatnya sebagai berikut : 40 s/d 120 ekor kambing zakatnya : 1 ekor kambing betina umur 2 th lebih, atau 1 ekor domba betina umur 1 th lebih. 121 s/d 200 ekor kambing zakatnya : 2 ekor kambing betina umur 2 th lebih, atau 2 ekor domba betina umur 1 th lebih. 201 s/d 300 ekor kambing zakatnya : 3 ekor kambing betina umur 2 th lebih, atau 3 ekor domba betina umur 1 th lebih. 301 s/d 400 ekor kambing zakatnya : 4 ekor kambing betina umur 2 th lebih, atau 4 ekor domba betina umur 1 th lebih. 401 s/d 500 ekor kambing zakatnya : 5 ekor kambing betina umur 2 th lebih, atau 5 ekor domba betina umur 1 th lebih. dst. Tiap-tiap 100 ekor kambing zakatnya 1 ekor kambing betina umur 2 th lebih, atau 1 ekor domba betina umur 1 th lebih.
<pre> Zakat Fitrah Zakat fitrah ialah “zakat pribadi” yang harus dikeluarkan pada hari raya fithrah. Yang wajib dizakati : 1. Untuk dirinya sendiri, tua, muda baik laki-laki maupun perempuan. 2. Orang-orang yang hidup di bawah tanggungannya. Artinya : Dari Ibnu ‘Umar ra. katanya : Telah bersabda Rasulullah SAW. : “Bayarkanlah zakat fitrah orang-orang yang menjadi tanggunganmu”. (H.R. Daruquthni dan Baihaqi) Syarat-syarat wajib zakat fitrah adalah sebagai berikut : a. Islam b. Mempunyai kelebihan makanan untuk sehari semalam bagi seluruh keluarganya pada waktu terbenam matahari dari penghabisan bulan Ramadhan. c. Orang-orang yang bersangkutan hidup di kala matahari terbenam pada akhir bulan Ramadhan. Zakat fitrah untuk tiap-tiap jiwa 1 sha’ = 2,303 kg = 3,5 liter dari beras atau lainnya yang menjadi makanan pokok bagi penduduk negeri. Lebih utama dikeluarkan sebelum shalat ‘Idul Fitri. Boleh juga dikeluarkan semenjak permulaan bulan Ramadhan, sebagai ta’jil (voorschot). Orang Yang Berhak Menerima Zakat ( mustahik ) Orang-orang yang berhak menerima zakat, telah ditentukan oleh Allah SWT. Sebagaimana tersebut dalam Al Qur’an sebagai berikut : Artinya : “Sesungguhnya zakat-zakat itu hanyalah untuk orang-orang fakir miskin, pengurus zakat, para muallaf yang baru dibina jiwanya kearah Islam, untuk memerdekakan budak, orang-orang yang berhutang, untuk jalan Allah, dan orang-orang yang sedang dalam perjalanan. Allah Maha Mengetahui lagi
L-25
Maha Bijaksana”. (QS. At Taubah, ayat 60) Dengan ayat Al Qur’an tersebut dapat dijelaskan bahwa orang yang berhak menerima zakat itu ialah sebagi berikut : 1. Fakir : Yaitu orang yang tidak mempunyai harta atau usaha yang dapat menjamin 50% kebutuhan hidupnya untuk sehari-hari. 2. Miskin : Yaitu orang yang mempunyai harta dan usaha yang dapat menghasilkan lebih dari 50% untuk kebutuhan hidupnya, tetapi tidak mencukupinya. 3. ‘Amil : Yaitu panitia zakat yang dapat dipercayakan untuk mengumpulkan, dan membagi-bagikannya kepada yang berhak menerimanya sesuai dengan hukum islam. 4. Muallaf : Yaitu orang yang baru masuk islam dan belum kuat imannya dan jiwanya perlu dibina agar bertambah kuat imannya supaya dapat meneruskan Islam. 5. Hamba sahaya : Yaitu orang yang mempunyai perjanjian akan dimerdekakan oleh tuannya dengan jalan menebus dirinya. 6. Gharim : Yaitu orang yang berhutang untuk sesuatu kepentingan yang bukan ma’shiat dan ia tidak sanggup untuk melunasinya. 7. Sabilillah : Yaitu orang yang berjuang dengan suka rela untuk menegakkan agama Allah. 8. Musafir : Yaitu orang yang kekurangan perbekalan dalam perjalanan dengan maksud baik, seperti menuntut ilmu, menyiarkan agama dan sebagainya.