From e6e617a3f5c431df6b8bb67b0fa6ca9cc2d0e351 Mon Sep 17 00:00:00 2001 From: Muhammad Iqbal Dwitama Date: Tue, 6 Feb 2024 14:56:15 +0700 Subject: [PATCH] add: tugas-2 --- docs/tugas/tugas-2.md | 55 +++++++++++++++++++++++++++++++++++++++++++ mkdocs.yml | 3 ++- 2 files changed, 57 insertions(+), 1 deletion(-) create mode 100644 docs/tugas/tugas-2.md diff --git a/docs/tugas/tugas-2.md b/docs/tugas/tugas-2.md new file mode 100644 index 0000000..eccbac1 --- /dev/null +++ b/docs/tugas/tugas-2.md @@ -0,0 +1,55 @@ +# Tugas 2: Implementasi *Model-View-Template* (MVT) pada Django + +Pemrograman Berbasis Platform (CSGE602022) — diselenggarakan oleh Fakultas Ilmu Komputer Universitas Indonesia, Semester Genap 2023/2024 + +--- + +## Deskripsi Tugas + +Pada tugas ini, kamu akan mengimplementasikan konsep *Model-View-Template* serta beberapa hal yang sudah kamu pelajari di kelas dan tutorial. Perlu diperhatikan bahwa proyek yang dibuat pada tugas **berbeda** dengan proyek yang digunakan pada tutorial. + +## Tema Aplikasi + +Tema besar aplikasi untuk tugas PBP adalah aplikasi *tracker* selain . Pada semester ini, kamu diberikan kebebasan dalam memilih nama dan tema kecil aplikasi, kecuali *book tracker* yang sudah digunakan pada tutorial. Namun, aplikasi dari tugas kamu harus memiliki atribut-atribut berikut pada model aplikasimu. + +- `name` sebagai nama *item* dengan tipe `CharField`. +- `amount` sebagai jumlah *item* dengan tipe `IntegerField`. +- `description` sebagai deskripsi *item* dengan tipe `TextField`. + +Kamu dipersilakan untuk menambahkan atribut lainnya jika diinginkan, seperti `date`, `d`, `category`. Namun, model aplikasi kamu wajib memiliki ketiga atribut wajib di atas (`name`, `amount`, `description`). Nama dari ketiga atribut di atas dapat disesuaikan lagi dengan kebutuhan aplikasimu. + +Beberapa contoh ide aplikasi pengelolaan yang dapat kamu buat adalah sebagai berikut. + +- TV Series Tracker: `title`, `episodes`, `synopsis`, `rating`, `date`. +- Budget Tracker: `name`, `price`, `description`, `category`, `date`. +- Fitness Tracker: `name`, `calories`, `description`, `date` + +## Checklist Tugas + +*Checklist* untuk tugas ini adalah sebagai berikut. + +- [ ] Membuat sebuah proyek Django baru. +- [ ] Membuat aplikasi dengan nama `main` pada proyek tersebut. +- [ ] Melakukan *routing* pada proyek agar dapat menjalankan aplikasi `main`. +- [ ] Membuat model pada aplikasi `main` dengan nama `Item` dan memiliki atribut wajib sebagai berikut. + - `name` sebagai nama *item* dengan tipe `CharField`. + - `amount` sebagai jumlah *item* dengan tipe `IntegerField`. + - `description` sebagai deskripsi *item* dengan tipe `TextField`. +- [ ] Membuat sebuah fungsi pada `views.py` untuk dikembalikan ke dalam sebuah *template* HTML yang menampilkan nama aplikasi serta nama dan kelas kamu. +- [ ] Membuat sebuah *routing* pada `urls.py` aplikasi `main` untuk memetakan fungsi yang telah dibuat pada `views.py`. +- [ ] Melakukan *deployment* ke PWS terhadap aplikasi yang sudah dibuat sehingga nantinya dapat diakses oleh teman-temanmu melalui Internet. +- [ ] Membuat sebuah `README.md` yang berisi tautan menuju aplikasi PWS yang sudah di-*deploy*, serta jawaban dari beberapa pertanyaan berikut. + - Jelaskan bagaimana cara kamu mengimplementasikan *checklist* di atas secara *step-by-step* (bukan hanya sekadar mengikuti tutorial). + - Buatlah bagan yang berisi *request client* ke web aplikasi berbasis Django beserta responnya dan jelaskan pada bagan tersebut kaitan antara `urls.py`, `views.py`, `models.py`, dan berkas `html`. + - Jelaskan mengapa kita menggunakan ***virtual environment***? Apakah kita tetap dapat membuat aplikasi web berbasis Django tanpa menggunakan ***virtual environment***? + - Jelaskan apakah itu MVC, MVT, MVVM dan perbedaan dari ketiganya. + +Perhatikan bahwa kamu harus mengerjakan tugas ini menggunakan repositori yang **berbeda** dengan tutorial. + +## Tenggat Waktu Pengerjaan + +Tenggat waktu pengerjaan Tugas 2 adalah hari **Selasa, 13 Februari, pukul 12.00 siang.** + +Harap mengumpulkan link repositori yang kamu gunakan ke dalam slot submisi yang telah disediakan di SCELE. + +> Hint: Silakan membaca dokumentasi [ini](https://docs.djangoproject.com/en/4.2/topics/testing/) atau sumber lainnya untuk melihat cara membuat testing di Django. \ No newline at end of file diff --git a/mkdocs.yml b/mkdocs.yml index 1b7dce7..5845e78 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -62,4 +62,5 @@ nav: - Tutorial 0: tutorial/tutorial-0.md - Tutorial 1: tutorial/tutorial-1.md - Tugas: - - Tugas 1: tugas/tugas-1.md \ No newline at end of file + - Tugas 1: tugas/tugas-1.md + - Tugas 2: tugas/tugas-2.md \ No newline at end of file