Powered by Blogger.
facebook twitter instagram pinterest bloglovin Email

Yasya Indra Blog

Éclairage et ingénierie

 


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


Share
Tweet
Pin
Share
3 comments

 


Bagi yang sudah belajar bahasa pemograman seperti Javascript, Python, atau PHP. Membuat variabel yang bertipe data array tentu sangat mudah. Hanya dengan beberapa baris kode, kita bisa menyimpan beberapa tipe data variable, seperti string, integer, array, bahkan function

Namun ada sebagaian bahasa pemograman yang dapat melakukan lebih dari itu semua. Java adalah bahasa pemograman yang menjadikan pengelolaan tipe data array atau tipe data sejenisnya menjadi lebih luas dan termanage

Bayangkan saja sebelum kalian membuat array, kalian harus menentukan apa tipe datanya dan array tersebut tidak bisa terdiri data yang tipenya campur

Ini sangat melelahkan. Namun disisi lain, ini akan sangat bermanfaat dan memudahkan kita apabila terdapat bug atau error yang terjadi.

Kita bisa mengelola tipe data dalam array ini di Java lebih advance karena terdapat beberapa fitur yang tersimpan dalam Interface bawaan. 

Fitur tersebut benama Java Collection

Apa Itu Java Collection?

Sesuai namanya, fitur Java ini adalah sebuah fitur yang terdiri dari beberapa Interface dan Class Class turunannya yang berfungsi untuk menyusun, mengatur, beberapa tipe data array dan sejenisnya

Saya sebut sejenisnya karena memang banyak sekali tipe data yang serupa tapi tak sama dalam Java ini

Contohnya,  List, Set, Queue, Deque, Map, dan lain sebagainya

Meskipun pada akhirnya semua tipe data ini digunakan untuk menyimpan data, namun tetap saja ada perbedaan. 

List adalah tipe data yang mirip sekali dengan array. Dimana ia menyimpan data dan setiap datanya memiliki urutan index yang dimulai dari 0.

Set, adalah tipe data yang mirip dengan array, namun bedannya ia tidak memiliki urutan index dan ia tidak mau menyimpan data yang sama

Kali ini saya akan memperagakan bagaimana cara membuatnya

Pertama buat CobaCollectionApp dan package berisi data. Package ini akan berisi class class yang akan kita gunakan

Lalu tuliskan kode ini

Jika Collection dan ArrayList memunculkan warna merah, maka tekan Alt-Enter untuk mengimport classnya

Menambah Data

Sebenarnya membuat list cukup sampai disini. Namun ia mempunyai fitur fitur lain yang bermanfaat saat kita membuat program. Seperti menambah, menghapus, dan menambah data secara masif

caranya dengan menuliskan .add setelah nama variable arraynya


Menghapus Data

Kita bisa menggunakan remove dan memasukkan data yang ingin ditambahkan sebagai parameter, dan removeAll untuk menghapus data lebih dari satu. Jangan lupa untuk menjadikan data data tersebut menjadi array dengan Arrays.asList(e)

Mengecek Isi Data

Kita juga mengecek apakah data berada di dalam array dengan perintah .contains. Contains akan mengembalikan data berupa boolean.




Share
Tweet
Pin
Share
No comments

 


Ada hal menarik saat saya belajar pemograman dengan konsep OOP di Java, yaitu seputar Abstraction dan Interface

Kenapa kedua hal ini menarik karena mereka serupa tapi tak sama. Barang kali postingan ini akan mengelaborasikannya lebih lanjut dibawah ini

Pastikan sebelumnya kalian sudah memahami bagaimana konsep Object Oriented Programming, memang konsep ini sangat sulit dipelajari dan diterapkan bagi programmer pemula, namun seiring berjalannya waktu dan ditambah pemahaman kita yang sudah pas  tentang syntax syntax yang sering kita gunakan, maka OOP tidak lagi sesulit yang dibayangkan. 

Asumsi saya, kalian sudah bisa membuat child class dan parent class. Pada konsep tradisional itu, kalian bisa saja menginisiasikannya dengan bebas. Bisa parent atau childnya. 

