Panduan Pemrograman Web dengan Python
Panduan Pemrograman Web dengan Python
Silabus
• Python programming
• OOP & Introduction to Django
• HTML,CSS programming
• Django Admin
• Database and CRUD Operation
• Create Home Page
• Implementing Bootstrap 5 for styling UI
• Wrapping UP
Python Basic
• IDLE (Integrated Development and Learning)
• Visual Studio Code
• Tipe Data (Integer,Float, Strings)
• Built-in function
• Membuat Function
• Operator Matematika
• Variabel
• List,Tuples,Dictionaries
• Percabangan
• Perulangan
• Object Oriented Programming
Sejarah Python
• Diciptakan Guido van Rossum seorang pria berkebangsaan Belanda
• mulai mengembangkan bahasa pemrograman Python tersebut sejak tahun
1989 di Centrum Wiskunde & Informatica (CWI) dan akhirnya bahasa
pemrograman Python secara resmi dirilis kepada publik pada tahun 1991.
• Nama Python sendiri sebenarnya bukan diambil dari nama ular piton.
• Nama Python tersebut diambil dari sebuah acara humor yang ditayangkan
oleh channel BBC pada tahun 1980-an yang berjudul “Monty Python’s Flying
Circus”
• Pada tahun 1994, akhirnya Python versi 1.0 dirilis kepada publik
[Link]
Implementasi Python
• Pengembangan Website
• Pengembangan IOT
• Data Mining
• Pengembangan Machine Learning
• Pengembangan game
[Link]
Internal Proses
• Kode python (.py)
• Dicompile menjadi bytecode disimpan di dalam
memory atau dalam file .pyc
• Interpreter melakukan eksekusi bytecode sesuai
OS
IDLE (Integrated Development and Learning)
• Interactive Mode
Tipe Data
[Link]
Integers
Operator
1. Arithmetic Operators
2. Relational Operators
3. Bitwise Operators
4. Assignment operators
5. Identity operators
6. Membership operators
[Link]
Arithmetic/Math Operator
[Link]
Bitwise Operators
Assignment operators
Identity operators
Membership operators
Floats
Character String/String
• Sequence of character
• Immutable
Latihan
• Buat program menggunakan console menghitung luas segitiga dengan alas dan tinggi
diinput
• Buat program menggunakan Visual Studio Code untuk console menghitung luas
persegipanjang : luas = panjang * lebar
Built-in Function
[Link]
Built-in Function
# len()
nama = 'Denny Chandra'
print("Panjang string",len(nama))
#filter
umur = [5, 12, 17, 18, 24, 32]
def myFunc(x):
if x < 18:
return False
else:
return True
dewasa = filter(myFunc, umur)
print("kategori dewasa : ")
for x in dewasa:
print(x)
Methods
• Methods = function di dalam kelas
[Link]
Built-in Methods
[Link]
Built-in Methods
#string method
nama = " denny chandra "
print("upper",[Link]())
print("capitalize",[Link]())
print("title",[Link]())
value = "100"
print("isdigit",[Link]())
print("isaplha","abcdef".isalpha())
[Link]
Modules
• Modul Python adalah file yang berisi definisi dan statemen Python.
• Sebuah modul dapat mendefinisikan fungsi, kelas, dan variabel.
• Modul juga dapat menyertakan kode yang dapat dijalankan.
• Pengelompokan kode terkait ke dalam modul membuat kode lebih mudah dipahami dan
digunakan.
• Itu juga membuat kode terorganisir secara logis.
[Link]
Contoh menggunakan Modules : array
• Modul ini mendefinisikan tipe objek yang secara ringkas dapat mewakili
array nilai dasar: characters, integers, angka floating point.
• Array sangat mirip dengan lists, kecuali bahwa jenis objek yang disimpan
di dalamnya dibatasi.
• Tipe ditentukan pada waktu pembuatan objek dengan menggunakan
kode tipe
from array import array
myarray = array('i',[5,6,7,2,3,5])
print(myarray)
[Link]
Tipe Pada Array
[Link]
Membuat Modul
# A simple module, [Link]
"""add x,y."""
def add(x, y):
return (x+y)
"""subtract x,y."""
def subtract(x, y):
return (x-y)
#test_calc.py
# importing module [Link]
import calc
print([Link](10, 2))
[Link]
Package
• Python memungkinkan untuk merangkum beberapa modul dalam satu package.
• Merupakan best practice jika modul-modul ini disatukan secara tematis.
• Berbeda dengan modul, package dapat berisi sejumlah package lain, yang dapat
berisi modul atau package.
• Untuk membuat package, subfolder harus dibuat dalam directory
• Nama folder harus sesuai dengan nama package
• Folder ini dapat berisi file program bernama __init__.py
• File ini berisi kode inisialisasi yang dieksekusi sekali ketika package diimpor.
[Link]
Package
[Link]
Lists
• Digunakan untuk ordered sequence of elements
• Singkatnya, list ini untuk membantu menyimpan data terkait dan
melakukan operasi yang sama pada beberapa nilai sekaligus.
• Tidak seperti string, lists sifatnya mutable (bisa berubah)
my_list = [1, 2, 3]
my_list2 = ["a", "b", "c"]
my_list3 = ["4",2, "book", 5]
alpha_list = list((1,2,3))
print(alpha_list)
[Link]
Lists
[Link]
Lists
my_list = [1, 3, 4,2]
my_list.append(5)
print(my_list)
my_list.reverse()
print(my_list)
my_list.sort()
print(my_list)
my_list.sort(reverse=True)
print(my_list)
#combine lists
my_list2 = ["a", "b", "c"]
combo_list = my_list + my_list2
print(combo_list)
combo_list.sort()
[Link]
Tuple
• Digunakan untuk ordered sequence of elements
• Singkatnya, list ini untuk membantu menyimpan data terkait dan
melakukan operasi yang sama pada beberapa nilai sekaligus.
• Tidak seperti lists, tuple sifatnya immutable (tidak bisa berubah)
• Operasinya lebih cepat dari lists
[Link]
Tuple
my_tupple = (0,1,2,3,4,5,6,7,8,9,10)
print(my_tupple)
print(my_tupple[0])
print(my_tupple[0:3])
print(my_tupple[0:10:2])
[Link]
Dictionaries
• Dictionaries menyimpan indeks dengan kunci yang dipetakan
ke nilai tertentu.
• Sifatnya mutable
new_dict = {
"brand": "Honda",
"model": "Civic",
"year": 1995
}
print(new_dict)
new_dict["year"] = 2000
print(new_dict)
#menampilkan berdasarkan key
print(new_dict["brand"])
[Link]
Conditional
• If
• Elif
• If Else
• If Not
nilai = 50
#if
if nilai > 60:
print("lulus")
#elif, utk kondisi lain
elif nilai == 60:
print("remedial")
#jika tidak ada di kondisi diatas
else:
print("sampai jumpa di semester pendek")
new_list = [1, 2, 3, 4]
x = 1
if x not in new_list:
print("'x' bukan di list, so this is True!")
[Link]
Switch Case?
• Tidak ada bentuk switch case
• Alternati menggunakan Dictionary Mapping
# This code runs only in python 3.10 or above versions
def number_to_string(argument):
match argument:
case 0:
return "zero"
case 1:
return "one"
case 2:
return "two"
case default:
return "something"
result = number_to_string(0)
print(result)
[Link]
Loops
• while
# while loop
count = 0
while (count < 3):
count = count + 1
print("Hello Geek")
a = [1, 2, 3, 4]
while a:
print([Link]())
else:
print("done")
[Link]
Contoh Lain (while)
• Do-While
while True:
# Code to be executed
user_input = input("Enter 'q' to quit: ")
if user_input == 'q':
break
• While
user_input = input("Enter 'q' to quit: ")
[Link]
Loops
• for
# Iterating over a list
l = ["a", "b", "c"]
for i in l:
print(i)
#continue
for letter in 'abcdef':
if letter == 'b' or letter == 'd':
continue
print('Current Letter without b,d :', letter)
#break
for letter in 'abcdef':
if letter == 'd':
break
print('Current Letter before break :', letter)
#pass
for letter in 'abcdef':
pass
print('last letter', letter)
[Link]
Loops
new_dict = {
"brand": "Honda",
"model": "Civic",
"year": 1995
}
[Link]
Latihan
• Buat program untuk menampilkan bilangan genap dari 2 s.d 100 menggunakan
for dan range (range([start], stop, [step]))
• Buat program untuk menampilkan bilangan ganjil dari 99 s.d 1
[Link]
OOP
• Hampir semua elemen di Python adalah Object
• Class = blue print untuk membuat object
• Object = instansiasi/perwujudan dari Class
[Link]
OOP – membuat class
#[Link]
class Person(object):
def __init__(self,nama,alamat):
[Link] = nama
[Link] = alamat
def tampil(self):
print('nama = ',[Link],'alamat = ',[Link])
[Link]
OOP – membuat object
#test_person.py
person = Person("denny","bandung")
[Link]()
[Link]
OOP – membuat subclass
#[Link]
from person import Person
class Siswa(Person):
def __init__(self, nama, alamat,nim):
super().__init__(nama, alamat)
[Link] = nim
def tampil(self):
print('nama = ',[Link],'alamat = ',[Link],'nim = ',[Link])
[Link]
OOP – membuat object dari subclass
#test_siswa.py
siswa = Siswa("denny","bandung","12345")
[Link]()
[Link]
Latihan
• Buat class : Vehicle dengan property make,model,year dan 1 function
start_engine.function start_engine melakukan print di console untuk menampilkan
propertynya
• Buat class Car extends Vehicle, definisikan ulang function start_engine
• Buat class MotorCycle extends Vehicle, definisikan ulang function start_engine
• Buat object dari Car dan Motorcycle kemudian panggil function start_engine
Tanya Jawab, diskusi
[Link]
HTML,CSS, JavaScript
Istilah Pada Web
• Halaman web (web page)
Halaman yang digunakan untuk menampilkan informasi-informasi yang
terdapat di web.
• Situs web (web site)
Sekumpulan halaman web milik seseorang, perusahaan atau instansi yang
dikumpulkan dan diletakkan dalam web server.
• Homepage
Istilah untuk menyebut halaman pertama yang akan muncul jika sebuah
situs web diakses.
Istilah Pada Web
• Hyperlink atau Link
Penghubung antar halaman web.
• URL (Uniform Resource Locator)
Alamat suatu dokumen atau situs web yang bersifat unik dan khas, contoh :
• [Link]
• [Link]
• [Link]
Arsitektur Client-Server
Teknologi Web Client - Server
• Teknologi Web Pada Sisi Client
Pemrosesan kode program dilakukan di client.
Contoh : JavaScript,TypeScript, Angular, ReactJS, VueJS
• Teknologi Web Pada Sisi Server
Pemrosesan kode program dilakukan di server.
Contoh : PHP, JSP, ASP, NodeJS,Python,Java Servlet
HTML (Hypertext Markup Language)
• HTML Merupakan bahasa standard yang di gunakan untuk membuat
dokumen web .
• Kemampuan HTML :
• Membuat tampilan dari halaman web.
• Membuat form.
• Menambahkan objek-objek seperti gambar, audio, video, animasi, dll.
Tag HTML
• Tag adalah kode-kode yang digunakan untuk men-setting dokumen web.
• Nama tag ditulis di dalam tanda “<” dan “>” dan untuk tag penutup
ditambahkan tanda “/”.
• Boleh ditulis dengan huruf besar maupun kecil.
• Digunakan sepasang, contoh : <form> dan </form>.
• Ada tag yang tidak perlu sepasang, contoh : <br/>, <hr/>, <img/>, dll.
Struktur HTML
<!DOCTYPE html>
<html lang="en">
<head>
<title>Title</title>
<meta name="Keywords" content=""/>
<meta name="Description" content=""/>
<link rel="icon" href="" type="image/x-
icon"/>
</head>
<body>
<div>Hello World</div>
</body>
</html>
Struktur HTML
• Tag <html>…</html> berfungsi untuk menyatakan bahwa dokumen
tersebut adalah dokumen HTML.
• Tag <head>…</head> berisi kode-kode untuk menuliskan
keterangan/informasi tentang dokumen HTML tersebut.
• Tag <title>…</title> digunakan untuk membuat judul halaman Web (web
page).
• Tag <body>…</body> berisi tag-tag untuk isi atau layout tampilan
halaman web.
• Tag <meta> mendefinisikan metadata tentang dokumen HTML.
Metadata adalah data (informasi) tentang data.
CSS (Cascading Style Sheet)
• CSS adalah kumpulan format yang digunakan untuk mengatur tampilan
atau isi dari sebuah halaman web menjadi lebih fleksibel.
• Elemen dasar CSS :
1. Selector
Adalah tag/elemen normal pada HTML
2. Deklarasi
Adalah satu atau beberapa perintah/nilai dari CSS yang menunjukkan
type/bentuk yang diaplikasikan pada selector.
Pengkodean CSS
• Inline style • Internal style
<div style="font-family: verdana; <head>
font-size: 12px"> <style type="text/css">
Hello World div { font-family: verdana; font-size:
</div> 20px }
body { background-color: yellow }
</style>
</head>
Pengkodean CSS
• Eksternal style
<head>
<link
href="[Link]
css" rel="stylesheet" integrity="sha384-
EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLA
SjC" crossorigin="anonymous">
</head>
[Link]
Selector CSS
• Class menggunakan titik
.embedded{
font-size: 20px;
color: red;
}
• Id menggunakan #
#div1{
font-size: 20px;
color: green;
}
JavaScript
• JavaScript diciptakan oleh Brendan Eich pada tahun 1995, dan menjadi standar ECMA
pada tahun 1997.
• ECMA-262 adalah nama resmi dari standar. ECMAScript adalah nama resmi dari bahasa
tersebut.
• TypeScript adalah strongly typed programming language yang dibuat diatas JavaScript.
Library/Framework pada Front End
• JQuery = Library JavaScript
• BootStrap = Framework HTML, CSS, Javascript
• Angular = Framework JavaScript
• ReactJS = Library JavaScript
• VueJS = Framework JavaScript
• Dan masih banyak lagi yang lainnya
[Link]
Tugas
• Buat 3 buah halaman html dalam 1 folder
• [Link]
• [Link]
• [Link]
• Tambahkan style (slide 67)
• Buat navigasi dari [Link] ke [Link] dan ke [Link] dan sebaliknya
• Buat menjadi halaman profile masing-masing.
• [Link] adalah halaman utama
• [Link] mendeskripsikan dirimu
• [Link] adalah kontakmu
Django Introduction & MVT Pattern
Django
• Django adalah framework web open source gratis untuk membangun Aplikasi web
berbasis Python yang modern.
• Django membantu developer dengan cepat dalam membangun aplikasi web dengan
mengabstraksikan banyak pekerjaan yang berulang dalam membangun situs web,
seperti menghubungkan ke database, menangani keamanan, mengaktifkan otentikasi
pengguna, membuat rute URL,menampilkan konten pada halaman melalui template
dan form,
• Mendukung banyak basis data dan menyiapkan antarmuka admin.
• Dengan Django maka developer akan fokus kepada fungsional aplikasi daripada
mengerjakan hal yang berulang-ulang dalam membuat web yang standar
Django
• Django merupakan salah satu framework yang banyak digunakan perusahaan besar
seperti Instagram, Pinterest, Mozilla dan National Geographic, DropBox dan lainnya.
• Django sangat mudah untuk digunakan oleh start up untuk membangun sebuah project
[Link]
django#:~:text=django%20lebih%20dulu.-
,Pengenalan%20Django,dan%20cepat%20untuk%20melakukan%20pengembangan.
The Power Of Django
• Object-relational mapper
• Automatic admin interface
• Robust template system
• Quick internationalization
Instalasi Django
• Menggunakan command prompt ketik : pip (untuk mac pip3)
• pip adalah package manager untuk python package
• pip sudah otomatis ada di dalam python versi 3.4 ke atas
Instalasi Django
• Menggunakan command prompt ketik : pip install Django==4.1.3
• Kemudian cek versi django yang terinstall
Django MVT
• MVT (Model View Template) adalah software design pattern.
• Ada tiga komponen penting yaitu Model, View dan Template.
• Model membantu menangani database, Template menangani UI (User Interface) dan
View digunakan untuk menangani proses bisnis dan menghubungkan antara model dan
template
[Link]
Django MVT
[Link]
Membuat Project
• Buat folder di drive c atau drive lain misal c:\projectdjango
• Klik kanan di c , New -> Folder
urlpatterns = [
path('admin/', [Link]),
path('',[Link])
]
Membuat halaman Home Page
• Buka file [Link] di folder book
def about(request):
return HttpResponse('<h1>Welcome to About Page</h1>')
Latihan : membuat Templates (HTML) untuk halaman about/
• Buat file [Link] di dalam folder book/templates
• Isi [Link] dengan html seperti [Link], ubah isinya
• Ubah book/[Link] supaya method about me-render [Link]
Passing data ke template
• Buka file book/[Link]
from [Link] import render
from [Link] import HttpResponse
def about(request):
return render(request,'[Link]')
Passing data ke template
• Buat file book/templates/[Link]
<!DOCTYPE html>
<html lang="en">
<head>
<title>Movies App</title>
<meta name="description" content="Aplikasi BookReview"/>
<meta name="keywords" content="book review,katalog buku"/>
</head>
<body>
<h1>Welcome to Home Page {{ name }}</h1>
<div>Konten disini</div>
</body>
</html>
Latihan Passing data ke template about
Membuat Hyperlink
• Buka file bookreviews/[Link]
urlpatterns = [
path('admin/', [Link]),
path('',[Link],name='home'),
path('about/',[Link],name='about')
]
Membuat Hyperlink
• Buka file book/templates/[Link] dan [Link]
• Beri potongan kode berikut setelah <body>
<a href="{% url 'home' %}">Home</a>
<a href="{% url 'about' %}">About</a>
Menambahkan bootstrap di templates
• Ke alamat [Link]
• Klik Icon disk sebelah kanan
Menambahkan bootstrap di templates
• Paste di templates [Link] dan [Link]
Menambahkan bootstrap di templates
• Tambahkan elemen <div class=“container”> setelah body
<body>
<div class="container">
<a href="{% url 'home' %}">Home</a>
<a href="{% url 'about' %}">About</a>
<h1>Welcome to Home Page {{ name }}</h1>
<div>Konten disini</div>
</div>
</body>
Menambahkan bootstrap di templates
Menambahkan form search di HomePage
• Menggunakan VSCode buka book/templates/[Link]
<body>
<div class="container">
<a href="{% url 'home' %}">Home</a>
<a href="{% url 'about' %}">About</a>
<form action="">
<div class="mb-3">
<label class="form-label">Cari Buku:</label>
<input type="text" name="judul" class="form-control" />
</div>
<button type="submit" class="btn btn-primary">Search</button>
</form>
</div>
</body>
Menambahkan form search di HomePage
Menambahkan form search di HomePage
• Menggunakan VSCode buka book/[Link]
from [Link] import render
from [Link] import HttpResponse
def about(request):
return render(request,'[Link]',{'appName' : 'BookReview'})
Menambahkan form search di HomePage
• Menggunakan VSCode buka book/templates/[Link]
<div class="container">
<a href="{% url 'home' %}">Home</a>
<a href="{% url 'about' %}">About</a>
<form action="">
<div class="mb-3">
<label class="form-label">Cari Buku:</label>
<input type="text" name="judul" class="form-control" />
</div>
<button type="submit" class="btn btn-primary">Search</button>
</form>
{% if searchJudul %}
Pencarian untuk <strong>{{ searchJudul }}</strong>
{% endif %}
</div>
Menambahkan form search di HomePage
Referensi Django Template Language
• [Link]
Resume command
• python –m django startproject bookreviews (untuk membuat project)
• python [Link] runserver (untuk menjalankan project)
• python [Link] startapp book (untuk membuat app)
Model
• Membuat model Buku
• Manage migrations
• Mengakses Django admin
• Mengkonfigurasi gambar
• Menyimpan gambar (upload)
• Menambah model di admin
Model
• Model adalah object yang dipetakan ke database
• Ketika membuat model, Django melakukan eksekusi SQL untuk membuat
tabel yang sesuai dalam database tanpa kita harus menulis satu baris pun
dari SQL
Membuat Model Buku
• Buka menggunakan VSCode book/[Link]
from [Link] import models
[Link]
Referensi Django Model
• [Link]
Instalasi Pillow (library Image)
• Pillow adalah library untuk melakukan image processing
• Pada command Prompt ketik : pip install pillow
Managing Migrations
• Migrations bertujuan untuk men-generate skema database
• Perintah migrate akan membuat database berdasarkan default setting
• Ketik : python [Link] migrate
Managing Migrations
• Membuat migrations untuk Book
• Ketik : python [Link] makemigrations
Managing Migrations
• Jalankan migrations
• Ketik : python [Link] migrate
Managing Migrations
• Jadi setiap penambahan model harus melakukan command
• python [Link] makemigrations
• python [Link] migrate
Mengakses Django admin
• Alamat admin sudah definisikan di awal (default) di bookreviews/[Link]
urlpatterns = [
path('admin/', [Link]),
path('',[Link],name='home'),
path('about/',[Link],name='about')
]
urlpatterns += static(settings.MEDIA_URL,
document_root=settings.MEDIA_ROOT)
Menambahkan model Book ke admin
• Buka menggunakan VSCode file : book/[Link]
from [Link] import admin
from .models import Book
• Instalasi ini hanya dilakukan sekali di komputer, kecuali jika ingin update
• pip install Django==4.1.3 (untuk install Django)
• pip install pillow (untuk install library pillow)
Troubelshooting
• Command pyton atau py tidak dikenali, pastikan ketika instalasi sepert ini:
Troubelshooting
• Command pip tidak dikenali, bisa dengan custom install seperti gambar dibawah
VSCode Extension: SQLite
• Untuk melihat isi dari db.sqlite3 maka bisa menggunakan extension SQLite
VSCode Extension: SQLite
</ul>
</div>
</div>
</nav>
<div class="container">
{% block content %}
{% endblock content %}
</div>
</body>
</html>
Masukkan base template ke setiap halaman (home,about,detail)
• Ketik paling atas
{% extends '[Link]' %}
{% block content %}
{% extends '[Link]' %}
{% block content %}
<div class="card">
<img alt="" class="card-img-top" src="{{ [Link] }}" />
<div class="card-body">
<h5 class="card-title fw-bold">
{{ [Link] }} | {{ [Link] }} | {{ book.tanggal_rilis|date:"d-m-Y" }}
</h5>
<p class="card-text">
{{ [Link] }}
<br/>
{{ [Link] }} | {{ book.jumlah_halaman }} | {{ [Link] }}
</p>
</div>
</div>
{% endblock content %}
Hasil implementasi base template
Latihan mini project
• Aplikasi Kantin Sekolah
• Kantin
• nama (input text)
• telpon (input telpon)
• Makanan
• nama (input text)
• harga (input int)
• gambar (input text)
• Stok (input int)
• tersedia (radio button [Tersedia,Tidak Tersedia]
• Kantin ForeignKey(Kantin,on_delete=[Link])
Latihan mini project
• Aplikasi Kantin Sekolah
• Halaman admin CRUD kantin,makanan
• Halaman Home menampilkan makanan kantin bisa search
• Halaman detail adalah detail dari makanan
Langkah-langkah
1. python –m django startproject appkantin
urlpatterns = [
path('admin/', [Link]),
]
urlpatterns += static(settings.MEDIA_URL,document_root=settings.MEDIA_ROOT)
Langkah-langkah
17. Register model di makanan/[Link]
from [Link] import admin
from .models import Kantin
from .models import Makanan
# Register your models here.
[Link](Kantin)
[Link](Makanan)
Langkah-langkah
18. Login (pastikan server jalan, jika tidak jalankan di terminal VSCode :
python [Link] runserver). CRUD kantin, makanan sudah selesai.
Membuat View di Home
19. Membuat view di makanan/[Link]
from [Link] import render
from [Link] import HttpResponse
from .models import Makanan
from [Link] import get_object_or_404
def detail(request,makanan_id):
makanan = get_object_or_404(Makanan,pk=makanan_id)
return render(request,'[Link]',{'makanan' : makanan})
Langkah-langkah
20. Siapkan url (appkantin/[Link])
from [Link] import admin
from [Link] import path
from [Link] import static
from [Link] import settings
from makanan import views as makananView
urlpatterns = [
path('admin/', [Link]),
path('',[Link],name='home'),
path('makanan/<int:makanan_id>', [Link],
name='detail')
]
urlpatterns +=
static(settings.MEDIA_URL,document_root=settings.MEDIA_ROOT)
Langkah-langkah
21. Seting template (appkantin/[Link])
Langkah-langkah
22. Buat template untuk [Link],[Link] dan [Link] (File
kosong dulu)
Langkah-langkah
23. Buat template untuk [Link]
• Copy dari [Link] di project bookreviews
• Sesuaikan
Langkah-langkah
24. Buat template untuk [Link]
• Copy dari [Link] di project bookreviews
• Sesuaikan
Langkah-langkah
25. Buat template untuk [Link]
• Copy dari [Link] di project bookreviews
• Sesuaikan
Materi Tambahan (static file) pada project (bookreviews)
• Menambahkan file statis (bisa gambar,css,javascript,pdf)
• Misal akan menambahkan icon dari :
[Link]
book_81467?related_id=81467&origin=pack
• Setelah download nama filenya ‘[Link]’
• Buat folder di dalam bookreviews (static > images)
Materi Tambahan (static file)
• Letakkan file ‘[Link]’ di dalam folder images