1 BAB II 2 KAJIAN PUSTAKA 2.1 Tinjauan Mutakhir Penelitian yang terkait tentang aplikasi agen properti telah banyak dilakukan sebelumnya. Aplikasi yan...
2 BAB II KAJIAN PUSTAKA 2.1 Tinjauan Mutakhir Penelitian yang terkait tentang aplikasi agen properti telah banyak dilakukan sebelumnya. Aplikasi yang dihasilkan berbeda-beda sesuai dengan tujuan dari pembuatan aplikasi tersebut. Sarwosri (2012) melakukan penelitian tentang aplikasi broker properti dengan mengambil studi kasus dari PT. Hore Indonesia. Aplikasi ini berbasis desktop, dibuat menggunakan bahasa pemrograman VB.NET dengan framework Microsoft Visual Studio.NET 2.0, yang berjalan pada sistem operasi Windows (minimal Windows 2000) dan DBMS Microsoft SQL Server 2000. Implementasi aplikasi broker properti meliputi fungsi penyimpanan dan pembacaan informasi, proses sinkronisasi data antara kantor cabang dengan kantor pusat, perhitungan bonus, dan pencatatan pembayaran iuran oleh agen. Penelitian yang dilakukan oleh Hanjaya (2013), mengenai aplikasi sistem informasi real estate dengan studi kasus dari PT. Greenhouse. Aplikasi ini berbasis web, dibangun dengan bahasa pemrograman ASP.NET dan DBMS SQL Manager 2008. Hasil dari aplikasi ini dapat diakses oleh admin, agen dan calon pembeli. Admin dapat mengakses menu properti, agen, transaksi, pemilik, notaris, about us, dan hitung KPR. Agen dapat mengakses menu tambah properti, ubah properti, lihat properti, lihat agen, tambah transaksi, ubah transaksi, lihat transaksi, tambah pemilik, ubah pemilik, hapus pemilik, lihat pemilik, lihat notaris, about us, dan hitung KPR. Calon pembeli dapat melihat menu lihat properti, lihat agen, about us, dan hitung KPR. Penelitian lainnya juga dilakukan oleh Tricada (2014), mengenai aplikasi listing properti dengan menggunakan studi kasus dari PT. Century 21 Yogyakarta. Aplikasi berbasis android, dibuat dengan bahasa pemrograman mobile android dan SQL Lite. Implementasi yang dihasilkan dari aplikasi listing properti meliputi sinkronisasi data properti, input data properti dan listing client.
5
6
Berdasarkan tinjauan mutakhir yang telah dijelaskan, penelitian ini memiliki beberapa perbedaan dari penelitian sebelumnya. Perbedaannya terletak pada basis aplikasi, bahasa pemrograman dan DBMS yang digunakan, implementasi akhir yang dihasilkan sesuai dengan studi kasus yang digunakan. Pengembangan aplikasi ini berbasis web menggunakan studi kasus dari jasa agen properti Era King dengan bahasa pemrograman PHP, DBMS MySQL dan Bootstrap (framework HTML, CSS dan Javascript), hasil implementasi meliputi Modul Staf (Pengaturan User Staf Perusahaan oleh Administrator Aplikasi), Modul Master Data (Pengaturan Data Aplikasi yang jarang berubah oleh Administrator Aplikasi), Modul Agen (Pengaturan User Agen Pekerja oleh Staf Perusahaan), Modul Properti (Pengaturan Data Properti oleh Agen Pekerja dan Staf Perusahaan), Modul Transaksi (Pengaturan Transaksi oleh Agen Pekerja dan Staf Perusahaan) dan Modul Profile (Pengaturan User Profile masing-masing Agen Pekerja dan Staf Perusahaan), yang dapat dijalankan pada perangkat desktop maupun mobile dengan hasil yang lebih baik dan lebih bagus dari aplikasi sebelumnya.
2.2 Tinjauan Pustaka Sistem informasi Pada umumnya sistem informasi melibatkan komputer yang disebut dengan sistem informasi berbasis komputer. Dalam sehari-hari sistem informasi lebih sering digunakan tanpa kata-kata berbasis komputer yang mana komputer merupakan bagian yang sangat penting. Berbasis komputer artinya perancang sistem informasi harus mengerti komputer dan mampu menggunakannya untuk pengelolaan informasi karena perancang akan merancang sebuah sistem informasi yang akan digunakan dengan menggunakan program komputer. Ada beberapa definisi tentang sistem informasi yang akan dibahas berikut ini. Menurut Gaol (2008) sistem adalah hubungan satu unit dengan unit-unit lainnya yang saling berhubungan satu sama yang lainnya dan yang tidak dapat dipisahkan serta menuju satu kesatuan dalam rangka mencapai tujuan yang telah
7
ditetapkan. Sedangkan informasi adalah segala sesuatu keterangan yang bermanfaat untuk para pengambil keputusan/manajer dalam rangka mencapai tujuan organisasi yang sudah ditetapkan sebelumnya. Kadir (2014), menyimpulkan sistem informasi mencakup sejumlah komponen (manusia, komputer, teknologi informasi, dan prosedur kerja), ada sesuatu yang diproses (data menjadi informasi), dan dimaksudkan untuk mencapai suatu sasaran atau tujuan. Teknologi informasi dikelompokkan menjadi dua bagian yaitu perangkat lunak (software) dan perangkat keras (hardware). Perangkat keras menyangkut peralatan-peralatan yang bersifat fisik seperti harddisk, memori, keyboard, monitor, dan printer, sedangkan perangkat lunak terkait dengan instruksi-instruksi untuk mengatur perangkat keras agar bekerja sesuai dengan tujuannya. Hutahaean (2014) sistem informasi adalah suatu sistem di dalam suatu organisasi yang mempertemukan kebutuhan pengelolaan transaksi harian, mendukung operasi, bersifat manajerial, dan kegiatan strategi dari suatu organisasi dan menyediakan pihak luar tertentu dengan laporan-laporan yang dibutuhkan. Sistem informasi terdiri dari komponen-komponen yang disebut dengan istilah blok bangunan (building block) yaitu : 1.
Blok Masukan (Input Block) Input mewakili data yang masuk ke dalam sistem informasi. Input ini termasuk metode-metode dan media yang digunakan untuk menangkap data yang akan dimasukkan, yang dapat berupa dokumen dasar.
2.
Blok Model (Model Block) Blok ini terdiri dari kombinasi prosedur, logika, dan metode matematik yang akan memanipulasi data input dan data yang tersimpan di basis data dengan cara yang sudah ditentukan untuk menghasilkan keluaran yang diinginkan.
3.
Blok Keluaran (Output Block) Produk yang dihasilkan dari sistem informasi adalah keluaran yang merupakan informasi yang baik serta bermanfaat dan dokumentasi yang berguna untuk semua tingkatan manajemen semua pemakai sistem.
8
4.
Blok Teknologi (Technology Block) Teknologi merupakan sebuah peralatan dalam sistem informasi. Teknologi digunakan untuk menerima masukan, menjalankan model, menyimpan, dan mengakses data, menghasilkan dan mengirimkan keluaran dan membantu pengendalian dari sistem secara keseluruhan.
5.
Blok Basis Data (Database Block) Basis data merupakan kumpulan dari data yang saling berhubungan satu dengan yang lainnya, tersimpan di perangkat keras komputer dan untuk mengakses atau memanipulasinya digunakan perangkat lunak yang disebut dengan DBMS (Database Management Systems). Data perlu disimpan dalam basis data untuk keperluan penyediaan informasi lebih lanjut. Perlu dilakukan pengorganisasian terhadap basis data yang ada agar informasi yang dihasilkannya baik dan efisiensi kapasitas penyimpanannya.
6.
Blok Kendali (Controls Block) Banyak hal yang dapat merusak sistem informasi, seperti bencana alam, kecurangan-kecurangan, kegagalan-kegagalan yang terjadi di dalam sistem, tidak efisien, sabotase, dan lain sebagainya. Sehingga beberapa pengendalian perlu dirancang dan diterapkan untuk meyakinkan bahwa hal-hal yang dapat merusak sistem dapat dicegah ataupun dapat langsung segera diperbaiki jika hal-hal yang disebutkan di atas terjadi. Blok bangunan sistem informasi harus saling berinteraksi satu sama lain
untuk mencapai tujuan yang diinginkan dalam satu kesatuan. Interaksi antar blok bangunan sistem informasi dapat dilihat pada Gambar 2.1 Pengguna
Masukan
Pengguna
Model
Keluaran
Pengguna
Pengguna Teknologi
Basis Data
Pengguna
Kendali
Pengguna
Gambar 2.1 Interaksi blok sistem informasi
Sumber : Hutahaean (2014)
9
Agen properti Agen properti atau sering juga disebut broker properti merupakan suatu profesi sebagai perantara antara pemilik dan pembeli (penyewa) dalam transaksi sebuah properti seperti jual beli atau sewa menyewa rumah atau tanah. Menurut Wardono (2013) broker properti terdiri dari 2 macam, yaitu : 1.
Broker tradisional Broker tradisional merupakan broker properti yang tidak berada dalam naungan sebuah perusahaan properti. Mereka bergerak secara individu sehingga aktivitas yang dilakukan bergantung pada kemampuan pribadi dan jaringan yang dimilikinya. Beberapa keunggulan dari broker tradisional ini antara lain : a.
Persentase komisi lebih besar Komisi lebih besar karena tidak perlu dibagi lagi dengan perusahaan properti walaupun kebanyakan komisi yang diterima besarnya di bawah komisi standar yang telah ditetapkan pemerintah.
b.
Tidak terikat dengan peraturan sebuah perusahaan Broker tradisional tidak membawa bendera perusahaan sehingga dapat mengatur prinsip kerjanya sendiri dan tidak ada sanksi dalam segala tindakannya.
Sedangkan kelemahan dari broker tradisional adalah : a.
Jaringan yang dimiliki terbatas Faktor kepercayaan antar broker menentukan apakah dapat bekerja sama atau tidak. Jika tidak ada kerja sama maka ruang lingkup pemasaran propertinya semakin terbatas.
b.
Tingkat risiko pemasaran tinggi Memiliki risiko pemasaran tinggi karena bertindak secara individu dan tidak memiliki brand yang kuat maka properti-properti yang dipasarkan cenderung tidak bersifat eksklusif yang tidak dapat mengikat kontrak pemasaran dengan klien, sehingga tidak dapat mengunci risiko yang berkaitan dengan biaya pemasaran.
10
c.
Biaya pemasaran juga di tanggung sendiri Jika properti sudah dipromosikan dan terjual dengan pihak lain maka biaya pemasaran yang telah dikeluarkan tidak mendapatkan ganti rugi dan semua ditanggung sendiri.
2.
Broker properti bersertifikat Broker properti bersertifikat adalah broker properti yang berada dalam naungan sebuah perusahaan properti dan biasanya bergerak secara tim. Broker properti bersertifikat mempunyai beberapa keunggulan antara lain : a.
Jaringan luas Pemasaran propertinya mendapat dukungan dari jaringan yang telah dibentuk oleh perusahaan properti dan aliansinya.
b.
Tingkat risiko pemasaran rendah Memiliki brand dari sebuah perusahaan maka semakin banyak kepercayaan yang didapat dari klien untuk mendapatkan eksklusif listing karena bukan hanya broker yang bersangkutan yang memasarkan tetapi juga perusahaannya.
c.
Biaya pemasaran didukung perusahaan Dengan adanya kepastian perjanjian jasa pemasaran yang jelas maka perusahaan berani mendukung pemasaran dari properti broker tersebut.
d.
Data base listing properti yang dipasarkan juga besar Selain data properti pribadi juga bisa memasarkan properti milik tim.
Sedangkan kelemahannya dari broker properti bersertifikat antara lain : a.
Persentase komisi lebih kecil Persentase komisi dibagi dengan pihak perusahaan broker properti.
b.
Terikat dengan peraturan Dalam menjalankan aktivitas profesinya, broker tersebut harus dapat mewakili perusahaannya beserta peraturan-peraturan yang ada di dalamnya. Menteri Perdagangan R.I. Mari Elka Pangestu telah menerbitkan peraturan
No.33/M-DAG/PER/8/2008 tentang perusahaan perantara perdagangan properti. Ada banyak hal yang diatur dalam Peraturan Menteri Perdagangan No.33 tahun
11
2008 tersebut, antara lain yang paling penting adalah setiap perusahaan broker harus memiliki Surat Izin Usaha Perusahaan Perantara Perdagangan Properti (SIU-P4). Izin tersebut dikeluarkan oleh Direktur Bina Usaha Dan Pendaftaran Perusahaan Departemen Perdagangan. Setiap lima tahun SIU-P4 harus didaftar ulang. Syarat yang harus dipenuhi untuk mendapatkan SIU-P4, antara lain memiliki paling sedikit 2 orang tenaga ahli sebagai pimpinan perusahaan dan seorang broker properti. Semua bentuk perusahaan bisa mengajukan SIU-P4 baik berbentuk PT, CV, koperasi, firma, ataupun perorangan. Jadi broker tradisional juga diatur dalam peraturan ini. Dengan telah memegang SIU-P4, setiap perusahaan wajib menyampaikan laporan kegiatan perusahaan seperti hasil penjualan tahunan, kepada Direktur Bina Usaha Dan Pendaftaran Perusahaan Departemen Perdagangan, setiap satu tahun sekali. Menurut Peraturan Menteri Perdagangan Republik Indonesia No.33/MDAG/PER/8/2008
tentang
Perusahaan
Perantara
Perdagangan
Properti
menetapkan besaran komisi untuk broker properti minimal 2 persen dari nilai transaksi dengan standar komisi yang digunakan yaitu untuk komisi transaksi jual beli dengan nilai transaksi di bawah 1 miliar maka komisinya adalah 3%, nilai transaksi antara 1 sampai 3 miliar maka komisinya sebesar 2,5%, nilai transaksi di atas 3 miliar maka komisinya adalah 2% dari nilai transaksi jual beli, sedangkan untuk komisi transaksi sewa menyewa sebesar 5% dari nilai transaksi sewa menyewa. Profesi broker properti ini ada karena adanya kendala-kendala yang dimiliki baik oleh pihak pemilik ataupun oleh pihak pembeli/penyewa dalam terjadinya proses jual beli atau sewa menyewa properti. Kendala-kendala yang dihadapi pemilik antara lain : 1.
Kendala waktu Kebanyakan pemilik properti bukanlah pemain dalam bisnis properti. Mereka memiliki usaha atau pekerjaan lain yang berada di luar bisnis ini, sehingga mereka butuh meluangkan waktu lebih untuk memasarkan propertinya, yaitu
12
waktu untuk memasarkan dan waktu untuk mengantar calon pembeli bahkan waktu untuk merencanakan promosi properti yang sedang dipasarkan. 2.
Kendala pemasaran Mempercepat terjualnya suatu properti saat ini tidak cukup hanya mengandalkan iklan di koran atau media promosi lainnya, tetapi perlu suatu jaringan broker properti yang besar disertai data-data pendukung yang up to date, sehingga properti dapat terjual dengan harga sebaik mungkin.
Sedangkan kendala-kendala yang dihadapi pembeli atau penyewa antara lain : 1.
Kendala waktu Seperti kendala yang dimiliki pemilik, pembeli biasanya juga bukanlah orang yang berada di bisnis ini, sehingga ia butuh meluangkan waktu untuk mencari properti yang diinginkan..
2.
Kendala informasi Kurangnya informasi yang dimiliki oleh calon pembeli seperti harga pasaran tanah, rencana pengembangan kawasan, informasi harga properti–properti yang sejenis sampai informasi promo kredit KPR (Kredit Perumahan Rakyat) dari bank–bank yang ada dapat mengakibatkan calon pembeli tidak akan mendapatkan properti yang terbaik.
Kendala-kendala
yang
dihadapi
kedua
belah
pihak
pemilik
maupun
pembeli/penyewa antara lain : 1.
Kendala negosiasi Dalam praktiknya, transaksi jual beli properti bukan sekedar transaksi jual beli biasa yang hanya melibatkan harga yang disepakati. Dalam dunia properti, ada hal-hal yang bisa dinegosiasikan untuk dijadikan suatu keuntungan tambahan baik bagi pemilik ataupun pembeli/penyewa.
2.
Kendala aspek hukum Dalam transaksi suatu obyek properti perlu diperhatikan aspek hukumnya seperti dokumen-dokumen apa yang perlu disiapkan, biaya-biaya apa saja yang timbul dan yang terutama biaya-biaya itu kewajiban pihak pemilik atau pihak pembeli.
13
Dari hal di atas dapat diketahui betapa pentingnya peran seorang broker properti dalam proses berhasilnya sebuah transaksi dan peluang yang didapatkan sebagai broker properti. Peluang bidang usaha jasa broker properti di Indonesia cukup banyak diminati antara lain seperti broker properti Era Indonesia, LJ Hooker dan Ray White. Era King adalah salah satu perusahaan yang bergerak dalam bidang usaha jasa broker atau agen properti waralaba (franchise) dari Era Indonesia. Era King berkantor di Jl. Patimura No. 67, Denpasar, Bali, 80231. Layanan jasa agen properti dari Era King adalah mencari penjual atau pembeli properti, mencari penyewa atau yang menyewakan properti, mengurus dokumen properti, mempromosikan properti, memonitor perkembangan properti dan sebagai manajer investasi properti. Era King berdiri sejak tahun 2013. Walaupun masih tergolong baru sejak pertama berdiri hingga saat ini sudah banyak properti yang dipasarkan melalui Era King. Visi Era King yaitu memberikan solusi bagi setiap orang/instansi untuk mendapatkan kepuasan dalam bertransaksi properti. Misi Era King adalah mengedukasi kepada setiap orang agar supaya memakai jasa agen properti yang profesional sebagai sarana dalam bertransaksi properti dan memahami kebutuhan setiap orang dalam urusan properti sehingga pengguna jasa agen properti Era King mendapatkan kepuasan. Dalam mengujudkan visi dan misi tersebut, Era King melakukan beberapa proses bisnis. Adapun beberapa proses bisnis yang dilakukan oleh Era King antara lain : 1.
Perekrutan Agen Pekerja Perekrutan agen pekerja yang dilakukan oleh perusahaan Era King melalui proses pelatihan terlebih dahulu terhadap calon Agen Pekerja. Materi pelatihan yaitu pengetahuan tentang broker/agen properti (standar komisi, jenis listing properti, perjanjian jasa pemasaran, perjanjian jual beli atau sewa menyewa, hak kepemilikan properti, pajak atas properti, nilai pasar properti, komitmen pelayanan, prosedur transaksi), ketrampilan sebagai agen properti dan sikap atau etika sebagai agen properti. Setelah proses pelatihan dilakukan, selanjutnya dilakukan proses pendaftaran agen pekerja pada perusahaan Era King oleh staf perusahaan sebagai perwakilan dari
14
manajemen perusahaan Era King. Agen Pekerja pada perusahaan Era King mempunyai tugas antara lain : a.
Mencari dan mendaftarkan properti yang akan dijual atau disewakan oleh pemilik properti.
b.
Memasarkan atau mencari pembeli atau penyewa untuk properti yang akan dijual atau yang akan disewakan.
2.
c.
Mengurus dokumen properti
d.
Memonitor perkembangan properti
e.
Sebagai manajer investasi properti
Pendaftaran dan Pemasaran Properti Proses atau kegiatan pendaftaran dan pemasaran properti dilakukan oleh agen pekerja sepengetahuan dari staf perusahaan Era King. Pendaftaran properti dilakukan dengan disertai surat perjanjian jasa pemasaran antara perusahaan Era King dengan pemilik properti. Pada perusahaan Era King disediakan beberapa perjanjian jasa pemasaran untuk pemilik properti antara lain : a.
Perjanjian Jasa Pemasaran Eksklusif Listing yaitu pemilik properti memberikan hak dan wewenang khusus kepada agen properti Era King sebagai satu-satunya yang memasarkan properti dari pemilik properti.
b.
Perjanjian Jasa Pemasaran Open Listing Khusus yaitu pemilik properti memberikan hak dan wewenang khusus kepada agen properti Era King untuk memasarkan properti dari pemilik properti. Selain agen properti Era King, pemilik properti bisa juga memberi hak dan wewenang pemasaran kepada agen properti yang lain.
Dalam perjanjian jasa pemasaran dicantumkan beberapa informasi yaitu spesifikasi properti, jangka waktu perjanjian, harga jual atau sewa dari pemilik properti, dokumen properti, persetujuan pembayaran komisi oleh pemilik properti kepada agen properti Era King (harga jual sampai dengan Rp. 1 Miliar minimal besar komisi 3% dari harga jual, harga jual lebih dari Rp. 1 Miliar atau sampai dengan Rp. 3 Miliar minimal besar komisi 2,5% dari harga jual, harga jual lebih dari Rp. 3 Miliar minimal besar komisi 2% dari harga jual, harga sewa sampai dengan Rp. 25 Juta minimal besar komisi 10%
15
dari harga sewa, harga sewa lebih dari Rp. 25 Juta atau sampai dengan Rp. 50 Juta minimal komisi 7,5% dari harga sewa, harga sewa lebih dari Rp. 50 Juta atau sampai dengan Rp. 1 Miliar minimal komisi 5% dari harga sewa, harga sewa lebih dari Rp. 1 Miliar minimal komisi 3% dari harga sewa), perjanjian penyerahan uang muka atau uang tanda jadi, kegiatan pemasaran, penyelesaian perselisihan. Pemasaran properti di perusahaan Era King dilakukan melalui media internet, media masa dan melalui jaringan agen properti Era King. 3.
Penjualan atau Penyewaan Properti Agen pekerja dari perusahaan agen properti Era King akan melakukan kegiatan jasa perantara transaksi jual beli atau sewa menyewa antara pemilik properti dengan pembeli atau penyewa properti. Dalam proses penjualan atau penyewaan properti, agen pekerja sebagai perantara atau perwakilan dari pemilik properti disebut dengan agen pendaftar, sedangkan agen pekerja sebagai perantara atau perwakilan dari pembeli atau penyewa properti selanjutnya disebut dengan agen promosi. Saat transaksi penjualan atau penyewaan terjadi yang diawali dengan adanya uang tanda jadi atau uang muka yang diserahkan oleh pembeli atau penyewa properti melalui agen pekerja dan disaksikan oleh staf perusahaan Era King yang nantinya akan diserahkan ke pemilik properti, kemudian agen pekerja akan mendampingi pembeli atau penyewa dan pemilik properti dalam pengurusan dokumen properti yang diperlukan sampai proses transaksi selesai.
4.
Pembagian Komisi Pembagian komisi yang berlaku pada perusahaan agen properti Era King yaitu agen pekerja mendapatkan 45% dari besarnya nilai komisi hasil transaksi jual beli atau sewa menyewa properti, sedangkan 55% dari nilai komisi hasil transaksi jual beli atau sewa menyewa didapatkan oleh perusahaan agen properti Era King. Agen pekerja mendapatkan nilai komisi penuh 45% jika agen pekerja tersebut dalam data properti sebagai agen pendaftar dan dalam data transaksi properti sebagai agen promosi, sedangkan jika hanya sebagai agen pendaftar atau agen promosi saja maka nilai komisi
16
yang didapatkan oleh agen pekerja sebesar 50% dari 45% besarnya nilai komisi hasil transaksi jual beli atau sewa menyewa properti. Pembayaran uang komisi oleh perusahaan agen properti Era King kepada agen pekerja khususnya untuk jenis pembayaran transaksi kredit dilakukan setelah uang muka dibayarkan oleh pembeli atau penyewa properti yang disertai dengan bukti penerimaan komisi. Saat uang muka dibayarkan oleh pembeli atau penyewa properti maka pihak agen properti Era King akan melakukan pemotongan pembayaran komisi yang besarnya sesuai dengan perjanjian jasa pemasaran dengan pemilik properti dan selanjutnya sisa uang muka setelah dipotong komisi akan diserahkan ke pemilik properti yang disertai dengan bukti transaksi penjualan atau penyewaan properti. Bukti transaksi tersebut diserahkan masing-masing kepada pembeli atau penyewa properti dan pemilik properti.
Perangkat pemodelan sistem 2.2.3.1 Statement of purpose Tujuan dari desain sistem secara umum adalah untuk memberikan gambaran secara umum kepada user dan management tentang sistem baru yang akan diusulkan. Desain sistem secara umum merupakan persiapan dari desain perinci. Desain secara umum mengidentifikasikan komponen-komponen sistem informasi yang akan didesain secara terperinci. 2.2.3.2 Diagram konteks Suatu konteks diagram selalu mengandung satu dan hanya satu proses saja (sering kali diberi nomor proses 0). Proses ini mewakili proses dari seluruh sistem. Konteks diagram ini menggambarkan hubungan input/output antara sistem dengan dunia luarnya (kesatuan luar). 2.2.3.3 Data flow diagram Data flow diagram (DFD) sering digunakan untuk menggambarkan sesuatu sistem yang telah ada atau sistem baru yang akan dikembangkan secara logika tanpa pertimbangan lingkungan fisik di mana data tersebut mengalir (misalnya
17
lewat telepon, surat dan lain-lain) atau lingkungan fisik di mana data tersebut akan disimpan (misalnya file kartu, microfince, harddisk, tape, diskette, dan lain-lain). DFD merupakan alat yang digunakan pada metodologi pengembangan sistem yang struktur (structured analysis and design). DFD sekarang ini banyak digunakan karena dapat menggambarkan arus data dalam sistem dengan jelas dan DFD juga merupakan dokumentasi dari sistem yang baik. Beberapa simbol yang digunakan di dalam penggambaran sesuatu DFD adalah sebagai berikut : 1.
External entity (kesatuan luar) atau boundary (batas sistem) Setiap sistem pasti mempunyai batas sistem (boundary) yang memisahkan sesuatu sistem dengan lingkungan luarnya. Sistem akan menerima input dan akan mengeluarkan output kepada lingkungan luarnya. Kesatuan luar (external entity) merupakan kesatuan di lingkungan luar sistem yang dapat berupa orang, organisasi atau sistem lain yang berada di lingkungan luarnya yang akan memberikan input atau menerima output dari sistem. Satu kesatuan luar dapat disimbolkan dengan sesuatu notasi kotak atau sesuatu kotak dengan sisi kiri dan atasnya berbentuk garis tebal seperti Gambar 2.2 atau
Gambar 2.2 Notasi kesatuan luar DFD
Kesatuan luar dapat diberi identifikasi dengan huruf kecil di ujung kiri atas seperti Gambar 2.3 a Unit Usaha
b
c Pimpinan
Pekerja
Gambar 2.3 Notasi kesatuan luar DFD dengan identifikasi
2.
Data flow (arus data) Arus data (data flow) di DFD diberi simbol satu arah. Arus data ini mengalir di antara proses (process), simpanan data (data store) dan kesatuan luar (external entity). Arus data ini menunjukkan arus dari data yang dapat berupa
18
masukan untuk sistem atau hasil dari proses sistem dan dapat berupa berbagai bentuk, contoh : a. Formulir atau dokumen yang digunakan di perusahaan. b. Laporan tercetak yang dihasilkan oleh sistem. c. Tampilan atau output di layar komputer yang dihasilkan oleh sistem. d. Masukan untuk komputer. e. Komunikasi ucapan. f. Surat-surat atau memo. g. Data yang dibaca atau direkam ke sesuatu file. h. Suatu isian yang dicatat pada buku agenda. i. Transmisi data dari sesuatu komputer ke komputer yang lain. Di dalam menggambar arus data di DFD perlu diperhatikan beberapa konsep yang perlu. Berikut ini adalah konsep dari arus data yang perlu diperhatikan, antara lain : a. Konsep paket dari data (packet of data) Bila dua atau lebih data mengalir dari sesuatu sumber yang sama ke tujuan yang sama, maka harus dianggap sesuatu arus data yang tunggal. Karena dua atau lebih data tersebut mengalir bersama-sama sebagai sesuatu paket. Data yang mengalir bersama-sama harus ditunjukkan sebagai satu arus data, walaupun terdiri dari beberapa dokumen. Sebagai contoh bisa dilihat pada Gambar 2.4
a
Unit Usaha
Masukan/ Keluaran Data Properti
1
Proses Masukan/ Keluaran Data Properti
Gambar 2.4 Proses masukan dan keluaran data properti
Bila dua buah data ini akan ditangani oleh dua proses yang berlainan, berarti mempunyai tujuan yang berbeda, walaupun sumbernya sama, maka dapat digambarkan seperti Gambar 2.5.
19
Masukan Data Properti
1 Proses Masukan Data Properti
a Unit Usaha
2
Keluaran Data Properti
Proses Keluaran Data Properti
Gambar 2.5 Dua buah data mengalir menuju ke dua buah proses
b. Konsep arus data menyebar (diverging data flow) Arus data yang menyebar menunjukkan sejumlah tembusan dari arus data yang sama dari sumber yang sama ke tujuan yang berbeda. 1 Proses Masukan Data Properti
a Unit Usaha
Laporan Tembusan Masukan/ Masukan Data Keluaran Data Properti Properti Tembusan Keluaran Data Properti
3 Proses Laporan Data Properti
2 Proses Keluaran Data Properti
Gambar 2.6 Arus data menyebar (diverging data flow)
Pada Gambar 2.6 terlihat bahwa arus data “masukan/keluaran data properti” mempunyai 3 tembusan, yaitu tembusan untuk masukan data properti yang mengalir ke proses masukan data properti, tembusan keluaran barang yang mengalir ke proses keluaran data properti dan tembusan laporan masukan/keluaran data properti yang mengalir dari proses laporan data properti. Konsep arus data yang mengalir ini menunjukkan bahwa arus data tembusan masukan data properti, tembusan keluaran data properti dan tembusan laporan masukan/keluaran data properti merupakan arus data yang mempunyai struktur elemen yang sama, karena merupakan hasil dari tembusan arus data masukan/keluaran data properti.
20
c. Konsep arus data mengumpul (converging data flow) Arus data yang mengumpul menunjukkan beberapa arus data yang berbeda dari sumber yang berbeda bergabung bersama-sama menuju ke tujuan yang sama. Masukan Data Properti
1 Proses Masukan Data Properti
a Unit Usaha
2
Keluaran Data Properti
Proses Keluaran Data Properti
Gambar 2.7 Arus data mengumpul (converging data flow)
3.
Process (proses) Suatu proses adalah kegiatan atau kerja yang dilakukan oleh orang, mesin atau komputer dari hasil sesuatu arus data yang masuk ke dalam proses untuk dihasilkan arus data yang akan keluar dari proses.
atau
Identifikasi
Identifikasi
Nama Proses
Nama Proses Pemroses
atau
Gambar 2.8 Notasi proses DFD
Sumber : Jogiyanto (2005)
4.
Data store (simpanan data) Simpanan data (data store) merupakan simpanan dari data yang dapat berupa sesuatu file atau database di sistem komputer, arsip atau catatan manual, kotak tempat data di meja seseorang, tabel acuan manual, dan agenda atau buku. Media
Nama Data Store
Gambar 2.9 Simbol simpanan data DFD
Sumber : Jogiyanto (2005)
21
2.2.3.4 Entity relationship diagram Entity relationship diagram (ERD) merupakan notasi grafis dalam permodelan
data
konseptual
yang
mendeskripsikan
hubungan
antara
penyimpanan. ERD digunakan untuk model struktur data dan hubungan antar data, karena hal ini relatif kompleks. Dengan ERD kita dapat menguji model dengan mengabaikan proses yang harus dilakukan dan dengan ERD kita mencoba menjawab pertanyaan seperti : Data apa yang kita perlukan ? Bagaimana data yang satu berhubungan dengan yang lain ? ERD menggunakan sejumlah notasi dan simbol untuk menggambarkan struktur dan hubungan antar data, pada dasarnya ada 3 macam simbol yang digunakan yaitu : 1.
Entitas Entitas adalah sesuatu objek yang dapat diidentifikasi dalam lingkungan pemakai, sesuatu yang penting bagi pemakai dalam konteks sistem yang akan dibuat. Sebagai contoh pelanggan, pekerja dan lain-lain. Jika A adalah seorang pekerja maka A adalah isi dari pekerja, sedangkan jika B adalah seorang pelanggan maka B adalah isi dari pelanggan. Karena itu harus dibedakan antara entity sebagai bentuk umum dari deskripsi tertentu dan isi entity seperti A dan B dalam contoh di atas. Entity digambarkan dalam bentuk persegi empat. Entity
Gambar 2.10 Entitas
2.
Atribut Entity
mempunyai
elemen
yang
disebut
atribut,
dan
berfungsi
mendeskripsikan karakter entity. Misalnya atribut nama pekerja dari entity pekerja. Setiap ERD bisa terdapat lebih dari satu atribut. Atribut digambarkan dalam bentuk ellips. Atribut Entity
Atribut
Gambar 2.11 Atribut
22
3.
Relationship Relationship ialah sebagaimana halnya entity maka dalam hubungan pun harus dibedakan antara hubungan atau bentuk hubungan antar entity dengan isi dari hubungan itu sendiri. Misalnya dalam kasus hubungan antara entity pekerja (agen) dan entity properti (data) adalah transaksi, sedangkan isi hubungannya dapat berupa waktu transaksi. Relationship digambarkan dalam bentuk intan / diamonds. Pekerja
Transaksi
Kode
Properti
Kode
Nama
Jenis
Kode
Jenis
Waktu
Gambar 2.12 Hubungan dalam bentuk intan / diamonds
Jenis-jenis hubungan / relationship : a.
Bentuk hubungan satu ke satu (one to one) menunjukkan bahwa setiap baris data pada tabel pertama dapat dikoneksikan hanya ke satu baris data pada tabel kedua, misalnya dalam pendaftaran pekerja (agen) : One Pekerja
One Registrasi
Terdaftar
Gambar 2.13 Hubungan one to one
b.
Hubungan satu ke banyak atau banyak ke satu (one to many / many to one), merupakan hubungan yang paling umum di mana pada hubungan ini ditunjukkan bahwa pada setiap baris data pada tabel pertama dapat dikoneksikan ke satu atau lebih baris data pada tabel kedua. Tetapi sebuah baris data pada tabel kedua hanya bisa dihubungkan dengan satu baris data pada tabel pertama. One Pekerja
Many Transaksi
Properti
Gambar 2.14 Hubungan one to many
23
c.
Hubungan banyak ke banyak (many to many) menunjukkan bahwa satu atau lebih baris data pada tabel pertama dapat dikoneksikan ke satu atau lebih baris data pada tabel kedua. Many Konsumen
Many Transaksi
Properti
Gambar 2.15 Hubungan many to many
ERD dapat digambarkan lengkap dengan atribut-atributnya, bisa juga digambarkan tanpa atributnya.
2.2.3.5 Kunci Kunci (Key) adalah sebuah atau gabungan dari beberapa atribut atau field yang dapat membedakan semua record dalam tabel secara unik. Artinya, apabila sesuatu atribut dijadikan sebagai key maka tidak boleh ada dua atau lebih baris data dengan nilai yang sama untuk atribut tersebut. Adapun kegunaan dari key adalah : 1.
Untuk menghindari pengulangan data (redudansi).
2.
Untuk menghindari null value.
3.
Sebagai tanda pengenal dalam relasi antar tabel. Ada beberapa macam key, antara lain :
1.
Super Key Super Key adalah satu atau lebih atribut (kumpulan atribut) dari sesuatu tabel yang dapat digunakan untuk mengidentifikasi entity atau record dari tabel tersebut secara unik (tidak semua atribut dapat menjadi super key).
2.
Primary Key Salah satu atribut dari candidate key dapat dipilih atau ditentukan menjadi primary key dengan tiga kriteria, yakni : a. Key tersebut lebih natural untuk digunakan sebagai acuan. b. Key tersebut lebih sederhana. c. Key tersebut terjamin keunikannya.
3.
Foreign Key
24
Foreign Key adalah hubungan antara sebuah set kolom dalam satu tabel dan merupakan set kolom primary key dari beberapa tabel lainnya. Foreign key akan terjadi pada sesuatu relasi yang memiliki kardinalitas one to many (satu ke banyak) atau many to many (banyak ke banyak). Foreign key biasanya selalu diletakkan pada tabel atau relasi yang mengarah ke banyak. 4.
Candidate Key Super key dengan jumlah atribut minimal disebut dengan candidate key. Candidate key tidak boleh berisi atribut dari tabel yang lain sehingga candidate key sudah pasti super key namun belum tentu sebaliknya.
5.
Alternate Key Alternate Key adalah setiap atribut dari candidate key yang tidak terpilih menjadi primary key.
6.
Eksternal Key Eksternal Key adalah sesuatu lexical atribute (himpunan leksikal atribut) yang nilai-nilainya selalu mengidentifikasi satu object instance.
2.2.3.6 Normalisasi Menurut
Kristanto
(1994)
proses
normalisasi
merupakan
proses
pengelompokan data elemen menjadi tabel-tabel yang menunjukkan entitas (entity) dan relasinya. Entity adalah orang, tempat, kejadian atau konsep yang informasinya direkam. Pada proses normalisasi selalu diuji pada beberapa kondisi, apakah ada kesulitan pada saat menambah (insert), menghapus (delete), mengubah (update), membaca (retrieve) pada sesuatu database. Bila ada kesulitan pada pengujian tersebut maka relasi tersebut dipecahkan pada beberapa tabel lagi atau dengan kata lain perancangan belum mendapat database yang optimal. Adapun bentuk-bentuk normalisasi, antara lain : 1.
Bentuk tidak normal (Unnormalized Form) Bentuk ini merupakan kumpulan data yang akan direkam, tidak ada keharusan mengikuti sesuatu format tertentu, dapat saja data tidak lengkap atau
terduplikasi.
kedatangannya.
Data
dikumpulkan
apa
adanya
sesuai
dengan
25
2.
Bentuk Normal Kesatu (1NF/First Normal Form) Bentuk normal kesatu mempunyai ciri yaitu setiap data dibentuk dalam flat file (file datar/rata), data dibentuk dalam satu record demi satu record dan nilai dari field-field berupa “otomic value”.
Tidak ada set atribut yang
berulang-ulang atau atribut bernilai ganda (multi value). 3.
Bentuk Normal Kedua (2NF/Second Normal Form) Bentuk normal kedua mempunyai syarat yaitu bentuk data telah memenuhi kriteria bentuk normal kesatu.
Atribut bukan kunci haruslah bergantung
secara fungsi pada kunci utama / primary key. Sehingga untuk membentuk normal kedua haruslah sudah ditentukan kunci-kunci field.
Kunci field
haruslah unik dan dapat mewakili atribut lain yang menjadi anggotanya. 4.
Bentuk Normal Ketiga (3NF/Third Normal Form) Untuk menjadi bentuk normal ketiga maka relasi haruslah dalam bentuk normal kedua dan semua atribut bukan primer tidak punya hubungan yang transitif. Dengan kata lain, setiap atribut bukan kunci haruslah bergantung hanya pada primary key dan pada primary key secara menyeluruh.
5.
Boyce-Codd Normal Form (BCNF) Boyce-Codd Normal Form mempunyai paksaan yang lebih kuat dari bentuk normal ketiga. Untuk menjadi BCNF, relasi harus dalam bentuk normal kesatu dan setiap atribut harus bergantung fungsi pada atribut super key.
Bahasa pemrograman PHP PHP (Personal Home Page) atau PHP Hypertext Preprocessor merupakan bahasa pemrograman berbentuk skrip yang ditempatkan dalam server dan diproses di server, hasilnya dikirimkan ke klien, tempat pemakai menggunakan browser. PHP dirancang untuk membentuk aplikasi web dinamis, artinya dapat membentuk suatu tampilan berdasarkan permintaan terkini, misalnya dapat menampilkan isi basis data ke halaman web. Pada prinsipnya PHP mempunya fungsi yang sama dengan skrip-skrip seperti ASP (Active Server Page), Cold Fusion, ataupun Perl. Kelahiran PHP bermula saat Rasmus Lerdorf membuat sejumlah skrip Perl yang dapat mengamati siapa saja yang melihat-lihat daftar riwayat hidupnya,
26
yakni pada tahun 1994. Skrip-skrip ini selanjutnya dikemas menjadi tool yang disebut “Personel Home Page” yang menjadi cikal bakal PHP. Pada tahun 1995, PHP/FI 2.0 diciptakan oleh Rasmus Lerdorf, pemrogram dapat menempelkan kode terstruktur di dalam tag HTML (HyperText Markup Language) dan dapat berkomunikasi dengan basis data. Pada tahun 1997, sebuah perusahaan bernama Zend menulis ulang interpreter PHP menjadi lebih bersih, lebih baik, dan lebih cepat. Pada Juni 1998, perusahaan Zend merilis interpreter baru untuk PHP dan meresmikan rilis tersebut sebagai PHP 3.0 dan singkatan PHP diubah menjadi akronim berulang yaitu PHP Hypertext Preprocessing. Pada pertengahan tahun 1999, Zend merilis interpreter PHP baru dan rilis tersebut dikenal dengan PHP 4.0. yang paling banyak dipakai pada awal abad ke-21, disebabkan kemampuannya untuk membangun aplikasi web kompleks tetapi tetap memiliki kecepatan dan stabilitas yang tinggi. Pada Juni 2004, Zend merilis PHP 5.0. inti dari interpreter PHP mengalami perubahan besar yang memasukkan model pemrograman berorientasi objek ke dalam PHP untuk menjawab perkembangan bahasa pemrograman ke arah paradigma berorientasi objek. Versi terbaru dari bahasa pemrograman PHP adalah versi 5.6.15 yang resmi dirilis pada tanggal 29 Oktober 2015. Adapun beberapa kelebihan PHP sebagai bahasa pemrograman web, antara lain : 1.
Bahasa pemrograman PHP adalah sebuah bahasa skrip yang tidak melakukan sebuah kompilasi dalam penggunaannya.
2.
Web Server yang mendukung PHP dapat ditemukan dimana-mana dari mulai apache, IIS, Lighttpd, hingga Xitami dengan konfigurasi yang relatif mudah.
3.
Dalam sisi pengembangan lebih mudah, karena banyaknya forum-forum dan pengembang yang siap membantu dalam pengembangan.
4.
Dalam sisi pemahaman, PHP adalah bahasa skrip yang paling mudah karena memiliki referensi yang banyak.
5.
PHP adalah bahasa open source yang dapat digunakan di berbagai mesin (Linux, Unix, Macintosh, Windows) dan dapat dijalankan secara runtime melalui console serta juga dapat menjalankan perintah-perintah sistem.
27
Selain kelebihan tersebut, PHP juga mampu berkomunikasi dengan berbagai database yang terkenal. Dengan demikian, menampilkan data yang bersifat dinamis, yang diambil dari database merupakan hal yang mudah untuk diimplementasikan. Database yang dapat berkomunikasi dengan PHP di antaranya BASE, DBM, FilePro (Personix, Inc), Informix, Ingres, InterBase, Microsoft Access, MSQL, MySQL, Oracle, PostgreSQL, dan Sybase. Dalam perkembangan PHP untuk mempermudah dalam membuat sebuah aplikasi web yang sering membuat skrip secara keseluruhan (konvensional) diulang pada halaman yang lain maka selanjutnya dikenal istilah PHP Framework. Kerangka Kerja (framework) secara sederhana diartikan sebagai kumpulan dari fungsi-fungsi/prosedur-prosedur dan kelas-kelas untuk tujuan tertentu yang sudah siap digunakan sehingga bisa lebih mempermudah dan mempercepat pekerjaan seorang pemrogram tanpa harus membuat fungsi atau kelas dari awal. PHP Framework adalah sebagai sebuah kerangka kerja yang disusun oleh berbagai komunitas pengembang web di seluruh dunia seperti CakePHP, CodeIgniter, PHP Bootstrap, PRADO, Symfony, Zend Framework, Yii, PHPDevShell, Akelos, QPHP, dan ZooP. Adapun fungsi umum dari framework antara lain : 1.
Mempercepat dan mempermudah pembangunan sebuah aplikasi web.
2.
Relatif memudahkan dalam proses pemeliharaan karena sudah ada pola tertentu dalam sebuah framework dengan syarat pemrogram mengikuti pola standar yang ada.
3.
Umumnya framework menyediakan fasilitas-fasilitas yang umum dipakai sehingga kita tidak perlu membangun dari awal.
4.
Lebih bebas dalam pengembangan jika dibandingkan CMS (Content Manajement System).
2.2.4.1 Konsep kerja PHP Model kerja HTML diawali dengan permintaan suatu halaman web oleh browser, berdasarkan URL (Uniform Resource Locator) atau dikenal dengan sebutan alamat internet, browser mendapatkan alamat dari web server,
28
mengidentifikasi halaman yang dikehendaki, dan menyampaikan segala informasi melalui HTTP (HyperText Transfer Protocol) yang dibutuhkan oleh web server, selanjutnya web server akan mencari file yang diminta dan memberikan isinya ke web browser (atau yang biasa disebut browser saja). Browser yang mendapatkan isinya segera melakukan proses penerjemahan kode HTML dan menampilkannya ke layar pemakai. Skema konsep kerja pada HTML bisa dilihat pada Gambar 2.16 Web Server Permintaan HTTP (sesuatu.html)
Kode HTML
Browser
Tanggapan HTTP Klien
Gambar 2.16 Skema HTML
Sumber : Kadir (2008) Model kerja PHP pada prinsipnya serupa dengan kode HTML, hanya saja ketika berkas PHP yang diminta didapatkan oleh web server, isinya segera dikirimkan ke mesin PHP yang memproses dan memberikan hasil kode HTML ke web server, selanjutnya diteruskan ke klien (browser) seperti skema pada Gambar 2.17 Web Server
Skrip PHP
Permintaan HTTP (sesuatu.php)
Mesin PHP
Kode HTML
Browser
Tanggapan HTTP Klien
Gambar 2.17 Skema PHP
Sumber : Kadir (2008)
2.2.4.2 Elemen dasar PHP Kode PHP diawali dengan . Pasangan kode ini berfungsi sebagai tag kode PHP. Berdasarkan tag ini pihak server dapat
29
memahami kode PHP dan kemudian memprosesnya. Kode Program 2.1 merupakan contoh penulisan kode PHP (disimpan dengan nama file contoh.php) :
Kode Program 2.1 Contoh penulisan kode PHP
Hasilnya dibuka dengan browser akan terlihat seperti Gambar 2.18
Gambar 2.18 Tampilan kode PHP pada browser
Adapun beberapa elemen dasar PHP antara lain : 1.
Karakter Istilah karakter banyak dijumpai pada bahasa pemrograman komputer. Karakter dapat berupa sebuah huruf, sebuah angka tunggal, sebuah spasi, tanda kontrol seperti carriage resturn, atau sebuah simbol seperti + dan ?.
2.
Pengenal Pengenal (identifier) banyak digunakan dalam program untuk memberi nama variabel, fungsi, atau kelas. Ada beberapa aturan yang berlaku untuk pengenal, antara lain : a.
Karakter yang dapat digunakan adalah huruf, angka, atau garis bawah (_).
b.
Karakter pertama harus berupa huruf atau garis bawah.
c.
Panjang pengenal bisa berapa saja
d.
Huruf kecil dan huruf kapital dibedakan.
Dalam membuat nama pengenal agar dihindari penggunaan nama yang sama dengan nama-nama yang sudah tersedia pada PHP seperti echo, print.
30
Berikut
contoh
pengenal
yang
benar
yaitu
nama,
nama_agen,
nama_properti, NamaProperti, _nama, properti123.
3.
Tipe Data Tipe data dasar pada PHP ada empat macam, yaitu integer, double, string, dan boolean. Integer menyatakan tipe data bilangan bulat dengan jangkauan kira-kira dari -2 miliar hingga +2 miliar. Double menyatakan tipe data bilangan real atau titik mengambang, yaitu bilangan yang mempunyai bagian pecahan. String menyatakan tipe data teks (sederetan karakter yang tidak menyatakan bilangan), misalnya berupa nama properti atau nama agen. Tipe boolean dipakai untuk menyatakan nilai kebenaran, nilainya dapat berupa TRUE yang berarti benar atau FALSE yang berarti salah.
4.
Literal Literal atau konstanta menyatakan nilai yang tetap di dalam program, sebagai contoh pada pernyataan berikut : echo (“agen”); // agen adalah konstanta string
5.
Variabel Variabel digunakan dalam program untuk menyimpan nilai yang berubahubah. Variabel dapat dibayangkan seperti suatu kotak. Mula-mula menyimpan nilai 10 ke dalam kotak tersebut, di saat yang lain, mengganti isinya dengan 20. Variabel pada PHP selalu ditulis dengan awalan berupa $ seperti $agen, $properti.
6.
Variabel-variabel Istilah variabel-variabel dalam PHP memungkinkan nama variabel ditentukan dan digunakan secara dinamis seperti contoh berikut : $properti = “rumah”; $$properti = “jual”; ${$properti} = “jual”; $rumah = “jual”;
31
7.
Konversi nilai PHP menyediakan perintah untuk melakukan konversi dari suatu tipe data ke tipe data yang lain. Salah satunya adalah settype(). Misalnya sebagai berikut : settype($harga, “double”); // akan membuat isi variabel harga diubah menjadi double
8.
Operator Operator adalah simbol yang digunakan dalam program untuk melakukan suatu operasi, misalnya penjumlahan, perkalian, pembandingan kesamaan dua buah nilai, atau bahkan memberikan nilai ke variabel. Nilai yang dioperasikan oleh operator (disebut operand atau argumen) bersama-sama operator membentuk ekspresi (ungkapan). Sebagai contoh yaitu 2 + 3 * 4 disebut ekspresi. Tanda + dan * disebut operator, sedangkan 2, 3, dan 4 adalah operand atau argumen.
2.2.4.3 PHP berorientasi objek Pemrograman berorientasi objek merupakan model pemrograman yang menjadi tren saat ini. PHP juga mendukung hal ini. Suatu objek dapat dibentuk melalui kelas. Dalam hal ini, kelas dapat dianggap sebagai cetakan untuk objek. Jika menggunakan istilah teknis, kelas adalah definisi umum untuk sekelompok objek. Objek sendiri sering disebut instan kelas. Dengan menggunakan cetakan bisa menciptakan banyak objek. Sebuah kelas mencakup sejumlah variabel atau properti yang dimiliki oleh objek dan sejumlah fungsi yang digunakan untuk mengakses properti. Gambaran kelas dan objek bisa dilihat pada Gambar 2.19
32
Kelas Properti/ Variabel
Objek1
Objek2
Metode/ Fungsi
Objek3
Cetakan untuk objek
Gambar 2.19 Kelas dan objek
Sumber : Kadir (2008) Dalam terminologi pemrograman berorientasi objek, variabel-variabel yang berada dalam sebuah kelas disebut properti, sedangkan fungsi yang digunakan untuk mengakses properti disebut metode. Bentuk pendefinisian kelas adalah sebagai berikut : class nama_kelas { [var deklarasiVariabel] [deklarasi fungsi] }
Berikut Kode Program 2.2 yang memberikan gambaran pendefinisian kelas bernama kelas_tanggal yang memiliki tiga buah properti dan sebuah metode (skrip disimpan dengan nama file tgl.php), yaitu : tanggal
= $tgl;
$this->bulan
= $bln;
$this->tahun
= $thn;
} } ?>
Kode Program 2.2 Pendefinisian Kelas
33
Pada contoh di atas, $this berarti objek dari kelas itu sendiri (kelas kelas_tanggal).
Tanda -> digunakan untuk mengakses metode atau properti.
$this->tanggal
dibaca sebagai properti tanggal milik objek itu sendiri,
sedangkan pernyataan $this->tanggal = $tgl; merupakan instruksi untuk mengisikan argumen $tgl ke properti tanggal. Setelah kelas didefinisikan, objek (instan kelas) dapat dibentuk melalui pernyataan new, seperti : $tgl_daftar = new kelas_tanggal;
Instruksi di atas untuk menciptakan objek baru berkelas kelas_tanggal. Setelah suatu objek baru diciptakan, selanjutnya bisa mengisi ketiga properti tanggal, bulan,
dan tahun dengan cara memanggil metode set_tanggal() seperti
berikut: $tgl_daftar->set_tanggal(6, 11, 2015);
Dengan menggunakan pernyataan di atas maka properti tanggal berisi 6, properti bulan berisi 11, dan properti tahun berisi 2015. Berikut Kode Program 2.3 yang mengakses metode dan properti dalam objek (disimpan dalam file tanggal.php) yaitu : set_tanggal(6, 11, 2015); echo
Skrip di atas dibuka dengan browser akan terlihat seperti Gambar 2.20
Gambar 2.20 Hasil penampilan tanggal.php
2.2.4.4 Bootstrap Bootstrap adalah front-end framework yang mengedepankan tampilan untuk mobile device (handphone atau smartphone) guna mempercepat dan mempermudah pengembangan web. Bootstrap menyediakan HTML, CSS dan Javascript siap pakai dan mudah untuk dikembangkan. Bootstrap merupakan framework untuk membangun desain web secara responsif, artinya tampilan web yang dibuat oleh bootstrap akan menyesuaikan ukuran layar dari browser yang kita gunakan baik di desktop, tablet ataupun mobile device. Fungsi ini bisa diaktifkan ataupun dinonaktifkan sesuai dengan keinginan, sehingga bisa membuat web untuk tampilan desktop saja dan apabila dibuka oleh mobile browser maka tampilan dari web dibuat tidak bisa beradaptasi sesuai layar. Dengan bootstrap juga bisa membangun web dinamis ataupun statis. Beberapa file library yang dibutuhkan untuk penggunaan bootstrap antara lain : 1.
File distribusi bootstrap yang dapat di download dari situs resminya getbootstrap.com.
2.
Library jQuery yang bisa di download dari situs jquery.com.
35
Kode atau skrip umum dari bootstrap yaitu seperti pada Kode Program 2.4 bootstrap <meta charset="utf-8"> <meta
DBMS MySQL Basis data (database) adalah kumpulan informasi yang disimpan di dalam komputer secara sistematik sehingga dapat diperiksa menggunakan suatu program komputer untuk memperoleh informasi dari basis data tersebut. Database digunakan untuk menyimpan informasi atau data yang terintegrasi dengan baik di dalam komputer. Dalam mengelola database diperlukan suatu perangkat lunak yang disebut DBMS (Database Management System). DBMS merupakan suatu sistem perangkat lunak yang memungkinkan user (pengguna) untuk membuat, memelihara, mengontrol, dan mengakses database secara praktis dan efisien. Dengan DBMS, user akan lebih mudah mengontrol dan memanipulasi data yang ada,
sedangkan
RDBMS
(Relationship
Database
Management
System)
merupakan salah satu jenis DBMS yang mendukung adanya relationship atau hubungan antar tabel. Selain RDBMS, terdapat jenis DBMS lain, seperti Hierarchy DBMS, Object Oriented DBMS. Beberapa software (perangkat lunak) DBMS yang sering digunakan dalam aplikasi program antara lain DB2, Microsoft
36
SQL Server, Oracle, Sybase, Interbase, Teradata, Firebird, MySQL, dan PostgreSQL. Database mempunyai beberapa istilah umum, antara lain : 1.
Table Sebuah tabel merupakan kumpulan data (nilai) yang diorganisasikan ke dalam baris (record) dan kolom (field). Masing-masing kolom memiliki nama yang spesifik dan unik.
2.
Field Field merupakan kolom dari sebuah table. Field memiliki ukuran type data tertentu yang menentukan bagaimana data nantinya tersimpan.
3.
Record Record merupakan sebuah kumpulan nilai yang saling terkait.
4.
Key Key merupakan suatu field yang dapat dijadikan kunci dalam operasi tabel. Dalam konsep database, key memiliki banyak jenis di antaranya Primary Key, Foreign Key, Composite Key.
5.
SQL SQL (Structured Query Language) merupakan suatu bahasa (language) yang digunakan untuk mengakses database. SQL sering disebut juga sebagai query. Dalam konsep database, urutan atau hierarki database sangat penting.
Urutan atau hierarki database dapat digambarkan seperti Gambar 2.21 DBMS
Tabel
Database
Database
Database
Tabel
Tabel
Tabel
Field dan Record
Gambar 2.21 Hierarki database
Sumber : Solichin (2010)
Tabel
37
MySQL adalah sebuah perangkat lunak sistem manajemen basis data SQL yang multi thread, multi user, dengan sekitar 6 juta instalasi di seluruh dunia. MySQL AB membuat MySQL tersedia sebagai perangkat lunak gratis di bawah lisensi GNU General Public License (GPL), tetapi mereka juga menjual di bawah lisensi komersial untuk kasus-kasus di mana penggunaannya tidak cocok dengan penggunaan GPL. MySQL dimiliki dan disponsori oleh sebuah perusahaan komersial Swedia yaitu MySQL AB yang memegang penuh hak cipta hampir atas semua kode sumbernya. Kedua orang Swedia dan satu orang Finlandia yang mendirikan MySQL AB adalah: David Axmark, Allan Larsson, dan Michael "Monty" Widenius. Solichin (2010), berikut beberapa keunggulan yang ada pada MySQL antara lain : 1.
Relational Database System, seperti halnya software database lain yang ada di pasaran, MySQL termasuk RDBMS.
2.
Arsitektur Client-Server. MySQL memiliki arsitektur client-server di mana server database MySQL terinstal di server. Client MySQL dapat berada di komputer yang sama dengan server, dan dapat juga di komputer lain yang berkomunikasi dengan server melalui jaringan bahkan internet.
3.
Mengenal perintah SQL standar. SQL (Structured Query Language) merupakan suatu bahasa standar yang berlaku di hampir semua software database MySQL.
4.
Mendukung Sub Select. Mulai versi 4.1 MySQL telah mendukung select dalam select (sub select).
5.
Mendukung Views. MySQL mendukung views sejak versi 5.0
6.
Mendukung Stored Prosedured (SP). MySQL mendukung SP sejak versi 5.0
7.
Mendukung Triggers. MySQL mendukung trigger pada versi 5.0
8.
Mendukung Replication.
9.
Mendukung Transaksi.
10. Mendukung Foreign Key. 11. Tersedia fungsi GIS. 12. Free (bebas di download).
38
13. Stabil dan tangguh. 14. Fleksibel dengan berbagai pemrograman. 15. Keamanan yang baik. 16. Dukungan dari banyak komunitas. 17. Perkembangan software yang cukup cepat.
2.2.5.1 Tipe tabel MySQL Tipe tabel otomatis akan dibuat sesuai konfigurasi default server MySQL. Hal ini ditentukan oleh variabel default table type di file konfigurasi MySQL. User juga bisa menentukan tipe tabel yang diinginkan sesuai dengan kebutuhan dalam perancangan database MySQL. Kelebihan yang lain dari MySQL adalah dapat mendefinisikan tipe untuk tiap tabel. MySQL mendukung beberapa tipe tabel, yaitu : 1.
MyISAM Tipe tabel MyISAM merupakan tipe tabel yang sederhana, stabil dan mudah digunakan. Kelebihan utama MyISAM adalah kecepatan dan kestabilannya. Ada beberapa jenis tabel MyISAM, yaitu : a.
MyISAM static, jenis ini digunakan ketika semua kolom dalam tabel didefinisikan dengan ukuran yang pasti (fixed). Dengan kata lain, tidak ada kolom yang memiliki tipe seperti VARCHAR, TEXT dan BLOB. Karena sifatnya yang fixed, maka jenis ini akan lebih cepat, aman dan stabil.
b.
MyISAM dymanic, jenis ini digunakan ketika terdapat kolom dengan tipe yang dinamis, seperti tipe kolom VARCHAR. Keuntungan utama dari jenis ini adalah ukuran yang dinamis. Jadi sifatnya lebih efektif karena ukuran data (file) menyesuaikan isi dari masing-masing kolom (field).
c.
MyISAM Compressed, jenis ini merupakan kompresi dari jenis static dan dynamic yang menghasilkan ukuran lebih kecil. Tabel yang terkompresi tidak dapat dikenakan operasi seperti INSERT, UPDATE dan DELETE.
2.
InnoDB Tipe tabel InnoDB merupakan tipe tabel MySQL yang mendukung proses
39
transaksi. Tipe ini memiliki beberapa keunggulan, antara lain:
3.
a.
Mendukung transaksi antar tabel.
b.
Mendukung row level locking.
c.
Mendukung foreign key constraints.
d.
Crash recovery.
HEAP Tabel dengan tipe HEAP tidak menyimpan datanya di harddisk, tetapi menyimpan di RAM (memori). Tipe tabel ini biasanya digunakan sebagai tabel sementara (temporary). Tabel secara otomatis akan dihapus (hilang) dari MySQL saat koneksi ke server diputus atau server MySQL dimatikan.
4.
BDB Tipe tabel ini mirip tipe tabel InnoDB, namun penggunaannya belum maksimal.
5.
Archieve Tipe ini tersedia sejak MySQL versi 4.1. Tipe ini digunakan untuk menyimpan tabel yang terkompresi, di mana biasanya digunakan dalam proses backup.
6.
CSV Tipe ini digunakan untuk menyimpan data dalam bentuk file text yang dibatasi dengan koma (delimiter). Tipe ini tersedia sejak MySQL versi 4.1.
7.
NDB Table (MySQL Cluster) Tersedia sejak MySQL versi 4.1.
8.
Federated (External Tables) Tipe ini tersedia sejak MySQL versi 5.0.
2.2.5.2 Tipe field MySQL MySQL memiliki cukup banyak tipe data untuk field (kolom) tabel. Tipe field ini menentukan besar kecilnya ukuran suatu tabel. Tipe field di MySQL terbagi menjadi beberapa kelompok, yaitu numerik, string, date dan time, blob dan kelompok himpunan (set dan enum). Masing-masing tipe field memiliki batasan lebar dan ukurannya.
40
Berikut bagian dari beberapa kelompok tipe data MySQL, antara lain : 1.
Tipe data numerik Tipe data numerik digunakan untuk menyimpan data numeric (angka). Ciri utama data numeric adalah suatu data yang memungkinkan untuk dikenai operasi aritmatika seperti pertambahan, pengurangan, perkalian dan pembagian. Tipe field di MySQL yang termasuk ke dalam kelompok tipe numerik seperti pada Tabel 2.1
Tabel 2.1 Tipe data numerik Tipe Data TINYINT
Penggunaan Menyimpan data
Jangkauan
Ukuran
-128 s/d 127
1 byte (8 bit)
-32.768 s/d 32.767
2 byte (16 bit)
Menyimpan data
-8.388.608 s/d
3 byte (24 bit)
bilangan bulat positif
8.388.607
bilangan bulat positif dan negatif SMALLINT
Menyimpan data bilangan bulat positif dan negatif
MEDIUMINT
dan negatif INT
Menyimpan data
-2.147.483.648 s/d
bilangan bulat positif
2.147.483.647
4 byte (32 bit)
dan negatif BIGINT
Menyimpan data
± 9,22 x 1018
8 byte (64 bit)
Menyimpan data
-3.402823466E+38 s/d -
4 byte (32 bit)
bilangan pecahan
1.175494351E-38, 0,
positif dan negatif
dan 1.175494351E-38
presisi tunggal
s/d 3.402823466E+38.
DOUBLE
Menyimpan data
-1.79...E+308 s/d -
(REAL)
bilangan pecahan
2.22...E-308, 0, dan
positif dan negatif
2.22...E-308 s/d
presisi ganda
1.79...E+308
bilangan bulat positif dan negatif FLOAT
8 byte (64 bit)
41
Tipe Data
Penggunaan
Jangkauan
DECIMAL
Menyimpan data
-1.79...E+308 s/d -
(NUMERIC)
bilangan pecahan
2.22...E-308, 0, dan
positif dan negatif
2.22...E-308 s/d
Ukuran 8 byte (64 bit)
1.79...E+308
2.
Tipe data string (text) Tipe data string digunakan untuk menyimpan data string (text). Ciri utama data string adalah suatu data yang tidak memungkinkan untuk dikenai operasi aritmatika seperti pertambahan, pengurangan, perkalian dan pembagian. Berikut ini tipe field di MySQL yang termasuk ke dalam kelompok tipe string seperti pada Tabel 2.2
Tipe data date dan time Tipe data date dan time digunakan untuk menyimpan data tanggal dan waktu. Berikut ini tipe field di MySQL yang termasuk ke dalam kelompok tipe date dan time seperti pada Tabel 2.3
42
Tabel 2.3 Tipe data date dan time Tipe Data DATE
Penggunaan
Jangkauan
Ukuran
Menyimpan data
1000-01-01 s/d 9999-
tanggal
12-31 (YYYY-MM-
3 byte
DD) TIME
Menyimpan data
-838:59:59 s/d
waktu
+838:59:59
3 byte
(HH:MM:SS) DATETIME
Menyimpan data
'1000-01-01 00:00:00'
tanggal dan waktu
s/d '9999-12-31
8 byte
23:59:59' YEAR
Menyimpan data
1900 s/d 2155
1 byte
tahun dari tanggal
4.
Tipe data BLOB (Biner) Tipe data blob digunakan untuk menyimpan data biner. Tipe ini biasanya digunakan untuk menyimpan kode-kode biner dari suatu file atau object. BLOB merupakan singkatan dari Binary Large Object. Berikut ini tipe field di MySQL yang termasuk ke dalam kelompok tipe blob seperti pada Tabel 2.4 Tabel 2.4 Tipe data BLOB Tipe Data
5.
Penggunaan
Jangkauan
BIT
Menyimpan data biner (sejak versi 5.0.3)
64 digit biner
TINYBLOB
Menyimpan data biner
255 byte
BLOB
Menyimpan data biner
216 - 1 byte
MEDIUMBLOB
Menyimpan data biner
224 - 1 byte
LONGBLOB
Menyimpan data biner
232 - 1 byte
Tipe data himpunan Tipe data di MySQL mungkin akan terus bertambah seiring dengan perkembangan versi MySQL. Berikut ini beberapa tipe data tambahan MySQL yang di kelompokan ke tipe data himpunan seperti Tabel 2.5
43
Tabel 2.5 Tipe data himpunan Tipe Data SET
Penggunaan
Jangkauan
Combination (himpunan data)
Sampai dengan 255 string
ENUM
Enumerasi (kumpulan data)
Sampai dengan 65.535 string
2.2.5.3 Merancang database MySQL Rancangan database yang sesuai sangat menentukan suatu aplikasi yang efektif, efisien, dan baik. Ada beberapa aturan dalam merancang suatu database yang perlu untuk diperhatikan dan berlaku juga pada database MySQL. Beberapa aturan merancang database yang baik, antara lain : 1.
Tabel dalam database tidak boleh mengandung record (data) ganda, atau dengan kata lain tidak boleh ada redudancy data. Jika terdapat data yang sama, maka perlu dilihat kembali rancangan tabelnya.
2.
Setiap tabel dalam database harus memiliki field yang unik. Field ini disebut sebagai primary key.
3.
Tabel harus sudah normal.
4.
Besar atau ukuran database hendaknya dibuat seminimal mungkin. Hal ini ditentukan oleh pemilihan tipe data yang tepat.
5.
Merancang database hendaknya memperhatikan apakah rancangan dapat menampung data (record) sesuai yang dibutuhkan oleh aplikasi. Penamaan identifier yang perlu diperhatikan antara lain :
1.
Penamaan
identifier
(database,
tabel,
kolom)
di
MySQL
bersifat
casesensitive. Penamaan identifier hendaknya konsisten untuk semua tabel dalam suatu database dan dapat menggunakan model lower case atau UPPER CASE. 2.
Nama database, tabel dan kolom maksimal 64 karakter.
3.
Hindari penggunaan karakter khusus, seperti üàû, karena bisa bermasalah dalam sistem operasi yang lain.
4.
Pilih nama untuk field yang mencerminkan isi dari data yang disimpan.