Anda di halaman 1dari 214

Modul Praktikum Pemrograman Web 2

MODUL PRAKTIKUM

PEMROGRAMAN WEB 2

SMK NEGERI 1 PARIWISATA JAYAPURA

1
DAFTAR ISI

PRAKTIKUM 1 PHP LANJUTAN : ARRAY DAN FUNGSI ....................................................... 6


1.1 TUJUAN PRAKTIKUM .................................................................................... 6
1.2 TEORI SINGKAT............................................................................................ 6
1.2.1 Array ...................................................................................................... 6
1.2.2 Fungsi..................................................................................................... 9
1.3 PELAKSANAAN PRAKTIKUM ....................................................................... 10
1.4 LATIHAN ..................................................................................................... 16
PRAKTIKUM 2 PHP LANJUTAN : PENANGANAN FILE........................................................19
2.1 TUJUAN PRAKTIKUM .................................................................................. 19
2.2 TEORI SINGKAT.......................................................................................... 19
2.2.1 Penanganan File................................................................................... 19
2.2.2 Penanganan Direktori .......................................................................... 20
2.2.3 Mendapatkan informasi file.................................................................. 21
2.2.4 Mengupload File ................................................................................... 21
2.3 PELAKSANAAN PRAKTIKUM ....................................................................... 22
2.4 LATIHAN ..................................................................................................... 31
2.5 TUGAS MANDIRI ........................................................................................ 32
PRAKTIKUM 3 PEMROGRAMAN BERORIENTASI OBJEK....................................................33
3.1 TUJUAN PRAKTIKUM .................................................................................. 33
3.2 TEORI SINGKAT.......................................................................................... 33
3.2.1 Pengenalan Pemrograman Beriorientasi Objek ................................... 33
3.2.2 Object dan Class................................................................................... 34
3.2.3 Properties dan Method ......................................................................... 35
3.2.4 Mendefinikan Class .............................................................................. 35
3.3 PELAKSANAAN PRAKTIKUM ....................................................................... 38
3.4 LATIHAN ..................................................................................................... 43
3.5 TUGAS MANDIRI ........................................................................................ 44
PRAKTIKUM 4 PHP FRAMEWORK #1..............................................................................46
4.1 TUJUAN PRAKTIKUM .................................................................................. 46
4.2 TEORI SINGKAT.......................................................................................... 46
4.2.1 Pengenalan Framework ....................................................................... 46
4.2.2 Pengenalan Codeigniter ....................................................................... 47
4.2.3 Diagram Alur Aplikasi Codeigniter ....................................................... 47
4.2.4 Konsep Model-View-Controller (MVC).................................................. 48
4.3 PELAKSANAAN PRAKTIKUM ....................................................................... 49
4.4 LATIHAN ..................................................................................................... 57
4.5 TUGAS MANDIRI ........................................................................................ 58
PRAKTIKUM 5 PHP FRAMEWORK #2..............................................................................59
5.1 TUJUAN PRAKTIKUM .................................................................................. 59
5.2 TEORI SINGKAT.......................................................................................... 59
5.2.1 Controller ............................................................................................. 59
5.2.2 Views.................................................................................................... 61
5.2.3 Model ................................................................................................... 61
5.2.4 Konfigurasi Base URL dan Index .......................................................... 62
5.2.5 Konfigurasi Database ........................................................................... 63
5.2.6 Bekerja Dengan Database .................................................................... 64
5.3 PELAKSANAAN PRAKTIKUM ....................................................................... 66
5.4 LATIHAN ..................................................................................................... 78
5.5 TUGAS MANDIRI ........................................................................................ 79
PRAKTIKUM 6 PHP FRAMEWORK #3..............................................................................80
6.1 TUJUAN PRAKTIKUM .................................................................................. 80
6.2 TEORI SINGKAT.......................................................................................... 80
6.2.1 Library Form Validation........................................................................ 80
6.2.2 Library Upload...................................................................................... 81
6.2.3 Library Email ........................................................................................ 81
6.3 PELAKSANAAN PRAKTIKUM ....................................................................... 82
6.4 LATIHAN ..................................................................................................... 94
6.5 TUGAS MANDIRI ........................................................................................ 95
PRAKTIKUM 7 PHP FRAMEWORK #4..............................................................................97
7.1 TUJUAN PRAKTIKUM .................................................................................. 97
7.2 TEORI SINGKAT.......................................................................................... 97
7.2.1 Library Table ........................................................................................ 97
Modul Praktikum Pemrograman Web 2 (PG066)
7.2.2 Library Pagination................................................................................ 97
7.3 PELAKSANAAN PRAKTIKUM ....................................................................... 99
7.4 LATIHAN ....................................................................................................108
7.5 TUGAS MANDIRI .......................................................................................109
PRAKTIKUM 8 UJIAN TENGAH SEMESTER ....................................................................111
PRAKTIKUM 9 AJAX DAN JQUERY................................................................................112
9.1 TUJUAN PRAKTIKUM .................................................................................112
9.2 TEORI SINGKAT.........................................................................................112
9.2.1 Pengenalan JQuery .............................................................................112
9.2.2 Cara Menggunakan JQuery .................................................................114
9.2.3 Selector Jquery ...................................................................................115
9.2.4 AJAX ....................................................................................................116
9.2.5 Cara Kerja AJAX ..................................................................................117
9.2.6 JQUERY DAN AJAX ..............................................................................117
9.3 PELAKSANAAN PRAKTIKUM ......................................................................118
9.4 LATIHAN ....................................................................................................124
9.5 TUGAS MANDIRI .......................................................................................124
PRAKTIKUM 10 CRUD DENGAN AJAX DAN JQUERY .......................................................126
10.1 TUJUAN PRAKTIKUM ..............................................................................126
10.2 TEORI SINGKAT......................................................................................126
10.2.1 CRUD................................................................................................126
10.3 PELAKSANAAN PRAKTIKUM ...................................................................126
10.4 LATIHAN.................................................................................................140
10.5 TUGAS MANDIRI ....................................................................................141
PRAKTIKUM 11 LAPORAN GRAFIK ...............................................................................142
11.1 TUJUAN PRAKTIKUM ..............................................................................142
11.2 TEORI SINGKAT......................................................................................142
11.2.1 Laporan Grafik .................................................................................142
11.2.2 Chartjs .............................................................................................142
11.3 PELAKSANAAN PRAKTIKUM ...................................................................144
11.4 LATIHAN.................................................................................................151
11.5 TUGAS MANDIRI ....................................................................................153
PRAKTIKUM 12 LAPORAN PDF ....................................................................................154
Modul Praktikum Pemrograman Web 2
12.1 TUJUAN PRAKTIKUM ..............................................................................154
12.2 TEORI SINGKAT......................................................................................154
12.2.1 Laporan PDF.....................................................................................154
12.2.2 FPDF.................................................................................................154
12.3 PELAKSANAAN PRAKTIKUM ...................................................................155
12.4 LATIHAN.................................................................................................164
12.5 TUGAS MANDIRI ....................................................................................166
PRAKTIKUM 13 LAPORAN SPREADSHEET .....................................................................167
13.1 TUJUAN PRAKTIKUM ..............................................................................167
13.2 TEORI SINGKAT......................................................................................167
13.2.1 Laporan Spreadsheet .......................................................................167
13.2.2 PHPSpreadsheet ..............................................................................167
13.3 PELAKSANAAN PRAKTIKUM ...................................................................168
13.4 LATIHAN.................................................................................................178
13.5 TUGAS MANDIRI ....................................................................................181
PRAKTIKUM 14 APLIKASI PHP FRAMEWORK #1 ...........................................................182
14.1 TUJUAN PRAKTIKUM ..............................................................................182
14.2 TEORI SINGKAT......................................................................................182
14.2.1 Aplikasi Penjualan............................................................................182
14.3 PELAKSANAAN PRAKTIKUM ...................................................................182
14.4 LATIHAN.................................................................................................195
14.5 TUGAS MANDIRI ....................................................................................196
PRAKTIKUM 15 APLIKASI PHP FRAMEWORK #2 ...........................................................197
15.1 TUJUAN PRAKTIKUM ..............................................................................197
15.2 TEORI SINGKAT......................................................................................197
15.2.1 Aplikasi Penjualan............................................................................197
15.3 PELAKSANAAN PRAKTIKUM ...................................................................197
15.4 LATIHAN.................................................................................................207
15.5 TUGAS MANDIRI ....................................................................................209
PRAKTIKUM 1
PHP LANJUTAN : ARRAY DAN FUNGSI

1.1 TUJUAN PRAKTIKUM


Tujuan Umum

Mahasiswa mengetahui penggunaan array dan fungsi pada PHP

Tujuan Khusus
1. Mahasiswa dapat mendeklarasikan dan menggunakan array.
2. Mahasiswa dapat membuat fungsi dan menggunakannya

1.2 TEORI SINGKAT


1.2.1 Array

Array merupakan sebuah tipe data terstruktur yang berguna untuk menyimpan
sejumlah data yang bertipe sama. Bagian yang menyusun array disebut elemen
array, yang masing-masing elemen dapat diakses tersendiri melalui index array.
Index array dapat berupa bilangan integer atau string.

Untuk mendeklarasikan atau mendefinisikan sebuah array di PHP bisa menggunakan


keyword array().

1.2.1.1 Array Numeric

Array yang indexnya berupa angka disebut dengan array numeric. Index array ini
dimulai dengan angka 0. Ada 2 cara untuk mendeklarasikan array numeric, yaitu

a. $var = array(“Mobil”,”Motor”,”Sepeda”);
Dengan cara di atas deklarasi array langsung diikuti dengan menyebutkan
value/nilai array. Mobil memiliki index 0, Motor index 1 dan Sepeda index 2

b. $var = array();
$var[] =
“Mobil”;
$var[] =
“Motor”;
$var[] = “Sepeda”;

Dengan cara di atas dibuat sebuah variabel dengan tipe data array yang
isinya masih kosong. Kemudian untuk mengisinya dengan menulis nama
variable diikuti []. Mobil memiliki index 0, Motor index 1 dan Sepeda index 2

1.2.1.2 Array String / Array Asosiatif

Untuk mendeklarasikan atau mendefinisikan sebuah array assosiatif (array yang


menggunakan index selain integer), dapat dengan cara menyebutkan indexnya
terlebih dahulu diikuti operator => dan diikuti value atau nilai elemennya.
Ada 2 cara untuk mendeklarasikan array string, yaitu :

a. $var = array(“PG065”=>”PW1”, ”PG066”=>“PW2”);


Dengan cara di atas deklarasi array langsung diikuti dengan menyebutkan
value/nilai array. PW1 memiliki index PG065 dan PW2 memiliki index PG066

b. $var = array();
$var[„PG065‟] = “PW1”;
$var[„PG066‟] = “PW2”;

Dengan cara di atas dibuat sebuah variabel dengan tipe data array yang
isinya masih kosong. Kemudian untuk mengisinya dengan menulis nama
variable diikuti [].PW1 memiliki index PG065 dan PW2 memiliki index PG066

1.2.1.3 Mencetak Seluruh Isi Array

Untuk mencetak seluruh isi sebuah array bisa menggunakan fungsi perulangan for()
dan foreach(). Bentuk umum fungsi for untuk mencetak seluruh isi array numeric
for($i=0;$i<count($var);$i++){

echo $var[$i];

Bentuk umum fungsi foreach untuk mencetak seluruh isi array numeric

foreach($var as$data){

echo $data;

Bentuk umum fungsi foreach untuk mencetak seluruh isi array string

foreach($var as $index=>$value){

echo “Index $index isi $value”;

1.2.1.4 Mencetak Struktur Array

Untuk mencetak struktur array bisa menggunakan fungsi print_r(). Fungsi ini akan
menampilkan index array dan valuenya sehingga mudah dibaca

1.2.1.5 Fungsi Dalam Array

Fungsi Pengurutan Array

• arsort() – Pengurutan array berdasarkan value secara descending


• asort() – Pengurutan array berdasarkan value secara ascending
• krsort() - Pengurutan array berdasarkan index/key secara descending
• ksort() - Pengurutan array berdasarkan index/key secara ascending
• rsort() - Pengurutan array berdasarkan value secara descending dengan
mengubah index/key
• sort() - Pengurutan array berdasarkan value secara ascending dengan
mengubah index/key
• shuffle() – Random pengurutan array

Fungsi Pengaturan Pointer Array

• current() – Mendapatkan elemen array yang ditunjuk oleh pointer


• end() – Pointer menunjuk pada elemen array terakhir
• key() – Mendapatkan key yang ditunjuk oleh pointer
• next() – Pointer menunjuk pada elemen selanjutnya
• prev() – Pointer menunjuk pada elemen sebelumnya
• reset() – Memindahkan pointer array ke awal (elemen pertama)
• count() – Menghitung jumlah elemen array

Fungsi Pencarian pada Array

• array_search() – Mencari posisi (key) dari suatu value dalam array


• array_key_exists() – Memeriksa suatu key ada dalam array atau tidak
• in_array() – Memeriksa suatu elemen ada dalam array atau tidak

1.2.2 Fungsi

Fungsi atau function adalah bagian program yang dirancang untuk menyelesaikan
tugas tertentu. Sebuah fungsi bisa dibuat dengan menggunakan keyword
function(). Sebuah fungsi bisa dibuat tanpa parameter, maupun dengan parameter.

Berikut ini adalah format untuk membuat/deklarasi sebuah fungsi

Function nama_fungsi(parameter1,parameter2,…,parameter2){

Statement;

}
Fungsi yang dibuat bisa dipanggil dari bagian lain dengan cara menyebutkan nama
fungsinya. Jumlah parameter saat pemanggilan fungsi, sesuai dengan jumlah
parameter saat deklarasi fungsi.

1.3 PELAKSANAAN PRAKTIKUM


1) Di bawah ini adalah contoh pendeklarasian array numeric. Ketik
menggunakan notepad++ dan jalankan pada browser.
Program 1.1 : arraynumerik.php

Berikut ini adalah tampilannya pada browser

2) Apa yang tercetak di browser jika pada baris 12 program di atas ditambahkan
kode berikut:
Echo $var[5];
3) Di bawah ini adalah contoh menampilkan array string dan array numeric.
Ketik menggunakan notepad++ dan jalankan pada browser.

Program 1.2 : arraystring.php

Berikut ini adalah tampilannya pada browser

4) Apa yang tercetak di browser jika pada baris 12 program di atas ditambahkan
kode berikut:
Echo $var[„pg066‟];
Modul Praktikum Pemrograman Web 2 (PG066)

5) Di bawah ini adalah contoh menampilkan isi array numeric dan array string.
Ketik menggunakan notepad++ dan jalankan pada browser.

Program 1.3 tampilarray.php

Berikut ini adalah tampilannya pada browser


Modul Praktikum Pemrograman Web

