3.1 Bahasa Penskripan Klien
Bahasa penskripan klien ialah bahasa pengaturcaraan yang dilaksanakan pada komputer klien melalui pelayar web untuk memanipulasi serta memaparkan kandungan web secara interaktif dan dinamik tanpa perlu kerap membebankan pelayan.
Objektif Pembelajaran
- Menerangkan keperluan bahasa penskripan klien dalam laman web.
- Menterjemah atur cara mudah bahasa penskripan klien kepada carta alir bagi isihan buih, isihan pilih, carian perduaan, maksimum, minimum, min, bilangan dan giliran.
- Menggunakan pemalar, pemboleh ubah, dan pelbagai jenis data dalam atur cara penskripan klien.
- Menggunakan struktur kawalan jujukan, pilihan, dan ulangan dalam atur cara.
- Menerangkan kelebihan serta menggunakan standard library seperti
math.jsdandate.jsdalam bahasa penskripan klien. - Meringkaskan atur cara menggunakan prosedur dan fungsi.
- Membina atur cara yang melibatkan penggunaan tatasusunan.
- Menghasilkan atur cara interaktif berasaskan web yang mengandungi pengisytiharan data, struktur kawalan, subatur cara, dan tatasusunan.
Perbandingan Senibina Aliran Pelaksanaan Penskripan Klien lwn Penskripan Pelayan
Permohonan URL diproses antara pelayar web pengguna (klien) dan komputer hos (pelayan). Skrip klien dilaksanakan pada pelayar, manakala skrip pelayan dilaksanakan pada pelayan sebelum laman dihantar semula.
Aliran Permohonan URL: Klien dan Pelayan
Skrip klien diproses pada pelayar pengguna; skrip pelayan diproses pada komputer hos sebelum laman dihantar semula.
Penerangan Ringkas
Keperluan bahasa penskripan klien, algoritma asas, pemboleh ubah, struktur kawalan, pustaka piawai, subatur cara, tatasusunan dan laman interaktif.
Apakah bahasa penskripan klien?
Bahasa penskripan klien ialah bahasa pengaturcaraan yang dilaksanakan pada komputer klien melalui pelayar web untuk memanipulasi serta memaparkan kandungan web secara interaktif dan dinamik.
Gabungan HTML, CSS, dan JavaScript membolehkan pelbagai algoritma asas pemprosesan data dilaksanakan terus pada pelayar.
Konsep Pelanggan/Pelayan
Pelanggan (Klien) ialah pelayar web pengguna pada komputer atau peranti mudah alih yang menghantar permohonan.
Pelayan (Server) memproses permintaan, melaksanakan penskripan pelayan, dan menghantar laman web serta berinteraksi dengan pangkalan data.
Kaedah Penulisan JavaScript
Explicit embedding
Kod JavaScript ditulis secara terus di dalam fail HTML, di antara tag <script> dan </script>.
Implicit embedding
Kod JavaScript disimpan dalam fail luaran berekstensi .js dan dipanggil menggunakan atribut src.
<script src="myScript.js"></script>Laman Web Statik dan Dinamik
| Ciri | Statik | Dinamik |
|---|---|---|
| Pembinaan | HTML sahaja | Penskripan pelayan seperti PHP atau ASP |
| Paparan | Terhad mengikut tag HTML | Dipanggil dari pangkalan data atau interaksi pengguna |
| Kemas kini | Manual | Automatik dan mudah |
| Contoh | Latar belakang organisasi | Kandungan yang berubah mengikut pengguna |
Kelebihan dan Kekangan Bahasa Penskripan Klien
Kelebihan
- Laman web menjadi lebih interaktif.
- Pelaksanaan tugas pantas tanpa penglibatan pelayan, contohnya pengesahan borang dan kiraan shopping cart serta-merta.
- Meningkatkan kebolehgunaan web bagi pelayar yang menyokong penskripan klien.
- Membolehkan pembangun menentukan reka bentuk dan ciri-ciri web.
Kekangan
Tidak dapat melaksanakan tugas capaian terus kepada pangkalan data pelayan atau fail sistem pelayan.
Algoritma Asas Penskripan Klien
Isihan Buih (Bubble Sort)
Membandingkan dua unsur bersebelahan satu demi satu dan menukar kedudukan jika urutan salah. Turutan menaik: tukar jika unsur pertama > unsur kedua. Turutan menurun: tukar jika unsur pertama < unsur kedua. Sesuai untuk saiz data kecil dan tujuan pembelajaran.
Isihan Pilih (Selection Sort)
Mencari nilai terkecil atau terbesar daripada senarai dan menukar kedudukannya dengan unsur yang dirujuk. Turutan menaik: cari indeks terkecil min, bandingkan jika no[j] < no[min], kemudian tukar dengan no[i] jika min != i.
Carian Perduaan (Binary Search)
Memerlukan data yang telah diisih. Menentukan indeksTengah = Math.floor((indeksAkhir + indeksAwal) / 2). Jika nilai tengah sama dengan nilai carian, nilai dijumpai. Jika no[indeksTengah] > nilai carian, cari di separuh kiri. Jika no[indeksTengah] < nilai carian, cari di separuh kanan.
Maksimum, Minimum, Min dan Bilangan
Maksimum: nilai awal sangat rendah seperti -1; jika unsur > nilaiMaksimum, kemas kini nilai maksimum. Minimum: nilai awal sangat tinggi seperti 999; jika unsur < nilaiMinimum, kemas kini nilai minimum. Min: purata = jumlah / pembilang dengan akumulator jumlah = jumlah + no dan kaunter pembilang = pembilang + 1. Bilangan: pembilang = pembilang + 1.
Struktur Giliran (Queue)
Struktur giliran menggunakan konsep FIFO (First-In, First-Out). Operasi asas ialah enqueue (masuk) dan dequeue (keluar).
Kaedah dalam JavaScript:
- Pasangan 1:
push()masuk di belakang danshift()keluar di depan. - Pasangan 2:
unshift()masuk di depan danpop()keluar di belakang.
Pemboleh Ubah, Pemalar dan Jenis Data
Pemboleh ubah dan pemalar
Pemboleh ubah diisytiharkan menggunakan kata kunci var.
Pemalar diisytiharkan menggunakan kata kunci const, contohnya nilai π = 3.142.
Jenis data asas
- Nombor — integer atau perpuluhan, contoh
5,100.50. - Rentetan / String — diapit tanda petik, contoh
"Ali bin Abu". - Boolean —
trueataufalse.
Struktur Kawalan
Jujukan
Pelaksanaan arahan satu demi satu mengikut urutan dari atas ke bawah tanpa syarat.
Pilihan
if melaksanakan blok jika syarat true. if...else melaksanakan satu blok jika true, blok lain jika false.
Operator hubungan: ==, !=, >, <, >=, <=.
Operator logik: && (AND), || (OR), ! (NOT).
Ulangan
Berasaskan pembilang: gelung for(nilai awal; syarat tamat; kemas kini).
Berasaskan syarat: gelung while menyemak syarat dahulu; gelung do...while melaksanakan blok sekurang-kurangnya sekali sebelum syarat disemak.
Kawalan gelung: break memberhentikan gelung serta-merta; continue melangkau baki lelaran semasa.
Standard Library
Standard library ialah koleksi fungsi atau kaedah sedia ada yang ditakrifkan dalam spesifikasi bahasa untuk memudahkan pengaturcaraan. Kelebihannya: boleh digunakan tanpa perlu tahu cara pelaksanaannya, boleh diguna berulang kali, dan menjimatkan masa pembangunan.
math.js
Memuatkan fungsi matematik seperti math.sqrt(x), math.pow(x, y), math.add(x, y), math.subtract(x, y), math.divide(x, y), math.cube(x), dan math.sort(x).
date.js
Memuatkan fungsi tarikh seperti Date.today(), Date.parse('today'), dan Date.today().add().days().
Pustaka boleh dimasukkan melalui fail tempatan <script src="math.js"></script> atau pautan CDN pelayan web.
Prosedur dan Fungsi
Prosedur
Melaksanakan tugas tanpa memulangkan sebarang nilai ke pemanggil; hanya memaparkan output secara terus.
Fungsi
Memproses data dan memulangkan nilai menggunakan kata kunci return.
Parameter
Parameter sebenar ialah nilai atau pemboleh ubah yang dihantar semasa memanggil subatur cara. Parameter rasmi ialah pemboleh ubah dalam takrifan subatur cara yang menerima nilai yang dihantar.
Tatasusunan (Array)
Tatasusunan menyimpan senarai elemen dalam satu nama pemboleh ubah tunggal. Indeks berasaskan sifar, bermula dari indeks 0 hingga n-1.
Pengisytiharan: var no = [5, 1, 4, 12, 8]; atau var no = [];. Tatasusunan boleh dimanipulasi menggunakan gelung for untuk proses carian, pengisihan, dan penjumlahan.
Membina Laman Web Interaktif
Butang interaktif
Tag HTML <button onclick="namaFungsi()">Label</button> membolehkan pengguna mencetuskan peristiwa untuk melaksanakan kod JavaScript.
Borang HTML
Tag <form> bersama komponen input seperti <input type="text"> dan <input type="submit"> untuk menerima input interaktif.
Pautan interaktif
Tag <a href="javascript:namaFungsi()">Teks/Imej</a> untuk melaksanakan subatur cara atau membuka tetingkap baharu menggunakan window.open() apabila teks atau grafik diklik.
Cuba Jawab Dulu
Cuba jawab sendiri dahulu, kemudian tekan butang untuk menyemak.
Apakah syarat utama yang mesti dipenuhi oleh satu senarai data sebelum carian perduaan (binary search) dapat dilaksanakan?
Senarai data tersebut mestilah telah diisih terlebih dahulu, sama ada tertib menaik atau menurun.
Apakah perbezaan utama dari segi pemulangan nilai antara procedure (prosedur) dan function (fungsi) dalam JavaScript?
Prosedur tidak memulangkan sebarang nilai kepada pemanggil, manakala fungsi memulangkan nilai menggunakan pernyataan return.
Dalam struktur giliran (queue), apakah operasi yang dilakukan oleh fungsi shift() dan pop() dalam JavaScript?
shift() mengeluarkan nilai terawal dari bahagian depan tatasusunan, manakala pop() mengeluarkan nilai dari bahagian belakang tatasusunan, bergantung pada kaedah kemasukan data FIFO yang digunakan.
Kesalahan Biasa
- Menggunakan carian perduaan (binary search) ke atas data mentah yang belum diisih, menyebabkan algoritma gagal menemui unsur yang dicari.
- Lupa bahawa indeks tatasusunan bermula dari
0dan berakhir padapanjang - 1, mengakibatkan ralat off-by-one atauundefinedapabila gelung merujuki <= no.length. - Tertukar antara pengendali umpukan
=dengan pengendali persamaan logik==. - Menjangkakan bahawa gelung
whileakan melaksanakan blok sekurang-kurangnya sekali walaupun syarat awal adalahfalse. Gelungdo...whileyang menjamin pelaksanaan minimum sekali. - Lupa meletakkan pernyataan
returndalam sesebuah fungsi yang sepatutnya mengembalikan nilai hasil kiraan kepada pemanggil.
Salah Faham Konsep
JavaScript adalah sama dengan bahasa Java.
Java ialah bahasa pengaturcaraan berorientasikan objek yang berasingan, manakala JavaScript ialah bahasa penskripan berasaskan objek yang biasanya dibenam dalam HTML untuk pelayar web. Sintaksnya mirip tetapi konsep dan kegunaannya berbeza.
Penskripan klien boleh menggantikan sepenuhnya fungsi penskripan pelayan dalam pemprosesan pangkalan data.
Penskripan klien tidak boleh mencapai pangkalan data pusat pelayan atau memanipulasi fail sistem pada pelayan secara terus atas faktor fungsi dan keselamatan.
Nilai awal bagi algoritma mencari maksimum boleh dimulakan dengan nombor yang besar seperti 999.
Nilai awal mencari maksimum mesti dimulakan dengan nilai yang paling rendah, contohnya -1 atau unsur pertama senarai, supaya sebarang nombor sebenar dalam senarai dapat mengatasinya. Nilai 999 digunakan untuk mencari nilai minimum.
Ringkasan
- Bahasa penskripan klien seperti JavaScript membolehkan pembinaan laman web interaktif yang diproses di sebelah komputer pengguna.
- Struktur kawalan merangkumi jujukan, pilihan, dan ulangan.
- Algoritma isihan merangkumi bubble sort dan selection sort, manakala carian perduaan memerlukan data yang telah diisih.
- Struktur data giliran FIFO menggunakan pasangan
push/shiftatauunshift/pop. - Tatasusunan digunakan untuk mengurus data secara berkelompok dengan indeks berasaskan sifar.
- Prosedur, fungsi, dan pustaka piawai seperti
math.jsdandate.jsmembantu pengorganisasian kod modular.
Aktiviti Ringkas
A. Kuiz Objektif
1 Apakah prinsip operasi yang digunakan oleh struktur data giliran (queue)?
2 Antara pernyataan berikut, yang manakah membezakan gelung do...while daripada gelung while?
B. Isi Tempat Kosong
3 Kata kunci yang digunakan dalam JavaScript untuk mengisytiharkan pemalar yang nilainya tidak boleh berubah ialah .
4 Dalam kaedah carian perduaan (binary search), senarai unsur yang hendak dicari mestilah telah terlebih dahulu.
C. Padankan Fungsi JavaScript atau Komponen Penskripan Web dengan Kegunaannya
Seret pilihan ke kotak padanan yang betul. Jika menggunakan telefon, tekan pilihan jawapan dahulu, kemudian tekan kotak padanan.