Tugas Pertemuan 14 PPL - Desain Database

Nama Akmal Sulthon Fathulloh
NRP 5025211047
Kelas PPL - A

Desain Basis Data adalah kumpulan proses yang memfasilitasi perancangan, pengembangan, implementasi, dan pemeliharaan sistem manajemen data perusahaan. Basis data yang dirancang dengan benar mudah dipelihara, meningkatkan konsistensi data, dan hemat biaya dalam hal ruang penyimpanan disk. Desainer database memutuskan bagaimana elemen data berkorelasi dan data apa yang harus disimpan. Pada pertemuan ke-14 ini, kita diminta untuk membuat database untuk aplikasi social media foto sharing - Instagram

Desain Basis Data

Basis data Instagram harus dirancang untuk menyimpan data pengguna, konten, interaksi pengguna, dan informasi lainnya. Berikut adalah beberapa tabel yang mungkin diperlukan dalam desain basis data Instagram:

Tabel users

Tabel users berisi informasi pengguna seperti nama pengguna, email, kata sandi, nama lengkap, biografi, dan gambar profil. Tabel ini juga mencatat waktu pembuatan akun dan pembaruan terakhir.

Kolom Tipe Data Deskripsi
user_id INT Primary key, auto-increment
username VARCHAR Nama pengguna, unik
email VARCHAR Email pengguna, unik
password VARCHAR Kata sandi pengguna, terenkripsi
full_name VARCHAR Nama lengkap pengguna
bio VARCHAR Biografi pengguna
profile_image VARCHAR URL gambar profil
created_at TIMESTAMP Waktu pembuatan akun
updated_at TIMESTAMP Waktu pembaruan terakhir

Tabel posts

Tabel posts berisi informasi postingan pengguna seperti gambar, deskripsi, lokasi, dan waktu unggah. Tabel ini juga mencatat waktu pembaruan terakhir.

Kolom Tipe Data Deskripsi
post_id INT Primary key, auto-increment
user_id INT Foreign key ke tabel users
image_url VARCHAR URL gambar postingan
caption TEXT Deskripsi postingan
location VARCHAR Lokasi postingan
created_at TIMESTAMP Waktu unggah postingan
updated_at TIMESTAMP Waktu pembaruan terakhir

Tabel comments

Tabel comments berisi komentar pengguna pada postingan, termasuk ID postingan, ID pengguna, isi komentar, dan waktu pembuatan komentar. Tabel ini juga mencatat waktu pembaruan terakhir.

Kolom Tipe Data Deskripsi
comment_id INT Primary key, auto-increment
post_id INT Foreign key ke tabel posts
user_id INT Foreign key ke tabel users
comment TEXT Isi komentar
created_at TIMESTAMP Waktu pembuatan komentar
updated_at TIMESTAMP Waktu pembaruan terakhir

Tabel likes

Tabel likes berisi informasi like yang diberikan oleh pengguna pada postingan. Tabel ini mencatat ID postingan, ID pengguna, dan waktu like diberikan.

Kolom Tipe Data Deskripsi
like_id INT Primary key, auto-increment
post_id INT Foreign key ke tabel posts
user_id INT Foreign key ke tabel users
created_at TIMESTAMP Waktu like diberikan

Tabel follows

Tabel follows berisi informasi pengguna yang diikuti oleh pengguna lain. Tabel ini mencatat ID pengikut, ID yang diikuti, dan waktu mulai mengikuti.

Kolom Tipe Data Deskripsi
follow_id INT Primary key, auto-increment
follower_id INT Foreign key ke tabel users (pengikut)
following_id INT Foreign key ke tabel users (yang diikuti)
created_at TIMESTAMP Waktu pengguna mulai mengikuti pengguna lain

Tabel messages

Tabel messages berisi pesan yang dikirim oleh pengguna melalui fitur Direct Messaging. Tabel ini mencatat ID pesan, ID pengirim, ID penerima, isi pesan, dan waktu pengiriman pesan.

Kolom Tipe Data Deskripsi
message_id INT Primary key, auto-increment
sender_id INT Foreign key ke tabel users (pengirim)
receiver_id INT Foreign key ke tabel users (penerima)
content TEXT Isi pesan
created_at TIMESTAMP Waktu pengiriman pesan

Tabel notifications

Tabel notifications berisi notifikasi yang diterima oleh pengguna, seperti like, komentar, atau follow. Tabel ini mencatat ID notifikasi, ID pengguna, tipe notifikasi, ID terkait, waktu notifikasi dibuat, dan waktu notifikasi dibaca.

Kolom Tipe Data Deskripsi
notification_id INT Primary key, auto-increment
user_id INT Foreign key ke tabel users
type VARCHAR Tipe notifikasi (like, komentar, follow, dll.)
related_id INT ID sumber notifikasi (post_id, user_id, dll.)
created_at TIMESTAMP Waktu notifikasi dibuat
read_at TIMESTAMP Waktu notifikasi dibaca

Desain basis data di atas adalah kerangka utama basis data dari Instagram yang bisa dikembangkan lebih lanjut sesuai kebutuhan aplikasi. Misalnya, kita bisa menambahkan tabel untuk fitur tambahan seperti cerita (stories), tagar (hashtags), atau penyimpanan media tambahan (video, IGTV).

Berikut adalah implementasi basis data Instagram menggunakan MySQL:

Referensi

https://kuliahppl.blogspot.com/2024/06/desain-database.html

Komentar

Postingan populer dari blog ini

Tugas Pertemuan 2 PPL - Identifikasi Proses PPL

Tugas Pertemuan 5 PPL - High Level Design

Evaluasi Tengah Semester Perancangan Perangkat Lunak