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
Registrasi dan Login
Pengguna dapat mendaftar menggunakan email, nomor telepon, atau akun Facebook.
Pengguna dapat login dengan email, nomor telepon, atau akun Facebook.
Profil Pengguna
Pengguna dapat membuat dan mengedit profil mereka (nama, foto profil, bio, dll).
Pengguna dapat melihat jumlah pengikut dan yang diikuti.
Posting
Pengguna dapat mengunggah foto dan video.
Pengguna dapat menambahkan keterangan, tagar, dan lokasi pada posting.
Pengguna dapat menyukai, mengomentari, dan membagikan posting.
Stories
Pengguna dapat membuat dan mengunggah cerita (stories) yang hilang setelah 24 jam.
Pengguna dapat menambahkan teks, stiker, dan filter ke cerita mereka.
Pesan Langsung
Pengguna dapat mengirim pesan teks, foto, dan video ke pengguna lain secara langsung.
Pengguna dapat membuat grup chat.
Pencarian dan Eksplorasi
Pengguna dapat mencari pengguna, tagar, dan lokasi.
Pengguna dapat menjelajahi konten populer di halaman Explore.
Notifikasi
Pengguna menerima notifikasi untuk suka, komentar, pengikut baru, dll.
Keamanan dan Privasi
Pengguna dapat mengatur akun menjadi privat.
Pengguna dapat memblokir dan melaporkan pengguna lain.
Non-Fungsional
Skalabilitas
Aplikasi harus mendukung pertumbuhan pengguna dan peningkatan jumlah konten.
Kinerja
Aplikasi harus responsif dengan waktu muat yang cepat.
Keamanan
Data pengguna harus dienkripsi dan diamankan.
Perlindungan terhadap serangan seperti DDoS, SQL injection, dll.
Ketersediaan
Aplikasi harus memiliki waktu aktif yang tinggi (minimal 99.9%).
Capacity Estimation (Traffic , Storage)
Traffic Estimation
Pengguna Aktif Harian (DAU): 500 juta
Pengguna Aktif Bulanan (MAU): 1.2 miliar
Rata-rata Postingan Harian: 95 juta
Rata-rata Likes Harian: 4.2 miliar
Rata-rata Komentar Harian: 95 juta
Rata-rata Stories Harian: 500 juta
Storage Estimation
Rata-rata Ukuran Gambar: 2 MB
Rata-rata Ukuran Video: 15 MB
Penyimpanan Harian: (95 juta foto * 2 MB) + (10 juta video * 15 MB) = 1.9 PB per hari
Penyimpanan Bulanan: 1.9 PB * 30 = 57 PB per bulan
High Level Design
Arsitektur Aplikasi
Frontend
Mobile Apps (iOS, Android)
Web App
Backend
Microservices Architecture
RESTful API untuk komunikasi antara frontend dan backend
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.
Cache
Redis untuk caching data yang sering diakses.
Search Engine
Elasticsearch untuk pencarian cepat dan fitur Explore.
Messaging Queue
RabbitMQ atau Kafka untuk pengelolaan tugas asinkron.
CDN
Content Delivery Network (CDN) untuk penyajian cepat konten media.
Load Balancer
Nginx atau AWS ELB untuk menyeimbangkan beban antara server.
Monitoring dan Logging
Prometheus untuk monitoring.
ELK Stack (Elasticsearch, Logstash, Kibana) untuk logging.
Database Design
Tabel Pengguna (Users)
Tabel Postingan (Posts)
Tabel Komentar (Comments)
Tabel Likes
Tabel Stories
Diagram UML
Use Case Diagram
Actors: User, Admin
Use Cases: Login, Register, Upload Post, Like Post, Comment on Post, View Feed, Send Message, View Story, Follow User, Search
Sequence Diagram: Upload Post
User uploads a photo/video.
System stores media in Blob Storage.
System creates a post entry in the database.
System updates user's feed.
Activity Diagram: View Feed
User opens the app.
System retrieves user's followed users.
System fetches recent posts from followed users.
System displays posts to the user.
Class Diagram
User
Attributes: user_id, username, email, password_hash, profile_picture, bio, created_at, updated_at
Methods: register(), login(), updateProfile()
Post
Attributes: post_id, user_id, media_url, caption, location, created_at
Methods: createPost(), deletePost(), editPost()
Comment
Attributes: comment_id, post_id, user_id, comment, created_at
Methods: addComment(), deleteComment()
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
Posting Komentar