Membuat Aplikasi Movie dengan Flutter - Part 2 Analisis Domain

Kita akan melakukan analisis domain terhadap aplikasi yang akan dibuat, yaitu aplikasi Movie

· 4 menit untuk membaca
Membuat Aplikasi Movie dengan Flutter - Part 2 Analisis Domain
Photo by Yura Fresh / Unsplash

Halo semua, kali ini saya akan melanjutkan series Membuat Aplikasi Movie dengan Flutter untuk pembahasan Analisis Domain.

Analisis Domain

Analisis domain adalah langkah dimana kita akan melakukan analisa terhadap domain bisnis yang akan di-solve. Baik itu secara usecase, flow, constraint, calculation dan lainnya. Untuk tahap ini, karena kita menggunakan design UI/UX yang ada, maka kita akan melakukan analisa terhadap apa saja data yang dibutuhkan untuk UI yang ada.

Home Screen

Tampilan Homescreen

Dari desain di atas, bisa kita dapatkan ada 2 usecase yang terlihat. Pertama adalah Recently Watched, dan Trending Movie. Untuk rencently watched, kita akan menyimpan movie yang trailer apa yang terakhir dimainkan. Jika tidak ada data, maka tampilan kita ganti menjadi teks. Untuk trending, kita akan menampilkan dari TMDB Trending Movie endpoint. Untuk data yang dibutuhkan adalah:

Recently Watched

  • ID
  • Title
  • Poster / Image
  • Trailer URL
  • ID
  • Title
  • Poster / Image
  • Rating

Discover Screen

Discover Screen pada aplikasi.

Pada discover screen kita akan menemukan Genre List yang mana pada masing-masing genre akan menampilkan List Item nya. Oleh sebab itu, untuk data yang akan dibutuhkan adalah:

Genre

  • ID
  • Name

Item

  • ID
  • Title
  • Poster
  • Release Year (only Movie)

Kemudian juga terdapat search bar yang mana bisa digunakan untuk mencari movie berdasarkan search query, tetapi untuk tampilan tidak ada di design Figma, kita akan menggunakan tampilan yang sama, minus list genre nya.

  • ID
  • Title
  • Poster
  • Release Year

Detail Movie

Tampilan Detail Movie

Tampilan ini akan menyajikan data movie tersebut dalam bentuk yang detail. dan juga mempunyai List Related Movies dan juga tombol Play untuk memutar Trailernya.

Movie Detail

  • Poster
  • Title
  • Duration
  • Rating
  • Release date
  • Genre
  • Synopsis
  • Trailer
  • Poster
  • Title
  • Year

Value Object

Value Object yang bisa gunakan untuk kasus ini adalah:

  • Title
    Digunakan untuk menyimpan judul dari film, Dengan validasi bahwa judul hanya 1 baris, tidak boleh berupa teks yang memiliki banyak paragraf.
  • DateTime
    Digunakan untuk menyimpan release year, dan release date.
  • Rating
    Rating dibatasi hanya bernilai 0-10 dan boleh dalam bentuk bilangan desimal.
  • Duration
    Durasi akan digunakan untuk menyimpan durasi.
  • Poster
    Poster akan berisi URI terhadap poster yang sudah lengkap dengan domainnya, dan ukurannya.
  • Trailer
    Trailer akan menyimpan URI terhadap video dengan tipe Trailer dan berstatus official = true dan site YouTube.
  • SearchQuery
    SearchQuery akan menyimpan inputan pencarian dari User dengan validasi tidak boleh kosong, dan harus berupa 1 baris.

Class Diagram

Class Diagram

Use Case

Use Case Diagram

Use Case Specification

Nama Use Case Melihat Trending Movie
Aktor User
Pre-condition User menekan tombol navigasi home
Basic Flow Halaman Home tampil, dan berisi Trending Movie
Exception Flow Halamam Trending tampil dan terdapat pesan Gagal terhubung ke server
Nama Use Case Melihat List Movie
Aktor User
Pre-condition User menekan tombol navigasi play
Basic Flow
  1. Halaman List tampil
  2. Berisi List Genre, dan movie berdasarkan genre nya
Alternate Flow
  1. Halaman List tampil
  2. Berisi List Genre, dan movie berdasarkan genre nya
  3. Aktor menekan Genre lain
  4. List Movie terupdate dengan movie baru sesuai dengan genre.
Exception Flow Halamam List tampil dan terdapat pesan Gagal terhubung ke server
Nama Use Case Mencari Movie
Aktor User
Pre-condition Halaman List Movie tampil
Basic Flow
  1. User menekan Search bar
  2. Search page tampil.
  3. User mengetikkan SearchQuery
  4. Setelah Jeda 1 detik, sistem akan mencari movie berdasarkan SearchQuery
Exception Flow
  • Jika pencarian tidak ditemukan, tampil pesan No result found
  • Jika koneksi gagal, maka tampil pesan Gagal terhubung ke server
Post Condition Hasil pencarian tampil.
Nama Use Case Melihat Detail Movie
Aktor User
Pre-condition Halaman Home atau Halaman List Movie tampil
Basic Flow Aktor menekan movie yang ada
Alternate Flow Halaman Detail tampil, dan aktor menekan salah satu dari related movie
Exception Flow Jika koneksi gagal, maka tampil pesan Gagal terhubung ke server
Post Condition Hasil detail movie tampil.
Nama Use Case Menonton Trailer
Aktor User
Pre-condition Halaman Detail Movie atau Halaman Utama tampil
Basic Flow
  • Dari halaman detail movie, aktor menekan tombol play.
  • Dari halaman utama, aktor menekan tombol Continue Watching
Exception Flow
  • Jika koneksi gagal, maka tampil pesan Gagal terhubung ke server
  • Jika gagal menyimpan recently watched, maka tampil pesan Gagal menyimpan recently watched
Post Condition
  • Trailer tampil
  • Data Recently Watched tergantikan
Nama Use Case Melihat Recently Watched
Aktor User
Pre-condition Halaman Utama tampil
Basic Flow Tampil Recently Watched
Alternate Flow Jika tidak ada data, recently watched hilang.

Demikian analisis domain dari aplikasi ini.
Jika teman-teman ada pertanyaan dan saran silahkan tulis di kolom komentar ya!