Tugas 2 - hyvos07/celestia GitHub Wiki
Tugas 2
Step by Step Pembuatan Project Django
-
Membuat direktori baru bernama
celestia
dan inisiasi local repository di folder tersebut. -
Membuat GitHub repository yang dihubungkan dengan local repository
celestia
-
Membuat virtual environment baru dan jalankan env tersebut untuk project ini dengan command:
python -m venv env env\Scripts\activate
-
Membuat file
requirements.txt
yang berisi:django gunicorn whitenoise psycopg2-binary requests urllib3
dan meng-install requirements tersebut dengan pip.
pip install -r requirements.txt
-
Membuat proyek Django baru dengan command:
django-admin startproject celestia .
Lalu melakukan beberapa penyesuaian di
settings.py
untuk project yang baru dibuat tersebut. -
Membuat aplikasi dengan nama
main
pada proyek ini dengan menjalankan command:python manage.py startapp main
setelah dibuat, aplikasi
main
juga perlu ditambahkan kecelestia/settings.py
pada variableINSTALLED_APPS
agar dapat menjalankan aplikasimain
tersebut. -
Membuat model
Product
dengan atribut sebagai berikut:name: CharField, price: IntegerField, description: TextField, stock: IntegerField, chara: CharField, game: CharField, category: CharField, image: TextField, price_with_comma: int, # Internal Property image_URL : String, # Internal Property is_stock_empty: bool, # Internal Property
N.B. Ada beberapa field yang masih dalam bentuk sederhana, sehingga tidak ada di dalam bentuk aslinya (seperti
image
yang seharusnya menggunakanImageField
) agar dapat lebih diperdalam di minggu-minggu berikutnya. -
Membuat function
show_main()
padaviews.py
untuk bisa me-return template HTML bernamamain.html
yang dibuat di direktoritemplates
. HTML tersebut akan menampilkan nama aplikasi, data darishow_main()
dan identitas diri sendiri. -
Membuat sebuah routing pada
urls.py
dalam direktori aplikasimain
untuk memetakan fungsi yang telah dibuat padaviews.py
. Diurls.py
, ditambahkanpath('', show_main, name='show_main')
ke dalamurlpatterns
milik aplikasimain
. -
Terakhir, push kode ke GitHub dan lakukan deployment ke PWS agar dapat diakses oleh orang lain. Hasil deployment dari proyek ini dapat diakses di bagian atas.
Bagan Gambaran Request Client ke Django
Penjelasan lanjutan tentang kaitan urls.py
, views.py
, models.py
, dan berkas HTML untuk sebagai template:
urls.py
dalam Django Project akan menentukan views apa yang perlu dikembalikan ke pihak client berdasarkan request yang dikirim oleh client.views.py
menyimpan business logic dan pemrosesan data yang diminta pada request dari client. Hasil data dari views tersebut dapat dikembalikan bersama dengan tampilan web dari template.html
yang dibuat.- Template HTML berfungsi untuk mengembalikan response berupa sebuah web page kepada client, dengan tampilan sesuai dengan apa yang sudah diminta oleh client sebelumnya.
models.py
berfungsi sebagai jembatan perantara antara database dan views. Di dalammodels.py
, disimpan bentuk model dari data yang ada di dalam database. Denganmodels.py
,views.py
juga dapat berinteraksi dan mengambil data-data dari database sehingga data-data tersebut dapat diproses untuk memenuhi permintaan request.
git
pada Pengembangan Perangkat Lunak
Fungsi Dalam proses pengembangan perangkat lunak, git
memiliki banyak kegunaan pada aspek-aspek yang melibatkan kolaborasi antar sesama developer dan manajemen pengelolaan dari suatu proyek software application. Aspek-aspek tersebut dapat dijabarkan sebagai berikut.
-
Version Control
git
dapat menyimpan perubahan kode dari suatu proyek secara rinci. Setiap kali ada perubahan pada kode, seorang developer dapat mencatatnya digit
sebagai sebuah commit, sehingga developer tersebut maupun rekannya dapat mengetahui detail dari siapa, kapan, dan alasan perubahan kode tersebut. Pencatatan dalam bentuk commit ini juga mempermudah proses rollback ke versi sebelumnya jika ada masalah yang terjadi pada kode sekarang. -
Kolaborasi (Branching and Merging)
git
memiliki sistem percabangan yang dapat memisahkan kode untuk fitur baru, perbaikan bug, dan lainnya. Setiap developer yang terlibat dalam proyek dapat membuat cabang atau branch baru untuk pekerjaan mereka masing-masing tanpa mengganggu kode utamanya. Setelah kode mereka sudah siap, branch tersebut dapat digabungkan kembali ke kode utama dengan perintah merge. -
Anytime and Anywhere Development Proyek yang menggunakan
git
dapat diinisiasi sebagai repository lokal dan disinkronkan dengan remote repository seperti GitHub atau GitLab. Hal ini memungkinkan developer dan rekannya untuk mengakses, mengubah, dan mengunggah perubahan pada kode dari berbagai lokasi dan workspace yang mereka miliki, selama terhubung dengan remote repository yang sama.
Kenapa Django dijadikan framework yang pertama kali kami pelajari?
Django cocok digunakan sebagai framework pertama yang kami pelajari dalam pembelajaran pengembangan perangkat lunak karena:
-
Django dianggap lebih mudah untuk digunakan daripada framework-framework lainnya. Hal ini dikarenakan Django memiliki banyak fitur bawaan yang sudah cukup lengkap di dalamnya. Hal ini sejalan dengan tagline-nya, yaitu "The Framework for Perfectionists with Deadlines" yang menunjukkan bahwa Django dirancang untuk bisa bekerja lebih efisien tanpa perlu menambahkan banyak library eksternal.
-
Django memiliki dokumentasi serta komunitas yang sangat baik dan informatif, sehingga memudahkan para penggunanya dalam memahami konsep dasar dan cara penggunaan Django. Di dalam dokumentasi Django bahkan mencakup tutorial lengkap untuk membuat proyek sederhana dengan contoh dari kasus nyata, sehingga sangat membantu bagi pemula yang baru belajar.
-
Django menawarkan keamanan bawaan yang kuat untuk melindungi aplikasi dari berbagai serangan siber seperti SQL Injection dan Cross-Site Request Forgery (CSRF). Fitur keamanan bawaan ini berguna bagi pemula yang belum familiar dengan ancaman serangan siber dari orang-orang nakal di luar sana.
Mengapa model pada Django disebut sebagai ORM atau Object-Relational Mapping?
Model Django disebut sebagai ORM karena Django memungkinkan kita untuk berinteraksi dengan database menggunakan objek dari Python. Kita tidak perlu menulis query SQL lagi jika ingin berinteraksi dengan database yang dikelola oleh Django. Setiap model di Django direpresentasikan sebagai tabel dalam database, dengan atribut dari model tersebut sebagai kolom-kolomnya.
Django dapat mengelola konversi antara sintaks dan objek Python ke dalam query SQL, maupun sebaliknya. Konversi otomatis ini memudahkan kita dalam melakukan operasi pada database seperti membuat, membaca, mengubah, serta menghapus data. Django juga dapat menerima berbagai jenis database, sehingga membuat kita tidak perlu khawatir tentang perbedaan antar DBMS yang digunakan.