Tugas Desain System Aplikasi Instagram

Nama: Atha Dzaky H

NRP: 5025201269

Kelas: PPL A


Buatlah Rancangan Desain Instagram Meliputi :


  • Deskripsi Aplikasi

Instagram adalah aplikasi berbagi foto dan video yang memungkinkan pengguna untuk mengambil gambar atau video, menerapkan filter digital, dan membagikannya di berbagai platform media sosial. Pengguna dapat mengikuti pengguna lain, menyukai dan mengomentari posting, serta mengirim pesan langsung.


  • Spesifikasi Kebutuhan / Requirements

Fungsional

  1. Registrasi dan Login

  • Pengguna dapat mendaftar menggunakan email, nomor telepon, atau akun Facebook.

  • Pengguna dapat login dengan email, nomor telepon, atau akun Facebook.

  1. Profil Pengguna

  • Pengguna dapat membuat dan mengedit profil mereka (nama, foto profil, bio, dll).

  • Pengguna dapat melihat jumlah pengikut dan yang diikuti.

  1. Posting

  • Pengguna dapat mengunggah foto dan video.

  • Pengguna dapat menambahkan keterangan, tagar, dan lokasi pada posting.

  • Pengguna dapat menyukai, mengomentari, dan membagikan posting.

  1. Stories

  • Pengguna dapat membuat dan mengunggah cerita (stories) yang hilang setelah 24 jam.

  • Pengguna dapat menambahkan teks, stiker, dan filter ke cerita mereka.

  1. Pesan Langsung

  • Pengguna dapat mengirim pesan teks, foto, dan video ke pengguna lain secara langsung.

  • Pengguna dapat membuat grup chat.

  1. Pencarian dan Eksplorasi

  • Pengguna dapat mencari pengguna, tagar, dan lokasi.

  • Pengguna dapat menjelajahi konten populer di halaman Explore.

  1. Notifikasi

  • Pengguna menerima notifikasi untuk suka, komentar, pengikut baru, dll.

  1. Keamanan dan Privasi

  • Pengguna dapat mengatur akun menjadi privat.

  • Pengguna dapat memblokir dan melaporkan pengguna lain.

Non-Fungsional

  1. Skalabilitas

  • Aplikasi harus mendukung pertumbuhan pengguna dan peningkatan jumlah konten.

  1. Kinerja

  • Aplikasi harus responsif dengan waktu muat yang cepat.

  1. Keamanan

  • Data pengguna harus dienkripsi dan diamankan.

  • Perlindungan terhadap serangan seperti DDoS, SQL injection, dll.

  1. Ketersediaan

  • Aplikasi harus memiliki waktu aktif yang tinggi (minimal 99.9%).


  • Capacity Estimation (Traffic , Storage)

Traffic Estimation

  1. Pengguna Aktif Harian (DAU): 500 juta

  2. Pengguna Aktif Bulanan (MAU): 1.2 miliar

  3. Rata-rata Postingan Harian: 95 juta

  4. Rata-rata Likes Harian: 4.2 miliar

  5. Rata-rata Komentar Harian: 95 juta

  6. Rata-rata Stories Harian: 500 juta

Storage Estimation

  1. Rata-rata Ukuran Gambar: 2 MB

  2. Rata-rata Ukuran Video: 15 MB

  3. Penyimpanan Harian: (95 juta foto * 2 MB) + (10 juta video * 15 MB) = 1.9 PB per hari

  4. Penyimpanan Bulanan: 1.9 PB * 30 = 57 PB per bulan


  • High Level Design