6) Modifikasi program 1.3 di atas sehingga tampilan array $var2 pada browser
menjadi sebagai berikut :

7) Di bawah ini adalah contoh pendeklarasian sebuah fungsi serta cara


pemanggilannya.
Program 1.4 fungsi.php

Berikut ini adalah tampilannya pada browser

8) Apa yang tercetak di layar jika pada baris 17 program di atas ditambahkan
perintah :
Cetakbiodata($a)
9) Di bawah ini adalah contoh pendeklarasian sebuah fungsi yang memiliki
return value serta cara pemanggilannya.

Program 1.5 fungsi2.php

Berikut ini adalah tampilannya pada browser


1.4 LATIHAN
1) Sebuah variable array numeric memiliki nilai sebagai berikut :
10,13,15,20,24,30,33,40,46,50,100
Lakukan pembacaan terhadap variable array tersebut dan munculkan di layar
nilai yang merupakan kelipatan 5!

2) Sebuah variable array berisi data sebagai berikut


$nilai = array(“uts”=>50,”tugas”=>70,”uas”=>100)
Tampilkan nilai akhir di layar jika diketahui rumus untuk menghitung nilai
akhir adalah :
Nilai akhir = 0.4*uts + 0.2*tugas + 0.2*uas
3) Buatlah sebuah fungsi yang memiliki 1 parameter dan sebuah return value.
Parameter berupa bilangan bulat. Return value berupa “genap” atau “ganjil”
tergantung dari parameter yang diberikan :

Jawab no 3 :

1.5 TUGAS MANDIRI


1) Apa perbedaan antara array numeric dan array string ?
Jawab : Numeric array merupakan jenis array dimana index elemen yang
terdapat didalamnya di definisikan dengan angka, biasanya index
pertama dimulai dengan angka “0” dan seterusnya. Sedangkan array
string merupakan sekumpulan karakter yang sebenarnya tersimpan
dalam suatu array tidak hanya sebuah angka, namun bisa berupa
karakter.

2) Apa keuntungan menggunakan function untuk sebuah aplikasi dengan


lingkup besar?
Jawab :

- Menguraikan tugas pemrograman rumit menjadi langkah-


langkah yang lebih sederhana atau kecil.

- Mengurangi duplikasi kode (kode yang sama ditulis berulang-


ulang) dalam program

3) Buatlah sebuah form untuk menginput jam masuk dan jam keluar sebuah
kendaraan pada tempat parkir. Buatlah fungsi untuk menghitung tarif
parkirnya jika aturannya sebagai berikut
• 2 jam pertama Rp 2000
• 1 jam berikutnya Rp 500
• Maksimal Rp 10000

Jawab No 3:
4) Diketahui sebuah array sebagai berikut
$mhs[] = array(„nim‟=>„1611500121‟,‟nama‟=>‟wahyu‟,‟grade‟=>‟A‟);
$mhs[] = array(„nim‟=>„1611500122‟,‟nama‟=>‟yudi‟,‟grade‟=>‟B‟);
$mhs[] = array(„nim‟=>„1611500123‟,‟nama‟=>‟dimas‟,‟grade‟=>‟C‟);
$mhs[] = array(„nim‟=>„1611500124‟,‟nama‟=>‟udin‟,‟grade‟=>‟D‟);

Lakukan pembacaan terhadap array tersebut dan munculkan hasilnya


seperti di bawah ini. Untuk keterangan didapatkan dari :
• Grade A, B, C = Lulus
• Grade D,E = Tidak Lulus
PRAKTIKUM 2
PHP LANJUTAN : PENANGANAN FILE

2.1 TUJUAN PRAKTIKUM


Tujuan Umum

Mahasiswa mengetahui penggunaan fungsi yang berhubungan dengan penanganan


file pada PHP

Tujuan Khusus
1. Mahasiswa dapat menggunakan fungsi untuk penanganan file
2. Mahasiswa dapat menggunakan fungsi untuk penanganan direktori
3. Mahasiswa dapat membuat form untuk upload file

2.2 TEORI SINGKAT


2.2.1 Penanganan File

Dalam management file dan direktori, PHP menyediakan lebih dari 70 fungsi.
Beberapa fungsi utama yang berhubungan dengan management file (create, write,
append, dan delete), antara lain :

• Membuka dan membuat file


Untuk membuka dan membuat file pada PHP digunakan fungsi fopen dengan
bentuk umum
fopen($nama_file, $modeakses);

$nama_file merupakan nama file yang akan dibuat, sedangkan $modeakses


merupakan mode akses file. Mode akses file yang bisa digunakan yaitu :
Mode Keterangan
r Hanya untuk baca file, pointer berada di awal file
r+ Untuk baca dan tulis file, pointer berada di awal file
w Hanya untuk tulis file, isi file lama dihapus, jika file belum
ada maka akan di-create
w+ Untuk baca dan tulis file, isi file lama dihapus, jika file
belum ada maka akan di-create
a Hanya untuk menambahkan isi file, pointer berada di akhir
file, jika file belum ada maka di-create
a+ Untuk membaca dan menambahkan isi file, pointer berada
di akhir file, jika file belum ada maka di-create

• Menulis ke dalam file


Untuk menulis ke dalam file gunakan salah satu dari fungsi berikut :
fwrite ($handle, $isi);
fputs ($handle, $isi);

Variabel $handle merupakan mode pengaksesan file, dimana mode yang


digunakan harus bisa menulis ke file. Contohnya mode w dan a

• Membaca isi file


Untuk membaca isi file gunakan salah satu dari fungsi berikut
fread ($handle [,$panjang]);
fgets ($handle [,$panjang]);

Fungsi fgets() akan membaca isi file tiap baris. Sedangkan fungsi fread() akan
membaca isi file setiap jumlah byte tertentu.

2.2.2 Penanganan Direktori


• Membuat direktori
mkdir($nama_direktori)
• Menghapus direktori
rmdir($nama_direktori)
Fungsi rmdir() hanya bisa menghapus direktori kosong. Jika direktori ada
isinya maka, gunakan fungsi rekursif untuk menghapus isi direktori.
• Membuka direktori
opendir($nama_direktori)
• Menutup direktori
closedir($nama_direktori)\
• Membaca isi direktori
readdir($nama_direktori)

2.2.3 Mendapatkan informasi file

Beberapa fungsi yang berhubungan dengan informasi file bisa dilihat pada table
berikut

file_exists($file) Memeriksa apakah $file ada atau tidak


is_file($file) Memeriksa apakah $file adalah file atau bukan
is_dir($file) Memeriksa apakah $file adalah direktori atau bukan.
is_executable($file) Memeriksa apakah $file termasuk file yang bisa
dijalankan secara langsung atau bukan.
is_writable($file) Memeriksa apakah $file termasuk file yang bisa ditulis
atau diedit.
is_readable($file) Memeriksa apakah $file termasuk file yang bisa dibaca
atau tidak.
fileatime($file) Menghasilkan waktu akses terakhir file (unix
timestamp).
filectime($file) Menghasilkan waktu pembuatan file (unix timestamp).
filemtime($file) Menghasilkan waktu modifikasi terakhir file ( dalam
unix timestamp).
filesize($file) Menghasilkan ukuran besar file (dalam byte).
filetype($file) Menghasilkan jenis file.

2.2.4 Mengupload File

PHP, sebagai server-side-scripting, sangat memungkinkan untuk menangani upload


file ke server. Ada beberapa hal yang perlu diperhatikan dalam upload file ini, yaitu :
1. Pada Form HTML harus ditambahkan atribut :

ENCTYPE="multipart/form-data"

2. Form inputan upload file dapat menggunakan tag <input> dengan value

atribut TYPE=”FILE”.

3. Untuk menangani inputan, PHP menyediakan sebuah variabel array global

yaitu $_FILES. Index dari variabel ini antara lain :

• $_FILES[„file‟][„name‟] : Nama asli dari file yang diupload


• $_FILES[„file‟][„tmp_name‟] : Nama temporary file yang diupload
• $_FILES[„file‟][„size‟] : Ukuran file asli (dalam byte)
• $_FILES[„file‟][„type‟] : MIME type file yang diupload

4. Destination folder file upload harus bisa writable (bisa diakses), biasanya dengan
permission 777 atau 775.

2.3 PELAKSANAAN PRAKTIKUM


1) Di bawah ini adalah contoh program membuat file. Ketik
menggunakan notepad++ dan jalankan pada browser.
Program 2.1 file1.php

Berikut ini tampilannya pada browser


2) Apa yang muncul di browser jika mode akses yang dipakai pada program
2.1 di atas adalah “w”? Jelaskan!

3) Di bawah ini adalah contoh program menulis ke dalam file. Ketik


menggunakan notepad++ dan jalankan pada browser.
Program 2.2 : file2.php
Berikut ini tampilannya pada browser

Jika file data.txt dibuka menggunakan notepad++ isinya sebagai berikut

4) Di bawah ini adalah contoh program membaca isi file. Ketik menggunakan
notepad++ dan jalankan pada browser.
Program 2.3 file3.php

Pada program di atas fungsi fgets akan membaca sebanyak 2048 karakter
dan fungsi fread akan membaca sebanyak 20 karakter saja.
Hasil pada browser

5) Apa yang terjadi pada program di atas, jika pada baris ke-3 mode akses file
diganti menjadi “a”?

6) Di bawah ini adalah contoh program membaca isi file baris hingga baris
sampai selesai.
Program 2.4 file4.php

Ini hasilnya jika dijalankan menggunakan browser

7) Di bawah ini adalah contoh program untuk membuat user counter yang
disimpan ke dalam file
Program 2.5 file5.php

Hasil dari program di atas sebagai berikut

8) Modifikasi program di atas untuk menampilkan user counter dalam bentuk


gambar. Sebelumnya siapkan file gambar 0.jpg, 1.jpg, …, 9.jpg!
9) Di bawah ini adalah contoh program untuk membuat dan menghapus
direktori. Ketik pada notepad++ dan jalankan pada browser
Program 2.6 direktori.php

Berikut ini hasilnya pada browser

10) Di bawah ini adalah contoh program untuk membaca dan


menampilkan seluruh isi file yang ada di sebuah direktori. Ketik pada
notepad++ dan jalankan pada browser
Program 2.7 isidirektori.php

Program akan menampilkan di layar, semua file dan direktori yang berada
dalam direktori “images”. Fungsi opendir() pada baris ke-3 adalah untuk
membuka direktori. Sedangkan fungsi readdir() akan membaca file dalam
direktori satu per satu secara urut. Fungsi closedir() pada baris ke-9 adalah
untuk menutup pembukaan direktori.

11) Di bawah ini adalah contoh program untuk mendapatkan informasi


sebuah file.
Program 2.8 infofile.php

Berikut tampilannya pada browser


12) Contoh program di bawah ini digunakan untuk upload file. Ada 2 file
yang digunakan yaitu form_upload.php yang berfungsi sebagai form untuk
memilih file dan upload.php yang berfungsi untuk memproses file yang
akan diupload. Yang dijalankan pada browser adalah upload.php

Program 2.9 form_upload.php

Program 2.10 upload.php


2.4 LATIHAN
1) Buatlah sebuah program untuk mengupload sebuah file dengan ketentuan
file yang diupload hanya file doc, docx, pdf, xls, xlsx dengan ukuran
maksimal 1MB!
2) Buatlah sebuah program untuk menginput nama mahasiswa dan simpan
data tersebut ke dalam file mahasiswa.txt. Setiap kali data diinput, isi file
akan bertambah

3) Buatlah program untuk menampilkan seluruh nama mahasiswa yang ada


di dalam file
mahasiswa.txt
2.5 TUGAS MANDIRI
1) Buatlah program untuk menghapus sebuah direktori yang di dalamnya
terdapat beberapa direktori dan file!

2) Apa yang dimaksud dengan mode permission 777 pada sebuah direktori?

Jawab : -rwxrwxrwx 777 Pemilik, kelompok dan orang lain bisa


membaca(melihat), menulis(merubah) dan menjalankan.

3) Apa kelebihan dan kekurangan menyimpan data di dalam file


dibandingkan di dalam database?

Jawab :
- DBMS mengurangi dataganda (data redundancy) dengan cara
menghilangkan unsur-unsur data yang
sama.-
- Ini merupakan salah satu keunggulan dari pengelolaan data dengan
sistem database, dimana anda dapat saling berbagi dalam penggunaan
file, baik bersifat jaringan maupun client server.
- Untuk manajemen data Database lebih unggul,

- Data yang tersimpan pada database dapat dipastikan lebih aman


dibanding dengan Menyimpan file biasa.
PRAKTIKUM 3
PEMROGRAMAN BERORIENTASI OBJEK

3.1 TUJUAN PRAKTIKUM


Tujuan Umum

Mahasiswa mengetahui dasar pemrograman berorientasi objek pada PHP

Tujuan Khusus
1. Mahasiswa dapat membuat sebuah class
2. Mahasiswa dapat membuat method
3. Mahasiswa dapat membuat object dari sebuah class dan memanggil method
yang ada di dalamnya

3.2 TEORI SINGKAT


3.2.1 Pengenalan Pemrograman Beriorientasi Objek

PHP pada awalnya hanyalah kumpulan script sederhana. Dalam perkembangannya,


selanjutnya ditambahkan berbagai fitur pemrograman berorientasi objek. Hal ini
dimulai sejak PHP 4. Dengan lahirnya PHP 5, fitur-fitur pemrograman berorientasi
objek semakin mantap dan semakin cepat. Dengan PHP 5, script yang menggunakan
konsep object-oriented akan lebih cepat dan lebih efisien.

Pemrograman berorientasi objek atau object-oriented programming (OOP)


merupakan suatu pendekatan pemrograman yang menggunakan object dan class.
Saat ini konsep OOP sudah semakin berkembang. Hampir setiap perguruan tinggi di
dunia mengajarkan konsep OOP ini pada mahasiswanya. Pemrograman yang banyak
dipakai dalam penerapan konsep OOP adalah Java dan C++.
OOP bukanlah sekedar cara penulisan sintaks program yang berbeda, namun lebih
dari itu, OOP merupakan cara pandang dalam menganalisa system dan
permasalahan pemrograman. Dalam OOP, setiap bagian dari program adalah object.
Sebuah object mewakili suatu bagian program yang akan diselesaikan.

Beberapa konsep OOP dasar, antara lain :

1. Encapsulation (Class dan Object)

2. Inheritance (Penurunan sifat), dan

3. Polymorphisme

3.2.2 Object dan Class

Bagian dasar dari sebuah program yang berorientasi objek adalah objects. Secara
mudah kita dapat memahami mengenai object ini. Sebagai contoh, sebuah mobil
adalah objek. Sebuah mobil mempunyai properties atau bagian-bagian di dalamnya,
seperti warna, mesin, roda, pintu dsb. Sebuah mobil juga dapat melakukan sesuatu
(ada sesuatu yang bisa dilakukan dengan mobil), seperti mengisi bensin,
menyalakan mesin, berjalan, mengerem dsb.

Biasanya object adalah sebuah kata benda. Orang adalah object. Demikian juga
mobil, pohon, bunga, komputer, TV, buku dsb. Namun, object tidak selamanya
sebuah objek fisik. Bisa saja sebuah benda abstrak, seperti account bank, sebuah
file di komputer, database, pesan email, acara TV, dsb.

Class merupakan penjelasan atau deskripsi dari object. Di dalam class, terdapat
penjelasan tentang suatu object termasuk properties yang dimilikinya serta kelakuan
atau method yang bisa dilakukan oleh object. Sebagai contoh, class Orang. Class
Orang tentu setidaknya memiliki beberapa bagian seperti tangan, kaki, mata, telinga
dsb. Class Orang juga setidaknya harus bisa jalan, bisa loncat, bisa lari, bisa melihat,
bisa bicara dsb.
Salah satu keuntungan program didefinisikan dengan konsep OOP adalah adanya
pengkapsulan (encapsulation) program dalam class dan object, dimana programmer
yang menggunakan class tidak perlu mengetahui isi dan jalannya class secara detail,
hanya perlu tahu bagaimana cara menggunakannya. Sama halnya dengan sebuah
mobil misalnya. Seorang pemilik mobil tentunya tidak perlu mengetahui bagian-
bagian mobil secara menyeluruh. Dia tidak perlu mengetahui bagaimana mesin
mobil melakukan pembakaran dan bagaimana mesin mobil bisa menggerakkan roda,
dsb. Dia hanya perlu tahu bagaimana cara menjalankan mobil, bagaimana
menghentikan mobil, dan fungsi mobil lainnya.

3.2.3 Properties dan Method

Setiap class memiliki properties yang kadang disebut juga attributes. Properties dari
sebuah mobil misalnya warna, ukuran, harga dsb. Di dalam class, properties
dinyatakan dengan sebuah variabel. Misalnya $warna, $harga, dsb.

Method merupakan sesuatu yang bisa dilakukan oleh object. Method dalam PHP
sama artinya dengan sebuah fungsi. Method yang mungkin dipunyai dari sebuah
mobil misalnya, method untuk menghidupkan mobil, menjalankan mobil,
menghentikan mobil, dsb.

Penamaan properties dan method memiliki aturan yang sama dengan penamaan
sebuah variabel atau fungsi. Akan tetapi berdasarkan kesepakatan (convention),
penamaan properties dan method harus menggunakan camel Caps, dimana tiap kata
diawali dengan huruf besar kecuali kata pertama, setiap kata digabung tanpa spasi
atau under-score (_).

3.2.4 Mendefinikan Class

Bentuk umum untuk mendefinisikan sebuah class adalah sebagai berikut :

class namaClass

{
Deklarasikan dan definisikan properties di
sini

Definisikan semua method di


sini

Penamaan namaClass pada dasarnya sama dengan penamaan variabel. Penamaan


bebas, boleh apa saja, kecuali stdClass. PHP sudah menggunakan nama stdClass
sebagai nama class built-in. Isi tubuh class terletak di antara tanda kurung kurawal
buka ( { ) dan kurawal tutup ( } ). Di tubuh class terdapat pendefinisian properties
(variabel) dan method-method class.

Menambahkan properties (variable)

Contoh pendefinisian variable

Class namaClass

Var $var1;

Var $var2;

Var $var3 =
10;

Pendeklarasian variabel dalam class seperti pada contoh di atas, bukanlah suatu
keharusan, karena dalam PHP variabel tidak perlu dideklarasikan, cukup digunakan
saja. Namun demikian, pendeklarasian variabel yang digunakan sangat dianjurkan
untuk kemudahan pembacaan dan pemahaman program. Variabel class juga dapat
langsung diinisialisasi dengan sebuah nilai.
Menambahkan Method

Untuk menambahkan method, tinggal mendefinisikan method seperti halnya fungsi


biasa. Misalnya kita akan menambahkan fungsi atau method untuk mengganti warna
mobil dan untuk menampilkan warna mobil. Nama method pada dasarnya terserah
(mengikuti aturan nama variabel). Namun demikian, jangan menggunakan nama
method yang diawali dengan dua buah under-score ( ) yaitu construct(),
destruct() dan clone() karena ketiga fungsi tersebut mempunyai
arti tersendiri di PHP.

Class namaClass

Function namafunction()

Statement;

Menambahkan Konstruktor

Konstruktor merupakan sebuah method khusus yang akan secara otomatis


dijalankan saat object terbentuk. Konstruktor tidak harus ada, namun dalam satu
class hanya boleh ada satu konstruktor. Method konstruktor biasanya berisi
pemberian nilai default dari masing-masing properties (variabel).

Untuk membuat konstruktor, cukup dengan mendefinisikan suatu fungsi dengan


nama construct().

Class namaClass

Function construct()
{

Statement;

Membentuk Objek Class

Untuk menggunakan sebuah objek, harus dibentuk objek dari classnya. Dari sebuah
class bisa dibentuk beberapa objek sekaligus. Bentuk umum pembentukan objek
adalah sbb :

$namaobjek = new namaClass();

Sedangkan untuk memanggil anggota (member) dari class dapat dengan format

sbb :

$namaObjek->variabel;

$namaObjek->namaMethod();

3.3 PELAKSANAAN PRAKTIKUM


1) Di bawah ini adalah contoh program membuat class dan object. Ketik
menggunakan notepad++ dan jalankan pada browser.
Program 3.1 pbo1.php
Berikut ini tampilannya pada browser
2) Buatlah objek ketiga dari class mobil. Apa yang muncul di layar jika
object tersebut memanggil method tampilWarna();

3) Tambahkan sebuah properties bernama $kondisi pada class mobil di atas.


$kondisi menentukan apakah mobil kondisinya baru atau bekas. Tambahkan
juga sebuah method untuk menampilkan properties tersebut!
4) Di bawah ini adalah contoh sebuah class untuk membuat sebuah form
inputan sederhana.
Program 2.4 pbo02.inc.php

Apa yang muncul di browser jika program tersebut dijalankan? Mengapa


demikian?
5) Di bawah ini adalah contoh program yang menggunakan class
pbo02.inc.php
Program 2.5 pbo03.php

Hasil dari program di atas sebagai berikut


6) Buatlah sebuah class untuk mengkoneksikan antara PHP dan Mysql. Dalam
class tersebut terdapat properties host,user,password, dan database. Dalam
class tersebut juga ada method untuk koneksi ke database. Buat juga
sebuah object yang menggunakan class tersebut.

3.4 LATIHAN
1) Sebuah class bernama pegawai memiliki properties
nip,nama,alamat,notelp dan tgllahir. Dalam class tersebut terdapat
method untuk menampilkan data pegawai dan method untuk mengubah
data pegawai.
Tuliskan program untuk class tersebut
2) Berdasarkan soal no 1, buatlah sebuah object berdasarkan class
pegawai yang menggunakan kedua method tersebut.

3.5 TUGAS MANDIRI


1) Apakah perbedaan antara class dan object?
Jawab : Class merupakan kumpulan dari suatu fungsi-fungsi yang dibuat
untuk suatu tujuan tertentu. Misalnya kita akan membuat sebuah Mobil.
Maka yang perlu kita buatkan adalah beberapa class yang didalamnya
berisi fungsi-fungsi yang dapat membuat Mobil itu dapat berjalan
sebagaimana mestinya, misalnya class Roda, class Mesin, class Kerangka
Mobil, class Body Mobil dan lain lain. Class masih merupakan sebuah
konsep yang belum siap digunakan.

Sedangkan Object adalah pemanfaatan dari class yang siap untuk


digunakan, misalnya kita sudah membuat class Roda, yang di dalamnya
itu berisi konsep bagaimana Roda itu bisa berjalan, bagaimana Roda itu
bisa berputar dan lain-lain, jika semua konsep Roda sudah oke, barulah
kita akan dirubah menjadi sebuah Roda yang siap untuk dipakai. Nah
itulah yang dinamakan Object Roda.
2) Apakah keuntungan menggunakan metode pemrograman berorientasi
object?

Jawab : a. Meningkatkan Produktivitas

b. Kecepatan pengembangan

c. Kemudahan Maintenance atau pemeliharaan

d. Adanya Konsistensi

e. Meningkatkan Kualitas Perangkat lunak


3) Sebutkan predefined class yang ada di PHP!

Jawab : Predefined Variables atau terjemahan bebasnya Variabel Sistem


PHP, adalah beberapa variabel yang telah di definisikan secara sistem
oleh PHP, dan kita sebaiknya tidak membuat variabel dengan nama yang
sama.

Beberapa contoh Predefined Variables dalam PHP adalah:

$GLOBALS , $_SERVER , $_GET , $_POST , $_FILES , $_COOKIE ,


$_SESSION , $_REQUEST , $_ENV, $php_errormsg,
$HTTP_RAW_POST_DATA, $http_response_header, $argc, $argv, $this.
4) Pada sebuah universitas terdapat dua golongan pegawai, yaitu Dosen dan
Staf biasa. Semua pegawai mendapatkan gaji awal yang sama, yaitu
1.500.000. Gaji tambahan dosen dihitung dari jumlah sks yang diampu
Gaji tambahan staf dihitung dari jumlah kehadiran per bulan Buatlah
program untuk mencetak semua gaji pegawai menggunakan konsep
pemrograman beriorientasi objek!
PRAKTIKUM 4
PHP FRAMEWORK #1

4.1 TUJUAN PRAKTIKUM


Tujuan Umum

Mahasiswa mengetahui penggunaan konsep framework

Tujuan Khusus
1. Mahasiswa mengetahui konsep framework
2. Mahasiswa mengetahui konsep MVC
3. Mahasiswa mengetahui cara kerja framework

4.2 TEORI SINGKAT


4.2.1 Pengenalan Framework

Secara bahasa, framework berarti kerangka kerja. Framework adalah kerangka kerja
yang berupa perangkat lunak ini bertujuan memudahkan programmer untuk
membangun aplikasi.

Beberapa framwework PHP yang ada, yaitu :

• Laravel (https://laravel.com/)

• Zend (http://framework.zend.com/)

• Symfony (https://symfony.com/)

• CakePHP (http://cakephp.org/)

• Yii (http://www.yiiframework.com/)

• CodeIgniter (http://www.codeigniter.c om/)


Beberapa framework di atas memiliki kekurangan dan kelebihan masing-masing.

4.2.2 Pengenalan Codeigniter


CodeIgniter adalah Framework untuk pengembangan aplikasi yang dibuat
menggunakan bahasa pemrograman PHP. Tujuannya adalah untuk membangun
aplikasi lebih cepat dibandingkan dengan membuat kode dari awal dengan
menyediakan kumpulan library yang siap digunakan untuk tugas-tugas yang biasa
dipakai dalam project

Beberapa kelebihan Codeigniter


• Gratis
• Ringan
• Cepat
• Mengggunakan konsep M-V-C (Model-View-Controller)

Codeigniter bisa di-download di web http://codeigniter.com

4.2.3 Diagram Alur Aplikasi Codeigniter

Framework codeigniter dibagian menjadi beberapa bagian. Bagian-bagian tersebut


memiliki alur proses sebagai berikut :
1. index.php bertindak sebagai front controller, yang akan menginisialisasi
resources dasar yang dibutuhkan untuk menjalankan CodeIgniter
2. Router akan memeriksa request HTTP untuk menentukan apa yang harus
dilakukan
3. Jika ada file di cache, akan langsung dikirimkan ke browser, melewati
eksekusi sistem yang normal
4. Security, sebelum application controller dimuat, request HTTP dan data yang
dikirim oleh user akan disaring terlebih dahulu untuk keamanan
5. Controller memuat model, core library,helper dan resource lain yang
dibutuhkan untuk memroses request yang spesifik
6. Akan dihasilkan View kemudian dikirim ke browser untuk dapat dilihat

4.2.4 Konsep Model-View-Controller (MVC)

CodeIgniter menggunakan konsep Model-View-Controller yaitu sebuah pendekatan


yang memisahkan antara logika aplikasi dengan tampilan. Penjelasannya sebagai
berikut :

• Model mewakili struktur data. Umumnya kelas model akan berisikan fungsi
untuk retrieve, insert, dan update informasi di database.
• View adalah informasi yang akan ditampilkan ke user.
• Controller bertindak sebagai perantara antara Model, View dan resource lain
yang dibutuhkan untuk memroses request HTTP dan men-generate halaman
web
Penerapan MVC pada CodeIgniter tidak terlalu ketat, jika Model tidak dibutuhkan,
maka aplikasi minimal akan terdiri dari Controller dan View

4.3 PELAKSANAAN PRAKTIKUM


1) Download installer codeigniter pada web http://codeigniter.com
2) Extract installer berupa file zip pada document root

Berikut tampilan setelah extract di document root folder budiluhur

Isi dari Sub Folder Application


Sub folder application merupakan tempat penyimpanan yang diperlukan
oleh aplikasi codeigniter. Semua model, view, controller, helper, library
diletakkan di dalam folder ini
Isi dari Sub Folder System
Sub folder system merupakan folder yang berisi codeigniter

3) Jalankan di browser http://localhost/budiluhur sehingga


tampilannya sebagai berikut
4) File pertama yang dijalankan adalah file index.php yang berada di folder
budiluhur. Pada file ini Anda dapat merubah setting standar seperti direktori
tempat menyimpan file system dan application .
5) Setelah itu akan menjalankan proses routing yang ada pada file
application/config/routes.php.

Dari potongan program di atas, dapat diketahui bahwa controller yang


pertama kali dipanggil adalah welcome.

6) Default controller pada route menyatakan akan menjalankan controller


welcome yang ada pada application/controllers/welcome.php
Penjelasan program
• Nama file diawali oleh huruf kapital (Welcome.php)
• Nama class diawali oleh huruf kapital kemudian extends kelas
CI_Controller
class Welcome extends CI_Controller {


}
• Method yang dikerjakan jika tidak ada konstruktor adalah index()
• Statement ini akan menyebabkan controller menjalankan view
welcome_message
$this->load->view('welcome_message');

7) Controller welcome menjalankan view welcome_message yang terdapat


pada application/views/welcome_message.php
Isi file ini adalah tampilan html, berikut potongan scriptnya
8) Contoh program di bawah ini digunakan untuk mencetak Hello World
menggunakan Controller dan View

Controller Hello disimpan di application/controllers/Hello.php

View Hello_view disimpan di application/views/Hello_view.php


Jika dijalankan pada browser dengan
http://localhost/budiluhur/index.php/Hello, tampilannya sebagai berikut

9) Controller bisa mengirimkan data kepada view. Modifikasi script sebelumnya


(Hello.php) sehingga jadi seperti ini
Modifikasi juga file hello_view.php sehingga jadi seperti ini

Jika dijalankan pada browser


