PEMROGRAMMAN WEB
SEMESTER GENAP TAHUN AKADEMIK 2021/2022
Disusun oleh :
Nama : Shohibul Maarif
NIM : 2018066
Jurusan : Teknik Informatika
Kelompok : 16
Disusun Oleh
NAMA : Shohibul Maarif
NIM : 2018066
KELOMPOK : 16
Mengetahui Menyetujui
Ka. Lab. Pemrograman Komputer Dosen Pembimbing
KATA PENGANTAR
Dengan memanjatkan puji syukur kehadirat Allah SWT, karena atas
berkah rahmat dan karunia-Nya sehingga penulis dapat menyelesaikan Laporan
Praktikum Pemrogramman Web, guna persyaratan dalam menempuh mata kuliah
tersebut.
Laporan ini disusun berdasarkan percobaan dan teori dasar yang ada dalam
buku panduan praktikum, teori yang diperoleh praktikan dari perkuliahan, dan
tidak lupa yaitu Internet sehingga penulis dapat menambah tidak hanya menguasai
teori saja namun juga memahami serta mengaplikasikannya.
Terwujudnya laporan ini, tentunya tidak lepas dari bantuan-bantuan yang
telah penulis terima. Pada kesempatan ini, penulis menyampaikan terima kasih
yang sebesar-besarnya kepada yang terhormat:
1. Ibu Hani Zulfia Zahro, S.Kom.M.Kom selaku dosen pembimbing Prak-
tikum Pemrograman Web.
2. Bapak Ahmad Fahrudi Setiawan, S.Kom, M.Kom, Ibu Febriana Santi
Wahyuni S.Kom, M.Kom, dan Ibu Nurlaily Vendyansyah, ST, MT Se-
laku dosen matakuliah Pemrograman Web.
3. Bapak Ahmad Faisol, ST, MT selaku Ketua Pelaksana Praktikum Pem-
rograman Web Program Studi Teknik Informatika ITN Malang.
4. Instruktur Lab.Pemrograman Komputer Teknik Informatika yang telah
memberi petunjuk kepada penulis selama pelaksanaan praktikum.
5. Rekan-rekan yang telah membantu dalam pelaksanaan dan penyelesaian
laporan ini.
Harapan penulis, laporan praktikum ini bermanfaat bagi penulis sendiri
maupun pembaca sekalian.
Penulis
iii
iv
DAFTAR ISI
KATA PENGANTAR.............................................................................................ii
DAFTAR ISI..........................................................................................................iii
DAFTAR GAMBAR..............................................................................................vi
DAFTAR TABLE...................................................................................................ix
BAB I PENDAHULUAN.....................................................................................I-1
I.3 Tujuan...........................................................................................................I-2
I.4 Manfaat.........................................................................................................I-2
BAB II HTML.....................................................................................................II-1
II.5 Kesimpulan................................................................................................II-7
III.5 Kesimpulan...........................................................................................III-33
BAB IV JAVASCRIPT......................................................................................IV-1
IV.6 Kesimpulan...........................................................................................IV-11
V.5 Kesimpulan..............................................................................................V-14
VI.5 Kesimpulan...........................................................................................VI-23
VII.5 Kesimpulan........................................................................................VII-22
VIII.5 Kesimpulan......................................................................................VIII-25
BAB IX KESIMPULAN....................................................................................IX-1
DAFTAR PUSTAKA.........................................................................................IX-2
vii
DAFTAR GAMBAR
Gambar 2.1 Tampilan Web Browser index.html..................................................II-3
DAFTAR TABLE
Tabel 2.1 Struktur tag HTML..............................................................................II-2
BAB I
PENDAHULUAN
I.1 Latar Belakang
Website dapat diartikan sebagai kumpulan halaman yang menampilkan
informasi data teks, data gambar diam atau gerak, data animasi, suara, video
dan atau gabungan dari semuanya, baik yang bersifat statis maupun dinamis
yang membentuk satu rangkaian bangunan yang saling terkait dimana
masing-masing dihubungkan dengan jaringan-jaringan halaman. Bersifat
statis apabila isi informasi tetap, jarang berubah, dan isi informasinya searah
hanya dari pemilik website. Bersifat dinamis apabila isi informasi website
selalu berubah-ubah, dan isi informasinya interaktif dua arah berasal dari
pemilik serta pengguna website.
Dalam pembuatan website ada beberapa software yang digunakan
yaitu teks editor seperti sublime text dan visual studio code yang digunakan
untuk menulis dan membaca bahasa pemrograman, kemudian ada xampp
yang berfungsi sebagai server local untuk mengampu berbagai jenis data
website yang sedang dalam proses pengembangan, DBMS (Database
Management System) seperti MySQL, SQL Server, Microsoft Aceess, dan
Web Browser untuk mengakses website. Untuk pengembangan website
umumnya bahasa yang digunakan adalah HTML (Hypertext Markup
Language), CSS (Cascanding Style Sheet), Javascript dan PHP.
Salah satu keuntungan dari belajar pemrograman web adalah melatih
cara berfikir secara logis, seperti yang kita tau bahwa pengembangan
website membutuhkan banyak bahasa pemrograman sehingga untuk
memahami itu kita dituntut untuk berfikir secara logis, selain itu keuntungan
pembuatan sebuah aplikasi berbasis web adalah kita bisa membuat bisnis
sendiri seperti e-commerce dengan bantuan jaringan internet pemasaran kita
dapat lebih luas.
xii
I.3 Tujuan
1. Praktikan mampu membuat sebuah website sederhana menggunakan
HTML dan CSS
2. Praktikan mampu membuat website dinamis menggunakan Javascript
3. Praktikan mampu membuat proses CRUD menggunakan php pada se-
buah website
I.4 Manfaat
1. Praktikan dapat dipermudah dalam membuat dan mendapat informasi
melalui sebuah website
2. Praktikan dapat membuat pekerjaannya menjadi lebih efisien dengan
menggunakan website
3. Praktikan dapat membuat bisnis sendiri seperti e-commerce dengan
bantuan jaringan internet
1
BAB II
HTML
Jumlah Pertemuan : 2 x 60 menit
Tujuan Praktikum : 1. Mampu menerapkan konsep dasar pemrograman
web.
2. Mampu mengetahui fungsi tag-tag pada html.
3. Mampu membuat halaman web menggunakan
html.
Alat / bahan : 1. Seperangkat computer.
2. Perangkat lunak: VS Code, XAMPP.
3. Modul Praktikum WEB 2022.
Penjelasan :
Tabel II.1 Struktur tag HTML
<html>…</html> Merupakan tag dasar yang mendefinisikan bahwa
dokumen ini adalah dokumen HTML.Tag <html>
sebagai pembuka dokumen HTML dan tag
</html> sebagai penutup dokumen HTML
<head>…</head> Merupakan tag setelah <html> untuk menuliskan
keterangan tentang dokumen HTML. Isi teks
diantara <head> dengan </head> sering kali
digunakan untuk mendefinisikan suatu hal yang
harus dijalankan terlebih dahulu.
<title>…</title>
Merupakan tag yang digunakan untuk menuliskan
judul dokumen HTML. Hasil tag ini akan
ditampilkan dalam window caption browser.
<body>…</body> Merupakan section dalam dokumen HTML yang
akan ditampilkan dalam browser.
Aturan :
1. Tag HTML diapit dengan dua karakter kurung bersudut, < dan >.
2. Tag HTML secara normal selalu berpasangan seperti <H1> dengan
</H1>.
3. Tag HTML tidak ‘case sensitive’, seperti <H1> dengan <h1>.
<a href="">Login</a>
</div>
<div class="jumbotron">
<h1>Find Your New Little Cat, Make a New
Friend</h1>
<p>Teman barumu yang lucu menunggu mu, ayo
temukan mereka sekarang</p>
<img src="assets/jumbotron.png" alt="" />
<button type="button">Get Started</button>
</div>
<div class="cards-categories">
<div class="card">
<img src="assets/anggora.png" alt="" />
</div>
<div class="card">
<img src="assets/persia.png" alt="" />
</div>
<div class="card">
<img src="assets/british.png" alt="" />
</div>
</div>
<div class="footer">
<h4>© Lab Pemrograman Komputer 2022</h4>
</div>
</center>
</body>
</html>
Hasil Tampilan :
2. Halaman Login.html
Source code :
<!DOCTYPE html>
<html lang="en">
<head>
<title>Login</title>
</head>
<body>
<center>
<div class="navbar">
<img src="assets/logo.png" alt="" />
<a href="">Home</a>
<a href="">Categories</a>
<a href="">Login</a>
</div>
<div class="form-login">
<h3>Login</h3>
<input type="text" name="username"
placeholder="Username" />
<input type="password" name="password"
placeholder="Password"
/>
<button type="input">Login</button>
</div>
<div class="footer">
<h4>© Lab Pemrograman Komputer 2022</h4>
</div>
</center>
</body>
</html>
Hasil Tampilan :
Hasil Tampilan :
placeholder="Password"
/>
<button type="input">Login</button>
</div>
<div class="footer">
<h4>© RentalGuitar ID</h4>
</div>
</center>
</body>
</html>
Hasil Tampilan :
BAB III
CSS
Jumlah Pertemuan : 2 x 60 menit
Tujuan Praktikum : 1. Mampu menerapkan konsep dasar pemrograman
web.
2. Mampu mengetahui fungsi tag-tag pada html.
3. Mampu membuat halaman web menggunakan
html.
Alat / bahan : 1. Seperangkat computer.
2. Perangkat lunak: VS Code, XAMPP.
3. Modul Praktikum WEB 2022.
a. Element / Tag
Memilih element atau tag sesuai dengan nama tag yang ada
pada halaman HTML.
p {
color: blue; text-align: center;
}
b. ID
Menggunakan atribut id pada tag HTML untuk pemanggi-
lannya. Biasanya digunakan untuk tag / element yang memiliki
style sendiri. Untuk penulisannya menggunakan tanda pagar (#)
kemudian nama idnya. Penerapannya pada HTML tag / element
menggunakan attribut id=”nama_selector_id”.
#coba1 {
text-align: center; color: blue;
}
c. Class
Memilih element dengan atribut class yang spesifik. Untuk
memilih element atau tag yang spesifik, dengan menulis nama el-
ement kemudian diikuti dengan tanda titik(.) dan dilanjutkan den-
gan nama class yang dideklarasikan.
Bentuk Class Umum :
kelas {
text-align: center; color: blue; }
d. Grouping
Penggabungan beberapa element / tag, yang memiliki prop-
erty dan value yang sama sehingga meringkas penulisan syntax,
untuk melakukan grouping hal yang harus diperhatikan adalah
tanda “,” pada selector sebagai pemisah tag – tag / element. Ben-
tuk sebelum Grouping :
h1 {
text-align: center; color: blue; }
h2 {
text-align: center; color: blue;
}
p {
text-align: center; color: blue;
}
3
e. Comment
Comment digunakan untuk mendeskripsikan syntax yang
ada pada css, dan akan diabaikan oleh browser. Penerapannya
menggunakan /*.....*/, ini berlaku untuk satu baris maupun lebih.
C. Penempatan CSS
1. External Style Sheet
Penempatan css pada satu file css, file css tersebut dibuat den-
gan ekstensi .css yang kemudian dipanggil menggunakan element
link pada HTML.
<head>
<link rel= "stylesheet" type="text/css" href =
"cobastyle.css" >
</head>
3. Inline Style
Penempatan style sheet langsung pada tag – tag HTML. Untuk
mendeklarasikan css ini kita menggunakan atribut style pada tag
HTML. Biasanya digunakan jika kita ingin membuat style sendiri
untuk satu tag di dalam HTML.
<h1 style="color:blue;margin-left:30px;">This is a
heading</h1>
4
Hasil :
Hasil :
Hasil :
3. Border
Border style digunakan untuk membuat tampilan border pada
tag HTML. Contoh Border Style :
<!DOCTYPE html>
<html>
<head>
<style>
p.dotted {border-style: dotted;}
p.dashed {border-style: dashed;}
p.solid {border-style: solid;}
p.double {border-style: double;}
p.groove {border-style: groove;}
p.ridge {border-style: ridge;}
p.inset {border-style: inset;}
p.outset {border-style: outset;}
p.none {border-style: none;}
p.hidden {border-style: hidden;}
6
Hasil :
Contoh margin :
p {
margin-top: 100px;
margin-bottom: 100px;8
Lab. RPL Informatika ITN Malang 2021
margin-right: 150px;
margin-left: 80px;
/* ----------------------- */
margin: 100px 150px 100px 80px;
margin: auto;
margin: 100px 150px;
margin: 100px 150px;
}
5. Padding
Digunakan untuk mengatur space element content dan element
border pada HTML, maksudnya adalah mengatur jarak suatu
element yang terdapat didalam element kepala. Untuk valuenya
dapat menggunkan auto, px, % dan lainnya.
a. Auto digunakan untuk mengatur secara otomatis.
b. Px untuk mengatur ukuran sesuai dengan kemauan sendiri.
c. % mengatur jarak menggunakan persen misal 30 %.
Contoh Padding :
p {
padding-top: 50px;
padding-right: 30px;
padding-bottom: 50px;
padding-left: 80px;
/* ----------------------- */
padding: 50px 30px 50px 80px;
}
6. Height / Witdh
Height untuk mengatur tinggi suatu style, sedangkan Witdh
digunakan untuk mengatur lebar suatu style, biasa digunakan pada
tag layout <div> untuk mengatur ukuran.
Contoh Height / Witdh :
div {
width: 500px;
height: 100px;
border: 3px solid #73AD21;}
8
7. Text
Pada CSS Text kita dapat mengatur style mulai dari warna text,
aligment, case text, indent text, jarak kata, arah text, jarak antar line,
jarak antar huruf dan underline.
Contoh CSS Text :
p {
color: green;
text-align: center;9
Lab. RPL Informatika ITN Malang 2021
text-align: left;
text-align: right;
text-align: justify;
text-transform: uppercase;
text-transform: lowercase;
text-transform: capitalize;
text-indent: 50px;
word-spacing: -5px;
direction: rtl;
line-height: 1.8;
letter-spacing: 3px;
text-indent: 50px;
text-decoration: underline;
text-decoration: line-through;
text-decoration: overline;
text-decoration: none;}
8. Font
Mendefinisikan font family, ketebalan, ukuran dan style dari sebuah
text pada tag HTML.
Contoh CSS Font :
p {
/*font face*/
font-family: "Times New Roman", Times, serif;
/*font style*/
font-style: normal;
font-style: italic;
font-style: oblique;
/*font sizing*/
font-size: 40px;
font-size: 2.5em; /* 40px/16=2.5em */
font-size: 100%;
/*bold*/
font-weight: normal;
font-weight: bold;
}
9
justify-content: space-around;
align-items: center;
margin-bottom: 50px;
}
.jumbotron-text {
width: 30%;
font-weight: 500;
}
.jumbotron-text p {
color: white;
margin: 20px 0;
}
.jumbotron-text button {
padding: 10px 18px;
border: none;
border-radius: 10px;
background-color: white;
color: #ffb72b;
cursor: pointer;
}
/* style card-categories */
.cards-categories {
display: flex;
flex-direction: column;
}
.cards-categories h2 {
font-family: "Roboto", sans-serif;
}
.card-categories {
display: flex;
justify-content: space-between;
margin-top: 30px;
}
.card {
display: flex;
flex-direction: column;
width: 30%;
box-shadow: 0 6px 12px 4px rgba(0, 0, 0, 0.15);
border-radius: 10px;
padding: 14px;
text-align: justify;
}
.card h5 {
margin: 10px 0;
font-family: "Roboto", sans-serif;
font-size: 20px;
}
.card p {
font-size: 12px;
}
/* style page login */
.form-login {
display: flex;
flex-direction: column;
align-items: center;
width: 30%;
background-color: white;
padding: 20px;
margin: 0 auto;
11
<div class="card-categories">
<div class="card">
<img src="assets/anggora.png" alt="" />
<h5>Anggora</h5>
<p>
Anggora turki adalah salah satu ras
kucing domestik alami tertua. Ras ini berasal dari
Ankara, Turki. Kucing ini sangat populer dan terkenal
di Indonesia.
</p>
</div>
<div class="card">
<img src="assets/persia.png" alt="" />
<h5>Persia</h5>
<p>
Kucing persia adalah ras kucing domestik
berbulu panjang dengan karakter wajah bulat dan moncong
pendek. Namanya mengacu pada
Persia.
</p>
</div>
<div class="card">
<img src="assets/british.png" alt="" />
<h5>British Shorthair</h5>
<p>
Kucing bulu pendek britania adalah salah
satu ras kucing tertua di inggris. Kucing ini adalah
kucing berbadan sedang dengan bulu yang pendek.
</p>
</div>
</div>
</div>
</div>
</body>
</html>
Hasil Tampilan :
<div class="list-menu">
<a href="index.html">Home</a>
<a href="">Categories</a>
<a href="" class="btn_login" style="color:
white">Login</a> </div>
</div>
<div class="form-login">
<h3>Login</h3>
<form action="">
<input class="input"
type="text" name="username"
placeholder="Username"
/> <input class="input"
type="password" name="password"
placeholder="Password"
/>
<button type="submit" class="btn_login"
name="login" id="login"> Login
</button>
</form>
</div>
</div>
</body>
</html>
Hasil Tampilan :
body {
font-family: "Poppins", sans-serif;
}
.container {
display: flex;
width: 80%;
height: 600px;
margin: 50px auto;
justify-content: space-between;
}
.sidebar {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
flex-basis: 15%;
background-color: #ffb72b;
}
.sidebar a {
text-decoration: none;
color: white;
margin-bottom: 30px;
font-size: 15px;
font-weight: 500;
}
.right_content {
flex-basis: 80%;
align-items: center;
}
.navbar {
display: flex;
justify-content: space-between;
height: 10%;
background-color: white;
box-shadow: 0 6px 12px 4px rgba(0, 0, 0, 0.15);
border-radius: 10px;
padding: 10px;
margin-bottom: 30px;
}
.btn {
background-color: #ffb72b;
border: none;
15
.btn a {
text-decoration: none;
color: white;
}
.btn-tambah {
margin: 20px 0 0 40px;
}
.btn-simpan {
width: 100%;
}
.btn:hover {
background-color: #eba416;
}
.content {
background-color: white;
box-shadow: 0 6px 12px 4px rgba(0, 0, 0, 0.15);
height: 85%;
border-radius: 10px;
padding: 20px;
overflow: auto;
}
.table-data {
text-align: center;
margin: 20px auto;
}
th,
td {
border: 1px solid black;
padding: 5px 20px;
}
.input {
width: 100%;
16
margin: 10px 0;
padding: 10px;
border-radius: 10px;
border: 1px solid rgb(148, 148, 148);
}
<div class="right_content">
<div class="navbar">
<img src="assets/logo.png" alt="" />
<button class="btn">Logout</button>
</div>
<div class="content">
<h2>Selamat Datang, Admin!</h2>
</div>
</div>
</div>
</body>
</html>
17
Hasil Tampilan :
<div class="right_content">
<div class="navbar">
<img src="../assets/logo.png" alt="" />
<button class="btn">
<a href="../logout.html">Logout</a>
</button>
</div>
18
<div class="content">
<h3>Categories</h3>
<button type="button" class="btn btn-tambah">
<a href="categories-entry.html">Tambah
Data</a>
</button>
<table class="table-data">
<thead>
<tr>
<th style="width: 30%">Photo</th>
<th>Categories</th>
<th style="width: 20%">Price</th>
<th style="width: 30%">Action</th>
</tr>
</thead>
<tbody>
<tr>
<td><img src="../assets/thumbnail/
anggora.png" alt="" /></td>
<td>Anggora</td>
<td>450000</td>
<td><a href="">Edit</a> | <a
href="">Hapus</a></td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</body>
</html>
Hasil Tampilan :
<div class="right_content">
<div class="navbar">
<img src="../assets/logo.png" alt="" />
<button class="btn">
<a href="../logout/html">Logout</a>
</button>
</div>
<div class="content">
<h3>Input Categories</h3>
<div class="form-login">
<form action="">
<label for="categories">Categories</la-
bel>
<input
class="input"
type="text"
name="categories"
id="categories"
placeholder="Categories"
/>
<label for="categories">Price</label>
<input
class="input"
type="text"
name="price"
id="price"
placeholder="Price"
/>
<label for="photo">Photo</label>
<input
type="file"
name="photo"
id="photo"
20
style="margin-bottom: 20px"
/>
Hasil Tampilan :
<div class="sidebar">
<a href="../admin.html">Home</a>
<a href="../categories/categories.html">Cate-
gories</a>
<a href="transaction.html">Transaction</a>
</div>
<div class="right_content">
<div class="navbar">
<img src="../assets/logo.png" alt="" />
<button class="btn">
<a href="../logout.html">Logout</a>
</button>
</div>
<div class="content">
<h3>Trasaction</h3>
<button type="button" class="btn btn-tambah">
<a href="transaction-entry.html">Tambah
Data</a>
</button>
<table class="table-data">
<thead>
<tr>
<th style="width: 20%">Nama</th>
<th>Jenis Kucing</th>
<th style="width: 20%">Harga</th>
<th style="width: 20%">Tanggal</th>
<th>Action</th>
</tr>
</thead>
<tbody>
<tr>
<td>Silva Tambunan</td>
<td>Anggora</td>
<td>450000</td>
<td>02-03-2022</td>
<td><a href="">Edit</a> | <a
href="">Hapus</a></td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</body>
</html>
22
Hasil Tampilan :
<div class="right_content">
<div class="navbar">
<img src="../assets/logo.png" alt="" />
<button class="btn">
<a href="../logout/html">Logout</a>
</button>
</div>
23
<div class="content">
<h3>Input Transaction</h3>
<div class="form-login">
<form action="">
<label for="nama">Nama</label>
<input
class="input"
type="text"
name="nama"
id="nama"
placeholder="Nama"
/>
<label for="jenis">Jenis</label>
<input
class="input"
type="text"
name="jenis"
id="jenis"
placeholder="Jenis"
/>
<label for="harga">Harga</label>
<input
class="input"
type="text"
name="harga"
id="harga"
placeholder="Harga"
/>
<label for="tgl">Tanggal</label>
<input
class="input"
type="date"
name="tgl"
id="tgl"
style="margin-bottom: 20px"
/>
Hasil Tampilan :
}
.btn_login:hover {
background-color: #00e1ff;
}
/* style jumbotron */
.jumbotron {
display: flex;
background-color: #00e1ff;
border-radius: 20px;
padding: 20px 0;
justify-content: space-around;
align-items: center;
margin-bottom: 50px;
}
.jumbotron-text {
width: 30%;
font-weight: 500;
}
.jumbotron-text p {
color: white;
margin: 20px 0;
}
.jumbotron-text button {
padding: 10px 18px;
border: none;
border-radius: 10px;
background-color: white;
color: #00e1ff;
cursor: pointer;
}
.cards-categories {
display: flex;
flex-direction: column;
}
.cards-categories h2 {
font-family: "Roboto", sans-serif;
}
.card-categories {
display: flex;
justify-content: space-between;
margin-top: 30px;
}
.card {
display: flex;
flex-direction: column;
width: 30%;
box-shadow: 0 6px 12px 4px rgba(0, 0, 0, 0.15);
border-radius: 10px;
padding: 14px;
text-align: justify;
}
.card h5 {
margin: 10px 0;
font-family: "Roboto", sans-serif;
font-size: 20px;
}
.card p {
font-size: 12px;
}
26
.form-login {
display: flex;
flex-direction: column;
align-items: center;
width: 30%;
background-color: white;
padding: 20px;
margin: 0 auto;
box-shadow: 0 6px 12px 4px rgba(0, 0, 0, 0.15);
border-radius: 10px;
}
.input {
width: 100%;
margin: 10px 0;
padding: 10px;
border-radius: 10px;
border: 1px solid rgb(148, 148, 148);
}
2. index.html
<html lang="en">
<head>
<title>Home</title>
<link rel="stylesheet" href="css/style.css" />
<link rel="preconnect"
href="https://fonts.googleapis.com" />
<link rel="preconnect"
href="https://fonts.gstatic.com" crossorigin/>
<link href="https://fonts.googleapis.com/css2?
family=Poppins:wght@400;500;700
&family=Roboto:wght@500;700&display=swap"
rel="stylesheet"/>
</head>
<body>
<div class="container">
<div class="navbar">
<div class="logo"><img src="assets/LOGO1.png"
alt="" /></div>
<div class="list-menu">
<a href="">Home</a>
<a href="">Categories</a>
<a href="login.html" class="btn_login"
style="color:white">Login</a>
</div>
</div>
<div class="jumbotron">
<div class="jumbotron-text">
<h1>Cheap and Quality Guitar Rental</h1>
<p>"Penyewaan gitar disini berkualitas, aman
dan terpercaya"</p>
<button type="button"
class="btn_getStarted">Get Started</button>
</div>
<div class="jumbotron-img">
<img src="assets/grup2.png" alt="" />
</div>
</div>
<div class="cards-categories">
27
<h2>Guitar Categories</h2>
<div class="card-categories">
<div class="card">
<img src="assets/gitar classic.PNG"
alt="" />
<h5>Gitar Klasik</h5>
<p> Gitar spanyol, begitu memang biasanya
gitar klasik ini disebut,
karena memang tempat asalnya dari
Spanyol.
</p>
</div>
<div class="card">
<img src="assets/gitar resonator.png" alt=""
/>
<h5>Gitar Resonator</h5>
<p>Gitar resonator merupakan gitar akustik
yang suaranya berasal dari
satu atau lebih kerucut logam yang
berputar (resonator), bukan berbahan
kayu pada body bagian atasnya. Pada
gitar ini, kita juga tak akan menemukan
lubang suara karena telah digantikan
dengan piringan bundar yang berguna
untuk menyembunyikan resonator kerucut.
</p>
</div>
<div class="card">
<img src="assets/gitar baja.png" alt="" />
<h5>Gitar Baja</h5>
<p>Gitar baja ini berasal dari kebudayaan
orang-orang Hawaii.
Gitar ini memiliki beban yang cukup
berat jika dibandingkan dengan
gitar pada umumnya, sehingga cara
memainkannya pun harus dipangku.
</p>
</div>
</div>
</div>
</div>
</body>
</html>
28
Hasil Tampilan :
Hasil Tampilan:
Hasil Tampilan :
Hasil Tampilan :
7. categories-entry.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible"
content="IE=edge" />
<meta name="viewport" content="width=device-width,
initial-scale=1.0" />
<title>Categories Entry</title>
<link rel="stylesheet" href="../css/admin.css" />
<link rel="preconnect"
href="https://fonts.googleapis.com" />
<link rel="preconnect"
href="https://fonts.gstatic.com" crossorigin />
<link href="https://fonts.googleapis.com/css2?
family=Poppins:wght@400;500;700&family=Roboto:wght@500;
700&display=swap"
rel="stylesheet"
/>
</head>
<body>
<div class="container">
<div class="sidebar">
<a href="../admin.html">Home</a>
<a href="categories.html">Categories</a>
<a href="../transaction/
transaction.html">Transaction</a>
</div>
<div class="right_content">
<div class="navbar">
<img src="../gambar/sewa.png" alt="" />
<button class="btn">
<a href="../logout/html">Logout</a>
</button>
</div>
<div class="content">
<h3>Input Categories</h3>
<div class="form-login">
<form action="">
<label for="categories">Categories</la-
bel>
<input
class="input"
type="text"
name="categories"
id="categories"
placeholder="Categories"
/>
<label for="categories">Price</label>
<input
class="input"
type="text"
name="price"
id="price"
placeholder="Price"
/>
33
<label for="photo">Photo</label>
<input
type="file"
name="photo"
id="photo"
style="margin-bottom: 20px"
/>
<button type="submit" class="btn btn-sim-
pan" name="simpan">
Simpan
</button>
</form>
</div>
</div>
</div>
</div>
</body>
</html>
Hasil Tampilan :
BAB IV
JAVASCRIPT
Jumlah Pertemuan : 2 x 60 menit
Tujuan Praktikum : 1. Mampu menerapkan konsep dasar pemrograman
web.
2. Mampu mengetahui fungsi tag-tag pada html.
3. Mampu membuat halaman web menggunakan
html.
Alat / bahan : 1. Seperangkat computer.
2. Perangkat lunak: VS Code, XAMPP.
3. Modul Praktikum WEB 2022.
C. Penempatan JavaScript
1. Section Head
Javascript dapat ditempatkan didalam head. Jika telah men-
empatkan di head disarankan agar tetap melanjutkan di head dan
tidak membuat javascript di body lagi.
<!DOCTYPE html>
<html>
<head>
<script> function myFunction() {
document.getElementById("demo").innerHTML =
"Paragraph changed."; }
</script>
</head>
<body>
<h1>My Web Page</h1>
<p id="demo">A Paragraph</p>
<button type="button" onclick =
"myFunction()">Try it</button>
</body>
</html>
2. Section Body
Javascript juga dapat ditempatkan di body. Tidak ada perbe-
daan dalam penempatan antara head dan body, tetapi lebih baik
javascript di body ditempatkan paling bawah sebelum tag penutup
body agar tidak memperlambat proses loading halaman web.
<!DOCTYPE html>
<html>
<body>
<h2>My First Web Page</h2>
<p>My First Paragraph.</p>
<p id="demo"></p>
<script>
document.getElementById("demo").innerHTML =
"Halooooo";
</script>
</body>
</html>
3. External JavaScript
Javascript juga dapat dibuat dalam file tersendiri, bedanya
hanya pada proses pemanggilan. File javascript menggunakan ek-
stensi .js. Untuk menggunakan Javascript external, tidak perlu
menulis tag <script> didalam file javascript, langsung saja ke
fungsi yang akan diimplementasikan ke dalam halaman web.
3
2. Comment
Digunakan untuk memberi catatan pada source code. Contoh
single comment :
<script>
// Ini adalah Komentar Tunggal
</script>
Contoh multi comment
<script>
/*
Ini adalah contoh Komentar Yang mencakup banyak baris
*/
</script>
3. Variabel
Penulisan variabel menggunakan keyword var kemudian diikuti
nama variabel/identifier.
<script>
var x = 5; var y = 6;
var z = x + y;
document.getElementById("demo").innerHTML =
"The value of z is: " + z;
</script>
4
4. Tipe Data
Tipe data dalam Javascript tidak perlu diidentifikasi hanya saja
penulisan yang harus benar.
var x = 5; //untuk number
var y = “6”; //untuk string
var z = x + y; //hasilnya akan menjadi 56
5. Operator
Operator Aritmatika Javascript.
a. Operator Aritmatika Javascript.
Tabel IV.1 Operator aritmatika
Operator Description
+ Addition
- Subtraction
*
Multiplication
/ Division
% Modulus (Remaiinder)
++ Increment
-- Decrement
b. Operator matematika
Tabel IV.2 Operator matematika
Operator Example Same As
- x= y x= y
+= x += y x=x+y
-= x -= y x=x-y
*= x *= y x=x*y
/= x /= y x=x/y
%= x %= y x=x%y
5
c. Operator Relasi
Tabel IV.3 Operator relasi
Operator Description
== Equal to
=== Equal value and equal type
!=
Not equal
!== Not equal value or not equal type
> Greater than
< Less than
>= Greater than or equal to
<= Less than or equal to
? Ternary operator
6. Function
Penulisan Javascript function membutuhkan keyword function
dan kemudian diikuti nama function().
function name(parameter1, parameter2, parameter3) {
code to be executed
//return x //if return value needed
}
Contoh :
<body>
<p id="demo"></p>
<script>
var x = myFunction(4, 3);
document.getElementById("demo").innerHTML = "Hasil
dari
Fungsi : " + x;
function myFunction(a, b) {
return a * b;
}
</script>
</body>
Hasil Tampilan :
7
Analisa :
Pada source code htmlnya terdapat javascript yang ditempatkan
pada section body. Javascript ini terdapat function myFunction, dalam
function ini teradapat let variable nama yang digunakan untuk mengisi
nama di massage box pada saat halama di load atau onload ada juga let
variable jam untuk memberikan keterangan waktu. Ada percabangan if
dengan kondisi jika nama tidak kosong atau null akan menjalankan per-
cabangan if else di bawahnya. Ada if dengan kondisi jika jam >=4 dan
<= maka akan menampilkan selamat pagi dan memanggil variable
nama. Ada else if lainnya juga sama untuk menampilkan waktu sesuai
dengan kondisinya dan memanggil variable nama juga. Lalu pada tag
body ada event onload yaitu untuk menampilkan massage box saat hala-
man load dengan memanggil function myFucntion.
}
td{
width: 60px;
border-radius: 7%;
font-family: Verdana, Geneva, Tahoma, sans-
serif;
font-size: 20px;
color: aliceblue;
font-weight: bold;
}
input[type="button"]
{
height: 50px;
background-color:rgb(0, 170, 255);
color: white;
font-weight: bold;
font-size: 22px;
width:100%
}
.title{
margin-bottom: 10px;
height: 70px;
text-align:center;
border-radius: 2%;
background-color:rgb(0, 170, 255);
width: 210px;
color:white;
}
input[type="text"]
{
font-size: 22px;
border-radius: 7%;
background-color:white;
height: 50px;
width:100%
}
input[type="button"].ekor{
background-color:rgb(17, 0, 130);
}
input[type="button"].kode{
background-color:rgb(0, 79, 182);
}
</style>
</head>
<body bgcolor="grey">
<table align="center" border="5" width="330px">
<tr>
<td colspan="4" class="title">Kalkulator</
td>
</tr>
<tr>
<td colspan="3"><input type="text" id="re-
sult"/></td>
<td><input class="ekor" type="button" value
= "C" onclick="clr()"/> </td>
</tr>
<tr>
<td><input type="button" value="1" onclick =
"dis('1')"/> </td>
9
Hasil Tampilan :
10
Analisa :
Program ini hanya berisi 1 file saja karena CSS yang digunakan
merupakan CSS internal, sehingga CSS terletak didalam kode HTML itu
sendiri. Pada bagian body memiliki warna abu-abu dengan table yang
berada di tengah, memiliki judul kalkulator, kolom pada tabel diga-
bungkan dengan perintah colspan, pada tabel data dengan tipe text
memiliki nilai dari 0 sampa 1 dan simbol aritmatik.
IV.5 Projek Rumah : Penyewaan Gitar
1. Buka file admin.html, tambahkan event onload pada body
Source code :
<body onload="myFunction()">
if (nama != null) {
if (jam >= 4 && jam <= 10) {
document.getElementById("text").innerHTML =
`Selamat Pagi ${nama}`;
} else if (jam >= 11 && jam <= 14) {
document.getElementById("text").innerHTML =
`Selamat Siang ${nama}`;
} else if (jam >= 15 && jam <= 18) {
document.getElementById("text").innerHTML =
`Selamat Sore ${nama}`;
} else {
document.getElementById("text").innerHTML =
`Selamat Malam ${nama}`;
}
}
}
</script>
12
Hasil Tampilan :
IV.6 Kesimpulan
1. Javascript adalah bahasa pemrograman yang paling populer di dunia.
Javascript dapat mengubah isi dari HTML, dapat mengubah atribut
HTML, dapat mengubah styles (CSS), dapat pula mengenali data input.
2. Javascript juga berguna untuk design antar muka web yang responsif.
Penulisan Javascript diawali dengan <script> dan diakhiri </script>.
3. Terdapat tiga penempatan javascript yaitu Secition Head,Section Body,
dan Eksternal Javascript
1
BAB V
PHP DASAR DAN DATABASE
Jumlah Pertemuan : 2 x 60 menit
Tujuan Praktikum : 1. Mampu menerapkan konsep dasar pemrograman
web.
2. Mampu mengetahui fungsi tag-tag pada html.
3. Mampu membuat halaman web menggunakan
html.
Alat / bahan : 1. Seperangkat computer.
2. Perangkat lunak: VS Code, XAMPP.
3. Modul Praktikum WEB 2022.
C. Pengertian Database
Database adalah sekelompok data yang ditaruh secara sistematis
dalam perangkat komputer. Data yang ada pada database bisa diolah atau
juga dimanipulasi memakai program aplikasi tertentu. Tujuannya adalah
agar dapat menghasilkan informasi berguna di kemudian hari. Adapun
berbagai spesifikasi terkait database yaitu tipe datanya, struktur datanya
dan juga berbagai batasan yang ada pada data yang akan disimpan.
Database juga merupakan bagian yang amat penting dalam sebuah
sistem informasi. Karena database bisa berfungsi sebagai tempat
penyimpanan data-data penting yang nantinya akan diolah lagi untuk
keperluan di waktu yang akan datang. Database juga punya kemampuan
untuk mengorganisasikan seluruh data yang ada, mengenali jika ada data
duplikat, serta yang terpenting yaitu mencegah terbentuknya hubungan
antar data yang tidak membantu semacam data yang tdak terhubung dan
update yang rumit.
function upload() {
$namaFile = $_FILES['photo']['name'];
$error = $_FILES['photo']['error'];
$tmpName = $_FILES['photo']['tmp_name'];
return false;
}
// cek apakah yang diupload adalah gambar
$ekstentiGambarValid = ['jpg', 'jpeg', 'png'];
$ekstensiGambar = explode('.', $namaFile);
$ekstensiGambar = strtolower(end($ekstensiGambar));
if(!in_array($ekstensiGambar, $ekstentiGambarValid))
{
echo "
<script>
alert('File Harus Berupa Gambar');
window.location = 'categories-en-
try.html';
</script>
";
}
// lolos pengecekan, upload gambar
$namaFileBaru = uniqid();
$namaFileBaru .= '.';
$namaFileBaru .= $ekstensiGambar;
if(empty($categories) || empty($price)) {
echo "
<script>
alert('Pastikan Anda Mengisi Semua Data');
window.location = 'categories-en-
try.html';
</script>
";
}elseif(mysqli_query($koneksi, $sql)) {
echo "
<script>
alert('Data Categories Berhasil Ditam-
bahkan');
window.location = 'categories.php'
</script>
";
}else {
echo "
<script>
alert('Terjadi Kesalahan');
window.location = 'categories-en-
try.html'
</script>
";
}
}elseif(isset($_POST['edit'])) {
$id = $_POST['id'];
4
$categories = $_POST['categories'];
$price = $_POST['price'];
$photoLama = $_POST['photoLama'];
// cek apakah user pilih gambar atau tidak
if($_FILES['photo']['error']) {
$photo = $photoLama;
}else {
$photo = upload();
}
$sql = "UPDATE tb_categories SET
photo = '$photo',
categories = '$categories',
price = '$price'
WHERE id = $id
";
if(mysqli_query($koneksi, $sql)) {
echo "
<script>
alert('Data Categories Berhasil Diubah');
window.location = 'categories.php';
</script>
";
}else {
echo "
<script>
alert('Terjadi Kesalahan');
window.location = 'categories-edit.php';
</script>
";
}
}elseif(isset($_POST['hapus'])) {
$id = $_POST['id'];
$sql = "DELETE FROM tb_categories WHERE id = $id";
if(mysqli_query($koneksi, $sql)) {
echo "
<script>
alert('Data Categories Berhasil Dihapus');
window.location = 'categories.php';
</script>
";
}else {
echo "
<script>
alert('Data Categories Gagal Dihapus');
window.location = 'categories.php';
</script>
";
}
}else {
header('location: categories.php');
}
5
<div class="right_content">
<div class="navbar">
<img src="../assets/logo.png" alt="" />
<button class="btn">
<a href="../logout/html">Logout</a>
</button>
</div>
<div class="content">
<h3>Input Categories</h3>
<div class="form-login">
<form
action="categories-proses.php"
method="post"
enctype="multipart/form-data"
>
<label for="categories">Categories</label>
<input
class="input"
type="text"
name="categories"
id="categories"
placeholder="Categories"
/>
6
<label for="categories">Price</label>
<input
class="input"
type="text"
name="price"
id="price"
placeholder="Price"
/>
<label for="photo">Photo</label>
<input
type="file"
name="photo"
id="photo"
style="margin-bottom: 20px"
/>
if(isset($_POST['simpan'])) {
$nama = $_POST['nama'];
$jenis = $_POST['jenis'];
$harga = $_POST['harga'];
$tanggal = $_POST['tgl'];
// var_dump($result);
// var_dump($sql);
// var_dump($koneksi);
// die;
try.html';
</script>
";
}elseif(mysqli_query($koneksi, $sql)) {
echo "
<script>
alert('Data Transaction Berhasil Ditam-
bahkan');
window.location = 'transaction.php';
</script>
";
}else {
echo "
<script>
alert('Terjadi Kesalahan');
window.location = 'transaction-en-
try.html';
</script>
";
}
}elseif(isset($_POST['edit'])) {
$id = $_POST['id'];
$nama = $_POST['nama'];
$jenis = $_POST['jenis'];
$harga = $_POST['harga'];
$tanggal= $_POST['tgl'];
if(mysqli_query($koneksi, $sql)) {
echo "
<script>
alert('Data Transaction Berhasil Di-
ubah');
window.location = 'transaction.php';
</script>
";
}else {
echo "
<script>
alert('Terjadi Kesalahan');
window.location = 'transaction-ed-
it.php';
</script>
";
}
}elseif(isset($_POST['hapus'])) {
$id = $_POST['id'];
if(mysqli_query($koneksi, $sql)) {
echo "
<script>
8
?>
<div class="content">
<h3>Input Transaction</h3>
<div class="form-login">
<form action="transaction-proses.php"
method="post">
<label for="nama">Nama</label>
<input
class="input"
type="text"
name="nama"
id="nama"
placeholder="Nama"
/>
<label for="jenis">Jenis</label>
<input
class="input"
type="text"
name="jenis"
id="jenis"
placeholder="Jenis"
/>
<label for="harga">Harga</label>
<input
class="input"
type="text"
name="harga"
id="harga"
placeholder="Harga"
/>
<label for="tgl">Tanggal</label>
<input
class="input"
type="date"
name="tgl"
id="tgl"
style="margin-bottom: 20px"
/>
<button type="submit" class="btn btn-sim-
pan" name="simpan">
Simpan
</button>
</form>
</div>
</div>
</div>
</div>
</body>
</html>
</form>
</div>
</div>
</div>
</div>
</body>
</html>
2. categories-proses.php
<?php
if(isset($_POST['simpan'])) {
$categories = $_POST['categories'];
$price = $_POST['price'];
echo
'Categories : ' . $categories .
'<br> Price : ' . $price ;
}
?>
3. transaction-entri.php
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge"
/>
<meta name="viewport" content="width=device-width,
initial-scale=1.0" />
<title>Categories Entry</title>
<link rel="stylesheet" href="../css/admin.css" />
<link rel="preconnect"
href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com"
crossorigin
/>
<link
href="https://fonts.googleapis.com/css2?
family=Poppins:wght@400;500;700
&family=Roboto:wght@500;700&display=swap"
rel="stylesheet"
/>
</head>
<body>
<div class="container">
<div class="sidebar">
<a href="../admin.html">Home</a>
<a href="../categories/categories.html">Cate-
gories</a>
<a href="transaction.html">Transaction</a>
</div>
<div class="right_content">
<div class="navbar">
<img src="../assets/logo.png" alt=""
width="100px" />
<button class="btn">
<a href="../logout/html">Logout</a>
</button>
13
</div>
<div class="content">
<h3>Input Transaction</h3>
<div class="form-login">
<form action="transaction-proses.php"method=
"post">
<label for="nama">Nama</label>
<input
class="input"
type="text"
name="nama"
id="nama"
placeholder="Nama"
/>
<label for="jenis">Jenis</label>
<input
class="input"
type="text"
name="jenis"
id="jenis"
placeholder="Jenis"
/>
<label for="harga">Harga</label>
<input
class="input"
type="text"
name="harga"
id="harga"
placeholder="Harga"
/>
<label for="tgl">Tanggal</label>
<input
class="input"
type="date"
name="tgl"
id="tgl"
style="margin-bottom: 20px"
/>
<button type="submit" class="btn btn-simpan"name=
"simpan">
Simpan
</button>
</form>
</div>
</div>
</div>
</div>
</body>
</html>
4. transaction-proses.php
<?php
if(isset($_POST['simpan'])) {
$nama = $_POST['nama'];
$jenis = $_POST['jenis'];
$harga = $_POST['harga'];
$tanggal = $_POST['tgl'];
14
echo
'Nama : ' . $nama .
'<br> Jenis : ' . $jenis .
'<br> Harga : ' . $harga .
'<br> Tanggal : ' . $tanggal;
}
?>
V.5 Kesimpulan
1. PHP (PHP: Hypertext Preprocessor) merupakan salah satu bahasa web-
scripting yang sangat powerful. Sejak pertama kali diperkenalkan, ba-
hasa ini dimaksudkan untuk menghasilkan halaman halaman web yang
dinamis.
2. Penulisan script PHP pasti diawali dengan <?php dan diakhiri dengan ?
>. Script PHP untuk menampilkan output di layar yaitu dengan menggu-
nakan echo dan script ditutup dengan tanda petik koma.
3. Database adalah sekelompok data yang ditaruh secara sistematis dalam
perangkat komputer.
1
BAB VI
PHP LOGIN DAN CRUD I
Jumlah Pertemuan : 2 x 60 menit
Tujuan Praktikum : 4. Mampu menerapkan konsep dasar pemrograman
web.
5. Mampu mengetahui fungsi tag-tag pada html.
6. Mampu membuat halaman web menggunakan
html.
Alat / bahan : 4. Seperangkat computer.
5. Perangkat lunak: VS Code, XAMPP.
6. Modul Praktikum WEB 2022.
$servername = 'localhost';
$username = 'root';
$password = '';
$database = 'db_2018111';
// membuat koneksi
$koneksi = mysqli_connect($servername, $username, $pass-
word, $database);
// mengecek koneksi
if(!$koneksi) {
die('Connection Failed:' . mysqli_connect_error());
}
?>
include 'koneksi.php';
if(isset($_POST['login'])) {
$username = $_POST['username'];
3
$password = $_POST['password'];
if(mysqli_num_rows($result) > 0) {
while($row = mysqli_fetch_assoc($result)) {
session_start();
$_SESSION['nama'] = $row['nama'];
header('location:admin.php');
}
}else {
echo "
<script>
alert('Username atau password anda salah,
Silahkan coba lagi');
window.location = 'login.php';
</script>
";
}
}
?>
<div class="list-menu">
<a href="index.php">Home</a>
<a href="">Categories</a>
<a href="" class="btn_login" style="color:
white">Login</a>
</div>
</div>
<div class="form-login">
<h3>Login</h3>
<form action="login-proses.php" method="post">
<input
class="input"
type="text"
name="username"
placeholder="Username"
/>
<input
4
class="input"
type="password"
name="password"
placeholder="Password"
/>
<button type="submit" class="btn_login"
name="login" id="login">
Login
</button>
</form>
</div>
</div>
</body>
</html>
<?php
session_start();
echo "Selamat Datang di Halaman Admin, " .
$_SESSION['nama'];
?>
</p>
</div>
</div>
</div>
<script>
function myFunction() {
let jam = new Date().getHours();
if (jam) {
if (jam >= 4 && jam <= 10) {
document.getElementById("text").innerHTML =
`Selamat Pagi`;
} else if (jam >= 11 && jam <= 14) {
document.getElementById("text").innerHTML =
`Selamat Siang`;
} else if (jam >= 15 && jam <= 18) {
document.getElementById("text").innerHTML =
`Selamat Sore`;
} else {
document.getElementById("text").innerHTML =
`Selamat Malam`;
}
}
}
</script>
</body>
</html>
if(isset($_POST['simpan'])) {
$nama = $_POST['nama'];
$jenis = $_POST['jenis'];
$harga = $_POST['harga'];
$tanggal = $_POST['tgl'];
$sql = "INSERT INTO tb_transaction VALUES(NULL,
'$nama', '$jenis', '$harga', '$tanggal')";
$result = mysqli_query($koneksi, $sql);
if(mysqli_query($koneksi, $sql)) {
echo "
<script>
alert('Data Transaction Berhasil Diubah');
window.location = 'transaction.php';
</script>
8
";
}else {
echo "
<script>
alert('Terjadi Kesalahan');
window.location = 'transaction-edit.php';
</script>
";
}
}elseif(isset($_POST['hapus'])) {
$id = $_POST['id'];
$sql = "DELETE FROM tb_transaction WHERE id = $id";
if(mysqli_query($koneksi, $sql)) {
echo "
<script>
alert('Data Transaction Berhasil Dihapus');
window.location = 'transaction.php';
</script>
";
}else {
echo "
<script>
alert('Data Transaction Gagal Dihapus');
window.location = 'transaction.php'
</script>
";
}
}else {
header('location: transaction.php');
}
?>
class="input"
type="text"
name="harga"
id="harga"
placeholder="Harga"
value="<?= $data['harga'] ?>"
/>
<label for="tgl">Tanggal</label>
<input
class="input"
type="date"
name="tgl"
id="tgl"
style="margin-bottom: 20px"
value="<?= $data['tanggal'] ?>"
/>
<button type="submit" class="btn btn-sim-
pan" name="edit">
Edit
</button>
</form>
</div>
</div>
</div>
</div>
</body>
</html>
href="https://fonts.googleapis.com" />
<link rel="preconnect"
href="https://fonts.gstatic.com" crossorigin />
<link
href="https://fonts.googleapis.com/css2?
family=Poppins:wght@400;500;700&family=Roboto:wght@500;7
00&display=swap"
rel="stylesheet"
/>
</head>
<body>
<div class="container">
<div class="sidebar">
<a href="../admin.php">Home</a>
<a href="../categories/categories.php">Cate-
gories</a>
<a href="transaction.php">Transaction</a>
</div>
<div class="right_content">
<div class="navbar">
<img src="../assets/logo.png" alt="" />
<button class="btn">
<a href="../logout.php">Logout</a>
</button>
</div>
<div class="content">
<h3>Hapus Transaction</h3>
<div class="form-login">
<h4>Ingin Menghapus Data ?</h4>
<form
action="transaction-proses.php"
method="post"
>
<input type="hidden" name="id" value="<?=
$data['id'] ?>">
<div class="right_content">
<div class="navbar">
<img src="../assets/logo.png" alt="" />
<button class="btn">
<a href="../logout.php">Logout</a>
</button>
</div>
<div class="content">
<h3>Trasaction</h3>
<button type="button" class="btn btn-tambah">
<a href="transaction-entry.html">Tambah Data</a>
</button>
<table class="table-data">
<thead>
<tr>
<th style="width: 20%">Nama</th>
<th>Jenis Kucing</th>
<th style="width: 20%">Harga</th>
<th style="width: 20%">Tanggal</th>
<th>Action</th>
</tr>
</thead>
<tbody>
<?php
13
include '../koneksi.php';
$sql = "SELECT * FROM tb_transaction";
$result = mysqli_query($koneksi, $sql);
while($data = mysqli_fetch_assoc($re-
sult)) {
echo "
<tr>
<td>$data[nama]</td>
<td>$data[jenis]</td>
<td>$data[harga]</td>
<td>$data[tanggal]</td>
<td><a href=transaction-edit.php?
id=$data[id]>Edit</a> |
<a href=transaction-hapus.php?
id=$data[id]>Hapus</a></td>
</tr>
";}
?>
</tbody>
</table>
</div>
</div>
</div>
</body>
</html>
if(mysqli_num_rows($result) > 0) {
while($row = mysqli_fetch_assoc($result)) {
session_start();
$_SESSION['nama'] = $row['nama'];
header('location:admin.php');
}
}else {
echo "
<script>
alert('Username atau password anda salah,
Silahkan coba lagi');
window.location = 'login.php';
</script>
";
}
}
?>
Hasil Tampilan :
C. Admin.php
<!DOCTYPE html>
<html lang="en">
<head>
<title>Dashboard</title>
<link rel="stylesheet" href="css/admin.css" />
<link rel="preconnect"
href="https://fonts.googleapis.com" />
<link rel="preconnect"
href="https://fonts.gstatic.com" crossorigin
/>
<link
href="https://fonts.googleapis.com/css2?
family=Poppins:wght@400;500;700&family=Roboto:wght@500;7
00&display=swap"
rel="stylesheet"
/>
</head>
<body onload="myFunction()">
<div class="container">
<div class="sidebar">
<a href="">Home</a>
<a
href="categories/categories.php">Categories</a>
<a
href="transaction/transaction.php">Transaction</a>
</div>
<div class="right_content">
<div class="navbar">
<img src="assets/LOGO1.png"
alt="" />
<button class="btn">
<a href="logout.php">Logout</a>
</button>
</div>
<div class="content">
<h2 id="text"></h2>
<p>
<?php
session_start();
echo "Selamat Datang di Halaman
Admin, " . $_SESSION['nama'];
if(!$_SESSION) {
header('location:
login.html');
}
?>
</p>
</div>
</div>
</div>
<script>
function myFunction() {
document.getElementById("text").innerHTML = `Selamat
Pagi`;
} else if (jam >= 11 && jam <= 14) {
document.getElementById("text").innerHTML = `Selamat
Siang`;
} else if (jam >= 15 && jam <= 18) {
document.getElementById("text").innerHTML = `Selamat
Sore`;
} else {
document.getElementById("text").innerHTML
= `Selamat Malam`;
}
}
}
</script>
</body>
</html>
Hasil Tampilan :
D. Logout-proses.php
<?php
session_start();
session_unset();
echo "
<script>
alert('Berhasil Logout');
window.location = 'login.php';
</script>
";
?>
Hasil Tampilan :
17
<div class="right_content">
<div class="navbar">
<img src="../gambar/sewa.png" alt="" />
<button class="btn">
<a href="../logout.html">Logout</a>
</button>
</div>
<div class="content">
<h3>Trasaction</h3>
<button type="button" class="btn btn-tambah">
18
<a href="transaction-entry.html">Tambah
Data</a>
</button>
<table class="table-data">
<thead>
<tr>
<th style="width: 20%">Nama</th>
<th>Jenis</th>
<th style="width: 20%">Harga</th>
<th style="width: 20%">Tanggal</th>
<th>Action</th>
</tr>
</thead>
<tbody>
<?php
include '../koneksi.php';
$sql = "SELECT * FROM tb_transaction";
$result = mysqli_query($koneksi, $sql);
while($data =
mysqli_fetch_assoc($result)) {
echo "
<tr>
<td>$data[nama]</td>
<td>$data[jenis]</td>
<td>$data[harga]</td>
<td>$data[tanggal]</td>
<td><a href=transaction-edit.php?
id=$data[id]>Edit</a> |
<a href=transaction-hapus.php?
id=$data[id]>Hapus</a></td>
</tr>
";
}
?>
</tbody>
</table>
</div>
</div>
</div>
</body>
</html>
19
Hasil Tampilan :
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge"
/>
<meta name="viewport" content="width=device-width,
initial-scale=1.0" />
<title>Transaction Edit</title>
<link rel="stylesheet" href="../css/admin.css" />
<link rel="preconnect"
href="https://fonts.googleapis.com" />
20
<link rel="preconnect"
href="https://fonts.gstatic.com" crossorigin />
<link
href="https://fonts.googleapis.com/css2?
family=Poppins:wght@400;500;700&family=Roboto:wght@500;7
00&display=swap"
rel="stylesheet"
/>
</head>
<body>
<div class="container">
<div class="sidebar">
<a href="../admin.php">Home</a>
<a href="../categories/categories.php">Cate-
gories</a>
<a href="transaction.php">Transaction</a>
</div>
<div class="right_content">
<div class="navbar">
<img src="../assets/logo.png" alt="" />
<button class="btn">
<a href="../logout.php">Logout</a>
</button>
</div>
<div class="content">
<h3>Edit Transaction</h3>
<div class="form-login">
<form
action="transaction-proses.php"
method="post"
>
<input type="hidden" name="id" value="<?=
$data['id'] ?>">
<label for="nama">Nama</label>
<input
class="input"
type="text"
name="nama"
id="nama"
placeholder="Nama"
value="<?= $data['nama'] ?>"
/>
<label for="jenis">Jenis</label>
<input
class="input"
type="text"
name="jenis"
id="jenis"
placeholder="Jenis"
value="<?= $data['jenis'] ?>"
/>
<label for="harga">Harga</label>
<input
class="input"
type="text"
name="harga"
21
id="harga"
placeholder="Harga"
value="<?= $data['harga'] ?>"
/>
<label for="tgl">Tanggal</label>
<input
class="input"
type="date"
name="tgl"
id="tgl"
style="margin-bottom: 20px"
value="<?= $data['tanggal'] ?>"
/>
<button type="submit" class="btn btn-sim-
pan" name="edit">
Edit
</button>
</form>
</div>
</div>
</div>
</div>
</body>
</html>
Hasil Tampilan :
mengedit pada tabel action pada tampilan web nya. Kemudian setelah di
edit datamnya akan ada messagebox seperti gambar diatas.
G. Transaction-hapus.php
<?php
include '../koneksi.php';
$id = $_GET['id'];
if(!isset($_GET['id'])) {
echo "
<script>
alert('Tidak ada ID yang Terdeteksi');
window.location = 'categories.html';
</script>
";
}
$sql = "SELECT * FROM tb_transaction WHERE id =
'$id'";
$result = mysqli_query($koneksi, $sql);
?>
<<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge"
/>
<meta name="viewport" content="width=device-width,
initial-scale=1.0" />
<title>Trasaction</title>
<link rel="stylesheet" href="../css/admin.css" />
<link rel="preconnect"
href="https://fonts.googleapis.com" />
<link rel="preconnect"
href="https://fonts.gstatic.com" crossorigin />
<link
href="https://fonts.googleapis.com/css2?
family=Poppins:wght@400;500;700&family=Roboto:wght@500;7
00&display=swap"
rel="stylesheet"
/>
</head>
<<body>
<div class="container">
<div class="sidebar">
<a href="../admin.php">Home</a>
<a href="../categories/categories.html">Cate-
gories</a>
<a href="transaction.php">Transaction</a>
</div>
<div class="right_content">
<div class="navbar">
<img src="../assets/logo.png" alt="" />
<button class="btn">
<a href="../logout.php">Logout</a>
</button>
</div>
<div class="content">
23
<h3>Hapus Transaction</h3>
<div class="form-login">
<h4>Ingin Menghapus Data ?</h4>
<form action="transaction-proses.php"
method="post" >
<input type="hidden" name="id" value="<?=
$data['id'] ?>">
Hasil Tampilan :
VI.5 Kesimpulan
1. PHP Adalah bahasa scripting server-side, Bahasa pemrograman yang
digunakan untuk mengembangkan situs web statis atau situs web
dinamis atau aplikasi Web. PHP singkatan dari Hypertext Pre-processor,
yang sebelumnya disebut Personal Home Pages.
2. Script sendiri merupakan sekumpulan instruksi pemrograman yang
ditafsirkan pada saat runtime. Sedangkan Bahasa scripting adalah
bahasa yang menafsirkan skrip saat runtime.
3. PHP adalah bahasa pemrograman umum yang berarti php dapat
disematkan ke dalam kode HTML, atau dapat digunakan dalam
kombinasi dengan berbagai sistem templat web, sistem manajemen
konten web, dan kerangka kerja web.
25
BAB VII
CRUD II DAN REPORT
Jumlah Pertemuan : 2 x 60 menit
Tujuan Praktikum : 1. Mampu menerapkan konsep dasar pemrograman
web.
2. Mampu mengetahui fungsi tag-tag pada html.
3. Mampu membuat halaman web menggunakan
html.
Alat / bahan : 1. Seperangkat computer.
2. Perangkat lunak: VS Code, XAMPP.
3. Modul Praktikum WEB 2022.
A. Fungsi Php
Fungsi PHP adalah membuat atau mengembangkan situs web
statis atau situs web dinamis atau aplikasi Web. Walaupun sebenarnya
bukan hanya PHP bahasa pemrograman yang bisa digunakan untuk
memuat website. PHP digunakan karena untuk membuat website
dinamis bisa digunakan untuk menyimpan data ke dalam database,
membuat halaman yang dapat berubah-ubah sesuai dengan input user,
memproses form, dll.
Dalam membuat file PHP dapat digabung menggunakan tag
html, Dan ketika tanpa menggunakan tag html apa pun disebut file
PHP Murni. Server menginterpretasikan kode PHP dan mengeluarkan
hasilnya sebagai kode HTML ke browser web. Agar server
mengidentifikasi kode PHP dari kode HTML, kita harus selalu
menyertakan kode PHP dalam tag PHP.
<div class="navbar">
<img src="../assets/logo.png" alt="" />
<button class="btn">
<a href="../logout.php">Logout</a></button>
</div>
<div class="content">
<h3>Edit Categories</h3>
<div class="form-login">
<form action="categories-proses.php"
method="post" enctype="multipart/form-data">
<input type="hidden" name="id" value="<?=
$data['id'] ?>">
<input type="hidden" name="photoLama"
value="<?= $data['photo'] ?>">
<label for="categories">Categories</la-
bel>
<input class="input" type="text"
name="categories" id="categories"
placeholder="Categories"
value="<?= $data['categories'] ?>" />
<label for="categories">Price</label>
<input class="input" type="text"
name="price" id="price"
placeholder="Price"
value="<?= $data['price']?>" />
<label for="photo">Photo</label>
<img src="../img_categories/<?=
$data['photo'] ?>" alt="">
<input type="file" name="photo"
id="photo" style="margin-bottom: 20px" />
<button type="submit" class="btn btn-sim-
pan" name="edit"> Simpan </button>
</form>
</div>
</div>
</div>
</div>
</body>
</html>
Hasil Tampilan :
Hasil Tampilan :
Hasil Tampilan :
Hasil Tampilan :
Analisa :
Source code di atas adalah source code yang digunakan untuk
menghubungkan database yang telah dibuat sebelumnya dari aplikasi
xampp. Disini saya membuat database “penyewaan_gitar”. Kemudian
dari masing masing field yang telah dibuat pada database akan dipang-
gil dan dijalankan pada file php yang memanggil database dari
“penyewaan_gitar”
2. Ubah isi dari categories-proses.php, yang berada di folder categories.
Source code :
<?php
include '../koneksi.php';
function upload() {
$namaFile = $_FILES['photo']['name'];
$error = $_FILES['photo']['error'];
$tmpName = $_FILES['photo']['tmp_name'];
// cek apakah tidak ada gambar yang diupload
if($error === 4) {
echo "
<script>
alert('Gambar Harus Diisi');
window.location = 'categories-entry.html';
</script>
";
return false;
}
// cek apakah yang diupload adalah gambar
$ekstentiGambarValid = ['jpg', 'jpeg', 'png'];
$ekstensiGambar = explode('.', $namaFile);
$ekstensiGambar = strtolower(end($ekstensiGambar));
if(!in_array($ekstensiGambar, $ekstentiGambarValid)) {
echo "
<script>
alert('File Harus Berupa Gambar');
window.location = 'categories-entry.html';
</script>
";
}
// lolos pengecekan, upload gambar
$namaFileBaru = uniqid();
$namaFileBaru .= '.';
$namaFileBaru .= $ekstensiGambar;
$oke = move_uploaded_file($tmpName, '../img_cate-
gories/' . $namaFileBaru);
return $namaFileBaru;
}
if(isset($_POST['simpan'])) {
$categories = $_POST['categories'];
$price = $_POST['price'];
$photo = upload();
$sql = "INSERT INTO tb_categories VALUES('', '$photo',
'$categories', '$price')";
36
if(empty($categories) || empty($price)) {
echo "
<script>
alert('Pastikan Anda Mengisi Semua Data');
window.location = 'categories-entry.html';
</script>
";
}elseif(mysqli_query($koneksi, $sql)) {
echo "
<script>
alert('Data Categories Berhasil Ditambahkan');
window.location = 'categories.php'
</script>
";
}else {
echo "
<script>
alert('Terjadi Kesalahan');
window.location = 'categories-entry.html'
</script>
";
}
}elseif(isset($_POST['edit'])) {
$id = $_POST['id'];
$photo = $_POST['photo'];
$categories = $_POST['categories'];
$price = $_POST['price'];
// cek apakah user pilih gambar atau tidak
if($_FILES['photo']['error']) {
$photo = $photoLama;
}else {
$photo = upload();}
$sql = "UPDATE tb_categories SET
photo = '$photo',
categories = '$categories',
price = '$price'
WHERE id = $id
";
if(mysqli_query($koneksi, $sql)) {
echo "
<script>
alert('Data Categories Berhasil Diubah');
window.location = 'categories.php';
</script>
";
}else {
echo "
<script>
alert('Terjadi Kesalahan');
window.location = 'categories-edit.php';
</script>
";}
}elseif(isset($_POST['hapus'])) {
$id = $_POST['id'];
$sql = "DELETE FROM tb_categories WHERE id = $id";
if(mysqli_query($koneksi, $sql)) {
echo "
<script>
alert('Data Categories Berhasil Dihapus');
37
window.location = 'categories.php';
</script>
";
}else {
echo "
<script>
alert('Data Categories Gagal Dihapus');
window.location = 'categories.php';
</script>
";}
}else {
header('location: categories.php');
}
Hasil Tampilan :
method="post"
enctype="multipart/form-data"
>
<input type="hidden" name="id" value="<?=
$data['id'] ?>">
<input type="hidden" name="photoLama" value="<?=
$data['photo'] ?>">
<label for="categories">Categories</label>
<input
class="input"
type="text"
name="categories"
id="categories"
placeholder="Categories"
value="<?= $data['categories'] ?>"
/>
<label for="categories">Price</label>
<input
class="input"
type="text"
name="price"
id="price"
placeholder="Price"
value="<?= $data['price']?>"
/>
<label for="photo">Photo</label>
<img src="../img_categories/<?= $data
['photo'] ?>" alt="">
<input
type="file"
name="photo"
id="photo"
style="margin-bottom: 20px"
/>
<button type="submit" class="btn btn-simpan"
name="edit">
Simpan
</button>
</form>
</div>
</div>
</div>
</div>
</body>
</html>
Hasil tampilan :
40
<?php
include '../koneksi.php';
$id = $_GET['id'];
if(!isset($_GET['id'])) {
echo "
<script>
alert('Tidak ada ID yang Terdeteksi');
window.location = 'categories.php';
</script>
";
}
$sql = "SELECT * FROM tb_categories WHERE id =
'$id'";
$result = mysqli_query($koneksi, $sql);
$data = mysqli_fetch_assoc($result);
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible"
content="IE=edge" />
<meta name="viewport" content="width=device-width,
initial-scale=1.0" />
<title>Categories Hapus</title>
<link rel="stylesheet" href="../css/admin.css" />
<link rel="preconnect"
href="https://fonts.googleapis.com" />
<link rel="preconnect"
href="https://fonts.gstatic.com" crossorigin />
<link
href="https://fonts.googleapis.com/css2?
family=Poppins:wght@400;500;700&family=Roboto:wgh
t@500;700&display=swap"
rel="stylesheet"
/>
</head>
<body>
<div class="container">
<div class="sidebar">
<a href="../admin.php">Home</a>
<a href="categories.php">Categories</a>
<a href="../transaction/transaction.php">Trans-
action</a>
</div>
<div class="right_content">
<div class="navbar">
<img src="../assets/LOGO1.png" alt="" />
<button class="btn">
<a href="../logout.php">Logout</a>
</button>
</div>
<div class="content">
<h3>Hapus Categories</h3>
<div class="form-login">
<h4>Ingin Menghapus Data ?</h4>
<form
action="categories-proses.php"
method="post"
42
enctype="multipart/form-data"
>
<input type="hidden" name="id" value="<?=
$data['id'] ?>">
<button type="submit" class="btn btn-sim-
pan" name="hapus" style="width: 40%; margin-top:
50px;">
Yes
</button>
<button type="submit" class="btn btn-sim-
pan" name="tidak" style="width: 40%;">
No
</button>
</form>
</div></div>
</div></div>
</body>
</html>
43
Hasil tampilan :
<a href="../admin.php">Home</a>
<a href="categories.php">Categories</a>
<a
href="../transaction/transaction.php">Transaction</a>
</div>
<div class="right_content">
<div class="navbar">
<img src="gambar/sewa.png" alt="" />
<button class="btn">
<a href="../logout.php">Logout</a>
</button>
</div>
<div class="content">
<h3>Categories</h3>
<button type="button" class="btn btn-tambah">
<a href="categories-entry.html">Tambah
Data</a>
</button>
<table class="table-data">
<thead>
<tr>
<th style="width: 30%">Photo</th>
<th>Categories</th>
<th style="width: 20%">Price</th>
<th style="width: 30%">Action</th>
</tr>
</thead>
<tbody>
<?php
include '../koneksi.php';
$sql = "SELECT * FROM tb_categories";
$result = mysqli_query($koneksi, $sql);
while($data =
mysqli_fetch_assoc($result)) {
echo "
<tr>
<td>
<img
src='../img_categories/$data[photo]'width = '300px'>
</td>
<td>$data[categories]</td>
<td>$data[price]</td>
<td>
<a href=categories-edit.php?
id=$data[id]>Edit</a> |
<a href=categories-hapus.php?
id=$data[id]>Hapus</a>
</td>
</tr>
";}
?>
</tbody>
</table>
</div>
</div>
</div>
</body>
</html>
45
6. Siapkan Plugin dompdf, Ekstrak dan Copy plugin dompdf yang sudah
didownload ke dalam folder xampp/htdocs/Bab7/
Analisa :
Source code di atas adalah source code pada file categories.php
yang digunakan untuk button cetak. Jika button cetak di klik maka web
akan mengarahkan pada halaman web categories-cetak.php. Setelah itu
user diarahkan untuk mendownload file cetaknya dalam bentuk pdf.
8. Buat file baru dengan nama categories-cetak.php, kemudian tam-
bahkan source code dibawah ini :
Source code :
<?php
include('../koneksi.php');
require_once("../dompdf/autoload.inc.php");
use Dompdf\Dompdf;
$dompdf = new Dompdf();
$query = mysqli_query($koneksi, "select * from
tb_categories");
$html = '<center><h3>Daftar
Categories</h3></center><hr/><br>';
$html .= '<table border="1" width="100%">
<tr>
<th>No</th>
46
<th>merk</th>
<th>Price</th>
</tr>';
$no = 1;
while ($row = mysqli_fetch_array($query)) {
$html .= "<tr>
<td>" . $no . "</td>
<td>" . $row['merk'] . "</td>
<td>" . $row['price'] . "</td>
</tr>";
$no++;
}
$html .= "</html>";
$dompdf->loadHtml($html);
// Setting ukuran dan orientasi kertas
$dompdf->setPaper('A4', 'potrait');
// Rendering dari HTML Ke PDF
$dompdf->render();
// Melakukan output file Pdf
$dompdf->stream('laporan-categories.pdf');
Analisa :
Source code di atas adalah source code pada categories-
cetak.php yang digunakan untuk mencatek file data categories. Terda-
pat perintah include yang digunakan untuk menyertakan file php lain
agar saling terhubung. Disini terdapat source code untuk memanggil
plugin dompdf. Lalu terdapat query select * from tabel yang dituju un-
tuk menyeleksi data tabel categories di database. Ada tag tabel untuk
membuat tabel nama gitar dan harganya. Source code ini jika dibuka
maka user akan diarahkan untuk mendownload file berupa pdf.
Hasil Tampilan :
VII.5 Kesimpulan
1. PHP Adalah bahasa scripting server-side, Bahasa pemrograman yang
digunakan untuk mengembangkan situs web statis atau situs web
dinamis atau aplikasi Web. PHP singkatan dari Hypertext Pre-
processor, yang sebelumnya disebut Personal Home Pages.
2. Script sendiri merupakan sekumpulan instruksi pemrograman yang
ditafsirkan pada saat runtime. Sedangkan Bahasa scripting adalah
bahasa yang menafsirkan skrip saat runtime.
3. PHP adalah bahasa pemrograman umum yang berarti php dapat
disematkan ke dalam kode HTML, atau dapat digunakan dalam
kombinasi dengan berbagai sistem templat web, sistem manajemen
konten web, dan kerangka kerja web.
1
BAB VIII
FRAMEWORK
Jumlah Pertemuan : 2 x 60 menit
Tujuan Praktikum : 1. Mampu memahami konsep MVC pada frame-
work Laravel.
2. Mampu mengkofiguransi framework Laravel.
3. Mampu menghubungkan Laravel dengan data-
base.
Alat / bahan : 1. Seperangkat computer.
2. Perangkat lunak: VS Code, XAMPP.
3. Modul Praktikum WEB 2022.
b. Foundation
Framework ini banyak digunakan karena memiliki
kelebihan dalam hal fungsionalitasnya. Foundation dapat bek-
erja dalam segala browser serta kaya akan fitur sama seperti
Bootstrap.
c. Semantic UI
Semantic UI memiliki kelebihan dalam hal penulisan
class yang lebih mudah. Selain itu, framework yang satu ini
juga menyediakan fitur yang user friendly dan komponen yang
lengkap.
d. Bulma
Banyak pengembang yang belum mengenal Bulma. Na-
mun, framework ini memiliki keistimewaan dalam hal tata
letaknya yang berbasis flexbox, sehingga memudahkan devel-
oper dalam mengatur tampilan dalam bentuk responsive.
e. Materialize
Salah satu hal yang menarik pada framework yang satu
ini adalah dapat digunakan pada website secara umum serta
platform Android. Tentu saja dalam hal ini juga mencakup
tampilan yang responsive serta memiliki fitur yang banyak.
2. Framework Javascript
JavaScript (JS) merupakan bahasa pemrograman yang digu-
nakan oleh front end dalam membuat tampilan website menjadi
lebih interaktif. Website yang kompleks tentu saja harus mem-
berikan performa dan pengalaman yang baik bagi pengguna. Den-
gan menggunakan JavaScript, maka website akan terlihat lebih di-
namis. JavaScript sendiri merupakan bahasa yang berjalan pada
sisi front end dan tergolong dalam bahasa pemrograman tingkat
tinggi. Kemudian, dapat berjalan di sisi front end maupun back
end. Berikut ini merupakan beberapa framework dari JS.
a. AngularJS
4
3. Framework PHP
5
e. Zend
Zend merupakan framework yang berparadigma OOP
(Object Oriented Programming) yang berarsitektur MVC.
Fungsionalitas pada Zend memudahkan anda untuk fokus pada
komponen dan fungsi yang dibutuhkan. Karena sifatnya yang
berbasis komponen, Zend banyak disebut sebagai kerangka
kerja “Glue”.
<div class="right_content">
<div class="navbar">
7
Hasil Tampilan :
<div class="right_content">
<div class="navbar">
<img src="../assets/logo.png" alt="" />
<button class="btn">
<a href="../logout.php">Logout</a>
</button>
</div>
9
<div class="content">
<h3>Input Categories</h3>
<div class="form-login">
<form
action="{{ url('/categories/upload') }}"
method="post"
enctype="multipart/form-data"
>
{{ csrf_field() }}
<label for="categories">Categories</la-
bel>
<input
class="input"
type="text"
name="nama"
id="categories"
placeholder="Categories"
/>
<label for="categories">Price</label>
<input
class="input"
type="text"
name="harga"
id="price"
placeholder="Price"
/>
<label for="photo">Photo</label>
<input
type="file"
name="gambar"
id="photo"
style="margin-bottom: 20px"
/>
Hasil Tampilan :
<div class="right_content">
<div class="navbar">
<img src="{{ asset('/assets/logo.png') }}"
alt="" />
<button class="btn">
<a href="../logout.php">Logout</a>
11
</button>
</div>
<div class="content">
<h3>Edit Categories</h3>
<div class="form-login">
<form
action="{{ url('/categories/update/'.
$categories->id_categories) }}"
method="post"
enctype="multipart/form-data"
>
{{ csrf_field() }}
{{ method_field('PUT') }}
<label for="categories">Categories</la-
bel>
<input
class="input"
type="text"
name="nama"
id="categories"
placeholder="Categories"
value="{{ $categories->nama }}"
/>
<label for="categories">Price</label>
<input
class="input"
type="text"
name="harga"
id="price"
placeholder="Price"
value="{{ $categories->harga }}"
/>
<label for="photo">Photo</label>
<img src="{{ asset('/gambar_categories/'.
$categories->gambar) }}" alt="">
<input
type="file"
name="gambar"
id="photo"
style="margin-bottom: 20px"
value="{{ asset('gambar_categories/'.
$categories->gambar) }}"
/>
<button type="submit" class="btn btn-sim-
pan" name="edit">
Simpan
</button>
</form>
</div>
</div>
</div>
</div>
</body>
</html>
Hasil tampilan :
12
Hasil Tampilan :
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\CategoriesController;
use App\Http\Controllers\TransactionController;
/*
|------------------------------------------------------
--------------------
| Web Routes
|------------------------------------------------------
--------------------
|
| Here is where you can register web routes for your
application. These
| routes are loaded by the RouteServiceProvider within
a group which
14
Route::get('/', function () {
return view('index');
});
//categories
Route::get('/categories', [CategoriesController::class,
'tampil']);
Route::get('/categories/tambah', [CategoriesCon-
troller::class, 'tambah']);
Route::post('/categories/upload', [CategoriesCon-
troller::class, 'upload']);
Route::get('/categories/edit/{id_categories}', [Cate-
goriesController::class, 'edit']);
Route::put('/categories/update/{id_categories}', [Cate-
goriesController::class, 'update']);
Route::get('/categories/hapus/{id_categories}', [Cate-
goriesController::class, 'hapus']);
Route::get('/categories/delete/{id_categories}', [Cate-
goriesController::class, 'delete']);
Route::get('/categories/noDelete', [CategoriesCon-
troller::class, 'noDelete']);
6. CategoriesController.php
source code :
<?php
namespace App\Http\Controllers;
use App\Models\Category;
use Illuminate\Http\Request;
Category::create([
'nama' => $request->nama,
'harga' => $request->harga,
'gambar' => $nama_gambar
]);
return redirect('/categories');
}
function edit($id_categories) {
$categories = Category::find($id_categories);
return view('categories.categories-edit', com-
pact('categories'));
}
// update data ke database
function update($id_categories, Request $request) {
$this->validate($request, [
'nama' => 'required',
'harga' => 'required',
'gambar' => 'file|image|
mimes:jpeg,png,jpg:max:2048'
]);
$categories = Category::find($id_categories);
$categories->nama = $request->nama;
$categories->harga = $request->harga;
if($request->hasfile('gambar'))
{ File::delete('gambar_categories/'.
$categories->gambar);
$gambar = $request->file('gambar');
$nama_gambar = time()."_".$gambar->get-
ClientOriginalName();
$simpan_gambar = 'gambar_categories';
$gambar->move($simpan_gambar, $nama_gam-
bar);
$categories->gambar = $nama_gambar;
}
$categories->save();
return redirect('/categories');
}
function hapus($id_categories) {
$categories = Category::find($id_categories);
return view('categories.categories-hapus', com-
pact('categories'));
}
function delete($id_categories) {
// hapus file
$categories = Category::find($id_categories);
File::delete('gambar_categories/'.$categories-
>gambar);
// hapus data
$categories->delete();
return redirect('/categories');
}
function noDelete() {
return redirect('/categories');
}
}
16
</thead>
<tbody>
@foreach ($transaction as $tr)
<td>{{ $tr->nama }}</td>
<td>{{ $tr->jenis }}</td>
<td>{{ $tr->harga }}</td>
<td>{{ $tr->tgl }}</td>
<td>
<a href="/transaction/
edit/{{ $tr->id_transaction }}">Edit</a>
<a href="/transaction/ha-
pus/{{ $tr->id_transaction }}">Hapus</a>
</td>
@endforeach
</tbody>
</table>
</div>
</div>
</div>
</body>
</html>
Hasil Tampilan :
family=Poppins:wght@400;500;700
&family=Roboto:wght@500;700&display=swap"
rel="stylesheet" />
</head>
<body>
<div class="container">
<div class="sidebar">
<a href="../admin.php">Home</a>
<a href="../categories/
categories.php">Categories</a>
<a href="{{ url('/transaction/
tambah') }}">Transaction</a>
</div>
<div class="right_content">
<div class="navbar">
<img src="../assets/logo.png"
alt="" />
<button class="btn">
<a href="../logout/html">Logout</a>
</button>
</div>
<div class="content">
<h3>Input Transaction</h3>
<div class="form-login">
<form action="{{ url('/
transaction/upload') }}" method="POST">
{{ csrf_field() }}
<label for="nama">Nama</label>
<input class="input" type="text"
name="nama" id="nama" placeholder="Nama" />
<label for="jenis">Jenis</label>
<input class="input" type="text"
name="jenis" id="jenis" placeholder="Jenis" />
<label for="harga">Harga</label>
<input class="input" type="text"
name="harga" id="harga" placeholder="Harga" />
<label for="tgl">Tanggal</label>
<input class="input"
type="date" name="tgl" id="tgl" style="margin-bottom:
20px" />
<button type="submit" class="btn
btn-simpan" name="simpan">
Simpan
</button>
</form>
</div>
</div>
</div>
</div>
</body>
</html>
19
Hasil Tampilan :
<div class="content">
<h3>Edit Transaction</h3>
<div class="form-login">
<form action="{{ url('/transac-
tion/update/'.$transaction->id_transaction) }}"
method="post">
{{ csrf_field() }}
{{ method_field('PUT') }}
<input type="hidden" name="id"
value="{{ $transaction->id_transaction }}">
<label for="nama">Nama</label>
<input class="input"
type="text" name="nama" id="nama" placeholder="Nama"
value="{{ $transaction->nama }}" />
<label for="jenis">Jenis</la-
bel>
<input class="input"
type="text" name="jenis" id="jenis" placeholder="Je-
nis" value="{{ $transaction->jenis }}" />
<label for="harga">Harga</la-
bel>
<input class="input"
type="text" name="harga" id="harga"
placeholder="Harga" value="{{ $transaction-
>harga }}" />
<label for="tgl">Tanggal</la-
bel>
<input class="input"
type="date" name="tgl" id="tgl" style="margin-bottom:
20px" value="{{ $transaction->tgl }}" />
<button type="submit"
class="btn btn-simpan" name="edit">
Edit
</button>
</form>
</div>
</div>
</div>
</div>
</body>
</html>
Hasil Tampilan :
21
4. transaction-hapus.blade.php
source code :
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible"
content="IE=edge" />
<meta name="viewport" content="width=device-width,
initialscale=1.0" />
<title>Transaction Hapus</title>
<link rel="stylesheet" href="{{ asset("/css/ad-
min.css") }}" />
<link rel="preconnect"
href="https://fonts.googleapis.com" />
<link rel="preconnect"
href="https://fonts.gstatic.com" crossorigin />
<link href="https://fonts.googleapis.com/css2?
family=Poppins:wght@400;500;70
0&family=Roboto:wght@500;700&display=swap"
rel="stylesheet" />
</head>
<body>
<div class="container">
<div class="sidebar">
<a href="../admin.php">Home</a>
<a href="../categories/categories.php">Cat-
egories</a>
<a href="transaction.php">Transaction</a>
</div>
<div class="right_content">
<div class="navbar">
<img src="{{ asset("/assets/
logo.png") }}" alt="" />
<button class="btn">
<a href="../logout.php">Logout</a>
</button>
</div>
<div class="content">
<h3>Hapus Transaction</h3>
<div class="form-login">
<h4>Ingin Menghapus Data ?</h4>
<form action="{{ url('/
transaction/delete/'. $transaction->id_transaction) }}"
method="get">
<input type="hidden" name="id"
value="" />
<button type="submit"
class="btn btn-simpan" name="hapus" style="width: 40%;
margin-top: 50px;">
Yes
</button>
<button type="submit"
22
Hasil Tampilan :
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\CategoriesController;
use App\Http\Controllers\TransactionController;
/*
|------------------------------------------------------
--------------------
| Web Routes
|------------------------------------------------------
--------------------
|
| Here is where you can register web routes for your
application. These
| routes are loaded by the RouteServiceProvider within
a group which
| contains the "web" middleware group. Now create some-
thing great!
|
*/
Route::get('/', function () {
return view('index');
23
});
//categories
Route::get('/categories', [CategoriesController::class,
'tampil']);
Route::get('/categories/tambah', [CategoriesCon-
troller::class, 'tambah']);
Route::post('/categories/upload', [CategoriesCon-
troller::class, 'upload']);
Route::get('/categories/edit/{id_categories}', [Cate-
goriesController::class, 'edit']);
Route::put('/categories/update/{id_categories}', [Cate-
goriesController::class, 'update']);
Route::get('/categories/hapus/{id_categories}', [Cate-
goriesController::class, 'hapus']);
Route::get('/categories/delete/{id_categories}', [Cate-
goriesController::class, 'delete']);
Route::get('/categories/noDelete', [CategoriesCon-
troller::class, 'noDelete']);
//transaction
Route::get('/transaction',
[TransactionController::class, 'tampil']);
Route::get('/transaction/tambah', [TransactionCon-
troller::class, 'tambah']);
Route::post('transaction/upload', [TransactionCon-
troller::class, 'upload']);
Route::get('transaction/edit/{id_transaction}', [Trans-
actionController::class, 'edit']);
Route::put('transaction/update/{id_transaction}',
[TransactionController::class, 'update']);
Route::get('transaction/hapus/{id_transaction}',
[TransactionController::class, 'hapus']);
Route::get('transaction/delete/{id_transaction}',
[TransactionController::class, 'delete']);
Route::get('transaction/noDelete', [TransactionCon-
troller::class, 'noDelete']);
6. transactionController.php
source code :
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\Transaction;
$this->validate($request, [
'nama' => 'required',
'jenis' => 'required',
'harga' => 'required',
'tgl' => 'required'
]);
Transaction::create([
'nama' => $request->nama,
'jenis' => $request->jenis,
'harga' => $request->harga,
'tgl' => $request->tgl
]);
return redirect('/transaction')->with('suc-
cess', 'Data berhasil ditambahkan');
}
function edit($id_transaction) {
$transaction = Transaction::find($id_transac-
tion);
return view('transaction.transaction-edit',
compact('transaction'));
}
// update data ke database
function update($id_transaction, Request $request)
{
$this->validate($request, [
'nama' => 'required',
'harga' => 'required',
'jenis' => 'required',
'tgl' => 'required'
]);
$transaction = Transaction::find($id_transac-
tion);
$transaction->nama = $request->nama;
$transaction->jenis = $request->jenis;
$transaction->harga = $request->harga;
$transaction->tgl = $request->tgl;
$transaction->save();
return redirect('/transaction') -> with('suc-
cess', 'Data berhasil diubah');
}
function hapus($id_transaction) {
$transaction = Transaction::find($id_transac-
tion);
return view('transaction.transaction-hapus',
compact('transaction'));
}
function delete($id_transaction) {
// hapus file
$transaction = Transaction::find($id_transac-
tion);
// hapus data
$transaction->delete();
25
return redirect('/transaction');
}
function noDelete() {
return redirect('/transaction')->with('error',
'Data tidak dapat dihapus');
}
}
VIII.5 Kesimpulan
1. MVC membagi aplikasi ke dalam tiga bagian fungsional : Model,
View dan Controller.
2. Model : adalah kode-kode untuk model bisnis dan data. biasanya
berhubungan langsung dengan database untuk memanipulasi data (in-
sert, update, delete, search).
3. View : merupakan bagian yang menangani presentation logic. berisi
kode-kode untuk tampilan.
4. Controller : merupakan bagian yang mengatur hubungan antara bagian
model dan bagian view.
1
BAB IX
KESIMPULAN
Dengan adanya kegiatan praktikum Pemrograman Web. Penulis dapat
menyimpulkan sebagai berikut :
1. Hyper Text Markup Language adalah bahasa mark up untuk mendeskripsi
dokumen-dokumen web (halaman web).
2. Text Cascading Style Sheets berfungsi untuk mengontrol tampilan dari sebuah
halaman website.
3. Javascript dapat mengubah isi HTML, dapat mengubah atribut HTML, dapat
mengubah styles (CSS), dapat pula mengenali data input.
4. Keuntungan menggunakan Javascript External yaitu dapat membagi code an-
tara html dan javascript, dapat membuat code html dan javascript mudah
dibaca, dan dapat membuat file javascript diload lebih cepat.
5. PHP (Hypertext Preprocessor) merupakan salah satu bahasa webscripting
yang sangat powerful.
6. PHP session digunakan untuk menyimpan user information pada server untuk
digunakan kemudian (username, password, dll).
7. Database adalah sekelompok data yang ditaruh secara sistematis dalam
perangkat komputer. Database merupakan perkumpulan data yang disimpan
dalam komputer untuk dapat dengan mudah diakses, di update dan diorganisir
menggunakan Database Management System.
8. Create berfungsi untuk membuat record baru pada sistem basis data, sedan-
gkan update berfungsi untuk memodifikasi data atau record yang telah tersim-
pan di dalam database.
9. PDF (Portable Document Format) adalah sebuah format berkas yang dibuat
oleh adobe systems pada tahun 1993 untuk keperluan pertukaran dokumen
digital.
10. Dompdf merupakan sebuah package yang sering digunakan untuk membuat
laporan PDF pada bahasa pemograma PHP.
DAFTAR PUSTAKA
Gregorius, A. (2012). Buku Pintar HTML5 + CSS3 + DreamWeaver CS6.
Yogyakarta: Jubilee Enterprise.
Hartanti, D. (2010). Analisis Sistem Informasi Kepegawaian Pemerintah. Jakarta:
Informatika Bekasi.
Puspitosari, H. A. (2010). Pemrograman Web Database dengan PHP dan.
Malang: Skripta.
Raharjo, B. &. (2010). Modul Pemrograman Web (HTML, PHP, dan MySQL).
Saputra, A. (Februari 2012). Webtrik : PHP, HTML5, dan CSS3. Jakarta.
Setiawan, D. (2017). Buku Sakti Pemrograman Web: HTML, CSS, PHP, MySQL
& Javascript. Anak Hebat Indonesia.
Solichin, A. (2016). Pemrograman web dengan PHP dan MySQL. Budi Luhur.
LABORATORIUM PEMROGRAMAN KOMPUTER
INSTITUT TEKNOLOGI NASIONAL
Kampus II : Jl. Raya Karanglo Km. 2 Malang
JAVASCRIPT
PHP DASAR
1
PHP LOGIN
PHP CRUD
FRAMEWORK
Dosen
Batas Akhir: