Tugas 2 - hyvos07/celestia GitHub Wiki
Tugas 2
Step by Step Pembuatan Project Django
-
Membuat direktori baru bernama
celestiadan 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.txtyang berisi:django gunicorn whitenoise psycopg2-binary requests urllib3dan 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.pyuntuk project yang baru dibuat tersebut. -
Membuat aplikasi dengan nama
mainpada proyek ini dengan menjalankan command:python manage.py startapp mainsetelah dibuat, aplikasi
mainjuga perlu ditambahkan kecelestia/settings.pypada variableINSTALLED_APPSagar dapat menjalankan aplikasimaintersebut. -
Membuat model
Productdengan 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 PropertyN.B. Ada beberapa field yang masih dalam bentuk sederhana, sehingga tidak ada di dalam bentuk aslinya (seperti
imageyang seharusnya menggunakanImageField) agar dapat lebih diperdalam di minggu-minggu berikutnya. -
Membuat function
show_main()padaviews.pyuntuk bisa me-return template HTML bernamamain.htmlyang dibuat di direktoritemplates. HTML tersebut akan menampilkan nama aplikasi, data darishow_main()dan identitas diri sendiri. -
Membuat sebuah routing pada
urls.pydalam direktori aplikasimainuntuk memetakan fungsi yang telah dibuat padaviews.py. Diurls.py, ditambahkanpath('', show_main, name='show_main')ke dalamurlpatternsmilik 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.pydalam Django Project akan menentukan views apa yang perlu dikembalikan ke pihak client berdasarkan request yang dikirim oleh client.views.pymenyimpan business logic dan pemrosesan data yang diminta pada request dari client. Hasil data dari views tersebut dapat dikembalikan bersama dengan tampilan web dari template.htmlyang 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.pyberfungsi sebagai jembatan perantara antara database dan views. Di dalammodels.py, disimpan bentuk model dari data yang ada di dalam database. Denganmodels.py,views.pyjuga dapat berinteraksi dan mengambil data-data dari database sehingga data-data tersebut dapat diproses untuk memenuhi permintaan request.
Fungsi git pada Pengembangan Perangkat Lunak
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
gitdapat menyimpan perubahan kode dari suatu proyek secara rinci. Setiap kali ada perubahan pada kode, seorang developer dapat mencatatnya digitsebagai 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)
gitmemiliki 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
gitdapat 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.