http://localhost/budiluhur/index.php/hello tampilannya menjadi sebagai
berikut
4.4 LATIHAN
1) Buatlah satu halaman web untuk mencetak nim dan nama mahasiswa
menggunakan Controller dan View
Tuliskan program untuk class tersebut
2) Buatlah sebuah controller yang digunakan untuk mengirim data kepada
view. Data yang dikirimkan adalah nama produk, harga jual dan jumlah
beli. Pada view munculkan nama produk, harga jual, jumlah beli dan
jumlah yang harus dibayar

4.5 TUGAS MANDIRI


1) Kapankah aplikasi Codeigniter kita membutuhkan model?
2) Apa yang dimaksud dengan library?
Jawab : Library adalah sekumpulan kelas dan fungsi yang dibuat untuk
membantu pengembang aplikasi untuk dapat membangun aplikasi
dengan lebih cepat dan lebih efisien. Pada umumnya saat kita membuat
aplikasi web ada beberapa kelas yang hampir selalu digunakan, sehingga
kelas-kelas tersebut dapat di atur supaya secara otomatis di-load oleh
system dan dapat langsung digunakan.

Pada CodeIgniter library dibagi menjadi 2 yaitu library yang bersifat


global dan library yang dapat dibuat sendiri sesuai kebutuhan. Library
global terdiri dari kelas dan fungsi-fungsi yang telah disediakan oleh
CodeIgniter, dan terletak pada folder system/libraries. Sedangkan library
yang kita buat sendiri sesuai dengan kebutuhan ditempatkan pada folder
application/libraries.
3) Apa yang dimaksud dengan helper?

Jawab : Helper juga berfungsi untuk membantu pengembang membangun


aplikasi secara lebih cepat dan efisien. Setiap helper bisa terdiri dari
beberapa fungsi, dimana setiap fungsi dari helper melakukan satu
pekerjaan yang spesifik tanpa ada ketergantungan terhadap fungsi yang
lain.

Helper biasanya disimpan dalam folder system/helpers, atau di dalam


folder system/application/helpers. CodeIgniter akan terlebih dulu
mencari helper di dalam folder system/application/helpers, jika helper
yang dicari tidak ditemukan pada folder tersebut, baru kemudian dicari
pada folder system/helpers.
PRAKTIKUM 5
PHP FRAMEWORK #2

5.1 TUJUAN PRAKTIKUM


Tujuan Umum

Mahasiswa mengetahui konsep framework

Tujuan Khusus
1. Mahasiswa mengetahui cara membuat Controller, View dan Model
2. Mahasiswa mengetahui cara menginput data ke database

5.2 TEORI SINGKAT


5.2.1 Controller

Controllers merupakan pusat dari aplikasi, controllers akan menentukan bagaimana


request HTTP akan ditangani. Controllers merupakan kelas yang memiliki nama yang
berkaitan dengan URI. View disimpan pada folder application/controllers/

Contoh sebuah URL seperti di bawah ini

example.com/index.php/blog

Pada contoh di atas, CodeIgniter akan mencari Controller yang bernama Blog.php

a. Method

URL pada Codeigniter memiliki bentuk umum sebagai berikut

Example.com/index.php/NAMACONTROLLER/NAMAMETHOD

Jika pada URL tidak terdapat NAMAMETHOD, maka method yang digunakan
adalah index().
example.com/index.php/blog sama

dengan

example.com/index.php/blog/index

Jika URI lebih dari 2 bagian, maka akan dijadikan parameter untuk sebuah
method

b. Private Method

Untuk membuat method yang tidak dapat diakses oleh publik dengan
mendeklarasikannya sebagai private atau protected, sehingga tidak dapat
ditampilkan lewat URL request

Nama private method diawali dengan tanda garis bawah (_)

Contoh sebuah private method

private function _checkSetting()

Method di atas tidak dapat dijalankan dengan

http://localhost/budiluhur/index.php/test/_checkSetting

c. Mendefinisikan Default Controller

Untuk mendefinisikan default Controller, ubah variable


$route['default_controller'] pada application/config/routes.php
Pada setting di atas, default Controller adalah Welcome.php, yang akan
dijalankan ketika server dijalankan pertama kali

5.2.2 Views

View bisa berupa halaman web sederhana maupun yang kompleks. View dipanggil di
Controller, tidak dapat dijalankan langsung melalui URL. Halaman web bisa terdiri
dari header, footer, menu dll. View disimpan pada folder application/views/

Untuk memanggil view bernama name_view menggunakan cara sebagai berikut

$this->load->view('name_view')

Sebuah view bisa ditambahkan dynamic data yang berasal dari controller. Data
dikirimkan dari Controller ke View menggunakan Array ataupun Object, diletakkan
pada bagian parameter kedua di pemanggilan View

$this->load->view('name_view',$data)

5.2.3 Model

Models merupakan kelas yang dirancang untuk bekerja dengan Database. Models
disimpan dalam direktori application/models. Model dapat dipanggil ketika proses
inisialiasi sistem berjalan dengan menambahkannya di file
application/config/autoload.php
Bentuk umum sebuah model sebagai berikut

class Model_name extends CI_Model {

public function construct()

parent:: construct();

Pada bentuk di atas, Model_name adalah nama dari kelas, diawali oleh huruf besar
dan pastikan extends dari CI_Model . Nama file model di atas adalah
Model_name.php dan disimpan di application/models

Secara umum model dipanggil oleh controller dengan cara

$this->load->model('model_name');

Jika Model disimpan dalam sub direktori maka bentuknya:

$this->load->model('direktori/model_name');

Untuk mengakses method di dalam model, menggunakan nama kelas dari Model tsb

$this->load->model('model_name');

$this->model_name->method();

5.2.4 Konfigurasi Base URL dan Index


66
Konfigurasi pada Codeigniter disimpan pada file application/config/config.php

Base URL, diisi dengan root direktori dari CodeIgniter. Misalnya


http://localhost/budiluhur

Index page, biasanya berisikan index.php dan dapat dihilangkan jika menggunakan
mod_rewrite

5.2.5 Konfigurasi Database

Konfigurasi database disimpan pada file application/config/database.php. File ini


harus diubah jika Anda ingin menggunakan database. Perubahan dilakukan pada
bagian ini

• hostname − localhost or IP address

• username − username di database

• password − password database

• database − nama database

• dbdriver − database yang digunakan misal MySQL, MySQLi, Postgre SQL,


ODBC, and MS SQL.
5.2.6 Bekerja Dengan Database

CodeIgniter menyediakan kelas Query Builder untuk akses database, berikut


beberapa method yang umum digunakan.

Insert

Bentuk umum :

$this->db->insert

Bisa menggunakan array maupun object untuk mengirimkan data

$data = array(
'title' => 'My title',
'name' => 'My Name',
'date' => 'My date'
);
$this->db->insert('mytable', $data);
Perintah di atas akan menghasilkan query:

INSERT INTO mytable (title, name, date) VALUES ('My title', 'My name', 'My date')

Update

Bentuk umum

$this->db->update()

Bisa menggunakan array maupun object untuk mengirimkan data

$data = array(
'title' => $title,
'name' => $name,
'date' => $date
);
$this->db->where('id', $id);
$this->db->update('mytable', $data);

Perintah di atas akan menghasilkan query:

UPDATE mytable

SET title = '{$title}', name = '{$name}', date = '{$date}' WHERE id = $id

DELETE

Bentuk umum :
$this->db->delete();

$this->db->delete('mytable', array('id' => $id));


//atau bisa juga
$this->db->where('id', $id);
$this->db->delete('mytable');
//kedua cara menghasilkan
//DELETE FROM mytable WHERE id = $id
SELECT

Bentuk umum

$this->db->select();

$this->db->select('title, content, date');


$query = $this->db->get('mytable');
//perintah di atas akan menghasilkan SELECT title, content, date FROM mytable

5.3 PELAKSANAAN PRAKTIKUM


1) Di bawah ini adalah contoh pembuatan controller. Simpan di folder
application/controllers dengan nama Test.php

Program 5.1 application/controllers/Test.php

Jalankan di browser melalui http://localhost/budiluhur/index.php/test.


Tulisan apa yang muncul di browser?
Apakah ada perbedaan jika dijalankan melalui
http://localhost/budiluhur/index.php/test/index? Jelaskan!

2) Pada file Test.php diatas, tambahkan sebuah method sehingga


program menjadi sebagai berikut

Jalankan di browser melalui http://localhost/budiluhur/index.php/test/hello.


Tulisan apa yang muncul di browser?
3) Pada file Test.php diatas, tambahkan sebuah method bernama greeting
yang isinya sebagai berikut

Jalankan di browser melalui


http://localhost/budiluhur/index.php/test/greeting/budi/jakarta

Tampilan di browser sebagai berikut

4) Ubah method index() yang ada di application/controllers/Test.php menjadi


sebagai berikut
Buatlah sebuah file bernama Test_view.php dan simpan di
application/views/. Isi file text_view.php sebagai berikut

Jalankan di browser http://localhost/budiluhur/index.php/test

5) Ubah lagi method index() yang ada di application/controllers/Test.php


menjadi sebagai berikut

Kemudian ubah file test_view.php menjadi sebagai berikut


Jalankan di browser http://localhost/budiluhur/index.php/test

6) Ubahlah konfigurasi database pada file application/config/database.php.


Ubah juga konfigurasi base_url pada file application/config/config.php
Buatlah sebuah database bernama pw2, kemudian buat sebuah table
bernama mhs dengan struktur sebagai berikut

Struktur table mhs


nama field tipe data keterangan
nim varchar(10) primary key
nama varchar(50)
alamat varchar(255)
7) Buat sebuah controller bernama Mahasiswa.php, simpan ke dalam
application/controllers. Berikut ini file mahasiswa.php
8) Buat sebuah model bernama Mahasiswa_model.php, simpan ke dalam
application/models. Berikut ini file mahasiswa_model.php
9) Buat sebuah view bernama Mahasiswa_view.php, simpan ke dalam
application/views. Berikut ini file mahasiswa_view.php
10) Buat sebuah view bernama Tambah_view.php, simpan ke
dalam application/views. Berikut ini file tambah_view.php
11) Buat sebuah view bernama Update_view.php, simpan ke
dalam application/views. Berikut ini file update_view.php
Modul Praktikum Pemrograman Web 2 (PG066)

80
12) Jalankan http://localhost/budiluhur/index.php/mahasiswa/ sehingga
tampil seperti ini

81
5.4 LATIHAN
1) Buatlah sebuah halaman untuk menampilkan rata-rata dari 3 nilai yang
dikirimkan melalui parameter URL. Gunakan view dan controller
Contoh URL
http://localhost/budiluhur/index.php/hitung/rata/60/70/80

Output :
Rata-rata dari 60,70,80 adalah 70
5.5 TUGAS MANDIRI
1) Buatlah sebuah aplikasi untuk menginput data mitra yang disimpan ke
dalam table mitra!
Struktur table mitra sebagai berikut
Nama Field Tipe data Keterangan
idmitra varchar(10) Primary Key
nama varchar(100)
jenkel varchar(1) isinya L/P
alamat text
nohp varchar(20)
PRAKTIKUM 6
PHP FRAMEWORK #3

6.1 TUJUAN PRAKTIKUM


Tujuan Umum

Mahasiswa mengetahui penggunaan beberapa ibrary di codeigniter

Tujuan Khusus
1. Mahasiswa mengetahui cara penggunaan library validation
2. Mahasiswa mengetahui cara penggunaan library email

6.2 TEORI SINGKAT


6.2.1 Library Form Validation

CodeIgniter menyediakan library lengkap untuk validasi form yang membantu


meminimalisasi penulisan kode.

Skenario yang biasa terjadi saat validasi form adalah sebagai berikut :

1. Form ditampilkan
2. Form diisi kemudian disubmit
3. Jika terdapat kesalahan atau ada yang belum diisi, form akan ditampilkan
kembali dengan menampilkan data serta pesan kesalahan
4. Proses akan berlanjut hingga form yang disubmit sudah valid

Di sisi lain, script yang menerima harus :

1. Mengecek data yang harus diisi


2. Verifikasi data berdasarkan kriteria tertentu, misal userid yang disubmit harus
mengandung karakter yang diperbolehkan, ada panjang minimal & maksimal,
dll
3. Sanitasi data untuk keamanan
4. Melakukan pre-format data jika diperlukan (apakah data harus di-trim ? Atau
di HTML Encode, dll)
5. Menyiapkan data untuk diinsert ke Database

Walaupun tidak terlalu kompleks untuk menyelesaikan masalah di atas, biasanya


dibutuhkan kode yang cukup banyak untuk melakukannya.
Untuk menggunakan library ini, tambahkan kode berikut
$this->load->library(‘form_validation’);
Validation rules dapat diset dengan menggunakan array kemudian dilewatkan
sebagai parameter pada method set_rules()
$this->form_validation->set_rules();
Method set_rules() tersebut membutuhkan 3 parameter, yaitu:
1. fieldname, nama yang diberikan pada field form
2. “human name”, nama yang ditampilkan pada pesan kesalahan
3. aturan validasi untuk field pada form
Contoh
$this->form_validation->set_rules('username', 'Username', 'required');

6.2.2 Library Upload

CodeIgniter memiliki kelas untuk menangani upload file yang dapat diset untuk
beberapa keperluan seperti membatasi tipe dan ukuran file. Library ini bisa dipanggil
menggunakan

$this->load->library(‘upload’);
Proses Upload:
1. Form upload ditampilkan sehingga user dapat memilih file dan
menguploadnya
2. Ketika form disubmit, file akan diupload ke direktori yang sudah ditentukan
3. File yang diupload divalidasi berdasarkan aturan yang diset sebelumnya
4. Setelah diupload akan tampil pesan sukses

6.2.3 Library Email


CodeIgniter menyediakan kelas library untuk mengirimkan email dengan mudah
menggunakan. Library ini bisa dipanggil menggunakan

$this->load->library(‘email);

Method standard yang dapat digunakan:


• from(), berisikan email pengirim
• to() berisikan email tujuan
• cc() untuk copy carbon
• bcc () untuk blind copy carbon
• subject() untuk Subject Email
• message(), isi email
• send(), mengirimkan email

6.3 PELAKSANAAN PRAKTIKUM


1) Di bawah ini adalah penggunaan library form_validation. Ada beberapa file
yang diperlukan. Buat myform.php, simpan di direktori application/views.
File ini digunakan sebagai form inputan.
Buat formsuccess.php, simpan di direktori application/views. File ini
digunakan sebagai pesan jika form berhasil disubmit.
Buat Form.php, simpan di direktori application/controllers

Jalankan controller melalui


http://localhost/budiluhur/index.php/form sehingga tampil seperti di
bawah ini
Jika form diisi kemudian disubmit tidak ada perubahan, sebab hanya direload
Untuk itu akan ditambahkan validasi dengan method set_rules() pada
controller Form.php