Arsitektur Aplikasi

  1. Frontend

  • Mobile Apps (iOS, Android)

  • Web App

  1. Backend

  • Microservices Architecture

  • RESTful API untuk komunikasi antara frontend dan backend

  1. Database

  • Relational Database (PostgreSQL) untuk data pengguna, posting, komentar, dll.

  • NoSQL Database (Cassandra) untuk feed dan pencarian cepat.

  • Blob Storage (AWS S3) untuk penyimpanan gambar dan video.

  1. Cache

  • Redis untuk caching data yang sering diakses.

  1. Search Engine

  • Elasticsearch untuk pencarian cepat dan fitur Explore.

  1. Messaging Queue

  • RabbitMQ atau Kafka untuk pengelolaan tugas asinkron.

  1. CDN

  • Content Delivery Network (CDN) untuk penyajian cepat konten media.

  1. Load Balancer

  • Nginx atau AWS ELB untuk menyeimbangkan beban antara server.

  1. Monitoring dan Logging

  • Prometheus untuk monitoring.

  • ELK Stack (Elasticsearch, Logstash, Kibana) untuk logging.


  • Database Design

Tabel Pengguna (Users)

Kolom

Tipe Data

Deskripsi

user_id

Serial Primary Key

ID Unik Pengguna

username

Varchar(50)

Nama Pengguna (Unik)

email

Varchar(100)

Email Pengguna (Unik)

password_hash

Varchar(255)

Hash Kata Sandi

profile_picture

Text

URL Foto Profil

bio

Text

Biografi Pengguna

created_at

Timestamp

Waktu Pembuatan Akun

updated_at

Timestamp

Waktu Pembaruan akun terakhir


Tabel Postingan (Posts)

Kolom

Tipe Data

Deskripsi

post_id

Serial Primary Key

ID Unik Posting

user_id

Integer

ID Pengguna yang Memposting (FK)

media_url

Text

URL Gambar atau Video

caption

Text

Keterangan

location

Text

Lokasi

created_at

Timestamp

Waktu Pembuatan Posting

Tabel Komentar (Comments)

Kolom

Tipe Data

Deskripsi

comment_id

Serial Primary Key

ID Unik Komentar

post_id

Integer

ID Posting Terkait(FK)

user_id

Integer

ID Pengguna yang Berkomentar (FK)

comment

Text

Isi Komentar

created_at

Timestamp

Waktu Pembuatan Komentar


Tabel Likes

Kolom

Tipe Data

Deskripsi

like_id

Serial Primary Key

ID Unik Like

post_id

Integer

ID Posting Terkait(FK)

user_id

Integer

ID Pengguna yang Menyukai (FK)

created_at

Timestamp

Waktu Pembuatan Like


Tabel Stories

Kolom

Tipe Data

Deskripsi

story_id

Serial Primary Key

ID Unik Story

user_id

Integer

ID Pengguna yang Memposting Story(FK)

media_url

Text

URL Gambar atau Video

created_at

Timestamp

Waktu Pembuatan Story

expires_at

Timestamp

Waktu Kadaluarsa Story


  • Diagram UML

Use Case Diagram

  1. Actors: User, Admin

  2. Use Cases: Login, Register, Upload Post, Like Post, Comment on Post, View Feed, Send Message, View Story, Follow User, Search


Sequence Diagram: Upload Post

  1. User uploads a photo/video.

  2. System stores media in Blob Storage.

  3. System creates a post entry in the database.

  4. System updates user's feed.


Activity Diagram: View Feed

  1. User opens the app.

  2. System retrieves user's followed users.

  3. System fetches recent posts from followed users.

  4. System displays posts to the user.


Class Diagram

  1. User

  • Attributes: user_id, username, email, password_hash, profile_picture, bio, created_at, updated_at

  • Methods: register(), login(), updateProfile()

  1. Post

  • Attributes: post_id, user_id, media_url, caption, location, created_at

  • Methods: createPost(), deletePost(), editPost()

  1. Comment

  • Attributes: comment_id, post_id, user_id, comment, created_at

  • Methods: addComment(), deleteComment()

  1. Like

  • Attributes: like_id, post_id, user_id, created_at

  • Methods: addLike(), removeLike()


Sumber : E-Canteen Android-Based Application Design Using Object Oriented Analysis & Design (OOAD)

Bella Chintya Neyfa, Dony Tamara

Politeknik Negeri Jakarta


Komentar

Postingan populer dari blog ini

UAS PPL A

ETS PPL A