Tugas PPL 10

Nama: Gabriella Natasya Br Ginting

NRP: 5025211081

Kelas: Perancangan Perangkat Lunak (A)


Desain Database Instagram

Tujuan

Desain database penting untuk platform media sosial seperti Instagram dan memungkinkan pengelolaan akun pengguna, postingan, komentar, suka, dan konten multimedia secara efisien. Arsitektur database yang kuat mendukung interaksi pengguna yang mudah, pembaruan waktu nyata, serta peningkatan privasi dan keamanan.

Fitur Basis Data

Basis data untuk platform media sosial instagram menawarkan serangkaian fitur yang dirancang untuk mendukung manajemen pengguna, penyimpanan konten, interaksi pengguna, pembaruan waktu nyata, dan analitik. Fitur-fitur ini biasanya meliputi:
  • Manajemen Pengguna: Mengelola akun pengguna, profil, dan otentikasi.
  • Penyimpanan Konten: Menyimpan konten multimedia seperti foto dan video.
  • Interaksi : Menangani suka, komentar, dan mengikuti.
  • Pembaruan Waktu Nyata : Memastikan pemberitahuan waktu nyata dan pembaruan umpan.
  • Sistem Rekomendasi : Memberikan saran konten yang dipersonalisasi berdasarkan perilaku pengguna.
  • Analisis dan Pelaporan : Menghasilkan wawasan dan laporan tentang keterlibatan pengguna dan kinerja platform.
Entitas dan Atribut dalam Database Instagram

Entitas dalam basis data platform media sosial instagram merepresentasikan berbagai aspek dari manajemen pengguna, penyimpanan konten, interaksi pengguna, dan pembaruan real-time, sedangkan atributnya mendeskripsikan karakteristik dari entitas tersebut.

- Tabel Pengguna (User Table)
  • UserID (Primary Key): Pengenal unik untuk setiap pengguna.
  • Username: Nama tampilan pengguna.
  • Email: Alamat email pengguna untuk kontak dan login.
  • PasswordHash: Kata sandi yang telah di-hash secara aman untuk autentikasi pengguna.
  • ProfilePicture: URL atau referensi ke foto profil pengguna.
  • Bio: Bio profil pengguna.
  • CreatedAt: Timestamp ketika akun pengguna dibuat.
- Tabel Postingan (Post Table)
  • PostID (Primary Key): Pengenal unik untuk setiap postingan.
  • UserID: Pengenal untuk pengguna yang membuat postingan.
  • ContentURL: URL atau referensi ke foto atau video.
  • Caption: Teks caption yang menyertai postingan.
  • CreatedAt: Timestamp ketika postingan dibuat.
- Tabel Komentar (Comment Table)
  • CommentID (Primary Key): Pengenal unik untuk setiap komentar.
  • PostID: Pengenal untuk postingan yang terkait.
  • UserID: Pengenal untuk pengguna yang membuat komentar.
  • Content: Konten teks dari komentar.
  • CreatedAt: Timestamp ketika komentar dibuat.
- Tabel Suka (Like Table)
  • LikeID (Primary Key): Pengenal unik untuk setiap suka.
  • PostID: Pengenal untuk postingan yang disukai.
  • UserID: Pengenal untuk pengguna yang menyukai postingan.
  • CreatedAt: Timestamp ketika suka diberikan.
- Tabel Mengikuti (Follow Table)
  • FollowerID: Pengenal untuk pengguna yang mengikuti.
  • FolloweeID: Pengenal untuk pengguna yang diikuti.
  • CreatedAt: Timestamp ketika hubungan mengikuti dibentuk.
Hubungan Antar Entitas

Berdasarkan entitas dan atribut yang diberikan, hubungan antar entitas dapat didefinisikan untuk menetapkan aliran data dan ketergantungan dalam basis data platform media sosial instagram.