Ubah file controller Form.php sehingga menjadi seperti di bawah ini


Jalankan kembali form tersebut dengan memanggil controller Form. Akan
tampil pesan kesalahan jika ada field yang belum terisi seperti di bawah ini

Jika valid akan muncul pesan sukses yang berasal dari view form_success.php

Untuk menampilkan isian form kembali ketika error terjadi, dapat digunakan
method set_value(„field_name‟); Ubah file views myform.php sehingga
menjadi seperti ini
Validation rules dapat diset dengan menggunakan array kemudian dilewatkan
sebagai parameter pada method set_rules() seperti contoh berikut
Beberapa rule dapat digabung menggunakan tanda pipa ( | ), contoh:
$this->form_validation->set_rules(
'username', 'Username',
'required|min_length[5]|max_length[12]|is_unique[users.username]',
array(
'required' => 'You have not provided %s.',
'is_unique' => 'This %s already exists.'
)
);
$this->form_validation->set_rules('password', 'Password', 'required');
$this->form_validation->set_rules('passconf', 'Password Confirmation',
'required|matches[password]');
$this->form_validation->set_rules('email', 'Email',
'required|valid_email|is_unique[users.email]');

Rule tersebut berarti:


• Field username tidak boleh kurang dari 5 karakter dan tidak lebih dari 12
$this->form_validation->set_rules(
'username', 'Username',

'required|min_length[5]|max_length[12]|is_unique[users.userna
me]',
array(
'required' => 'You have not provided %s.',
'is_unique' => 'This %s already exists.'
)
);
• Field password harus sama dengan field confirmation password
$this->form_validation->set_rules('passconf', 'Password
Confirmation', 'required|matches[password]');

• Field Email harus berisi email yang valid


$this->form_validation->set_rules('email', 'Email',
'required|valid_email|is_unique[users.email]');

Ubah file controller Form.php menjadi seperti di bawah ini

2) Berikut ini merupakan contoh pengunaan library upload.


Buah sebuah view upload_form.php dan simpan di application/views. Isi file
tersebut sebagai berikut
Buat view upload_success.php, simpan di direktori application/views
yang isinya sebagai berikut
Buat Upload.php, simpan di direktori application/controllers. Isi file ini
sebagai berikut

Buat folder uploads di documentroot aplikasi. Jalankan di browser dengan


memanggil controllernya http://localhost/budiluhur/index.php/upload.
Tampilannya sebagai berikut
Pilih sebuah file

Jika berhasil akan muncul pesan seperti ini

3) Berikut ini merupakan contoh program penggunaan library email.


Buat view email_form.php, simpan di direktori application/views. Isi
file seperti berikut

Buat controller Email.php, simpan di direktori application/controllers.


Isi file ini sebagai berikut
Jalankan di browser dengan memanggil controllernya
Catatan: hanya dapat digunakan jika mail server berfungsi

6.4 LATIHAN
1) Buat sebuah form untuk menginput nim, nama, umur. Tambahkan validasi
sebagai berikut
• Nim harus diisi dan panjang 10 karakter
• Nama harus diisi dan panjang maksimal 50 karakter
• Umur harus diisi angka dan antara 20-30

Tampilkan pesan error jika validasi gagal

2) Buatlah sebuah form untuk menginput email tujuan, judul pesan dan isi
pesan. Jika diklik tombol submit, kirim email ke tujuan dengan judul dan isi
pesan yang dimasukkan.

6.5 TUGAS MANDIRI


1) Modifikasi aplikasi CRUD sebelumnya dengan menambahkan 1 field untuk
menyimpan Photo dari mahasiswa menggunakan Upload

10
PRAKTIKUM 7
PHP FRAMEWORK #4

7.1 TUJUAN PRAKTIKUM


Tujuan Umum

Mahasiswa mengetahui penggunaan library pada Codeigniter

Tujuan Khusus
1. Mahasiswa mengetahui cara penggunaan library table
2. Mahasiswa mengetahui cara penggunaan library pagination
3. Mahasiswa mengetahui cara penggunaan library session

7.2 TEORI SINGKAT


7.2.1 Library Table

Table Class menyediakan fungsi-fungsi yang dapat menghasilkan tabel HTML dari
array atau database. Untuk memanggil library table gunakan :

$this->load->library('table');

Cara menggunakannya dengan memanggil:

$this->table

7.2.2 Library Pagination

CodeIgniter menyediakan kelas untuk melakukan navigasi antar halaman.

// Memanggil library pagination


$this->load->library('pagination');
//Alamat URL dari script pagination
$config['base_url'] = 'http://example.com/index.php/test/page/';
//Total record/baris dari data
$config['total_rows'] = 200;
// Jumlah data per halaman
$config['per_page'] = 20;
//Proses inisialisasi
$this->pagination->initialize($config);
// Membuat link untuk navigasi
echo $this->pagination->create_links();

7.2.3 Library Session

Session merupakan salah satu cara untuk mengetahui aktivitas serta keadaan dari
pengguna system.

Inisialisasi session di Codeigniter

$this->load->library(‘session');

Setelah itu tinggal dipakai menggunakan

$this->session

Di PHP menambahkan nilai ke variabel session menggunakan

$_SESSION[‘key’] = value;

Di CodeIgniter dapat menggunakan

$this->session->set_userdata(‘key', 'value');

Method set_userdata() memiliki dua parameter yaitu nama variabel session dan
nilainya. Dapat juga menggunakan array sebagai berikut

$newdata = array(
'username' => ‘budiluhur',
'email' => ‘admin@budiluhur.ac.id',
'logged_in' => TRUE
);
$this->session->set_userdata($newdata);

Di PHP untuk menghapus session dapat menggunakan

unset($_SESSION[‘var’]);

CodeIgniter untuk menghapus session menggunakan

$this->session->unset_userdata(‘var');

Atau dapat menghapus beberapa dengan menggunakan array

$this->session->unset_userdata($var_array);

Untuk mengambil isi variable session dapat menggunakan

$name = $this->session->userdata(‘var');

7.3 PELAKSANAAN PRAKTIKUM


1) Di bawah ini adalah contoh program menggunakan library table dan data
pada table diberikan dalam bentuk array.
Simpan controller Table.php di application/controllers
Berikut ini tampilannya pada browser
(http://localhost/budiluhur/index.php/table

2) Di bawah ini adalah contoh program menggunakan library table dan data
pada table diambil dari table mhs yang sudah dibuat pada pertemuan
sebelumnya.
Simpan controller Table.php di application/controllers

100
Berikut ini tampilannya pada browser
(http://localhost/budiluhur/index.php/table

3) Di bawah ini adalah contoh program menggunakan library table dengan


discrete parameter.
Simpan controller Table.php di application/controllers
4) Di bawah ini adalah contoh program menggunakan library table dengan
discrete array

5) Di bawah ini adalah program untuk mengubah tampilan table standard.


Template tampilan table dapat diubah sesuai dengan kebutuhan layout
Hasilnya sebagai berikut
Perubahan template table dapat dilakukan pada elemen yang diperlukan saja,
tanpa perlu merubah semua, misalnya:

$template = array(
'table_open' => '<table border="1" cellpadding="2"
cellspacing="1" class="mytable">'
);
$this->table->set_template($template);

6) Program berikut ini adalah contoh penggunaan library pagination.


Ubah controller Mahasiswa.php yang sudah dibuat sebelumnya pada
application/controllers
Ubah file views Mahasiswa_view.php yang sudah dibuat sebelumnya

Ubah model Mahasiswa_model.php yang sudah dibuat sebelumnya


Hasilnya sebagai berikut

7) Di bawah ini adalah contoh program yang menggunakan library session.


Buat file Controller Sessions.php dan simpan di application/controllers
Buat file view Session_view.php di dalam application/views/

Hasilnya sebagai berikut


7.4 LATIHAN
1) Buat sebuah table bernama barang dengan spesifikasi sebagai berikut
Spesifikasi table barang
Nama Field Tipe Data Keterangan
kdbarang varchar(5) Primary key
nmbarang varchar(10)
harga int(10)
merek varchar(30)
stok int(3)

Isilah table tersebut dengan beberapa data, kemudian tampilkan dalam


bentuk table HTML menggunakan library table.

2) Tambahkan pagination pada tampilan no 1. Dalam 1 halaman ada 10


record.
3) Buat Form Login Menggunakan Session dan Database untuk masuk ke
dalam Sistem
Tampilan form login sebagai berikut

Jika login berhasil muncul sebagai berikut

Jika logout diklik, kembali lagi ke form login

7.5 TUGAS MANDIRI


1) Buatlah sebuah aplikasi login menggunakan Codeigniter dan library session.
Data login dicek pada table login yang memiliki struktur sebagai berikut
Nama Field Tipe Data Keterangan
username varchar(50) Primary key
namalengkap varchar(100)
password varchar(100)
hakakses varchar(30) berisi „user‟ atau „admin‟

Bedakan tampilan menu user yang sudah berhasil login berdasarkan hak
akses yang dimiliki.
Jika hak akses user, munculkan menu berikut
• Home
• Profile
• Ganti Password
• Berita Terbaru

Jika hak akses admin, munculkan menu berikut


• Home
• Profile
• Ganti Password
• Managemen User
• Managemen Berita
PRAKTIKUM 8
UJIAN TENGAH SEMESTER
PRAKTIKUM 9
AJAX DAN JQUERY

9.1 TUJUAN PRAKTIKUM


Tujuan Umum

Mahasiswa mengetahui konsep AJAX dan Jquery.

Tujuan Khusus
1. Mahasiswa mengetahui konsep AJAX
2. Mahasiswa mengetahui implementasi AJAX dan JQUERY pada Codeigniter

9.2 TEORI SINGKAT


9.2.1 Pengenalan JQuery

JQuery merupakan sebuah framework/library Javascript yang menekankan


bagaimana interaksi antara Javascript dan HTML. JQuery pertama kali dirilis pada
tahun 2006 oleh John Resig. Pada perkembangannya JQuery tidak sekedar sebagai
framework Javascript, namun memiliki kehandalan dan kelebihan yang cukup
banyak. Hal tersebut menyebabkan banyak developer web menggunakannya.
JQuery memiliki slogan “Write less, do more” yang kurang lebih maksudnya adalah
kesederhanaan dalam penulisan code, tapi dengan hasil yang lebih banyak.

JQuery merupakan library open source dengan lisensi GNU General Public License
dan MIT License. Dari sisi ukurannya, framework JQuery sungguh ramping, hanya
sekitar 20 KB dan hanya terdiri dari satu file. Namun demikian, bagi yang
menginginkan fungsi lebih, JQuery memungkinkan penambahan fungsionalitas
dalam bentuk plugin. Saat ini tersedia ribuan plugin yang dapat diperoleh secara
gratis di internet.

Apa yang bisa dilakukan dengan JQuery?

a. Mengakses bagian halaman tertentu dengan mudah.


Tanpa adanya library Javascript khusus, untuk mengakses suatu bagian
tertentu dari halaman, harus mengikuti aturan Document Object Model (DOM)
dan pengaksesan harus secara spesifik menyesuaikan dengan struktur HTML.
Dengan kata lain, pengaksesan bagian tertentu dari halaman sangat
tergantung pada struktur dari HTML. JQuery menawarkan cara yang sangat
mudah dalam mengakses bagian tertentu dari halaman. Pengaksesan juga
tidak terlalu bergantung pada struktur HTML.

b. Mengubah tampilan bagian halaman tertentu.


CSS (Cascading Style Sheet) menawarkan metode yang cukup handal dalam
mengatur dan mempercantik halaman web. Namun terkadang CSS punya
kelemahan yang cukup mengganggu, yaitu beberapa perintah CSS tidak
didukung oleh semua browser. Cukup merepotkan jika kita harus mendesign
halaman web dengan beberapa CSS sekaligus. Sekali lagi JQuery
menawarkan solusi untuk mengatasi hal tersebut. Dengan JQuery,
“kesenjangan” yang terjadi antara browser dalam urusan CSS akan tertutup
dengan baik.

c. Mengubah isi dari halaman.


Sebelum ada JQuery cukup sulit jika kita akan mengubah sebagian isi dari
halaman. Mengubah disini dapat berarti mengganti teks, menambahkan teks
atau gambar, mengurutkan suatu daftar (list), menghapus baris tabel dan
sebagainya. Dengan JQuery, hal tersebut dapat dilakukan dengan hanya
beberapa baris perintah.

d. Merespond interaksi user dalam halaman.


Website yang baik tidak cukup digambarkan dengan user‐interface dan
tampilan yang memukau. Namun lebih dari itu, bagaimana pengunjung dapat
berinteraksi dengan website dan dapat mengatur tampilannya sendiri.
Interaktivitas sangat bergantung bagaimana pemrograman yang dipakai
dalam menangani event‐handling. Javascript sendiri memiliki beberapa event‐
handling
e. Mengambil informasi dari server tanpa me‐refresh seluruh halaman.

Mengambil informasi dari server tanpa refresh halaman merupakan salah satu
konsep dasar dari yang namanya AJAX (Asynchronous Javascript and XML).
Pada penerapannya, cukup ribet jika harus membangun website dengan
konsep AJAX, saat ini banyak library khusus yang berusaha
mempermudahnya. JQuery merupakan salah satunya.

Download JQuery

Website JQuery adalah http://jquery.com. Untuk mendownload JQuery bisa melalui


halaman http://jquery.com/download/ Versi terbaru JQuery saat materi ini ditulis
adalah 2.1.4. Anda bisa mendownloadnya dengan membuka
http://code.jquery.com/jquery‐2.1.4.min.js, setelah terbuka Save as menjadi
jquery.js dan simpan ke dalam folder assets/jquery/ di documentroot Anda.

9.2.2 Cara Menggunakan JQuery

Biasanya file jquery dipanggil di bagian <head>, tetapi ada juga yang
meletakkannya sebelum </body>. Pemanggilan dilakukan melalui

<script src=‟lokasifile/jquery.js‟></script>

Untuk menjalankan script begitu halaman website ditampilkan secara keseluruhan


gunakan event bernama ready.

Penulisan event ready sebagai berikut


9.2.3 Selector Jquery

Konsep dasar dari JQuery adalah untuk memilih beberapa element dan melakukan
sesuatu terhadapnya. Selector adalah fungsi utama pada jQuery. semua fungsi
lainnya di jQuery dapat diakses melalui selector.

fungsi selector adalah $(„ekspressi‟). untuk penggunaan $() yang aman sebaiknya
dilakukan setelah semua page DOM selesai terbaca semua. jadi webpagenya sudah
lengkap baru script di eksekusi. kita dapat melakukannya dengan pada fungsi
$(document).ready().

Adapun parameter yang bisa digunakan pada jquery adalah Id element, class
element dan element itu sendiri. Selector juga bisa mengenali hirarki sebagai
parameter inputnya dan bisa memfilternya langsung dari ekspressi.