Misal kalian membuat parent class bernama Mobil dan child class bernama Avanza. Maka kalian bisa membuat objek dari class Mobil tersebut dan class Avanza. Caranya seperti ini

Buat class main

Buat class Mobil dengan constructornya

buat class Avanza yang extends class Mobil, dan override constructor parent classnya

Namun untuk Abstraction dan Interface hal ini tidak berlaku. Abstraction dan Interface adalah (semacam) parent class yang hanya bisa diturunkan saja, tidak bisa dijadikan objek sendiri/diinisiasi.

Untuk membuatnya kita bisa menuliskan syntax tertentu.

Tujuannya apa? Kenapa kita harus membuat class yang tidak bisa diinisiasikan ini? Apa kegunaannya?

Hal yang barang kali dilupakan atau tak pernah kita sadari sebagai programmer pemula adalah sourcecode yang kita tulis adalah sebuah rahasia besar, sebuah resep yang jangan sampai jatuh ke orang yang salah

"Lahhh itu fi Github banyak sourcecode dari orang orang? Kenapa harus rahasia?"

Semua sourcecode atau kode yang sudah tersimpan di repository berarti sang pemiliki/pembuat kode tersebut sudah sepakat bahwa semua kode itu menjadi milik umum yang bisa dipelajari, ditiru, bahkan dijiplak begitu saja (meskipun cara ini tidak disarankan)

Kalo kamu membuat kode dan berfikir sourcecode ini sebagai hak cipta, atau karena keamanan. Maka kalian harus menyimpannya secara private atau diamankan dalam sebuah FTP dengan authorization tertentu

Agar kode itu tidak bisa diotak atik, diubah ubah. Maka kita harus menyusun kode yang aman pula. Dan salah satu caranya adalah dengan menerapkan konsep Encapsulation

Apa Lagi Itu Encapsulation?

Encapsulation adalah sebuah konsep dalam OOP dimana ada class dengan segala propery, field, dan method didalamnya bersifat private atau protected sehingga ia tidak bisa diubah secara public. Konsep ini mempunyai hubungan kuat dengan access modifier

Bagaimana Menerapkan Encapsulation?

Cara untuk menerapkan Encapsulation adalah dengan menggunakan Abstraction dan Interface.

Untuk Abstraction kalian bisa mengikuti langkah langkah dibawah

Pertama kalian tulis kode seperti berikut

Seperti yang sudah saya sebutkan diatas, kita tak bisa menginisiasikan class abstract diatas. Namun kita bisa menurunkannya menjadi class biasa dengan kode dibawah

Lalu kita inisiasikan class turunan tersebut, namun kita bisa menggunakan property, method, atau field yang berada di class abstract

Kode diatas akan menampilkan output seperti ini



Sedangkan untuk Interface kita bisa menuliskan kode dibawah. 

Lalu kita implementasikan pada sebuah kelas/kelas turunannya.

Kita bisa menggunakan Interface atau Abstraction lebih dari dua, yang akan kita pelajari pada Java Generic

Lalu kita jalankan dan akan muncul output seperti ini

Apa Saja Perbedaan Bagi Abstraction dan Interface?

Abstraction dan Interface memiliki perbedaan yang mencolok dari segi kegunaan dan cara menerapkannya

Abstraction membutuhkan class turunan agar segala isi propertynya bisa dijalankan, dan rata rata ia terdiri dari beberapa object saja dengan access modifier secara public

Interface rata rata berisi method yang ditulis dan butuh diimplementasikan pada sebuah class.


Share
Tweet
Pin
Share
No comments

 


Kali ini kita akan membahas konsep pemograman dari materi OOP atau Object Oriented Programming. Yang mana kita akan menerapkan konsep ini pada bahasa pemograman Java

Ada beberapa konsep pada OOP yang biasa diterapkan pada beberapa bahasa pemograman entah Javascript, Php, Kotlin, Python, dsb. Yaitu, 

  • Inheritance
  • Polymorphism
  • Abstraction
  • Encapsulation

Namun postingan ini akan fokus membahas tentang konsep Polymorphism

Konsep Polymorphism

