Fakultas Ilmu Komputer UI
Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
P
ppw-lab
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Requirements
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Locked files
Build
Pipelines
Jobs
Pipeline schedules
Test cases
Artifacts
Deploy
Releases
Model registry
Operate
Environments
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Code review analytics
Issue analytics
Insights
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
AHMAD WIGO PRASETYA
ppw-lab
Commits
5bb6d5d0
Commit
5bb6d5d0
authored
7 years ago
by
Fadh Lie
Browse files
Options
Downloads
Plain Diff
Merge branch 'master' of
https://gitlab.com/PPW-2017/ppw-lab
parents
b10ffccd
ad670ac2
No related branches found
No related tags found
No related merge requests found
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
README.md
+3
-3
3 additions, 3 deletions
README.md
lab_2/README.md
+55
-12
55 additions, 12 deletions
lab_2/README.md
with
58 additions
and
15 deletions
README.md
+
3
−
3
View file @
5bb6d5d0
...
...
@@ -34,8 +34,8 @@ code snippets.
After you work at
[
Lab 1
](
lab_1/README.md
)
, make sure to link this repository to your Lab 1 Repository :
1.
Add this repository link to your remote list as
`upstream`
(
`git remote add upstrea
n
https://gitlab.com/PPW-2017/ppw-lab`
)
2.
Pull the latest update to check whether new tutorials ha
s
been updated (
`git pull upstream master`
)
1.
Add this repository link to your remote list as
`upstream`
(
`git remote add upstrea
m
https://gitlab.com/PPW-2017/ppw-lab`
)
2.
Pull the latest update to check whether new tutorials ha
ve
been updated (
`git pull upstream master`
)
3.
Fix any merge conflict(s) that might arise (hopefully none)
-
Always choose latest commit from
`upstream`
when fixing merge
conflict(s)
...
...
@@ -72,7 +72,7 @@ where `<PATH>` is a path to a directory in your local machine.
5.
Go to the directory where the cloned repository is located in your
local machine.
6.
Add new remote called
**upstream**
that points to the original
GitLab repository. Use Git command:
`git remote add upstream
git remote add upstream
https://gitlab.com/PPW-2017/ppw-lab`
GitLab repository. Use Git command:
`git remote add upstream https://gitlab.com/PPW-2017/ppw-lab`
7.
Tell your TA about your GitLab username and URL to your tutorial
repository so s/he can grade it later.
8.
Ensure that your repository page has visibility level set to
...
...
This diff is collapsed.
Click to expand it.
lab_2/README.md
+
55
−
12
View file @
5bb6d5d0
...
...
@@ -30,10 +30,12 @@ Dengan kata lain, setiap _Django project_ sebaiknya memiliki _virtualenv_ nya se
## Struktur _Django Project_
`django-admin.py`
adalah _script_ yang digunakan untuk pembuatan _Django project_.
Co
nt
o
h untuk membuat suatu _project_
`django-admin.py`
adalah _script_ yang digunakan untuk pembuatan _Django project_.
Peri
nt
a
h untuk membuat suatu _project_
```
django-admin.py startproject <NAMA-PROJECT> ```
> Ganti `<NAMA-PROJECT>` dengan nama yang kalian inginkan, misalkan Lab-PPW-2017
Struktur project yang dihasilkan,
1. `virtualenv` sebagai sub-dir _project_ <NAMA-PROJECT>
...
...
@@ -75,11 +77,16 @@ Struktur project yang dihasilkan,
>
> Jangan lupa untuk memasukkan `virtualenv` ke dalam `.gitignore`
Perhatikan bahwa direktori dengan nama `<NAMA-PROJECT>` ada dua buah.
Direktori yang pertama adalah direktori utama _project_ , sementara direktori yang kedua adalah
direktori konfigurasi atau pengaturan _project_ yang di dalamnya terdapat berkas `settings.py`.
`django-apps-1` dan `django-apps-2` merupakan `apps` milik Django. Contoh yang sudah ada ialah `lab_1` dan `lab_2`.
Dalam satu _project_ bisa terdapat banyak `apps`. Untuk membuat suatu app, gunakan perintah
```
python manage.py startapp
<app-name>
```
> ganti` <app-name>` menggunakan nama sesuai kebutuhan/keinginan kalian, misalkan `lab_x`.
> sebelum menjalankan perintah ini, pastikan sudah berada satu direktori dengan berkas `manage.py`.
>
> Coba perintah `ls` (linux) atau `dir` (windows)
...
...
@@ -99,18 +106,52 @@ Struktur umum dari suatu `apps` ialah :
...
```
> Suatu `app` dianggap aktif atau terpakai jika `app` tersebut didaftarkan di pengaturan `INSTALLED_APP`
> Suatu `app` dianggap aktif atau terpakai jika `app` tersebut didaftarkan di pengaturan `INSTALLED_APP
S
`
> pada berkas `settings.py` (ada pada direktori pengaturan _project_, yang nama direktorinya sama dengan nama _project_ Django)
Secara _default_ , tidak ada berkas `urls.py` karena Django memberikan kebebasan untuk membuat _routing_ sesuai kebutuhan pengembang.
Namun untuk _best practice_ dan kemudahan pengembangan, berkas `urls.py` dibuat manual untuk setiap `app`. Berkas `urls.py` satu level
(satu direktori) dengan berkas `views.py`
Selain itu, untuk menyimpan berkas `HTML` (misalkan `index.html`) biasanya dibuat suatu direktori bernama `templates` di
dalam direktori `<app-name>`, jadi struktur dari suatu `app` nantinya akan menjadi
```
python
-
<app-name>
__init__.py
admin.py
apps.py
models.py
tests.py
views.py
urls.py
-
migrations
...
-
templates
...
```
> Apa beda `Project` dan `App` ? _Project_ adalah kumpulan konfigurasi dan beberapa app (aplikasi) untuk suatu website tertentu.
> Sedangkan _App_ adalah suatu aplikasi web yang memiliki fungsi/tugas tertentu, misalkan sebagai database atau sebagai aplikasi survei sederhana.
> Satu _project_ dapat memiliki banyak _app_, dan satu _app_ dapat digunakan di banyak _project_.
>
> <cite> https://docs.djangoproject.com/en/1.11/intro/tutorial01/ </cite>
> Tutorial pembuatan Django _project_ : <cite> https://docs.djangoproject.com/en/1.11/intro/tutorial01/ </cite>
Sekilas tentang berkas `settings.py` , pada berkas ini terdapat _section_ `INSTALLED_APPS` yang berfungsi untuk
mendaftarkan aplikasi yang akan dipakai/dijalankan pada suatu _project_.
Contohnya, mendaftarkan `app` bernama "lab_ppw" ke INSTALLED_APPS :
```
python
INSTALLED_APPS = [
...
lab_1,
lab_ppw,
]
```
> jika "sedang" tidak ingin menggunakan suatu `app`, daripada menghapus folder `app` tersebut, kamu bisa
> menon-aktifkan `app` tersebut dengan menghapusnya dari _INSTALLED_APPS_
## Routing pada Django
...
...
@@ -132,10 +173,11 @@ Perhatikan struktur _project_ Django, terdapat sub-dir dengan nama sama persis d
wsgi.py
```
Secara sederhana, format penulisan utk URL pada Django ialah `url(regex,view, kwargs=None, name=None)`
Secara sederhana, format penulisan utk URL pada Django ialah `url(regex,
view, kwargs=None, name=None)`
- regex ialah _pattern_ pattern yang akan dicocokkan
- `view` ialah fungsi yang untuk memproses _request_ dan mengatur tampilan.
- regex ialah _pattern_ yang akan dicocokkan
- `view` ialah fungsi yang untuk memproses _request_ dan mengatur tampilan.
- _kwargs_ dan _name_ saat ini bisa diabaikan/dikosongkan
> Untuk mengetahui lebih lanjut format penulisan urls, cek [link] (https://docs.djangoproject.com/en/1.11/_modules/django/conf/urls/#url) berikut
...
...
@@ -184,8 +226,9 @@ Penjelasan ringkas :
Pada berkas `views.py` diasumsikan (dan seharusnya) ada fungsi bernama `index` atau `def index(request):`.
Pada berkas `views.py` ini, juga akan diatur bagaimana _request_ akan diproses sebelum ditampilkan.
Perhatikan fungsi `render` yang ada pada berkas `views.py`, terdapat berkas `HTML`.
Direktori `templates` berfgunsi untuk menyimpan berkas HTML yang dipanggil oleh `views`.
Perhatikan fungsi `render` yang ada pada berkas `views.py`, terdapat berkas HTML.
Direktori `templates` berfungsi untuk menyimpan berkas HTML yang dipanggil oleh `views`, jadi
pastikan berkas tersebut ada dan namanya sesuai untuk menghindari kesalahan.
> Untuk memastikan hal tersebut, cek penggunaan `views` pada https://gitlab.com/PPW-2017/ppw-lab/blob/master/lab_1/views.py
>
...
...
@@ -236,7 +279,7 @@ di sebuah `landing page`
1. Menampilkan Halaman _Landing Page_
1. [ ] Isi variabel `landing_page_content` sehingga menjadi _Landing Page_ yang layak (Min 30 karakter)
2. [ ] Buatlah konfigurasi URL dalam _file_ `lab_2/
view
s.py` sehingga _Landing Page_ bisa diakses dengan URL `<HEROKU_APP_HOST>/lab-2/`
2. [ ] Buatlah konfigurasi URL dalam _file_ `lab_2/
url
s.py` sehingga _Landing Page_ bisa diakses dengan URL `<HEROKU_APP_HOST>/lab-2/`
> contoh : djangoppw.herokuapp.com/lab-2/
2. Membuat _Django Apps_ baru bernama *lab_2_addon* lalu lakukan konfigurasi pada `views.py`
1. [ ] Buatlah sebuah `app` baru (Hint: Jalankan _command_ `python manage.py help`)
...
...
@@ -252,7 +295,7 @@ di sebuah `landing page`
{'subject' : 'Birth Date', 'value' : birth_date.strftime('%d %B %Y')},
\
{'subject' : 'Sex', 'value' : ''}]
def index
_addon
(request):
def index(request):
response = {}
return render(request, 'description_lab2addon.html', response)
```
...
...
@@ -265,9 +308,9 @@ di sebuah `landing page`
1. [ ] Ubah file `urls.py` yang ada didalam _folder_ `lab_2_addon` dan `praktikum` sehingga URL `<HEROKU_APP_HOST>/lab-2-addon/`
bisa menampilkan halaman `description_lab2addon.html`
2. [ ] Ubah _section_ INSTALLED_APPS sehingga `apps lab_2_addon` dapat dikenali sebagai _Django Apps_ yang aktif (Tanpa melakukan langkah ini
maka
kalian tidak bisa
halaman `description_lab2addon.html` tidak bisa ditampilkan melalui URL yang sudah dibuat di `urls.py`)
maka halaman `description_lab2addon.html` tidak bisa ditampilkan melalui URL yang sudah dibuat di `urls.py`)
3. [ ] Tampilkan halaman _Landing Page_ jika ada _request_ yang datang pada Root URL _website_ kalian
>Ketika mengakses `<HEROKU_APP_HOST>/` maka _Landing Page_ akan tampil
>Ketika mengakses `<HEROKU_APP_HOST>/` maka _Landing Page_ akan tampil
(Hint: Gunakan RedirectView)
4. [ ] Isilah _file_ `lab_2_addon/tests.py` dengan cara memindahkan `class Lab2AddonUnitTest` beserta semua
_Test Case_ yang ada lalu aktifkan _Test Case_ tersebut dengan menghilangkan `skip` di atas setiap _Test Case_.
Import semua `library`, `function` atau `variabel` yang dibutuhkan agar _Test Case_ bisa dijalankan
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment