Modul Praktikum Pemrograman Web I
Modul Praktikum Pemrograman Web I
Tujuan
• Mahasiswa memahami dasar-dasar pemrograman PHP yang biasa
digunakan pada umumnya.
• Mahasiswa mampu membuat program sederhana menggunakan
bahasa pemrograman PHP.
Script PHP bisa diletakkan di manapun dalam dokumen, dimulai dengan tanda
“<?php” dan diakhiri dengan tanda “?>”. Dokumen PHP disimpan dengan ekstensi “.php”,
dimana file ini bisa menyimpan tag HTML dan beberapa script PHP. Setiap statement
dalam PHP harus diakhiri dengan semicolon “;”. Berikut adalah contoh script PHP untuk
menampilkan text “Hello World!”
<!DOCTYPE html>
<html>
<body>
<h1>Halaman PHP Pertama ku</h1>
<?php
echo "Hello World!";
?>
</body>
</html>
<?php
$txt = "W3Schools.com";
echo "I love $txt!";
echo "I love " . $txt . "!"; // menghasilkan keluaran yang sama dengan
perintah cetak diatas
?>
Lingkup dari sebuah variabel adalah bagian dari skrip dimana variabel bisa dirujuk
atau digunakan. Ada tiga lingkup variabel: Lokal, Global dan Static. Variabel yang
dideklarasikan diluar fungsi memiliki lingkup global, sedangkan variabel yang
dideklarasikan didalam fungsi memiliki lingkup lokal yang hanya bisa diakses didalam
fungsi saja. Kelebihan dari penggunaan variabel lokal adalah kita bisa memiliki variabel
lokal dengan nama yang sama pada fungsi yang berbeda, karena variabel lokal hanya
dikenali oleh fungsi yang mendeklarasikannya saja. Keyword global digunakan untuk
mengakses variabel global dari dalam fungsi. Php juga menyimpan semua variabel
global dalam sebuah array yang disebut $GLOBALS[index]. Index adalah nama dari
variabel, array ini juga bisa diakses dari dalam fungsi dan bisa digunakan untuk
mengupdate variabel global secara langsung. Normalnya, ketika fungsi dieksekusi,
semua variabel-variabelnya dihapus. Namun terkadang kita perlu untuk mempertahankan
nilai variabel lokal supaya tidak dihapus. Untuk itu, gunakan keyword static dalam
pendeklarasian variabel yang nilainya ingin dipertahankan.
<?php
$x = 5; // lingkup global
function myTest() {
//menggunakan x didalam fungsi ini akan menghasilkan error.
echo "<p>Variabel x di dalam fungsi adalah : $x</p>";
}
myTest();
<?php
$x = 5;
$y = 10;
function myTest() {
global $x, $y;
$y = $x + $y;
}
myTest();
echo $y; // output 15
?>
<?php
$x = 5;
$y = 10;
function myTest() {
$GLOBALS['y'] = $GLOBALS['x'] + $GLOBALS['y'];
}
myTest();
echo $y; // output 15
?>
<?php
function myTest() {
static $x = 0;
echo $x;
$x++;
}
myTest();
myTest();
myTest();
?>
<?php
echo "<h2>PHP is Fun!</h2>";
echo "Hello world!<br>";
echo "I'm about to learn PHP!<br>";
echo "This ", "string ", "was ", "made ", "with multiple parameters.";
String
String adalah susunan dari karakter-karakter seperti “Hello world!”. String
dituliskan didalam kutip satu maupun kutip dua. Berikut adalah contoh variabel yang
menyimpan data string.
<?php
$x = "Hello world!";
$y = 'Hello world!';
echo $x;
echo "<br>";
echo $y;
?>
Integer
Tipe data integer atau bilangan bulat adalah bilangan bukan pecahan antara -
2.147.483.648 hingga 2.147.483.647. Aturan-aturan pada integer adalah sebagai berikut:
<?php
$x = 5985;
var_dump($x);
?>
Float
Float (bilangan floating-point) adalah bilangan dengan tanda desimal atau
bilangan dalam bentuk exponensial. Berikut contoh penggunakan variabel float.
<?php
$x = 10.365;
var_dump($x);
?>
Boolean
Boolean merepresentasikan dua kemungkinan keadaan: TRUE atau FALSE.
Boolean sering digunakan pada kondisi percobaan. Berikut contoh penggunaannya:
$x = true;
$y = false;
Object / objek
Object adalah sebuah tipe data yang menyimpan data dan informasi bagaimana
memproses data tersebut. Object harus di deklarasikan secara eksplisit. Pertama kita
harus mendeklarasikan class dari object. Class adalah struktur yang bisa memiliki
properties dan method. Berikut contohnya:
<?php
class Car {
function Car() {
$this->model = "VW";
}
}
// membuat sebuah objek
$herbie = new Car();
// Menunjukkan isi dari
objek echo $herbie->model;
?>
Nilai NULL
NULL adalah tipe data khusus yang bisa memiliki hanya satu nilai: NULL. Sebuah
variabel dengan tipe data NULL adalah variabel yang tidak memiliki nilai. Jika sebuah
variabel dibuat tanpa nilai, maka otomatis akan ditentukan dengan nilai NULL. Variabel
bisa juga dikosongkan dengan mengatur nilainya menjadi NULL:
<?php
$x = "Hello world!";
$x = null;
var_dump($x);
?>
Resource
Tipe khusus resource bukanlah merupakan tipe data yang sebenarnya. Ia menyimpan
referensi fungsi dan sumberdaya eksternal untuk PHP. Contoh umum penggunaan tipe data
resource adalah pada pemanggilan database.
<?php
echo strlen("Hello world!");
?>
Hasil dari kode tersebut adalah panjang dari string “Hello world!” yaitu 12 karakter.
Panjang string juga bisa diukur perkata menggunakan fungsi str_word_count() seperti contoh
berikut:
<?php
echo str_word_count("Hello world!");
?>
Keluaran dari kode tersebut berupa jumlah kata pada string “Hello world!” yaitu 2. PHP
juga memiliki fungsi yang bisa digunakan untuk membalikkan susunan string, yaitu
menggunakan fungsi strrev() seperti contoh kode program berikut yang menghasilkan string
“!dlrow olleH” dari inputan string “Hello world!”.
<?php
echo strrev("Hello world!");
?>
PHP juga memiliki fungsi untuk menemukan teks yang spesifik didalam sebuah string,
yaitu dengan menggunakan fungsi strpos(). Jika teks yang dicari ditemukan didalam string,
maka fungsi akan mengembalikan index posisi dari karakter awal teks pertama yang cocok.
Jika tidak ditemukan, maka fungsi strpos() akan mengembalikan nilai FALSE. Kode program
berikut adalah contoh dari penggunaan fungsi strpos() pada string “Hello world!” untuk
menemukan teks “world”, sehingga keluaran yang dihasilkan adalah 6.
<?php
echo strpos("Hello world!", "world");
?>
PHP juga memiliki fungsi untuk mengganti teks didalam string, yaitu dengan
menggunakan fungsi str_replace(). Contoh berikut adalah kode program yang digunakan
untuk mengganti teks “world” pada string “Hello world!” dengan teks “Dolly”.
<?php
echo str_replace("world", "Dolly", "Hello world!");
?>
Konstanta / Constant
Konstanta seperti variabel, tetapi setelah dideklarasikan nilai konstanta tidak bisa
dirubah. Konstanta adalah nama atau indintifikasi untuk nilai sederhana. Nilainya tidak bisa
diubah selama program berjalan. Nama konstanta yang valid dimulai dengan huruf atau garis
bawah, tidak ada tanda $ sebelum nama konstanta. Konstanta memiliki lingkup global.
Gunakan fungsi define(nama, nilai, case-sensitif) untuk mendeklarasikan konstanta.
Parameter nama adalah nama dari konstanta yang akan digunakan, parameter nilai adalah
nilai dari konstanta yang akan digunakan pada program, dan parameter case-sensitive
digunakan untuk menspesifikasikan apakah nama konstanta harus case-sensitive. Secara
default, nilai case-sensitive adalah false.
<?php
// nama constant adalah case-sensitive
define("GREETING", "Welcome to W3Schools.com!");
echo GREETING;
?>
Operator PHP
Operator digunakan untuk melakukan operasi pada variabel-variabel dan nilai-nilai.
Operator dibagi menjadi beberapa kelompok sebagai berikut:
Operator-operator aritmatika
Operator aritmatika pada PHP digunakan dengan nilai numeris untuk melakukan
operasi aritmatika umum, seperti penjumlahan, pengurangan, perkalian, dan lain-lain.
Operator-operator perbandingan
Operator perbandingan digunakan untuk membandingkan nilai dua variabel.
Operator-operator iterasi
Iterasi memiliki dua jenis, iterasi penambahan dan iterasi pengurangan. operator
iterasi penambahan digunakan untuk menambah nilai variabel, sedangkan operator
iterasi pengurangan digunakan untuk mengurangi nilai variabel.
Operator-operator logika
Operator logika digunakan untuk mengkombinasikan pernyataan kondisional.
Operator-operator string
Dua operator didesain khusus untuk string.
Operator-operator array
Operator array php digunakan untuk membandingkan dua array.
if (kondisi) {
kode yang akan dieksekusi jika kondisi true;
}
Pernyataan If … else
Mengeksekusi beberapa kode jika kondisi benar dan mengeksekusi kode yang
lain jika kondisinya tidak benar. Syntax dari kondisi ini adalah sebagai berikut:
if (kondisi) {
kode yang akan dieksekusi jika kondisi true.
} else {
kode yang akan dieksekusi jika kondisi false.
}
if (kondisi pertama) {
kode yang akan dieksekusi jika kondisi pertama true.
} elseif (kondisi kedua) {
kode yang akan dieksekusi jika kondisi kedua true.
} else {
kode yang akan dieksekusi jika semua kondisi false.
}
Pernyataan switch
Pernyataan switch digunakan untuk melakukan aksi yang berbeda berdasarkan
kondisi yang berbeda. Pernyataan ini digunakan untuk memilih satu dari banyak blok
kode yang akan dieksekusi. Sintax dari pernyataan ini adalah sebagai berikut:
switch (n) {
case label1:
kode yang akan dieksekusi jika n = label1;
break;
case label2:
kode yang akan dieksekusi jika n = label2;
break;
case label3:
kode yang akan dieksekusi jika n = label3;
break;
…
default:
kode yang akan dieksekusi jika n berbeda dari semua label yang ada.
}
Perulangan
Perulangan digunakan untuk mengulang eksekusi kode program satu kali atau
lebih dari satu kali. Terdapat beberapa macam perulangan yaitu sebagai berikut:
do {
kode yang akan dieksekusi.
} while ( kondisi true );
Setiap nilai dalam array akan dimasukkan kedalam variabel dalam setiap perulangan.
Fungsi
Kekuatan dari PHP berasalah dari fungsi-fungsinya. PHP memiliki lebih dari 1000 fungsi
built-in. Namun dalam PHP bisa juga dibuat fungsi sendiri. Fungsi adalah blok kode
yang bisa digunakan secara berulang-ulang kali dalam program. Fungsi tidak akan
dieksekusi secara langsung jika halaman web sedang dimuat. Sebuah fungsi akan
dieksekusi oleh fungsi yang memanggilnya. Syntax dari fungsi yagn dibuat sendiri adalah
sebagai berikut:
function nama_fungsi() {
kode yang akan dieksekusi.
}
Nama fungsi bisa dimulai dengan huruf atau garis bawah (bukan bilangan).
Tentukan nama fungsi berdasarkan apa kegunaannya. Informasi dari luar fungsi bisa
dimasukkan kedalam fungsi melalui argument. Argumen adalah seperti variabel.
Argumen dispesifikasikan setelah nama fungsi didalam kurung. Argument bisa dibuat
banyak, antara deklarasi argument harus dipisah dengan tanda koma. Jika argumen
memiliki nilai default, maka argument tersebut bisa langsung ditentukan nilainya dengan
tanda sama dengan. Berikut adalah contoh penetukan argument dengan nilai default.
<?php
function setHeight($minheight = 50) {
echo "The height is : $minheight <br>";
}
setHeight(350);
setHeight(); // will use the default value of 50
setHeight(135);
setHeight(80);
?>
Fungsi juga bisa memberikan nilai kembalian. Untuk memberikan nilai kembalian,
fungsi tersebut harus menggunakan perintah return. Berikut adalah contoh dari fungsi
yang mengembalikan sebuah nilai:
<?php
function sum($x, $y) {
$z = $x + $y;
return $z;
}
Array
Array adalah variabel khusus, yang bisa menyimpan banyak nilai pada satu waktu.
Nilai dalam array bisa diakses dengan cara merujuk pada indexnya. Pada PHP fungsi
array() digunakan untuk membuat sebuah array. Pada PHP, terdapat tiga macam tipe
array:
Array Terindex
Array terindex adalah array dengan index numerik. Ada dua cara untuk membuat
array terindex, pertama, array bisa ditentukan secara otomatis dimana indexnya selalu
mulai dari 0, contoh : $mobil = array(“volvo”,”BMW”,”Toyota”); dan yang kedua, array
bisa ditentukan secara manual, contohnya sebagai berikut:
$mobil[0] = “Volvo”;
$mobil[1] = “BMW”;
$mobil[2] = “Toyota”;
Panjang array atau jumlah element bisa juga dihitung menggunakan fungsi
count(), untuk menghitung jumlah element pada variabel array $mobil[] dapat ditulis
count($mobil), fungsi ini akan mengembalikan nilai integer sebagai jumlah element dalam
variabel $mobil[].
Array Assosiatif
Array asosiatif adalah array dengan nama kunci yang ditentukan. Ada dua cara
membuat array assosiatif, pertama dengan mendeklarasikan ketika memanggil fungsi
array(), contoh : $umur = array(“Peter”=>”35”, ”Ben”=>”37”, ”Joe”=>”43”); yang kedua
dengan mendeklarasikan nilainya satu-persatu, contoh:
$umur[‘Peter’] = “35”;
$umur[‘Ben’] = “37”;
$umur[‘Joe’] = “43”;
BMW
Toyota
Volvo
rsort() - Mengurutkan array dalam susuan descending. Misalkan fungsi ini digunakan
untuk mengurutkan array $mobil, maka urutan nilai pada array mobil akan
menjadi sebagai berikut:
Volvo
Toyota
BMW
Peter 35
Ben 37
Joe 43
Joe 43
Ben 37
Peter 35
Joe 43
Ben 37
Peter 35
Peter 35
Joe 43
Ben 37
Array Multidimensi
Array multidimesi adalah array yang mengandung satu atau banyak array.
Dimensi dari sebuah array mengidikasikan jumlah index yang diperlukan untuk memilih
element. Array dua dimensi memerlukan dua index untuk memilih sebuah element, array
tiga dimensi memerlukan tiga index untuk memilih sebuah element.
Misalkan array dua dimensi digunakan untuk menyimpan data-data pada tabel
diatas, maka contoh kode program untuk menyimpan data-data tersebut adalah sebagai
berikut:
$cars = array(
array("Volvo",22,18),
array("BMW",15,13),
array("Saab",5,2),
array("Land Rover",17,15)
);
<?php
$x = 75;
$y = 25;
function addition() {
$GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y'];
}
addition();
echo $z;
?>
$_SERVER
$_SERVER adalah variabel super global yang menyimpan informasi tentang
header-header, path-path (jalur), dan skrip lokasi. Berikut adalah contoh penggunaan
variabel global $_SERVER:
<?php
echo $_SERVER['PHP_SELF'];
echo "<br>";
echo $_SERVER['SERVER_NAME'];
echo "<br>";
echo $_SERVER['HTTP_HOST'];
echo "<br>";
echo $_SERVER['HTTP_REFERER'];
echo "<br>";
echo $_SERVER['HTTP_USER_AGENT'];
echo "<br>";
echo $_SERVER['SCRIPT_NAME'];
?>
Tabel berikut adalah daftar dari elemen-elemen penting yang bisa digunakan pada
variabel $_SERVER:
Elemen / Kode Deskripsi
Memberikan nama file dari skrip yang
$_SERVER['PHP_SELF']
sedang dieksekusi.
Memberikan versi dari CGI (Common
$_SERVER['GATEWAY_INTERFACE']
Gateway Interface) yang digunakan oleh
$_SERVER['SERVER_ADDR'] server. Memberikan alamat IP dari server
host. Memberikan nama dari server host.
$_SERVER['SERVER_NAME']
Misal : www.umrah.ac.id
Memberikan string identifikasi server
$_SERVER['SERVER_SOFTWARE']
seperti Apache/2.2.24)
Memberikan nama dan revisi dari
$_SERVER['SERVER_PROTOCOL']
protokol informasi (seperti HTTP/1.1)
Memberikan method request yang digunakan
$_SERVER['REQUEST_METHOD']
untuk mengakses halaman (seperti POST)
Memberikan waktu atau timestamp dari
$_SERVER['REQUEST_TIME']
permulaan request (seperti 1377687496)
Memberikan string query jika halaman diakses
$_SERVER['QUERY_STRING']
via string query.
Memberikan header penerima dari request
$_SERVER['HTTP_ACCEPT']
saat ini.
Memberikan header Accept_Charset dari
$_SERVER['HTTP_ACCEPT_CHARSET']
request saat ini (seperti utf-8,ISO-8859-1)
Memberikan header host dari permintaan
$_SERVER['HTTP_HOST']
atau request saat ini.
Memberikan URL lengkap dari halaman saat ini
$_SERVER['HTTP_REFERER'] (kurang handal karena tidak semua user-
agents mendukung)
Skrip yang di-query melalui protokol
$_SERVER['HTTPS']
keamanan HTTP.
Memberikan alamat IP user yang
$_SERVER['REMOTE_ADDR']
sedang mengakses halaman saat ini.
Memberikan nama host dari user yang
$_SERVER['REMOTE_HOST']
mengakses halaman saat ini.
Memberikan port yang sedang digunakan pada
$_SERVER['REMOTE_PORT'] komputer user untuk berkomunikasi pada
server web.
Memberikan nama path / jalur yang
$_SERVER['SCRIPT_FILENAME']
sedang mengeksekusi skrip.
$_SERVER['SERVER_ADMIN'] Memberikan nilai yang diberikan untuk
SERVER_ADMIN yang menunjuk pada file
konfigurasi server web (jika skrip berjalan pada
host virtual, ia akan menjadi nilai yang
ditentukan untuk virtual host) (seperti
[email protected])
Memberikan port pada komputer server
$_SERVER['SERVER_PORT'] yang sedang digunakan oleh server web
untuk komunikasi (seperti port 80)
Memberikan versi server dan nama virtual
$_SERVER['SERVER_SIGNATURE'] host yang ditambahkan pada halaman yang
dibangkitkan oleh server.
Memberikan sistem file yang berdasarkan
$_SERVER['PATH_TRANSLATED']
pada jalur/path ke skrip saat ini.
$_SERVER['SCRIPT_NAME'] Memberikan jalur / path dari skrip saat ini.
$_SERVER['SCRIPT_URI'] Memberikan URI dari halaman saat ini.
$_REQUEST
$_REQUEST PHP digunakan untuk mengumpulkan data setelah submit sebuah
form HTML. Contoh berikut menunjukkan sebuah form dengan field input dan tombol
submit. Ketika user melakukan submit data dengan menekan “Submit”, data form
dikirimkan untuk file yang dispesifikasikan dalam atribut aksi dari tag <form>. Dalam
contoh ini, kita memperhatikan file ini memproses data form. Jika pengguna ingin
menggunakan file PHP lain untuk memproses data form, menggantinya dengan nama file
yang dipilih, maka gunakan variabel super global $_REQUEST untuk mengumpulkan
field nilai input.
<html>
<body>
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
Name: <input type="text" name="fname">
<input type="submit">
</form>
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
// mengumpulkan nilai input field
$name = $_REQUEST['fname'];
if (empty($name)) {
echo "Name is empty";
} else {
echo $name;
}
}
?>
</body>
</html>
$_POST
$_POST PHP sangat banyak digunakan untuk mengumpulkan data form setelah
submit sebuah form HTML dengan method=“post”. $_POST juga banyak digunakan
untuk melewatkan variabel. Contoh berikut menunjukkan sebuah form dengan sebuah
input field dan sebuah tombol submit. Ketika user melakukan submit data dengan
menekan tombol submit, data form dikirim ke file yang dispesifikasikan dalam atribut aksi
dari tag <form>. Pada contoh ini, perhatikan file untuk pemrosesan data. Jika ingin
menggunakan file PHP lain untuk memproses data form, ganti dengan nama file yang
diinginkan. Kemudian, gunakan variabel super global $_POST untuk mengumpulkan nilai
field input.
<html>
<body>
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
Name: <input type="text" name="fname">
<input type="submit">
</form>
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
// collect value of input field
$name = $_POST['fname'];
if (empty($name)) {
echo "Name is
empty"; } else {
echo $name;
}
}
?>
</body>
</html>
$_GET
$_GET PHP bisa digunakan untuk mengumpulkan data form setelah submit
sebuah form HTML dengan method=”get”. Juga bisa digunakan untuk mengumpulkan
data yang dikirimkan dalalam URL. Asumsikan halaman HTML yang mengandung
hyperlink dengan parameter berikut:
<html>
<body>
<a href=”test_get.php?subject=PHP&web=umrah.ac.id”>Test $GET
</a> </body>
</html>
kemudian user meng-klik link “Test $GET”, parameter “subject” dan “web”
dikirimkan ke skrip “test_get.php”, nilai dari kedua parameter tersebut bisa diakses
dengan $_GET. Contoh berikut adalah skrip yang bisa mengakses nilai dari dua
parameter tersebut.
<html>
<body>
<?php
echo "Study " . $_GET['subject'] . " at " . $_GET['web'];
?>
</body>
</html>
TUGAS
Buatlah program web untuk mengolah nama-nama anggota keluarga anda
dengan kriteria sebagai berikut:
1. Nama-nama disimpan didalam variabel array.
2. Program menampilkan jumlah kata dan jumlah huruf pada nama yang
anda tuliskan.
3. Program menampilkan kebalikan dari nama yang diinputkan.
4. Program menampilkan jumlah konsonan dan jumlah vokal pada nama yang
telah diinputkan.
Modul II : Form Handling
Tujuan
• Mahasiswa mampu membuat handling yang mampu mengolah data dari
form HTML.
• Mahasiswa mampu membuat batasan-batasan untuk menangani inputan
dari form HTML.
<html>
<body>
<form action="welcome.php" method="post">
Name: <input type="text" name="name"><br>
E-mail: <input type="text" name="email"><br>
<input type="submit">
</form>
</body>
</html>
Ketika user mengisi form, dan menekan tombol click, data form dikirim untuk
memproses file PHP dengan nama “welcome.php”. Data form dikirimkan dengan method
HTTP POST. Untuk menampilkan data yang sudah disubmit bisa dilakukan dengan
mencetak data tersebut menggunakan perintah echo. File “welcome.php” adalah sebagai
berikut:
<html>
<body>
Welcome <?php echo $_POST["name"]; ?><br>
Your email address is: <?php echo $_POST["email"];
?> </body>
</html>
Jika field nama diinputkan dengan Tono dan email diinputkan dengan
[email protected] maka output yang akan tampil adalah sebagai berikut:
Welcome Budi
Your email address is [email protected]
Hasil yang sama juga akan tampil dengan menggunakan method get
sebagai berikut:
<html>
<body>
<html>
<body>
Welcome <?php echo $_GET["name"]; ?><br>
Your email address is: <?php echo $_GET["email"];
?> </body>
</html>
Ingat! GET tidak boleh digunakan untuk mengirimkan password atau informasi
sensitif lainnya!
Text Field
Field nama, email dan website adalah elemen-elemen text input, dan field
komentar adalah textarea yaitu sebagai berikut:
Radio Button
Field jenis kelamin adalah radio button yaitu sebagai berikut:
Gender:
<input type="radio" name="gender" value="female">Female
<input type="radio" name="gender" value="male">Male
Form Element
Kode HTML untuk membentuk form pada gambar diatas adalah sebagai berikut:
Kemudian user memasukkan URL pada address bar dengan alamat sebagai berikut:
http://localhost/<nama_folder>/test_form.php/%22%3E%3Cscript%3Ealert('hacked')%3C/scr
ipt %3E
Kode ini menambah tag script dan perintah alert atau peringatan, ketika halaman
dibuka, kode javascript tersebut akan dieksekusi, maka user akan melihat kotak
peringatan dengan tulisan “hacked”.
<form method="post"
action="test_form.php/"><script>alert('hacked')</script>">
<?php
// define variables and set to empty values
$name = $email = $gender = $comment = $website = "";
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$name = test_input($_POST["name"]);
$email = test_input($_POST["email"]);
$website = test_input($_POST["website"]);
$comment = test_input($_POST["comment"]);
$gender = test_input($_POST["gender"]);
}
function test_input($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
?>
Ingat bahwa pada permulaan skrip, adalah pemeriksaan apakah form sudah
disubmit menggunakan $_SERVER[“REQUEST_METHOD”]. Jika REQUEST_METHOD
adalah POST, maka form telah disubmit dan seharusnya tervalidasi. Jika belum
tersubmit, lewati langkah validasi dan tampilkan form kosong. Namun pada contoh diatas
semua field input adalah opsional. Skrip bekerja baik bahkan jika user tidak melakukan
entri data.
<?php
// define variables and set to empty values
$nameErr = $emailErr = $genderErr = $websiteErr = "";
$name = $email = $gender = $comment = $website = "";
if ($_SERVER["REQUEST_METHOD"] == "POST")
{ if (empty($_POST["name"])) {
$nameErr = "Name is required";
} else {
$name = test_input($_POST["name"]);
}
if (empty($_POST["email"])) {
$emailErr = "Email is required";
} else {
$email = test_input($_POST["email"]);
}
if (empty($_POST["website"])) {
$website = "";
} else {
$website = test_input($_POST["website"]);
}
if (empty($_POST["comment"])) {
$comment = "";
} else {
$comment = test_input($_POST["comment"]);
}
if (empty($_POST["gender"])) {
$genderErr = "Gender is required";
} else {
$gender = test_input($_POST["gender"]);
}
}
?>
Setelah kode diatas ditambahkan, beberapa skrip ditambahkan pada setiap field
yang dibutuhkan pada form, fungsinya untuk menampilkan pesan error jika field yang
dibutuhkan tidak diisi. Form HTMLnya adalah sebagai berikut:
</form>
Validasi Nama
Kode berikut menunjukkan cara sederhana untuk memeriksa apakah field nama
hanya mengandung huruf dan spasi. Jika nilai dari nama tidak valid, maka pesan error
akan disimpan didalam variabel $nameErr:
$name = test_input($_POST["name"]);
if (!preg_match("/^[a-zA-Z ]*$/",$name)) {
$nameErr = "Only letters and white space allowed";
}
Validasi Email
Cara paling mudah dan paling aman untuk memeriksa apakah sebuah alamat
email memiliki pola yang sesuai adalah dengan menggunakan fungsi filter_var(). Kode
dibawah memeriksa apakah alamat email yang dimasukkan menggunakan pola yang
sesuai atau tidak, jika tidak, maka pesan error akan disimpan kedalam variabel
$emailErr:
$email = test_input($_POST["email"]);
if (!filter_var($email, FILTER_VALIDATE_EMAIL))
{ $emailErr = "Invalid email format";
}
Validasi URL
Kode program berikut menunjukkan cara untuk memeriksa apakah sintaks alamat
URL valid atau tidak. Ekspresi reguler ini mengizinkan keberadaan tanda pisah pada
URL. Jika sintaks alamat URL tidak valid, maka pesan error akan disimpan kedalam
variabel $websiteErr:
$website = test_input($_POST["website"]);
if (!preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-
9+&@#\/ %=~_|]/i",$website)) {
$websiteErr = "Invalid URL";
}
Biasanya, jika user salah menginputkan nilai, maka halaman yang tampil adalah
halaman yang sama dengan field yang sudah terisi dengan nilai field yang sudah diinput
sebelumnya. Untuk menunjukkan nilai dalam field input setelah user menekan tombol
submit, ada beberapa skrip PHP yang perlu ditambahkan didalam atribut value pada field
input name, email, dan website. Khusus untuk field textarea, akan skrip tersebut akan
ditambahkan antara tag <textarea> dan tag </textarea>. Skrip yang singkat akan
mengeluarkan nilai dari variabel $name, $email, $website dan $comment. Untuk radio
button atau tombol radio, akan ditambahkan kode yang membuat salah satu pilihan
terpilih.
Gender:
<input type="radio" name="gender"
<?php if (isset($gender) && $gender=="female") echo
"checked";?> value="female">Female
<input type="radio" name="gender"
<?php if (isset($gender) && $gender=="male") echo
"checked";?> value="male">Male
TUGAS
Buatlah program web untuk menginputkan username dan password menggunakan
form dan penanganan input data dengan kriteria sebagai berikut:
1. username yang dinputkan tidak boleh lebih dari tujuh karakter.
2. password yang dinputkan harus terdiri dari huruf kapital, huruf kecil, angka
dan karakter khusus.
3. Jumlah karakter password tidak boleh kurang dari sepuluh karakter.
MODUL III : PHP MySQL Database
TUJUAN
• Mahasiswa mampu membuat program yang bisa menyimpan data dalam
jumlah yang banyak.
• Mahasiswa mampu membuat program yang bisa mengolah data yang
tersimpan dalam database.
Data dalam database MySQL disimpan dalam tabel-tabel. Sebuah tabel adalah
koleksi dari data yang berelasi dan mengandung kolom dan baris. Database sangat
bermanfaat untuk menyimpan informasi secara kategori. Contoh yang akan diberikan
pada modul praktikum ini adalah tabel yang mengandung data Employees (Pekerja),
Products (Produk), Customers (Pelanggan) dan Orders (Pesanan).
Membuka Koneksi
Sebelum mengakses data dalam database MySQL, kita harus terhubung ke server
database MySQL. Berikut adalah contoh kode program agar terhubung dengan server
mySQL:
<?php
$servername = "localhost";
$username = "username";
$password = "password";
// Membuat hubungan
$conn = new mysqli($servername, $username, $password);
// Memeriksa hubungan
if ($conn->connect_error){
die("Connection failed: " . $conn->connect_error);
}
echo "Connected successfully";
?>
Jika kode diatas tidak berhasil, kemungkinan variabel $connect_error sudah tidak
tersedia pada versi PHP yang kita gunakan, maka gunakan kode program berikut:
<?php
$servername = "localhost";
$username = "username";
$password = "password";
// Membuat Hubungan
$conn = mysqli_connect($servername, $username, $password);
// Memeriksa
Hubungan if (!$conn){
die("Connection failed: " . mysqli_connect_error());
}
echo "Connected successfully";
?>
mysqli_close($conn);
Membuat Database
Database pada MySQL bisa juga dibuat menggunakan kode program PHP.
Program tersebut akan berisi statement SQL “CREATE DATABASE”. Berikut adalah
contoh program yang digunakan untuk membuat database “myDB”:
<?php
$servername = "localhost";
$username = "username";
$password = "password";
// Membuat Koneksi
$conn = mysqli_connect($servername, $username, $password);
// Memeriksa Koneksi
if (!$conn){
die("Connection failed: " . mysqli_connect_error());
}
// Membuat Database
$sql = "CREATE DATABASE myDB";
if (mysqli_query($conn, $sql)) {
echo "Database created successfully";
} else {
echo "Error creating database: " . mysqli_error($conn);
}
mysqli_close($conn);
?>
Membuat Tabel
Pembuatan tabel pada bahasa pemrograman PHP juga menggunakan statement
SQL, yaitu statement “CREATE TABLE”. Contoh yang akan diberikan adalah pembuatan
tabel MyGuests. Statement pembuatan tabel MyGuests adalah sebagai berikut:
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
// Membuat Koneksi
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Memeriksa koneksi
if (!$conn){
die("Connection failed: " . mysqli_connect_error());
}
if (mysqli_query($conn, $sql)) {
echo "Table MyGuests created successfully";
} else {
echo "Error creating table: " . mysqli_error($conn);
}
mysqli_close($conn);
?>
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
// Membuat Koneksi
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Memeriksa Koneksi
if (!$conn){
die("Connection failed: " . mysqli_connect_error());
}
if (mysqli_query($conn, $sql)) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . mysqli_error($conn);
}
mysqli_close($conn);
?>
Jika kita melakukan perintah INSERT pada tabel yang menggunakan field dengan
opsi AUTO_INCREMENT, kita bisa mendapatkan ID dari baris yang terakhir diinputkan.
Caranya menggunakan fungsi mysqli_insert_id($conn); nilai kembalian dari fungsi ini
akan memberikan id dari record atau baris terakhir yang diinputkan.
Untuk menambahkan record dengan jumlah yang banyak, kita bisa menggunakan
fungsi mysqli_multi_query($conn, $sql), berikut adalah contoh program untuk
menambahkan record dengan jumlah yang banyak:
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
// Membuat Koneksi
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Memeriksa Koneksi
if (!$conn){
die("Connection failed: " . mysqli_connect_error());
}
if (mysqli_multi_query($conn, $sql)) {
echo "New records created successfully";
} else {
echo "Error: " . $sql . "<br>" . mysqli_error($conn);
}
mysqli_close($conn);
?>
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
// Membuat koneksi
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Memeriksa Koneksi
if (!$conn){
die("Connection failed: " . mysqli_connect_error());
}
$sql = "SELECT id, firstname, lastname FROM
MyGuests"; $result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) > 0) {
// Menampilkan data pada setiap baris
while($row = mysqli_fetch_assoc($result)) {
echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " .
$row["lastname"]. "<br>";
}
} else {
echo "0 results";
}
mysqli_close($conn);
?>
Jika kita memiliki data seperti tabel “MyGuest” seperti terlihat diatas, kemudian kita
ingin menghapus data dengan nama depan Julie, maka kode program untuk menghapus
data tersebut adalah sebagai berikut:
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
// Membuat Koneksi
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Memeriksa koneksi
if (!$conn){
die("Connection failed: " . mysqli_connect_error());
}
if (mysqli_query($conn, $sql)) {
echo "Record deleted successfully";
} else {
echo "Error deleting record: " . mysqli_error($conn);
}
mysqli_close($conn);
?>
UPDATE nama_tabel
SET kolom1=nilai1, kolom2=nilai2, …
WHERE kolom_penentu=nilai_penentu …
Jika statement ini digunakan untuk update data ke dua pada tabel “MyGuest”
diatas untuk mengganti nama belakang dari “Moe” menjadi “Doe”, maka kode program
untuk update tersebut adalah sebagai berikut:
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
// Membuat Koneksi
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Memeriksa Koneksi
if (!$conn){
die("Connection failed: " . mysqli_connect_error());
}
if (mysqli_query($conn, $sql)) {
echo "Record updated successfully";
} else {
echo "Error updating record: " . mysqli_error($conn);
}
mysqli_close($conn);
?>
TUGAS
1. Buatlah database pada MySql untuk menyimpan data-data pegawai beserta
relasi tabelnya.
2. Buatlah program untuk menyimpan, menghapus dan mengubah data-
data pegawai tersebut.
MODUL IV : Asynchronous JavaScript and XML (AJAX)
TUJUAN :
• Mahasiswa mampu membuat program dengan menggabungkan fitur PHP
dan JavaScript.
• Mahasiswa mampu membuat program web yang dinamis.
AJAX digunakan untuk membuat halaman web yang cepat dan dinamis. AJAX
mengizinkan halaman web diperbaharui secara asinkron oleh pertukaran data dalam
jumlah kecil dengan aktifitas server dibelakang layar. Jadi, pembaharuan halaman web
dilakukan tanpa merubah seluruh tampilan halaman. Halaman web yang klasik (tidak
menggunakan AJAX) harus memuat seluruh halaman jika kontennya harus berubah.
Contoh aplikasi penggunaan AJAX adalah seperti Google Maps, Gmail, Youtube, dan
Tab Facebook. AJAX didasari oleh Standar internet dan menggunakan kombinasi dari:
<html>
<head>
<script>
function showHint(str) {
if (str.length == 0) {
document.getElementById("txtHint").innerHTML =
""; return;
} else {
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
document.getElementById("txtHint").innerHTML =
this.responseText;
}
};
xmlhttp.open("GET", "gethint.php?q=" + str,
true); xmlhttp.send();
}
}
</script>
</head>
<body>
Penjelasan:
Pertama, program memeriksa apakah field input kosong (str.length == 0). Jika
kosong, bersihkan kontent dari placeholder txtHint dan keluar dari fungsi. Namun,
jika field input tidak kosong, maka akan melakukan hal-hal sebagai berikut:
• Membuat sebuah objek XMLHttpRequest.
• Membuat fungsi untuk dieksekusi ketika jawaban server adalah siap (ready).
• Mengirim permintaan off ke file PHP (gethint.php) pada server.
• Memberitahukan bahwa parameter q ditambah ke URL (gethint.php?q=”+str)
• Variabel str menyimpan konten field input.
Kode program diatas menggunakan file PHP dengan nama “gethint.php”,
kode program dari file tersebut adalah sebagai berikut:
<?php
// Array with names
$a[ ] = "Anna"; $a[
] = "Brittany"; $a[ ]
= "Cinderella"; $a[ ]
= "Diana"; $a[ ] =
"Eva";
$a[ ] = "Fiona";
$a[ ] = "Gunda";
$a[ ] = "Hege";
$a[ ] = "Inga";
$a[ ] = "Johanna";
$a[ ] = "Kitty";
$a[ ] = "Linda";
$a[ ] = "Nina";
$a[ ] = "Ophelia";
$a[ ] = "Petunia";
$a[ ] = "Amanda";
$a[ ] = "Raquel";
$a[ ] = "Cindy";
$a[ ] = "Doris";
$a[ ] = "Eve";
$a[ ] = "Evita";
$a[ ] = "Sunniva";
$a[ ] = "Tove";
$a[ ] = "Unni";
$a[ ] = "Violet";
$a[ ] = "Liza";
$a[ ] = "Elizabeth";
$a[ ] = "Ellen";
$a[ ] = "Wenche";
$a[ ] = "Vicky";
$hint = "";
<html>
<head>
<script>
function showUser(str) {
if (str == "") {
document.getElementById("txtHint").innerHTML =
""; return;
} else {
if (window.XMLHttpRequest) {
// code for IE7+, Firefox, Chrome, Opera,
Safari xmlhttp = new XMLHttpRequest();
} else {
// code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
document.getElementById("txtHint").innerHTML =
this.responseText; }
};
xmlhttp.open("GET","getuser.php?q="+str,true);
xmlhttp.send();
}
}
</script>
</head>
<body>
<form>
<select name="users" onchange="showUser(this.value)">
<option value="">Select a person:</option>
<option value="1">Peter Griffin</option> <option
value="2">Lois Griffin</option>
<option value="3">Joseph Swanson</option>
<option value="4">Glenn Quagmire</option>
</select>
</form>
<br>
<div id="txtHint"><b>Person info will be listed here...</b></div>
</body>
</html>
Penjelasan kode:
Pertama, memeriksa apakah ada data orang yang terpilih. Jika tidak ada maka (str
== “”), bersihkan kontent dari txtHint dan keluar dari fungsi. Jika ada data orang
terpilih, maka akan melakukan hal berikut:
• Membuat objek XMLHttpRequest.
• Membuat fungsi untuk dieksekusi ketika jawaban server adalah siap (ready).
• Kirim permintaan off untuk sebuah file pada server.
• Memberitahukan bahwa sebuah parameter (q) ditambahkan ke URL (dengan
kontent dropdown list).
Contoh program diatas menggunakan file “getuser.php”. File tersebut berisi kode
program untuk melakukan query pada database MySQL, Kode program dari file tersebut
adalah sebagai berikut:
<!DOCTYPE html>
<html>
<head>
<style>
table {
width: 100%;
border-collapse: collapse;
}
table, td, th {
border: 1px solid black;
padding: 5px;
}
th {text-align: left;}
</style>
</head>
<body>
<?php
$q = intval($_GET['q']);
$con = mysqli_connect('localhost','peter','abc123','my_db'); if
(!$con){
die('Could not connect: ' . mysqli_error($con));
}
mysqli_select_db($con,"ajax_demo");
$sql="SELECT * FROM user WHERE id =
'".$q."'"; $result = mysqli_query($con,$sql);
echo "<table>
<tr>
<th>Firstname</th>
<th>Lastname</th>
<th>Age</th>
<th>Hometown</th>
<th>Job</th>
</tr>";
while($row = mysqli_fetch_array($result)) {
echo "<tr>";
echo "<td>" . $row['FirstName'] . "</td>";
echo "<td>" . $row['LastName'] . "</td>";
echo "<td>" . $row['Age'] . "</td>";
echo "<td>" . $row['Hometown'] . "</td>";
echo "<td>" . $row['Job'] . "</td>";
echo "</tr>";
}
echo "</table>";
mysqli_close($con);
?>
</body>
</html>
<html>
<head>
<script>
function showCD(str) {
if (str=="") {
document.getElementById("txtHint").innerHTML="";
return;
}
if (window.XMLHttpRequest) {
// code for IE7+, Firefox, Chrome, Opera,
Safari xmlhttp=new XMLHttpRequest();
} else { // code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function() {
if (this.readyState==4 && this.status==200) {
document.getElementById("txtHint").innerHTML=this.responseText;
}
}
xmlhttp.open("GET","getcd.php?q="+str,true);
xmlhttp.send();
}
</script>
</head>
<body>
<form>
Select a CD:
<select name="cds" onchange="showCD(this.value)">
<option value="">Select a CD:</option>
<option value="Bob Dylan">Bob Dylan</option>
<option value="Bee Gees">Bee Gees</option>
<option value="Cat Stevens">Cat Stevens</option>
</select>
</form>
<div id="txtHint"><b>CD info will be listed here...</b></div>
</body>
</html>
<?php
$q=$_GET["q"];
$x=$xmlDoc->getElementsByTagName('ARTIST');
$cd=($y->childNodes);
for ($i=0;$i<$cd->length;$i++) {
//Hanya memproses element node
if ($cd->item($i)->nodeType==1){
echo("<b>" . $cd->item($i)->nodeName . ":</b> ");
echo($cd->item($i)->childNodes->item(0)-
>nodeValue); echo("<br>");
}
}
?>
Ketika query CD dikirimkan dari JavaScript ke halaman PHP, hal-hal berikut terjadi:
• PHP membuat sebuah objek XML DOM.
• Menemukan semua element yang sesuai dengan nama yang dikirimkan
dari JavaScript.
• Mengeluarkan output berupa informasi album (mengirimkan ke
placeholder “txtHint”)
AJAX – Pencarian Langsung (Live Search)
AJAX bisa digunakan untuk membuat pencarian keyword yang lebih interaktif dan
user-friendly. Berikut adalah contoh program untuk melakukan pencarian melalui query
pada sebuah file XML “links.xml”. File ini bisa didownload pada link:
https://www.w3schools.com/php/links.xml . Kode program dari contoh program pencarian
adalah sebagai berikut:
<html>
<head>
<script>
function showResult(str) {
if (str.length==0) {
document.getElementById("livesearch").innerHTML="";
document.getElementById("livesearch").style.border="0px";
return;
}
if (window.XMLHttpRequest) {
// code for IE7+, Firefox, Chrome, Opera,
Safari xmlhttp=new XMLHttpRequest();
} else { // code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function() {
if (this.readyState==4 && this.status==200) {
document.getElementById("livesearch").innerHTML=this.responseText;
document.getElementById("livesearch").style.border="1px solid
#A5ACB2"; }
}
xmlhttp.open("GET","livesearch.php?q="+str,true);
xmlhttp.send();
}
</script>
</head>
<body>
<form>
<input type="text" size="30" onkeyup="showResult(this.value)">
<div id="livesearch"></div>
</form>
</body>
</html>
Penjelasan kode program:
Jika field input kosong (str.length==0), fungsi akan membersihkan kontent dari
placeholder livesearch dan keluar dari fungsi. Jika field input tidak kosong, fungsi
showResult() melakukan hal-hal berikut:
• Membuat objek XMLHttpRequest.
• Membuat fungsi yang akan dieksekusi ketika jawaban server adalah siap (ready).
• Mengirimkan permintaan off untuk sebuah file pada server.
• Memberitahukan bahwa sebuah parameter (q) ditambahkan ke URL (dengan
kontent field input)
Contoh kode program diatas menggunakan file “livesearch.php”. Kode
program dari file tersebut adalah sebagai berikut:
<?php
$xmlDoc=new DOMDocument();
$xmlDoc->load("links.xml");
$x=$xmlDoc->getElementsByTagName('link');
AJAX Polling
AJAX juga baik digunakan untuk menampilkan secara langsung hasil polling.
Berikut adalah contoh kode program untuk melakukan polling:
<html>
<head>
<script>
function getVote(int) {
if (window.XMLHttpRequest) {
// code for IE7+, Firefox, Chrome, Opera,
Safari xmlhttp=new XMLHttpRequest();
} else { // code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function() {
if (this.readyState==4 && this.status==200) {
document.getElementById("poll").innerHTML=this.responseText;
}
}
xmlhttp.open("GET","poll_vote.php?vote="+int,true);
xmlhttp.send();
}
</script>
</head>
<body>
<div id="poll">
<h3>Apakah kamu menyukai AJAX atau PHP?
</h3> <form>
Yes:
<input type="radio" name="vote" value="0"
onclick="getVote(this.value)"> <br>No:
<input type="radio" name="vote" value="1" onclick="getVote(this.value)">
</form>
</div>
</body>
</html>
<?php
$vote = $_REQUEST['vote'];
if ($vote == 0){
$yes = $yes + 1;
}
if ($vote == 1){
$no = $no + 1;
}
<h2>Result:</h2>
<table>
<tr>
<td>Yes:</td>
<td>
<img src="poll.gif" width='
<?php echo(100*round($yes/($no+$yes),2)); ?>
' height='20'>
<?php echo(100*round($yes/($no+$yes),2)); ?>%
</td>
</tr>
<tr>
<td>No:</td>
<td>
<img src="poll.gif" width='<?php echo (100*round($no/($no+$yes),2));
?>' height='20'>
<?php echo (100*round($no/($no+$yes),2)); ?>%
</td>
</tr>
</table>
TUGAS
1. Buatlah program web untuk menyimpan data survei yang disimpan didalam
database. Carilah library javascript diinternet untuk menampilkan grafik,
kemudian rangkum data-data hasil survei kedalam bentuk grafik.
2. Misalkan anda seorang programer yang diminta untuk membuat program web
untuk melakukan pemungutan suara pada PEMILU. Jumlah calon yang akan
dipilih adalah lima orang. Buatlah program web untuk pemilihan tersebut,
dimana setiap pemilih hanya bisa memilih satu kali.
BAB V
PENGENALAN DART
I. Tujuan Praktikum
1. Mahasiswa dapat mengenal apa itu Dart dan struktur awal beserta aturan penulisan
sintaks pada Dart.
2. Mahasiswa dapat mengenal variable, tipe data, operasi dasar dan operasi perhitungan
pada Dart.
3. Mahasiswa memahami percabangan dan pengulangan pada bahasa pemrograman Dart.
4. Mahasiswa dapat mengimplementasikan percabangan dan pengulangan pada Dart.
void introduce() {
print('Hi, my name is $name and I am $age years old.');
}
}
void main() {
Person person1 = Person('John', 30);
person1.introduce(); // output: Hi, my name is John and I am 30 years old.
}
void main() {
printHello(); // memanggil function printHello
}
Operator Penugasan
Operator Penugasan atau Assignment Operator digunakan untuk memberi tugas suatu
variable untuk melakukan suatu proses. Operator ini sering digunakan dalam
pemrograman untuk mengulangi suatu perintah, salah satunya adalah
increment/decrement.
Tabel 5.2 Operator Penugasan
Operator Pembanding
Operator Pembanding merupakan suatu operator yang digunakan untuk membandingkan
antara dua buah nilai . Hasil perbandingan dari operator ini adalah TRUE dan FALSE (
Tipe data BOOLEAN).
Tabel 5.3 Operator Pembanding
Operator Logika
Operator logika adalah suatu operator yang membandingkan dua bukan KONDISI , mirip
seperti dengan operator pembanding. Operator Logika ini menghasilkan nilai bertipe
BOOLEAN, yaitu TRUE dan FALSE.
Tabel 5.4 Operator Logika
5. Pemilihan
Terdapat dua buah statement untuk proses pemilihan, yaitu if dan switch. Kedua buah
statement tersebut digunakan untuk mengontrol eksekusi statement tergantung pada
kondisi yang ditentukan sebelumnya. Statement if dapat digunakan untuk menangani
pemilihan statement yang didasarkan atas : satu, dua, atau lebih dari dua kondisi. Statement
switchdigunakan untuk menyederhanakan kompleksitas statement if yang banyak
mengandung kondisi.
Bentuk umum penulisan statement if untuk satu kondisi
if (kondisi) {
// kode yang akan dijalankan jika kondisi bernilai true
}
Bentuk umum penulisan statement if untuk dua kondisi
if (kondisi) {
// kode yang akan dijalankan jika kondisi bernilai true
} else {
// kode yang akan dijalankan jika kondisi bernilai false
}
Bentuk umum penulisan statement if untuk tiga kondisi
if (kondisi1) {
// kode yang akan dijalankan jika kondisi 1 bernilai true
} else if (kondisi2) {
// kode yang akan dijalankan jika kondisi 2 bernilai benar
} else {
// kode yang akan dijalankan jika kondisi 1 dan 2 bernilai salah
}
6. Pengulangan
Perulangan For
Perulangan for digunakan ketika kita ingin melakukan pengulangan dengan jumlah
iterasi yang sudah diketahui sebelumnya. Berikut adalah bentuk umum perulangan for
pada bahasa Dart:
for (inisialisasi; kondisi; inkremen) {
// kode yang akan diulang
}
Perulangan While
Perulangan while digunakan ketika kita ingin melakukan pengulangan dengan kondisi
yang harus dipenuhi terlebih dahulu sebelum pengulangan dilakukan. Berikut adalah
bentuk umum perulangan while pada bahasa Dart:
while (kondisi) {
// kode yang akan diulang
}
Perulangan do-While
Perulangan do-while mirip dengan perulangan while, namun perbedaannya adalah
perulangan do-while akan selalu dijalankan minimal satu kali, bahkan jika kondisi tidak
terpenuhi. Berikut adalah bentuk umum perulangan do-while pada bahasa Dart:
do {
// kode yang akan diulang
} while (kondisi);
III. Praktikum
a. Sempurnakan serta pahami program sederhana berikut :
void main() {
// Meminta pengguna untuk memasukkan banyak bilangan
stdout.write('Masukkan banyak bilangan: ');
int n = int.parse(stdin.readLineSync()!);
int total = 0;
void main() {
stdout.write('Masukkan teks: ');
String teks = stdin.readLineSync()!;
IV. Praktikum
1. Buatlah sebuah variabel list di dalam sebuah map dan tampilkan hasilnya.
2. Buatlah sebuah variabel list yang berisikan map dan tampilkan hasilnya.
3. Tambah, edit dan hapus pada variable list berikut:
void main() {
List<int> angka = [1, 2, 3, 4, 5];
}
BAB VI
FLUTTER
I. Tujuan Praktikum
1. Mahasiswa dapat mengenal apa itu Flutter
2. Mahasiswa dapat memahami widget – widget dasar pada Flutter
Statefull Widget
StatefulWidget, di sisi lain, adalah jenis widget yang dapat berubah dan memiliki keadaan
(state). Widget ini dapat menerima masukan dari pengguna, merespon keadaan sistem, dan
mengubah tampilan. Contoh widget yang termasuk dalam kategori StatefulWidget adalah
Checkbox, TextField, dan DropdownButton.
Berikut adalah contoh penggunaan StatefulWidget sederhana:
@override
Widget build(BuildContext context) {
return Checkbox(
value: _isChecked,
onChanged: (value) {
setState(() {
_isChecked = value!;
});
},
);
}
}
3. Widgets
Widget pada Flutter adalah bahan dasar dalam pembuatan antarmuka pengguna (user
interface). Widget adalah objek visual yang dapat ditampilkan pada layar, seperti tombol,
teks, gambar, input field, dan sebagainya. Pada Flutter, hampir semua hal yang dapat
dilihat di layar adalah widget.
- Container
Widget ini digunakan untuk menampilkan sebuah kotak (box) di layar, dan dapat
digunakan untuk mengatur ukuran dan posisi widget lain di dalamnya. Contoh:
Container(
width: 100,
height: 100,
color: Colors.red,
);
- Text
Widget ini digunakan untuk menampilkan teks pada layar.
Text('Hello, world!'),
Column(
children: [
Text('Item 1'),
Text('Item 2'),
Text('Item 3'),
],
);
Row
Row digunakan untuk mengatur widget secara horizontal, seperti baris dari sebuah tabel
atau baris menu. Contoh penggunaan Row adalah sebagai berikut:
Row(
children: <Widget>[
Text('Item 1'),
Text('Item 2'),
Text('Item 3'),
],
);
Stack
Stack digunakan untuk menumpuk widget satu di atas yang lain. Widget yang
didefinisikan terakhir akan ditampilkan di atas widget yang didefinisikan sebelumnya.
Contoh penggunaan Stack adalah sebagai berikut:
Stack(
children: [
Container(
height: 200,
width: 200,
color: Colors.red,
),
Container(
height: 100,
width: 100,
color: Colors.blue,
),
Container(
height: 50,
width: 50,
color: Colors.amber,
)
],
)
- List View
Widget ini digunakan untuk menampilkan daftar (list) widget, baik secara vertikal
maupun horizontal.
ListView(
children: [
Text('Item 1'),
Text('Item 2'),
Text('Item 3'),
],
);
- Elevated Button
Widget ini digunakan untuk membuat sebuah tombol dengan latar belakang yang
menonjol.
ElevatedButton(
onPressed: () {
// Aksi yang dilakukan saat tombol ditekan
},
child: Text('Press me!'),
);
- Text Field
Widget ini digunakan untuk membuat input field yang dapat diisi oleh pengguna.
TextField(
decoration: InputDecoration(
hintText: 'Enter your name',
),
);
III. Praktikum
a. Buatlah Tampilan seperti gambar dibawah ini :