Selector Deskripsi
Tag HTML digunakan untuk menunjuk tag HTML. Misalnya $(„p‟) artinya
memilih semua paragraph dalam dokumen
Tag ID Digunakan untuk menunjuk tag yang memiliki atribut ID
tertentu. Misalnya $(„#menu‟) artinya memilih sebuah tag
HTML yang memiliki atribut ID=‟menu‟
tag CLASS Digunakan untuk menunjuk tag yang memiliki atribut CLASS
tertentu. Misalnya $(„.judul) artinya memilih sebuah tag HTML
yang memiliki atribut class=‟judul‟

Contoh Penggunaan

• $('#div1').css('background‐color','red')

memilih tag HTML yang memiliki atribut ID=‟div1‟ dan mengubah warna
backgroundnya menjadi merah
• $('.big').css('background‐color', 'yellow')
memilih tag HTML yang memiliki atribut class=‟big‟ dan mengubah warna
backgroundnya menjadi kuning
• $('#div3').css('background‐color','green')
memilih tag HTML yang memiliki atribut ID=‟div3‟ dan mengubah warna
background menjadi hijau
• $('p').css('background‐color','blue')
memilih tag <p> dan mengubah warna background menjadi biru
• $('div,p').css('color','orange')
memilih tag <div> atau <p> dan mengubah warna huruf menjadi orange
• $('a.strong').css('font‐size','20px')
memilih <a> yang memiliki atribut CLASS=‟strong‟ dan mengubah ukuran
huruf menjadi 20px

9.2.4 AJAX

Asynchronous JavaScript and XMLHTTP, atau disingkat AJaX, adalah suatu teknik
pemrograman berbasis web untuk menciptakan aplikasi web interaktif. Tujuannya
adalah untuk memindahkan sebagian besar interaksi pada komputer pengguna,
melakukan pertukaran data dengan server di belakang layar, sehingga halaman web
tidak harus dibaca ulang secara keseluruhan setiap kali seorang pengguna
melakukan perubahan. Hal ini akan meningkatkan interaktivitas, kecepatan, dan
usability. AJAX merupakan kombinasi dari:

• DOM (Document Object Model) yang diakses dengan client side scripting
language, seperti JavaScript, berguna untuk menampilkan secara dinamis dan
berinteraksi dengan informasi yang ditampilkan
• Objek XMLHTTP dari Microsoft atau XMLHttpRequest yang lebih umum di
implementasikan pada beberapa browser. Objek ini berguna sebagai
kendaraan pertukaran data asinkronus dengan web server.
• XML (eXtensible Markup Language) umumnya digunakan sebagai dokumen
transfer, walaupun format lain juga memungkinkan, seperti HTML, plain text.
XML dianjurkan dalam pemakaian teknik AJaX karena kemudahan akses
penanganannya dengan memakai DOM
• JSON (Javascript Object Notation) dapat menjadi pilihan alternatif sebagai
dokumen transfer, mengingat JSON adalah JavaScript itu sendiri sehingga
penanganannya lebih mudah

9.2.5 Cara Kerja AJAX

Berikut ini skema cara kerja AJAX (Sumber : udvid.com)

1. Client / browser memanggil javascript


2. AJAX Engine meminta data ke server
3. Server mengembalikan data dalam bentuk XML, JSON atau HTML
4. AJAX Engine memproses data yang didapat kemudian mengupdate HTML di
client/browser

9.2.6 JQUERY DAN AJAX

JQuery sudah menyediakan fungsi khusus untuk menangani AJAX yaitu


jQuery.ajax(). Fungsi ini juga bisa dipanggil melalui $.ajax

Beberapa parameter yang sering digunakan dalam $.ajax adalah

• url : menentukan URL yang akan menangani request


• type : met;ode untuk pengiriman data (pilihannya GET atau POST)
• dataType : tipe data yang dikembalikan dari server (pilihannya JSON, XML,
HTML)
• success : fungsi yang dijalankan jika request berhasil
• error : fungsi yang dijalankan jika request gagal

9.3 PELAKSANAAN PRAKTIKUM


1) Di bawah ini adalah contoh program sederhana yang menggunakan JQuery.
Buat file controller bernama TestJquery.php dan simpan di
application/controllers. Isinya sebagai berikut

Buat file view bernama testjquery_view.php dan simpan di


application/views/. Isinya sebagai berikut
Berikut ini tampilannya jika dijalankan pada browser

Jika diklik tulisan “klik donk” dan “klik lagi donk” akan muncul sebagai berikut

Jika diklik 2 kali (double click) tulisan “jangan diklik” akan muncul sebagai
berikut
2) Di bawah ini adalah contoh program sederhana yang menggunakan JQuery.
Untuk File Controller tetap menggunakan TestJQuery.php
Untuk File View, ubah testjquery_view.php menjadi seperti di bawah ini

Berikut ini tampilannya di browser


3) Apa warna huruf dan warna background yang dihasilkan jika pada file view
ditambahkan baris berikut?
<a class=”big” id=”div1”>Test A</a>

4) Di bawah ini adalah contoh program sederhana yang menggunakan AJAX


dan Jquery.
Buat file controller bernama TestAjax1.php dan simpan di
application/controller. Isi file sebagai berikut
Buat file view bernama testajax1_view.php dan simpan di
application/views/. Isi file sebagai berikut

Berikut ini tampilan awal yang muncul di browser


Jika tombol diklik, tampilannya jadi seperti ini

5) Modifikasi file view program di atas, supaya background layar berubah


menjadi warna kuning saat tombol diklik.
9.4 LATIHAN
1) Buatlah sebuah halaman web yang terdiri dari 6 tombol yang masing-masing
bertuliskan Background Merah, Background Kuning, Background Hijau, Text
Hitam, Text Putih, Text Biru.
Di dalam halaman terdapat text “Percobaan JQuery”.
Jika tombol diklik, ubah warna background atau warna text tersebut!

9.5 TUGAS MANDIRI


1) Apa kegunaan fungsi html() pada jquery?
2) Fungsi apa yang digunakan untuk mengambil inputan textbox pada
Jquery()
3) Berikan contoh data dalam format JSON dan XML!
4) Buatlah sebuah form untuk menginput 2 buah angka. Di dalam form
terdapat sebuah tombol yang jika diklik akan menampilkan hasil
penjumlahan dan perkalian 2 angka tersebut. Proses perhitungan dilakukan
pada Controller
Modul Praktikum Pemrograman Web 2 (PG066)

125
PRAKTIKUM 10
CRUD DENGAN AJAX DAN JQUERY

10.1 TUJUAN PRAKTIKUM


Tujuan Umum

Mahasiswa mengetahui cara membuat aplikasi untuk create read update delete
(CURD) sebuah table menggunakan AJAX dan Jquery

Tujuan Khusus
1. Mahasiswa mengetahui cara membuat aplikasi yang memiliki kemampuan
CRUD menggunakan AJAX dan JQuery

10.2 TEORI SINGKAT


10.2.1 CRUD

CRUD merupakan singkatan dari Create Read Update Delete. Sebuah aplikasi yang
memiliki kemampuan CRUD berarti aplikasi tersebut bisa menyimpan data, membaca
data, mengubah data dan menghapus data dari sebuah table.

10.3 PELAKSANAAN PRAKTIKUM


1) Buat sebuah table mysql bernama user. Struktur table user sebagai berikut
Nama Field Tipe Data Keterangan
user varchar(30) primary key
nama varchar(100)
password varchar(100)

2) Selanjutnya kita buat form untuk menginput data ke dalam table tersebut.
Ada 3 file yang diperlukan dalam aplikasi ini yaitu
• Controller datauser.php yang disimpan di application/controllers
• View datauser_view.php yang disimpan di application/views
126
• Model datausermodel.php yang disimpan di application/models

Pada bagian awal akan dimunculkan form untuk input data ke dalam table
user.

Buat file controller datauser.php yang isinya sebagai berikut

Buat file view datauser_view.php yang isinya sebagai berikut


Buat file model datauser_model.php yang isinya sebagai berikut
Berikut ini tampilannya jika dijalankan pada browser

Berikut ini tampilan jika data berhasil disimpan


Berikut ini tampilan jika data gagal disimpan

3) Berikutnya adalah data yang ada di table akan ditampilkan pada bagian
bawah form. Data ini diambil dari database dengan konsep AJAX dengan
data JSON.

• Ubah controller datauser.php dengan menambahkan function


getData(). Berikut potongan program yang ditambahkan pada
datauser.php
• Ubah view datauser_view.php dengan menambahkan HTML table di
bawah form dan menambahkan fungsi javascript listdata() untuk
memanggil method getData pada controller. Berikut potongan
program yang ditambahkan pada datauser_view.php
• Ubah model datauser_model.php dengan menambahkan function
getData(). Fungsi ini digunakan untuk mengambil semua data pada
table user. Berikut potongan program yang ditambahkan pada
datauser_model.php

• Data akan langsung ditampilkan pada table HTML saat halaman


website dibuka.
4) Berikutnya akan dibuat fungsi untuk ubah data. Pada halaman di atas, saat
link “Ubah” diklik, data akan diambil dari database dengan konsep AJAX
kemudian ditampilkan datanya pada form inputan. Setelah itu data diubah
dan diklik tombol Save. Proses Save sudah dibuat sebelumnya di controller

• Ubah controller datauser.php dengan menambahkan function


getDataById() yang berfungsi untuk mengambil data user
berdasarkan username yang dimiliki. Berikut potongan program yang
ditambahkan pada datauser.php

• Ubah view datauser_view.php dengan menambahkan fungsi


javascript ambilData() untuk memanggil method getDataByIdpada
controller. Berikut potongan program yang ditambahkan pada
datauser_view.php

• Ubah model datauser_model.php dengan menambahkan function


getDataById() dan update(). Fungsi getDataById()digunakan untuk
mengambil data table berdasarkan user yang diberikan sebagai
parameter. Sementara function update() digunakan untuk
menyimpan data ke table. Berikut potongan program yang
ditambahkan pada datauser_model.php

Jika tombol ubah diklik, username dan nama masuk ke form. Data bisa
diubah dengan mengklik tombol Save.
5) Berikutnya akan dibuat fungsi untuk hapus data. Pada halaman di atas, saat
link “hapus” diklik, data akan dihapus dengan konsep AJAX

• Ubah controller datauser.php dengan menambahkan function


deleteData() yang berfungsi untuk menghapus data user
berdasarkan username yang dipilih. Berikut potongan program yang
ditambahkan pada datauser.php

• Ubah view datauser_view.php dengan menambahkan fungsi


javascript hapusData () untuk memanggil method deleteData pada
controller. Berikut potongan program yang ditambahkan pada
datauser_view.php
• Ubah model datauser_model.php dengan menambahkan function
deletedata() yang digunakan untuk menghapus data berdasarkan
user yang diberikan sebagai parameter. Berikut potongan program
yang ditambahkan pada datauser_model.php

Berikut ini tampilan jika data berhasil dihapus


6) Berikut ini isi lengkap dari controller datauser.php
7) Berikut ini isi lengkap file view datauser_view.php
Modul Praktikum Pemrograman Web 2 (PG066)

139
10.4 LATIHAN
1) Buatlah aplikasi CRUD untuk table dosen yang memiliki struktur sebagai
berikut
Nama Field Tipe Data Keterangan
kddosen varchar(5) Primary Key
namadosen varchar(100)
alamat varchar(100)
email varchar(100)
notelp varchar(20)

140
10.5 TUGAS MANDIRI
1) Apa perbedaan antara fungsi .ajax dan .post pada jquery?
2) Apa kegunaan fungsi removeClass pada jquery?
3) Apa perbedaan antara html(„‟) dan html() pada jquery?
PRAKTIKUM 11
LAPORAN GRAFIK

11.1 TUJUAN PRAKTIKUM


Tujuan Umum

Mahasiswa mengetahui cara membuat laporan dalam bentuk grafik

Tujuan Khusus
1. Mahasiswa mengetahui cara membuat laporan grafik menggunakan library
yang sudah ada

11.2 TEORI SINGKAT


11.2.1 Laporan Grafik

Untuk membuat laporan terkadang digunakan bentuk grafik seperti grafik batang,
grafik garis maupun lingkaran. Ada beberapa library yang bisa digunakan untuk
membuat grafik, yaitu

• JpGraph http://jpgraph.net (server side)


• PHPChart https://phpchart.com/ (server side)
• Google Charts (client side)
• Chartjs https://www.chartjs.org/ (client side)

Masing-masing library memiliki kekurangan dan kelebihan. Untuk praktikum ini kita
akan menggunakan library chartjs.

11.2.2 Chartjs

Chartjs merupakan library javascript untuk membuat grafik. Beberapa kelebihan


chartjs adalah

• Opensource
• Dapat mendukung beberapa jenis chart yaitu line chart, bar chart, radar
chart, polar area chart, pie chart, bubble chart, scatter dan horizontal bar
• Ukurannya kecil dan ringan
• Berbasis HTML5 sehingga tidak memerlukan plugin tambahan di browser
• responsive

Versi terbarunya bisa Anda download di


https://github.com/chartjs/Chart.js/releases/latest. Pada contoh ini yang
didownload adalah file Chart.min.js

Copy file Chart.min.js ke dalam folder assets.

Untuk membuat sebuah grafik menggunakan chart.js kita memerlukan sebuah


object HTML5 yaitu canvas. Misalnya seperti ini

<canvas id="myChart" width="400" height="400"></canvas>

Kemudian buat object menggunakan class tersebut. Gunakan salah satu cara
berikut

var ctx = document.getElementById("myChart");

var ctx = document.getElementById("myChart").getContext("2d");

var ctx = $("#myChart");

var ctx = "myChart";


Buat chart menggunakan perintah berikut.

var myChart = new Chart(ctx, {

type:….,

data :….,

options :….,

});

Penjelasan

• type => berisi jenis grafik seperti apa yang akan buat. Isinya „bar‟, „pie‟,
atau „line‟
• data => berisi array untuk menampilkan data pada grafik.
o Labels => judul masing-masing grafik.
o datasets => menentukan data yang akan ditampilkan
▪ label => label grafik
▪ data => nilai masing-masing grafik
▪ backgroundColor => warna background untuk masing-
masing grafik. Isinya nilai rgb atau nama warna
▪ borderColor => warna border untuk masing-masing grafik.
Isinya nilai rbg atau nama warna
▪ borderWidth => ketebalan border grafik

11.3 PELAKSANAAN PRAKTIKUM


1) Instalasi Chartjs
• Untuk menggunakan chartjs pada Codeigniter, copy file chart.min.js
ke dalam folder assets.
• Panggil library di views dengan cara
<script src="<?php echo
base_url('assets/Chart.min.js')?>"></script>
• Panggil data chart melalui elemen HTML5 canvas
<canvas id="myChart"></canvas>

