Pemrograman Web
Pemrograman Web
Puji syukur ke hadirat Tuhan Yang Maha Kuasa, yang telah memberikan rahmat-Nya
sehingga Buku Pembelajaran Pemrograman Web untuk mahasiswa/i Program Studi Teknologi
Informasi Fakultas Informatika dan Pariwisata Institut Bisnis dan Informatika Kesatuan Bogor
ini dapat diselesaikan dengan sebaik-baiknya.
Buku pembelajaran ini dibuat sebagai pedoman dalam melakukan kegiatan
pembelajaran Pemrograman Web yang merupakan kegiatan penunjang mata kuliah
Pemrograman Web pada Program Studi Teknologi Informasi Fakultas Informatika dan
Pariwisata Institut Bisnis dan Informatika Kesatuan Bogor. Buku pembelajaran ini diharapkan
dapat membantu mahasiswa/i dalam mempersiapkan dan melaksanakan pembelajaran dengan
lebih baik, terarah, dan terencana. Pada setiap topik telah ditetapkan tujuan pelaksanaan
pembelajaran dan semua kegiatan yang harus dilakukan oleh mahasiswa/i serta teori singkat
untuk memperdalam pemahaman mahasiswa/i mengenai materi yang dibahas.
Dalam pembuatan Buku Pembelajaran Pemrograman Web ini, penyusun menyadari
masih jauh dari sempurna. Oleh karena itu penyusun mengharapkan kritik dan saran yang
membangun guna penyempurnaan buku pembelajaran ini dimasa yang akan datang. Akhir kata,
penyusun mengucapkan banyak terima kasih kepada semua pihak yang telah terlibat baik
secara langsung maupun tidak langsung dalam pembuatan buku ini.
Penyusun,
i
DAFTAR ISI
ii
3.2.11 Object Javascript ................................................................................................ 56
3.3 Kontrol Program ................................................................................................... 64
3.3.1 Percabangan ....................................................................................................... 64
3.3.2 Perulangan.......................................................................................................... 71
3.4 Latihan Pembelajaran ........................................................................................... 75
BAB IV JAVASCRIPT 2 ......................................................................................................... 77
4.1 Tujuan Pembelajaran ............................................................................................ 77
4.2 Dasar Teori ........................................................................................................... 77
4.2.1. Object Array ........................................................................................................... 77
4.2.2. Object Date ............................................................................................................ 78
4.2.3. Object Math ........................................................................................................... 80
4.2.4. Object String .......................................................................................................... 82
4.2.5. Object Document ................................................................................................... 84
4.2.5. Object Window ...................................................................................................... 87
4.3 Event Handler ....................................................................................................... 92
4.3.1 Penanganan Kejadian (Event) ............................................................................ 93
4.3.2 Event on Submit............................................................................................... 101
4.4 Latihan Pembelajaran ......................................................................................... 108
BAB V MONOLITH – LARAVEL ....................................................................................... 109
5.1 Tujuan Pembelajaran .......................................................................................... 109
5.2 Dasar Teori ......................................................................................................... 109
5.2.1. Monolith.............................................................................................................. 109
5.2.2 Laravel ................................................................................................................. 109
5.2.3. Environment Development ................................................................................. 110
5.2.4. Architecture Concepts ......................................................................................... 112
5.3 Latihan Pembelajaran ......................................................................................... 114
BAB VI LARAVEL MVC, ROUTE DAN BLADE FRAGMENT ....................................... 115
6.1 Tujuan Pembelajaran .......................................................................................... 115
6.2 Dasar Teori ......................................................................................................... 115
6.2.1 MVC ................................................................................................................ 115
6.2.2. Laravel Route ...................................................................................................... 116
6.2.3. Laravel Blade ...................................................................................................... 121
6.3 Latihan Pembelajaran ......................................................................................... 131
BAB VII DATABASES ......................................................................................................... 132
7.1 Tujuan Pembelajaran .......................................................................................... 132
iii
7.2 Dasar Teori ......................................................................................................... 132
7.2.1 Migration.......................................................................................................... 132
7.2.2 Query Builder................................................................................................... 134
7.3 Latihan Pembelajaran ......................................................................................... 143
BAB VIII AUTHENTICATIONS.......................................................................................... 132
8.1 Tujuan Pembelajaran ............................................................................................... 144
8.2 Dasar Teori .............................................................................................................. 144
8.2.1 Facades .................................................................................................................. 146
8.2.2 Implement Facades ................................................................................................ 146
8.3 Latihan Pembelajaran .............................................................................................. 152
iv
BAB 1
5
SGMLguid, in-house Standard Generalized Markup Language (SGML) berbasis
format dokumen di CERN.
b. HTML 2.0
Dikembangkan oleh Kelompok Kerja HTML IETF, yang ditutup pada tahun
1996. Ini menetapkan standar untuk fitur inti HTML berdasarkan praktik saat ini
pada tahun 1994.
c. HTML 3.0
Rekomendasi pertama W3C untuk HTML yang mewakili konsensus tentang fitur
HTML untuk tahun 1996. HTML 3.2 menambahkan fitur yang digunakan secara
luas seperti tabel, applet, aliran teks di sekitar gambar, skrip super, dan subskrip,
sekaligus memberikan kompatibilitas mundur dengan standar HTML 2.0 yang
ada.
d. HTML 4.01
Versi ini dikenalkan pada tahun 1999 dengan menambahkan dukungan untuk
lebih banyak opsi multimedia, bahasa skrip, styles sheets, fasilitas pencetakan
yang lebih baik, dan dokumen yang lebih mudah diakses oleh pengguna
penyandang disabilitas.
e. XHTML 1.0
Pada tahun 2000 dengan banyak fitur baru, XHTML 1.0 merupakan formulasi
ulang HTML 4.01 dalam XHTML, dan menggabungkan kekuatan HTML 4
dengan kekuatan XML.
f. HTML 5.0
dibuat untuk menggantikan HTML 3.2, HTML 4. dan XHTML 1.x, HTML 5
memiliki banyak fitur baru dibandingkan pendahulunya. ini termasuk dukungan
penyimpanan media offline, elemen konten yang lebih spesifik (seperti footer,
header, navigasi, dll), doctype inline yang lebih sederhana, dukungan penyematan
audio, dan video. Pembaharuan ini diperkenalkan pada tahun 2015.
g. HTML 5.1
Selang satu tahun dari peluncuran HTML 5.0, bahasa pemrograman standar
berbasis internet ini sudah memiliki pembaharuannya seperti kemampuan yang
lebih baik terkait pengalaman video, formulir web, aksesibilitas gambar, dan
pemeriksaan ejaan dan tata bahasa.
h. HTML 5.2
Peningkatan kebijakan keamanan konten, API permintaan pembayaran untuk
situs web eCommerce, aksesibilitas aplikasi rich internet untuk penyandang
disabilitas, dan perubahan pada elemen <main> untuk mendukung desain
responsif. Versi HTML 5.2 dikenalkan pada tahun 2017 dan masih dipergunakan
hingga saat ini sebagai bahasa pemrograman standar berbasis internet yang
direkomendasikan oleh W3C.
1.2.2 Struktur HTML
Sifat dari HTML ialah clientscript dimana dokumen tersebut dapat dibuka
didalam komputer secara stand alone yang tidak membutuhkan sebuah server untuk
dapat menampilkannya di dalam browser. Dokumen HTML biasanya berekstensi .html
6
atau .htm dimana bahasa HTML tersebut tersusun atas tag atau syntax yang berformat
<tagname>…</tagname>. Aturan dalam penulisan HTML sebagai berikut:
a. Dalam penulisan tag HTML diapit dengan menggunakan dua kurung siku
(angkle bracket) “<” dan “>”
b. Tag HTML selalu berpasangan, dimana tag awal dalam suatu syntax disebut
dengan tag awal dan tag kedua sebagai tag terakhir. contoh: <p>…</p>
c. Penulisan tag HTML tidak case sensitive dimana tag dengan huruf kecil sama
dengan tag huruf besar, contoh: <P>…</P> sama dengan <p>…</p>Namun
berdasarkan aturan pada W3C (HTML5.0 dan XHTML) penulisan tag HTML
sebaiknya menggunakan huruf kecil.
d. Jika memiliki tag nested atau terdapat suatu tag berisi tag lagi, maka penulisan
tag akhir tidak boleh bersilang dan harus berurutan. Contoh: <p>Ini contoh
<b>Huruf Tebal</b> dan <i>Huruf cetak miring</i> </p>
e. Penulisan syntax dokumen HTML selalu diawali dengan tag <html> dan
diakhiri dengan tag </html>
7
Dari contoh penulisan dokumen HTML diatas dapat diartikan sebagai berikut:
8
Gambar 1.2.3.3 Hasil Preview dari HTML Documents
1.2.4 HTML Elements
1.2.4.1 HTML Element Head
Berikut adalah tag atau elemen yang dapat digunakan di bagian
<head>…</head> pada sebuah dokumen HTML:
1. Title
Elemen <title>, menentukan judul untuk halaman HTML (yang ditampilkan di
bilah judul browser atau di tab halaman)
<title>Page Title</title>
2. Favicon
Elemen ini diperuntukan untuk menentukan icon pada halaman HTML (yang
ditampilkan di bilah judul browser atau di tab halaman). Untuk menggunakan
favicon, dikhususkan memiliki file gambar dengan extension .ico, .svg atau .png
dan size yang digunakan ialah 16x16 pixel atau 32x32 pixel.
<link rel="icon" type="image/x-icon" href="/path/to/icons/favicon.ico">
3. Meta
Elemen <meta> biasanya digunakan untuk menentukan set karakter, deskripsi
halaman, kata kunci, penulis dokumen, dan pengaturan viewport. Metadata
tidak akan ditampilkan di halaman, tetapi digunakan oleh browser (cara
menampilkan konten atau memuat ulang halaman), oleh mesin pencari (kata
kunci), dan layanan web lainnya.
9
- Menentukan set karakter
<meta charset="UTF-8">
4. Javascript
JavaScript membuat halaman HTML lebih dinamis dan interaktif. Tag HTML
<script> digunakan untuk mendefinisikan skrip sisi klien (JavaScript). Elemen
<script> berisi pernyataan skrip, atau menunjuk ke file skrip eksternal melalui
atribut src. Penggunaan umum untuk JavaScript adalah manipulasi gambar,
validasi formulir, dan perubahan konten yang dinamis. Untuk memilih elemen
HTML, JavaScript paling sering menggunakan metode
document.getElementById(). Contoh JavaScript ini menulis "Halo
JavaScript!" menjadi elemen HTML dengan id="demo":
<p id="demo"></p>
<script>
document.getElementById("demo").innerHTML = "Hello
JavaScript!";
</script>
5. Styles CSS
Cascading Style Sheets (CSS) digunakan untuk memformat tata letak halaman
web. Dengan CSS, dapat mengontrol warna, font, ukuran teks, jarak antar
elemen, bagaimana elemen diposisikan dan ditata, gambar latar belakang atau
warna latar apa yang akan digunakan, tampilan berbeda untuk perangkat dan
ukuran layar yang berbeda, dan lebih banyak!
10
<style>
body {background-color: powderblue;}
h1 {color: blue;}
p {color: red;}
</style>
2. Paragraphs
Sebuah paragraf selalu dimulai pada baris baru, dan biasanya berupa blok
teks. Elemen HTML <p> mendefinisikan sebuah paragraf. Sebuah paragraf
selalu dimulai pada baris baru, dan browser secara otomatis menambahkan
beberapa spasi (margin) sebelum dan sesudah paragraf.
<p>This is a paragraph.</p>
<p>This is another paragraph.</p>
3. Formatting
HTML berisi beberapa elemen untuk mendefinisikan teks dengan arti
khusus. Elemen pemformatan dirancang untuk menampilkan jenis teks
khusus:
Element Description
<b> Bold
<strong> Important
<i> Italic
11
<em> Emphasized
<mark> Marked
<small> Smaller
4. Quotations
Bagian ini kita akan membahas elemen HTML <blockquote>,<q>, <abbr>,
<address>, <cite>, dan <bdo>.
Element Description
5. Comments
Untuk menambahkan komentar ke sumber HTML Anda dengan
menggunakan sintaks berikut:
<!-- Write your comments here -->
6. List
List HTML memungkinkan programmer untuk mengelompokkan satu set
item terkait dalam bentuk list. Daftar tidak berurutan dimulai dengan tag
<ul> atau <ol>. Setiap item list dimulai dengan tag <li>.
Syntax Display
<ul>
<li>Coffee</li>
<li>Tea</li>
<li>Milk</li>
</ul>
12
<ol>
<li>Coffee</li>
<li>Tea</li>
<li>Milk</li>
</ol>
- Inline Element
Elemen Inline tidak dimulai pada baris baru. Elemen Inline hanya
membutuhkan lebar sebanyak yang diperlukan. Ini adalah elemen
<span> di dalam paragraf.
<span>Hello World</span>
8. Links
Links ditemukan di hampir semua halaman web. Links memungkinkan
pengguna mengklik jalan mereka dari halaman ke halaman lain. Links
HTML disebut dengan hyperlink.Untuk dapat mengklik tautan dan
melompat ke halaman lain. Saat Anda menggerakkan mouse di atas tautan,
panah mouse akan berubah menjadi tangan kecil.
Atribut terpenting dari elemen <a> adalah atribut href, yang menunjukkan
tujuan tautan. Teks tautan adalah bagian yang akan terlihat oleh pembaca.
Mengklik teks tautan, akan mengirim pembaca ke alamat URL yang
ditentukan.
<a href=" https://www.ibik.ac.id/> Visit IBIK</a>
13
Target Description
Create Bookmarks
Link HTML dapat digunakan untuk membuat bookmark, sehingga pembaca
dapat melompat ke bagian tertentu dari halaman web.
9. Images
Gambar dapat meningkatkan desain dan tampilan halaman web. Tag HTML
<img> digunakan untuk menyematkan gambar di halaman web. Gambar
secara teknis tidak dimasukkan ke dalam halaman web; gambar ditautkan
ke halaman web. Tag <img> membuat ruang penyimpanan untuk gambar
yang direferensikan. Tag <img> kosong, hanya berisi atribut, dan tidak
memiliki tag penutup. Tag <img> memiliki dua atribut yang diperlukan:
o src = Menentukan jalur ke gambar
o alt = Menentukan teks alternatif untuk gambar.
o width = Menentukan panjang
o height = Menentukan tinggi
10. Tables
Tabel HTML memungkinkan pengembang web untuk mengatur data ke
dalam baris dan kolom.
Table Kolom
<table>
<tr>
<td>Emil</td>
<td>Tobias</td>
<td>Linus</td>
14
</tr>
</table>
Each table cell is defined by a <td> and a </td> tag. Segala sesuatu di antara
<td> dan </td> adalah konten sel tabel.
Table Baris
<table>
<tr>
<td>Emil</td>
<td>Tobias</td>
<td>Linus</td>
</tr>
<tr>
<td>16</td>
<td>14</td>
<td>10</td>
</tr>
</table>
Setiap baris tabel dimulai dengan <tr> dan diakhiri dengan tag </tr>. Berikut
ini adalah tag elemen tabel yang dapat dipergunakan:
Element Description
15
11. Iframe
Tag HTML <iframe> menentukan bingkai sebaris. Bingkai sebaris
digunakan untuk menyematkan dokumen lain dalam dokumen HTML saat
ini.
<iframe src="url" title="description" width="100px"
height="50px"></iframe>
12. Audio/Video
HTML5 memiliki metode, properti, dan peristiwa untuk elemen <audio>
dan <video>. Atribut kontrol menambahkan kontrol audio, seperti putar,
jeda, dan volume. Elemen <source> memungkinkan Anda menentukan file
audio alternatif yang dapat dipilih oleh browser. Browser akan
menggunakan format pertama yang dikenali. Teks diantara tag <audio> dan
</audio> hanya akan ditampilkan di browser yang tidak mendukung elemen
<audio>.
<audio controls>
<source src="lagu-1.ogg" type="audio/ogg">
<source src="lagu-2.mp3" type="audio/mpeg">
Your browser does not support the audio element.
</audio>
16
Elemen HTML <form> digunakan untuk membuat formulir HTML untuk input
pengguna:
<form>
<label for="fname">First name:</label><br>
<input type="text" id="fname" name="fname"><br>
<label for="lname">Last name:</label><br>
<input type="text" id="lname" name="lname">
</form>
1. Form Attributes
List atribut <form> yang dapat digunakan:
Attribute Description
2. Form Elements
Elemen <form> HTML dapat berisi satu atau lebih elemen form sebagai berikut:
● Elemen <input>
Salah satu elemen form yang paling sering digunakan adalah elemen <input>.
Elemen <input> dapat ditampilkan dalam beberapa cara, tergantung pada atribut
type.
17
<label for="fname">First name:</label>
● Elemen <label>
Elemen <label> mendefinisikan label untuk beberapa elemen form. Elemen
<label> berguna untuk pengguna pembaca layar, karena pembaca layar akan
membacakan label dengan keras saat pengguna fokus pada elemen input.
Elemen <label> juga membantu pengguna yang mengalami kesulitan mengklik
wilayah yang sangat kecil (seperti tombol radio atau kotak centang) - karena
ketika pengguna mengklik teks di dalam elemen <label>, itu akan mengaktifkan
tombol radio/kotak centang. Atribut for dari tag <label> harus sama dengan
atribut id dari elemen <input> untuk mengikatnya bersama.
● Elemen <textarea>
Elemen <textarea> mendefinisikan bidang input multi-baris (area teks):
<textarea name="message" rows="10" cols="30">
Type something in here
</textarea>
Atribut rows menentukan jumlah baris yang terlihat di area teks. Atribut cols
menentukan lebar yang terlihat dari area teks.
● Elemen <button>
Elemen <button> mendefinisikan tombol yang dapat diklik:
<button type="button">Click Me! Button</button>
● Elemen <select>
Elemen <select> mendefinisikan daftar drop-down:
<label for="cars">Choose a car:</label>
<select id="cars" name="cars">
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="fiat">Fiat</option>
<option value="audi">Audi</option>
</select>
18
The <option> elements defines an option that can be selected. By default, the
first item in the drop-down list is selected. To define a pre-selected option, add
the selected attribute to the option:
<option value="fiat" selected>Fiat</option>
3. Input Types
Berikut adalah berbagai jenis input yang dapat digunakan dalam HTML:
<input type="text"> <input type="hidden">
Display:
4. Input Attributes
Bagian ini menjelaskan atribut yang berbeda untuk elemen <input> HTML.
Attribute Description
size Menentukan lebar yang terlihat, dalam karakter, dari bidang input
min & mun Menentukan nilai minimum dan maksimum untuk bidang input
19
pattern Menentukan ekspresi reguler yang memeriksa nilai bidang input,
saat formulir dikirimkan.
Nomor Atom 8
Keelectronegatifan 3,5
20
Kerapatan (g/cm3) 1.27 (padatan)
X2(g)+2e+(aq)🡪2X-(aq) -
4. Latihan List
Buatlah dokumen bernama Latihan-4.
Ubahlah bentuk dibawah ini kedalam scripting HTML:
There’s no question that software programming is a hot career right now. The U.S.
Bureau of Labor Statistics projects 21 percent growth for programming jobs from
2018 to 2028, which is more than four times the average for all occupations. What’s
more, the median annual pay for a software programmer is about $106,000, which
is nearly three times the median pay for all U.S. workers.
Not all programming jobs are the same, however. Different roles, companies,
and types of software require knowing and understanding different
programming languages—and it’s often beneficial to know multiple
languages. Trying to break into the field of software programming can be a
daunting experience, especially for professionals with no prior programming
experience.
The Master of Science in Computer Science Align program at Northeastern
University is specifically designed for students who want to transition into
computer science from another field of study.
“Our aim is to transport students from a variety of different backgrounds
and have them come out as software engineers,” says Ian Gorton, PhD and
21
director of the graduate computer science programs at Northeastern
University—Seattle. “We focus on math, programming, and a variety of
computer science and engineering concepts.”
Whether you’re new to programming or looking to brush up on your skills, it
helps to know which languages are in high demand. Here are 10 of the most
popular programming languages of 2020 based on the number of job postings
listed on job search sites Indeed, the average annual salary for those jobs, and
factors such as ease of use and potential for growth.
2. JavaScript
Average annual salary: $118.000
3. Java
Average annual salary: $104.000
4. C#
Average annual salary: $97.000
5. C
Average annual salary: $97.000
6. C++
Average annual salary: $97.000
7. Go
Average annual salary: $93.000
8. R
Average annual salary: $93.000
9. Swift
Average annual salary: $93.000
10. PHP
Average annual salary: $81.000
22
● Embedded devices, such as those in the automotive and healthcare
industries, run software written in C, C++, or Rust.
● Applications that run on the cloud are increasingly written in Go or
Scala.
● Mobile applications are increasingly written in Swift or Kotlin.
…Iframe to Latihan-4…
6. Latihan Link
23
Buatlah dokumen HTML bernama Latihan-6.
a. Implementasikan bentuk dibawah ini kedalam script HTML:
● Python
● JavaScript
● Java
● C#
● C
● C++
● Go
● R
● Swift
● PHP
Python
Python adalah …
JavaScript
JavaScript adalah …
…dan seterusnya…
Buatlah hyperlink pada elemen Daftar Isi, dimana link tersebut merujuk ke
diverent area, ketika mengklik salah satu link tersebut maka akan merujuk ke
area yang telah dituju. Contoh: jika mengklik link Java, maka akan dirujuk ke
area Java.
24
7. Latihan Form
Buatlah dokumen HTML bernama Latihan-7.
Buatlah form yang berisi isian field sebagai berikut:
- NPM (input text)
- Fullname (input text)
- Email (input email)
- Password (input password)
- Place Birth (input text)
- Birthdate (input date)
- Gender (radio button, Male and Female)
- Address (textarea)
Dari form diatas memiliki dua buah button. Button submit dengan nama Save
dan button reset dengan nama Clear.
8. Latihan Layout
Buatlah folder project dengan nama my-portfolio. Di Dalam folder tersebut
terdapat dua buah folder yaitu folder css dan images. Dan terdapat satu buah file
bernama index.html. Dimana file tersebut berisi script HTML yang akan
menampilkan bentuk portofolio atau curriculum vitae pada browser. Silakan
membuat bentuk portofolio dengan bentuk bebas namun mengimplementasikan
bentuk elemen HTML yang telah diberikan minimal 5 buah elemen.
25
BAB 2
26
b. Setiap deklarasi menyertakan nama properti CSS dan nilai, dipisahkan oleh
titik dua(:).
c. Beberapa deklarasi CSS dipisahkan dengan titik koma, dan blok deklarasi
dikelilingi oleh kurung kurawal.
Penjelasan:
● p adalah pemilih di CSS (ini menunjuk ke elemen HTML yang ingin diberikan
style: <p>).
● color adalah properti, dan red adalah nilai properti
text-align adalah properti, dan center adalah nilai properti
2.2.3 Selector
Selector CSS digunakan untuk "menemukan" (atau memilih) elemen HTML yang ingin
diberikan style. Pemilih selector CSS dibagi menjadi lima kategori, yaitu:
a. Selektor sederhana (pilih elemen berdasarkan nama, id, kelas)
b. Selektor kombinator (memilih elemen berdasarkan hubungan spesifik di antara
mereka)
c. Selector Pseudo-class (memilih elemen berdasarkan status tertentu)
d. Selector Pseudo-element (memilih dan menata bagian elemen)
e. Selector atribut (memilih elemen berdasarkan atribut atau nilai atribut)
Contoh syntax selector:
- Selektor Sederhana
p { #para1 { p.description {
text-align: right; text-align: center; text-align: left;
color: red; color: blue; color: green;
} } }
27
<p class="description">And me!</p>
- Selektor kombinator
div p {
background-color: yellow;
}
<h1>Descendant Selector</h1>
<div>
</div>
- Selector Pseudo-class
Pseudo-class digunakan untuk mendefinisikan keadaan khusus suatu elemen.
Misalnya, dapat digunakan untuk:
- style elemen saat pengguna mengarahkan mouse ke atasnya
- style tautan yang dikunjungi dan yang belum dikunjungi secara berbeda
- style elemen saat mendapat fokus
Syntax pseudo-class
selector:pseudo-class {
property: value;
}
Contoh:
.para1:hover {
background-color: tomato;
font-weight: bold;
}
<h1>Descendant Selector</h1>
<div id="content">
</div>
28
Selector Example Example description
input:checke
:checked Selects every checked <input> element
d
input:disable
:disabled Selects every disabled <input> element
d
29
Selects every <p> element that is the second
:nth-last-of- p:nth-last-of-
<p> element of its parent, counting from the
type(n) type(2)
last child
- Selector Pseudo-element
Elemen pseudo CSS digunakan untuk menata bagian tertentu dari suatu elemen.
Misalnya, dapat digunakan untuk:
- Gaya huruf pertama, atau baris, dari suatu elemen
- Sisipkan konten sebelum, atau setelah, konten elemen
Syntax pseudo-elements
30
selector::pseudo-element {
property: value;
}
Contoh:
p::first-line {
color: #ff0000;
font-variant: small-caps;
}
<p>You can use the ::first-line pseudo-element to add a special effect to the first line of a
text. Some more text. And even more, and more, and more, and more, and more, and
more, and more, and more, and more, and more, and more, and more.</p>
- Selector atribut
Selector [attribute] digunakan untuk memilih elemen dengan atribut tertentu.
Dimungkinkan untuk menata elemen HTML yang memiliki atribut atau nilai
atribut tertentu. Contoh berikut memilih semua <a> elemen dengan atribut
target:
Syntax atribut
a[target] { a[target="_blank"] {
background-color: yellow; background-color: purple;
} }
31
<h2>CSS [attribute="value"] Selector</h2>
32
Namun, ada beberapa kasus dimana penggunaan internal stylesheet justru berguna.
Salah satu contohnya adalah untuk mengirimkan template halaman ke seseorang –
karena semuanya bisa terlihat dalam 1 halaman, maka akan lebih mudah untuk melihat
previewnya. CSS internal diletakkan di dalam tag <style></style>. Contohnya:
<head>
<style>
body {background-color: blue;}
h1 {color: blue; font-family:verdana; font-family:courier; }
p {color: red;}
.center {text-align: “center”;}
</style>
</head>
<body>
<h1>Centered Heading</h1>
<p>Centered paragraph.</p>
<div id=”card”>
<h1>This is a heading</h1>
<p>This is a paragraph.</p>
</div>
</body>
</head>
33
File styles.css
body {background-color: blue;}
h1 {color: blue; font-family:verdana; font-family:courier; }
p {color: red;}
.center {text-align: “center”;}
2. Colors
Color ditentukan menggunakan nama warna yang telah ditentukan sebelumnya,
atau nilai RGB, HEX, HSL, RGBA, HSLA. Di CSS, warna dapat ditentukan
dengan menggunakan nama warna yang telah ditentukan:
34
<h1 style="border:1px dashed Tomato;">Hello World</h1>
<p style="border:2px solid #1e90ff;">Lorem ipsum...</p>
<p style="border:3px dotted rgb(30 255 203);">Ut wisi enim...</p>
3. Backgrounds
Property background CSS digunakan untuk menambahkan efek latar belakang
untuk elemen. Dalam bagian ini, berikut ini beberapa property background CSS
yang dapat digunakan:
▪ background-color
▪ background-image
▪ background-repeat
▪ background-attachment
▪ background-position
▪ background
4. Borders
Property border CSS memungkinkan untuk menentukan style, lebar, dan warna
pada setiap elemen. Property border-style menentukan jenis border apa yang
akan ditampilkan.
p{border-style: value;}
35
- Margin
Margin digunakan untuk membuat ruang di sekitar elemen, di luar batas yang
ditentukan. Properti margin CSS digunakan untuk membuat ruang di sekitar
elemen, batas diluar elemen. Dengan CSS, memiliki kontrol penuh atas margin.
Ada properti untuk mengatur margin untuk setiap sisi elemen (top, right,
bottom, dan left).
CSS memiliki properti untuk menentukan margin untuk setiap sisi elemen:
▪ margin-top
▪ margin-right
▪ margin-bottom
▪ margin-left
▪ margin
Semua properti margin dapat memiliki nilai sebagai berikut:
- auto 🡪 browser menghitung margin
- length 🡪 menentukan margin dalam px, pt, cm, dll.
- % 🡪 menentukan margin dalam % dari lebar elemen yang mengandung
- inherit 🡪 menentukan bahwa margin harus diwarisi dari elemen induk
Contoh
p {
margin-top: 100px;
margin-bottom: 100px;
margin-right: 150px;
margin-left: 80px;
}
- Paddings
Jika margin diperuntukan untuk menentukan batas luar pada elemen, berbeda
dengan padding. Padding diperuntukan untuk menentukan batas dalam pada
element.
Properti padding CSS digunakan untuk menghasilkan ruang di sekitar konten
elemen, di dalam batas yang ditentukan. Dengan CSS, memiliki kontrol penuh
36
atas padding. Ada properti untuk mengatur padding untuk setiap sisi elemen
(atas, kanan, bawah, dan kiri):
▪ padding-top
▪ padding-right
▪ padding-bottom
▪ padding-left
▪ padding
Semua properti margin dapat memiliki nilai sebagai berikut:
- length 🡪 menentukan margin dalam px, pt, cm, dll.
- % 🡪 menentukan margin dalam % dari lebar elemen yang mengandung
- inherit 🡪 menentukan bahwa margin harus diwarisi dari elemen induk
Contoh:
div {
padding-top: 50px;
padding-right: 30px;
padding-bottom: 50px;
padding-left: 80px;
}
.card {
padding: 25px 50px 75px 100px;
}
7. Text
- Text alignment
Properti text-align digunakan untuk mengatur perataan horizontal teks.
Sebuah teks dapat diratakan kiri atau kanan, di tengah, atau diratakan.
Contoh berikut menunjukkan rata tengah, dan teks rata kiri dan kanan
37
(perataan kiri adalah default jika arah teks dari kiri ke kanan, dan perataan
kanan adalah default jika arah teks dari kanan ke kiri):
h1 {text-align: center; }
h2 {text-align: left; }
h3 {text-align: right;}
p {text-align: justify;}
- Text Decoration
Properti text-decoration digunakan untuk mengatur atau menghapus
dekorasi dari teks. Nilai text-decoration: none; sering digunakan untuk
menghapus garis bawah dari tautan:
a {text-decoration: none;}
Contoh:
h2 {text-decoration: overline;}
h3 {text-decoration: line-through;}
h4 {text-decoration: underline;}
- Text Transformation
Properti text-transform digunakan untuk menentukan huruf besar dan huruf
kecil dalam sebuah teks. Ini dapat digunakan untuk mengubah semuanya
menjadi huruf besar atau kecil, atau menggunakan huruf besar untuk huruf
pertama setiap kata:
.title {text-transform: uppercase;}
span {text-transform: lowercase;}
p {text-transform: capitalize;}
- Text Spacing
Text spacing merupakan properti yang diperuntukan untuk memberikan
jarak tertentu pada suatu text word. Berikut ini ada beberapa properti yang
dapat digunakan untuk menentukan text spacing:
p {text-indent: 50px;}
h1 {letter-spacing: 5px;}
h2 {letter-spacing: -2px;}
p {white-space: nowrap;}
- Text Shadow
Property text-shadow menambahkan bayangan ke teks. Dalam
penggunaannya yang paling sederhana, Anda hanya menentukan bayangan
38
horizontal (2px), bayangan vertikal (2px), efek blur (5px) dan warna red
untuk bayangannya:
h1 {text-shadow: 2px 2px 5px red; }
8. Font
Memilih font yang tepat memiliki dampak besar pada bagaimana pembaca
mengalami situs web. Font yang tepat dapat menciptakan identitas yang kuat
untuk merek Anda. Menggunakan font yang mudah dibaca adalah penting. Font
menambah nilai pada teks Anda. Penting juga untuk memilih warna dan ukuran
teks yang benar untuk font.
Property Description
Contoh
.p1 {
font-family: "Times New Roman", Times, serif;
font-size: 40px;
}
.normal {
font-style: normal;
font-variant: normal;
font-weight: normal;
font-style: normal;
9. List
39
Dalam HTML, ada dua jenis daftar utama:
- List unordered (<ul>) 🡪 item daftar ditandai dengan peluru atau bulat
- List ordered (<ol>) 🡪 item daftar ditandai dengan angka atau huruf
10. Display
Properti display menentukan perilaku tampilan (tipe kotak rendering) dari suatu
elemen. Dalam HTML, nilai properti display default value diambil dari
spesifikasi HTML atau dari style css default browser/pengguna. Nilai default
dalam XML adalah inline, termasuk elemen SVG.
p.ex1 {display: none;}
p.ex2 {display: inline;}
p.ex3 {display: block;}
p.ex4 {display: inline-block;}
11. Float
Properti float digunakan untuk memposisikan dan memformat konten,
misalkan. biarkan gambar melayang ke kiri ke teks dalam wadah. Properti float
dapat memiliki salah satu dari nilai berikut:
- left 🡪Elemen mengapung di sebelah kiri wadahnya
- right 🡪 Elemen mengapung di sebelah kanan wadahnya
- none 🡪 Elemen tidak mengapung (akan ditampilkan tepat di tempat
kemunculannya dalam teks). Ini adalah default
- inherit 🡪 Elemen mewarisi nilai float dari induknya
Dalam penggunaannya yang paling sederhana, properti float dapat digunakan
untuk membungkus teks di sekitar gambar.
img {float: right;}
40
Mengenal Partikel dan Notasi Atom
Nama anda, 20 Feb 2022 – 08:55 am
Perhatikan sekeliling kalian, matahari terbit dari timur di pagi hari, bulan muncul pada
malam hari, bumi mengelilingi matahari dalam dua belas bulan, dan banyak lagi keteraturan
di alam semesta ini. Hebat ya Sang Pencipta kita mengatur alam semesta ini dengan rapi.
Bahkan, sampai tingkat paling kecil pun, elektron-elektron di alam semesta ini telah diatur
dengan rapi menurut bilangan kuantumnya! Wow apa tuh bilangan kuantum?
Salah satu contoh atom di alam semesta ini adalah atom karbon. Atom karbon adalah
penyusun dari berbagai benda yang sangat berguna. Mulai dari bensin, plastik, berlian,
bahkan tubuh kita pun tersusun dari karbon! Nah, karbon (biasa dilambangkan dengan
huruf C) punya 6 elektron. Bagaimana bilangan kuantum dari elektron terakhirnya? Tinggal
ikuti deh langkah-langkahnya.
Partikel dasar penyusun atom ada tiga yaitu proton (p), neutron (n) dan elektron (e). Jadi,
massa atom = (massa p + massa n) + massa e. Massa elektron jauh lebih kecil
41
daripada massa proton dan massa neutron, maka massa elektron dapat diabaikan.
Dengan demikian: massa atom = massa p + massa n.
Muatan
Partikel Lambang Massa(g)
Satuan Coulomb
Lambang Atom
2. Buatlah file dokumen HTML bernama Latihan-2, ubahlah contoh dibawah ini kedalam
scripting HTML dan menggunakan CSS sebagai variasi style pada elemen HTML:
42
Orang Utan Kera Emas Burung Cendrawasih
Orang utan dicirikan oleh rambut di Burung cenderawasih termasuk ke
Monyet yang unik ini juga dikenal
seluruh badannya yang berwarna sebagai hewan yang memiliki adaptasi dalam hewan langka dan hanya bisa
kemerahan. Satwa ini merupakan yang sangat baik dengan lingkungan ditemukan di Papua. Burung
mamalia arboreal terbesar yang yang bersuhu sangat dingin. Umumnya, cendrawasih punya tampilan yang cantik
menghabiskan hampir seluruh monyet hidung pesek rambut emas yang membuat burung ini sering
waktunya di pepohonan. Lengannya tinggal di hutan pegunungan. menjadi perburuan liar untuk
yang panjang dan kuat serta tangan dan didagangkan.
kakinya yang dapat mencengkeram erat.
43
3. Buatlah file dokumen HTML bernama Latihan-3, ubahlah contoh dibawah ini
kedalam scripting HTML dan menggunakan CSS sebagai variasi style pada elemen
HTML:
Lab Pemrograman Web
<header>
Home Profile Contact US
<nav>
“The purpose
<section> of our lives
is to be happy.”
- DALAI LAMA -
<article>
Pada storyboard diatas untuk elemen <article> terdapat dua buah artikel dimana
masing-masing artikel tersebut akan me-redirect ke halaman Latihan-1.html dan
Latihan-2.html ketika mengklik tombol view. Jika tombol view disorot maka
menampilkan background color.
4. Buatlah file dokumen HTML bernama Latihan-4, buatlah satu halaman dokumen
HTML berisi data portofolio anda dan gunakan CSS sebagai style untuk membentuk
Layout. Sambungkan halaman tersebut dengan Latihan-3 ketika mengklik tombol
Profile pada elemen <nav>
44
BAB 3
45
3.2.2 Penulisan Javascript
Kode Java Script dituliskan pada file HTML.Terdapat dua cara untuk
menuliskan kode-kode Java Script agar dapat ditampilkan pada halaman HTML, yaitu
:
<SCRIPT SRC=”namafile.js”>…</SCRIPT>
<HTML>
<HEAD>
<SCRIPT language="JavaScript">
<!--
document.write("Belajar Pemrograman Javascript!");
//-->
</SCRIPT>
</HEAD>
<BODY></BODY>
</HTML>
46
Berikut diberikan beberapa contoh program sederhana dengan menggunakan
Javascript
<HTML>
<HEAD>
</HEAD>
<BODY>
<B>Bagian Pertama ini ditulis dengan HTML!</B>
<P>
<SCRIPT language="JavaScript">
<!--
document.write("Bagian ini ditulis dengan Javascript!");
//-->
</SCRIPT>
<P>
<B>Bagian Terakhir dari dokumen HTML, ditulis setelah Script!</B>
</BODY>
</HTML>
<HTML>
<HEAD><TITLE>BElajar Javascript Yuuuuuu</TITLE>
</HEAD>
<BODY BGCOLOR="gray">
<SCRIPT language="JavaScript">
47
<!--
document.writeln("<PRE>"); document.write("<B><FONT
SIZE=5>"); document.writeln("SELAMAT DATANG DI
JAVASCRIPT");
document.write("</B></FONT>"); document.write("<I>");
document.writeln("Program ini merupakan contoh sederhana menampilkan Teks!");
document.write("</I>");
document.writeln("Dengan Javascript!!!!!!!!");
//-->
</SCRIPT>
</BODY>
</HTML>
Objek document mempunyai dua metode untuk menuliskan teks, yaitu write dan
writeln. Metode write digunakan untuk menuliskan teks tanpa ganti baris, sedangkan
metode writeln digunakan untuk menuliskan teks dengan ganti baris.
Berikut diberikan contoh Program Javascript yang diletakkan di file lain dan dipanggil
melalui suatu file HTML
File external.js
document.writeln("<CENTER>");
document.writeln("<HR WIDTH=600 COLOR=Black>");
document.writeln("<H1>INSTITUTE BISNIS DAN INFORMATIK KESATUAN BOGOR</H1>");
document.writeln("<H2>FAKULTAS INFORMATIKA DAN PARIWISATA<H2>");
document.writeln("<H3>JURUSAN TEKNOLOGI INFORMASI<H3>");
document.writeln("<HR WIDTH=600 COLOR=Black>");
document.writeln("</CENTER>");
File
HTML
<HTML>
<HEAD>
<SCRIPT language="JavaScript" SRC="./external.js"></SCRIPT>
</HEAD>
<BODY>
<B>Contoh ini menggunakan Javascript yang diambil dari File lain..</B>
</BODY>
</HTML>
48
Sama seperti bahasa pemrograman lain. Javascript juga menyediakan fasilitas
untuk menuliskan komentar, komentar ini berguna bila nantinya anda atau orang lain
membaca program. Pemberian komentar dalam Javascript dapat dilakukan dengan dua
cara yaitu dengan menuliskan komentar setelah tanda garis miring dua kali, contoh :
//ini komentar
atau
3.2.3 Variables
Variabel adalah tempat dimana kita menyimpan nilai-nilai atau informasi-
informasi pada JavaScript. Variabel yang dideklarasikan dapat diisi dengan nilai apa
saja.
Dalam JavaScript pendeklarasian sebuah variabel sifatnya opsional, artinya anda boleh
mendeklarasikan atau tidak hal tersebut tidak menjadi masalah. Jika anda memberi nilai
pada variabel, maka dalam JavaScript dianggap bahwa anda telah mendeklarasikan
variabel tersebut.
Aturan penamaan variabel :
• Harus diawali dengan karakter (huruf atau baris bawah)
• Tidak boleh menggunakan spasi
• Huruf Kapital dan kecil memiliki arti yang berbeda
• Tidak boleh menggunakan kata-kata yang merupakan perintah dalam
JavaScript.
49
Deklarasi Variabel
Var nama_variabel = nilai
Atau
Nama_variabel = nilai
Contoh :
var nama; Nama = ”Bunga Lestari”
var nama = ” Zaskia Mecca” X = 1990;
var X = 1998; Y = 08170223513 var Y;
50
Contoh : var str =’Contoh deklarasi string’;
var str1 = ”cara ini juga bisa untuk menulis string”;
3.2.9 Operator
Operator pada JavaScript terbagi menjadi enam, yaitu :
• Aritmatika
• Pemberian nilai (Assign)
• Pemanipulasian bit (bitwise)
• Pembanding
• Logika
• String
a. Operator Aritmatika
Digunakan untuk operan bertipe numerik. Ada dua macam operator aritmatik,
yaitu operator numerik tunggal dan operator aritmatik biner. Perbedaan kedua
operator terletak pada jumlah operan yang harus dioperasikan.
Operator Tunggal/Biner Keterangan
+ Biner Penjumlahan
- Biner Pengurangan
* Biner Perkalian
/ Biner Pembagian
% Biner Modulus
- Tunggal Negasi
51
++ Tunggal Penambahan dengan satu
| Bit OR
^ Bit XOR
~ Bit NOT
52
Contoh : var A = 12; // A = 1100b var B = 10; // B = 1010b var C = A &
B maka akan dihasilkan bilangan seperti berikut :
1100b
1010b AND
1000b
var A = 12; var C = A<<
2
var D = A >> 1
d. Operator Pembanding
Digunakan untuk membandingkan dua buah operand. Operan yang dikenal
operator ini dapat bertipe string, numerik, maupun ekspresi lain.
Operator Keterangan
== Sama dengan
e. Operator Logika
Digunakan untuk mengoperasikan operan yang bertipe boolean.
Operator Keterangan
|| Operator Logika OR
Contoh :
var A = true; var B = false;
var C = A && B; //menghasilkan false
53
var D = A || B ; // false
var E = !A; //false
f. Operator String
Selain operator pembanding, operator string pada JavaScript juga mengenal
satu operator lagi yang bernama PENGGABUNGAN. Operator ini digunakan
untuk menggabungkan beberapa string menjadi sebuah string yang lebih panjang.
Contoh : nama = ”Java” + ”Script”;
akan menghasilkan ”JavaScript” pada variabel nama
Contoh Program JavaScript
<HTML>
<HEAD><TITLE>Operasi Aritmatika</TITLE></HEAD>
<BODY>
<P><SCRIPT language="JavaScript">
<!--
document.writeln("<PRE>");
document.writeln("<H1>Operasi Aritmatik</H1>"); var A = "100"; var B =
"200"; var C = 300; var D = 400; var E = A + B;
document.writeln('"100" + "200" = ' + E); E =
B + C;
document.writeln('"200" + 300 = ' + E); E =
C + D;
document.writeln('300 + 400 = ' + E); document.writeln("<PRE>");
//-->
</SCRIPT></P>
</BODY>
</HTML>
54
3.2.10 Masukan Data
Untuk memasukkan data dari keyboard dapat dilakukan dengan menggunakan
perintah input.
55
Bilangan Pertama :<input type="text" size="11" name="bilangan1">
Bilangan Kedua :<input type="text" size="11" name="bilangan2">
</PRE>
<P>
<INPUT TYPE="button" value="Jumlahkan" onclick="jumlah()">
<INPUT TYPE="reset" value="Ulang">
</FORM>
</BODY>
</HTML>
- Objek Text
Untuk menginputkan data kita dapat menggunakan komponen/objek text. Contoh
penggunaannya dapat kita lihat pada contoh berikut :
56
<html>
<head><title>Latihan Dengan Objek Text</title></head>
<body>
<script language ="JavaScript">
<!--
function tekan()
{
var namastr = (document.fform.nama.value); var
alamatstr = (document.fform.alamat.value);
document.fform.onama.value = namastr;
document.fform.oalamat.value = alamatstr;
}
//-->
</script>
<form name ="fform">
<H1> Memasukkan Data Dengan Objek Teks</H1><hr>
<PRE>
Nama Anda : <input type="text" size="11" name="nama">
Alamat : <input type="text" size="25" name="alamat">
</PRE>
<BR>
<input type="button" value="kirim" onclick="tekan()">
<input type="reset" value="ulang">
<H3>Output</H3>
<PRE>
Jadi Nama Anda adalah :<input type="text" size="11" name="onama">
Alamat Anda di :<input type="text" size="25" name="oalamat">
</form>
</body>
</html>
57
- Objek Radio
Objek radio adalah komponen yang digunakan untuk melakukan suatu pemilihan data.
Karena selalu berupa Array , untuk mengakses satu tombol radio digunakan
radio[indeks]. Disamping itu objek radio juga mempunyai nilai True jika dipilih dan
False jika tidak. Untuk memilih suatu objek radio menggunakan properti Checked.
<html>
<head><title>Latihan Dengan Objek Radio</title></head>
<body>
<script language ="JavaScript">
<!--
function radio_box(form)
{ var ket =
"";
if (form.wanita.checked == true)
{
ket = "Wanita";
58
}
else
{
ket = "Pria";
}
alert('Anda adalah seorang ' +ket);
}
//-->
</script>
<form>
<H1> Memasukkan Data Dengan Objek Radio</H1><hr>
<p><input type="radio" value="wanita" name="wanita">Wanita</p>
<hr>
<p><input type="button"
value="CONFIRM"
onclick="radio_box(this.form)"> <input
type="reset" value="RESET"></p>
</form>
</body>
</html>
- Objek Checkbox
Objek checkbox menyimpan informasi tentang elemen form yang berupa kotak cek.
Penggunaannya hampir sama seperti objek radio.
<html>
<head><title>Latihan Dengan Objek Checkbox</title></head>
59
<body>
<script language ="JavaScript">
<!--
function radio_box(form)
{ var ket =
""; var ket1
="";
if (form.bola.checked == true)
{
ket = "Nonton Bola";
}
if (form.tv.checked == true)
{
ket1 = " Nonton Tv";
}
alert('Hobby anda ' +ket+''+ket1);
}
//-->
</script>
<form>
<H1> Memasukkan Data Dengan Objek Checkbox</H1><hr>
<p>Hobby anda :
<input type="checkbox" value="ON" name="bola">Nonton Sepak Bola
<input type="checkbox" value="ON" name="tv">Nonton televisi</p>
<hr>
<p><input type="button"
value="CONFIRM"
onclick="radio_box(this.form)"> <input
type="reset" value="RESET"></p>
</form>
</body>
</html>
60
- Objek TextArea
Objek textarea menyimpan informasi tentang elemen form yang berupa kotak teks
dengan banyak baris.
<html>
<head><title>Latihan Dengan Objek TextArea</title></head>
<body>
<script language ="JavaScript">
<!--
function tekan()
{
var ketstr = (document.fform.Ket.value); document.fform.Oket.value = ketstr;
}
//-->
</script>
61
<form name ="fform">
<H1> Memasukkan Data Dengan Objek TextArea</H1><hr>
<h3>Keterangan :<h3><br>
<textarea name="Ket" rows="3" cols="30"></textarea>
<BR><BR>
<input type="button" value="kirim" onclick="tekan()">
<input type="reset" value="ulang">
<H3>Output Keterangan :</H3>
<textarea name="Oket" rows="3" cols="30"></textarea>
</form>
</body>
</html>
62
- Objek Select
Objek Select menyimpan informasi tentang elemen form yang berupa kotak daftar.
Objek select berguna apabila di dalam form terdapat banyak pilihan yang telah
mempunyai nilai tertentu.
<html>
<head><title>Latihan Dengan Objek Select</title></head>
<body>
<script language ="JavaScript">
<!--
function tekan()
{
var jurusanstr = (document.fform.Jurusan.value); document.fform.Ojurusan.value
= jurusanstr;
}
//-->
</script>
<form name ="fform">
<H1> Penggunaan Objek Select</H1><hr>
<h3>Masukan :<h3>
Jurusan Di IBIK :
<select name="Jurusan" Size="1">
<option value ="Teknologi Informasi"> S1 Teknologi Informasi </option>
<option value ="Pariwisata"> S1 Pariwisata</option>
<option value ="Teknik Industri"> Teknik Industri </option>
</select>
<p><input type="button" value="kirim" onclick="tekan()">
<input type="reset" value="ulang">
<H3>Output jurusan :</H3>
<input type="text" name="Ojurusan" size="30">
</form>
</body>
</html>
63
3.3 Kontrol Program
3.3.1 Percabangan
Untuk membuat suatu halaman yang dinamis dan interaktif, perancang halaman
Web membutuhkan perintah-perintah yang dapat mengatur aliran dari informasi.
Berdasarkan hasil komputasi yang telah dilakukan, JavaScript akan membuat keputusan
jalur mana yang akan dieksekusi. Pada dasarnya dalam JavaScript terdapat dua macam
pernyataan percabangan yaitu if..else dan switch
● IF..ELSE
Pernyataan ini digunakan untuk menguji sebuah kondisi dan kemudian
mengeksekusi pernyataan tertentu bila kondisi tersebut terpenuhi, dan
mengeksekusi pernyataan lain bila kondisi tersebut tidak terpenuhi.
if (kondisi) {
//pernyataan 1 dieksekusi
//bila kondisi terpenuhi
} else {
//pernyataan2 dieksekusi
64
//bila kondisi tidak terpenuhi
}
kondisi adalah ekspresi JavaScript yang mana hasil evaluasinya memiliki nilai
Boolean true atau false
Untuk kasus yang melibatkan lebih banyak kondisi, maka kita dapat meletakkan
pernyataan if lain setelah else
if (kondisi1) {
//pernyataan 1 dieksekusi
//bila kondisi1 terpenuhi
} else if (kondisi2) {
//pernyataan2 dieksekusi
//bila kodisi1 tidak terpenuhi
} else {
//pernyataan3 dieksekusi
//bila kodisi2 tidak terpenuhi
}
Contoh program
<HTML>
<HEAD><TITLE>Percabangan IF-ELSE</TITLE></HEAD>
<BODY>
<SCRIPT language="JavaScript">
<!--
function tanyabilangan(){
var bil = parseFloat(document.fform.bilangan.value);
var jenis = " ";
if(isNaN(bil)) {
alert("Anda Belum memasukkan Bilangan");
} else {
if (bil > 0) {
jenis = " Adalah bilangan Positif";
65
}else if (bil < 0) {
jenis = " Adalah bilangan Negatif";
}else{
jenis = " Adalah Nol";
}
alert (bil+" "+jenis);
}
}
//--></SCRIPT>
<FORM NAME ="fform">
<H2><BR>Bilangan Negatif, Nol, Atau Positif ???</H2>
Masukkan Bilangan :<input type="text" size="11" name="bilangan"> <P>
<INPUT TYPE="button" value="Tanya" onclick="tanyabilangan()">
<INPUT TYPE="reset" value="Ulang"> </p>
</FORM>
</BODY>
</HTML>
66
● IF.. ELSE IF.. ELSE
Percabangan majemuk adalah suatu percabangan yang dapat melibatkan lebih dari
1 kondisi di dalam percabangannya. Biasanya percabangan seperti ini menggunakan
operator tambahan seperti AND, OR dan sebagainya.
<HTML>
<HEAD><TITLE>Percabangan IF-ELSE 3</TITLE></HEAD>
<BODY>
<SCRIPT language="JavaScript">
<!--
function hitungip(){
var quis = parseFloat(document.fform.iquis.value);
var tugas = parseFloat(document.fform.itugas.value);
var uts = parseFloat(document.fform.iuts.value);
var uas = parseFloat(document.fform.iuas.value);
var ip =" "; var ket=" ";
var na = (0.10*quis)+(0.20*tugas)+(0.30*uts)+(0.40*uas);
67
ip ="D";
ket="Lulus dengan Kurang";
} else {
ip ="E"; ket="Tidak Lulus";
}
document.fform.oip.value=ip; document.fform.oket.value=ket;
// gunakan untuk mengecek alert (ip+""+na);
}
//-->
</SCRIPT>
<FORM NAME ="fform">
<table border="1" width="100%" ALIGN="center" >
<tr>
<td width="100%" colspan="4"><H2 ALIGN="center">Menghitung Indeks
Prestasi</H2></td>
</tr>
<tr>
<td width="25%">Quis (10%) :<input type="text" size="10" name="iquis">
</td>
<td width="25%">Tugas (20%):<input type="text" size="10"
name="itugas"> </td>
<td width="25%">UTS (30%):<input type="text" size="10" name="iuts">
</td>
<td width="25%">UAS (40%) :<input type="text" size="10" name="iuas">
</td>
</tr>
<tr>
<td width="100%" colspan="4"><P Align="center">
<INPUT TYPE="button" value="Hitung" onclick="hitungip()">
<INPUT TYPE="reset" value="Ulang"> </p></td>
</tr>
<tr>
68
<td width="100%" colspan="4" align="center">
Indeks Prestasi :<input type="text" size="5" name="oip">
Keterangan :<input type="text" size="25" name="oket"></td>
</tr>
</table>
</FORM>
</BODY>
</HTML>
● SWITCH
Selain menggunakan if..else, percabangan juga dapat ditangani dengan perintah
switch. Dengan kata lain pernyataan switch digunakan untuk menyederhanakan
pernyataan if..else yang terlalu banyak.
<HTML>
<HEAD><TITLE>Percabangan Switch</TITLE></HEAD>
<BODY>
<SCRIPT language="JavaScript">
<!--
function tanyabulan(){
var bulan = parseFloat(document.fform.ibulan.value);
var namabulan=" ";
switch (bulan) {
case 1 : namabulan="Bulan ke 1 adalah = Januari";break;
case 2 : namabulan="Bulan ke 2 adalah = Februari";break;
69
case 3 : namabulan="Bulan ke 3 adalah = Maret";break;
case 4 : namabulan="Bulan ke 4 adalah = April";break;
case 5 : namabulan="Bulan ke 5 adalah = Mei";break;
case 6 : namabulan="Bulan ke 6 adalah = Juni";break;
case 7 : namabulan="Bulan ke 7 adalah = Juli";break;
case 8 : namabulan="Bulan ke 8 adalah = Agustus";break;
case 9 : namabulan="Bulan ke 9 adalah = September";break;
case 10 : namabulan="Bulan ke 10 adalah = Oktober";break;
case 11 : namabulan="Bulan ke 11 adalah = November";break;
case 12 : namabulan="Bulan ke 12 adalah = Desember";break;
default : namabulan="Anda salah mengisi";
}
alert(namabulan);
}
//--></SCRIPT>
<FORM NAME ="fform">
<H2>Penggunaan Percabangan Switch</H2><HR>
<PRE>
Masukkan Nomor Bulan [1-12] :<input type="text" size="2" name="ibulan">
<INPUT TYPE="button" value="Hitung" onclick="tanyabulan()"><INPUT
TYPE="reset" value="Ulang">
</PRE>
</FORM>
</BODY>
</HTML>
70
3.3.2 Perulangan
● Perulangan While
Perulangan lain yang dapat digunakan adalah dengan menggunakan perintah While.
Perintah while digunakan untuk perulangan yang tidak diketahui berapa kali proses
perulangannya. Perintah while terus mengulangi loop selama kondisi memiliki nilai
true. Syntax untuk perintah while adalah sebagai berikut :
while (kondisi){ ulang pernyataan ini; }
Contoh Program
<HTML>
<HEAD><TITLE>Latihan Perulangan II</TITLE></HEAD>
<SCRIPT LANGUAGE="JavaScript">
var deret = prompt('Masukkan Jumlah Deret :','');
document.writeln("<H2>Latihan Perulangan While</H2>");
document.writeln("------------------------------------------------");
document.writeln("<BR>");
var jml = 0.0; var angka = 1;
while (angka <= deret) {
jml= jml+angka;
angka++
71
}
document.writeln("<BR>");
document.writeln("Jumlah Deret dari 1 sampai "+deret+" adalah = “+jml);
document.writeln("<BR>");
document.writeln("------------------------------------------------");
</SCRIPT>
</HEAD>
<BODY>
</BODY>
</HTML>
72
● Perulangan Do While
Perulangan ini hampir sama seperti while, digunakan apabila kita belum tahu berapa
kali perulangan harus dilakukan. Bedanya pernyataan do..while pengujiannya
dilakukan di akhir pernyataan.
do{
//pernyataan1 dieksekusi
}while (kondisi);
Contoh Program
<HTML>
<HEAD><TITLE>Latihan Perulangan III(Do-While)</TITLE></HEAD>
<BODY>
<SCRIPT LANGUAGE="JavaScript">
function pass(){
var coba = 1;
do {
p = prompt("Tuliskan password dengan benar","");
if (p=="IBIKJAYA"){
alert("Selamat Datang Friends");
window.open("Latiahn-1.html");
break;
} else {
alert("Password Salah !!! Ulangi lagi.");
} if
(coba==3)
{
alert("maaf, kesempatan anda hanya 3 kali"); history.go(-1);
}
coba=coba+
1;
} while
(coba<=3);
}
</SCRIPT>
73
<FORM METHOD="post">
<INPUT TYPE="button" VALUE="Password" ONCLICK="pass()">
</FORM>
</BODY>
</HTML>
Adapun hasil yang diperoleh adalah sebagai berikut :
1. Tampilan awal
2. Prompt password
74
3.4 Latihan Pembelajaran
1. Buatlah halaman seperti berikut, yang mencakup semua materi yang terdapat pada
buku ini.
- Input berupa : NIM, NAMA, JENIS KELAMIN, AGAMA, STATUS,
JURUSAN, KOMENTAR. (SESUAIKAN OBJEK YANG DIPAKAI)
- Proses terjadi di tombol KIRIM
- Output berupa isian yang sama dengan soal nomor 1.
- Tugas individu, dikumpulkan minggu ke 5, dalam bentuk print out KODE
HTMLnya serta Tampilannya
2. Buatlah sebuah halaman form inputan, yang mencakup semua materi yang terdapat
pada buku ini.
Perusahaan Travel IBIK Abadi memiliki armada dengan tujuan Jakarta, Solo dan Surabaya.
Setiap tujuan memiliki kelas Eksekutif, Bisnis dan Ekonomi.
Eksekutif Bisnis Ekonomi
Diskon 10% diberikan apabila pemesan tiket merupakan anggota Travel Bintang Abadi.
Input : Nama Pemesan, Tujuan, Kelas, Banyak Tiket dan Status Member/Bukan
Output : Harga Tiket, Subtotal, Diskon dan Total Bayar
4. Buat program untuk menghitung saldo akhir dari suatu tabungan dengan bunga dan
jangka waktu tertentu :
Input :
Saldo : 100000
Bunga : 10
Waktu : 3
75
Ketika user menekan tombol Hitung maka akan muncul hasil seperti berikut :
Saldo Bulan 1 = Rp. 110000
Saldo Bulan 2 = Rp. 121000
Saldo Bulan 3 = Rp. 133100
76
BAB 4
JAVASCRIPT 2
77
document.write(nama[2]); nilai[0]="A"; nilai[1]="B";
nilai[2]="C";
}
for (a=0;a<3;++a) {
</SCRIPT>
document.writeln("<B>Nilai
<SCRIPT
ke "+ [a+1] +
LANGUAGE="JavaScript">
" : "+nilai[a]+"<BR>");
cobaarray();
}
</SCRIPT>
</SCRIPT>
</BODY>
<SCRIPT
</HTML>
LANGUAGE="JavaScript">
</SCRIPT>
</BODY>
</HTML>
78
Contoh Program
<HTML>
<HEAD>
<TITLE> LAtihan Objek Date</TITLE>
<BODY>
<h3 align="center">Latihan Objek Date/Tanggal</H3>
<SCRIPT LANGUAGE="JavaScript">
var hari = new
Array("Senin","Selasa","Rabu","Kamis","Jumat","Sabtu","Minggu");
var bulan = new Array("Januari","Februari","Maret","April",
"Mei","Juni","Juli","Agustus",
"September","Oktober","November","Desember");
var t = new Date();
var hari_ini=hari[t.getDay()-1];
var tanggal=t.getDate();
var bulan_ini=bulan[t.getMonth()];
var tahun=t.getYear();
var jam =t.getHours();
var menit =t.getMinutes();
var detik =t.getSeconds();
document.write("<font size=5 face=arial>");
document.write("<b><center>Sekarang adalah hari :"+hari_ini+",tanggal: "+
tanggal +" "+ bulan_ini +" " +tahun);
document.write("<hr width=700>"); document.write("</font>");
document.write("<font size=3 face=arial>");
document.write("<b><center>Jam sekarang = "+ jam +":"+menit+":"+detik);
document.write("</font>");
</SCRIPT>
<SCRIPT LANGUAGE="JavaScript">
</SCRIPT>
</BODY>
</HTML>
79
4.2.3. Object Math
Math digunakan untuk menangani perhitungan matematis yang rumit. Bentuk
penulisan:
Math.metode(nilai)
Metode Untuk Objek Math
Metode Keterangan
80
tan(a) Nilai tangen dari a
Contoh Program
<HTML>
<HEAD>
<TITLE> LAtihan Objek Math></TITLE>
<BODY>
<h3>Latihan Dengan Objek Math</h3>
<SCRIPT LANGUAGE="JavaScript">
var a=10; var b=5; besar=Math.max(a,b);
document.write("antara " + a + " dan "+ b +" lebih besar "+besar+"<br>");
pangkat=Math.pow(b,a);
document.write(b+ " pangkat "+ a +" adalah "+pangkat+"<br>");
var ran;
ran = Math.round(Math.random()*50000);
document.write("Anda adalah pengunjung yang ke " + ran + ".<br>");
var akar; akar =Math.sqrt(ran);
document.write ("Akar dari " + ran + " adalah "+akar);
</SCRIPT>
</BODY>
</HTML>
81
4.2.4. Object String
String adalah suatu objek yang merupakan kumpulan dari elemen karakter-
karakter. Dalam Javascript string atau karakter harus diapit dengan tanda petik ganda(“)
atau tanda petik tunggal(‘).
Contoh pendeklarasian Objek String :
Nama = “Shafana Vevica”
Panjang = Nama,length; // Panjang akan berisi 14
Length adalah properti yang sering digunakan dalam objek string yang
digunakan Untuk mengetahui banyaknya karakter dalam suatu string.
Objek String juga memiliki method yang dapat digunakan untuk memanipulasi string
tersebut. Adapun Method yang dapat digunakan meliputi :
Method Fungsi
82
split(‘’) Menjadikan string diuraikan/dipisahkan
berdasarkan tanda (‘’). Hasil dari split akan
dihasilkan sebuah array dengan indeks 0
untuk string ke 1 dan seterusnya.
Contoh Program
<HTML>
<BODY>
<H3>Latihan Objek String</H3>
<SCRIPT LANGUAGE="Javascript"> nama ="Shafana Vevica";
panjang=nama.length; n=nama.substring(1,4);
besar=nama.toUpperCase();
namakulink=nama.link('shafa.html');
document.writeln('Namaku adalah = '+ nama +'<BR>');
document.writeln('Panjang namaku adalah '+ panjang + ' karakter <BR>');
document.writeln('method BIG = '+ nama.big() +'<BR>');
document.writeln('method SMALL = '+ nama.small() +'<BR>');
document.writeln('method SUB = '+ nama.sub() +'<BR>');
document.writeln('method SUP = '+ nama.sup() +'<BR>');
document.writeln('method BOLD = '+ nama.bold() +'<BR>');
document.writeln('method ITALIC = '+ nama.italics() +'<BR>');
document.writeln('method FONTCOLOR = '+ nama.fontcolor('red')
+'<BR>');
document.writeln('method LOWERCASE = '+nama.toLowerCase()
+'<BR>');
document.writeln('method UPPERCASE = '+ besar +'<BR>');
document.writeln('method SUBSTRING = '+ n +'<BR>');
document.writeln('method STRIKE = '+ nama.strike() +'<BR>');
document.writeln('method CharAT = '+ nama.charAt(3) +'<BR>');
document.writeln('method Link = '+ namakulink +'<BR>');
83
document.writeln('Index Huruf c = '+ nama.indexOf("c") +'<BR>');
awal=nama.indexOf('V'); akhir=nama.length;
document.writeln('Kata Yang Tersisa = '+ nama.substring(awal,akhir)
+'<BR>');
</SCRIPT>
</BODY>
</HTML>
84
fgColor Memberikan warna foreground atau warna
huruf
Khusus untuk output ke browser ada beberapa hal yang perlu diperhatikan :
• Diisi dengan string(“) atau (‘)
• Dapat diberikan tag HTML
• Dapat digunakan untuk menampilkan isi dari variable
• Terdapat karakter spesial :
\b = untuk backspace
\f = untuk form feed \n = untuk
baris baru
\r = untuk carriage return
\t = untuk tab
85
Contoh Program
<HTML>
<BODY>
<H3>Latihan Objek Document</H3><hr>
Dengan perintah ini maka teks dalam dokumen ini akan berwarna
putih<BR>
<SCRIPT LANGUAGE="Javascript">
nama="Febry D F";
document.bgColor="orange";
document.fgColor="white";
document.title="Belajar objek Document";
document.linkColor="red";
document.vlinkColor="green";
document.alinkColor="white";
namakulink=nama.link('https://www.linkedin.com/in/febri-d-2b9537b1/');
document.writeln('Warna Link = '+ namakulink +'<BR>');
</SCRIPT>
</BODY>
</HTML>
86
4.2.5. Object Window
Objek window merupakan objek tertinggi dalam objek Javascript. Objek ini
digunakan untuk memanipulasi tampilan jendela dari document HTML.
Properti pada Objek window
Property Fungsi
Contoh Program
<HTML>
87
<BODY>
<H3>Latihan Objek
Window</H3><hr>
<SCRIPT LANGUAGE="Javascript">
window.status="Welcome";
window.alert=("Selamat Datang");
angka=window.prompt("Inputkan
Angka ?",0);
document.write("Angka favorit anda adalah =<strong>" +angka+
"</strong><br>");
tampung=window.confirm("jenis kelamin anda Pria
?"); if(tampung) {
document.write("Boleh Kenalan donk");
}
e
l
s
e
{
document.write("Ok dech");
}
window.close();
</SCRIPT>
</BODY>
</HTML>
88
Membuka Web Page dengan Perintah Window.Open dan
Window.Location
</CENTER>
<SCRIPT
LANGUAGE="Javascript">
function konek1()
{
window.open("utsb.HTML");
}
function konek2()
{
window.location="kunci_jawaban UTS.HTML";
}
</SCRIPT>
<FORM METHOD="post">
<P><CENTER>
<INPUT TYPE="button" VALUE="Kunci Jawaban UTS A"
ONCLICK="konek1()">
<INPUT TYPE="button" VALUE="Kunci Jawaban UTS B"
ONCLICK="konek2()">
</FORM></CENTER>
</BODY>
</HTML>
89
<CENTER><H3>Latihan Objek Document</H3><hr>
Membuka Web Page dengan Perintah Window.Location.href
</CENTER>
<SCRIPT LANGUAGE="Javascript">
function konek1()
{
if(document.pilihan.pilih.options[0].selected)
{
window.location.href="latobjekradio.HTML";
}
else if (document.pilihan.pilih.options[1].selected)
{
window.location.href="latobjekselect.HTML";
}
else if (document.pilihan.pilih.options[2].selected)
{
window.location.href="latobjekteksarea.HTML";
} return true;
}
function konek2()
{ var pilihint; var pilihstr;
pilihint=document.pilihan.pilih.selectedIndex;
pilihstr=document.pilihan.pilih.options[pilihint].text;
document.pilihan.pilihteks.value=" Go To " + pilihstr + "!" ;
}
</SCRIPT>
<CENTER>
<FORM NAME="pilihan">
<B>MENU PILIHAN DENGAN TOMBOL</B>
90
<P><SELECT NAME="pilih" ONCHANGE="konek2()" MULTIPLE
SIZE="3">
<OPTION>Latihan Objek Radio</OPTION>
<OPTION>Latihan Objek Select</OPTION>
<OPTION>Latihan Objek Teks Area</OPTION>
</SELECT>
</P>
<P><BR>
<INPUT TYPE="button" name="pilihteks" value"" size="40"
maxlength="40">
</P>
<P>
<INPUT TYPE="button" NAME="Gobutton" VALUE="Goo!!"
ONCLICK="konek1()">
</P>
</FORM></CENTER>
</BODY>
</HTML>
91
4.3 Event Handler
Even adalah sesuatu yang terjadi pada halaman HTML. Berikut ini terdapat
beberapa bentuk kejadian yaitu jika pengguna memuat dokumen, pengguna
memasukkan data, pengguna mengklik tombol dan sebagainya. Hal-hal tersebut diatur
oleh even. Semua kejadian pada Javascript dapat anda tangani dengan menentukan
kejadiannya. Biasanya kejadian(event) adalah sebuah fungsi, tetapi pada beberapa
kasus, kita dapat menuliskan pernyataan-pernyataannya secara langsung. Berikut ini
adalah daftar kejadian(event) pada JavaScript :
Event Keterangan
92
onFocus Dibangkitkan bila sebuah elemen form menerima
focus masukan; yaitu bila pengguna mengklik
elemen form tersebut atau menekan tombol <tab>
sehingga focus masukan berpindah ke elemen ini.
93
</SCRIPT>
<h1 align="center">Latihan Event OnClick</h1>
<hr width="500" color="black" noshade>
<h3 align="center">Pilih warna favorit anda.</h3>
<CENTER>
<FORM>
<INPUT TYPE="button" VALUE="Biru" onClick="warna('lightblue')">
<INPUT TYPE="button" VALUE="Pink" onClick="warna('pink')">
<INPUT TYPE="button" VALUE="Coklat" onClick="warna('burlywood')">
<INPUT TYPE="button" VALUE="Kelabu" onClick="warna('darkgray')">
<INPUT TYPE="button" VALUE="Oranye" onClick="warna('peachpuff')">
<INPUT TYPE="button" VALUE="Putih" onClick="warna('white')">
</FORM>
<FORM>
<IMG NAME="coolfan" SRC="https://www.ibik.ac.id/wp-
content/uploads/2020/08/logo-ibik-web.png" height=72><BR><BR>
<INPUT TYPE=BUTTON VALUE=" Off " onClick="coolfan.src =
'https://www.ibik.ac.id/wp-content/uploads/2019/10/logo-ibik-web.png'">
<INPUT TYPE=BUTTON VALUE=" On " onClick="coolfan.src =
'https://www.ibik.ac.id/wp-content/uploads/2020/08/logo-ibik-web.png'">
</FORM>
</CENTER>
<hr width="500" color="black" noshade>
</BODY>
</HTML>
94
Contoh program yang menggunakan even OnBlur dan onFocus :
<HTML>
<BODY>
<SCRIPT LANGUAGE="JavaScript">
function masukannim() {
if (document.f.inim.value=="")
{
alert("anda belum memasukkan nim");
}}
function masukannama()
{
if (document.f.inama.value=="")
{
alert("anda belum memasukkan nama");
}}
function masukanalamat()
{
95
if (document.f.ialamat.value=="")
{
alert("anda belum memasukkan alamat");
} }
function terimakasih()
{
if ((document.f.inim.value!="")&&(document.f.inama.value!="")&&
(document.f.ialamat.value!=""))
{
alert("Terima Kasih Telah mengisi Data");
} else
alert("Mohon Data Dilengkapi");
}
</SCRIPT>
<h1 align="center">Latihan Event OnFocus dan OnBlur</h1>
<hr width="600" color="black" noshade size="10">
<font face="arial">
<h3 align="center">R E G I S T R A S I</h3>
<hr width="600" color="black" noshade size="2">
<CENTER>
<form name="f" method="get">
<TABLE>
<tr>
<td width="31%">NIM</td>
<td width="7%">:</td>
<td width="62%"><input type="text" name="inim" size="9"
onFocus="window.status='Silahkan Mengisi NIM Anda';"
onBlur="masukannim()"></td>
</tr>
<tr>
<td width="31%">NAMA</td>
<td width="7%">:</td>
<td width="62%"><input type="text" name="inama" size="23"
onFocus="window.status='Silahkan Mengisi Nama Anda';"
onBlur="masukannama()"></td>
</tr>
<tr>
<td width="31%">ALAMAT</td>
<td width="7%">:</td>
96
<td width="62%"><input type="text" name="ialamat" size="34"
onFocus="window.status='Silahkan Mengisi Alamat Anda';"
onBlur="masukanalamat()"></td>
</tr>
</table>
<hr width="600" color="black" noshade size="2">
<p><input type="BUTTON" value="Kirim" Onclick="terimakasih()">
<input type="reset" value="Reset"></p>
</form>
</center>
</BODY>
</HTML>
97
var d = d.getDate();
var t = d + '/' + m + '/' + y + ' ';
defaultStatus = "Anda datang pada tanggal " + t + ".";
alert("Selamat Datang Teman \n Silahkan Masuk Ke Websiteku");
}
function timer() {
var d = new Date();
var jam = d.getHours();
var menit = d.getMinutes();
var detik = d.getSeconds();
var strwaktu = (jam<10)?"0"+jam:jam;
strwaktu +=(menit<10)?"0"+menit:" : "+menit;
strwaktu +=(detik<10)?"0"+detik:" : "+detik;
document.f.txtwaktu.value=" "+strwaktu;
setTimeout("timer()",200);
}
function tutup(){
window.alert("Terimakasih Telah Berkunjung\nJangan lupa Datang kembali
Ya..");
}
// end hiding -->
</SCRIPT>
<h1 align="center">Latihan Event OnLoad dan OnUnLoad</h1>
<hr width="600" color="black" noshade size="10">
<font face="arial">
<h3 align="center">SELAMAT DATANG</h3>
<CENTER>
<form name="f">
98
<h4 align="center">Sekarang Menunjukkan Jam</h4>
<input type="Text" size="16" name="txtwaktu">
<hr width="600" color="black" noshade size="2">
</form>
<SCRIPT LANGUAGE="JavaScript">timer()</SCRIPT>
</center>
</BODY>
</HTML>
99
<BODY bgcolor="lightblue">
<SCRIPT LANGUAGE="JavaScript">
function g1(){
document.f.imgLogo.src="https://www.ibik.ac.id/wp-
content/uploads/2020/08/logo-ibik-web.png"
}
function g2(){
document.f.imgLogo.src="https://www.ibik.ac.id/wp-
content/uploads/2019/10/logo-ibik-web.png"
}
</SCRIPT>
<h1 align="center">Latihan Event OnMouseOver dan OnMouseOut</h1>
<hr width="600" color="black" noshade size="10">
<font face="arial">
<h3 align="center">SELAMAT DATANG</h3>
<CENTER>
<form name="f">
<Img Name="logo" height="72" src="https://www.ibik.ac.id/wp-
content/uploads/2020/08/logo-ibik-web.png"
onmouseover="document.logo.src='https://www.ibik.ac.id/wp-
content/uploads/2019/10/logo-ibik-web.png';window.status='Ibik 1'"
onmouseout="document.logo.src='https://www.ibik.ac.id/wp-
content/uploads/2020/08/logo-ibik-web.png';window.status='Ibik 2'">
<h4 align="center">Kalo Kepanasan Tunjuk Kipas Angin Saja</h4>
<A HREF="latevenonclick.html" onMouseOver="g1()" onMouseOut="g2()">
<IMAGE NAME="imgLogo" SRC="https://www.ibik.ac.id/wp-
content/uploads/2020/08/logo-ibik-web.png" HEIGHT=72 BORDER=0>
</A>
<p>
Contoh Link Dengan Even
</p>
100
<A HREF="http://www.google.com" onMouseOver="document.bgColor='#ffcc00';
onMouseOver=window.status='Ke Website Google.Com'; return
true">Google.Com</A><BR>
<A HREF="https://www.ibik.ac.id/s1-teknologi-informasi/"
onMouseOver="window.status='Oh, jangan deket-deket..';
return true" onMouseOut="alert('Nah gitu dong'); return true">Teknologi Informasi
IBIK </A>
<hr width="600" color="black" noshade size="2">
</form>
</center>
</BODY>
</HTML>
101
<SCRIPT LANGUAGE="JavaScript">
function cari() {
var kata = document.formcari.keyword.value; var hasil =
"http://www.google.com/search?q=" + kata ; window.open(hasil,
'google', config='height=500,width=750 scrollbars=yes
location=yes')
}
</SCRIPT>
<FORM NAME="formcari" onSubmit="cari()">
<center>
<table>
<tr>
<td colspan="4" bgcolor="orange"><h1 align="center">S e a r c h -
E n g i n e</h1><hr color="black" size="4" ></td>
</tr>
<tr>
<td><b>Cari pakai</b></td>
<td><img src="logoogle.gif"></td>
<td><INPUT NAME="keyword" SIZE="40" TYPE="text"></td>
<td><INPUT TYPE="submit" VALUE="Cari .. !!"><input type="reset"
Value="Ulang"></td>
</tr>
<tr>
<td colspan="4" bgcolor="orange"><hr color="black" size="4"
></td>
</tr>
</table>
</center>
</FORM>
</body>
102
</html>
Berikut diberikan contoh event submit yang terjadi pada form pengisian data
guestbook yang hasilnya akan dikirim ke suatu email.
<Html>
<Body>
<SCRIPT LANGUAGE="JavaScript">
function isiform(form) {
isinama(form);
isiemail(form);
isikomentar(form);
kosongkan(form);
}
function kosongkan(form){
if((isinama(form) && isiemail(form) && isikomentar(form)))
{
form.submit;
}
if((isinama(form)== false || isiemail(form)== false || isikomentar(form)== false))
{
salahisi(form);
}}
function salahisi(form)
{
var teks ="Ada Kesalahan Isian :"; if (isinama(form)== false) {teks +="\nNama
Anda";} if (isiemail(form)==false) {teks +="\nEmail Anda";} if
(isikomentar(form)==false) {teks +="\nKomentar Anda";} alert(teks);
}
function isinama(form)
{
103
if (form.nama.value=="") {return false;} else {return true;}
}
function isiemail(form)
{
if((form.email.value=="" || form.email.value.indexOf('@',0)==-1) ||
form.email.value.indexOf('.')==-1)
{return false;} else {return true;}
}
function isikomentar(form)
{
if(form.cs.value=="") {return false;} else
{return true;}
}
</script>
<form name="form-guest" method="post"
action="mailto:[email protected]?subject=FormJS">
<font face="Arial">
<table align="center">
<tr bgcolor="gray">
<td colspan="2" align="center"><h1>G u e s t B o o k</h1></td>
</tr>
<tr bgcolor="peachpuff">
<td>Nama Anda :</td>
<td><input type="text" value="" name="nama" size="30"</td>
</tr>
<tr bgcolor="peachpuff">
<td>Email Anda :</td>
<td><input type="text" value="" name="email" size="30"</td>
</tr>
<tr bgcolor="peachpuff">
<td>Komentar Anda :</td>
<td><textarea name="cs" rows="5" cols="50"></textarea></td>
</tr>
<tr bgcolor="orange">
<td colspan="2" align="center">
<input type="button" name="thesubmit" value="kirim"
onClick="isiform(this.form)">
<input type="reset" value="hapus">
</td>
104
</tr>
<tr bgcolor="gray">
<td colspan="2" align="center"><b>Terima Kasih Telah Mengisi
Guest Book</b> </td>
</tr>
</table>
</font>
</form>
</body>
</html>
Untuk memuat suatu image, pada Javascript terdapat objek Image. Untuk
membuat objek tersebut pendeklarasiannya adalah sebagai berikut :
img1 = new Image ()
img1.src = "pic1.gif"
Artinya membuat objek image dengan isinya adalah image pic1.gif berikut akan
diberikan contoh mengenai objek image :
Contoh Program
<HTML>
<BODY>
<SCRIPT LANGUAGE="JavaScript">
105
var num=1 ;
img1 = new Image();
img1.src = "pic1.gif";
img2 = new Image();
img2.src = "pic2.gif";
img3 = new Image();
img3.src = "pic3.gif";
img4 = new Image();
img4.src = "pic4.gif";
img5 = new Image();
img5.src = "pic5.gif";
img6 = new Image();
img6.src = "pic6.gif";
function slideshow(x){
num=num+x;
if (num==7) {
num=1
}
if (num==0) {
num=6
}
document.mypic.src=eval("img"+num+".src")
}
</SCRIPT>
<CENTER>
<IMG SRC="pic1.gif" NAME="mypic" BORDER=0 height="200"
width="150"><p>
<A HREF="JavaScript:slideshow(-1)">Previous</A>
<A HREF="JavaScript:slideshow(1)">Next</A>
</CENTER>
</BODY>
</HTML>
106
Contoh Program selanjutnya
<html>
<head>
<script language="javascript">
var image1=new Image();
image1.src="1.gif";
var image2=new Image();
image2.src="2.gif";
var image3=new Image();
image3.src="3.gif"
</script>
</head>
<body>
<center>
<h2>Penggunaan Objek Image Untuk Membuat SlideShow</H2><hr size=5
color="black">
<img src="1.gif" name="slide" width="100" height="100">
<script>
function slideit(){
document.images.slide.src=eval("image"+step+".src");
107
if (step<3) step++ else step=1 ;
}
slideit();
</script>
<hr size=5 color="black">
</body>
</html>
1. Buatlah program dengan javascript untuk memunculkan alert Selamat Pagi, Selamat
Siang dan Selamat Malam. Sesuai dengan waktu yang tertera di komputer !!!!!
108
BAB 5
MONOLITH – LARAVEL
5.2.2 Laravel
Laravel adalah kerangka kerja aplikasi web PHP sumber terbuka yang didesain
untuk memudahkan proses pengembangan aplikasi web yang elegan dan ekspresif.
Laravel menyediakan seperangkat alat dan fitur yang memudahkan para pengembang
109
untuk membangun aplikasi web dengan pola arsitektur Model-View-Controller (MVC)
yang terstruktur, mudah diubah, dan memiliki performa yang tinggi.
Laravel menyediakan berbagai fitur yang mempermudah pengembangan
aplikasi web, seperti sistem routing yang fleksibel, sistem template tampilan yang
efisien (blade templating engine), sistem migrasi basis data, sistem kueri basis data
yang ekspresif (Eloquent ORM), sistem autentikasi dan otorisasi yang mudah
digunakan, dan banyak lagi.
Selain itu, Laravel juga memiliki kemampuan untuk terintegrasi dengan
berbagai layanan dan sistem lainnya, seperti sistem cache, sistem email, sistem queue,
dan banyak lagi. Dengan dukungan dari komunitas pengembang yang besar dan aktif,
Laravel terus berkembang dan menjadi salah satu kerangka kerja aplikasi web PHP
yang paling populer dan banyak digunakan saat ini.
XAMPP
Agar lebih mudah, gunakan software All-in-one Packages yang didalamnya sudah
terdapat PHP yaitu XAMPP. Download file installer melalui link berikut
https://www.apachefriends.org/download.html kemudian lakukan penginstalan seperti
biasa. Untuk mengecek versi PHP ketik syntax berikut pada terminal
Composer
Download file composer installer melalui link https://getcomposer.org/download/
kemudian install. Kemudian cek apakah sudah terinstall dengan benar dengan mengetik
syntax berikut pada terminal
110
111
Laravel Project
Setelah Anda menginstal PHP dan Composer, Anda dapat membuat proyek Laravel
baru melalui perintah create-project Composer :
Atau, dapat membuat project Laravel baru dengan menginstal Laravel secara global
melalui Composer:
Setelah project dibuat, start Laravel local development server menggunakan perintah
Servis Artisan CLI Laravel:
Routing
Routing memungkinkan pengembang Laravel untuk merutekan permintaan
aplikasi ke apt controller-nya. Ini adalah proses di mana semua permintaan diuraikan
dengan bantuan rute. Perutean Laravel dibagi menjadi tiga kategori yaitu Basic routing,
Route parameters, and Named routes..
Controller
Framework Laravel mengikuti pola arsitektur MVC di mana 'C' adalah
singkatan dari Controller yang bertanggung jawab untuk menyampaikan informasi
antara Model dan Tampilan. Jika Anda ingin membuat Controller, buka prompt perintah
pada sistem operasi yang Anda gunakan dan ketik perintah berikut: make
[Name]Controller
112
Views
Peran Views adalah untuk memisahkan logika presentasi dan logika bisnis. Ini
digunakan untuk UI aplikasi dan terdiri dari HTML yang akan disajikan oleh aplikasi.
Umumnya, file tampilan berisi informasi yang disajikan kepada pengguna. Juga, itu
bisa berupa seluruh halaman web atau bagian dari halaman seperti footer atau header.
Tampilan disimpan di direktori views/resources yang tepat.
Middleware
Middleware menjembatani gap antara permintaan dan tanggapan. Ini adalah
semacam mekanisme pemfilteran yang memverifikasi identitas pengguna aplikasi dan
memeriksa autentikasinya. Jika pengguna diautentikasi, Middleware mengarahkannya
ke beranda jika tidak, dia akan dialihkan ke halaman login. Untuk menjalankan
Middleware, kita dapat mengikuti perintah:
113
Eloquent ORM
Laravel memiliki ORM (Object-relational Mapping) yang paling kuat. Ini
adalah teknik pemrograman yang memungkinkan Implementasi Catatan Aktif PHP
yang mudah. ORM yang fasih memberdayakan pengembang Laravel untuk
meningkatkan kueri atau masalah basis data dengan sintaks PHP yang disederhanakan
menghilangkan penulisan kode yang rumit dalam kode SQL. Ini menciptakan interaksi
yang lancar bagi para pengembang dengan tabel database dengan menyediakan model
yang sesuai untuk setiap tabel.
Ini adalah konsep inti Laravel yang harus dikuasai oleh setiap developer Laravel
dalam pengembangan aplikasi web yang gesit. Laravel telah mengalahkan kerangka
kerja PHP lainnya di setiap bidang pengembangan front-end.
114
BAB 6
Ide awal dari perlunya konsep MVC adalah agar aplikasi yang dibuat bisa
mudah dikelola dan dikembangkan, terutama untuk aplikasi besar. Arsitektur MVC ini
ditawarkan oleh Bahasa pemrograman PHP sebagai pengganti bentuk Object Oriented
Programming. Karena PHP tidak dapat mengimplementasikan OOP secara baik.
115
Ini adalah contoh alur yang terjadi dalam sebuah aplikasi yang menerapkan
konsep MVC. Kita berangkat dari user yang sedang membuka sebuah web browser.
Setiap interaksi yang dilakukan user akan ditangani oleh Controller. Misalnya
ketika user mengetik alamat situs www.kis.ibik.ac.id, maka sebuah controller di server
KIS akan menangkap “request” tersebut. Atau ketika user selesai mengisi form register
dan men-klik tombol submit, file controller akan menerima sebuah proses.
Controller pada dasarnya berisi logika program. Seandainya perlu mengambil
data dari database, maka controller akan memanggil Model. Model inilah yang
bertanggung jawab mengakses database lalu mengembalikan hasilnya kembali ke
controller.
Setelah data dari model diterima kembali, controller kemudian meneruskan data
tersebut ke dalam View. Data ini kemudian diproses sebagai kode HTML dan CSS di
dalam view. Inilah yang dilihat oleh user di dalam web browser.
1. Basic Route
Berikut ini beberapa contoh penggunaan Route secara basic untuk menampilkan
sebuah text berdasarkan alamat website:
Web.php
116
Inilah kode program yang dipanggil untuk memproses alamat
http://localhost:8000. Secara sederhana, penulisan route Laravel mengikuti
format berikut:
Pertama, kita harus menulis perintah ‘Route::‘. Di dalam konsep MVC PHP,
tanda :: merupakan perintah untuk mengakses sebuah static method (atau bisa
juga static property) kepunyaan sebuah class, yang dalam contoh ini adalah
milik class Route.
117
Gambar 2.1. Lokasi directory Controller
ProfileController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
118
Selanjutnya definisikanlah 3 buah route bernama profile yang memanggil
controller ProfileController:
Setiap memanggil sebuah controller pada file route anda perlu memanggil file
tersebut. Contoh pada script diatas memanggil sebuah file bernama
ProfileController untuk ketiga buah end-point. File controller tersebut wajib
dipanggil dengan menambahkan:
use App\Http\Controllers\ProfileController;
Berikan output dari halaman ini, dan simpan sebagai bentuk Latihan soal
nomor 1.
Kode ini bisa dibaca: “Jika halaman root ‘/ ‘ diakses, tampilkan view bernama
welcome”. Di dalam Laravel, nama sebuah view mewakili nama suatu file,
artinya harus terdapat file bernama ‘welcome‘ di dalam folder instalasi Laravel.
Letak direktori penyimpanan view di dalam folder resources\views.
119
Gambar 3.1. Direktori file views laravel
<nama_file>.blade.php
Sehingga jika kita ingin membuat view baru untuk profile, maka nama filenya
adalah profile.blade.php.
Setelah membuat ketiga file view blade silakan anda isi file tersebut dengan
syntax HTML untuk menampilkan sebuah informasi secara berbeda-beda.
Pada file ProfileController, silakan anda ubah script return output pada setiap
function dengan memanggil file view blade:
120
ProfileController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
121
Setelah berhasil anda download extraklah file tersebut dan pindahkan ke dalam
project Laravel anda di folder public dan rename folder ‘bootstrap-5.3.0-
alpha2-dist’ menjadi ‘assets’. Jika anda memiliki file media lainnya seperti
gambar, video ataupun memiliki file custom CSS atau JS anda bisa
menyimpannya didalam folder assets.
Jika kita breakdown bentuk layout diatas maka didapati seperti dibawah ini:
<html>
<head>
<title>PWL - IBIK</title>
</head>
<body>
<header>
...
</header>
<main>
...
122
</main>
<footer>
...
</footer>
</body>
</html>
Pada project Laravel anda, buatlah structure folder pada view seperti gambar
dibawah ini:
Pada file layouts.blade.php akan berisi structure html seperti yang telah di break
down sebelumnya.
Layouts.blade.php
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>PW-IBIK</title>
<link rel="stylesheet" href="{{ url('./assets/css/bootstrap.min.css') }}">
<link rel="stylesheet" href="{{ url('./assets/bootstrap-icons/font/bootstrap-icons.css') }}">
</head>
<body class="bg-body-tertiary">
<header>
123
@extends('templates.headers.navigation')
</header>
<main class="container">
@yield('content')
</main>
</html>
Note:
@extends 🡪 penanda bahwa akan memanggil file bernama navigation.blade.php
yang berada didalam folder templates/headers
@yield 🡪 menampilkan tag html yang telah ditandai sebagai bentuk komponen
main static
{{ url('') }} 🡪 url('')menandakan bentuk dari base url (exp: localhost:8000)
navigation.blade.php
Untuk source code navigasi anda dapat melihat macam bentuknya di:
124
https://getbootstrap.com/docs/5.3/components/navbar/#nav
home.blade.php
@extends('templates.layouts')
@section('content')
<div class="card">
<div class="card-header">
<h3 class="card-title">This is a HOME page</h3>
</div>
<div class="card-body">
Welcome folks..
</div>
</div>
@endsection
Notes:
🡪 menandakan bahwa file home.blade.php ini
@extends('templates.layouts')
memanggil file blade layouts
@section('content') 🡪 menandakan bahwa pada file blade layout isi component
HTML dibawah fragment section dengan nama content ini akan melakukan
‘append’ di dalam @yield('content').
Selanjutnya yang perlu anda lakukan adalah menambahkan route baru dengan
nama home dan route ini memanggil file controller dan mengembalikan bentuk
file UI home.blade.php.
Web.php
125
HomeController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class HomeController extends Controller
{
public function index(){
return view('modules.home.home');
}
}
2. Blade Fragment
Ada beberapa blade fragment yang akan dibahas pada bagian ini, dari mulai
cara merender sebuah data dan melakukan operation statement.
A. Rendering View
Blade merupakan pengaturan tampilan dengan menggunakan HTML markup,
dengan penambahan beberapa directive dari Laravel.
Pada contoh sebelumnya terlihat directive pada bagian @section dan @yield.
Berikut adalah beberapa markup HTML dalam bentuk blade view:
● Directive @section mendefinisikan sebuah bagian (section) dari isi halaman web
● Directive @yield digunakan untuk menampilkan isi dari bagian tersebut.
126
B. Rendering variable
Jika didalam controller ingin mengirimkan sebuah variabel dan ditampilkan ke
dalam view blade maka anda dapat menggunakan cara sebagai berikut:
HomeController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
Pada method view terdapat ["title"=>"Hello world"] ini adalah contoh pengiriman
sebuah variabel dari controller ke dalam blade view. Setiap data yang ingin
dikirimkan harus disimpan dalam bentuk ‘key’. Contoh pada script diatas key
title memiliki sebuah value dalam bentuk STRING yang berisi tulisan “Hello
World”. Sehingga untuk menampilkan key title pada blade view cukup
memanggilnya dengan cara: {{ $title }}
Atau anda juga dapat menggunakan method with() untuk mengirimkan sebuah
data kedalam blade view.
127
Lalu jika data yang anda ingin kirimkan dalam bentuk multiple atau lebih dari
satu bagaimana mengirimkannya ?
Anda dapat memanfaatkan bentuk array sebagai bagian dari pengiriman data
secara multiple dan merendernya dengan menggunakan blade directive.
C. Directive
Selain konsep pewarisan template (blade layout) dan menampilkan data, Blade
juga menyediakan struktur kontrol umum PHP, seperti pernyataan bersyarat dan
pengulangan.
- Selection: IF
HomeController
home.blade.php
128
Output
- Repetition: FOR
129
Maka output dari script di atas sebagai berikut:
- Repetition: Foreach
Pengulangan dengan menggunakan FOREACH biasanya hanya diperuntukan
jika memiliki nilai dalam bentuk multiple Array.
HomeController.php
home.blade.php
130
Maka output dari script di atas sebagai berikut:
3. Dari soal nomor 2, buatlah modifikasi pada contoh kasus pada gambar 2.3.1. Dimana
Ketika mengakses route Profile maka akan menampilkan informasi soal nomor 2
(Route🡪Controller🡪View), dimana bentuk array tersebut dikirimkan dari Controller dan
ditampilkan ke blade profile. Gunakan blade layout pada contoh kasus ini.
4. Dari hasil kode nomor 3, silahkan anda buat tampilan hasil rendernya menjadi seperti
gambar dibawah ini:
131
BAB 7
DATABASES
1. Database configuration
Dalam membangun sebuah koneksi project Laravel dengan database terdapat
hal-hal yang perlu disetting terlebih dahulu, pertama buatlah sebuah database bernama
ibik_pw_laravel, bukalah file .env pada project Laravel dan ubahlah settingan
environment database sesuai dengan koneksi MYSQL anda:
2. Generate Migration
Untuk membuat sebuah table pada database anda dapat memanfaatkan Teknik
migration yang dimiliki oleh Laravel. Dimana anda dapat membuat beberapa factory
berdasarkan tabel-tabel database anda. Contoh berikut ini adalah akan membuat sebuah
table bernama Products. Untuk membuat sebuah table Products hal yang perlu
dilakukan ialah membuat file migration, bukalah project Laravel anda dengan terminal
dan memasukan syntax di bawah ini untuk membuat file migration table:
132
Setelah anda memasukan syntax migration tersebut maka akan menginformasikan
letak directory path file migrations bernama create_products_table.
Jika melihat script di atas menandakan bahwa table product akan memiliki beberapa
field seperti:
133
# bigIncrements() # decimal()
# bigInteger() # enum()
# boolean() # float()
# char() # id()
# dateTime() # increments()
# date() # integer()
B. Menjalankan Migration
Setelah menentukan field apa saja yang akan dibuat untuk mengeksekusi file
migration anda dapat memasukan syntax dibawah ini pada terminal project
Laravel anda:
Namun jika ada perubahan pada table anda, setelah merubah file migrasinya
lalu jalankan perintah ini:
Setelah membuat file migration buatlah file Controller dan Model untuk Product
dengan menggunakan syntax php artisan:
134
php artisan make:controller ProductsController --resource --
model=Products
Syntax php artisan diatas akan membuat sebuah file controller pada
./app/Http/controllers/ bernama ProductsController dan file model pada
./app/Http/models/ bernama Products yang berada pada directory path project
Laravel.
Untuk mengimplementasikan Query Builder pada Laravel, terdapat dua buah cara yaitu
dengan Eloquent Factory Model dan PDO parameters. Berikut ini akan memberikan
contoh dari kedua Teknik query builder pada Laravel untuk melakukan CRUD.
135
Route: Web.php
136
Paginate bawaan Laravel
10 dengan menggunakan
CSS TailWind
@endsection
137
Output dari script diatas akan menghasilkan program seperti dibawah ini dengan
beberapa kondisi, seperti validasi dan informasi data berhasil atau gagal
dieksekusi untuk melakukan inserting ataupun menampilkan data pada
database.
138
Gambar 2.1.3. Tampilan informasi berhasil menambahkan data baru
2. Retrieve 1 Data
Pada section ini akan menampilkan data dalam jumlah 1 atau mencari data
berdasarkan kondisi. Disini akan mencontohkan penggunaan query builder
dalam bentuk PDO parameters. Dimana untuk mengakses sebuah tabel harus
didefinisikan dengan menggunakan DB::table(‘table_name’).
Model: Products.php
Controller: ProductsController.php
139
Blade View: show.blade.php
Jika melihat gambar 2.1.3 pada table of product terdapat 3 buah button di kolom
Action, jika mengklik tombol ketiga (button berwarna orange) yaitu detail maka
akan dialihkan ke halaman dengan route end-point:
http://localhost:8000/master-data/products/3
jika melihat file route pada Web.php tipe link diatas akan diarahkan ke
ProdutsController dengan fungsi bernama show().
140
Query Builder PDO
Controller: ProductsController.php
Pada code sebelumnya di fase create, function store hanya menyimpan logika
transaksi insert query saja. Namun kali ini dilakukan perubahan, jika data yang
dilempar memiliki key bernama id, maka akan mengeksekusi logika transaksi
update query sedangkan sebaliknya maka akan mengeksekusi logika transaksi
insert query.
Pengecekan ini terjadi dikarenakan jika ingin melakukan update query data,
memerlukan sebuah kondisi statement, pada contoh update disini akan
mempergunakan key id sebagai salah satu update kondisi statement.
141
Blade View: index.blade.php
@extends('templates.layouts')
@section('content')
…
Hanya menambahkan
event click
Menambahkan route
link pada tombol
… Menambahkan function
… action dari event click
@endsection
142
Maka output dari proses transaksi logical diatas untuk UPDATE dan DELETE
sebagai berikut:
143
BAB 8
AUTHENTICATIONS
Dari gambar tersebut, salah satu file bernama create_users_table.php merupakan table
yang digunakan untuk menyimpan data users. Dimana file migrasi tersebut jika anda
generate maka akan menciptakan sebuah table pada database terpilih sebagai berikut:
144
isian kolum pada table users, silakan lakukan pembaharuannya di dalam file tersebut.
Setelah melakukan generate database table users, pada contoh kali ini akan membuat
sebuah halaman Sign In dengan isian email dan password. Sebelum itu, pastikan table users
telah memiliki beberapa data isian sehingga dapat dipergunakan untuk melakukan logical
transaksi Sign In dengan mengecek kolum email dan password.
Routes - Web:
Route::controller(Authentication::class)->group(function () {
Route::get('/signin', 'index')->name('signin');
});
Controllers - Authentication:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
145
<button type="submit">Continue</button>
</div>
</form>
8.2.1 Facades
Facades merupakan library milik Laravel yang bekerja untuk mengatur dan
menyimpan data atau informasi kedalam bentuk session. Pada contoh kasus saat ini kita
akan membangun sebuah halaman website, dimana website tersebut memiliki dua buah
authorize yaitu Public dan Private. Halaman public dapat diakases jika pengguna belum
melakukan Sign In, sedangkan halaman Private dapat diakses jika pengguna sudah
melakukan Sign In kedalam aplikasi websitenya. Istilah authorize tersebut pada Facades
disebut dengan auth dan guest. Dimana kata auth diperuntukan bagi pengguna yang sudah
pernah sign in, sedangkan guest diartikan sebagai pengguna yang belum melakukan Sign
In kedalam aplikasi. Library ini dapat diakses dengan memanggilnya seperti berikut:
use Illuminate\Support\Facades\Auth;
namespace App\Http\Controllers;
use Illuminate\Http\RedirectResponse;
use Illuminate\Http\Request;
146
use Illuminate\Support\Facades\Auth;
2) Membuat function pada controller dengan tipe request POST untuk mengolah
transaksi Sign In, diberi nama authenticate:
class Authentication extends Controller {
public function authenticate(Request $request):RedirectResponse{
//do logical here for auth
}
}
Request, digunakan untuk mengambil nilai parameter yang dikirimkan oleh HTTP.
Setiap parameter yang dikirimkan oleh HTTP akan diterima dalam bentuk object.
Oleh karenanya, jika ingin memanggil key dari parameter yang dikirimkan anda
dapat menggunakan:
$request->name_of_key atau request()->name_of_key
4) Membuat sebuah validasi pada form Sign In dengan mengecek isian email dan
password. Dimana kedua isian tersebut wajib diisi, dan mengecek apakah isian
email memiliki bentuk valid (name@domain_name_system.com):
- Pada file signin.blade, didalam tag <form> tambahkan cross-site request
forgery @csrf. CSRF ini selalu dipasang jika memiliki sebuah form, hal ini
diperuntukan untuk merequest Token agar terhidar dari request http anonymous:
147
</div>
...
</form>
Penambahan properties required pada tag elemen <input> diperuntukan
untuk menjaga validasi dari sisi frontend atau browser.
}
}
Setelah menambahkan code diatas coba anda jalankan dan test berdasarkan
kondisi dibawah ini:
a. Salah satu isian tidak terisi
b. Kedua isian tidak terisi
c. Mengisi isian email dengan format asal (bukan bentuk email)
5) Mengecek kedalam table users berdasarkan isian email dan password. Pada tahap
ini kita akan memanfaatkan Facades untuk menyimpan session jika kondisi
pengecekan bernilai true. Sedangkan jika nilai salah akan mengembalikan flash
message:
class Authentication extends Controller {
public function authenticate(Request $request):RedirectResponse{
$credentials = $request->validate([
'email' => ['required', 'email:dns'],
'password' => ['required'],
]);
//start: jika email dan password benar
if (Auth::attempt($credentials)) {
$request->session()->regenerate();
return redirect()->intended('dashboard');
}
//end of: jika email dan password benar
148
6) Menampilkan pesan error Facades dan flash message. Pada file signin.blade
tambahkan code dibawah ini untuk menampilkan pesan error email dari validate():
<div>
<label for="email">Email</label>
<input type="text"
name="email" required
value="{{ old('email') }}" />
@error('email')
<div> {{ $message }} </div>
@enderror
</div>
7) Pada file
RouteServiceProvider.php yang berada di dalam folder
./app/Providers/, ubahlah code menjadi:
//public const HOME = '/home';
public const HOME = '/';
Jika isian form email atau password kosong dan jika isian email memiliki bentuk
yang tidak sesuai forman Domain Name System.
149
Jika kondisi pengguna tidak terdaftar pada database maka akan menampilkan flash
message yang dikirimkan dari loginerror. Sedangkan jika mengisi sesuai dengan
yang ada pada database maka aplikasi akan meredirect ke halaman dashboard,
sesuai dengan instruksi syntax yang ada pada authenticate().
B. Sign Out
Setelah berhasil membuat sebuah fitur sign in, maka hal selanjutnya ialah membuat
fitur sign out. Fitur ini dibuat untuk menghapus atau menghilangkan semua session facades
yang ada pada browser berdasarkan alamat dari website tersebut.
1. Membuat route baru untuk alamat /signout dengan tipe request GET:
Route::get('/signout', [Authentication::class,'signout']);
C. Middleware
Mekanisme ini biasa digunakan untuk melakukan verifikasi terhadap data pengguna
untuk mengetahui authenticate pada websitenya. Misalnya, terdapat seorang pengguna
yang belum terautentikasi pada website, maka system akan meredirect ke halaman tertentu
atau halaman yang sudah disiapkan. Sebagai contoh jika belum sign in maka tombol Sign
In akan muncul. Namun jika sudah Sign In tombol menjadi bentuk Sign Out.
150
Pada bagaian sebelumnya telah disinggung mengenai auth dan guest, auth merupakan
action statement yang menunjukan status pengguna yang telah sign in atau
mengidentifikasi sebagai Private konten. Sedangkan action statement guest, digunakan
untuk menandai seorang pengunjung yang belum melakukan sign in kedalam system atau
diidentifikasi sebagai Public konten.
Berikut ini adalah contoh penggunaan auth dan guest pada file view blade, dimana
disini akan membuat sebuah tampilan dengan kondisi, jika sudah pernah sign in maka
muncul button Sign Out. Sedangkan yang belum pernah sign in maka akan menampilkan
buttin Sign In.
- Retrive Condition Middleware pada blade
Statement @guest dimana tag ini hanya berlaku untuk public area:
@guest
<a href="{{ url('signout') }}">Sign Out</a>
@endguest
{{ auth()->user()->key }}
Contoh:
Jika ingin menampilkan informasi nama dari pengunjung yang telah sign in,
seperti pada gambar dibawah ini:
151
Berdasarkan gambar 1.3, diketahui nama key untuk menampilkan nama ialah
‘name’. Maka penggunaannya sebagai berikut:
Hai, {{ auth()->user()->name }}
Selain menggunakan auth dan guest pada blade, kita juga dapat gunakan kedua fitur
tersebut untuk membatasi hak akses pada halaman web, dengan cara memberikan
menginisialisasi pada route dari masing-masing alamat. Berikut adalah contoh penggunaan
middleware pada route:
Route::get('/', function () {
return view('welcome');
})->middleware('auth');
Route::get('/dashboard', function () {
return view('private.dashboard.index');
})->middleware('auth', 'admin');
152
DAFTAR PUSTAKA
Dorucher, David, 2021. HTML & CSS QuickStart Guide. ClydeBank Media LLC.
Robbins, Jennifer. 2018. Learning Web Design. O'Reilly Media, Inc.
Meloni, Julie, 2018. HTML, CSS, and JavaScript All in One, Sams Teach Yourself. Pearson
Education.
Firdaus, Thoriq dan Frain, Ben. 2016. HTML5 and CSS3: Building Responsive Websites.
Packt Publishing Ltd.
Haverbeke, Marjin. 2014. Eloquent JavaScript, 2nd Ed. No Starch Press.
Website :
https://www.w3schools.com/html/.
https://www.w3schools.com/css/default.asp.
https://www.w3schools.com/js/default.asp.
153