PEMODELAN DATA PADA MOBILE PAYMENT INFORMATION SYSTEM OF THE SPORT HALL CENTRE Emi Suryadi 1, Mutamassikin 2, Rosyid Hanif Fauzi 3 1 Masiswa Magister Tehnik Informatika, STMIK AMIKOM, Yogyakarta 2 Masiswa Magister Tehnik Informatika, STMIK AMIKOM, Yogyakarta 3 Masiswa Magister Tehnik Informatika, STMIK AMIKOM, Yogyakarta 1 emisuryadi@gmail.com, 2 iqinshinoda@gmail.com, 3 arrasyid26@gmail.com Abstrak Database dapat membantu untuk menyimpan data atau informasi yang bila mana data atau informasi tersebut di perlukan dapat di ambil lagi. Data atau informasi yang dimiliki oleh mobile payment information system of the sport hall centre memberikan jenis penawaran tentang kegiatan-kegiatan olah raga. Pemodelan database pada kasus ini memiliki constraint check untuk memberikan batasan data yang di inputkan, sehingga data-data yang diinputkan pada tabel di database dapat memfilter data-data yang tidak sesuai dengan constraint check yang diberikan pada data tersebut. Kemampuan database untuk melakukan filtering setiap data itu merupakan sebuah struktur yang baik dan benar untuk penerapan constraint check pada setiap tabel di database. Struktur yang dimiliki oleh constraint check diantaranya adalah primary key, foreign key, not null dan unique. Setiap ke empat struktur tersebut memiliki fungsi masing-masing sehingga dengan begitu tigkat keakuratan data yang diinputkan oleh pengguna juga semakin baik. Kata kunci : Database, Constraint Check, Primary Key, Foreign Key, Not Null dan Unique 1. Pendahuluan Perkembangan teknologi informasi saat ini sudah sangat maju jika dibandingkan dengan teknologi zaman dulu. Tidak heran teknologi saat ini sudah bisa memberikan kemudahan dalam melakukan kegiatan. Kegiatan-kegiatan yang dilakukan saat ini pun sudah dapat dilakukan dengan cara online. Berbagai aplikasi yang dapat memberikan jasa online untuk memesan (booking) kegiatan yang diinginkan pengguna salah satunya dengan menggunakan aplikasi Mobile payment information system of the sport hall centre. Mobile payment information system of the sport hall centre merupakan sebuah aplikasi informasi yang mana aplikasi ini digunakan untuk mendapatkan sebuah data atau informasi mengenai penyewaan tempat kegiatan. Kemudahan yang dimiliki dari aplikasi ini juga akan berpengaruh kepada data atau informasi pengguna yang semakin hari semakin banyak yang tertampung di dalam aplikasi teresebut, untuk mengatasi hal tersebut dapat dilakukan dengan menggunakan teknologi database. Database didefinisikan sebagai kumpulan data yang terintegrasi dan diatur sedemikian rupa sehingga data tersebut dapat dimanipulasi, diambil, dan dicari secara cepat (Raharjo, 2011:3).[1]. Selain berisi data, database juga berisi metadata. Metadata adalah data yang menjelaskan tentang struktur dari data itu sendiri. Sebagai contoh, dapat memperoleh informasi tentang nama-nama kolom dan tipe data yang ada pada sebuah tabel. Data nama kolom dan tipe yang ditampilkan tersebut disebut metadata (Raharjo,2011:4). 2. Tujuan Penelitian Tujuan penelitian yang penulis lakukan, yakni menganalisis data-data yang ada di Mobile centre. Hasil dari analisis tersebut dapat memberikan tipe data, constraint check dan optimasi query yang baik dan bener menurut penulis. 3. Identifikasi Masalah Adapun identifikasi masalah dalam kasus ini adalah bagaimana menerapkan pemodelan data yang baik dan benar, sehingga data atau informasi yang diterapkan di database tidak terjadi kesalahan. 4. Hasil Dan Pembahasan Sebelum membahas tentang tipe data, constraint check dan optimasi query yang dimiliki oleh Mobile payment information system of the sport hall centre. berikut akan diberikan ERD (Entity Relationship Diagram) sebagai berikut. 258
b. Menentukan Entitas Setelah langkah pertama didapatkan kemudian melakukan identifikasi entitas data yang dibutuhkan, entitas adalah penggambaran sebuah objek nyata. Entitas-entitas yang dibutuhkan dalam kasus perancangan basis data Mobile centre didapat 16 buah entitas: 1. Member 2. Admin 3. Trainer 4. Program 5. Kelas 6. Kelas_member 7. Fasilitas 8. Jadwal_program 9. Jadwal_fasilitas 10. Booking_kelas 11. Booking_fasilitas 12. Pembayaran_kelas 13. Pembayaran _fas 14. Complain_form 15. Berita_event 16. Bank Gambar 1. ERD Mobile payment information system of the sport hall centre Keterangan : * = Primary key ** = Foreign Key Hasil dari ERD Gambar 1 di atas dapat memberikan gambaran entity dan atribut-atribut yang dimiliki oleh Mobile payment information system of the sport hall centre. Entity yang didapatkan dapat dikelola dengan menggunakan beberapa mekanisme dalam pemodelan data, diantaranya adalah. a. Analisis Persyaratan Langkah pertama dalam mendesain model data adalah melakukan analisis persyaratan yaitu nantinya di dalam sebuah aplikasi database dapat memahami dan mengetahui data yang harus disimpan di dalam database, aplikasi apa yang harus dibangun di atasnya, dan jenis operasi apa yang lebih banyak digunakan, dan subjek untuk melakukan persyaratan yang ada. c. Menentukan Primary Key (Kunci Utama) Menentukan Primary Key pada masingmasing entitas. Primary Key adalah atribut pada entitas yang bersifat unik. Jadi setiap entitas hanya memiliki satu Primary Key saja. Dan Primary key dari setiap entitas adalah program (id_program), kelas (id_kelas), booking_kelas (id_bookingkelas), member (id_member), booking_fasilitas (id_bookingfasilitas), fasilitas (id_fasilitas), pembayaran_kelas (id_pembkelas), pembayaran_fas (id_pembfas), admin (id_admin), berita_event (id_event), complain_form (id_complain), trainer (id_trainer), bank (id_bank). d. Foreign Key adalah Primary Key yang ada dalam Entitas yang lain. Dan Primary Key dari beberapa entitas adalah jadwal_program (id_kelas, id_trainer), pembayaran_kelas (id_bookingkelas), pembayaran_fas (id_bookingfas), kelas (id_program), booking_fasilitas (id_member, id_fasilitas), jadwal_fasilitas (id_member, id_fasilitas), booking_kelas (id_member, id_kelas) dan kelas_member (id_member, id_kelas). Setelah didapat semua antara entitas, relasi antar entitas, foreign key dan primary key maka pemodelan data secara skema konseptual dapat dihasilkan dengan menggabungkan bermacammacam kebutuhan user dan secara langsung membuat skema pemodelan basis data atau dengan merancang skema-skema yang terpisah dari kebutuhan tiap-tiap user dan kemudian menggabungkan skema-skema tersebut. 259
Menggunakan Entity Relationship Diagram (ERD) untuk menggambarkan hubungan secara logika antar entitas yang terlibat pada suatu sistem pemodelan basis data dalam membuat Mobile centre dan telah dijelaskan pada Gambar 1. Entity yang dihasilkan pada aplikasi ini memiliki enam belas entity yang mana setiap entity tersebut memiliki atribut masing-masing. Setiap entity tersebut terhubung dengan entity yang lain melalui relasi yang di gambar pada Gambar 2 di bawah ini. Gambar 2. Relasi Tabel Relasi yang dihasilkan dari Gambar 2 di atas ini dikarenakan tabel satu memiliki primary key dan foreign key yang saling berkaitan dengan tabel yang lainnya. Constraint Check Constraint Check yang diterapkan penulis bertujuan untuk memberikan perintah query agar setiap data memiliki type data dan setiap type data tersebut memiliki ukuran atau kapasitas data yang bisa tertampung di dalam data tersebut, jika kalau melebihi ukuran data tersebut di inputkan oleh pengguna maka data yang di inputakan tersebut akan error atau tidak sepenuhnya data tersebut masuk kedalam tabel database. Untuk memperjelas constraint check yang dimiliki oleh Mobile payment information system of the sport hall centre dapat dilihat sebagai berikut. create table member ( id_member char (6) unique not null, nama_member varchar (25) not null, jenis_kelamin char (1) check (jenis_kelamin = 'L' OR jenis_kelamin = 'P'), umur int not null check (umur >= 17), alamat varchar (25) default 'belum lengkap' not null, kecamatan varchar (25), kabupaten varchar (25), kota varchar (25), kode_pos char (5), email varchar (25) not null, password varchar (25), primary key (id_member) Pada tabel member, terdapat beberapa constraint yaitu id_member hanya diberikan panjang karakter sebanyak 6 dan bersifat unique yang berarti tidak boleh ada kesamaan id_member serta not null yang berarti wajib diisi ketika menginputkan data. nama_member dan email juga bersifat not null. Jenis_kelamin mempunyai constraint check berupa penulisan yang diatur oleh hurup L atau P. L berarti laki-laki, P berarti Perempuan. Umur diberikan constraint check berupa umur harus lebih atau sama dengan 17 tahun. Jika salah satu dari syarat-syarat tersebut tidak terpenuhi, maka akan terjadi error. Contoh input error ada pada nomor 2 di bawah ini. insert into member values ( 'MU0012', 'Mumhammad Abdullah', 'L', '21', 'Jl. Semangka no.3', 'Melati', 'Bantul', 'Yogyakarta', '55881', 'abduljakarta@gmail.com', 'abdullah012' insert into member values ( 'MU00128', 'Mumhammad Abdi', 'laki-laki', '21', 'Jl. Semangka no.10', 'Melati', 'Bantul', 'Yogyakarta', '55774', 'abduljkt@gmail.com', 'abdullah'-- ERROR -- Sedangkan untuk tabel trainer dapat dilihat query nya sebagai berikut. create table trainer ( id_trainer char (6) unique not null, nama_trainer varchar (25) not null, no_hp varchar (12) not null, email varchar (25), jenis_kelamin char (1) check (jenis_kelamin = 'L' OR jenis_kelamin = 'P'), tanggal_lahir date, alamat varchar (25) default 'belum lengkap' not null, kecamatan varchar (25), kabupaten varchar (25), kota varchar (25), kode_pos char (5), pendidikan varchar (25), pengalaman varchar (25), no_rek char (16), nama_bank varchar (10), an_rek varchar (25), primary key (id_trainer) Pada tabel trainer, terdapat beberapa constraint check yaitu id_trainer unique dan not null. nama_trainer, no_hp juga bersifat not null. Jenis_kelamin dibatasi hanya satu karakter saja untuk minimalisasi. Jika salah satu dari syarat tersebut tidak dipenuhi, maka akan terjadi error. insert into trainer values ( 'TUC001','Dina Pramita','085684297457','dinapramita@gmail.co 260
m','p','02-13-1985','jl. Mangga no.6', 'Mawar', 'Bantul', 'Yogyakarta', '55776','S1 Olahraga','trainer senam sanggar','16273816392', 'bca', 'dina pramita' insert into trainer values ( 'TUC005','Sofyan','08568425839','sofyan@gmail. com','laki-laki','sleman','02-21-1985', 'Jl. Mangga no.6', 'Mawar', 'Bantul', 'Yogyakarta', '55776','S1 Olahraga','trainer senam sanggar','18205794592', 'bri', 'sofyan' --ERROR-- Sedangkan untuk tabel program dapat dilihat struktur query nya sebagai berikut. create table program ( id_program char (6) unique not null, nama_program varchar (25) not null, biaya int, primary key (id_program) Untuk menambahkan data ke dalam tabel program dapat dilihat di bawah ini. insert into program values ( 'PUC001','Aerobic','200000', 'per bulan' Sedangkan untuk tabel fasilitas query nya dapat dilihat di bawah ini. create table fasilitas ( id_fasilitas char (6) unique not null, nama_fasilitas varchar (25) not null, biaya int, primary key (id_fasilitas) Menambahkan data pada tabel fasilitas di atas menggunakan query sebagai berikut. insert into fasilitas values ( 'FUC001','Kolam Renang','500000','sewa per hari. seluruh area kolam renang' Tabel kelas memiliki query sebagai berikut. create table kelas ( id_kelas char (6) unique not null, nama_kelas varchar (25) not null, id_program char (6) not null, jumlah_member int, primary key (id_kelas), foreign key (id_program) references program (id_program) Untuk menginputkan data kelas ke dalam tabel kelas dengan cara. insert into kelas values ( 'KUC001','Kelas Renang Pagi Dewasa','PUC002','15' insert into kelas values ( 'KUC005','Kelas Renang Sore Dewasa','PUC005','15' --ERROR-- Untuk tabel jadwal_fasilitas diberikan query nya sebagai berikut. create table jadwal_fasilitas ( id_fasilitas char (6) not null, id_member char (6) null, nama_penyewa varchar (25), no_hp char (12) not null, tanggal date, jam time, foreign key (id_fasilitas) references fasilitas (id_fasilitas), (id_member) Query untuk menginputkan data pada tabel jadwal_fasilitas dapat dilihat seperti berikut ini. insert into jadwal_fasilitas values ( 'FUC002','MU0015','Ahmadi Surya','08164827493','05-25-2015','15:00' insert into jadwal_fasilitas values ( 'FUC004','MU0018','Feri','08173829483','06-04- 2015','14:00' --ERROR-- Tabel jadwal_program query nya sebagai berikut. create table jadwal_program ( id_kelas char (6) not null, id_trainer char (6) not null, tanggal date, jam time, foreign key (id_kelas) references kelas (id_kelas), foreign key (id_trainer) references trainer (id_trainer) Sintak query untuk menambahkan data pada tabel jadwal_program dapat dilihat di bawah ini. insert into jadwal_program values ( 'KUC001','TUC002','05-21-2015','08:00' Tabel kelas_member query seperti di bawah ini. create table kelas_member ( id_member char (6) not null, id_kelas char (6) not null, (id_member), foreign key (id_kelas) references kelas (id_kelas) Penginputan data pada tabel kelas_member query nya sebagai berikut. insert into kelas_member values ( 261
'MU0012','KUC001' Berikut tabel booking_kelas, querynya sebagai berikut ini. create table booking_kelas ( id_bookingkelas char (6) unique not null, id_member char (6) not null, id_kelas char (6) not null, tgl_book date, jam_book time, statuspemb char (1) not null check (statuspemb = 'P' OR statuspemb = 'L'), primary key (id_bookingkelas), (id_member), foreign key (id_kelas) references kelas (id_kelas) Perintah untuk menambahkan data pada tabel booking_kelas dapat dilihat di bawah ini. insert into booking_kelas values ( 'BK0001','MU0012','KUC001','05-01- 2015','09:00','L' Pada tabel bank query nya sebagai berikut create table bank ( id_bank varchar (6) unique not null, no_rek char (16) not null, nama_bank varchar (10), an_rek varchar (25) not null, primary key (id_bank) Untuk menambahkan data pada tabel bank dapat dilihat sebagai berikut. insert into bank values ( 'BA0001', '7283918273819203', 'bca', 'stevia' Sedangkan query tabel pembayaran_kelas dapat dilihat sebagai berikut. create table pembayaran_kelas ( id_pembkelas char (6) unique not null, id_bookingkelas char (6) not null, tanggal_konf date, dibayar int, id_bank varchar (6) not null, primary key (id_pembkelas), foreign key (id_bookingkelas) references booking_kelas (id_bookingkelas), foreign key (id_bank) references bank (id_bank) Untuk menambahkan data pada tabel pembayaran_kelas dengan cara. insert into pembayaran_kelas values ( 'PK0001','BK0001','05-03- 2015','150000','BA0001', 'LUNAS' Sintak query dari tabel booking_fasilitas dapat dilihat sebagai berikut. create table booking_fasilitas ( id_bookingfas char (6) unique not null, id_member char (6) null, id_fasilitas char (6) not null, tgl_book date, jam_book time, statuspemb char (1) not null check (statuspemb = 'P' OR statuspemb = 'L'), primary key (id_bookingfas), (id_member), foreign key (id_fasilitas) references fasilitas (id_fasilitas) Perintah untuk menambahkan data pada tabel booking_fasilitas seperti berikut. insert into booking_fasilitas values ( 'BF0001','MU0015','FUC004','05-05- 2015','08:00','L' Untuk melihat query yang dimiliki oleh pembayaran_fas dapat dilihat di bawah ini. create table pembayaran_fas ( id_pembfas char (6) unique not null, id_bookingfas char (6) not null, tanggal_konf date, dibayar int, id_bank varchar (6) not null, primary key (id_pembfas), foreign key (id_bookingfas) references booking_fasilitas (id_bookingfas), foreign key (id_bank) references bank (id_bank) Penambahan data pada tabel pembayaran_fas dapat dilakukan dengan cara. insert into pembayaran_fas values ( 'PF0001','BF0001','05-07- 2015','1200000','BA0001','LUNAS' Sedangkan pada tabel complain_form query yang diberikan sebagai berikut. create table complain_form ( id_complain char (6) unique not null, isi_complain text, email varchar (25), tanggal_complain datetime, primary key (id_complain) Menambahkan data pada tabel complain_form dapat dilakukan seperti di bawah ini. insert into complain_form values ( 'C00001','jalfla kalnaksnd knlanfkla jakmk','hello@gmail.com','05-12-2015' 262
Sedangkan pada tabel berita_event dapat dilihat sebagai berikut. create table berita_event ( id_event char (6) not null, nama_event varchar (25) not null, isi_event text, tanggal_event datetime, primary key (id_event) Pemambahan data pada tabel berita_event dapat dilakukan seperti di bawah ini. insert into berita_event values ( 'BE0001','lomba renang anak','event lomba renang anak-anak','05-28-2015' Sedangkan pada tabel admin query yang diberikan sebagai berikut. create table admin ( id_admin varchar (6) unique not null, username varchar (25) unique not null, password varchar (25) not null, nama_admin varchar (25), email varchar (25), level char (1), primary key (id_admin) Sedangkan untuk menambahkan data pada tabel admin dapat dilakukan seperti berikut ini. insert into admin values ( 'EI0091','suryadi','bergadang ','Emi Suryadi', 'emisuryadi@gmail.com', '1' Hasil contraint check yang diberikan penulis di atas sudah cukup baik dan benar bila mana diterapkan untuk membuat database pada kasus yang berbeda. Adapun hasil analisis rancangan basis data dari penilain beberapa aspek diantaranya adalah: a. Aspek Kebenaran Database yang baik harus mampu memfilter data sehingga data yang dimasukkan melalui interface apapun dapat diseleksi. Constraint check untuk memfilter telah digunakan database ini. Contohnya pada tabel member dan tabel trainer. b. Aspek Konsistensi Konsistensi data merupakan aspek teknik, apakah semua aspek dalam model terbebas dari kontradiksi atau tidak. Konsistensi data dalam suatu database merupakan hal yang mutlak. Adanya perbedaan isi data pada suatu kolom atau kumpulan kolom dengan maksud yang sama dalam satu tabel dengan tabel yang lain tidak diperbolehkan. c. Aspek Relevansi Aspek relevansi merupakan aspek teknik, apakah aspek-aspek teknik pada tabel relevan digunakan. Aspek relevansi ini untuk mengetahui apakah ada tabel yang tidak relevan dengan tabel yang lainnya. Pada database ini terdapat satu tabel yang tidak relevan dengan tabel yang lain. Yaitu tabel admin, berita_event, dan complain_form. Tabel admin ini dapat dikembangkan melalui program. Sehingga dapat lebih dikembangkan di masa yang akan datang. d. Aspek Tingkat Detail Tingkat detail merupakan aspek teknik, Apakah tingkat detail tabel sesuai. Apakah memenuhi semua kebutuhan para penggunanya atau belum. Dengan menggunakan kepakaran teknik untuk menentukan tingkat detail yang diinginkan dan membandingkannya dengan tabel. Tabel database ini belum mampu memenuhi kebutuhan pengguna, hal ini terjadi karena tabel yang kurang detail. e. Aspek Kelengkapan Aspek kelengkapan ini untuk mengetahui apakah tabel telah lengkap sesuai kebutuhan pengguna. Pengukuran dilakukan dari aspek jangkauan dan tingkat detail. Dari database ini belum terdapat penggunaan trigger dan function. Baru sebatas constraint saja. f. Aspek Minimalitas Aspek minimalitas ini untuk mengetahui apakah tabel dimodelkan secara kompak dan tidak ada perulangan. Hal ini penting karena tabel konseptual harus tepat. Dengan mengecek apakah terdapat aspek-aspek yang dimodelkan secara berulang atau tidak. Aspek minimalitas telah diterapkan dalam database ini yaitu pada pemberian constraint check sebagai berikut: jenis_kelamin char (1) check (jenis_kelamin = 'L' OR jenis_kelamin = 'P') statuspemb char (1) not null check (statuspemb = 'P' OR statuspemb = 'L') 5. KESIMPULAN Hasil penelitian yang dilakukan pada mobile centre penulis menyimpulkan bahwa, Constraint check yang diterapkan pada kasus ini sudah baik dan benar dikarenakan setiap tabel mampu melakukan filtering jika terjadi pengiputan data yang tidak sesuai dengan constraint check pada setiap tabel di database. 263
DAFTAR PUSTAKA [1] Raharjo, Budi 2011. Belajar Otodidak membuat Basisdata mengunakan MySQL. Infomatika. Bandung. [2] Indrajani 2014, Database System Case Study All in One. PT.Elex Media Komputindo. Jakarta. [3] Andi Sunyoto, Pemrograman Database dengan Delphi7.0 dan Microsoft SQL, Andi Offset. Yogyakarta, 2007. 264