2) Membuat Grafik batang


Untuk membuat grafik batang diperlukan file controller dan view. Buat
Controller bernama Chart1.php yang isinya sebagai berikut

Buat view chart1_view.php yang isinya sebagai berikut


Berikut ini hasilnya di browser

Pada baris 11 di file view chart1_view.php ada settinggan


type: 'bar'
„bar‟ bisa diganti menjadi „line‟ ataupun ‟pie‟

Ini tampilan grafik line dengan data seperti di atas


Ini tampilan grafik pie dengan data seperti di atas
3) Data yang ditampilkan pada chart bisa berasal dari database. Buatlah
sebuah table bernama polling dengan struktur sebagai berikut
Nama Field Tipe Data Keterangan
idpilihan int(3) Primary Key
pilihan varchar(100)
jumlahvote int(3)
bgcolor varchar(10)

Isikan beberapa record pada table tersebut seperti ini


idpilihan pilihan jumlahvote bgcolor
1 Jawa Barat 11 red
2 Jawa Tengah 42 g
3 Jawa Timur 25
4 Jakarta 44
5 Yogyakarta 90
6 Banten 24

Untuk membuat grafik hasil vote diperlukan file controller, model dan view.
Buat Controller bernama Chart2.php yang isinya sebagai berikut
Buat view chart2_view.php yang isinya sebagai berikut

Buat model Poll_model.php yang isinya sebagai berikut

Berikut hasil di browser


4) Modifikasi program di atas agar data yang dimasukkan ke dalam grafik
berasal dari AJAX.
11.4 LATIHAN
1) Buatlah aplikasi CRUD untuk table barang yang memiliki struktur sebagai
berikut!
Nama Field Tipe Data Keterangan
kdbarang varchar(5) Primary Key
namabarang varchar(100)
merek varchar(100)
stok int(5)
harga int(5)
2) Buatlah grafik lingkaran/pie untuk menampilkan data barang dan stoknya!
11.5 TUGAS MANDIRI
1) Sebuah aplikasi penjualan memiliki table barang dan penjualan.
Struktur table barang
Nama Field Tipe Data Keterangan
kdbarang varchar(5) Primary Key
namabarang varchar(100)
merek varchar(100)
stok int(5)
harga int(5)

Struktur table penjualan


Nama Field Tipe Data Keterangan
idtransaksi int(5) Primary Key, auto increment
tgltransaksi varchar(5) foreign key dari table barang

Struktur table detilpenjualan


Nama Field Tipe Data Keterangan
iddetil int(5) Primary Key, auto increment
idtransaksi int(5) foreign key dari table penjualan
kdbarang varchar(5) foreign key dari table barang
jumlah int(5)

Buatlah grafik batang untuk menampilkan 5 barang terlaris pada suatu


bulan tertentu!

2) Dari soal di atas, tampilkan juga 5 barang dengan stok paling banyak
menggunakan grafik bar!
PRAKTIKUM 12
LAPORAN PDF

12.1 TUJUAN PRAKTIKUM


Tujuan Umum

Mahasiswa mengetahui cara membuat laporan dalam bentuk pdf

Tujuan Khusus
1. Mahasiswa mengetahui cara membuat laporan pdf menggunakan library yang
sudah ada

12.2 TEORI SINGKAT


12.2.1 Laporan PDF

Laporan PDF diperlukan agar laporan dapat disimpan di harddrive komputer. laporan
dalam bentuk PDF memiliki keunggulan karena memiliki format standar, keamanan
terhadap perubahan data serta dukungan berbagai browser dan sistem operasi
dalam membuka file PDF. Ada beberapa library yang bisa digunakan untuk membuat
laporan PDF yaitu

• FPDF http://fpdf.org
• Mpdf http://mpdf.github.io
• Dompdf https://github.com/dompdf/dompdf
• Wkhtmltopdf https://github.com/wkhtmltopdf/wkhtmltopdf
• Tcpdf https://tcpdf.org/

library memiliki kekurangan dan kelebihan. Untuk praktikum ini kita akan
menggunakan library fpdf.

12.2.2 FPDF
FPDF (http://fpdf.org) merupakan salah satu library PHP yang memungkinkan untuk
membuat / generate file PDF secara langsung dari PHP (on-the-fly) tanpa harus
menginstall atau mengaktifkan modul PHP tertentu (seperti PDFLib). dari nama FPDF
merupakan singkatan dari Free, jadi FPDF dapat didownload, digunakan dan
dikembangkan secara bebas. FPDF dapat didownload secara gratis di
http://fpdf.org/en/download.php beserta dokumentasi lengkapnya di
http://fpdf.org/en/doc/index.php. Tersedia juga dokumentasi dalam bahasa
Indonesia.

Download versi terbarunya di http://fpdf.org/en/download.php. Pada materi ini


file hasil download bernama fpdf181.zip. Buat folder bernama fpdf di
application/third_party/ dan copy file fpdf181.zip ke folder fpdf, Kemudian extract
sehingga didapatkan folder sebagai berikut

12.3 PELAKSANAAN PRAKTIKUM


1) Membuat Library
Sebelum fpdf dapat digunakan dalam aplikasi codeigniter, buat terlebih
dahulu librarynya. Buat file baru bernama pdf.php dan simpan di
application/libraries.
Berikut ini isi file pdf.php

2) Membuat Program Mencetak PDF Dengan Data Dari Database


Pada program ini akan dibuat laporan polling yang datanya diambil dari
table polling. Model menggunakan file Poll_model.php yang sudah dibuat
sebelumnya.

Buat Controller bernama laporanpolling.php yang isinya sebagai berikut


Penjelasan

• Baris 5 : memanggil library pdf


• Baris 11 : Membuat object baru bernama $pdf dari class FPDF().
Dengan terbentuknya object tersebut, maka konstruktor dari class
FPDF akan otomatis dijalankan. Konstruktor antara lain mengatur
orientasi kertas, ukuran kertas (paper size) dan satuan ukuran kertas.
Sebagai contoh lain, jika kita ingin membuat halaman FPDF dengan
ukuran kertas Letter, orientasi Lanscape, dan satuan ukuran kertas
dalam centimetres (cm) maka pembentukan object menjadi $pdf =
new FPDF(„L‟, „cm‟, „Letter‟).
• Baris 13 : Fungsi AddPage() digunakan untuk membuat halaman PDF
baru (insert new page). Jika diinginkan suatu halaman dengan ukuran
maupun orientasi berbeda, maka dapat ditambahkan parameter di
fungsi ini. Contohnya AddPage(„P‟, ‟A4‟)
• Baris 14 : Fungsi SetFont() digunakan untuk mengatur font tulisan
yang akan ditampilkan. Dalam program diatas diatur font tulisan
sebagai Arial, ukuran 16 dan huruf tebal (bold).
• Baris 15 : Fungsi Cell() digunakan untuk menampilkan suatu text di
halaman. Text akan ditampilkan dengan ukuran sesuai yang sudah
diatur dengan SetFont(). Parameter yang dapat disertakan dalam
fungsi Cell() secara berurutan adalah lebar cell, tinggi cell, text yang
akan ditampilkan, border cell, pilihan pindah baris setelah cell,
perataan text, isi dari cell dan terakhir pilihan untuk menambahkan link
pada text.
• Baris 30 : Fungsi Output() digunakan untuk menampilkan atau meng-
generate halaman PDF. Kita juga dapat menentukan nama file dan
target output dari PDF yang dihasilkan. Target dapat ke file, browser
atau download.
• Baris 22 : memanggil model Poll_model untuk mendapatkan data
polling
• Baris 23 : looping untuk membaca data table per record kemudian
ditampilkan

Jalankan dari browser


http://localhost/budiluhur/index.php/laporanpolling hasilnya sebagai
berikut

3) Modifikasi program di atas sehingga data polling akan ditampilkan secara


berurutan berdasarkan jumlah vote yang paling banyak!
4) Contoh Program PDF Mencetak Data Penjualan
Pada program ini menggunakan table barang, detilpenjualan dan penjualan
yang sudah dibuat pada praktikum sebelumnya. Isikan beberapa data
sebagai berikut pada

Tabel Barang
Kdbarang namabarang merek stok harga
B0001 Mie instan indomie 100 2000
B0002 Air mineral aqua 50 1500
B0003 minyak goreng bimoli 10 23000
B0004 kecap abc 30 8500

Tabel Penjualan
idtransaksi tgltransaksi
1 2016-07-12
2 2016-07-13
3 2017-07-13

Tabel detilpenjualan
iddetil idtransaksi kdbarang jumlah
1 1 B0001 2
2 1 B0003 3
3 2 B0002 4
4 2 B0003 3
5 3 B0002 1
6 3 B0003 2
7 3 B0004 3

Buat sebuah controller bernama Transjual.php yang isinya sebagai berikut


Buat File Transjual_model.php yang isinya sebagai berikut
Ini tampilannya jika dipanggil dengan
http://localhost/budiluhur/index.php/transjual/Cetakpenjualan/1

5) Modifikasi program di atas sehingga tanggal transaksi ditampilkan menjadi


12 Juli 2016 dan angka dijadikan format Indonesia (contoh 69000 diubah
menjadi 69.000) !
6) Buatlah program untuk menampilkan data penjualan yang sudah terjadi
berdasarkan database di atas. Data diurutkan berdasarkan id transaksi.
Pada tampilan berikut ini, jika diklik link “Cetak”, akan tampil hasil cetakan
seperti contoh no 4)
12.4 LATIHAN
1) Buatlah program untuk mencetak data barang dalam bentuk PDF berdasarkan
table di atas
2) Buatlah program untuk mencetak data barang yang belum pernah dipesan
dalam bentuk PDF!

3) Buatlah program untuk menampilkan form polling berdasarkan table polling


yang sudah dibuat sebelumnya. Simpan juga form ke table tersebut
12.5 TUGAS MANDIRI
1) Apa yang harus dilakukan agar file pdf hasil generate pdf dapat langsung di-
download?
2) Apa kegunaan dari $pdf->Ln() pada controller Transjual.php?
3) Apa kegunaan $pdf->SetFillColor() pada controller Transjual.php dan apa saja
parameter yang dibutuhkan?
4) Apa kegunaan $pdf->SetDrawColor() pada controller Transjual.php dan apa
saja parameter yang dibutuhkan?
PRAKTIKUM 13
LAPORAN SPREADSHEET

13.1 TUJUAN PRAKTIKUM


Tujuan Umum

Mahasiswa mengetahui cara membuat laporan dalam bentuk Spreadsheet

Tujuan Khusus
1. Mahasiswa mengetahui cara membuat laporan Spreadsheet menggunakan
library yang sudah ada

13.2 TEORI SINGKAT


13.2.1 Laporan Spreadsheet

Laporan bisa disajikan dalam bentuk spreadsheet/excel. Ada beberapa library yang
bisa digunakan untuk membuat laporan spreadsheet yaitu

• PHPExcel https://github.com/PHPOffice/PHPExcel
• PHPSpreadsheet https://github.com/PHPOffice/PhpSpreadsheet

PHPSpreadsheet merupakan versi terbaru dari PHPExcel. Untuk praktikum ini kita
akan menggunakan library PHPSpreadsheet.

13.2.2 PHPSpreadsheet

PHPSpreadsheet adalah library PHP yang berfungsi untuk mengelola file Spreadsheet
dengan PHP. Menurut dokumentasinya yang tersedia di
https://phpspreadsheet.readthedocs.io/ ada beberapa jenis file spreadsheet yang
bisa dibaca dan ditulis oleh PHPSpreadsheet yaitu
Format Reading Writing

Open Document Format/OASIS (.ods) ✓ ✓

Office Open XML (.xlsx) Excel 2007 and above ✓ ✓

BIFF 8 (.xls) Excel 97 and above ✓ ✓

BIFF 5 (.xls) Excel 95 ✓

SpreadsheetML (.xml) Excel 2003 ✓

Gnumeric ✓

HTML ✓ ✓

SYLK ✓

CSV ✓ ✓

PDF (using either the TCPDF, Dompdf or mPDF libraries,



which need to be installed separately)

13.3 PELAKSANAAN PRAKTIKUM


1) Instalasi Composer

Untuk instalasi PHPSpreadsheet dibutuhkan composer. Anda bisa


mendownloadnya di https://getcomposer.org/download/. Pilih sesuai
system operasi yang Anda gunakan. Pada contoh ini digunakanlah Windows
installer.

Kemudian jalankan file instalasinya


Pilih lokasi file php.exe, kemudian klik Next.

Jika menggunakan proxy, masukkan alamat proxy. Klik Next


Klik Install untuk melanjutkan instalasi composer.

Klik Finish. Instalasi composer selesai.


2) Instalasi PHPSpreadsheet

Untuk menggunakan library spreadsheet pada project codeigniter Anda masukkan ke


command prompt. Pada contoh ini saya akan masuk ke lokasi project saya di
D:/htdocs/budiluhur

Ketikkan perintah berikut (Anda butuh koneksi ke internet ) lalu tekan Enter

composer require phpoffice/phpspreadsheet


Perintah di atas menghasilkan folder “vendor” di folder project Anda.

Selanjutnya buka file application/config/config.php dengan notepad++. Ubah lokasi


folder vendor sebagai berikut

$config['composer_autoload'] = 'vendor/autoload.php';

3) Membuat Program Cetak Excel

Buatlah controller bernama Exceltest.php simpan di application/controller. File


tersebut isinya sebagai berikut
Penjelasan program
• Baris 1 dan 2 : pemanggilan class Spreadsheet dan Xlsx
• Baris 10 : membuat object bernama $spreadsheet yang berasal dari
class Spreadsheet()
• Baris 11 : menentukan sheet yang aktif
• Baris 12 : mengisi Cell A1 dengan kata “Hello World”
• Baris 13 : membuat file xlsx
• Baris 14 : menentukan nama file xlsx
• Baris 15 : menyimpan file xlsx ke documentroot project

Jalankan program ini di browser. Tampilan di browser kosong. Contoh di atas


akan membuat sebuah file bernama contoh1.xlsx yang langsung disimpan di
folder project Anda.

Ini isi file contoh1.xlsx


4) Tambahkan function berikut pada controller Exceltest.php

Jika dijalankan, browser akan langsung mendownload file bernama contoh2.xlsx


yang isinya sama seperti file contoh1.xlsx

5) Modifikasi program di atas untuk membuat file xlsx yang isinya sebagai berikut
7) Membuat spreadsheet dengan data dari database
• Buatlah sebuah table dengan nama pegawai yang strukturnya
sebagai berikut
Struktur table pegawai
Nama Field Tipe Data Keterangan
kdpgw varchar(5) Primary Key
namapgw varchar(100)
alamat varchar(100)
nohp varchar(50)
email varchar(100)

• Isikan table pegawai dengan data berikut!


