Repositori Tugas dan Tutorial Lab PBP Ganjil 2022/2023
Pemrograman Berbasis Platform (CSGE602022) - diselenggarakan oleh Fakultas Ilmu Komputer Universitas Indonesia, Semester Ganjil 2022/2023
Daftar Konten
- Tugas dan Tutorial Mingguan
- Pendahuluan
- Aturan dan Skema Penilaian
- Tutorial: Cara Mengerjakan
- Tutorial: Menjalankan Aplikasi Django
- Tutorial: Mendeploy Aplikasi
- Sumber Bacaan
- Credit
Pendahuluan
Selamat datang di repositori tugas dan tutorial lab PBP Ganjil 2022/2023. Repositori serta dokumen ini dimaksudkan sebagai wadah dari tutorial, instruksi, penjelasan serta source code yang berhubungan dengan pembelajaran mata kuliah Pemrograman Berbasis Platform.
Terdapat beberapa pekerjaan yang perlu Anda selesaikan selama pelaksanaan perkuliahan PBP Ganjil 2022/2023 ini, yaitu Esai Refleksi, Tutorial dan Tugas Lab.
Setiap minggunya, Anda akan diberikan tutorial untuk mempelajari konsep-konsep serta praktisi dari pemrograman berbasis platform.
Anda juga akan diminta untuk mengerjakan tugas lab sebagai bentuk implementasi dari pembelajaran yang Anda pelajari selama kelas dan sesi tutorial.
Selain itu, Anda juga perlu menuliskan esai refleksi atas apa yang telah Anda pelajari dan implementasikan pada tugas lab yang telah Anda kerjakan.
Aturan dan Skema Penilaian
Tutorial, Esai dan Tugas Lab PBP Ganjil 2022/2023 berkontribusi kepada nilai akhir PBP dengan total 20%. Skema penilaian untuk tutorial dan tugas pemrograman adalah sebagai berikut:
- A jika semua checklist dikerjakan
- B jika 80% checklist dikerjakan
- C jika setidaknya setengah checklist dikerjakan
- D jika hanya 30% checklist dikerjakan
- E jika tidak mengerjakan
Sedangkan untuk tugas esai, akan dinilai dengan skema sebagai berikut:
- Orisinalitas karya dan keatraktifan judul (10 poin)
- Format penulisan (10 poin)
- Penggunaan bahasa Indonesia yang baik dan benar (15 poin)
- Ketajaman analisis permasalahan (30 poin)
- Manfaat dan urgensi permasalahan yang diangkat (15 poin)
- Simpulan dan saran (15 poin)
- Referensi (5 poin)
Setiap pekerjaan yang telah diselesaikan oleh mahasiswa harus didemonstrasikan kepada asisten dosen. Berikut merupakan ketentuan dari demo yang perlu diperhatikan:
- Demonstrasi pekerjaan tutorial/tugas perlu dilakukan paling lambat seminggu setelah deadline pengumpulan. Waktu yang dialokasikan beserta jam akan disesuaikan dengan asisten dosen Anda masing-masing.
- Apabila terdapat halangan sehingga Anda tidak dapat mendemonstrasikan pekerjaan Anda kepada asisten dosen dalam rentang waktu yang ditentukan, Anda perlu mengontak asisten dosen Anda serta mengirimkan email kepada dosen untuk susulan demonstrasi pekerjaan.
Tutorial: Cara Mengerjakan
- Misalkan Anda hendak mengerjakan tutorial lab 2. Bukalah README.md untuk tutorial 2 yang ada pada website PBP
- Baca dan pahamilah dengan teliti berkas README. Berkas ini memuat tugas serta instruksi yang perlu Anda selesaikan.
- Kerjakan tutorial tersebut.
- Anda dapat mengerjakan tutorial-tutorial tersebut pada repositori yang sudah Anda buat sebelumnya maupun membuat sebuah repositori baru.
- Gunakan
git add <FILES/DIRECTORIES>
ataugit rm <FILES/DIRECTORIES>
untuk stage/unstage berkas yang nantinya akan Anda simpan ke Git. - Apabila Anda ingin menyimpan progres Anda secara lokal, Anda dapat melakukan commit ke Git. Gunakan perintah
git commit -m "<MESSAGE>"
dengan keterangan<MESSAGE>
sebagai deskripsi pekerjaan yang akan Anda simpan. - Ulangi langkah 4-6 hingga Anda selesai mengerjakan tugas Anda.
- Setelah Anda siap untuk mengumpulkan pekerjaan Anda atau Anda ingin menyimpannya pada repositori GitHub Anda, lakukan sebuah push. Anda dapat menggunakan perintah
git push origin <NAMA_BRANCH>
dengan keterangan<NAMA_BRANCH>
sebagai branch yang Anda tuju untuk penyimpanan di GitHub.
Tutorial: Menjalankan Aplikasi Django
Sebelumnya Anda perlu mendapatkan copy dari repositori yang hendak Anda jalankan menggunakan perintah git clone <URL_REPOSITORY>
.
- Pada direktori yang telah Anda salin ke mesin Anda, bukalah console di direktori tersebut dan mulailah dengan membuat sebuah virtual environment terlebih dahulu dengan perintah:
python -m venv env
Mohon pastikan Anda menjalankan perintah tersebut pada root dari repositori di mesin Anda.
Setelah perintah tersebut selesai dieksekusi, Anda dapat melihat bahwa terdapat folder env pada repositori Anda. Folder env atau virtual environment ini berfungsi untuk mengenkapsulasi segala dependencies dari aplikasi sehingga tidak tercampur atau bertabrakan dengan versi yang tidak seharusnya.
Aktifkan virtual environment tersebut dengan menggunakan perintah berikut. Perhatikan bahwa menjalankan perintah pengaktifan virtual environment berbeda untuk Windows dengan sistem operasi berbasis UNIX:
Windows:
env\Scripts\activate.bat
pip install -r requirements.txt
Linux & Mac OS:
source env/bin/activate
pip install -r requirements.txt
Apabila virtual environment berhasil diaktifkan, Anda akan melihat
(env)
di console Anda. Jalankan perintahpython manage.py runserver
untuk menjalankan aplikasi Django di mesin Anda.Mohon pastikan terdapat file manage.py pada direktori aktif di console Anda sebelum menjalankan perintah tersebut.
Bukalah web server lokal dari aplikasi Django tersebut menggunakan browser di
http://localhost:8000
.Apabila muncul sebuah halaman, selamat; Anda berhasil menjalankan aplikasi Django pada mesin Anda.
Apabila Anda sudah selesai mengerjakan tutorial atau ingin mengubah ke proyek Python lain, jangan lupa untuk mematikan virtual environment yang telah diaktifkan sebelumnya dengan perintah:
deactivate
Tutorial: Men-deploy Aplikasi
Apabila sebelumnya Anda belum memiliki akun Heroku dan/atau sebuah aplikasi Heroku aktif,
- Buatlah akun Heroku. Anda dapat mulai membuat akun pada halaman Login Heroku yang dapat diakses pada link berikut.
- Setelah Anda masuk ke halaman dashboard Heroku, buatlah sebuah aplikasi Heroku.
Setelah Anda memiliki aplikasi Heroku,
- Copy API Key dari akun anda. API Key dapat Anda temukan di
Account Settings -> API Key
. Simpanlah API Key beserta informasi tentang aplikasi Anda pada notepad/file lain dengan format berikut:
HEROKU_API_KEY: <VALUE_API_KEY_ANDA>
HEROKU_APP_NAME: <NAMA_APLIKASI_HEROKU_ANDA>
- Bukalah konfigurasi repositori GitHub Anda bagian Secrets untuk GitHub Actions (
Settings -> Secrets -> Actions
). - Tambahkan variabel
repository secret
baru untuk melakukan deployment. Pasangan Name-Value dari variabel yang akan Anda buat dapat Anda ambil dari informasi yang Anda catat pada notepad sebelumnya. Sebagai contoh:
(NAME)HEROKU_APP_NAME
(VALUE)APLIKASI-SAYA
- Simpan variabel-variabel tersebut.
- Pada mesin lokal Anda, buatlah sebuah berkas baru yang bernama
Procfile
di root dari repositori Anda. Berkas ini akan digunakan oleh Heroku untuk membaca aktivitas log aplikasi ke sistem monitoring internal Heroku. Isi dari berkas tersebut adalah sebagai berikut:
web: gunicorn aplikasi_django.wsgi --log-file -
Ubah
aplikasi_django
sesuai dengan aplikasi yang hendak Anda deploy.
- Buatlah sebuah berkas baru bernama
dpl.yml
di .github/workflows dari repositori Anda. Berkas ini digunakan untuk mengeksekusi deployment oleh runner dari GitHub Actions. Copy dan paste baris script di bawah ini ke berkasdpl.yml
:
name: Deploy
on:
push:
branches-ignore:
- template
pull_request:
branches-ignore:
- template
jobs:
Deployment:
runs-on: ubuntu-latest
env:
HEROKU_API_KEY: ${{ secrets.HEROKU_API_KEY }}
HEROKU_APP_NAME: ${{ secrets.HEROKU_APP_NAME }}
steps:
- uses: actions/checkout@v2
- name: Set up Ruby 2.7
uses: actions/setup-ruby@v1
with:
ruby-version: 2.7
- name: Install dpl
run: gem install dpl
- name: Install Heroku CLI
run: wget -qO- https://cli-assets.heroku.com/install-ubuntu.sh | sh
- name: Deploy to Heroku
run: dpl --provider=heroku --app=$HEROKU_APP_NAME --api-key=$HEROKU_API_KEY
- name: Run migrations on Heroku
run: heroku run --app $HEROKU_APP_NAME migrate
- uses: chrnorm/deployment-action@releases/v1
name: Create GitHub deployment
with:
initial_status: success
token: ${{ github.token }}
target_url: https://${{ secrets.HEROKU_APP_NAME }}.herokuapp.com
environment: production
Add, Commit dan Push berkas-berkas tersebut ke repositori GitHub Anda dengan perintah
git push origin <NAMA_BRANCH>
.Jalankan/jalankan kembali workflow deployment dari aplikasi Anda di GitHub Actions. Anda dapat menemukan GitHub Actions tersebut di tab pada repositori Anda (
GitHub Actions -> Workflows
).Perhatian! Proses workflow mungkin saja terjadi kegagalan dikarenakan berbagai sebab. Kegagalan dari workflow dapat Anda lihat di repositori GitHub Anda dengan adanya simbol silang merah.
Apabila workflow Anda gagal karena dependencies atau konfigurasi dari aplikasi, periksa ulang konfigurasi aplikasi Django serta versi dari dependencies yang digunakan. Pastikan semuanya berjalan dengan lancar di lokal Anda sebelum Anda melakukan proses deployment.
Apabila workflow Anda gagal karena permasalahan dari GitHub Actions atau runner, cukup jalankan kembali workflow tersebut. Permasalahan ini terkadang muncul ketika runner dari GitHub Actions sedang sibuk atau mengalami kegagalan dari server GitHub.
Apabila status workflow pending, Anda hanya perlu menunggu giliran workflow yang Anda sedang jalankan untuk dieksekusi oleh runner GitHub.
Jika seluruh proses dari workflow berhasil dieksekusi, Anda dapat melihat terdapat sebuah tanda centang hijau pada repositori Anda yang menandakan bahwa proses workflow telah berhasil. Apabila Anda menambahkan badges status README pada repositori Anda, status dari badges ini akan secara otomatis diperbarui berdasarkan workflow yang baru saja dijalankan.
Anda dapat mengakses aplikasi Anda yang sudah ter-deploy pada URL aplikasi Heroku yang Anda gunakan.
Sumber Bacaan
Berikut adalah beberapa bacaan yang sekiranya dapat membantu selama proses pembelajaran PBP Ganjil 2022/2023.
Credit
Dokumen ini dibuat berdasarkan Exercise 0: Introduction to Git yang ditulis oleh Tim Pengajar Pemrograman Lanjut 2017 (@addianto, @muhammad.ardhan, @fbenarto, et al.) dan PBP Ganjil 2021 yang ditulis oleh Tim Pengajar Pemrograman Berbasis Platform 2021 (@prakashdivyy). Segala tutorial serta instruksi yang dicantumkan pada repositori ini dirancang sedemikian rupa sehingga mahasiswa yang sedang mengambil mata kuliah Pemrograman Berbasis Platform dapat menyelesaikan tutorial saat sesi lab berlangsung.