Latihan Bikin ERD Projek Website Forum Community

Hello people with the spirit of learning!

Membangun forum komunitas online tidak hanya tentang menciptakan platform untuk komunikasi, tetapi juga tentang menciptakan ekosistem di mana orang-orang dengan minat atau kebutuhan yang sama dapat berkumpul, berdiskusi, dan saling membantu. Dalam pembelajaran ini, kita akan mulai dari dasar dan terus berkembang dengan menambahkan fitur-fitur yang memperkaya interaksi antar pengguna. Mari kita pelajari lebih dalam lagi perjalanan kita dalam membangun forum komunitas ini.

Langkah Awal: Dasar-Dasar Forum

Di awal perjalanan, kita menetapkan fondasi yang kokoh dengan menghadirkan entitas dasar: User, Thread, dan Comment. Bayangkan sebuah forum tanpa pengguna; itu seperti pesta tanpa tamu! Oleh karena itu, kita mulai dengan memastikan setiap individu yang datang ke forum kita dapat mendaftarkan diri, lengkap dengan username, password, dan profil lainnya. Ini adalah langkah pertama kita, menanam benih yang akan tumbuh menjadi komunitas yang ramai.

Entitas:

  • User: Inti dari forum, merepresentasikan pengguna yang terdaftar.
  • Thread: Rangkaian diskusi yang dibuat oleh pengguna.
  • Comment: Pesan atau komentar dalam thread oleh pengguna.

Atribut:

  • User: id (PK), username, password, name, profile_pic, isAdmin.
  • Thread: id (PK), title, content, file, status, created_at, created_by, updated_at, updated_by, user_id, forum_type_id, thread_category_id.
  • Comment: id (PK), content, created_at, created_by, user_id, thread_id.

Hubungan:

  • Pengguna dapat membuat banyak thread dan comment.
  • Setiap thread bisa memiliki banyak comment.

Setelah kita memiliki user, kita memperkenalkan mereka pada konsep threads atau percakapan, dan comments atau pesan dalam percakapan tersebut. Threads menjadi jalan bagi pengguna untuk mengawali diskusi mengenai topik tertentu, dan comments adalah cara mereka berkontribusi pada diskusi itu. Kita memberikan kebebasan kepada pengguna untuk mengedit atau menghapus pesan mereka, karena kita semua tahu, manusia bisa berubah pikiran!

Pengembangan Fitur Baru: Kategori dan Aktivitas

Ketika forum kita mulai berkembang, kita menyadari perlunya organisasi yang lebih baik. Masuklah ThreadCategory dan UserActivity, yang memungkinkan kita mengelompokkan diskusi ke dalam topik yang berbeda dan melacak aktivitas pengguna. Ini seperti membuka banyak ruangan dalam satu rumah besar, di mana setiap ruangan mewakili minat tertentu. Dengan demikian, pengguna bisa langsung menuju ke bagian forum yang paling mereka minati.

Untuk mengatur ini, kita menambahkan Moderator untuk setiap kategori. Moderator inilah yang akan menjaga agar diskusi tetap sehat dan produktif, memastikan forum kita tetap menjadi tempat yang aman dan menyenangkan untuk semua orang.

Entitas Baru:

  • ThreadCategory: Untuk mengelompokkan thread berdasarkan topik.
  • UserActivity: Mencatat aktivitas login dan logout pengguna.

Atribut Baru:

  • ThreadCategory: id (PK), category.
  • UserActivity: id (PK), date, time, activity, user_id.

Hubungan Baru:

  • Setiap thread dikaitkan dengan satu kategori.
  • User memiliki banyak aktivitas yang tercatat.

Menambahkan fitur yang lebih kompleks: Logging dan Upvote

Selanjutnya, kita mengenalkan elemen log untuk menyimpan catatan perubahan yang terjadi dalam sistem dan elemen ThreadUser yang baru, yang kini fokus pada kemampuan untuk "menyukai" thread. Fungsi "like" ini memungkinkan pengguna untuk menunjukkan apresiasi mereka terhadap diskusi atau konten yang menarik, meningkatkan visibilitas untuk diskusi populer dan memberi penghargaan kepada pencipta konten.

Entitas Baru:

  • LogActivity: Representasi log aktivitas dalam sistem.
  • ThreadUser: Hubungan antara pengguna dan thread.

Atribut Baru:

  • LogActivity: id (PK), description, module, ref_id, created_at, created_by, updated_at, updated_by.
  • ThreadUser: id (PK), created_at, created_by, user_id, thread_id.

Hubungan Baru:

  • Pengguna dapat terhubung dengan banyak thread.
  • Aktivitas dalam sistem dicatat dan di-log.

Setiap langkah dalam perjalanan ini telah kita dokumentasikan dan direncanakan dengan cermat dalam sebuah Entity Relationship Diagram (ERD). ERD ini bukan hanya peta bagi kita, tapi juga blueprint yang mengarahkan pembangunan forum dari hari ke hari. Di sini kita dapat melihat hubungan antara pengguna, threads, comments, kategori, dan semua entitas lain yang membuat forum kita berfungsi.

ERD Forum (3).png

Kesimpulan

Dalam membangun forum komunitas online, kita memulai dengan entitas dasar seperti User, Thread, dan Comment untuk mendukung interaksi pengguna, lalu menambahkan ThreadCategory dan UserActivity untuk meningkatkan organisasi dan pelacakan aktivitas. Perkenalan LogActivity dan ThreadUser memperkaya interaksi lebih lanjut dengan mengizinkan pengguna untuk menyukai thread dan menjaga integritas data. ERD yang telah kita kembangkan bukan hanya sebagai peta relasional, tetapi juga sebagai blueprint yang mengarahkan integrasi dan evolusi fitur, menjadikan forum tidak hanya sebagai platform komunikasi, tetapi sebagai ekosistem yang memungkinkan pertumbuhan dan kolaborasi di antara anggotanya.

Tertarik belajar lebih dalam tentang pembuatan ERD? Jangan khawatir! Di BuildWithAngga, kami menyiapkan kelas gratis pembuatan ERD dan upgrade ke Premium untuk benefits lainnya! ;)