Laporan Akhir PBW
Laporan Akhir PBW
Di Susun Oleh :
Di Susun Oleh :
1.2 Tujuan
1. Mampu menjelaskan pengertian HTML.
2. Mampu mengimplementasikan struktur dasar, tag-tag HTML.
3. Mampu membuat aplikasi dengan perintah-perintah HTML.
BAB II
DASAR TEORI
2.1 Pengertian HTML
HTML adalah HyperText Markup Language merupakan sebuah bahasa
markah untuk membuat halaman web (Wikipedia). Dokumen HTML adalah file
text murni yang dapat dibuat dengan teks editor sembarang. Dokumen ini dikenal
sebagai web page. File-file HTML ini berisi instruksi-instruksi yang kemudian
diterjemahkan oleh browser yang ada dikomputer client (user) sehingga isi
informasinya dapat ditampilkan secara visual dikomputer pengguna (user).
HTML menggunakan serangkaian tag atau elemen untuk menandai berbagai
bagian dari halaman, seperti teks, gambar, link, dan tabel. Browser web kemudian
menginterpretasikan tag-tag ini untuk menampilkan halaman web dengan benar
kepada pengguna.
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
</body>
Setiap dokumen HTML harus diawali dengan menuliskan tag dan diakhir
</html>
dokumen. Tag ini menandai elemen HTML, yang berarti dokumen ini adalah
dokumen HTML. Dalam satu dokumen hanya ada satu elemen HTML.
Section atau elemen head dimulai dengan tag diawal, dan tag diakhir.
Section ini berisi informasi tentang dokumen htmlnya. Minimal informasi yang
dituliskan dalam elemen ini adalah judul dari dokumen, judul ini akan ditampilkan
pada caption bar dari window browser, ditandai dengan menggunakan tag .
Sehingga bagian yang diapit oleh tag HEAD merupakan header dari halaman
HTML dan tidak ditampilkan pada browser. Sedangkan tag TITLE yang berfungsi
untuk mengeluarkan judul pada title bar window web browser.
Section atau elemen body ditandai dengan tag diawal dan tag diakhir.
Section body merupakan elemen terbesar didalam dokumen HTML. Pada bagian
ini anda akan menuliskan semua jenis informasi berupa teks dengan bermacam
format maupun gambar yang ingin disampaikan pada pengguna nantinya.
2.5 Tag-tag HTML dan Fungsinya
a. Warna latar belakang
b. Menggunakan gambar
c. Heading
Untuk judul atau sub judul dalam dokumen HTML
e. Break
f. Font
Ukuran font
<font size=“n”
g. Untuk formatface=“jenis_font”
Teks color=“warna”> . . . </font>
Bold:
<b> . . .</b>
Emphasized:
<em> . . . </em>
Italic:
<i> . . . </i>
Superscript:
<sup> . . .</sup>
Subscripted:
<sub> . . . </sub>
Struck trough:
h. Gambar
<del> Memuat
Untuk . . . </del>
gambar ke dalam halaman Web
i. Hypertext Link
Format:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
</head>
<body>
<table border="1">
<tr>
</tr>
<tr>
</html>
Saat membuat tabel, terkadang kita dihadapkan akan kebutuhan untuk
menggabungkan beberapa sel menjadi satu. Untuk menggabungkan beberapa sel
menjadi satu pada suatu tabel, HTML menyediakan beberapa atribut yang bisa
kamu gunakan seperti berikut :
a. Atribut rowspan digunakan untuk menggabungkan baris pada tabel
b. Atribut colspan digunakan untuk menggabungkan kolom pada tabel
Atribut tersebut bisa diterapkan pada tag td maupun th. Perhatikan contoh kode
program berikut :
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
</head>
<body>
<table border="1">
<tr>
<th rowspan="2">Nama</th>
<th colspan="3">Nilai</th>
</tr>
<tr>
<th>Kimia</th>
<th>Fisika</th>
<th>Biologi</th>
</tr>
<tr>
<td>Robby</td>
<td>76</td>
<td>80</td>
<td>81</td>
</tr>
</table>
</body>
</html>
2.7 Form
Elemen HTML <form> digunakan untuk membuat formulir HTML untuk
input pengguna:
<form>
form elements
</form>
Elemen <form> adalah wadah untuk berbagai jenis elemen masukan,
seperti: bidang teks, kotak centang, tombol radio, tombol kirim, dll.
Elemen HTML <input> adalah elemen formulir yang paling banyak
digunakan. Suatu <input> elemen dapat ditampilkan dalam berbagai cara,
bergantung pada atributnya type . Berikut beberapa contohnya:
Type Deskripsi
<label for="html">HTML</label><br>
<label for="css">CSS</label><br>
<label for="javascript">JavaScript</label>
</form>
BAB III TUGAS PENDAHULUAN
BAB IV
IMPLEMENTASI
4.1 Source-Code:
1. Biodata Diri
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-
scale=1.0">
<title>Biodata Diri</title>
<style>
body {
background-color: aquamarine;
}
</style>
</head>
<body>
<h1 align="center">BIODATA DIRI</h1>
<hr width="600px">
<table align="center" cellpadding="10px" width="600px">
<tr>
<td>Nama</td>
<td>: Sunda Madu Buana</td>
<td rowspan="8"><img src="madu.jpg" alt=""
height="200px" width="170px"></td>
</tr>
<tr>
<td>NIM</td>
<td>: 230441100003</td>
</tr>
<tr>
<td>Alamat</td>
<td>: Bangkalan, Socah</td>
</tr>
<tr>
<td>TTL</td>
<td>: Jayapura / 17 April 2005</td>
</tr>
<tr>
<td>Agama</td>
<td>: Islam</td>
</tr>
<tr>
<td>Email</td>
<td>: [email protected]</td>
</tr>
<tr>
<td>Hobby</td>
<td>: Baca novel</td>
</tr>
<tr>
<td>No handphone</td>
<td>: 082199048001</td>
</tr>
</table>
<center><a href="halaman2.html">Click here !</a></center>
</body>
</html>
Penjelasan 1:
Pada source code diatas menggunakan judul "Biodata Diri" yang berada di
tengah (align="center"), diikuti oleh garis horizontal (hr) yang lebarnya 600 piksel.
Informasi pribadi yang dalam sebuah tabel yang terletak di tengah halaman
(align="center") dengan lebar 600 piksel. Setiap entri dalam tabel disusun dengan
baik menggunakan tag <td> (table data). Ada tujuh baris dalam tabel yang
mencakup nama, NIM, alamat, tempat dan tanggal lahir, agama, hobi, dan nomor
telepon. Foto Radhina juga disertakan di sebelah kanan tabel dengan dimensi
200x150 piksel. Selain itu, di bagian bawah halaman, terdapat tautan yang
mengarah ke halaman lain dengan teks "Click to DataMahasiswa !" yang terletak
di tengah halaman (align="center").
2. Tabel Mahasiswa
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-
scale=1.0">
<title>Absen Praktikum</title>
<style>
body {
background-color: #A0E9FF;
}
</style>
</head>
<body>
<h1 align="center">Daftar Absensi Praktikum</h1>
<table border="1" cellspacing="3" cellpadding="8"
align="center">
<tr align="center" bgcolor="#F8BDEB">
<th>No</th>
<th>Nama</th>
<th>NIM</th>
<th>Asprak</th>
</tr>
<tr bgcolor="#FFC6AC">
<td>1</td>
<td>KHRISNA ADI WINATA</td>
<td>190441100022</td>
<td rowspan="12">Agastia Devi Wardani</td>
</tr>
<tr bgcolor="#FFC6AC">
<td>2</td>
<td>RADHINA ZAKHRATUL JANNAH</td>
<td>230441100002</td>
</tr>
<tr bgcolor="#FFC6AC">
<td>3</td>
<td>SUNDA MADU BUANA</td>
<td>230441100003</td>
</tr>
<tr bgcolor="#FFC6AC">
<td>4</td>
<td>SAFIRA RIHADATUL AISY</td>
<td>230441100005</td>
</tr>
<tr bgcolor="#FFC6AC">
<td>5</td>
<td>MUHAMMAD YUSRI</td>
<td>230441100008</td>
</tr>
<tr bgcolor="#FFC6AC">
<td>6</td>
<td>MUHAMMAD ILHAM FERDIANSYAH</td>
<td>230441100009</td>
</tr>
<tr bgcolor="#FFC6AC">
<td>7</td>
<td>WAHYU ALIF AJIR NURDIANTO</td>
<td>230441100014</td>
</tr>
<tr bgcolor="#FFC6AC">
<td>8</td>
<td>AMANDA AULIA PUTRI</td>
<td>230441100017</td>
</tr>
<tr bgcolor="#FFC6AC">
<td>9</td>
<td>ACHMAD RENDI SETIAWAN</td>
<td>230441100018</td>
</tr>
<tr bgcolor="#FFC6AC">
<td>10</td>
<td>FRINANDA AL FITRAH RAMADHANI</td>
<td>230441100019</td>
</tr>
<tr bgcolor="#FFC6AC">
<td>11</td>
<td>ARIFIN ABDILLAH</td>
<td>230441100020</td>
</tr>
<tr bgcolor="#FFC6AC">
<td>12</td>
<td>LANNY APRILIA</td>
<td>230441100022</td>
</tr>
<tr bgcolor="#FF6666">
<td>13</td>
<td>EVRILLA STEVIANO TUMANGGOR</td>
<td>230441100024</td>
<td rowspan="13">Devi Dwi Novitasari</td>
</tr>
<tr bgcolor="#FF6666">
<td>14</td>
<td>ARNO GALIH CANDRA KARTIKA</td>
<td>230441100033</td>
</tr>
<tr bgcolor="#FF6666">
<td>15</td>
<td>TRI CITRA AMBARWATI</td>
<td>230441100036</td>
</tr>
<tr bgcolor="#FF6666">
<td>16</td>
<td>NUR MUHAMMAD</td>
<td>230441100037</td>
</tr>
<tr bgcolor="#FF6666">
<td>17</td>
<td>SESILIA FEBI DIYANTIKA</td>
<td>230441100040</td>
</tr>
<tr bgcolor="#FF6666">
<td>18</td>
<td>ABD. BASED</td>
<td>230441100055</td>
</tr>
<tr bgcolor="#FF6666">
<td>19</td>
<td>ARIQ IKBAR HAKIM</td>
<td>230441100058</td>
</tr>
<tr bgcolor="#FF6666">
<td>20</td>
<td>AKBAR MAULANA HUSADA</td>
<td>230441100060</td>
</tr>
<tr bgcolor="#FF6666">
<td>21</td>
<td>MOHAMMAD GUFRON</td>
<td>230441100065</td>
</tr>
<tr bgcolor="#FF6666">
<td>22</td>
<td>MUHAMMAD BINTANG EYZRIL DHIYA'ULHAQ</td>
<td>230441100084</td>
</tr>
<tr bgcolor="#FF6666">
<td>23</td>
<td>TRINANDA INDRAYANA</td>
<td>230441100108</td>
</tr>
<tr bgcolor="#FF6666">
<td>24</td>
<td>CYNDIFANITA B'THARI MARSHA</td>
<td>230441100109</td>
</tr>
<tr bgcolor="#FF6666">
<td>25</td>
<td>RAYHAN NUR MAULIDAN</td>
<td>230441100112</td>
</tr>
<tr bgcolor="#73A9AD">
<td>26</td>
<td>NAFI' ALI YAHYA</td>
<td>230441100115</td>
<td rowspan="13">Cindy Permata Sari</td>
</tr>
<tr bgcolor="#73A9AD">
<td>27</td>
<td>LAVELIA MUFARIDATUL FAZALINA</td>
<td>230441100122</td>
</tr>
<tr bgcolor="#73A9AD">
<td>28</td>
<td>AHMAD TIYANDI AL AZHAR</td>
<td>230441100131</td>
</tr>
<tr bgcolor="#73A9AD">
<td>29</td>
<td>ALIYUL RIDHO</td>
<td>230441100135</td>
</tr>
<tr bgcolor="#73A9AD">
<td>30</td>
<td>ADITYA</td>
<td>230441100138</td>
</tr>
<tr bgcolor="#73A9AD">
<td>31</td>
<td>AGATHA YASMIN RAHMAN</td>
<td>230441100156</td>
</tr>
<tr bgcolor="#73A9AD">
<td>32</td>
<td>MUHAMMAD ROBBI FIRMANSYAH</td>
<td>230441100163</td>
</tr>
<tr bgcolor="#73A9AD">
<td>33</td>
<td>M. RIYYAN KUSUMA ZUNAEDI</td>
<td>230441100164</td>
</tr>
<tr bgcolor="#73A9AD">
<td>34</td>
<td>ZAHRATUL ADZKA NAFISA HAFIZH</td>
<td>230441100165</td>
</tr>
<tr bgcolor="#73A9AD">
<td>35</td>
<td>TAUFIK IKROM JAMIL</td>
<td>230441100179</td>
</tr>
<tr bgcolor="#73A9AD">
<td>36</td>
<td>IBNU NASHRULLOH. M</td>
<td>230441100186</td>
</tr>
<tr bgcolor="#73A9AD">
<td>37</td>
<td>AHMAD MUSHOFA</td>
<td>230441100191</td>
</tr>
<tr bgcolor="#73A9AD">
<td>38</td>
<td>AHMAD RIKHAN ARBAI</td>
<td>230441100192</td>
</tr>
</table>
<br>
<center><a href="halaman3.html">next page</a></center>
<br>
</body>
</html>
Penjelasan 2 :
judul utama halaman yang ditampilkan dalam tag <h1> dengan atribut
align="center". Kemudian, terdapat sebuah tabel <table> yang berisi daftar
absensi praktikum. Setiap baris tabel <tr> mewakili entri untuk setiap
mahasiswa. Di dalam setiap baris, terdapat beberapa kolom <td> yang berisi
informasi seperti nomor absen, nama, NIM, dan nama asisten praktikum.
Terdapat juga penggunaan atribut bgcolor untuk memberikan warna latar
belakang pada setiap baris sesuai dengan kategori yang berbeda. Selain itu,
terdapat juga tautan menuju halaman berikutnya dengan menggunakan tag <a>
yang mengarahkan pengguna ke halaman halaman3.html.
3. Form Input
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-
scale=1.0">
<title>Formulir Biodata</title>
</head>
<body>
<h1 align="center">Membuat Form Data Diri</h1>
<hr width="700px">
<form action="" method="post">
<table align="center">
<tr>
<td>Nama : </td>
<td><input type="text"></td>
</tr>
<tr>
<td>NIM : </td>
<td><input type="number"></td>
</tr>
<tr>
<td>Email : </td>
<td><input type="email"></td>
</tr>
<tr>
<td>Tanggal Lahir : </td>
<td><input type="date"></td>
</tr>
<tr>
<td>Jenis Kelamin : </td>
<td><input type="radio" name="jk"> Laki - laki
<input type="radio" name="jk"> Perempuan
</td>
</tr>
<tr>
<td>Hobby : </td>
<td><input type="checkbox"> Dance
<input type="checkbox"> Futsal
<input type="checkbox"> Membaca
<input type="checkbox"> Melukis
<input type="checkbox"> Berenang
</td>
</tr>
<tr>
<td>Alamat : </td>
<td><textarea name="" id="" cols="30"
rows="10"></textarea></td>
</tr>
<tr>
<td></td>
<td><input type="submit" value="Simpan">
<input type="button" value="Kembali">
</td>
</tr>
</table>
</form>
<br>
<center><a href="halaman1.html">Back to home</a></center>
</body>
</html>
Penjelasan 3 :
Source code HTML di atas adalah sebuah formulir biodata yang dirancang
untuk mengumpulkan informasi pribadi pengguna. Formulir ini mencakup
bidang-bidang seperti nama, NIM, email, tanggal lahir, jenis kelamin, hobi, dan
alamat. Pada bagian atas halaman, terdapat judul "Membuat Form Data Diri"
yang diberi penempatan tengah dengan menggunakan atribut align="center".
Diikuti oleh sebuah garis horizontal yang dibuat dengan tag <hr> untuk
memisahkan judul dengan formulir.Formulir ini terdiri dari beberapa input dan
elemen lainnya, Input Nama: Pengguna diminta untuk memasukkan nama
mereka menggunakan input tipe teks. Input NIM: Terdapat input tipe angka
untuk memasukkan NIM pengguna. Input Email: Untuk memasukkan alamat
email, digunakan input tipe email. Input Tanggal Lahir: Digunakan input tipe
tanggal untuk memudahkan pengguna memilih tanggal lahir mereka. Pilihan
Jenis Kelamin: Ada dua opsi radio button yang memungkinkan pengguna
memilih jenis kelamin mereka. Pilihan Hobi: Terdapat beberapa opsi checkbox
yang memungkinkan pengguna memilih hobi mereka. Input Alamat: Untuk
memasukkan alamat, digunakan elemen textarea yang memungkinkan
pengguna memasukkan teks dalam jumlah yang lebih besar. Tombol Simpan
dan Kembali: Tombol "Simpan" akan mengirimkan data formulir, sedangkan
tombol "Kembali" berfungsi untuk mengembalikan pengguna ke halaman
sebelumnya. Tautan Kembali ke Halaman Utama: Di bagian bawah halaman,
terdapat tautan yang mengarahkan pengguna kembali ke halaman utama dengan
menggunakan tag <a>.
4.2 Output
1. Biodata Diri
2. Tabel Mahasiswa
3. Form Input
BAB V
PENUTUP
5.1 Analisa
Ketiga halaman HTML tersebut memiliki tujuan yang berbeda-beda.
Halaman pertama, yang menampilkan biodata seseorang, menggunakan tag-tag
HTML seperti <table>, <tr>, <td>, dan <img> untuk menampilkan informasi
seperti nama, alamat, tanggal lahir, program studi, dan hobi. Selain itu, halaman
tersebut juga menyertakan sebuah link yang mengarah ke halaman lain dengan teks
Halaman kedua menampilkan data mahasiswa dalam bentuk tabel. Dengan
menggunakan tag-tag HTML seperti <table>, <tr>, <td>, dan <th>, setiap baris
tabel mewakili satu mahasiswa dengan kolomnya adalah nomor, nama, NIM, dan
nama asprak. Terdapat beberapa mahasiswa yang memiliki asprak yang sama,
ditandai dengan penggunaan atribut rowspan pada kolom asprak.
Halaman ketiga menampilkan sebuah form untuk menambahkan data baru.
Dengan menggunakan tag-tag HTML seperti <form>, <table>, <tr>, <td>, <input>,
<select>, dan <textarea>, form ini memungkinkan pengguna untuk memasukkan
informasi seperti nama, NIM, tanggal lahir, jenis kelamin, hobi, pendidikan, dan
alamat. Setelah pengguna mengisi informasi, mereka dapat menyimpannya dengan
menekan tombol "Simpan" yang ada pada form.
5.2 Kesimpulan
1. HTML mudah untuk dipelajari oleh seorang Web Developer pemula.
2. HTML adalah sebuah bahasa markup yang biasa digunakan untuk
menyusun dan membuat file website.
3. Dapat dibantu oleh teknologi seperti Cascading Style Sheets (CSS) dan
bahasa skrip lainnya seperti JavaScript dan PHP.
4. Mempermudah dalam membuat website atau membuat aplikasi.
5. HTML juga untuk mendefinisikan struktur dan tampilan halaman web serta
mengintegrasikan elemen-elemen multimedia seperti gambar, video, dan
hyperlink.
LAPORAN RESMI
MODUL II
CSS
PEMROGRAMAN BERBASIS WEB
1.2 Tujuan
Mampu menjelaskan mengenai pengenalan CSS, selector, komentar, dan
mekanisme membuat perintah – perintah CSS PHP
Mampu mengetahui jenis – jenis CSS
Mampu menggunakan CSS untuk membuat halaman web terlihat lebih
menarik
BAB II
DASAR TEORI
2.1 CSS (Cascading Style Sheet)
CSS adalah singkatan dari Cascading Style Sheets, yaitu bahasa pemrograman
untuk mengontrol tampilan dan gaya halaman web. Dengan CSS dapat digunakan
mengatur warna, ukuran, jenis huruf, jarak antar elemen, tata letak, dan atribut
tampilan lainnya dari elemen HTML.
Contoh :
2. Internal CSS
Pada metode internal, kode CSS langsung didefinisikan pada dokumen
HTML. Konfigurasi diletakkan didalam elemen HTML style dan
menempatkannya pada bagian head (baris 5-10 pada kode di bawah).
Contoh :
3. Inline CSS
Pada metode inline, konfigurasi CSS langsung ditempatkan pada
elemen yang bersangkutan melalui atribut style (baris ke-8 pada kode di
bawah).
Contoh :
c. Selector berdasarkan ID
Digunakan untuk mendefinisikan style yang berhubungan dengan suatu
object memanfaatkan ID unik, biasa digunakan saat bekerja dengan layer.
Syntax:
4. Link
Digunakan sebagai penghubung sehingga dapat digunakan untuk berpindah dari
satu bagian ke bagian lain, dari satu halaman ke halaman lain bahkan dari satu situs
ke situs lainnya. CSS menyediakan elemen link yang dapat digunakan untuk
mengatur perilaku link.
a. Tag html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Baratie Coffe</title>
</head>
<body>
<div class="menu">
<div class="heading">
<h1>Baratie Coffe</h1>
<h3>—Menu—</h3>
</div>
<div class="food-items">
<div class="details">
<div class="details-sub">
<h5>Croffles</h5>
<h5 class="price">$9</h5>
</div>
<button>Add To Cart</button>
</div>
</div>
<div class="food-items">
<div class="details">
<div class="details-sub">
<h5>churros</h5>
<h5 class="price">$5</h5>
</div>
<button>Add To Cart</button>
</div>
</div>
<div class="food-items">
<div class="details">
<div class="details-sub">
<h5>Espresso</h5>
<h5 class="price">$3</h5>
</div>
<button>Add To Cart</button>
</div>
</div>
<div class="food-items">
<div class="details">
<div class="details-sub">
<h5>Mocha Cola</h5>
<h5 class="price">$5</h5>
</div>
<button>Add To Cart</button>
</div>
</div>
<div class="food-items">
<div class="details">
<div class="details-sub">
<h5>Mojito Strawberry</h5>
<h5 class="price">$6</h5>
</div>
<button>Add To Cart</button>
</div>
</div>
<div class="food-items">
<div class="details">
<div class="details-sub">
<h5>Mozzarella Stick</h5>
<h5 class="price">$8</h5>
</div>
<button>Add To Cart</button>
</div>
</div>
<div class="food-items">
<div class="details">
<div class="details-sub">
<h5>Potato wedges</h5>
<h5 class="price">$5</h5>
</div>
<button>Add To Cart</button>
</div>
</div>
<div class="food-items">
<div class="details">
<div class="details-sub">
<h5 class="price">$23</h5>
</div>
<button>Add To Cart</button>
</div>
</div>
<div class="food-items">
<div class="details">
<div class="details-sub">
<h5>Sandwich</h5>
<h5 class="price">$9</h5>
</div>
<button>Add To Cart</button>
</div>
</div>
<div class="food-items">
<div class="details">
<div class="details-sub">
<h5>Smoothies</h5>
<h5 class="price">$18</h5>
</div>
<button>Add To Cart</button>
</div>
</div>
<div class="food-items">
<div class="details">
<div class="details-sub">
<h5>Fruit Fusion</h5>
<h5 class="price">$7</h5>
</div>
<button>Add To Cart</button>
</div>
</div>
<div class="food-items">
<div class="details">
<div class="details-sub">
<h5>cassoulet</h5>
<h5 class="price">$12</h5>
</div>
<button>Add To Cart</button>
</div>
</div>
</div>
</body>
</html>
b. Style css
* {
margin: 0;
padding: 0;
box-sizing: border-box;
text-decoration: none;
list-style: none;
font-family: sans-serif;
body {
background: #E0D8B0;
font-family: sans-serif;
.menu {
display: grid;
grid-template-columns: repeat(auto-fit,minmax(350px,1fr));
.heading {
background: #C8AE7D;
color: #ffff;
margin-bottom: 30px;
padding: 30px 0;
grid-column: 1/-1;
text-align: center;
}
.heading>h1 {
font-weight: 400;
font-size: 32px;
letter-spacing: 10px;
margin-bottom: 10px;
text-transform: uppercase;
.heading>h3 {
font-weight: 600;
font-size: 22px;
letter-spacing: 5px;
text-transform: uppercase;
.food-items {
display: grid;
position: relative;
border-radius: 15px;
.food-items img {
position: relative;
width: 100%;
height: 280px;
cursor: pointer;
h1 {
grid-column: 1/-1;
text-align: center;
.details {
display: grid;
grid-row-gap: 15px;
background: #C8AE7D;
.details-sub {
display: grid;
.details-sub>h5 {
font-weight: 600;
font-size: 18px;
.price {
text-align: right;
.details>p {
color: #fff;
font-size: 15px;
line-height: 28px;
font-weight: 400;
align-self: stretch;
.details>button {
background: #765827;
border: none;
color: #fff;
font-size: 16px;
font-weight: 600;
border-radius: 5px;
width: 180px;
cursor: pointer;
.details>button:hover {
background: #65451F;
Penjelasan :
Program ini adalah sebuah website yang menampilkan menu makanan dan
minuman yang tersedia di restoran. Website ini menggunakan HTML dan CSS
untuk membuat struktur dan tampilan. Pada bagian atas, ada judul "Baratie Coffe"
dan subjudul "—Menu—". Di bawahnya, ada beberapa item makanan dan minuman
yang ditampilkan melalui tag <div> dengan class "food-items". Setiap item
makanan/minuman terdiri dari gambar, informasi detail, dan tombol "Add To Cart"
yang digunakan untuk menambahkan item tersebut ke keranjang belanja. Program
di atas menggunakan CSS untuk membuat halaman web terlihat lebih menarik.
4.2 Hasil
1. halaman web yang menampilkan menu makanan dan minuman
BAB V
PENUTUP
5.1 Analisa
Dari hasil praktikum, praktikan dapat mengetahui bahwa CSS digunakan untuk
mengatur tampilan suatu dokumen yang ditulis dalam bahasa markup, seperti
HTML. Praktikan dapat menggunakan CSS untuk mengatur tata letak, warna, dan
gaya halaman web, seperti div, heading, navigasi dll. praktikan dapat membahas
tentang pengenalan CSS, penggunaan CSS, sintak CSS, dan menampilkan hasil
desain halaman web dengan CSS. mengembangkan website atau aplikasi web
menggunakan HTML dan CSS.
CSS mengurangi kerja yang dibutuhkan untuk mengatur tampilan halaman
web, karena ia mungkin untuk mengontrol tampilan elemen HTML secara global.
CSS digunakan untuk memformat halaman web yang ditulis dengan HTML. CSS
adalah bahasa yang digunakan untuk menentukan bagaimana elemen HTML harus
ditampilkan di layar, kertas, atau media lain.
5.2 Kesimpulan
1. CSS digunakan untuk mengatur tampilan dan format halaman web. Tanpa
CSS, halaman web akan terlihat sederhana dan tidak terstruktur.
2. Ada tiga jenis penempatan CSS, yaitu inline CSS, eksternal CSS, dan
Internal CSS.
3. CSS memiliki fitur – fitur seperti media queries yang memungkinkan untuk
tampilan halaman web menyesuaikan dengan berbagai perangkat dan
ukuran layar.
LAPORAN RESMI
MODUL III
FRAMEWORK CSS (BOOTSTRAP & TAILWIND)
PEMROGRAMAN BERBASIS WEB
1.2 Tujuan
Mahasiswa dapat menggunakan bootstrap untuk meningkatkan pengaturan
layout web
Mampu menggunakan Tailwindcss untuk membangun pembuatan laman
web
Mampu mengetahui apa itu framework bootstrap dan tailwindcss
BAB II
DASAR TEORI
2.1 Bootstrap
Bootstrap adalah framework HTML, CSS, dan JavaScript yang membuat
desain situs web responsif menjadi mudah dan cepat. Selain digunakan untuk
mengembangkan situs web lebih cepat, Bootstrap merupakan kerangka kerja
sumber terbuka gratis. Skrip dan sintaks yang disediakan oleh Bootstrap dapat
diterapkan ke beberapa komponen desain web. Framework ini terdiri dari kumpulan
file CSS dan JavaScript dalam bentuk class-class cukup lengkap yang bisa
digunakan.
1. Menggunakan Bootstrap
Menggunakan boostrap dengan CDN merupakan salah satu cara yang paling
gampang dilakukan untuk belajar Bootstrap. Kita cukup copy link CDN Bootstrap,
lalu di taruh pada kode HTML. Dengan syaratnya yaitu harus terhubung dengan
internet, karena Bootstrap akan diambil dari server CDN. CDN adalah singkatan
dari Content Delivery Network, semacam server yang tersebar di seluruh dunia
untuk mengantarkan konten secara optimal dan cepat.
a. Buatlah folder baru dengan nama belajar-bootstrap, setelah itu buka dengan
VS Code
b. Setelah itu, buatlah file HTML baru dengan nama hello-bootstrap.html
c. Berikut merupakan contoh kode penggunaan Bootstrap sederhana
menggunakan layout 1 kolom yang bisa dicoba :
Penjelasan:
Baris ke-11 menambahkan tautan ke file CSS Bootstrap yang digunakan untuk
mengatur gaya dan tata letak halaman.
Baris ke-45 tautan ke file JavaScript Bootstrap yang diperlukan untuk fungsi
interaktif, seperti dropdown, modals, dan lainnya.
Baris ke-15 menggunakan kelas "container" untuk mengelompokkan elemen
header dan memberikan padding di sekitarnya. Serta kelas "bg-primary" untuk
memberikan warna latar belakang biru pada elemen header & kelas "text-
white" untuk memberikan warna teks putih pada teks di dalam elemen header.
Baris ke-16 menggunakan kelas "row" untuk membuat baris di dalam elemen
header, yang digunakan untuk menyusun elemen-elemen ke dalam kolom-
kolom. Dillanjut pada baris ke-17 dengan kelas "col-12" untuk membuat satu
kolom pada layout grid Bootstrap di dalam elemen header.
Menggunakan kelas "py-4" untuk memberikan padding atas dan bawah sebesar
4 unit (dalam hal ini, unit adalah "rem") & kelas "text-center" untuk membuat
teks di dalam elemen menjadi berada di tengah secara horizontal.
Baris ke-18 untuk membuat teks judul (heading) dengan ukuran yang besar
sesuai gaya Bootstrap & pemberian kelas "lead" untuk memberikan gaya
khusus pada paragraf, menambahkan ruang dan ukuran huruf yang nyaman.
Baris ke-24 menggunakan kelas "container" untuk mengelompokkan elemen-
elemen utama dan memberikan padding di sekitarnya & kelas "border" untuk
menambahkan garis tepi pada elemen.
2. Kelas Grid
Bootstrap memiliki beberapa kelas grid:
Bila framework pada umumnya yang kamu jumpai terdiri dari banyak pra-
desain komponen, di TailwindCSS ini kamu tidak akan menemukan pra-
desain komponen seperti button, card, alert, carousel atau yang lainnya. Karena
TailwindCSS bukan merupakan sebuah UI kit, melainkan sebuah utility-first
framework untuk membangun antarmuka kustom dengan cepat.
Sederhananya, di dalam TailwindCSS terdapat banyak class-class kecil yang
merepresentasikan CSS declaration. Sehingga, ketika kamu ingin membuat sebuah
komponen, maka kamu perlu menggunakan beberapa class-class kecil tersebut
hingga tercipta komponen yang kamu maksud. Misal, kamu ingin membuat
sebuah komponen button.
<button class="btn">Button</button>atau<button
class="button">Button</button>
Tapi, dengan seperti ini, UI yang kamu buat dengan orang lain akan
berbeda meski menggunakan framework yang sama. Berbeda halnya bila
menggunakan UI kit, UI yang dibuat akan cenderung sama, karena di dalam UI kit
sudah tersedia pra-desain komponen, meski style- nya dapat di-override, tetapi
hasilnya mungkin tidak berbeda jauh. Tailwind CSS tidak dapat dibandingkan
dengan framework UI kit — seperti Bootstrap, Bulma atau Spectre — karena
pada dasarnya, mereka memiliki konsep yang berbeda. Bila pada framework UI
kit kamu perlu membuat beberapa custom class untuk mengkostumisasi pra-
desain komponen yang digunakan, sedangkan di TailwindCSS kamu akan dapat
mereduksi penggunaan custom class. Karena, untuk membuat komponen kamu
perlu melakukannya dari awal, dengan cara menyusun utility class.
BAB III TUGAS PENDAHULUAN
BAB IV
IMPLEMENTASI
4.1 Source Code
1. buatlah halaman web dengan tema pendidikan menggunakan framework
bootstrap
<!DOCTYPE html>
<html lang="en">
<head>
<link href="https://cdn.jsdelivr.net/npm/[email protected]
beta3/dist/css/bootstrap.min.css" rel="stylesheet"
integrity="sha384-
eOJMYsd53ii+scO/bJGFsiCZc+5NDVN2yr8+0RDqr0Ql0h+rP48ckxlpbzKgwra6"
crossorigin="anonymous" />
<link rel="stylesheet"
href="https://pro.fontawesome.com/releases/v5.10.0/css/all.css"
integrity="sha384-
AYmEC3Yw5cVb3ZcuHtOA93w35dYTsvhLPVnYs9eStHfGJvOvKxVfELGroGkvsg+p"
crossorigin="anonymous" />
</head>
<body>
<div class="container">
<a class="navbar-brand" href="#"><span class="text-
warning">Hiroshima</span>Class</a> <button
aria-controls="navbarSupportedContent" aria-
expanded="false" aria-label="Toggle navigation"
class="navbar-toggler" data-bs-
target="#navbarSupportedContent" data-bs-toggle="collapse"
type="button"><span class="navbar-toggler-
icon"></span></button>
<li class="nav-item">
</li>
<li class="nav-item">
</li>
<li class="nav-item">
</li>
<li class="nav-item">
<a class="nav-link"
href="#contact">Contact</a>
</li>
</ul>
</div>
</div>
</nav>
<div class="carousel-indicators">
data-bs-target="#carouselExampleIndicators"
type="button"></button> <button aria-label="Slide 3"
data-bs-slide-to="2" data-bs-
target="#carouselExampleIndicators" type="button"></button>
</div>
<div class="carousel-inner">
<div class="carousel-caption">
</div>
</div>
<div class="carousel-item">
<div class="carousel-caption">
</div>
</div>
<div class="carousel-item">
<img alt="..." class="d-block w-100"
src="img/img3.jpeg">
<div class="carousel-caption">
</div>
</div>
class="visually-hidden">Previous</span></button>
<button class="carousel-control-next"
data-bs-slide="next" data-bs-
target="#carouselExampleIndicators" type="button"><span aria-
hidden="true"
class="carousel-control-next-icon"></span> <span
class="visually-hidden">Next</span></button>
</div>
<div class="container">
<div class="row">
</div>
</div>
</div>
</div>
</div>
</section>
<div class="container">
<div class="row">
<div class="col-md-12">
<h2>Our Classes</h2>
</div>
</div>
</div>
<div class="row">
<h3 class="card-title">Language
Class</h3>
<p class="lead">
</p>
</div>
</div>
</div>
<p class="lead">
</div>
</div>
</div>
<h3 class="card-title">Science
Class</h3>
<p class="lead">
demonstrations, lectures,
discussions, and other interactive activities.
</p>
</div>
</div>
</div>
</div>
</div>
</section>
<div class="form-area">
<div class="container">
<div class="contact" id="contact">
<div class="left">
</div>
</div>
<div class="right">
<form>
<div class="mb-3">
<label for="exampleInputEmail1"
class="form-label">Your Name</label>
aria-
describedby="emailHelp">
</div>
<div class="mb-3">
<label for="exampleInputEmail1"
class="form-label">Email address</label>
aria-
describedby="emailHelp">
</div>
<div class="mb-3">
<label
for="exampleInputPassword1" class="form-label">Message</label>
<textarea type="password"
class="form-control"
id="exampleInputPassword1"><
/textarea>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
<br>
<div class="container">
</div>
</footer>
<script src="https://cdn.jsdelivr.net/npm/[email protected]
beta3/dist/js/bootstrap.bundle.min.js"
integrity="sha384-
JEW9xMcG8R+pH31jmWH6WWP0WintQrMb4s7ZOdauHnUtxwoG2vI5DkLtS3qm9Ekf"
crossorigin="anonymous"></script>
</body>
</html>
Penjelasan :
Halaman web ini merupakan tata letak dasar untuk situs web sekolah
internasional Hiroshima. Dengan navigasi yang mudah diakses, pengunjung dapat
menjelajahi bagian-bagian situs, termasuk tentang sekolah, kelas yang ditawarkan,
dan cara untuk menghubungi mereka. Desainnya responsif dan menarik perhatian
dengan menggunakan carousel untuk gambar-gambar yang berputar dan
menyajikan informasi singkat tentang sekolah serta kelas-kelas yang tersedia.
Dengan menggunakan Bootstrap dan Font Awesome, halaman ini memiliki
tampilan yang modern dan profesional, sesuai dengan citra sekolah internasional.
Di bagian atas halaman, terdapat navigasi yang mencakup tautan ke beranda,
informasi tentang sekolah, kelas yang ditawarkan, dan cara menghubungi mereka.
Ini memberikan akses cepat ke informasi yang paling relevan bagi pengguna. Di
tengah halaman, terdapat carousel yang menampilkan gambar-gambar yang
berputar secara otomatis. Setiap gambar didampingi dengan judul yang menarik
perhatian dan deskripsi singkat yang menggambarkan nilai-nilai pendidikan yang
ditekankan oleh sekolah.
Bagian tentang memberikan wawasan tentang identitas dan nilai-nilai inti dari
Hiroshima International School. Dengan gambar dan teks yang sesuai, pengunjung
dapat memahami esensi dari apa yang sekolah tersebut tawarkan. Bagian kelas
memberikan informasi rinci tentang jenis kelas yang tersedia, termasuk Bahasa,
Matematika, dan Sains. Deskripsi untuk setiap kelas memberikan gambaran tentang
kurikulum dan pendekatan pengajaran yang digunakan oleh sekolah.
Di bagian kontak, pengunjung diberi opsi untuk menghubungi sekolah melalui
formulir kontak. Ini memudahkan orang-orang untuk mengajukan pertanyaan atau
menyatakan minat mereka dalam bergabung dengan sekolah. Footer situs web
berisi informasi hak cipta dan nama pengembang situs, memberikan kejelasan
tentang kepemilikan dan pembuat situs.
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Environment</title>
<link
href="https://cdn.jsdelivr.net/npm/[email protected]/dist/tailwind
.min.css" rel="stylesheet">
<link href="https://cdn.jsdelivr.net/npm/[email protected]
alpha1/dist/css/bootstrap.min.css" rel="stylesheet">
<style>
.card {
background: #49c97e;
background-size: cover;
background-position: center;
color: white;
border: none;
border-radius: 10px;
overflow: hidden;
position: relative;
.card:hover {
transform: scale(1.05);
.card-header {
padding: 20px;
font-weight: bold;
.card-body {
padding: 100px;
.btn-primary {
background-color: black;
border-color: black;
.btn-primary:hover {
background-color: #4CAF50;
border-color: #4CAF50;
.card-text {
font-weight: bold;
@keyframes fadeInUp {
0% {
opacity: 0;
transform: translateY(20px);
100% {
opacity: 1;
transform: translateY(0);
}
}
.animated {
.feature-icon {
width: 60px;
height: 60px;
border-radius: 50%;
background-color: #48BB78;
display: flex;
justify-content: center;
align-items: center;
margin-bottom: 20px;
.feature-icon img {
width: 60px;
height: 60px;
border-radius: 50%;
@keyframes moveText {
0% {
transform: translateX(-100%);
100% {
transform: translateX(100%);
}
.moving-text {
.moving-text {
color: #fff;
font-size: 18px;
font-weight: bold;
.text-xl {
font-size: 30px;
font-weight: bold;
nav a {
color: #fff;
text-decoration: none;
font-size: 20px;
font-weight: bold;
nav a:hover {
color: #0c0e0d;
}
</style>
</head>
<body class="bg-green-100">
<nav>
<li><a href="#"
class="hover:underline">home</a></li>
<li><a href="#"
class="hover:underline">about</a></li>
<li><a href="#"
class="hover:underline">contact</a></li>
</ul>
</nav>
</div>
</header>
<div class="card-header">
What is 3R?
</div>
<div class="card-body">
<p class="card-text">
</p>
</div>
</div>
</div>
<p class="text-gray-700">
resources.
</p>
</div>
</div>
<p class="text-gray-700">
In the context of environmental sustainability,
"reduce" refers to the practice of minimizing waste
</p>
</div>
</div>
<p class="text-gray-700">
manufacturing processes.
</p>
</div>
</section>
</main>
</footer>
</body>
</html>
Penjelasan :
Header situs memiliki judul "Environment" dengan navigasi yang sederhana
namun efektif, memudahkan pengguna untuk menavigasi halaman.
Bagian pertama adalah sebuah kartu yang menjelaskan tentang konsep 3R:
Reduce, Reuse, dan Recycle. Ini memberikan pengantar singkat tentang praktik-
praktik tersebut dan mengundang pengunjung untuk mempelajari lebih lanjut.
Di bagian utama, terdapat tiga bagian yang membahas masing-masing
konsep 3R secara lebih detail. Setiap bagian memiliki gambar ikon yang
representatif, judul yang menonjol, dan teks yang menjelaskan konsep tersebut
secara jelas.
Footer situs memiliki teks bergerak yang menarik perhatian pengguna dan
memberikan informasi tentang hak cipta pembuat situs. Seluruh halaman
menggunakan warna hijau yang konsisten, mencerminkan tema lingkungan dan
kesadaran akan keberlanjutan. Penggunaan efek animasi dan desain yang bersih dan
modern membuat halaman ini menarik dan mudah dinavigasi.
4.2 Hasil
1. halaman web yang menampilkan menu makanan dan minuman
2. Tailwind tema lingkungan
BAB V
PENUTUP
5.1 Analisa
Kode tersebut merupakan halaman web untuk Hiroshima International School
yang menggunakan Bootstrap untuk membuat tata letak responsif dan menarik.
Halaman tersebut memiliki navigasi yang jelas, carousel untuk menampilkan
informasi utama, bagian yang merinci tentang sekolah, kelas yang ditawarkan,
formulir kontak, dan footer dengan informasi hak cipta. Desainnya bersih dan
informatif, memudahkan pengguna untuk menjelajahi informasi tentang sekolah
dan menghubungi mereka.
Sementara halaman web kedua membahas isu lingkungan dengan tata letak
yang sederhana namun efektif, memberikan informasi tentang pentingnya
menanam pohon, reboisasi, dan pemisahan sampah. Dengan fokus pada edukasi
lingkungan, halaman ini bertujuan untuk meningkatkan kesadaran dan perilaku pro
lingkungan bagi pengunjungnya.
5.2 Kesimpulan
1. Bootstrap adalah salah satu kerangka kerja CSS yang paling banyak
digunakan di seluruh dunia.
2. Bootstrap memiliki tata letak responsif bawaan yang memudahkan
pengembang untuk membuat situs web yang terlihat baik di berbagai
perangkat dan ukuran layar.
3. Tailwind CSS adalah kerangka kerja CSS yang berbeda dengan pendekatan
yang lebih "utility-first".
4. Tailwind memungkinkan pengembang untuk lebih fleksibel dalam
mendesain antarmuka sesuai kebutuhan proyek.
LAPORAN RESMI
MODUL IV
JAVASCRIPT
PEMROGRAMAN BERBASIS WEB
1.2 Tujuan
Mahasiswa dapat membuat halaman web yang lebih interaktif, dinamis, dan
responsif
Mahasiswa mampu memahami dasar pemrograman Javascript
Mahasiswa mampu memahami apa itu Event dan DOM Manipulation
BAB II
DASAR TEORI
2.1 JavaScript
JavaScript, bahasa pemrograman yang sangat populer dalam pengembangan
web, pertamakali dikembangkan oleh Brendan Eich di Netscape Communications
pada tahun 1995. Awalnya dikenal sebagai Mocha dan kemudian LiveScript,
sebelum akhirnya dinamai JavaScript. Pada tahun 1997, JavaScript diajukan
sebagai standar ECMAScript kepada European Computer Manufacturers
Association (ECMA). Sejak itu, JavaScript terus berkembang dengan penambahan
fitur baru dan peningkatan kinerja melalui rilis ECMAScriptyang berkala, seperti
ES6 (ECMAScript 2015).
Dengan kemampuannya untuk menambahkan interaktivitas ke halaman web,
JavaScript menjadi bahasa pemrograman yang sangat populer. Selain digunakan
dalam pengembangan web, JavaScript juga digunakan dalam pengembangan
aplikasi mobile, desktop, permainan, dan bahkan di bidang pengembangan server
(Node.js). JavaScript saat ini menjadi salah satu elemen kunci dalam ekosistem
pengembangan web modern, bersama dengan HTML dan CSS, memungkinkan
pembuatan aplikasi web yang kompleks dan interaktif.
2. Tipe Data
JavaScript memiliki beberapa tipe data dasar seperti string, number,
boolean, null,undefined, array, dan object. Setiap tipe data memiliki peran dan
karakteristiknya sendiri.
Penjelasan :
string : digunakan untuk merepresentasikan teks atau urutan
karakter. Stringdituliskan di dalam tanda kutip, baik tunggal ('') maupun
ganda ("").
number : digunakan untuk merepresentasikan nilai numerik. Ini bisa
berupabilangan bulat (integer) atau bilangan pecahan (floating point).
boolean : digunakan untuk merepresentasikan 2 nilai yaitu (true)
atau (false).
null : digunakan untuk menunjukkan bahwa sebuah variabel tidak
memiliki nilai atau tidak memiliki nilai yang valid. Secara harfiah, null
berarti "tidak ada nilai".
undefined : digunakan untuk menunjukkan bahwa sebuah variabel telah
dideklarasikan tetapi tidak memiliki nilai yang diberikan.
array : digunakan untuk menyimpan kumpulan nilai dalam satu
variabel.Elemen-elemen dalam array diindeks, dimulai dari indeks 0.
object : digunakan untuk merepresentasikan sebuah objek, yang terdiri
dari kumpulan pasangan kunci-nilai (key-value pairs). Objek dapat
memiliki propertidan metode.
Contoh ekspresi:
Ekspresi dievaluasi menjadi nilai tunggal sesuai dengan aturan dan operasi
yang dinyatakan di dalamnya. Ekspresi ini sering digunakan dalam kondisi,
perulangan, dan pernyataan lainnya dalam JavaScript untuk mengontrol alur
eksekusi program.
Memahami operator dan ekspresi adalah kunci dalam pemrograman
JavaScript, karena mereka memungkinkan kita untuk melakukan berbagai macam
operasi dan mengendalikan alureksekusi program secara efektif.
4. Struktur Kontrol
Dalam pemrograman JavaScript, struktur kontrol digunakan untuk mengontrol
alur eksekusi program berdasarkan kondisi tertentu atau untuk mengulangi blok
kode tertentu. Dengan memahami struktur kontrol, Anda dapat membuat program
yang lebih dinamis dan responsif. Berikut adalah beberapa konsep struktur kontrol
yang penting:
• if (kondisi_1) {
//pernyataan-1;
} else if (kondisi_2) {
//pernyataan 2;
if (kondisi_3){
// pernyataan-3;
} else {
// pernyataan-4;
}
Syntax umum:
5. Fungsi
Fungsi adalah blok kode yang dirancang untuk melakukan tugas tertentu.
Dengan menggunakan fungsi, Anda dapat mengorganisir kode Anda menjadi
bagian-bagian yang lebihkecil dan dapat digunakan kembali. Dalam JavaScript,
fungsi sangat penting dan dapat digunakan untuk berbagai tujuan, mulai dari
mengeksekusi tugas sederhana hingga mengelola logika yang kompleks dalam
aplikasi Anda.
Kegunaan fungsi :
Fungsi digunakan untuk mengelompokkan serangkaian pernyataan
menjadi satu unityang dapat dipanggil.
Saat fungsi dipanggil, blok kode di dalamnya dieksekusi.
Syntax umum :
function namaFungsi(parameter1, parameter2, ...) {
// Blok kode yang akan dieksekusi saat fungsi
dipanggil
}
Contoh kode :
let tombol = document.getElementById(‘tombol’);
tombol.addEventListener(“click”,function(){
alert(“Hallo surotong!!!”);
});
Dengan memahami konsep dan penggunaan DOM manipulation dan event
listener, Anda dapat membuat aplikasi web yang lebih interaktif, responsif, dan
dinamis. Ini memungkinkan Anda untuk meningkatkan pengalaman pengguna dan
membuat aplikasi yang lebih efektif dan menarik.
BAB III TUGAS PENDAHULUAN
BAB IV
IMPLEMENTASI
4.1 Source Code
1. buatlah dropdown menu dari HTML, CSS, dan JavaScript dari materi yang
telah kalian dapatkan
HTML
<!DOCTYPE html>
<html lang="en">
<head>
<link rel="stylesheet"
href="https://cdnjs.cloudflare.com/ajax/libs/font-
awesome/6.2.1/css/all.min.css" />
<title>Profile Dropdown</title>
</head>
<body>
<nav class="navbar">
<ul class="navbar-list">
<li><a href="#">Personal</a></li>
<li><a href="#">Channels</a></li>
<li><a href="#">Groups</a></li>
<li><a href="#">Bots</a></li>
<li><a href="#">Unread</a></li>
<li>
<button id="play">Play</button>
</li>
<li>
<button id="pause">Pause</button>
</li>
</ul>
<div class="profile-dropdown">
<div class="profile-img">
</div>
<span>Sakura Haruka
</span>
</div>
<ul class="profile-dropdown-list">
<li class="profile-dropdown-list-item">
<a href="#">
Edit Profile
</a>
</li>
<li class="profile-dropdown-list-item">
<a href="#">
New Groups
</a>
</li>
<li class="profile-dropdown-list-item">
<a href="#">
Contacts
</a>
</li>
<li class="profile-dropdown-list-item">
<a href="#">
Call
</a>
</li>
<li class="profile-dropdown-list-item">
<a href="#">
Saved Messages
</a>
</li>
<hr />
<li class="profile-dropdown-list-item">
<a href="#">
Log out
</a>
</li>
</ul>
</div>
</nav>
<script>
let audio;
function playMusic() {
audio.play();
function pauseMusic() {
if (audio) {
audio.pause();
play.addEventListener("click", playMusic);
pause.addEventListener("click", pauseMusic);
</script>
<script src="drop.js"></script>
</body>
</html>
CSS
@import
url("https://fonts.googleapis.com/css2?family=Poppins:wght@100;200
;300;400;500&display=swap");
* {
margin: 0;
padding: 0;
list-style-type: none;
box-sizing: border-box;
body {
height: 100vh;
width: 100%;
background-color: #eeeeee;
.navbar {
display: flex;
align-items: center;
height: 70px;
background-color: #fff;
padding: 0 8%;
.navbar-logo {
cursor: pointer;
.navbar-list {
width: 100%;
text-align: right;
padding-right: 2rem;
.navbar-list li {
display: inline-block;
margin: 0 1rem;
.navbar-list li a {
font-size: 1rem;
font-weight: 500;
color: #393e46;
text-decoration: none;
.profile-dropdown {
position: relative;
width: fit-content;
.profile-dropdown-btn {
display: flex;
align-items: center;
justify-content: space-between;
padding-right: 1rem;
font-size: 0.9rem;
font-weight: 500;
width: 150px;
border-radius: 50px;
color: #393e46;
cursor: pointer;
border 0.3s;
.profile-dropdown-btn:hover {
.profile-img {
position: relative;
width: 3rem;
height: 3rem;
border-radius: 50%;
background-size: cover;
.profile-img i {
position: absolute;
right: 0;
bottom: 0.3rem;
font-size: 0.5rem;
color: #1269bb;
.profile-dropdown-btn span {
margin: 0 0.5rem;
margin-right: 0;
.profile-dropdown-list {
position: absolute;
top: 68px;
width: 220px;
right: 0;
background-color: #fff;
border-radius: 10px;
max-height: 0;
overflow: hidden;
.profile-dropdown-list hr {
.profile-dropdown-list.active {
max-height: 500px;
}
.profile-dropdown-list-item {
.profile-dropdown-list-item a {
display: flex;
align-items: center;
text-decoration: none;
font-size: 0.9rem;
font-weight: 500;
color: #393e46;
.profile-dropdown-list-item a i {
margin-right: 0.8rem;
font-size: 1.1rem;
width: 2.3rem;
height: 2.3rem;
background-color: #65b8df;
color: #fff;
line-height: 2.3rem;
text-align: center;
margin-right: 1rem;
border-radius: 50%;
.profile-dropdown-list-item:hover {
padding-left: 1.5rem;
background-color: rgba(72, 189, 173, 0.2);
JavaScript
let profileDropdownList = document.querySelector(".profile-
dropdown-list");
if (!btn.contains(e.target)) classList.remove("active");
});
Penjelasan :
Kode HTML yang dibuat menampilkan navigasi, dropdown menu untuk profil
pengguna. Navigasinya memiliki logo "Telegram" di kiri atas, diikuti dengan
beberapa pilihan menu seperti "Personal", "Channels", "Groups", "Bots", dan
"Unread". Di bagian kanan, terdapat tombol "Play" dan "Pause" untuk mengontrol
audio.
Dropdown menu profil pengguna muncul ketika pengguna mengeklik gambar
profil dan nama pengguna. Di dalamnya terdapat beberapa opsi seperti "Edit
Profile", "New Groups", "Contacts", "Call", "Saved Messages", dan "Log out",
dengan setiap opsi memiliki gambar ikon.
Di bagian bawah, terdapat dua script yang merujuk pada file JavaScript
eksternal, `drop.js`, yang mungkin mengatur perilaku dropdown menu profil
pengguna, serta fungsi-fungsi untuk memainkan dan menghentikan audio yang
diatur dalam file `wbk.mp3`.
2. Buatlah web ToDo sederhana yang dapat melakukan tambah, ubah, hapus,
dan tandai selesai, dan muat list tugas, menggunakan HTML, CSS, dan
JavaScript yang telah kalian dapatkan!
HTML
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<link rel="stylesheet"
href="https://cdnjs.cloudflare.com/ajax/libs/font-
awesome/6.2.1/css/all.min.css">
</head>
<body>
<header>
</header>
<form action="">
</button>
<div class="select">
<option value="all">All</option>
<option value="completed">Completed</option>
<option value="incomplete">Incomplete</option>
</select>
</div>
</form>
<div class="todo-container">
<ul class="todo-list"></ul>
</div>
<script src="ToDo.js"></script>
</body>
</html>
CSS
* {
margin: 0;
padding: 0;
box-sizing: border-box;
letter-spacing: 1px;
body {
color: white;
min-height: 100vh;
header {
font-size: 1.5rem;
}
header,
form {
min-height: 20vh;
display: flex;
justify-content: center;
align-items: center;
form input,
form button {
padding: 0.5rem;
padding-left: 1rem;
font-size: 1.8rem;
border: none;
background: #ffffff;
border-radius: 2rem;
form button {
background: white;
cursor: pointer;
margin-left: 0.5rem;
form button:hover {
color: white;
}
.fa-plus-circle {
margin-top: 0.3rem;
margin-left: -8px;
.todo-container {
display: flex;
justify-content: center;
align-items: center;
.todo-list {
min-width: 30%;
list-style: none;
.todo {
margin: 0.5rem;
padding-left: 0.5rem;
color: black;
font-size: 1.5rem;
display: flex;
justify-content: space-between;
align-items: center;
transition: 0.5s;
border-radius: 2rem;
}
.todo li {
flex: 1;
.trash-btn,
.complete-btn {
color: #ffffff;
border: none;
padding: 1rem;
cursor: pointer;
font-size: 1.5rem;
.complete-btn {
background: #2290e9;
.trash-btn {
border-top-right-radius: 1.75rem;
border-bottom-right-radius: 1.75rem;
.todo-item {
.fa-trash,
.fa-check-circle {
pointer-events: none;
}
.completed {
text-decoration: line-through;
opacity: 0.5;
.slide {
transform: translateX(10rem);
opacity: 0;
select {
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
outline: none;
border: none;
.select {
margin: 1rem;
position: relative;
overflow: hidden;
border-radius: 50px;
select {
color: #000000;
width: 10rem;
height: 3.2rem;
cursor: pointer;
padding: 1rem;
.select::after {
content: "\25BC";
position: absolute;
top: 0;
right: 0;
padding: 1rem;
pointer-events: none;
.select::hover::after {
background: white;
JavaScript
const todoInput = document.querySelector(".todo-input");
document.addEventListener("DOMContentLoaded", getLocalTodos);
todoButton.addEventListener("click", addTodo);
todoList.addEventListener("click", deleteCheck);
filterOption.addEventListener("change", filterTodo);
function addTodo(event) {
event.preventDefault();
todoDiv.classList.add("todo");
newTodo.innerText = todoInput.value;
newTodo.classList.add("todo-item");
todoDiv.appendChild(newTodo);
saveLocalTodos(todoInput.value);
completedButton.classList.add("complete-btn");
todoDiv.appendChild(completedButton);
trashButton.classList.add("trash-btn");
todoDiv.appendChild(trashButton);
todoList.appendChild(todoDiv);
todoInput.value = "";
function deleteCheck(e) {
todo.classList.add("slide");
removeLocalTodos(todo);
todo.addEventListener("transitionend", function () {
todo.remove();
});
todo.classList.toggle("completed");
function filterTodo(e) {
todos.forEach(function (todo) {
switch (e.target.value) {
case "all":
todo.style.display = "flex";
break;
case "completed":
if (todo.classList.contains("completed")) {
todo.style.display = "flex";
} else {
todo.style.display = "none";
}
break;
case "incomplete":
if (!todo.classList.contains("completed")) {
todo.style.display = "flex";
} else {
todo.style.display = "none";
break;
});
function saveLocalTodos(todo) {
let todos;
todos = [];
} else {
todos = JSON.parse(localStorage.getItem("todos"));
todos.push(todo);
localStorage.setItem("todos", JSON.stringify(todos));
function getLocalTodos() {
let todos;
todos = [];
} else {
todos = JSON.parse(localStorage.getItem("todos"));
}
todos.forEach(function (todo) {
todoDiv.classList.add("todo");
newTodo.innerText = todo;
newTodo.classList.add("todo-item");
todoDiv.appendChild(newTodo);
completedButton.classList.add("complete-btn");
todoDiv.appendChild(completedButton);
trashButton.classList.add("trash-btn");
todoDiv.appendChild(trashButton);
todoList.appendChild(todoDiv);
});
function removeLocalTodos(todo) {
let todos;
todos = [];
} else {
todos = JSON.parse(localStorage.getItem("todos"));
}
const todoIndex = todo.children[0].innerText;
todos.splice(todos.indexOf(todoIndex), 1);
localStorage.setItem("todos", JSON.stringify(todos));
Penjelasan :
Code HTML adalah sebuah tampilan untuk membuat daftar tugas atau "To
Do List". Di bagian atas terdapat judul "To Do List Task". Kemudian, terdapat
sebuah form dengan sebuah input teks di mana pengguna dapat menambahkan tugas
baru. Tombol dengan ikon tambah untuk menambahkan tugas baru dengan klik. Di
sampingnya, terdapat dropdown menu yang memungkinkan pengguna untuk
memfilter tugas berdasarkan status, seperti "All" (Semua), "Completed" (Sudah
Selesai), dan "Incomplete" (Belum Selesai).
Lalu, terdapat daftar tugas yang ditampilkan dalam sebuah kontainer.
Tugas-tugas akan muncul di dalamnya sesuai dengan input yang dimasukkan
pengguna. Setiap tugas memiliki kotak centang untuk menandai jika tugas tersebut
sudah selesai. Terakhir, terdapat sebuah script yang untuk mengatur interaksi antara
elemen-elemen, seperti menambahkan tugas baru, memfilter tugas, dan menandai
tugas sebagai selesai.
4.2 Hasil
1. halaman web dropdown menu
5.3 Kesimpulan
1. JavaScript merupakan komponen penting dalam pengembangan web yang
memungkinkan pengembang untuk menciptakan pengalaman pengguna
yang dinamis, interaktif, dan fungsional.
2. JavaScript memberikan interaktivitas pada halaman web, memungkinkan
pengguna untuk berinteraksi dengan elemen-elemen seperti dropdown
menu dan daftar tugas.
3. JavaScript memainkan peran penting dalam mengatur logika aplikasi
4. JavaScript digunakan untuk mengatur perilaku dropdown, seperti
menampilkan dan menyembunyikan menu dropdown
LAPORAN RESMI
MODUL V
PHP
PEMROGRAMAN BERBASIS WEB
1.2 Tujuan
Mampu menjelaskan perintah – perintah dasar PHP
Mampu membuat aplikasi menggunakan perintah dasar PHP
Mampu membuat situs web yang dinamis, dan berinteraksi dengan
pengguna
Mampu mengembangkan kemampuan dalam membuat web menggunakan
database
BAB II
DASAR TEORI
2.1 PHP
Bahasa pemrograman PHP adalah sebuah bahasa scripting yang digunakan
secara luas dalam pengembangan web. Singkatan dari "Hypertext Preprocessor,"
PHP dirancang khusus untuk membangun aplikasi web dinamis dan interaktif. PHP
dapat disisipkan langsung ke dalam kode HTML dan dieksekusi di sisi server,
memungkinkan pengembang untuk membuat halaman web yang dinamis secara
efisien. Bahasa ini menawarkan banyak fitur yang kuat, termasuk kemampuan
untuk berinteraksi dengan berbagai jenis database, memproses formulir, mengelola
sesi pengguna, dan membuat konten dinamis berdasarkan kondisi dan input
pengguna. Keunggulan PHP juga terletak pada fleksibilitasnya yang tinggi serta
dukungan komunitas yang luas, membuatnya menjadi salah satu bahasa
pemrograman yang paling populer untuk pengembangan web.
2.4.3 Operator
• Operator Aritmatika
• Operator Logika
• Operator ini digunakan untuk membandingkan dua nilai variabel yang
bertipe boolean. Hasil yang didapat dari penggunaan logicaloperator adalah
boolean.
• Operator Assigment digunakan untuk memberikan/mengisi nilai ke
dalamvariabel tertentu. Operator yang digunakan adalah “=” yang berarti
operand kiri diberi nilai sama seperti operand kanan.
Pada contoh di atas, blok kode akan dieksekusi selama nilai `$angka`
kurang dari atau sama dengan 5.
2. Pernyataan Do-While: Pernyataan do-while mirip dengan pernyataan while,
namun blok kode akan dieksekusi setidaknya satu kali sebelum kondisi
dievaluasi. Contoh:
<?php
$angka =
1;do {
echo "Iterasi ke-$angka <br>";
$angka++;
} while ($angka <= 5);
?>
Pada contoh di atas, blok kode akan dieksekusi sekali, bahkan jika
kondisi awalnya tidak benar.
3. Pernyataan For: Pernyataan for digunakan untuk mengeksekusi blok kode
sejumlah iterasi tertentu. Contoh:
<?php
for ($angka = 1; $angka <= 5; $angka++)
{echo "Iterasi ke-$angka <br>";
}
?>
Pada contoh di atas, kita menentukan inisialisasi variabel `$angka`, kondisi
untuk melanjutkan perulangan, dan ekspresi untuk menginkrementasi variabel
`$angka`.
4. Pernyataan Foreach: Pernyataan foreach digunakan untuk mengulangi
elemen-elemen dalam sebuah array. Contoh:
<?php
$buah = array("apel", "pisang",
"jeruk");
foreach ($buah as $item) {
echo $item . "<br>";
}
?>
Pada contoh di atas, perulangan foreach akan menampilkan setiapelemen
dalam array `$buah`.
B. Continue
Continue berfungsi hampir sama dengan break hanya saja continue
tidak memaksakan pengulangan untuk berhenti tetapi melanjutkan pada
pengulangan untuk nilai perhitungan berikutnya. Contoh:
C. Exit
Exit tidak sama dengan break maupun continue. Break berfungsi untuk
menghentikan eksekusi file PHP dimanapun letak perintah break
2.6 Array
Array dalam PHP berbeda dengan array yang ada dalam bahasa
pemrograman lain seperti Pascal atau C, karena array dalam bahasa pemrograman
lain memiliki fungsi hanya sebagai penampung nilai dan indeks dalam t ipe yang
sama sedangkan array dalam PHP sebagai penampung nilai dan indeks dalam t ipe
yang bergantung pada pendeklasian oleh programmer. Cara penulisan array sebagai
berikut :
$nama_array = array(“NilaiA”,”NilaiB”,…,”NilaiN”;
Atau dengan index :
$nama_array = array(“index0 => “nilai 0”,”index1 => “nilai 1”);
2.7 Fungsi
Fungsi dimanfaatkan untuk menyederhanakan penulisan kode program yang
sama dengan cara menyimpan kode tersebut dalam sebuah nama fungsi. Sehingga
Fungsi sebenarnya adalah sebuah bagian kode program yang ditujukan
untukmelaksanakan suatu tugas tertentu. Keuntungan menggunakan fungsi
diantaranya jika ada perubahan proses pengolahan data maka cukup mengganti
dibagian fungsi saja, hanya cukup mengetik kode program sekali saja untuk skrip
yang smaa dan memudahkan pembaca untuk membaca program karena fungsi
memiliki skrip kode program yang pendek. Berikut cara membuat fungsi pada PHP.
<?php
Function nama_fungsi(parameter){
Statemen
}
?>
Lalu fungsi tersebut bisa dipanggil menggunakan code berikut :
<?php echo nama_fungsi(parameter); ?>
BAB III TUGAS PENDAHULUAN
Bab 3
BAB IV
IMPLEMENTASI
4.1 Source Code
1. Buat lah fitur login menggunakan PHP. Buatlah 2 halaman setelah login,
buat system ketika pengguna belum login tidak dapat masuk ke halaman
kedua atau halaman home.
Login.php
<?php
session_start();
if(isset($_SESSION['username'])) {
header("Location: home.php");
exit;
if(isset($_POST['submit'])) {
$username = $_POST['username'];
$password = $_POST['password'];
$_SESSION['username'] = $username;
header("Location: home.php");
exit;
} else {
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Login</title>
<style>
body {
background-color: #f8f9fa;
margin: 0;
padding: 0;
.container {
width: 30%;
background-color: lightcyan;
padding: 20px;
border-radius: 8px;
h2 {
text-align: center;
color: #333;
p {
margin: 10px 0;
color: #777;
form {
text-align: center;
input[type="text"],
input[type="password"] {
width: 50%;
padding: 10px;
border-radius: 5px;
box-sizing: border-box;
font-size: 16px;
input[type="submit"] {
padding: 10px;
background-color: #007bff;
border-radius: 5px;
box-sizing: border-box;
width: 30%;
color: white;
cursor: pointer;
font-size: 16px;
</style>
</head>
<body>
<center>
<div class="container">
<?php } ?>
<p>Username</p>
<p>Password</p>
</form>
</div>
</center>
</body>
</html>
Penjelasan :
Program yang di buat yaitu menampilkan halaman login untuk user atau
pengguna. Pengguna perlu memasukkan username dan password untuk
melakukan login, untuk username nya yaitu ‘ryuno’ dan password nya yaitu
‘sasaki’. Memulai sesi dengan menggunakan session_start, lalu mengecheck
apakah pengguna sudah login atau belum. Jika sudah, akan di arahkan ke
halaman home.php.
Jika belum login, skrip akan memeriksa apakah form masuk telah di
submit atau belum, jika sudah akan mengambil nilai username dan password
yang di inputkan pengguna. Lalu mengechek apakah username dan password
yang di masukkan sesuai dengan yang telah di tentukan atau tidak, jika tidak
maka akan muncul tulisan anda gagal login. Jika sesuai akan di arahkan ke
halaman home.php.
2. Halaman home, terdapat kata sambutan dan menampilkan nama dari user
yang login, contoh : "Selamat datang namauser”.
Home.php
<?php
session_start();
if(!isset($_SESSION['username'])) {
header("Location: login.php");
exit;
$username = $_SESSION['username']
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<style>
body {
background-color: #f8f9fa;
margin: 0;
padding: 0;
.home {
width: 300px;
background-color: lightcyan;
padding: 20px;
border-radius: 8px;
a {
color: #777;
text-decoration: none;
a:hover {
text-decoration: underline;
color: blue;
</style>
</head>
<body>
<center>
<div class="home">
<p><a href="logout.php">Logout</a></p>
</div>
</center>
</body>
</html>
Penjelasan :
Kode program yang di buat yaitu untuk menampilkan halaman home
setelah pengguna berhasil login pada halaman login sebelumnya. Pada bagian
atas terdapat session_start, lalu dilakukan pengecheckan apakah username
telah di set atau belum, jika belum berarti penggunanya belum login, dan akan
di arahkan kembali ke halaman login.php.
Jika session 'username' sudah diset atau pengguna sudah login, maka
script akan menyimpan nilai dari 'username' ke dalam variabel $username.
kode HTML yang ditampilkan memiliki tampilan dengan pesan selamat
datang yang menampilkan username pengguna yang berhasil login. Selain itu,
terdapat juga dua link, yaitu "Lihat Data Mahasiswa" yang mengarahkan ke
halaman mahasiswa.php dan "Logout" yang mengarahkan ke halaman
logout.php untuk keluar dari sesi login.
3. Halaman kedua menampilkan sebuah data mahasiswa seperti nim, nama,
alamat, angkatan, dll. Menggunakan table
Data Mahasiswa
<?php
session_start();
if (!isset($_SESSION['username'])) {
header("Location: login.php");
exit;
if (!isset($_SESSION['dataMahasiswa'])) {
$_SESSION['dataMahasiswa'] = array(
);
function hapusData($index) {
global $dataMahasiswa;
hapusData($_GET['index']);
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Data Mahasiswa</title>
<style>
* {
margin: 0;
padding: 0;
box-sizing: border-box;
body {
background-color: #f8f9fa;
.mahasiswa {
background-color: #f9f9f9;
border-radius: 10px;
padding: 20px;
margin-top: 20px;
.mahasiswa h2 {
text-align: center;
color: #333;
}
table {
width: 100%;
border-collapse: collapse;
margin-top: 20px;
th, td {
padding: 10px;
text-align: left;
th {
background-color: #5AB2FF;
td {
background-color: #CAF4FF;
.button {
text-align: center;
margin-top: 20px;
.button button {
background-color: #007bff;
color: #fff;
padding: 10px 20px;
border: none;
border-radius: 5px;
margin-right: 10px;
text-decoration: none;
cursor: pointer;
.button a {
color: #fff;
text-decoration: none;
</style>
</head>
<body>
<div class="mahasiswa">
<h2>Data Mahasiswa</h2>
<table>
<tr>
<th>NIM</th>
<th>Nama</th>
<th>Alamat</th>
<th>Angkatan</th>
<th>Action</th>
</tr>
<tr>
<td>
<a href='?action=delete&index=<?=
$index ?>'>Delete</a>
</td>
</tr>
</table><br><br>
<div class="button">
<button class="tambah">
</button>
<button class="logout">
<a href="logout.php">Logout</a>
</button>
</div>
</div>
</body>
</html>
Penjelasan :
Program ini untuk menampilan halaman data mahasiswa, yang tersmpan
dalam session, data di simpan dalam bentuk array. Sama seperti halaman home,
terdapat session start, dan melakukan pengecheckan apakah username sudah di
set atau belum, jika belum akan di arahkan kehalaman login.php. Selanjutnya,
dilakukan pengecekan apakah session 'dataMahasiswa' sudah diset. Jika belum,
maka dibuat array dua dimensi yang berisi informasi dari beberapa mahasiswa
dan disimpan ke dalam session 'dataMahasiswa'.
hapusData($index) untuk menghapus data mahasiswa berdasarkan index
yang diberikan. Menggunakan parameter index yang kemudian menggunakan
array_splice() untuk menghapus data dengan index yang sesuai dari array
$dataMahasiswa. Jika terdapat parameter GET 'action' yang bernilai 'delete'
dan juga terdapat index yang diberikan, maka dilakukan pemanggilan fungsi
hapusData() untuk menghapus data mahasiswa pada index tersebut.
Kode html menampilkan tabel yang berisi data mahasiswa, terdapat
tombol edit dan delete untuk setiap baris data. Tombol Edit akan mengarahkan
pengguna ke halaman edit.php dengan membawa informasi index dari
mahasiswa yang akan diedit. Sedangkan tombol Delete akan menghapus data
mahasiswa yang sesuai dengan index yang diberikan.
Terdapat juga dua tombol di bagian bawah tabel, yaitu "Tambah Data"
yang mengarahkan ke halaman tambah.php untuk menambahkan data
mahasiswa baru, dan "Logout" yang mengarahkan ke halaman logout.php
untuk keluar dari sesi login.
4. Membuat system CRUD pada halaman kedua
Tambah Data
<?php
session_start();
if (!isset($_SESSION['username'])) {
header("Location: login.php");
exit;
if (!isset($_SESSION['dataMahasiswa'])) {
$_SESSION['dataMahasiswa'] = array(
);
global $dataMahasiswa;
if(isset($_POST['submit'])) {
header("Location: mahasiswa.php");
exit;
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<style>
* {
margin: 0;
padding: 0;
body {
background-color: #f8f9fa;
.tambah-data {
background-color: #EEF7FF;
border-radius: 8px;
padding: 20px;
max-width: 500px;
.tambah-data h3 {
text-align: center;
color: #333;
.form-data {
margin-bottom: 20px;
.form-data label {
display: block;
margin-bottom: 5px;
color: #333;
.form-data input {
width: 100%;
padding: 10px;
border-radius: 5px;
box-sizing: border-box;
font-size: 16px;
.tambah-data a {
text-align: center;
color: #007bff;
text-decoration: none;
margin-top: 20px;
</style>
</head>
<body>
<div class="tambah-data">
<div class="form-data">
</div>
<div class="form-data">
</div>
<div class="form-data">
</div>
<div class="form-data">
</div>
</form>
<a href="mahasiswa.php">Kembali</a>
</div>
</body>
</html>
Penjelasan :
Kode ini untuk melakukan tambah data mahasiswa, data yang di tambah
akan di simpan ke dalam session. Terdapat pengecheckan username, apakah
sudah login atau belum. Jika belum akan di arahkan ke halaman login.php.
Fungsi tambahData($nim, $nama, $alamat, $angkatan) digunakan
untuk menambahkan data mahasiswa baru ke dalam array $dataMahasiswa.
Fungsi ini menggunakan parameter NIM, Nama, Alamat, dan Angkatan dari
form input sebagai input untuk menambahkan data mahasiswa baru ke dalam
array.
Terdapat pengecekan apakah terdapat input dari form submit. Jika iya,
maka dilakukan pemanggilan fungsi tambahData() dengan menggunakan
nilai dari form input NIM, Nama, Alamat, dan Angkatan. Setelah itu,
pengguna akan diarahkan kembali ke halaman "Data Mahasiswa"
(mahasiswa.php) untuk melihat data mahasiswa yang telah ditambahkan.
Kode html menampilkan form dengan input NIM, Nama, Alamat, dan
Angkatan yang diperlukan untuk menambahkan data mahasiswa baru. Form
tersebut menggunakan method "post" untuk mengirim data dan action yang
kosong agar form submit ke halaman itu sendiri. Selain itu, terdapat juga link
"Kembali" yang mengarahkan pengguna kembali ke halaman "Data
Mahasiswa".
Edit Data
<?php
session_start();
if (!isset($_SESSION['username'])) {
header("Location: login.php");
exit;
if (!isset($_SESSION['dataMahasiswa'])) {
$_SESSION['dataMahasiswa'] = array(
);
global $dataMahasiswa;
if ($mahasiswa[0] == $nimToEdit) {
$mahasiswa[0] = $nim_edit;
$mahasiswa[1] = $nama_edit;
$mahasiswa[2] = $alamat_edit;
$mahasiswa[3] = $angkatan_edit;
return;
if(isset($_POST['simpan'])) {
editData($_POST['nim_to_edit'], $_POST['nim_edit'],
$_POST['nama_edit'], $_POST['alamat_edit'],
$_POST['angkatan_edit']);
header("Location: mahasiswa.php");
exit;
$index = $_GET['index'];
$mahasiswaToEdit = $dataMahasiswa[$index];
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<style>
* {
margin: 0;
padding: 0;
body {
background-color: #f8f9fa;
.edit-mhs {
background-color: #EEF7FF;
border-radius: 8px;
padding: 20px;
max-width: 500px;
}
.edit-mhs h2 {
text-align: center;
color: #333;
.edit-data {
margin-bottom: 20px;
.edit-data label {
display: block;
margin-bottom: 5px;
color: #333;
.edit-data input {
width: 100%;
padding: 10px;
border-radius: 5px;
box-sizing: border-box;
font-size: 16px;
.edit-mhs a {
text-align: center;
color: #007bff;
text-decoration: none;
margin-top: 20px;
}
</style>
</head>
<body>
<div class="edit-mhs">
<div class="edit-data">
</div>
<div class="edit-data">
</div>
<div class="edit-data">
</div>
<div class="edit-data">
</div>
</form>
<a href="mahasiswa.php">Kembali</a>
</div>
</body>
</html>
Penjelasan :
Halaman ini untuk mengedit data mahasiswa yang akan di edit, Fungsi
editData($nimToEdit, $nim_edit, $nama_edit, $alamat_edit, $angkatan_edit)
digunakan untuk melakukan edit pada data mahasiswa dengan menggunakan
NIM untuk mengidentifikasi data yang akan diubah. Fungsi ini akan mencari
data mahasiswa dengan NIM yang sesuai, kemudian mengganti data dengan
nilai yang baru sesuai dengan input yang diberikan.
Jika terdapat input dari form submit, maka dilakukan pemanggilan
fungsi editData() dengan menggunakan nilai NIM yang akan diubah dan nilai
baru untuk NIM, Nama, Alamat, dan Angkatan. Setelah proses edit selesai,
pengguna akan diarahkan kembali ke halaman "Data Mahasiswa"
(mahasiswa.php) untuk melihat data mahasiswa yang telah diperbarui.
Kode html menampilkan form dengan input NIM baru, Nama baru,
Alamat baru, dan Angkatan baru yang diperlukan untuk melakukan edit data
mahasiswa. Form menggunakan method "post" untuk mengirim data dan
action yang kosong agar form submit ke halaman itu sendiri. Terdapat juga
input hidden untuk menyimpan nilai NIM yang asli sebelum diubah. Selain
itu, terdapat link "Kembali" yang mengarahkan pengguna kembali ke
halaman "Data Mahasiswa".
5. Buatlah fitur logout
Logout
<?php
session_start();
session_destroy();
header("Location: login.php");
exit;
?>
Penjelasan :
Kode yang di buat untuk mengakhiri atau menghapus session pengguna
dan mengarahkannya ke halaman login.php, fungsi session_start untuk
memulai atau mengaktifkan session pada halaman tersebut. Kemudian, fungsi
session_destroy digunakan untuk menghapus semua data yang terkait dengan
pengguna yang sedang aktif. fungsi header("Location: login.php") digunakan
untuk melakukan redirect atau pengalihan halaman ke halaman login.php
setelah sesi selesai dihapus.
4.2 Hasil
1. Login
2. Home
3. Data Mahasiswa
4. Tambah Data
5. Edit data
BAB V
PENUTUP
5.1 Analisa
Praktikan dapat memahami konsep dasar php. Seperti variable, penggunaan
fungsi, pengkondisian. Praktikan juga dapat memberikan pengalaman membuat
program php sederhana, tanpa database, dan menyimpan data dalam bnetuk array.
Praktikan juga mengetahui aturan penulisan program php yang benar.
Praktikan dapat membuat halaman login untuk melakukan login ke dalam
system. Praktikan dapat membuat halaman home untuk pengguna yang berhasil
login, dan memberikan sambutan dengan username yang berhasil login. Praktikan
dapat membuat tampilan data mahasiswa dan membuat fitur CRUD dan di simpan
dalam bentuk array. Praktikan juga dapat membuat fitur logout menggunakan php.
5.2 Kesimpulan
1. PHP adalah sebuah bahasa pemrograman server-side yang digunakan untuk
membuat aplikasi web dinamis.
2. PHP dapat berjalan di server web dan menghasilkan output yang dapat
diakses melalui web browser.
3. Praktikan dapat belajar konsep dasar PHP seperti variabel, penggunaan
fungsi, logika pengkondisian, dan penggunaan session.
4. PHP mendukung pengelolaan session untuk menyimpan data pengguna
secara sementara
LAPORAN RESMI
MODUL VI
HTML FORM DAN PHP KONEKSI
PEMROGRAMAN BERBASIS WEB
1.2 Tujuan
Mahasiswa mampu memahami HTML form dan metodenya
Mahasiswa mampu memahami koneksi PHP dengan database
Mahasiswa mampu memahami Create, Read, Update, dan Delete
BAB II
DASAR TEORI
2.1 HTML Form Dalam PHP
2.1.1 Apa itu html form?
HTML form adalah bagian dari halaman web yang memungkinkan pengguna
untuk mengirimkan data ke server. Ini seperti kotak kosong di halaman web di mana
pengguna dapatmengetikkan informasi seperti nama, alamat email, atau pesan
<?php
<?php
>> Informasi tentang database
$servername = "localhost"; >> Ini adalah alamat server
$username = "root"; >> Ini adalah nama pengguna
$password = "passwordku"; >> Ini adalah kata sandi
$database = “nama_database”; >> ini adalah nama dari database
<?php
>> Membuat koneksi
$conn = new mysqli("localhost", "username", "password",
"nama_database");
$id_guru = 3;
<?php
>> Untuk mengenali data
$id_guru = 2 ;
Style CSS
body {
background-color: #f4f4f4;
margin: 0;
padding: 20px;
h2, h3 {
color: #050505;
a {
text-decoration: none;
color: #35caca;
font-weight: bold;
a:hover {
color: #008cba;
table {
width: 100%;
border-collapse: collapse;
margin: 20px 0;
font-size: 18px;
text-align: center;
padding: 12px;
table, td, tr {
padding: 12px;
td a {
border-radius: 5px;
background-color: #008cba;
color: white;
td a:hover {
border-color: #008cba;
color: #333;
background-color: #ffffff;
form {
border-radius: 8px;
width: 100%;
max-width: 400px;
input[type="text"],
input[type="number"] {
width: 100%;
padding: 8px;
border-radius: 4px;
box-sizing: border-box;
input[type="submit"] {
width: 50%;
padding: 10px;
border: none;
border-radius: 4px;
background-color: #008cba;
color: white;
font-size: 16px;
cursor: pointer;
margin-top: 10px;
input[type="button"]:hover {
background-color: #005f5f;
Koneksi
<?php
if (!$koneksi) {
}
?>
Penjelasan :
Skrip PHP memulai dengan baris include 'koneksi.php';, yang berarti
mengikutkan file bernama koneksi.php yang berisi pengaturan koneksi ke database.
File ini berisi informasi seperti nama database, username, password, dan nama host
yang digunakan untuk menghubungkan ke database.
Index
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Data Mahasiswa</title>
</head>
<body>
<h2>Data Mahasiswa</h2>
<br>
<table>
<tr>
<td>No</td>
<td>Nama</td>
<td>NIM</td>
<td>Umur</td>
<td>Jenis Kelamin</td>
<td>Prodi</td>
<td>Jurusan</td>
<td>Asal Kota</td>
<td>Pilihan</td>
</tr>
<?php
include 'koneksi.php';
$no = 1;
while($d = mysqli_fetch_array($data)){
?>
<tr>
<td>
</td>
</tr>
<?php
?>
</table>
</body>
</html>
Penjelasan :
Skrip PHP memulai dengan baris include 'koneksi.php';, yang berarti
mengikutkan file bernama koneksi.php yang berisi pengaturan koneksi ke database.
File ini berisi informasi seperti nama database, username, password, dan nama host
yang digunakan untuk menghubungkan ke database. kemudian menampilkan data
mahasiswa dalam bentuk tabel. Data mahasiswa diambil dari database
menggunakan perintah SQL SELECT * FROM data_mhs. Perintah ini mengambil
semua data dari tabel data_mhs dan menampilkan nya dalam bentuk tabel. Tabel
tersebut memiliki 9 kolom, yaitu No, Nama, NIM, Umur, Jenis Kelamin, Prodi,
Jurusan, Asal Kota, dan Pilihan. Pilihan data mahasiswa terdiri dari dua link, yaitu
Edit dan Hapus. Link Edit digunakan untuk mengedit data mahasiswa yang telah
tersimpan, sedangkan link Hapus digunakan untuk menghapus data mahasiswa.
Menggunakan while loop untuk mengulangi proses pengambilan data setiap baris
data dan menampilkannya. Dalam loop tersebut, skrip PHP menggunakan variabel
$d untuk menampung setiap baris data dari database. Kemudian, skrip PHP
menggunakan echo untuk menampilkan setiap kolom data mahasiswa.
Tambah
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Tambah Data</title>
</head>
<body>
<h3>Tambah Data Mahasiswa</h3>
<a href="index.php">Kembali</a>
<table>
<tr>
<td>Nama</td>
</tr>
<tr>
<td>NIM</td>
</tr>
<tr>
<td>Umur</td>
</tr>
<tr>
<td>jenis Kelamin</td>
</tr>
<tr>
<td>Prodi</td>
</tr>
<tr>
<td>Jurusan</td>
</tr>
<tr>
<td>Asal Kota</td>
<td><input type="text" name="asal_kota"></td>
</tr>
<tr>
</tr>
</table>
</form>
</body>
</html>
Penjelasan :
Skrip PHP memulai dengan form yang digunakan untuk menambahkan data
mahasiswa. Form tersebut memiliki 7 kolom, yaitu Nama, NIM, Umur, Jenis
Kelamin, Prodi, Jurusan, dan Asal Kota. Pengguna dapat menginputkan data-data
tersebut dalam form tersebut. Kemudian menggunakan table untuk menampilkan
kolom-kolom dalam form tersebut. Kemudian menggunakan tombol "Simpan"
untuk mengirimkan data-data yang telah diinputkan oleh pengguna ke file proses-
tambah.php. Tombol "Simpan" menggunakan metode POST untuk mengirimkan
data-data tersebut. Skrip PHP juga memasukkan link "Kembali" yang digunakan
untuk mengembalikan pengguna ke halaman sebelumnya. Link ini menggunakan
anchor tag dengan atribut href="index.php" yang menunjukkan bahwa pengguna
akan kembali ke halaman index.php.
Proses Tambah
<?php
include 'koneksi.php';
$nama = $_POST['nama'];
$nim = $_POST['nim'];
$umur = $_POST['umur'];
$jenis_kelamin = $_POST['jenis_kelamin'];
$prodi = $_POST['prodi'];
$jurusan = $_POST['jurusan'];
$asal_kota = $_POST['asal_kota'];
header("location:index.php");
?>
Penjelasan :
Skrip PHP memulai dengan mengambil data-data yang diinputkan oleh
pengguna melalui form. Data-data tersebut diambil menggunakan superglobal
$_POST yang mengembalikan nilai dari form yang telah dikirimkan. Kemudian
menginputkan data-data yang diambil dari form ke dalam tabel data_mhs
menggunakan perintah SQL INSERT INTO. Perintah ini menginputkan data-data
tersebut ke dalam tabel data_mhs dengan field-field yang sesuai, yaitu nama, nim,
umur, jenis_kelamin, prodi, jurusan, dan asal_kota. Setelah menginputkan data ke
database, skrip PHP menggunakan fungsi header untuk mengarahkan pengguna ke
halaman sebelumnya, yaitu index.php.
Edit
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-
scale=1.0">
<title>Edit Data</title>
</head>
<body>
<a href="index.php">Kembali</a>
<?php
include 'koneksi.php';
$id = $_GET['id'];
while($d = mysqli_fetch_array($data)){
?>
<table>
<tr>
<td>Nama</td>
<td>
</td>
</tr>
<tr>
<td>NIM</td>
<td><input type="number" name="nim" value="<?php
echo $d['nim']; ?>"></td>
</tr>
<tr>
<td>Umur</td>
</tr>
<tr>
<td>Jenis Kelamin</td>
</tr>
<tr>
<td>Prodi</td>
</tr>
<tr>
<td>Jurusan</td>
</tr>
<tr>
<td>Asal Kota</td>
</tr>
<tr>
</tr>
</table>
</form>
<?php
?>
</body>
</html>
Penjelasan :
Skrip PHP memulai dengan mengambil data-data dari tabel data_mhs
berdasarkan id yang diinputkan menggunakan perintah SQL SELECT. Perintah ini
mengambil semua data dari tabel data_mhs yang memiliki id yang sesuai dengan id
yang diinputkan. Kemudian menggunakan loop while untuk menampilkan setiap
baris data yang diambil dari database. Dalam setiap loop, skrip ini menampilkan
data-data yang diambil dari database dan menampilkannya dalam form. Skrip PHP
menggunakan form untuk menampilkan data-data yang diambil dari database dan
memungkinkan pengguna untuk mengedit data-data tersebut. Form tersebut
memiliki 7 kolom, yaitu Nama, NIM, Umur, Jenis Kelamin, Prodi, Jurusan, dan
Asal Kota. Pengguna dapat mengedit data-data tersebut dalam form tersebut. Skrip
PHP menggunakan tombol "Ubah Data" untuk mengirimkan data-data yang diedit
oleh pengguna ke file proses-edit.php. Tombol "Ubah Data" menggunakan metode
POST untuk mengirimkan data-data tersebut.
Proses Edit
<?php
include 'koneksi.php';
$id = $_POST['id'];
$nama = $_POST['nama'];
$nim = $_POST['nim'];
$umur = $_POST['umur'];
$jenis_kelamin = $_POST['jenis_kelamin'];
$prodi = $_POST['prodi'];
$jurusan = $_POST['jurusan'];
$asal_kota = $_POST['asal_kota'];
header("location:index.php");
?>
Penjelasan :
Skrip PHP memulai dengan mengambil data-data yang diinputkan oleh
pengguna dari form. Data-data tersebut diambil menggunakan superglobal $_POST
yang mengembalikan nilai dari form yang telah dikirimkan. Data-data yang diambil
tersebut adalah id, nama, nim, umur, jenis_kelamin, prodi, jurusan, dan asal_kota.
Skrip PHP kemudian menggunakan perintah SQL UPDATE untuk mengupdate
data-data yang diinputkan oleh pengguna ke dalam tabel data_mhs. Perintah ini
mengupdate data-data yang sesuai dengan id yang diinputkan, yaitu nama, nim,
umur, jenis_kelamin, prodi, jurusan, dan asal_kota. Setelah mengupdate data-data,
skrip PHP menggunakan fungsi header untuk mengarahkan pengguna ke halaman
sebelumnya, yaitu index.php.
Hapus
<?php
include 'koneksi.php';
$id = $_GET['id'];
mysqli_query($koneksi, "DELETE FROM data_mhs WHERE id='$id'");
header("Location:index.php");
?>
Penjelasan:
Skrip PHP memulai dengan mengambil data dari URL menggunakan
superglobal $_GET. Data yang diambil adalah id yang diinputkan oleh pengguna
melalui link atau form. Id ini akan digunakan untuk menghapus data-data yang
sesuai dari tabel data_mhs. Kemudian menggunakan perintah SQL DELETE untuk
menghapus data-data yang sesuai dengan id yang diinputkan. Perintah ini
menghapus data-data yang memiliki id yang sama dengan id yang diinputkan oleh
pengguna. Setelah menghapus data-data, skrip PHP menggunakan fungsi header
untuk mengarahkan pengguna ke halaman sebelumnya, yaitu index.php.
4.2 Hasil
BAB V
PENUTUP
5.1 Analisa
HTML Form dan koneksi PHP juga memberikan fleksibilitas dalam
pengelolaan data pengguna. Pengembang dapat mengimplementasikan berbagai
fitur tambahan, seperti autentikasi pengguna, manajemen sesi, atau penanganan
kesalahan dengan mudah menggunakan kombinasi kedua teknologi ini. Dengan
adanya formulir HTML, pengguna dapat memberikan informasi yang diperlukan
untuk proses autentikasi atau pendaftaran, sementara PHP dapat digunakan untuk
memvalidasi dan mengelola data tersebut, serta menyimpannya ke dalam database
dengan aman.
5.2 Kesimpulan
1. HTML form adalah bagian dari halaman web yang memungkinkan
pengguna untuk mengirimkan data ke server.
2. Koneksi database adalah cara bagi program komputer untuk berbicara
dengan database
3. Kita butuh koneksi database karena kadang-kadang kita ingin menyimpan
banyak informasi, seperti nama, usia, atau gambar, dan kita ingin
menyimpannya di tempat yang aman dan mudah diakses.
PENUTUP
1. KESIMPULAN
Kesimpulan menurut saya dari praktikum pemrograman berbasis web,
yaitu memberikan pemahaman praktis tentang bagaimana teknologi jaringan
bekerja dan berinteraksi satu sama lain. Dalam praktikum ini, mempelajari cara
menggunakan HTML untuk menyusun halaman web, CSS untuk
menyempurnakan tata letak, dan JavaScript untuk menambah interaktivitas.
Selain itu, saya juga belajar tentang framework seperti bootstrap atau tailwind.
Di sisi server, penggunaan PHP dalam praktiknya memungkinkan untuk
memahami bagaimana server memproses permintaan klien, mengelola data
dalam database, dan memastikan keamanan dan keandalan aplikasi web.
Integrasi PHP dalam praktikum ini memungkinkan mahasiswa memahami
bagaimana server-side scripting bekerja dalam mengelola data dan interaksi
pengguna. Dengan PHP, mahasiswa dapat membuat aplikasi web yang mampu
menangani proses login, pengelolaan database, dan dinamika konten yang
dipersonalisasi. Praktikum ini menekankan pentingnya keamanan dan sanitasi
input, memastikan bahwa aplikasi web yang dibuat tidak rentan terhadap
serangan dan dapat diandalkan.
2. SARAN
Selama saya mengikuti praktikum hingga akhir praktikum ini saya dapat
mempelajariapa saja yang terdapat di dalam pemrograman berbasis web. Saran
dari saya yaitu, merencanakan kegiatan dengan baik sebelum memulai,
memahami tujuan dari praktikum ini dari awal hingga akhir. Memberikan
perspektif baru dalam proses belajar mengajar.
Berkolaborasi dengan teman sekelas melalui diskusi dapat memberikan
sudut pandang baru dan mempercepat pembelajaran. Selain itu, bereksperimen
dengan kode dan mencoba hal baru juga penting untuk memperdalam
pemahaman Anda. Mendokumentasikan konsep penting, kesalahan dan solusi
yang ditemukan juga sangat berguna. Memahami dasar-dasar HTML, CSS,
JavaScript, dan PHP sebelum mempelajari kerangka kerja atau pustaka yang
lebih kompleks membuat pembelajaran menjadi lebih mudah. Siswa juga
harus. Penting juga untuk selalu mengikuti perkembangan teknologi terkini dan
mendapatkan informasi tentang teknologi baru yang sedang tren. Terakhir,
meminta masukan kepada dosen atau mentor dapat memberikan wawasan
konstruktif untuk meningkatkan keterampilan dan pemahaman.
BIOGRAFI PENYUSUN
Cita-cita : Pramugari
HP : 082199048001
e-Mail : [email protected]
RIWAYAT PENDIDIKAN
1. SD Nurul Huda 1 Yapis Jayapura (2011-2017)
2. SMP Negeri 3 Cilimus (2017-2020)
3. SMK Negeri 2 Bangkalan (2022-2023)
4. Universitas Trunojoyo Madura (2023-Sekarang)