Cara Membuat ERD Untuk Aplikasi Web Rental Mobil

 


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:

  1. menentukan tujuan Dari/Ke,
  2. Menampilkan List Mobil yg ready (Beserta Merk, BBm, harga sewa)
  3. Kolom Nego (Admin yg mengatur)
  4. Tombol Daftar (Akan Dijelaskan lebih Lanjut)

Sisi Admin:

  1. Bisa Input > merk, mobil, bahan bakar, harga sewa (harian/minggu/bulan)
  2. 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

Kurang lebih dari table table yang saya butuhkan diatas akan saya gamabarkan seperti dibawah


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


Comments

Video Baru!