kdpgw namapgw alamat nohp email
P0001 Wahyu Jakarta 081212345678 wahyu@gmail.com
P0002 Kiky Jakarta 081223456789 kiky@gmail.com
P0003 Juki Tangerang 081111111111 juki@gmail.com
P0004 Upin Bogor 081313131313 upin@gmail.com
• Buat controller pgw.php dengan isi sebagai berikut
• Buat model pgw_model.php untuk mengambil data pegawai yang
isinya sebagai berikut

• Buat view laporanpgw_view.php yang isinya sebagai berikut


• Tampilan view jika dijalankan di browser

• Klik “Export to Excel” sehingga mendownload file Excel yang isinya


sebagai berikut

13.4 LATIHAN
1) Buatlah table bernama gaji dengan struktur table sebagai berikut
Struktur table gaji
Nama Field Tipe Data Keterangan
id int(5) Primary Key, auto increment
kdpgw varchar(5) foreign key dari table pegawai
gapok int(10)
tunjangan int(10)
bulan varchar(2) isinya index bulan 01-12
tahun varchar(4)

Isikan table gaji dengan data berikut!


id kdpgw gapok tunjangan bulan tahun
1 P0001 1000000 100000 01 2016
2 P0002 1000000 150000 01 2016
3 P0003 900000 100000 01 2016
4 P0004 1100000 200000 01 2016
5 P0001 1000000 100000 02 2016
6 P0002 1000000 150000 02 2016
7 P0003 900000 100000 02 2016
8 P0004 1100000 200000 02 2016

Buat sebuah view sebagai berikut


• Pada view di atas, jika dipilih bulan “Januari” dan Tahun “2016”,
kemudian diklik “Cetak Laporan Pegawai” akan menghasilkan file
excel dengan isi sebagai berikut
13.5 TUGAS MANDIRI
1) Apa kegunaan dari baris berikut pada controller pgw.php?

header('Content-Type:application/vnd.openxmlformats-
officedocument.spreadsheetml.sheet');

header('Content-Disposition: attachment;filename="Laporan
Pegawai.xlsx"');

header('Cache-Control: max-age=0');

2) Buatlah laporan Excel untuk data dari tabel polling yang sudah dibuat pada
praktikum sebelumnya!
3) Buatlah laporan Excel untuk data penjualan yang sudah dibuat pada
praktikum sebelumnya!
PRAKTIKUM 14
APLIKASI PHP FRAMEWORK #1

14.1 TUJUAN PRAKTIKUM


Tujuan Umum

Mahasiswa mengetahui cara membuat aplikasi penjualan berbasis framework

Tujuan Khusus
1. Mahasiswa mempraktekkan cara membuat aplikasi penjualan berbasis
framework yang menggunakan beberapa library jquery, css dan PHP

14.2 TEORI SINGKAT


14.2.1 Aplikasi Penjualan

Modul yang ada dalam aplikasi penjualan ini adalah

• Master Kategori Produk


• Master Produk
• Master Customer
• Master User
• Transaksi Penjualan
• Laporan Penjualan

Framework/library yang digunakan dalam aplikasi penjualan ini adalah

• CSS Bootstrap https://getbootstrap.com/


• JQuery https://jquery.com/
• JQuery UI https://jqueryui.com/
• Font Awesome https://fontawesome.com/

14.3 PELAKSANAAN PRAKTIKUM


1) Buatlah sebuah folder bernama cisimplecommerce pada documentroot Anda.
Letakkan framework CodeIgniter di dalamnya
2) Lakukan setting di beberapa bagian
• Buka file application/config/config.php dan ubah settingan base_url
menjadi sebagai berikut
$config['base_url'] = 'http://localhost/cisimplecommerce/';
• Ubah default controller menjadi login. Buka file
application/config/router.php dan ubah settingan default_controller
menjadi sebagai berikut.
$route['default_controller'] = 'login';
• Jalankan library session dan database setiap saat. Jalankan helper url
setiap saat. Buka file application/config/autoload.php dan ubah settingan
libraries dan helper menjadi sebagai berikut.
$autoload['libraries'] = array('database','session');
$autoload['helper'] = array('url');
• Ubah settingan koneksi database. Setting hostname, username, password,
database dan dbdriver. Database yang digunakan dalam aplikasi ini adalah
cisimplecommerce. Buka file application/config/database.php dan ubah
menjadi sebagai berikut.
'hostname' => 'localhost',
'username' => 'root',
'password' => '',
'database' => 'cisimplecommerce',
'dbdriver' => 'mysqli',
• Buat folder “pages” dan “templates” di dalam folder application/views.
Folder “templates” digunakan untuk menyimpan templates halaman
keseluruhan dan folder “pages” digunakan untuk menyimpan views per
modul.
• Buat folder “resources” di dalam documentroot untuk menyimpan
css,js,img dan library lain yang diperlukan.
Simpan file bootstrap.min.css, font-awesome.min.css di
application/resources/css.
Simpan file jquery.js, bootstrap.min.js di application/resources/js
3) Database dan Tabel

Buat database bernama cisimplecommerce menggunakan phpmyadmin


http://localhost/phpmyadmin

Buat beberapa table sebagai berikut

a. Table kategori
Nama Field Tipe Data Keterangan
idkategori int(3) primary key, auto
increment
namakategori varchar(50)

b. Tabel user
Nama Field Tipe Data Keterangan
user varchar(50) primary key
nama varchar(50)
password varchar(100)

Jalankan query berikut pada table user

INSERT INTO `user` (`user`, `nama`, `pass`) VALUES ('admin',


'administrator', MD5('admin'));

c. Table produk
Nama Field Tipe Data Keterangan
idproduk varchar(5) primary key
idkategori int(3) foreign key kategori
namaproduk varchar(100)
harga int(10)
d. Table customer
Nama Field Tipe Data Keterangan
idcustomer varchar(5) primary key
namacustomer varchar(50)
alamat varchar(100)
nohp varchar(20)
email varchar(100)

e. Table penjualan
Nama Field Tipe Data Keterangan
idtransaksi int(3) primary key, auto
increment
tgltransaksi date
idcustomer varchar(5) foreign key customer

f. Tabel detilpenjualan
Nama Field Tipe Data Keterangan
iddetil int(3) primary key, auto
increment
idtransaksi int(3) foreign key transaksi
idproduk varchar(5) foreign key produk
jumlah int(3)
hargajual int(5) harga jual produk

4) Halaman login
a. File Controller login.php simpan di application/controllers
b. File Loginmodel.php simpan di application/models
c. File view login.php simpan di application/views/pages
d. Buka http://localhost/cisimplecommerce sehingga tampil sebagai berikut

Lakukan login dengan username admin dan password admin.

5) Merancang halaman home admin


Halaman home admin digunakan setelah admin berhasil login. Buat beberapa
file berikut
a. File controller home.php simpan di application/controllers
b. File view header.php disimpan di application/views/template

c. File view nav.php disimpan di application/views/template

d. File view footer.php disimpan di application/views/template


e. File view home.php disimpan di application/views/pages

f. Tampilan halaman home setelah user berhasil login seperti ini

6) Merancang halaman CRUD user


a. Buat file controller adminuser.php, simpan di application/controllers. Isinya
sebagai berikut
b. Buat file view dataUser.php, simpan di application/views/pages. Isinya
sebagai berikut
Modul Praktikum Pemrograman Web 2 (PG066)

192
c. Buat file model dataUsermodel.php, simpan di application/models. Isinya
sebagai berikut

193
d. Jika dijalankan hasilnya seperti di bawah ini

7) Tambahkan tombol Print PDF dan Print Excel pada master user di atas untuk
mencetak file PDF dan Excel!
14.4 LATIHAN
1) Buatlah program CRUD untuk halaman kategori produk, produk dan
customer.
14.5 TUGAS MANDIRI
1) Apa kelebihan halaman web yang menggunakan CSS bootstrap?
2) Apa kegunaan dari library font-awesome?
3) Pada halaman master user, tambahkan library datatable untuk memberikan
fitur sort pada table HTML data user!
PRAKTIKUM 15
APLIKASI PHP FRAMEWORK #2

15.1 TUJUAN PRAKTIKUM


Tujuan Umum

Mahasiswa mengetahui cara membuat aplikasi penjualan berbasis framework

Tujuan Khusus
1. Mahasiswa mempraktekkan cara membuat aplikasi penjualan berbasis
framework yang menggunakan beberapa library jquery, css dan PHP

15.2 TEORI SINGKAT


15.2.1 Aplikasi Penjualan

Praktikum ini merupakan kelanjutan dari praktikum sebelumnya yaitu membuat


aplikasi penjualan. Pada praktikum sebelumnya telah dibuat data CRUD untuk
master. Praktikum ini akan membuat halaman penjualan dan laporan penjualan.

15.3 PELAKSANAAN PRAKTIKUM


1) Buatlah sebuah model bernama Penjualanmodel.php. Model ini berguna untuk
menyimpan data ke dalam table penjualan dan detilpenjualan. Model ini juga
bernama untuk mengambil data barang dan data customer untuk dimunculkan
pada form penjualan
Isinya sebagai berikut
Modul Praktikum Pemrograman Web 2 (PG066)

198
Penjelasan
• Baria 6-10 : membuat variable untuk menampung nama table database
yang digunakan
• Baris 12-20 : untuk menginput data ke dalam table penjualan.
Kembalikan status penyimpanan (gagal atau sukses) ke controller
• Baris 21-28 : untuk menginput data ke dalam table detilpenjualan.
• Baris 29-41 : untuk mengambil data barang dari table produk dan join ke
table kategori. Kembalikan data ke controller
• Baris 42-40 : untuk mengambil data barang dari table customer.
Kembalikan data ke controller

2) Buatlah sebuah controller bernama penjualan.php. Pada controller ini terdapat


beberapa fungsi yang berkaitan untuk menampilkan form penjualan dan juga
penyimpanan data.
Isi filenya sebagai berikut

199
Penjelasan
• Baris 8 : memberikan variable dataheader yang akan digunakan pada
views template header.php
• Baris 11-12 : Memanggil function yang ada di controller ini
• Baris 17-19 : mengambil data customer dan disimpan ke dalam variable
$this->data[„listdatacust‟];
• Baris 20-29 : mengambil data barang dan disipman ke dalam varaiabel
$this->data[„listdatabarangtoko‟];
• Baris 35-36 : untuk mengambil data tanggal dan nama customer
• Baris 37 : pengecekan jika tombol tblsimpan diklik
• Baris 38 : memanggil function save pada model Penjualanmodel
• Baris 40 : jika save success, siapkan data untuk simpan ke table
detailpenjualan
• Baris 47 : looping untuk menyimpan ke table det

3) Buat sebuah view bernama penjualan.php yang disimpan di


application/views/pages
Isi file sebagai berikut
Modul Praktikum Pemrograman Web 2 (PG066)

202
Modul Praktikum Pemrograman Web 2 (PG066)

203
Penjelasan
• Baris 16-19 : digunakan untuk menampilkan semua data customer ke
dalam dropdown
• Baris 20 : tombol yang digunakan untuk memanggil fungsi popbarang().
Fungsi popbarang akan menampilkan semua data barang untuk dipilih
• Baris 28-35 : table HTML untuk menampung data barang yang sudah
dipilih
• Baris 41-44 : tombol untuk menyimpan, menghitung ulang dan mereset
form
• Baris 49-76 : table HTML untuk menampilkan data barang. Awalnya table
ini tidak muncul di layar, tapi akan menjadi modal jika tombol “Pilih
Barang” di klik

204
• Baris 88-117 : fungsi javascript yang akan berfungsi saat modal pilih
barang muncul dan tombol “Pilih” diklik. Fungsi ini akan memanggil detail
nama barang untuk dimunculkan pada table HTML data barang yang
sudah dipesan.
• Baris 119-121 : fungsi javascript untuk menampilkan modal data barang
• Baris 122-128 :fungsi javascript yang berfungsi saat salah satu barang di
table HTML pesanan diklik
• Baris 129-136 : fungsi javascript untuk menghitung ulang nilai pesanan
jika ada data pada table HTML pesanan yang diklik Save
• Baris 137-147 : fungsi javacript untuk mengecek data sebelum disubmit
• Baris 148-162 : fungsi javacsript untuk menghitung ulang nilai pesanan

4) Buat sebuah view bernama hasilpesan.php yang disimpan di


application/views/pages

5) Berikut tampilan awal di browser

Berikut tampilan jika tombol “Pilih Barang” diklik kemudian diisi quantity barang
yang akan dipesan dan klik pilih
Berikut hasilnya pada table HTML detil pesanan

Jika tanggal dan customer sudah diisi kemudian diklik Save, tampilannya seperti
ini
6) Tambahkan tombol Print PDF dan Print Excel pada master user di atas untuk
mencetak file PDF dan Excel!

15.4 LATIHAN
1) Buatlah controller untuk laporan yang akan menampilkan data penjualan
yang terjadi selama 30 hari terakhir.
Data tersebut berisi no penjualan, nama customer dan total penjualan
2) Buat tombol PDF dan XLS pada halaman laporan untuk menampilkan data
laporan dalam bentuk PDF dan XLS
15.5 TUGAS MANDIRI
1. Buatlah sebuah tabel bernama masterdosen yang di dalamnya terdapat field
sebagai berikut
Nama field Tipe data Keterangan
nidn Varchar (10) Primary key, cth : 0307038501
namalengkap Varchar (100)
gelardepan Varchar(10) Gelar di depan nama, cth Ir, H
gelarbelakang Varchar(10) Gelar di belakang nama cth
S.Kom,M.Kom
jeniskelamin Varchar(1) P = Pria, W= Wanita
fakultas Varchar(5) FTI,ASTRI, FE, FISIP, FIKOM, FT
nomorhp Varchar(12)
tanggallahir Date Format YYYY-MM-DD
alamat Varchar(100)

2. Buatlah sebuah form inputan untuk mengisi data ke dalam tabel


masterdosen tersebut.
- Fakultas ditampilkan dalam bentuk dropdown (combobox)
- Jenis kelamin ditampilkan dalam bentuk radio button
- Alamat ditampilkan dalam bentuk textarea

Sebelum data dimasukkan ke dalam tabel, gunakan library CI validation untuk


memvalidasi data :
- nidn, namalengkap, jeniskelamin, nomorhp harus diisi

Note :

- Gunakan konsep MVC.


- Untuk tampilan form boleh menggunakan form HTML murni ataupun
helper form CI.
- Tampilan view form bebas (tidak ditentukan di soal)
3. Tampilkan data dari tabel masterdosen sebagai berikut

Note :
- Nama dengan gelar merupakan gabungan dari gelardepan + namalengkap
+ gelarbelakang
- untuk jenis kelamin tampilkan wanita / pria (Gunakan if else)
- untuk tanggal lahir tampilkan dalam format DD/MM/YYYY
- untuk fakultas, tampilan nama fakultas lengkap (Gunakan if else)

Anda mungkin juga menyukai