Polymorphism sesuai namanya artinya ia sesuatu yang bisa berubah ubah bentuk. Namun dalam class artinya sebuah class tertentu bisa kita ubah semau kita, apabila terdapat field, property, atau method yang sudah ada sebelumnya pada parent class, kita bisa mengubah meng-override-nya saja

Lalu kita pun akhirnya bisa meng-inisiasikannya menjadi object pada class yang kita inginkan

Langkah Langkah

Buat struktur OOP Inheritance biasa. Kalian bisa melihat kode-nya dibawah ini

Ingat Inheritance terdiri dari Parent Class dan Child Class. Yang mana Child Class extends terhadap Parent Class. Pastikan kita juga sudah menambahkan constructor di dalamnya

Saya akan membuat sebuah class bernama Employee


Berikan juga method di dalamnya bernama sayHello

Lalu buat Child Class dengan method baru dan ia meng-override constructor parent classnya

  • Override, artinya kita menggunakan kembali method yang ada di parent class. Sehingga kita tak perlu menuliskannya berulang kali
  • Constructor adalah sebuah method dimana ia memberikan kemampuan class menerima parameter dengan berbagai tipe data
Child class ini akan saya beri nama Manager

Lalu buat lagi child class yang extend kepada class Manager, class ini akan saya beri nama Vice President

Mengapa Kita Membutuhkan Polymorphism?

Setiap kita ingin membuat class terkadang ada beberapa method, parameter yang sudah tertulis pada parent classnya, tanpa kita harus membuat class baru kita cukup meng-override saja method yang dibutuhkan seumpama kita membutuhkan method lain kita tuliskan method tersebut pada child class-nya

Kita bisa meng-inisiasikan child class maupun parent class semau kita. Tentu dengan memberikan parameter yang dibutuhkan sebagai constructornya

Ini sangat berbeda dengan konsep Abstraction atau Interface dimana kita tak bisa menginisiasikan class yang diturunkan. Adapun penjelasan seputar Perbedaan Abstraction dan Interface akan saya jelaskan lebih mendalam pada postingan yang akan datang :)

Menjalankan Program

Untuk menjalankan program, buat class baru dengan nama PolymorphismApp.java dan masukkan kode berikut
Ingat!, setiap function yang dijalankan harus berada pada class main. Kalian bisa menuliskannya secara otomatis dengan snipper, psvm atau main


Share
Tweet
Pin
Share
No comments
Newer Posts
Older Posts

About me

About Me

Techbros Writer. Educactor, you name it

Follow Us

  • instagram
  • youtube

Categories

Materi Kuliah Buku Internet Stuff

recent posts

Sponsor

Blog Archive

  • March 2025 (4)
  • February 2025 (1)
  • November 2024 (3)
  • October 2024 (1)
  • January 2024 (1)
  • December 2023 (12)
  • November 2023 (9)
  • October 2023 (1)
  • September 2023 (3)
  • August 2023 (14)
  • July 2023 (3)
  • June 2023 (11)
  • May 2023 (3)
  • April 2023 (1)
  • March 2023 (1)
  • February 2023 (8)
  • January 2023 (6)
  • December 2022 (3)
  • November 2022 (2)
  • October 2022 (3)
  • September 2022 (3)
  • August 2022 (1)
  • July 2022 (1)
  • June 2022 (1)
  • May 2022 (1)
  • March 2022 (4)
  • February 2022 (8)
  • January 2022 (8)
  • December 2021 (4)
  • November 2021 (11)
  • October 2021 (6)
  • August 2021 (9)
  • July 2021 (5)
  • June 2021 (5)
  • May 2021 (4)
  • April 2021 (4)
  • March 2021 (6)
  • February 2021 (2)
  • January 2021 (7)
  • December 2020 (5)
  • November 2020 (2)
  • October 2020 (5)
  • September 2020 (6)
  • July 2020 (1)
  • June 2020 (1)
  • May 2020 (6)
  • March 2020 (1)
  • January 2020 (3)
  • December 2019 (3)
  • November 2019 (12)
  • October 2019 (8)
  • September 2019 (6)
  • August 2019 (8)
  • July 2019 (6)
  • June 2019 (3)
  • May 2019 (8)
  • April 2019 (2)

Report Abuse

Created with by ThemeXpose