- Hubungan One-to-Many antara Pengguna dan Postingan (User dan Post)
  • Satu pengguna dapat membuat beberapa postingan.
  • Setiap postingan dibuat oleh satu pengguna.
  • Oleh karena itu, hubungan antara Pengguna dan Postingan adalah satu-ke-banyak (one-to-many).
- Hubungan One-to-Many antara Postingan dan Komentar (Post dan Comment)
  • Satu postingan dapat memiliki beberapa komentar.
  • Setiap komentar terkait dengan satu postingan.
  • Oleh karena itu, hubungan antara Postingan dan Komentar adalah satu-ke-banyak (one-to-many).
- Hubungan One-to-Many antara Postingan dan Suka (Post dan Like)
  • Satu postingan dapat memiliki beberapa suka.
  • Setiap suka terkait dengan satu postingan.
  • Oleh karena itu, hubungan antara Postingan dan Suka adalah satu-ke-banyak (one-to-many).
- Hubungan One-to-Many antara Pengguna dan Komentar (User dan Comment)
  • Satu pengguna dapat membuat beberapa komentar.
  • Setiap komentar dibuat oleh satu pengguna.
  • Oleh karena itu, hubungan antara Pengguna dan Komentar adalah satu-ke-banyak (one-to-many).
- Hubungan One-to-Many antara Pengguna dan Suka (User dan Like)
  • Satu pengguna dapat menyukai beberapa postingan.
  • Setiap suka dibuat oleh satu pengguna.
  • Oleh karena itu, hubungan antara Pengguna dan Suka adalah satu-ke-banyak (one-to-many).
- Hubungan Many-to-Many antara Pengguna dan Mengikuti (User dan Follow)
  • Satu pengguna dapat mengikuti beberapa pengguna lainnya.
  • Satu pengguna dapat diikuti oleh beberapa pengguna lainnya.
  • Oleh karena itu, hubungan antara Pengguna dan Mengikuti adalah banyak-ke-banyak (many-to-many).
Struktur Entitas dalam Format SQL

-- Create User Table
CREATE TABLE Users (
UserID SERIAL PRIMARY KEY,
Username VARCHAR(255) NOT NULL,
Email VARCHAR(255) NOT NULL,
PasswordHash VARCHAR(255) NOT NULL,
ProfilePicture VARCHAR(255),
Bio TEXT,
CreatedAt TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

-- Create Post Table
CREATE TABLE Posts (
PostID SERIAL PRIMARY KEY,
UserID INT NOT NULL,
ContentURL VARCHAR(255),
Caption TEXT,
CreatedAt TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (UserID) REFERENCES Users(UserID)
);

-- Create Comment Table
CREATE TABLE Comments (
CommentID SERIAL PRIMARY KEY,
PostID INT NOT NULL,
UserID INT NOT NULL,
Content TEXT NOT NULL,
CreatedAt TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (PostID) REFERENCES Posts(PostID),
FOREIGN KEY (UserID) REFERENCES Users(UserID)
);

-- Create Like Table
CREATE TABLE Likes (
LikeID SERIAL PRIMARY KEY,
PostID INT NOT NULL,
UserID INT NOT NULL,
CreatedAt TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (PostID) REFERENCES Posts(PostID),
FOREIGN KEY (UserID) REFERENCES Users(UserID)
);

-- Create Follow Table
CREATE TABLE Follows (
FollowerID INT NOT NULL,
FolloweeID INT NOT NULL,
CreatedAt TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (FollowerID, FolloweeID),
FOREIGN KEY (FollowerID) REFERENCES Users(UserID),
FOREIGN KEY (FolloweeID) REFERENCES Users(UserID)
);

Model Database 

Model basis data untuk platform media sosial instagram berfokus pada pengelolaan akun pengguna, penyimpanan konten, interaksi pengguna, pembaruan real-time, dan keamanan untuk memastikan pengalaman pengguna yang mulus dan menarik.







Komentar

Postingan populer dari blog ini

ETS

Tugas PPL 2

Tugas PPL 1