Postingan ini akan menjadi awal bagi perjalanan panjang saya membangun aplikasi untuk pelayanan rental mobil. Sekalian nyicil nyicil nyari inspirasi untuk skripsi saya nanti kali yaaa? Hehehehe
Kalo kalian mengikuti course yang diadakan oleh Build With Angga, pasti kalian pernah belajar tentang membangun ERD (Entity Relationship Database) dimana ia akan menjadi rancangan awal untuk menentukan data data yang akan diproses.
ERD juga mengarahkan kita kapan kita harus menggunakan fungsi hasMany dan belongTo di Laravel.
Namun sebenarnya apa sih ERD itu?
Apa Itu ERD?
An Entity Relationship (ER) Diagram is a type of flowchart that illustrates how “entities” such as people, objects or concepts relate to each other within a system. ER Diagrams are most often used to design or debug relational databases in the fields of software engineering, business information systems, education and research
Tipe flowchart yang mengilustrasikan bagaimana entitas seperti orang orang, objek, konsep yang berhubungan satu sama lain di dalam sistem.
Dengan ERD kita memungkinkan untuk menentukan terlebih dahulu jenis jenis data yang akan kita proses, apakah ia integer, string, text atau file. Yang mana hal ini akan memudahkan kita untuk memprogramnya di dalam framework/bahasa pemograman yang akan kita pakai
Lalu bagaimana cara memulainya?
Cara Membuat ERD?
Kita bisa menggunakan LucidChart untuk membuat ERD. Karena aplikasi ini menyediakan segala tools, alat, dan perlengkapan untuk membuat diagram apapun, tak hanya ERD saja
Untuk memulainya kalian bisa mendaftar disini
Lalu kalian bisa klik New dan pilih Create from Template
Setelah itu ketikkan ERD di kolom pencarian dan pilih DBMS ER diagram
Fitur Aplikasi Rental Mobil
Karena saya ingin membuat aplikasi rental mobil dengan fitur seperti berikut
Sisi User:
- menentukan tujuan Dari/Ke,
- Menampilkan List Mobil yg ready (Beserta Merk, BBm, harga sewa)
- Kolom Nego (Admin yg mengatur)
- Tombol Daftar (Akan Dijelaskan lebih Lanjut)
Sisi Admin:
- Bisa Input > merk, mobil, bahan bakar, harga sewa (harian/minggu/bulan)
- Melihat/mengatur/ Pesanan, harga, ketersedian unit, Dll.
Note: Memakai PG Xendit/Midtrans
Maka saya akan membuat tiga table. Yaitu untuk sisi User (pengguna), Mobil dan Order.
Table User
akan berisi data data yang perlu dimasukkan dari sisi User, mulai dari email, username, password, alamat dan nomer hape. Selebihnya ketika User ingin membuat Order, semua itu akan dimasukkan kedalam Table Order
Table Order
table ini akan berisi data data pesanan/transaksi yang dilakukan oleh User namun tetap akan bisa dibaca juga oleh sisi Admin. Order ini akan berisi titik keberangkatan, titik tujuan, lokasi keberangkatan, lokasi tujuan, mobil yang dipesan, id pengguna, dan id admin
Table Car
table ini akan berisi data data mobil mulai dari harga, nama, tipe, dan bensin yang diperlukan.
Relasi Database
Khusus untuk table Order kita membutuhkan foreign key. Foreign Key inilah yang menjadi representasi atau id yang mewakili id data tertentu sehingga kita bisa tahu manakah (katakan) data yang ingin dibutuhkan
Saya akan memberikan gambaran. Misalnya, kalian adalah seorang mahasiswa, dengan segala identitas yang lengkap. Mulai dari bentuk mata, bentuk, kaki, bentuk, telinga yang tak bisa ditiru oleh siapapun. Lalu kalian ingin mengikuti kelas dengan seorang dosen. Cara agar dosen kalian tidak tertukar dengan dosen lainnya adalah dengan mengenal dosen kalian sebenarnya dari segi perawakannya. Nah, perawakan dosen kalian ini (kalo dalam database design) direpresentasikan atau ditandai dengan id, id ini adalah angka yang tidak boleh sama. Maka dari itu sebagian ada yang menyebutnya sebagai primary key jika itu dalam tablenya sendiri, namun jika di table data yang lain, disebut foreign key
Bagaimana sudah faham?
Diagram Aplikasi Rental Mobil
Ingat, carId, userId, adminId pastikan memiliki relasi One To Many. Artinya ia adalah table yang bisa terhubung dengan banyak data, namun tidak sebaliknya
Contohnya adalah ketika User memiliki Order, hal ini memungkinkan user memiliki lebih dari satu. Namun tidak untuk sebaliknya, orderan tidak bisa dimiliki lebih dari satu orang.
Begitu pula, ketika Orderan memiliki data mobil. Order bisa saja memiliki lebih dari satu mobil (khusus case kali ini tidak) namun tidak bisa sebaliknya. Satu mobil tidak bisa dipesan oleh lebih dari satu pesanana/transaksi
Perbedaan One To Many dan One To One
One To Many, ketika satu tabel bisa terhubung dengan lebih dari satu tabel. Namun tidak sebaliknya
One To One, ketika satu tabel hanya bisa terhubung pada satu tabel saja. Ini merupakan anti-tesis atau kebalikan dari relasi One To Many
Biasanya kita menggunakan fungsi tertentu bawaan Laravel atau framework lainnya untuk menggunakan kedua relasi diatas. Contohnya pada Laravel, kita menggunakan fungsi bernama hasMany() untuk One To Many dan belongTo() untuk One To One
Kalo kalian juga ingin belajar bersama untuk membangun aplikasi Rentride ini, kalian bisa berdiskusi bersama saya lewar discord. Linknya disini
Terimakasih sebelumnya sudah berbagi informasi. Kegunaan membuat ERD itu hanya untuk membuat database saja ya bang, atau sekalian membuat aplikasinya ya? Rencana saya juga ingin membuat aplikasi untuk situs saya di Kompas Jateng Update dan CALYA CARE .
ReplyDeleteiya cuman buat relasi databasenya aja. dari tabel2 database yang udah dibuat nanti itu jadi bahan/tumpuan buat bikin fitur2 lain. contoh user, admin, items, transaction, dll
Deleteokay bang, terimakasih atas jawabannya.. informasinya sangat bermanfaat...
Delete