Skip to main content

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

  1. 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 .

    ReplyDelete
    Replies
    1. iya 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

      Delete
    2. okay bang, terimakasih atas jawabannya.. informasinya sangat bermanfaat...

      Delete

Post a Comment

Popular posts from this blog

Cara Mengatasi Missing Value Pada Dataset

  Ketika kita ingin mengolah data untuk menjadi sebua model machine learning, maka data yang harus disajikan harus bersih dari field field kosong. Biasanya kita akan menjumpai filed field bernilai NaN yang artinya field tersebut kosong atau tak diketahui. Ini sangat berpengaruh hasil model data kita Inilah yang disebut Missing Value. Nilai yang hilang dari beberapa baris dataset Cara Mengetahui Bahwa Dataset Kita Terdapat Missing Value? Cara termudah adalah dengan menggunakan method method yang tersedia oleh package Pandas Dengan Pandas, tak hanya kita bisa mengetahui dataset terdapat Missing Value atau tidak, kita bisa mencari mean, median dan modus, mengisikan data data yang kosong tersebut, dan melihat hasil data tersebut dari beberapa range tertentu Pandas juga bisa membantu kita untuk memeriksa apakah dataset kita memiliki data yang kosong. Tak mungkinkan kita melihat satu persatu ratusan atau ribuan data. Maka dari itu kita membutuhkan method yang dikerjakan oleh python dalam pa

Cara Mengatasi Hang/Freeze Pada Laptop Asus TUF Gaming

  Ada beberapa kendala ketika membeli laptop. Seperti ada aplikasi yang tidak kompaktibel, ada yang hardwarenya crashed, dan bahkan memang harus dibawa ke manufakturnya untuk diktukar karena ada barang yang kita beli adalah miss saat quality control Terlepas dari semua kendala tersebut. Saya akan memberikan sekedar solusi yang bisa menjadi manfaat jika permasalahan itu sama dengan kalian. Yaitu, laptop yang suka freeze, hang, saat kita operasikan Sedikit Cerita Saya belum ada setahun menggunakan laptop Asus varian Tuf Gaming ini. Namun saat beberapa minggu pertama saya mencobanya, ada beberapa kendala yaitu laptop sering hang dan freeze tanpa sebab. Ini terjadi secara tiba tiba. Dan seumpamam saya bawa lagi ke outlet laptop ini berasal, saya gak bisa memberikan alasan yang jelas kenapa laptop ini bisa freeze dan hang. Karena memang terjadi tiba tiba saja.  Hingga beberapa bulan selanjutnya, laptop ini semakin sering hang. Baru beberapa menit dipakai freeze, saya force shut down lewat t

Kupas Tuntas Seputar Agile Dan Contoh Penerapannya

  Startup, perusahaan digital, atau bahkan programmer yang sedang melayani clientnnya untuk mengerjakan sebuah aplikasi memiliki metode.  Metode ini menjadi panduan baku yang kerap digunakan dimananpun dalam pengemabangan produk digital Lebih mudahnya saat kita membangun aplikasi mobile. Kita akan mempelajari bahasa pemograman apa saja yang dibutuhkan, juga serba serbi framework dan tool yang memudahkan segala prosesnya Metode yang baru saja saya ceritakan diatas dinamakan Agile . Sedangkan project yang menerapkan konsep tersebut dinamakan, Agile Project Apa Itu Agile dan Agile Project? Menurut Wikipedia .  Sekumpulan praktek yang bertujuan untuk menaikkan keefeketifan pengembangan suatu aplikasi secara profesional, tim dan terorganisir. Agile melibatkan pengembangan solusi melalui usaha secara kolaboratif dari sifat yang sudah terorganisir, fungsionalitas dan pelanggan Metode ini sangat mengandalkan kolaborasi. Mulai dari para engineer hingga product manager, semuanya harus melalui s