Buku Ajar Pemrograman Internet
Buku Ajar Pemrograman Internet
:
:
:
:
:
Pemrograman Internet
Pemrograman Internet
TE055218
I Made Arsa Suyadnya, ST., M.Eng.
198512152012121001
Menyetujui:
Ketua Jurusan
Teknik Elektro dan Komputer
Fakultas Teknik Unud
ii
PRAKATA
KONTRAK PERKULIAHAN
iii
: Pemrograman Internet
: TE055218
: 3 SKS
: V (Lima)
: ................
: ................
: I Made Arsa Suyadnya, ST., M.Eng.
1.
4.
Strategi Perkuliahan
Strategi perkuliahan ini banyak menggunakan diskusi dan pemecahan
masalah (problem solving learning). Perkuliahan dilaksanakan dengan tatap
muka, diskusi, dan pemecahan masalah. Materi kuliah dan bahan bacaan
wajib diiformasikan pada awal perkuliahan. Untuk menambah pemahaman
materi kuliah, mahasiswa di berikan tugas-tugas berupa tugas-tugas
terstruktur dan tugas mandiri yang kemudian akan didiskusikan pada kuliah
berikutnya.
5.
7.
1.
Tugas-Tugas
Tugas Mandiri Membuat Personal Webpage
Tugas individu untuk membuat sebuah personal webpage dengan
menerapkan HTML, CSS dan JavaScript, kemudian mem-publish web
tersebut di internet memanfaatkan domain dan hosting gratis yang
banyak tersedia di internet.
6.
2.
Materi Pokok
Materi pokok terdiri atas konsep dasar internet dan teknologi web,
HTML, CSS, pemrograman PHP, basis data dalam pemrograman web,
JavaScript dalam pemrograman web, CMS (Content management System),
Web Framework dan Web Service.
Bahan Bacaan
Buku/bahan bacaan dalam perkuliahan ini adalah sebagai berikut:
1. Deitel, P.J., Deitel, H.M. 2008. Internet & World Wide Web How to
Program Fourth Edition. New Jersey: Prentice Hall.
2. Cerami, E. 2002. Web Services Essentials. California: O'Reilly.
3. Richards, R. 2006. Pro PHP XML and Web Services. California:
Apress.
4. Kadir, A. 2008. Dasar Pemrograman Web Dinamis Menggunakan
PHP. Yogyakarta: Andi Offset.
5. Kadir, A. 2011. From Zero to a Pro: CSS - Tip dan Trik untuk
Menyertakan Cascading Style Sheet dalam Halaman web. Yogyakarta:
Andi Offset.
6. Beighley, Lynn dan Morrison, Michael. 2009. Head First PHP &
MySQL. California: OReilly Media, Inc.
7. Kadir, A. 2009. Mastering Ajax dan PHP. Yogyakarta: Andi Offset.
8. Sidik, B. 2012. Framework Codeigniter. Bandung: Penerbit
Informatika.
9. Larsen, Rob. 2013. Beginning HTML & CSS. Indiana: John Wiley &
Sons, Inc.
10. Sidik, B. dan Pohan, H.I. 2007. Pemrograman Web dengan HTML.
Bandung: Penerbit Informatika.
11. Mansfield, R. 2005. CSS Web Design For Dummies. New Jersey: Wiley
Publishing.
v
8.
: 10%
: 10%
: 30%
: 25%
: 25%
vi
Angka Mutu
(skala 0-4)
4
3
2
1
0
Huruf Mutu
(Skala Kualitatif)
A
B
C
D
E
No.
1
2
3
5
6
7
8
9
10
11
12
Pokok Bahasan
Kontrak perkuliahan
Internet dan Teknologi Web
HTML (HyperText Markup Language)
CSS (Cascading Style Sheet)
Dasar Pemrograman PHP
UTS
Basis Data dalam Pemrograman Web
dengan MySQL
JavaScript
Web CMS (Content Management System)
Web Framework dengan CodeIgniter
Web Services
UAS
Minggu KeI
II - III
IV - V
VI - VII
VIII
5.
6.
7.
8.
9.
10. Lain-lain
Apabila ada hal-hal yang diluar kesepakatan ini untuk perlu disepakati,
dapat dibicarakan secara teknis pada saat setiap acara perkuliahan. Apabila
ada perubahan isi kontrak perkuliahan, akan ada pemberitahuan terlebih
dahulu.
Kontrak perkuliahan ini dapat dilaksanakan, mulai dari disampaikan
kesepakatan ini.
Wakil Mahasiswa,
Bukit Jimbaran,................................
Dosen Pengampu
........................................
NIM. ..............................
IX - X
XI
XII
XIII - XIV
XV
XVI
viii
SILABUS
ix
xi
xii
xiii
xiv
Penyajian
Penutup
Post Test
Referensi
Kontrak Kuliah,
Penilaian dan SOP
Dosen; memberikan
ulasan umum isi
mata kuliah
Pengenalan Internet
dan Teknologi Web
Mengulas mengenai
internet dan
teknologi web mulai
dari sejarah
perkembangannya,
konsep dasar server
side dan client side,
konsep URL, HTTP,
WWW, Domain,
Hosting, web statis,
web dinamis hingga
bahasa pemrograman
web; fasilitator,
mediator dan
motivator diskusi
Merangkum isi
pokok bahasan,
memberikan evaluasi
dan memberikan
materi tugas latihan
terstruktur/mandiri
penjelasan, serta
mencatat
Melihat,
mendengarkan
penjelasan,
mencatat,
bertanya, dan
berdiskusi
Jadwal study
guide,
Texbook,
Tugas
Terstruktur,
Diktat, Slide
Presentasi
sda
Menyimak,
sda
mengajukan
pertanyaan dan
pendapat,
menjawab
pertanyaan
evaluasi
Ujian tertulis, lisan, penilaian/evaluasi terhadap proses
pembelajaran, dan penilaian terhadap unjuk sikap
Deitel, P.J., Deitel, H.M. 2008. Internet & World Wide
Web How to Program Fourth Edition. New Jersey:
Prentice Hall.
Kadir, A. 2008. Dasar Pemrograman Web Dinamis
Menggunakan PHP. Yogyakarta: Andi Offset.
xv
Pemrograman Internet
TE055218
2 x 3 x 50 menit = 300 menit
2 dan 3
Mahasiswa dapat :
Memahami konsep dasar HTML
Menerapkan penggunaan tag-tag HTML
Menampilkan informasi dengan
menggunakan HTML
Membuat halaman web statis dengan
menggunakan HTML
Pengenalan HTML (HyperText Markup
6. Materi Pokok
Language)
Konsep struktur HTML
Tag-tag HTML
Atribut dasar HTML
Konsep web statis
7. Pengalaman
Mempelajari dan mendiskusikan struktur
Belajar
HTML dan penerapannya dalam
pemrograman web
Mempelajari tag-tag HTML
Mempelajari dan mendiskusikan atribut dasar
dalam HTML
Mempelajari dan mendiskusikan web statis
Strategi Pembelajaran
Media dan
Kegiatan
Alat
Tahapan
Kegiatan Dosen
Mahasiswa
Pembelajaran
(1)
(2)
(3)
(4)
Pembukaan Memberikan ulasan
Melihat,
SAP,
umum isi kuliah,
mendengarkan
Silabus,
materi pokok dan
penjelasan, serta
Rencana dan
kaitannya dengan isi
mencatat
Jadwal study
kuliah yang lain
guide,
Texbook,
Tugas
Terstruktur,
Diktat, Slide
Presentasi
1. Mata Kuliah
2. Kode Mata Kuliah
3. Waktu Pertemuan
4. Pertemuan Ke5. Indikator
Pencapaian
xvi
Penyajian
Penutup
Post Test
Referensi
Mengulas mengenai
HTML termasuk
struktur HTML, tagtag HTML dan
penerapannya dalam
pemrograman web;
fasilitator, mediator
dan motivator
diskusi.
Merangkum isi
pokok bahasan,
memberikan evaluasi
dan memberikan
materi tugas latihan
terstruktur/mandiri
Melihat,
mendengarkan
penjelasan,
mencatat,
bertanya, dan
berdiskusi
sda
Menyimak,
sda
mengajukan
pertanyaan dan
pendapat,
menjawab
pertanyaan
evaluasi
Ujian tertulis, lisan, penilaian/evaluasi terhadap proses
pembelajaran, dan penilaian terhadap unjuk sikap
Larsen, Rob. 2013. Beginning HTML & CSS. Indiana:
John Wiley & Sons, Inc.
Sidik, B. 2007. Pemrograman Web dengan HTML.
Bandung: Penerbit Informatika.
Tahapan
(1)
Pembukaan
Penyajian
Penutup
1. Mata Kuliah
2. Kode Mata Kuliah
3. Waktu Pertemuan
4. Pertemuan Ke5. Indikator
Pencapaian
6. Materi Pokok
7. Pengalaman
Belajar
Pemrograman Internet
TE055218
2 x 3 x 50 menit = 300 menit
4 dan 5
Mahasiswa dapat :
Menjelaskan dan menggunakan CSS pada
halaman web
Memahami penggunaan selector pada CSS
Menerapkan CSS dalam HTML
Pengenalan CSS (Cascading Style Sheet)
Konsep CSS
Selector
Konsep CSS pada HTML
Mempelajari konsep CSS
Mempelajari konsep selector
xvii
Post Test
Referensi
Pemrograman Internet
TE055218
2 x 3 x 50 menit = 300 menit
6 dan 7
Mahasiswa dapat :
Memahami struktur PHP dan mampu
menggunakan bahasa pemrograman PHP
Memahami bentuk variabel, tipe data,
operator dan pencetakan pada PHP
Menjelaskan fungsi instruksi utama dalam
PHP
Menerapkan bahasa pemrograman PHP ke
dalam HTML dan pemrograman web dinamis
Menjelaskan penggunaan parameter URL
sebagai parameter variabel
Pemrograman PHP
6. Materi Pokok
Konsep konsep dasar bahasa pemrograman
PHP
Tipe data dan operator dalam PHP
Instruksi seleksi dan perulangan dalam PHP
Penerapan PHP dalam HTML untuk
penanganan form
URL sebagai parameter nilai
7. Pengalaman
Mempelajari struktur dan konsep dasar bahasa
Belajar
pemrograman PHP
Mempelajari tipe data dan operator dalam
PHP
Mempelajari konsep instruksi seleksi dan
perulangan dalam PHP
Mempelajari penerapan PHP dalam HTML
untuk penanganan form
Mengenal URL sebagai parameter nilai
Strategi Pembelajaran
Media dan
Kegiatan
Tahapan
Kegiatan Dosen
Alat
Mahasiswa
Pembelajaran
(1)
(2)
(3)
(4)
Pembukaan Memberikan ulasan
Melihat,
SAP, Silabus,
umum isi kuliah,
mendengarkan
Rencana dan
1. Mata Kuliah
2. Kode Mata Kuliah
3. Waktu Pertemuan
4. Pertemuan Ke5. Indikator
Pencapaian
xix
Penyajian
Penutup
Post Test
Referensi
1. Mata Kuliah
2. Kode Mata Kuliah
3. Waktu Pertemuan
4. Pertemuan Ke5. Indikator
Pencapaian
Pemrograman Internet
TE055218
2 x 3 x 50 menit = 300 menit
9 dan 10
Mahasiswa dapat :
Memahami tentang penggunaan DBMS
MySQL untuk pembuatan database dan tabel
Menerapkan operasi database yang terdiri dari
CRUD (Create, Read, Update, Delete) tabel
beserta struktur di dalamnya dalam database
MySQL
Menggunakan konsep penanganan database
MySQL dalam bahasa pemrograman PHP
xx
terstruktur/mandiri
6. Materi Pokok
xxi
Post Test
Referensi
pertanyaan
evaluasi
Ujian tertulis, lisan, penilaian/evaluasi terhadap proses
pembelajaran, dan penilaian terhadap unjuk sikap
Beighley, Lynn dan Morrison, Michael. 2009. Head
First PHP & MySQL. California: OReilly Media, Inc.
Beighley, L. 2007. Head First SQL. California:
O'Reilly.
Kadir, A. 2008. Dasar Pemrograman Web Dinamis
Menggunakan PHP. Yogyakarta: Andi Offset.
1. Mata Kuliah
2. Kode Mata Kuliah
3. Waktu Pertemuan
4. Pertemuan Ke5. Indikator
Pencapaian
6. Materi Pokok
7. Pengalaman
Belajar
Pemrograman Internet
TE055218
3 x 50 menit = 150 menit
11
Mahasiswa dapat :
Memahami konsep dan menggunakan
javascript
Memahami dan menerapkan penggunaan
variabel, tipe data, operator, separator,
instruksi seleksi dan looping dalam
JavaScript
Menerapkan penggunaan jQuery sebagai salah
satu JavaScript library
Menerapkan JavaScript dalam HTML dan
Pemrograman PHP
Pengenalan JavaScript
Konsep JavaScript
Variabel, tipe data, operator, separator, dan
instruksi seleksi, dan looping dalam
JavaScript
jQuery sebagai salah satu JavaScript library
JavaScript dalam HTML dan Pemrograman
PHP
Mempelajari konsep pemrograman JavaScript
Mempelajari variabel, tipe data, operator,
separator, dan instruksi seleksi, dan looping
xxii
Tahapan
(1)
Pembukaan
Penyajian
Penutup
Post Test
Referensi
dalam JavaScript
Mempelajari jQuery sebagai salah satu
JavaScript library
Mempelajari penerapan JavaScript dalam
HTML dan Pemrograman PHP
Strategi Pembelajaran
Media dan
Kegiatan
Alat
Kegiatan Dosen
Mahasiswa
Pembelajaran
(2)
(3)
(4)
Memberikan ulasan
Melihat,
SAP, Silabus,
umum isi kuliah,
mendengarkan
Kontrak
materi pokok dan
penjelasan, serta
Kuliah, Tugas
kaitannya dengan isi
mencatat
terstruktur,
kuliah yang lain
Texbook,
Jurnal,
Diktat, Slide
presentasi.
Memberikan ulasan
Melihat,
sda
tentang konsep
mendengarkan
pemrograman
penjelasan,
JavaScript, penerapan mencatat,
JavaScript dalam
bertanya, dan
HTML dan
berdiskusi
pemrograman PHP;
fasilitator, mediator
dan motivator
diskusi.
Merangkum isi
Menyimak,
sda
pokok bahasan,
mengajukan
memberikan evaluasi pertanyaan dan
dan memberikan
pendapat,
materi tugas latihan
menjawab
terstruktur/mandiri
pertanyaan
evaluasi
Ujian tertulis, lisan, penilaian/evaluasi terhadap proses
pembelajaran, dan penilaian terhadap unjuk sikap
Wilton, Paul dan McPeak, Jeremy. 2007. Beginning
JavaScript, Third Edition. Indiana: Wiley Publishing.
xxiii
Pemrograman Internet
TE055218
3 x 50 menit = 150 menit
12
Mahasiswa dapat memahami CMS dan mampu
menerapkan dalam pemrograman web yang
dinamis
CMS (Content Management System)
6. Materi Pokok
Konsep Aplikasi Web berbasis CMS
7. Pengalaman
Mempelajari dan mendiskusikan content
Belajar
management system sebagai pendukung dalam
pemrograman web yang dinamis
Strategi Pembelajaran
Media dan
Kegiatan
Tahapan
Kegiatan Dosen
Alat
Mahasiswa
Pembelajaran
(1)
(2)
(3)
(4)
Pembukaan Memberikan ulasan
Melihat,
SAP,
umum isi kuliah,
mendengarkan
Silabus,
materi pokok dan
penjelasan, serta
Kontrak
kaitannya dengan isi mencatat
Kuliah,
kuliah yang lain
Tugas
terstruktur,
Texbook,
Jurnal,
Diktat, Slide
presentasi.
Penyajian
Memberikan ulasan
Melihat,
sda
tentang konsep CMS mendengarkan
(Content
penjelasan,
Management
mencatat, bertanya,
System); fasilitator,
dan berdiskusi
mediator dan
1. Mata Kuliah
2. Kode Mata Kuliah
3. Waktu Pertemuan
4. Pertemuan Ke5. Indikator
Pencapaian
xxiv
Penutup
Post Test
Referensi
motivator diskusi.
Merangkum isi
pokok bahasan,
memberikan evaluasi
dan memberikan
materi tugas latihan
terstruktur/mandiri
Menyimak,
sda
mengajukan
pertanyaan dan
pendapat,
menjawab
pertanyaan
evaluasi
Ujian tertulis, lisan, penilaian/evaluasi terhadap proses
pembelajaran, dan penilaian terhadap unjuk sikap
Boiko, Bob. 2005. Content Management Bible, 2nd
Edition. Indiana: Wiley Publishing, Inc.
Kadir, A. 2008. Dasar Pemrograman Web Dinamis
Menggunakan PHP. Yogyakarta: Andi Offset.
Pemrograman Internet
TE055218
2 x 3 x 50 menit = 300 menit
13 dan 14
Mahasiswa dapat :
Memahami konsep web application
framework
Menerapkan salah satu PHP Framework dalam
pemrograman web yang dinamis
Web Framework
6. Materi Pokok
Konsep Aplikasi Web berbasis framework
7. Pengalaman
Mempelajari dan mendiskusikan konsep web
Belajar
application framework
Mempelajari dan mengenal contoh-contoh
aplikasi web yang menggunakan web
application framework
Strategi Pembelajaran
Media dan
Kegiatan
Tahapan
Kegiatan Dosen
Alat
Mahasiswa
Pembelajaran
(1)
(2)
(3)
(4)
Pembukaan Memberikan ulasan
Melihat,
SAP,
umum isi kuliah,
mendengarkan
Silabus,
xxv
1. Mata Kuliah
2. Kode Mata Kuliah
3. Waktu Pertemuan
4. Pertemuan Ke5. Indikator
Pencapaian
Penyajian
Penutup
Post Test
Referensi
penjelasan, serta
mencatat
Memberikan ulasan
tentang web
application
framework dan
penerapan salah satu
PHP Framework
dalam pemrograman
web yang dinamis
(Codeigniter);
fasilitator, mediator
dan motivator
diskusi.
Merangkum isi
pokok bahasan,
memberikan evaluasi
dan memberikan
materi tugas latihan
terstruktur/mandiri
Melihat,
mendengarkan
penjelasan,
mencatat, bertanya,
dan berdiskusi
Kontrak
Kuliah,
Tugas
terstruktur,
Texbook,
Jurnal,
Diktat, Slide
presentasi.
sda
Menyimak,
sda
mengajukan
pertanyaan dan
pendapat,
menjawab
pertanyaan
evaluasi
Ujian tertulis, lisan, penilaian/evaluasi terhadap proses
pembelajaran, dan penilaian terhadap unjuk sikap
Foster, Rob. 2013. CodeIgniter 2 Cookbook.
Birmingham: Packt Publishing Ltd.
Sidik, B. 2012. Framework Codeigniter. Bandung:
Penerbit Informatika.
1. Mata Kuliah
2. Kode Mata Kuliah
3. Waktu Pertemuan
4. Pertemuan Ke-
Pemrograman Internet
TE055218
3 x 50 menit = 150 menit
15
xxvi
Mahasiswa dapat :
Menjelaskan manfaat dan pengertian web
service
Menjelaskan mengenai XML
Menjelaskan penggunaan SOAP dan WSDL
Membangun web services sederhana
Web Services
6. Materi Pokok
Pengenalan web service, SOA dan
arsitekturnya
Pengenalan XML
SOAP dan WSDL
7. Pengalaman
Mempelajari dan mendiskusikan konsep SOA
Belajar
(Service Oriented Architecture) dan web
services
Mempelajari dan mendiskusikan mengenai
XML, SOAP dan WSDL
Strategi Pembelajaran
Media dan
Kegiatan
Alat
Tahapan
Kegiatan Dosen
Mahasiswa
Pembelajaran
(1)
(2)
(3)
(4)
Pembukaan Memberikan ulasan
Melihat,
SAP, Silabus,
umum isi kuliah,
mendengarkan
Kontrak
materi pokok dan
penjelasan, serta
Kuliah, Tugas
kaitannya dengan isi
mencatat
terstruktur,
kuliah yang lain
Texbook,
Jurnal,
Diktat, Slide
presentasi.
Penyajian
Memberikan ulasan
Melihat,
sda
tentang konsep SOA
mendengarkan
(Service Oriented
penjelasan,
Architecture) dan
mencatat,
web services;
bertanya, dan
fasilitator, mediator
berdiskusi
dan motivator
diskusi.
Penutup
Merangkum isi
Menyimak,
sda
pokok bahasan,
mengajukan
memberikan evaluasi pertanyaan dan
dan memberikan
materi tugas latihan
terstruktur/mandiri
5. Indikator
Pencapaian
xxvii
Post Test
Referensi
pendapat,
menjawab
pertanyaan
evaluasi
Ujian tertulis, lisan, penilaian/evaluasi terhadap proses
pembelajaran, dan penilaian terhadap unjuk sikap
Cerami, E. 2002. Web Services Essentials. California:
O'Reilly.
Richards, R. 2006. Pro PHP XML and Web Services.
California: Apress.
xxviii
xxix
xxx
DAFTAR ISI
HALAMAN PENGESAHAN....................................................................... i
PRAKATA ................................................................................................. iii
KONTRAK PERKULIAHAN ................................................................... iv
SILABUS ..................................................................................................... ix
SATUAN ACARA PERKULIAHAN (SAP) .......................................... xiv
DAFTAR ISI ........................................................................................... xxix
DAFTAR GAMBAR ........................................................................... xxxiii
DAFTAR TABEL .................................................................................. xxxv
xxxi
xxxii
xxxiii
xxxiv
DAFTAR GAMBAR
BAB I
INTERNET DAN TEKNOLOGI WEB
1
INTERNET DAN TEKNOLOGI WEB
RINGKASAN
Internet atau Interconnected Network dapat diartikan sebagai
kumpulan dari berbagai jaringan komputer yang saling interkoneksi yang
mencakup seluruh dunia (jaringan global). WWW (World Wide Web) atau
disebut web merupakan salah satu bentuk layanan berbasis hypertext yang
dapat diakses melalui internet. Pemrograman web adalah proses untuk
membangun suatu aplikasi berbasis web.
1.1 Internet
Internet atau Interconnected Network dapat diartikan sebagai
kumpulan dari berbagai jaringan komputer yang saling interkoneksi yang
mencakup seluruh dunia (jaringan global) dengan melalui jalur
telekomunikasi seperti telepon, fiber-optic, wireless dan lainnya. Jaringan
internet memungkinkan pemakai komputer di seluruh dunia dapat
berinteraksi dan saling berbagi informasi. Gambar 1.1 berikut ini merupakan
ilustrasi dari jaringan internet.
`
client
LAN
server
DAFTAR TABEL
Tabel 1.1 Kelebihan dan kekurangan aplikasi berbasis web ........................ 11
Tabel 2.1 Perkembangan versi HTML ........................................................ 16
Tabel 4.1 Operator Aritmetika pada PHP .................................................... 84
Tabel 4.2 Operator Penugasan pada PHP .................................................... 86
Tabel 4.3 Operator Perbandingan pada PHP ............................................... 86
Tabel 4.4 Operator Logika pada PHP .......................................................... 87
Tabel 4.5 Perbedaan antara Metode POST dan GET................................... 97
Tabel 6.1 Operator Aritmetika pada JavaScript ......................................... 134
Tabel 6.2 Operator Pemberian Nilai (Assignment) pada JavaScript ......... 134
Tabel 6.3 Operator Pembanding pada JavaScript ...................................... 135
Tabel 6.4 Operator Logika pada JavaScript ............................................... 136
Mobile
Network
client
Internet
client
Wireless
LAN
WAN
client
LAN
LAN
ISP LAN
client
server
client
PSTN
`
client
modem
server
client
client
server
xxxv
1
komputer yang lainnya, yang membentuk jaringan itu. Program inilah yang
disebut WWW atau World Wide Web.
Pada tahun 1992, komputer yang saling tersambung membentuk
jaringan sudah melampaui satu juta komputer, dan di tahun yang sama
muncul istilah surfing the internet. Tahun 1994, situs internet telah tumbuh
menjadi 3000 alamat halaman, dan untuk pertama kalinya virtual shopping
atau e-retail muncul di internet. Hingga bulan Juli tahun 2004, jumlah host
internet telah mencapai 280 juta host.
Perkembangan internet selanjutnya hingga saat ini sangatlah pesat, hal
ini dapat dilihat dari jumlah pengguna internet di seluruh dunia yang telah
mencapai 3 milyar pengguna. Perkembangan teknologi jaringan komputer,
juga mendukung besarnya angka penetrasi pengguna internet. Pada Gambar
1.2 ditunjukkan grafik jumlah pengguna internet di seluruh dunia yang
dikelompokkan berdasarkan wilayah geografis.
dimana yang satu akan bertindak sebagai client atau peminta layanan, dan
yang lainnya sebagai Server, atau pemberi layanan. Baik client ataupun
server memiliki pemroses atau CPU sendiri, sedangkan jaringan yang
digunakan bisa berupa jaringan lokal (LAN) ataupun jaringan yang lebih
luas lagi (WAN).
Internet merupakan sebuah jaringan packet switching. Packet
switching merupakan sebuah teknik komunikasi data, dimana data
ditransmisikan ke dalam paket-paket data dan apabila terdapat suatu data
atau message yang panjang dan melebihi kapasitas transmisi akan dipotong
menjadi barisan-barisan paket yang kecil. Setiap paket yang dikirim
ditambahkan informasi kendali. Informasi kendali ini, dalam bentuk yang
paling minim, digunakan untuk membantu proses pencarian rute (routing)
dalam suatu jaringan sehingga pesan dapat sampai ke alamat tujuan. Contoh
pemecahan data menjadi paket-paket data ditunjukkan pada Gambar 1.3.
10
1.2.4 Hosting
Hosting adalah sebuah istilah layanan berbasis internet berupa tempat
penyimpanan data atau tempat menjalankan aplikasi di tempat terpusat yang
biasa disebut dengan server. Hosting juga dapat dikatakan sebagai sebuah
space atau ruang di internet yang dapat digunakan untuk menyimpan
beberapa file yang berhubungan dengan website, antara lain seperti file
HTML, PHP, musik, video, gambar ataupun yang lainnya.
Hosting sendiri melibatkan server, atau komputer yang disimpan di
tempat khusus dilengkapi sistem pendingin dan hardware yang mampu
bekerja secara terus menerus selama 24 jam. Server hosting dilengkapi
dengan koneksi internet berkecepatan tinggi agar dapat memproses semua
request.
1.2.5 Cara Kerja WWW
Saat pengguna mengunjungi sebuah situs web, misalnya
http://ee.unud.ac.id, ada proses "di balik layar" yang tidak diketahui oleh
pengguna. Proses tersebut cukup kompleks yang melibatkan beberapa
entitas dalam sistem WWW, seperti web browser, DNS, jaringan internet,
web server, dan database server. Proses yang terjadi hingga seorang
pengguna dapat menampilkan halaman web secara utuh dalam web browser
dapat ditunjukkan secara sederhana seperti pada Gambar 1.7 berikut ini.
11
4.
5.
6.
.
Gambar 1.7 Cara kerja WWW
Secara kronologis, urutan proses-proses yang terjadi pada Gambar 1.7
adalah sebagai berikut.
1. Pengguna membuka alamat website/URL melalui web browser.
Kemudian web browser dalam hal ini sebagai resolver akan
menghubungi DNS server
2. DNS server memberikan respon berupa IP Address ke resolver
3. Web browser menghubungi atau membuka koneksi ke server yang
tersebut pada URL (berdasarkan IP Address yang diperoleh dari DNS
server)
12
13
14
1.4 Rangkuman
1. Internet atau Interconnected Network dapat diartikan sebagai kumpulan
dari berbagai jaringan komputer yang saling interkoneksi yang
mencakup seluruh dunia (jaringan global) dengan melalui jalur
telekomunikasi seperti telepon, fiber-optic, wireless dan lainnya.
2. Internet dibangun didasarkan pada 3 teknologi kunci, yakni: teknologi
client/server, packet switching, dan protokol TCP/IP.
3. WWW (World Wide Web) atau disebut web merupakan salah satu
bentuk layanan berbasis hypertext yang dapat diakses melalui internet.
4. Ada tiga komponen utama dalam World Wide Web, yakni: HTTP
(Hypertext Transfer Protocol), HTML (Hypertext Markup Language)
dan URL (Uniform Resource Locator).
5. Web server merupakan software yang memberikan layanan data yang
berfungsi menerima permintaan HTTP atau HTTPS dari klien yang
dikenal dengan web browser dan mengirimkan kembali hasilnya dalam
bentuk halaman-halaman web yang umumnya berbentuk dokumen
HTML.
6. Domain Name System (DNS) merupakan sistem berbentuk database
terdistribusi yang akan memetakan atau mengkonversikan nama
host/mesin/domain ke alamat IP (Internet Protocol) dan sebaliknya.
7. Pemrograman web atau web programming adalah proses menulis,
mencoba, memeriksa dan memperbaiki (debug), serta memelihara kode
untuk membuat suatu aplikasi berbasis web.
8. Aplikasi berbasis web merupakan aplikasi yang dibuat dengan
memanfaatkan mekanisme dan aplikasi yang telah ada pada sistem web
(WWW).
1.5 Tugas/Soal Latihan
1. Jelaskan apa yang dimaksud dengan internet!
2. Jelaskan bagaimana cara kerja WWW, sehingga suatu halaman web
dapat ditampilkan secara utuh dalam web browser!
3. Sebutkan kelebihan dan kekurangan dari aplikasi berbasis web!
4. Jelaskan apa perbedaan antara web statis dan web dinamis!
5. Jelaskan apa perbedaan antara client side scripting dengan server side
scripting!
1.6 Daftar Bacaan
1. Deitel, P.J., Deitel, H.M. 2008. Internet & World Wide Web How to
Program Fourth Edition. New Jersey: Prentice Hall.
2. Tanenbaum, Andrew S. 2011. Computer Networks, 5th Ed. PrenticeHall International.
15
3.
4.
5.
Honda, Gail and Martin, Kipp. 2002. Internet and Web Technology:
The Basics. http://www.informit.com/articles/article.aspx?p=27569.
Diakses tanggal 29 Juli 2014.
Stiawan, Deris. 2007. Mengenal Domain & DNS (Domain Name
Services).
http://deris.unsri.ac.id/materi/jarkom/domain&DNS.pdf.
Diakses tanggal 29 Juli 2014.
Baker, Greg. 2013. Web Development Notes. http://www2.cs.sfu.ca/
~ggbaker/zju/web/. Diakses tanggal 2 Agustus 2014.
17
BAB II
HTML (HYPERTEXT MARKUP LANGUAGE)
2
HTML (HYPERTEXT MARKUP LANGUAGE)
RINGKASAN
HTML (Hyper Text Markup Language) adalah sebuah bahasa markup
(penanda) berbasis text atau bisa juga disebut sebagai formatting language
(bahasa untuk memformat) yang digunakan untuk membuat sebuah halaman
web dan menampilkan berbagai informasi di dalam sebuah browser Internet.
HTML adalah sebuah standar yang digunakan secara luas untuk
menampilkan halaman web dan HTML bukanlah bahasa pemrograman.
2.1 Pengenalan HTML
HTML (Hyper Text Markup Language) adalah sebuah bahasa markup
(penanda) berbasis text atau bisa juga disebut sebagai formatting language
(bahasa untuk memformat) yang digunakan untuk membuat sebuah halaman
web dan menampilkan berbagai informasi di dalam sebuah browser Internet.
HTML dibuat oleh Tim Berners-Lee ketika masih bekerja untuk CERN dan
dipopulerkan pertama kali oleh browser Mosaic. Bermula dari sebuah
bahasa yang sebelumnya banyak digunakan di dunia penerbitan dan
percetakan yang disebut dengan SGML (Standard Generalized Markup
Language), HTML adalah sebuah standar yang digunakan secara luas untuk
menampilkan halaman web. HTML saat ini merupakan standar Internet
yang didefinisikan dan dikendalikan penggunaannya oleh World Wide Web
Consortium (W3C). HTML bukanlah bahasa pemrograman, melainkan
bahasa markup/formatting.
Semenjak tahun 1990, HTML mengalami perkembangan yang sangat
pesat. Setiap pengembangan HTML pasti akan menambahkan kemampuan
dan fasilitas yang lebih baik dari versi sebelumnya. Pada Tabel 2.1 berikut
merupakan perkembangan versi HTML.
dengan tag HTML, yang digunakan untuk memarkup(memformat) dokumen HTML. Perhatikan bahwa setiap tag
memiliki pasangan yakni tag penutupnya. Artinya hanya teks yang berada di
dalam tag tersebut yang akan diberi format miring. Tag penutup ditandai
dengan penambahan tanda slash (/) sebelum nama tag-nya. Namun ada
beberapa tag spesial yang tidak memiliki tag penutup, seperti: <br> atau
<img>. Berikut ini adalah anatomi dari tag HTML:
<namatag atribut="nilai Atribut">
Isi atau Konten
</namatag>
Tahun
1991
1995
1997
1999
2000
2014
16
Setiap tag HTML bisa menjadi "isi" dari tag HTML lainnya, untuk membuat
suatu hierarki dari dokumen HTML. Dalam setiap tag HTML bisa
disisipkan berbagai atribut yang berfungsi untuk menampung informasiinformasi tertentu, misalnya atribut id dan class yang berfungsi untuk
memberi nama suatu tag sebagai referensi CSS atau JavaScript nantinya.
2.3 Struktur Dokumen HTML
Suatu dokumen HTML juga mempunyai aturan dalam penulisannya,
ada beberapa tag yang harus dituliskan dan sudah menjadi ketentuan.
18
HTML tag tidak bersifat case sensitive tapi disarankan untuk menuliskannya
secara lowercase. Berikut ini merupakan struktur dari sebuah dokumen
HTML.
<!DOCTYPE html>
<html>
<head>
<title>Judul File HTML</title>
</head>
<body>
<h1>Ini adalah heading</h1>
<p>Website <strong><em>pertama</em></strong> saya</p>
<p>Ini adalah paragraf lainnya.</p>
</body>
</html>
Merupakan tag awal dari setiap dokumen HTML, tag ini berfungsi untuk
menginformasikan pada browser bahwa dokumen yang sedang dibuka
adalah dokumen HTML. Tag ini perlu dicantumkan di setiap dokumen
HTML yang akan dibuat.
<html> .. </html>
Awal dari isi dokumen HTML dimulai dari bagian ini, semua kode HTML
yang akan dibuat akan ditulis di dalam tag ini, perhatikan juga bahwa setiap
tag harus memiliki tag penutup.
19
1.
Heading
Heading, digunakan untuk memberikan penjudulan pada suatu
dokumen HTML. Untuk memformat penjudulan dalam HTML,
menggunakan tag <h1> untuk judul utama dan untuk judul subbabnya
anda dapat menggunakan tag <h2> sampai dengan <h6>. Setiap level
judul memiliki ukuran huruf yang berbeda-beda (namun nantinya masih
dapat merubah ukurannya melalui CSS).
Contoh:
<!DOCTYPE html>
<html>
<head>
<title>Heading</title>
</head>
<body>
<h1>Bab 1 : Pendahuluan</h1>
<h2>1.1 Latar Belakang</h2>
<p>Paragraf pendahuluan, bla..bla..
<h2>1.2 Pokok Permasalahan</h2>
<p>Paragraf pendahuluan, bla..bla..
<h1>Bab 2 : Pembahasan</h1>
<h2>2.1 Teori dan Konsep</h2>
<p>Paragraf pendahuluan, bla..bla..
<h2>2.2 Algoritma Pemrograman</h2>
<p>Paragraf pendahuluan, bla..bla..
</body>
</html>
</p>
</p>
</p>
</p>
<head> .. </head>
Salah satu contoh informasi yang terdapat di dalam tag Head adalah title.
Title akan menampilkan teks pada judul browser atau pada tab browser.
<body> .. </body>
Tag body merupakan tag pembuka dari badan dokumen HTML. Apa yang
ingin ditampilkan pada browser akan ditulis di dalam tag ini.
2.4 Elemen Dasar HTML
Adapun beberapa elemen-elemen dasar yang digunakan dalam
dokumen HTML adalah sebagai berikut.
20
2.
21
Contoh link ke dokumen lain:
Paragraf
Untuk menformat teks menjadi paragraf digunakan tag <p> . . . </p>.
Contoh:
dokumen1.html
<!DOCTYPE html>
<html>
<head>
<title>Document 1</title>
</head>
<body>
<a href="dokumen2.html"> Klik untuk melihat dokumen 2</a>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<title>Paragraf</title>
</head>
<body>
<p>This is a paragraph.</p>
<p>This is a paragraph.</p>
<p>This is a paragraph.</p>
</body>
</html>
dokumen2.html
<!DOCTYPE html>
<html>
<head>
<title>Document 2</title>
</head>
<body>
<a href="dokumen1.html"> Kembali ke dokumen 2</a>
</body>
</html>
3.
Link
Link digunakan untuk menghubungkan halaman web satu dengan
halaman web lainnya. Ada dua jenis link address, yakni:
Absolute address - merupakan full internet address (URL) yang
meliputi protocol, network location dan path dan nama file.
Contoh: http ://www.yahoo.com/index.html
Relative address - URL yang tidak menyebutkan protocol dan
network locationya (hanya path dan nama filenya).
Link atau biasa disebut dengan anchor (pengait) dapat dibuat dengan
menambahkan tag <a> pada teks yang ingin kita buat menjadi link.
Contoh:
<a href="URL">Hypertext</a>
4.
List
Sebuah daftar dapat memiliki penomoran atau hanya sebuah simbol
berupa lingkaran atau bentuk lainnya. Dalam HTML, daftar yang
menggunakan penomoran disebut dengan ordered list dan yang
menggunakan simbol disebut dengan unordered list.
1.
Ordered List
Ordered list atau Daftar berurutan dapat dibuat dengan
menggunakan tag <ol> (singkatan dari ordered list) dan untuk
setiap listnya kita gunakan tag <li> (singkatan dari list item/item
daftar). Sebagai contoh, perhatikan kode HTML berikut :
22
23
Definition List
Berbeda dengan ordered list dan unordered list yang memiliki
struktur sama, definition list memiliki struktur tersendiri. Biasanya
definition list ini digunakan untuk membuat daftar istilah beserta
definisinya seperti halnya dalam kamus.
<dl>
<dt>Test</dt>
<dd>Test</dd>
</dl>
Unordered List
Berbeda dengan daftar berurut, unordered list akan menandai
setiap item dengan simbol. Baik berupa lingkaran atau persegi
(masih bisa dirubah dengan CSS). Untuk membuat daftar tidak
berurut digunakan tag <ul> dan seperti tag <ol>, item yang terdapat
di dalamnya harus diapit dengan tag <li>.
Contoh:
<h2>Yang harus dilakukan hari ini</h2>
<ul>
<li>Pergi ke pasar</li>
<li>Buat tutorial HTML</li>
<li>Mengerjakan tugas kuliah</li>
</ul>
<dl>
<dt>Manga</dt>
<dd>Manga (baca: man- ga, atau ma- ng-ga)
merupakan kata komik dalam bahasa Jepang; di luar
Jepang, kata tersebut digunakan khusus untuk
membicarakan tentang komik Jepang. </dd>
<dt>Mangaka</dt>
<dd>Mangaka (baca: man-ga-ka, atau ma-ng-ga-ka)
adalah orang yang menggambar manga</dd>
</dl>
4.
List/Daftar bersarang
Sebuah daftar bisa saja memiliki daftar lagi di dalam itemnya, atau
biasa disebut dengan daftar/list bersarang (nested list).
Contoh:
<!DOCTYPE html>
<html>
<head>
24
<title>List/Daftar</title>
</head>
<body>
<h2>Yang harus dilakukan hari ini</h2>
<ol>
<li>Pergi ke pasar
<ul>
<li>Beli sayuran</li>
<li>Beli kertas
<ol>
<li>A4</li>
<li>Legal</li>
</ol>
</li>
<li>Beli tinta</li>
</ul>
</li>
<li>Buat tutorial HTML</li>
<li>Mengerjakan tugas kuliah</li>
</ol>
</body>
</html>
25
1.
Break
Tag <br> digunakan untuk memulai baris baru pada document HTML,
tag ini fungsinya mirip dengan carriage return.
<!DOCTYPE html>
<html>
<body>
<p>
To break lines<br>in a text,<br>use the br element.
</p>
</body>
</html>
Hasil output:
2.
Bold
Untuk membuat teks menjadi bold/tebal digunakan tag <b>...</b> atau
<strong>...</strong>
<!DOCTYPE html>
<html>
<body>
<p>This text is normal.</p>
<p><b>This text is bold.</b></p>
</body>
</html>
Hasil output:
3.
Gambar 2.5 Contoh list/daftar bersarang
2.5 Format Teks
Adapun beberapa elemen-elemen yang digunakan dalam memformat
teks dalam dokumen HTML adalah sebagai berikut.
Italic
Untuk membuat teks menjadi miring digunakan tag <i>...</i> atau
<em>...</em>
<!DOCTYPE html>
<html>
<body>
<p>This text is normal.</p>
<p><i>This text is italic.</i></p>
</body>
</html>
26
27
Hasil output:
Hasil output:
7.
4.
Underline
Untuk membuat teks bergaris bawah digunakan tag <u>...</u> atau
<ins>...</ins>
Deleted
Untuk menandai deleted teks digunakan tag <del>...</del>
<!DOCTYPE html>
<html>
<body>
<p>The del element represent deleted (removed) text.</p>
<p>My favorite color is <del>blue</del> red.</p>
</body>
</html>
<!DOCTYPE html>
<html>
<body>
<p>This text is normal.</p>
<p><u>This text is underline.</u></p>
</body>
</html>
Hasil output:
Hasil output:
8.
5.
Superscript
Untuk membuat superscript teks digunakan tag <sup>...</sup>
<!DOCTYPE html>
<html>
<body>
<p>This is <sup>superscripted</sup> text.</p>
</body>
</html>
Hasil output:
6.
Subscript
Untuk membuat subscript teks digunakan tag <sub>...</sub>
<!DOCTYPE html>
<html>
<body>
<p>This is <sub>subscripted</sub> text.</p>
</body>
</html>
Quotes / Indenatasi
Untuk membuat indentasi paragraf dapat menggunakan tag
<blockquote> ... </blockquote> dan untuk indentasi pendek digunakan
tag <q>...</q>
<!DOCTYPE html>
<html>
<body>
<p>Browsers usually insert quotation marks around the q
element.</p>
<p>WWF's goal is to: <q>Build a future where people live in
harmony with nature.</q></p>
<p>Browsers usually indent blockquote elements.</p>
<blockquote>
For 50 years, WWF has been protecting the future of nature.
The world's leading conservation organization,
WWF works in 100 countries and is supported by
1.2 million members in the United States and
close to 5 million globally.
</blockquote>
</body>
</html>
28
29
Hasil output:
Text Alignment
Properti text-align mendefinisikan perataan teks untuk sebuah elemen
HTML.
<body>
<h1 style="text-align:center">Centered Heading</h1>
<p>This is a paragraph.</p>
</body>
Font
Properti font-family mendefinisikan font yang akan digunakan untuk
elemen HTML.
<body>
<h1 style="font-family:verdana">This is a heading</h1>
<p style="font-family:courier">This is a paragraph.</p>
</body>
Text Size
Properti font-size mendefinisikan ukuran teks yang akan digunakan
untuk elemen HTML.
<body>
<h1 style="font-size:300%">This is a heading</h1>
Hasil output:
30
31
Dan atribut lainnya adalah atribut width dan height, yang berfungsi untuk
menentukan lebar dan tinggi dari gambar tersebut.
<img src="url">
Contoh:
<!DOCTYPE html>
<html>
<head>
<title>Memuat Gambar</title>
</head>
<body>
<p>Ini adalah contoh pemuatan gambar pada file HTML<p>
<img src="logo.jpeg">
</body>
</html>
Hasil yang diperoleh dapat dilihat pada Gambar 2.6 berikut ini.
Gambar 2.7 Menyimpan gambar pada folder images
Maka yang perlu anda lakukan adalah menambahkan nama folder tersebut
diikuti dengan tanda slash (/) dan nama file gambar yang akan dimuat:
<img src="images/logo.png" alt="Ini adalah teks alternatif">
Jika dalam folder tersebut terdapat folder lagi, dan gambar yang ingin
dimuat ada di dalamnya maka penulisannya menjadi seperti berikut:
32
2.9 Tabel
Untuk menampilkan data dengan tipe tabel dalam HTML, maka
menggunakan tag <table>.
<table></table>
33
<td>Rian</td>
</tr>
</table>
</body>
</html>
Hasil yang diperoleh dapat dilihat pada Gambar 2.7 berikut ini.
<tr>
<table>
<tr></tr>
</table>
...
<table border="1">
<thead>
<tr>
<th rowspan=2>No</th>
<th colspan=2>Jenis Kelamin</th>
<th rowspan=2>Nama</th>
</tr>
<tr>
<th>L</th>
<th>P</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>L</td>
<td></td>
<td>Rian</td>
</tr>
</tbody>
</table>
...
34
35
2.10 Form
Pembuatan sebuah form diawali dengan tag <form>, dan setiap
kontrol-kontrol yang dibutuhkan ditempatkan di dalam tag ini.
Jika text input yang akan ditampilkan ingin memiliki nilai, maka
tuliskan nilai tersebut di dalam atribut value.
<form>
<h1>Formulir Pendaftaran</h1>
</form>
Dengan begitu, ketika halaman dibuka, text input ini secara otomatis
akan terisi dengan nilai dari atribut value, seperti contoh yang
ditampilkan pada Gambar 2.10 berikut ini.
<input>.
1.
Label
Label digunakan untuk memberikan keterangan pada setiap input yang
ada. Berikut pada Gambar 2.9, ditunjukkan yang disebut dengan label.
Gambar 2.10 Contoh penggunaan text input
3.
Text Area
Sama halnya dengan text input, namun text area dapat diisi lebih dari
satu baris, cocok digunakan untuk isian yang panjang, seperti alamat,
deskripsi, atau biodata. Berbeda dengan kontrol lainnya yang
menggunakan tag <input>, text area memiliki tag sendiri yaitu
<textarea>...</textarea>. Dan apa yang terdapat di dalam tag ini
adalah value dari kontrol tersebut. Pada Gambar 2.11 merupakan
contoh penggunaan text area.
<label for="alamat">Alamat Lengkap</label>
<textarea name="alamat"></textarea>
Atribut for diisi dengan isi dari atribut name pada kontrol yang ingin
diberi label.
2.
Text Input
Control input ini dapat diisi dengan teks yang memiliki kata yang tidak
terlalu panjang atau hanya satu baris, biasa digunakan dalam form
pencarian, nama dan lain sebagainya.
<label for="nama">Nama Lengkap</label>
<input type="text" name="nama" />
36
4.
Combo Box
Combo Box adalah kontrol yang memiliki pilihan ketika diklik.
Pembuatannya sama seperti pembuatan Daftar/List namun dengan tag
yang berbeda. Gambar 2.12 merupakan contoh penggunaan combo box.
<label for="kota">Kota</label>
<select name="kota">
<option>Jakarta</option>
<option>Bandung</option>
<option>Denpasar</option>
<option>Tasikmalaya</option>
</select>
37
6.
Submit Button
Submit button digunakan untuk mengirimkan form ke form-handler.
Form-handler biasanya berupa sebuah halaman pada sisi server yang
berisi script untuk memproses data input. Form-handler ditentukan
sesuai dengan atribut action dan method pada form. Method atribut
menspesifikasikan HTTP method (GET atau POST) yang digunakan
untuk mengirimkan form. Gambar 2.14 merupakan contoh submit
button.
<input type="submit" value="Kirim Data" />
5.
Radio Button
Radio button merupakan kontrol yang memperbolehkan pengguna
memilih satu dari sejumlah pilihan. Gambar 2.13 merupakan contoh
penggunaan radio button.
<label for="jeniskelamin">Jenis Kelamin</label>
<input type="radio" name="sex" value="male" checked>Male
<input type="radio" name="sex" value="female">Female
38
39
40
41
Kuliah
Lulus kuliah
Kerja
Mencari pekerjaan
Ketentuan:
Menggunakan format dokumen HTML 5
Font menggunakan jenis: Verdana
Menggunakan Tabel dan List
Warna disesuaikan dengan contoh di atas. (Biru : #33CCFF ,
Hijau : #66FF99)
3.
Ketentuan:
Menggunakan format dokumen HTML 5
Menggunakan tabel
42
2.14 Daftar Bacaan
1. Larsen, Rob. 2013. Beginning HTML & CSS. Indiana: John Wiley &
Sons, Inc.
2. Robson, Elisabeth dan Freeman, Eric. 2102. Head First HTML and
CSS. California: OReilly Media, Inc.
3. Ariona, Rian. 2013. Belajar HTML dan CSS: Tutorial Fundamental
Dalam Mempelajari HTML & CSS. http://www.ariona.net/ebookbelajar-html-dan-css. Diakses tanggal 10 Agustus 2014.
4. W3Schools. HTML Tutorial. http://www.w3schools.com/html/. Diakses
tanggal 10 Agustus 2014.
BAB III
CSS (CASCADING STYLE SHEET)
3
CSS (CASCADING STYLE SHEET)
RINGKASAN
CSS (Cascading Style Sheets) digunakan oleh para web designer untuk
mengatur style elemen yang ada dalam halaman web, mulai dari memformat
text, sampai pada memformat layout. Tujuan dari penggunaan CSS ini
adalah supaya diperoleh suatu kekonsistenan style pada elemen tertentu.
Dalam penulisan CSS, digunakan selector untuk menentukan elemen/tag
HTML yang ingin diberi style.
3.1 Pengenalan CSS
CSS atau Cascading Style Sheets adalah sebuah dokumen yang berisi
aturan yang digunakan untuk memisahkan isi dengan layout dalam halamanhalamn web yang dibuat. CSS memperkenalkan "template" yang berupa
style untuk dibuat dan mengizinkan penulisan kode yang lebih mudah dari
halaman-halaman web yang dirancang. CSS mampu menciptakan halaman
yang tampak sama pada resolusi layar yang berbeda dari pengunjung
berbeda tanpa memerlukan penggunaan tabel seperti pada html klasik.
Saat ini CSS merupakan style yang banyak digunakan dikarenakan
berbagai kemudahan dan lengkapnya atribut yang dimilikinya, disamping
berbagai kemudahan lain yang ditawarkannya. Penggunaan CSS dalam web
akan lebih efisien dikarenakan CSS dapat digunakan secara berulang pada
tag-tag tertentu, sehingga tidak perlu mengetikkan ulang seluruh perintah
pemformatan seperti halnya dalam html klasik.
3.2 Cara Kerja CSS
Cara kerja CSS sangatlah mudah, karena CSS hanya membutuhkan
style sebagai penentu dari font, warna, dan format-format lain untuk
memformat atribut sebuah halaman web yang dibuat. Tiap style memiliki
dua buah elemen dasar, yaitu "selector" dan "declaration".
Sebuah selector biasanya adalah tag HTML, sementara declaration
adalah satu atau beberapa perintah/nilai dari CSS yang menunjukkan type
bentuk yang diaplikasikan pada selector. Declaration ini biasanya ditandai
tanda kurung kurawal "{ }", dan perintah atau nilai CSS yang berbeda
dispisahkan satu dengan lain dengan menggunakan titik koma ";" seperti
terlihat pada contoh berikut.
<style type="text/css">
.teks {
font-family:verdana;
43
44
color:blue;
}
</style>
Pada contoh tersebut terlihat bahwa .teks adalah selector, {fontfamily:verdana;color:blue;} adalah declaration.
Selector-selector dan style dalam CSS akan dimasukkan dalam sebuah
tempat yang sama dalam isi dokumen HTML atau dibuat di luar dokumen
HTML yang nantinya akan dipanggil untuk menentukan isi tampilan
dokumen HTML. Selanjutnya, dengan hanya menunjuk pada selectorselector maka akan mengaktifkan sebuah style yang diinginkan.
3.3 Penempatan CSS
Menempatkan style CSS dalam dokumen web yang dibuat dalam
bahasa HTML dapat dilakukan dengan beberapa cara dan tingkatan yang
berbeda sesuai dengan keinginan, diantaranya adalah menggunakan inline
style, internal style, external style, dan juga teknik importing dengan
internal style.
3.3.1 Inline Style
Inline style adalah CSS yang dibuat dalam sebuah tag HTML yang
hanya berlaku untuk dokumen yang diapitnya saja. Biasanya teknik ini
digunakan pada pemformatan khusus pada sebuah elemen HTML dan tidak
digunakan untuk memformat seluruh elemen dalam dokumen web.
Contohnya adalah sebagai berikut.
<!DOCTYPE html>
<html>
<head>
<title>Belajar CSS</title>
</head>
<body>
<p style="font-family:Arial; font-size:20px; backgroundcolor:yellow;">Penerapan Inline Style</p>
</body>
</html>
45
<!DOCTYPE html>
<html>
<head>
<title>Belajar CSS</title>
<style>
<!-.teks{
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 24px;
color: white;
background-color: blue;
}
-->
</style>
</head>
<body>
<div class="teks">Penerapan Internal Style</div>
</body>
</html>
Maksud dari <!-- aturan CSS --> di atas adalah agar browser yang
tidak mendukung CSS tidak menampilkan perintah-perintah CSS, jadi
perintah CSS di dalam <!-- --> akan dianggap sebagai komentar HTML
biasa dan tidak akan ditampilkan dalam browser.
3.3.3 Import Style
Dengan teknik ini sebuah style tidak disimpan pada halaman tersebut,
namun untuk menghubungkannya dengan halaman web yang dibuat,
digunakan perintah import yang terdapat pada style CSS, seperti pada
contoh berikut.
<!DOCTYPE html>
<html>
<head>
<title>Belajar CSS</title>
<style>
<!-@import url('/css/styles.css');
-->
</style>
</head>
<body>
<div class="teks">Penerapan Internal Style</div>
</body>
</html>
46
47
atas, dokumen akan mengimpor file style dengan nama style yang
berekstensi .css dengan menggunakan perintah:
mendefinisikan selector, sementara value adalah nilai atau harga dari sebuah
property.
@import url('/css/styles.css');
<span>
ataupun
Penulisan nama id sebaiknya tidak diawali dengan nomor, karena tidak akan
dikenali pada browser Mozilla Firefox.
48
3.4.2 Selector Class
Selector class digunakan untuk menentukan style dari sebuah group
elemen. Berbeda dengan ID, selector class bisa dipakai berulangkali pada
sebuah dokumen web. Artinya sebuah nama class dapat dipanggil beberapa
kali pada elemen-elemen yang ada pada sebuah halaman web. Selector class
dituliskan dengan ditandai dengan tanda titik "." .
Contoh selector class:
.komentar
{
text-align:left;
color:red;
}
49
menambahkan atribut id="nama_id" ataupun atribut class
karena browser secara otomatis akan mencari tag yang akan
diberi style.
perlu
="nama_class"
Pada bagian dokumen web, misalnya akan diterapkan pada paragraph dan
pada sebuah div dalam sebuah dokumen web yang sama, dapat dituliskan:
<p class="komentar"> Ini adalah paragraph komentar </p>
<div class="komentar">Ini bagian komentar</p>
Bagian mana saja dari sebuah dokumen html yang memanggil class ini,
akan memiliki style yang sama, yakni sesuai aturan tersebut, maka tulisan
akan berada di tengah dan berwarna merah. Pada kondisi lain, apabila
menginginkan sebuah class hanya berlaku pada sebuah paragraph saja.
Untuk bagian div tidak berlaku. Aturan tersebut bisa kita tuliskan sebagai
berikut:
p.komentar {text-align:center;}
Aturan ini akan berlaku bagi setiap paragraph <p> yang memiliki
class="komentar" saja.
3.4.3 Selector HTML
Berbeda dengan selector ID dan selector class, selector HTML akan
mempengaruhi tag HTML yang diberi style. Untuk lebih jelasnya, berikut
contoh kodenya:
p {
font-family: Arial;font-size:10pt;
}
Margin
Property margin digunakan untuk memberikan jarak antar elemen/tag
HTML. Misalnya jarak antar <div>dan tag-tag HTML lainnya.
Contoh:
<html>
<head>
<title>Margin</title>
<style>
.box{
background-color:green;
color: yellow;
50
width:100px;
height:100px;
margin-bottom: 50px;
}
}
</style>
</head>
<body>
<div class="box">Box ke satu</div>
<div class="box">Box ke dua</div>
</body>
</html>
51
Padding
Property padding digunakan untuk memberikan jarak di sekitar content
HTML. Sebagai contoh, kita tambahkan kode CSS berikut pada class
box sebelumnya.
.box{
background-color:green;
color: yellow;
width:100px;
height:100px;
margin-bottom:50px;
padding-left: 20px;
}
52
CSS-Shorthand
Pada pembahasan sebelumnya, dapat disimpulkan bahwa setiap
property dapat memiliki lebih dari satu jenis, misalnya margin dapat
memiliki 4 jenis: margin-top, margin-right, margin-bottom, dan marginleft.
Daripada menuliskan seluruh property tersebut, maka dapat
menggunakan CSS-Shorthand yaitu menggabungkan seluruh value (top,
right, bottom, dan left) ke dalam satu property. Sebagai contoh, kita
akan menggunakan CSS-shorthand untuk property margin menjadi
seperti berikut:
53
border-color: black;
border-style: solid;
border-width: 5px;
solid
black;
Contoh lainnya:
margin:10px 5px 15px 20px;
o top margin berukuran 10px
o right margin berukuran 5px
o bottom margin berukuran 15px
o left margin berukuran 20px
margin:10px 5px 15px;
o top margin berukuran 10px
o right dan left margins berukuran 5px
o bottom margin berukuran 15px
margin:10px 5px;
o top dan bottom margins are 10px
o right and left margins are 5px
margin:10px;
o all four margins are 10px
Penggunaan nilai seperti ini juga berlaku pada padding, dan propertyproperty sejenis lainnya.
Border
Property border digunakan untuk memberikan garis pinggir pada
elemen, setidaknya ada tiga property yang harus diset, yaitu color,
style dan width.
54
Dengan memberikan border pada seluruh sisi .box, artinya jika
ditentukan ukuran border sebesar 5px, maka 10px (untuk width, karena
5px untuk left, dan 5px untuk right) akan ditambahkan pada ukuran
.box tersebut, sehingga ukuran .box berubah kembali menjadi 110px.
Untuk itu kurangi width dari .box tersebut menjadi 70px
sehingga: 70px (width) + 20px (padding) + 10px (border) = 100px.
Adapun skema box model dari kasus di atas adalah seperti ditunjukan
pada Gambar 3.6 berikut ini.
55
Contohnya:
font-family: calibri, arial, tahoma, verdana, sans-serif;
Ketika font jenis calibri tidak ditemukan, maka yang akan digunakan
adalah arial, ketika tidak ditemukan font arial maka tahoma yang akan
digunakan, begitu seterusnya sampai kita tentukan jenis font yang dipakai,
sans-serif atau serif dan browser akan menggunakan font yang sesuai
dengan jenis yang disebutkan (serif atau sans-serif). Perlu diperhatikan,
ketika nama font memiliki spasi, maka kita harus memberikan tanda
petik/kutip pada nama font tersebut. Misalnya "Lucida Sans Unicode".
Dalam typography jenis font dibagi menjadi dua yakni serif dan sansserif. Bagian ini akan menjelaskan secara singkat perbedaan dari kedua jenis
font ini.
Serif
Kata Serif bisa diartikan sebagai kait, jadi jenis huruf serif memiliki
kait disetiap ujung hurufnya. Font jenis serif yang paling terkenal
adalah Times New Roman. Perhatikan detail hurufnya seperti terlihat
pada Gambar 3.7 berikut ini.
font-family: calibri;
Font jenis ini bisa digunakan untuk teks dengan konteks formal atau
gaya klasik. Namun dapat memadupadankan jenis font ini sehingga
memberikan kesan tertentu pada halaman web.
Sans-serif
Arti dari sans, adalah tanpa. Jadi sans-serif bisa diartikan sebagai
jenis font tanpa kait seperti terlihat pada Gambar 3.8. Yang paling
umum digunakan untuk jenis sans-serif adalah Arial.
56
57
Dan untuk membuat text menjadi rata kiri, tengah atau kanan, kita gunakan
property text align. Nilai yang dapat digunakan adalah left, center, right, dan
justify untuk rata kiri-kanan.
text-align : center;
font-size : 12px;
a.
background-image
Untuk memanggil gambar sebagai background dari elemen, digunakan
property background-image. Perhatikan contoh penggunaan property
ini:
font-size : 12pt;
background-image : url('background.jpeg');
font-weight : bold;
Bukan tidak mungkin untuk mengatur kerning atau jarak antar huruf. Dalam
CSS bisa merubah jarak antar huruf dengan property letter-spacing.
letter-spacing : 15px;
Semakin besar nilai pixel yang diberikan semakin jauh jarak antar huruf.
Selain itu dapat pula menggunakan nilai negatif untuk memperdekat jarak
antar huruf.
letter-spacing : -2px;
Sedangkan untuk memberikan jarak antar baris, kita gunakan property lineheight.
line-height : 30px;
Contoh:
<html>
<head>
<title>Background</title>
<style type="text/css">
#box{
width : 300px;
height :300px;
background-image : url('background.jpeg');
}
</style>
</head>
<body>
<div id="box"></div>
</body>
</html>
58
59
Pengulangan secara vertikal, dapat dilakukan dengan menambahkan
kode CSS berikut ini.
background-repeat : repeat-y;
dapat
dilakukan
dengan
background-repeat : repeat-x;
c.
60
61
background-position
Posisi gambar background dapat ditentukan letaknya dengan
menentukan property value-nya, seperti: left top, left center, left
bottom, right top, right center, right bottom, center top, center center,
center bottom. Selain itu, dapat pula digunakan value yang berupa jarak
x (horisontal) dan y (vertikal).
d. Image Sprite
Image Sprite adalah sekumpulan gambar berbeda yang disatukan dalam
satu file gambar. Teknik ini dilakukan untuk mempercepat loading
website tanpa harus memanggil beberapa file gambar yang banyak.
Cukup menggunakan satu gambar dan kemudian menentukan bagian
gambar yang ingin ditampilkan.
background-position: value;
Contoh:
Daripada menggunakan tiga gambar terpisah, maka dapat menggunakan
gambar tunggal ini ("img_navsprites.gif"):
Hasil yang diperoleh dapat dilihat pada Gambar 3.13 berikut ini.
Dengan CSS maka dapat ditentukan bagian dari gambar yang ingin
digunakan, seperti pada kode berikut ini.
<!DOCTYPE html>
<html>
<head>
<style>
#home {
width: 46px;
height: 44px;
background: url(img_navsprites.gif) 0 0;
}
#next {
width: 43px;
height: 44px;
background: url(img_navsprites.gif) -91px 0;
}
</style>
</head>
<body>
<div id="home"></div><br />
<div id="next"></div>
</body>
</html>
Dari kode tersebut, hasil yang diperoleh dapat dilihat pada Gambar
3.14.
Gambar 3.13 Background bergeser selebar sebesar 50px dari kiri
(horisontal) dan sebesar 20px ke bawah (vertikal)
62
63
Style yang ditambahkan akan membuat elemen image berada pada posisi
sebelah kiri, dan paragraf akan naik ke atas dan berada di sebelah kanan
image, seperti terlihat pada Gambar 3.15.
64
background: orange;
}
#footer{
width : 100%;
height: 50px;
background: green;
}
</style>
</head>
<body>
<div id="wrapper">
<div id="header"></div>
<div id="content">
<div id="artikel"></div>
<div id="sidebar"></div>
</div>
<div id="footer"></div>
</div>
</body>
</html>
Apabila contoh file tersebut dibuka pada browser, maka tampilan yang
diperoleh adalah seperti Gambar 3.16 berikut ini.
65
yang ada, dan perhatikan bahwa #artikel dan #sidebar berada di dalam
#content.
Hal ini dikarenakan penambahkan floating pada #artikel dan
#sidebar, sehingga #content menganggap tidak ada elemen di dalamnya.
Ada dua cara untuk menyelesaikan kasus ini:
1.
overflow:hidden;
}
2.
<div id="sidebar"></div>
<div style="clear:both;"></div>
</div>
Hasil yang diperoleh setelah dilakukan perbaikan dapat dilihat pada Gambar
3.17 berikut ini.
66
67
<style>
#box{
background : green;
width : 300px;
height : 300px;
top : 100px;
left : 200px;
}
</style>
</head>
<body>
<div id="box"></div>
</body>
</html>
CSS Reset
Setiap browser memiliki style atau file CSS yang akan diterapkan pada
setiap halaman web yang dibuka. Keberadaan style yang dimiliki browser
ini sangat membantu namun terkadang juga membingungkan bagi sebagian
orang.
CSS Reset berfungsi untuk mereset atau mengatur ulang seluruh
property-property yang telah disetting oleh browser, seperti margin,
padding, warna huruf (link) ukuran huruf heading dan lain sebagainya.
Perhatikan CSS contoh berikut.
* {
margin:0;
padding:0;
1.
Relative
Elemen posisi yang diset dengan properti position:relative, maka letak
elemen tersebut relatif terhadap posisi normal. Letaknya juga
disesuaikan dengan nilai yang diset untuk properti top, right, bottom
dan left.
68
Contoh:
<!DOCTYPE html>
<html>
<head>
<title>Positioning</title>
<style>
#box{
background : green;
width : 300px;
height : 300px;
top : 100px;
left : 200px;
position : relative;
}
</style>
</head>
<body>
<div id="box"></div>
</body>
</html>
Perhatikan bahwa box bergeser 100px dari atas dan 200px dari kiri.
Hasil yang diperoleh dapat dilihat pada Gambar 3.19 berikut ini.
69
Sebagai contoh perhatikan kode HTML dan CSS berikut.
<!DOCTYPE html>
<html>
<head>
<title>Positioning</title>
<style>
#box{
background : green;
width : 300px;
height : 300px;
top : 100px;
left : 200px;
}
#box2{
background : yellow;
width : 50px;
height : 50px;
top : 100px;
left : 200px;
}
</style>
</head>
<body>
<div id="box">
<div id="box2"></div>
</div>
</body>
</html>
Hasil yang diperoleh dapat dilihat pada Gambar 3.20 berikut ini.
Absolute
Penambahan position:absolute akan membuat elemen tersebut terlepas
dari aturan penempatan elemen dan dibatasi oleh parent yang memiliki
positioning relative.
70
#box2 secara aturan ditampilkan berada di dalam div #box, #box2 dapat
terlepas dari aturan tersebut dengan menambahkan positioning absolute.
71
Hasil yang diperoleh dapat dilihat pada Gambar 3.22 berikut ini.
Contoh:
#box2{
background : yellow;
width : 50px;
height : 50px;
position : absolute;
bottom : 0;
right : 200px;
}
Hasil yang diperoleh dapat dilihat pada Gambar 3.21 berikut ini.
<!DOCTYPE html>
<html>
<head>
<title>Positioning</title>
<style>
#box{
background : green;
width : 300px;
height : 300px;
position : relative;
}
#box2{
width:50px;
height:50px;
background:yellow;
position:absolute;
bottom: -25px;
right:20px;
}
</style>
</head>
72
<body>
<div id="box">
<div id="box2"></div>
</div>
</body>
</html>
Hasil yang diperoleh dapat dilihat pada Gambar 3.23 berikut ini.
73
Pada contoh tersebut tombol untuk sharing via facebook atau twitter
dan nomor posting ditampilkan berjajar secara vertical dan setengah
keluar dari kotak artikel.
4.
Fixed
Sifat dari position fixed hampir sama dengan absolute, namun posisi
dari elemen fixed akan tetap berada posisi yang ditentukan walaupun
browser di-zoom-in/out atau di-scroll ke atas atau ke bawah.
Contoh:
<!DOCTYPE html>
<html>
<head>
<title>Positioning</title>
<style>
#box{
background : green;
width : 300px;
height : 300px;
position : relative;
}
#box2{
width:50px;
height:50px;
background:yellow;
position:absolute;
bottom: -25px;
right:20px;
}
#social{
width:30px;
height:100px;
background:red;
position:fixed;
left:0;
top:100px;
}
</style>
</head>
<body>
<div id="box">
<div id="box2"></div>
<div id="social"></div>
</div>
</body>
</html>
74
75
Hasil yang diperoleh dapat dilihat pada Gambar 3.25 berikut ini.
Pada Gambar 3.25, terlihat #social ditempatkan pada sisi sebelah kiri,
dimana memiliki positioning fixed. Jadi walaupun browser di-zoomin/out atau di-scroll ke atas atau ke bawah maka #social akan tetap
berada pada posisi tersebut.
3.10 Pseudo-class
Pseudo Class digunakan untuk memberikan efek-efek tertentu pada
selector. Misalnya efek ketika cursor berada di atas suatu elemen (hover),
ketika cursor meng-klik suatu elemen dan lain sebagainya.
Jika tidak demikian maka efek tersebut tidak akan berjalan dengan
baik.
Style tersebut akan memberikan efek perubahan warna link menjadi merah
ketika cursor berada di atasnya, seperti terlihat pada Gambar 3.26.
76
<li>Item
<li>Item
<li>Item
<li>Item
</ul>
ke
ke
ke
ke
2</li>
3</li>
4</li>
5</li>
Maka hasil yang diperoleh dapat dilihat pada Gambar 3.27 berikut ini.
Contoh penggunaan pseudo element adalah mengatur style untuk huruf dan
baris pertama. Untuk membuat huruf besar dan huruf tebal baris pertama
pada paragraf dapat dilakukan dengan menggunakan kode berikut.
p:first-letter { color: #ff0000; font-size: xx-large; }
p:first-line {font-weight: bold;}
77
3.12 Rangkuman
1. CSS atau Cascading Style Sheets adalah sebuah dokumen yang berisi
aturan yang digunakan untuk memisahkan isi dengan layout dalam
halaman-halamn web yang dibuat. CSS memperkenalkan "template"
yang berupa style untuk dibuat dan mengizinkan penulisan kode yang
lebih mudah dari halaman-halaman web yang dirancang.
2. CSS hanya membutuhkan style sebagi penentu dari font, warna, dan
format-format lain untuk memformat atribut sebuah halaman web yang
dibuat. Tiap style memiliki dua buah elemen dasar, yaitu "selector" dan
"declaration".
3. Penempatan style CSS dalam dokumen web yang dibuat dalam bahasa
HTML dapat dilakukan dengan beberapa cara dan tingkatan yang
berbeda sesuai dengan keinginan, diantaranya adalah menggunakan
inline style, internal style, external style, dan juga teknik importing
dengan internal style.
4. CSS memiliki aturan tersendiri dalam penulisan sintaknya. Penulisan
sintak tersebut terbagi ke dalam tiga bagian, yaitu selector, property,
dan value.
5. Selector dalam CSS adalah elemen yang akan didefinisikan dalam style
CSS, sedangkan elemen ini dapat berupa tag HTML maupun class.
Sedangkan property dalam CSS adalah atribut yang berfungsi untuk
mendefinisikan selector, sementara value adalah nilai atau harga dari
sebuah property. Ada beberapa jenis selector dalam CSS, yakni selector
id, selector class, dan selector HTML
3.13 Tugas/Soal Latihan
1. Jelaskan apa kelebihan penggunaan CSS dalam membuat halamanhalaman web!
2. Sebutkan dan jelasakan cara penempatan style CSS dalam dokumen
web!
3. Jelaskan apa yang dimaksud dengan selector dalam style CSS!
4. Ada beberapa jenis selector dalam CSS, yakni selector id, selector class,
dan selector HTML. Jelaskan apa perbedaan dari ketiga jenis selector
tersebut!
5. Buatlah sebuah website pribadi bersifat statis dengan memanfaatkan
HTML dan CSS!
Ketentuan: Desain layout dapat anda tentukan sendiri. Dalam website
tersebut minimal terdapat halaman: Home, Profil, dan Kontak. Anda
dapat menambahkan halaman lain yang relevan.
78
3.14 Daftar Bacaan
1. Mansfield, Richard. 2005. CSS Web Design For Dummies. Indiana:
Wiley Publishing, Inc.
2. Larsen, Rob. 2013. Beginning HTML & CSS. Indiana: John Wiley &
Sons, Inc.
3. Robson, Elisabeth dan Freeman, Eric. 2012. Head First HTML and
CSS. California: OReilly Media, Inc.
4. Kadir, Abdul. 2011. From Zero to a Pro: CSS - Tip dan Trik untuk
Menyertakan Cascading Style Sheet dalam Halaman web. Yogyakarta:
Penerbit Andi.
5. Ariona, Rian. 2013. Belajar HTML dan CSS: Tutorial Fundamental
Dalam Mempelajari HTML & CSS. http://www.ariona.net/ebookbelajar-html-dan-css. Diakses tanggal 10 Agustus 2014.
6. W3Schools. CSS Tutorial. http://www.w3schools.com/css/default.asp.
Diakses tanggal 12 Agustus 2014.
BAB IV
DASAR PEMROGRAMAN PHP
4
DASAR PEMROGRAMAN PHP
RINGKASAN
PHP atau merupakan singkatan rekursif dari PHP : Hypertext
Preprocessor adalah suatu bahasa pemrograman yang termasuk kategori
server side programming, dimana nantinya script/program akan dijalankan
oleh server dan hasil pengolahan script/program tersebut akan dikirim ke
client sebagai output. Secara khusus, PHP dirancang untuk membentuk web
dinamis. Berbeda dengan HTML yang hanya bisa menampilkan konten
statis, PHP bisa berinteraksi dengan database, file dan folder, sehingga
membuat PHP bisa menampilkan konten yang dinamis dari sebuah website.
4.1 Pengenalan PHP
Bahasa pemrograman PHP diciptakan oleh Rasmus Lerdorf, pada
tahun 1995. PHP atau merupakan singkatan rekursif dari PHP : Hypertext
Preprocessor adalah suatu bahasa pemrograman yang termasuk kategori
server side programming. Server side programming adalah jenis bahasa
pemrograman yang nantinya script/program tersebut akan dijalankan oleh
server. Selanjutnya hasil pengolahan script/program tersebut akan dikirim
ke client sebagai output.
Secara khusus, PHP dirancang untuk membentuk web dinamis.
Berbeda dengan HTML yang hanya bisa menampilkan konten statis, PHP
bisa berinteraksi dengan database, file dan folder, sehingga membuat PHP
bisa menampilkan konten yang dinamis dari sebuah website. PHP adalah
bahasa scripting, bukan bahasa tag-based seperti HTML. PHP termasuk
bahasa yang cross-platform, ini artinya PHP bisa berjalan pada sistem
operasi yang berbeda-beda (Windows, Linux, ataupun Mac). Program PHP
ditulis dalam file plain text (teks biasa) dan mempunyai akhiran ".php".
Untuk dapat berjalan, PHP membutuhkan web server, yang bertugas
untuk memproses file-file php dan mengirimkan hasil pemrosesan dalam
bentuk HTML untuk ditampilkan di browser client. Secara sederhana,
prinsip kerja PHP dapat dilihat pada Gambar 4.1. Web server sendiri adalah
software yang di-install pada komputer server yang berada di jaringan
intranet atau internet yang berfungsi untuk melayani permintaan-permintaan
web dari client. Web server yang paling banyak digunakan saat ini untuk
PHP adalah "Apache" (www.apache.org). Selain Apache, PHP juga
memerlukan PHP binary (www.php.net) yang bisa dikonfigurasikan sebagai
modul Apache atau pun sebagai aplikasi CGI (Common Gateway Interface).
Untuk media penyimpanan datanya (database server), PHP biasa
79
80
81
Blok scripting PHP selalu diawali dengan <?php dan diakhiri dengan
Blok scripting PHP dapat ditempatkan dimana saja di dalam dokumen.
Setiap baris kode PHP harus diakhiri dengan semikolon (;). Semikolon ini
merupakan separator yang digunakan untuk membedakan satu instruksi
dengan instruksi lainnya.
Script PHP yang dibuat harus disimpan dalam ekstensi .php.
Apabila tidak, maka script tidak akan bisa dijalankan dan hanya dianggap
sebagai teks biasa. Dahulu script PHP dapat juga disimpan dalam bentuk
ekstensi .php3, namun hal ini berlaku untuk PHP versi 3.x saja. Sejak
rilis 4.x ke atas, ekstensi tersebut tidak digunakan lagi.
Untuk dapat dijalankan, script PHP yang dibuat harus diletakkan
dalam root direktori dari web server. Sebagai contoh, apabila
menggunakan XAMPP yang di-install pada komputer local (localhost)
dengan sistem operasi Windows, script PHP diletakkan dalam direktori
C:\xampp\htdocs.
?>.
Penggunaan variabel
Variabel dalam pemrograman digunakan untuk menyimpan suatu nilai
dan jika suatu saat nilai tersebut diperlukan kembali untuk proses
perhitungan, maka cukup memanggil nama variabel tersebut.
82
Dalam PHP, nama suatu variabel ditandai dengan tanda $. Berikut ini
adalah sintaks untuk menyimpan nilai ke dalam suatu variabel (dikenal juga
dengan istilah assignment).
$namaVariabel = nilai;
83
$sebuah_bilangan = 4;
$bilanganYangLain = 8.567;
$teks2 = $teks;
echo $teks;
echo "<br />" . $sebuah_bilangan;
echo "<br />Isi dari variabel \$bilanganYangLain : " .
$bilanganYangLain;
echo "<br />Isi dari variabel \$teks2 adalah : " . $teks2;
?>
Keterangan:
Tanda titik (dot) digunakan untuk menggabungkan string. Dalam hal
ini, nilai yang akan ditampilkan dianggap sebagai suatu string.
Tanda backslash (\) di depan $ pada script di atas digunakan untuk
menampilkan tanda $ ke dalam browser.
<?php
$teks = "Hello World!";
$sebuah_bilangan = 4;
$bilanganYangLain = 8.567;
$teks2 = $teks;
?>
Keterangan:
Perintah pertama digunakan untuk menyimpan nilai berupa string ke
dalam variabel bernama $teks.
Perintah kedua digunakan untuk menyimpan nilai berupa bilangan bulat
4 ke dalam variabel bernama $sebuah_bilangan.
Perintah ketiga digunakan untuk menyimpan nilai berupa bilangan riil
8.567 ke dalam variabel bernama $bilanganYanglain.
Perintah keempat digunakan untuk menyimpan nilai yang tersimpan
dalam variabel $teks, dalam hal ini juga "Hello World!".
Catatan Penting:
Besar kecilnya huruf dalam nama variabel sangat berpengaruh. Maksudnya
misalnya membuat variabel $a dengan $A, keduanya adalah berbeda. Sifat
ini dinamakan case sensitive.
b. Menampilkan nilai variabel
Untuk menampilkan nilai yang telah tersimpan dalam variabel,
digunakan echo. Berikut ini contoh penggunaannya:
<?php
$teks = "Hello World!";
c.
Contoh:
<?php
echo "Hello World!"; // perintah ini akan mencetak Hello World!
?>
Contoh yang lain:
<?php
/*
Berikut ini adalah perintah
untuk menampilkan teks Hello World
pada browser
*/
echo "Hello World!";
?>
84
4.3 Operator
Operator adalah simbol yang digunakan dalam program untuk
melakukan suatu operasi, misalnya penjumlahan atau perkalian,
perbandingan kesamaan dua buah nilai, atau bahkan memberikan nilai ke
variabel. Nilai yang dioperasikan oleh operator (disebut operand atau
argumen) bersama-sama operator membentuk ekspresi (ungkapan). sebagai
contoh:
2 + 3 * 4
Operator Aritmetika
Operator aritmetika digunakan untuk operasi perhitungan yang
melibatkan nilai berupa bilangan atau dalam operasi matematika. Ada
beberapa macam operator aritmetika seperti terlihat pada Tabel 4.1 berikut
ini.
Tabel 4.1 Operator Aritmetika pada PHP
Operator
Makna
Contoh
Penjumlahan
+
2+4
Pengurangan
6-2
Perkalian
*
5*3
Pembagian
/
15 / 3
Modulus/sisa
hasil
bagi
%
43 % 10
Increment
x=5;
x++
++
Decrement
x=5; x-
Contoh script:
<?php
$penjumlahan
$pengurangan
$perkalian =
$pembagian =
$modulus = 5
echo "Hasil:
echo "Hasil:
echo "Hasil:
85
echo "Hasil: 15 / 3 = " . $pembagian."<br>";
echo "Hasil: 5 % 2 = " . $modulus;
?>
Tingkat Presedensi
Perlu berhati-hati dalam menggunakan operator aritmetika, terutama
jika menggunakan lebih dari satu operator yang berbeda dalam satu
statement perhitungan, sebagai contoh script berikut ini:
<?php
$a = 3 + 4 * 5 6;
echo $a;
?>
Apabila script di atas dijalankan, maka hasil yang muncul bukan 29,
tapi 17. Hal ini terjadi, karena operasi aritmatik yang dikerjakan terlebih
dahulu adalah perkalian (*). Perkalian memiliki tingkat presedensi yang
lebih tinggi daripada + dan -. Setelah perkalian dikerjakan, maka operasi
yang dikerjakan adalah + dan -. Keduanya, + dan -, memiliki tingkat
presedensi yang sama. Jika kedua operator memiliki pesedensi yang sama,
maka bagian yang lebih kiri akan dikerjakan lebih dahulu. Operator lainnya
yang memiliki presedensi yang sama dengan perkalian adalah pembagian (/)
dan modulo (%). Agar bagian operasi tertentu dari statement perhitungan
dikerjakan lebih dahulu maka dapat menggunakan tanda kurung, seperti
contoh berikut.
<?php
$a = (3 + 4) * 5 6;
echo $a;
?>
= 2 + 4;
= 6 - 2;
5 * 3;
15 / 3;
% 2;
2 + 4 = " . $penjumlahan."<br>";
6 - 2 = " . $pengurangan."<br>";
5 * 3 = " . $perkalian."<br>";
ekuivalen dengan $x
+= 1;
atau $x
= $x + 1;
-= 1;
atau $x
= $x 1;
$x--;
ekuivalen dengan $x
Contoh:
<?php
86
$x = 4;
$x++;
echo "Nilai x yang baru : ". $x;
$x = 4;
$x--;
echo "Nilai x yang baru : ". $x;
?>
87
d. Operator Logika
Operator logika biasa digunakan untuk menggabungkan kondisi
berganda dan menghasilkan sebuah ekspresi yang bernilai benar atau salah.
Berikut pada Tabel 4.4 ditampilkan operator yang termasuk ke dalam
kelompok operator logika.
Operator
&&
Operator
+=
-=
*=
/=
%=
.=
c.
Operator
==
!=
>
<
>=
<=
||
!
Operator and atau && menghasilkan nilai benar jika kedua operand
bernilai benar. Operator or atau || menghasilkan nilai benar apabila ada
salah satu operand yang bernilai benar.
4.4 Statement Kontrol
Dalam dunia pemrograman umumnya, terdapat 2 jenis statement
kontrol yaitu: statement kontrol kondisional (bersyarat) dan statement
kontrol perulangan (looping).
Statement kontrol kondisional adalah statement kontrol yang
digunakan untuk mengatur kapan suatu perintah akan dijalankan. Dengan
statement ini kita bisa mengatur kapan suatu perintah akan dijalankan, yaitu
ketika telah dipenuhinya suatu syarat tertentu. Sedangkan statement kontrol
perulangan digunakan untuk mengatur perintah yang dijalankan secara
berulang-ulang.
Dalam PHP, terdapat dua buah statement kontrol yang termasuk
statement kontrol kondisional, yaitu IF dan SWITCH. Sedangkan yang
termasuk statement kontrol perulangan adalah: FOR, WHILE, DO WHILE
dan FOREACH.
a.
Statement If
Pernyataan if biasa digunakan untuk mengambil keputusan
berdasarkan suatu kondisi. PHP memiliki tiga macam bentuk if, yaitu:
if
Bentuk pertama if berupa:
88
if (condition) {
code to be executed if condition is true;
}
Contoh:
<html>
<body>
<?php
$total_beli = 200000;
$keterangan = "Tidak dapat diskon";
if ($total_beli >= 100000){
$keterangan = "Dapat diskon";
}
echo $keterangan;
?>
</body>
</html>
if-else
Bentuk ini digunakan apabila ingin menjalankan suatu tindakan tertentu
bila kondisi bernilai benar dan menjalankan tindakan yang lain kalau
kondisi bernilai salah.
Bentuk pernyataan:
if (condition) {
code to be executed if condition is true;
} else {
code to be executed if condition is false;
}
Contoh:
<html>
<body>
<?php
$d=date("D");
if ($d=="Fri"){
echo "Have a nice weekend!";
} else {
echo "Have a nice day!";
}
?>
</body>
</html>
if-elseif
Pernyataan if-elseif sangat bermanfaat untuk melakukan pengambilan
keputusan yang melibatkan banyak alternatif.
89
Bentuk pernyataan:
if (condition) {
code to be executed if condition is true;
} elseif (condition) {
code to be executed if condition is true;
} else {
code to be executed if condition is false;
}
Contoh:
<html>
<body>
<?php
$d=date("D");
if ($d=="Fri"){
echo "Have a nice weekend!";
}elseif ($d=="Sun"){
echo "Have a nice Sunday!";
}else{
echo "Have a nice day!";
}
?>
</body>
</html>
b. Statement Switch
Switch digunakan untuk melakukan suatu aksi dari beberapa aksi yang
berbeda berdasarkan pada satu atau lebih kondisi yang berbeda.
Bentuk pernyataan:
switch (n) {
case label1:
code to be
break;
case label2:
code to be
break;
case label3:
code to be
break;
...
default:
code to be
}
Contoh:
<html>
<body>
<?php
$favcolor = "red";
executed if n=label1;
executed if n=label2;
executed if n=label3;
90
switch ($favcolor)
case "red":
echo "Your
break;
case "blue":
echo "Your
break;
case "green":
echo "Your
break;
default:
echo "Your
green!";
}
?>
</body>
</html>
{
favorite color is red!";
91
d. Statement Do While
Pernyataan do-while mempunyai kegunaan yang serupa dengan
pernyataan while. Bentuk pernyataannya:
do {
code to be executed;
} while (condition is true);
c.
Statement While
Pernyataan while merupakan salah satu pernyataan yang berguna
untuk melakukan suatu perulangan. Adapun bentuk pernyataannya:
e.
Statement For
Pernyataan for juga merupakan pernyataan yang biasa digunakan
untuk menangani perulangan proses. Bentuk pernyataannya:
for (initialization; condition; increment) {
code to be executed;
}
92
Contoh berikut ini menunjukkan penggunaan for untuk menampilkan
bilangan 0 hingga 10.
<html>
<body>
<?php
for ($x = 0; $x <= 10; $x++) {
echo "Bilangan: $x <br>";
}
?>
</body>
</html>
4.5 Array
Selama ini bentuk variabel yang dibuat untuk menyimpan suatu value
atau nilai adalah berbentuk tunggal. Maksudnya, satu variabel hanya bisa
untuk menyimpan sebuah value saja. Misalkan sebuah value telah disimpan
atau di-assign ke dalam sebuah variabel, selanjutnya variabel tersebut akan
di-assign kembali dengan sebuah value yang lain, maka value yang
sebelumnya akan ditimpa oleh value yang baru.
Berbeda dengan variabel, array adalah suatu wadah yang dapat
menampung sejumlah nilai. Misalkan suatu variabel bernama X bertipe data
array, maka X ini dapat dibayangkan seperti Gambar 4.2 berikut.
93
$kota[] = "Solo";
$kota[] = "Bandung";
$kota[] = "Bogor";
=
=
=
=
"Yogya";
"Solo";
"Bandung";
"Bogor";
maka indeks yang akan digunakan berupa indeks tertinggi dari elemenelemen array yang sudah terbentuk ditambah dengan satu. Jadi, sekiranya
menuliskan empat pernyataan berikut:
Gambar 4.2 Gambaran array
Dalam terminologi array, array X di atas dikatakan mempunyai
beberapa buah elemen yang berhingga yakni sejumlah N. Setiap elemen
dikenali dengan indeks-nya: 0,1,2,3,...,N-1. PHP secara bawaan
menggunakan indeks dimulai dengan nol.
Menciptakan array
Suatu array dapat diciptakan dengan menggunakan konstruksi array.
Sebagai contoh, array yang berisi 4 buah kota dapat dibentuk dengan
menggunakan pernyataan berikut.
$wadah[10] = 60;
$wadah[3] = 65;
$wadah[8] = 55;
$wadah[] = 67;
maka angka 67 akan disimpan ke elemen array yang memiliki indeks berupa
11 (10 + 1).
$nama_array[indeks]
$kota = array("Yogya","Solo","Bandung","Bogor");
Contoh:
Alternatif lainnya, dapat menggunakan sederetan pernyataan berikut.
$kota[] = "Yogya";
<?php
$x = array(10, 12, 3, 44, 50, "hallo");
94
95
$hari["Tuesday"] = "Selasa";
$hari["Wednesday"] = "Rabu";
echo $hari["Tuesday"];
?>
// mengganti value pada indeks ke-2 dengan value yang baru (-3)
$x[2] = -3;
POST Request
Untuk dapat memahami POST request perhatikan contoh berikut ini.
Dalam contoh ini, akan membuat sebuah form yang digunakan untuk login.
login.php
<html>
<title>POST Request</title>
<body>
Silakan Login dengan Username dan Password Anda
<form action="view.php" method="POST">
<table>
<tr>
<td>Username</td>
<td><input type="text" name="username"/></td>
</tr>
<tr>
<td>Password</td>
<td><input type="password" name="password"/></td>
</tr>
<tr>
<td></td>
<td><input type="submit" value="Login"/></td>
</tr>
</table>
</form>
</body>
</html>
Pada form di atas dapat dilihat bahwa terdapat dua komponen dalam
form, yang masing-masing memiliki nama 'username' dan 'password'
(perhatikan atribut name="" pada komponen). Keduanya merupakan
komponen form berbentuk text box. Selanjutnya, perhatikan bagian atribut
action="proses.php". Atribut ini memiliki makna bahwa apabila tombol
Login tersebut diklik, maka data yang diisikan pada form nantinya akan
dikirim dan diolah pada script bernama view.php.
96
view.php
<html>
<title>POST Request</title>
<body>
Username : <?php echo $_POST["username"]; ?><br/>
Password : <?php echo $_POST["password"]; ?>
</body>
</html>
97
</tr>
<tr>
<td></td>
<td><input type="submit" value="Login"/></td>
</tr>
</table>
</form>
</body>
</html>
GET Request
Untuk dapat memahami GET request maka contoh sebelumnya yakni
file login.php akan dirubah menjadi seperti berikut ini.
login.php
<html>
<title>GET Request</title>
<body>
Silakan Login dengan Username dan Password Anda
<form action="view.php" method="GET">
<table>
<tr>
<td>Username</td>
<td><input type="text" name="username"/></td>
</tr>
<tr>
<td>Password</td>
<td><input type="password" name="password"/></td>
98
Panjang dari URL string tidak
dibatasi
Pengambilan variabel dengan
$_POST
Biasanya untuk input data
melalui form
Digunakan untuk mengirim
data-data penting seperti
password
variabel baru
Kurang aman
Panjang URL string dibatasi
maksimum sampai 2048 karakter
Pengambilan variabel dengan
$_GET
Biasanya untuk input data
melalui link
Digunakan untuk mengirim datadata yang tidak sensitif
4.7 Cookie
Cookie adalah sepotong data yang disimpan pada komputer milik
pengunjung dan digunakan oleh halaman web dalam mengingat suatu
informasi. Dengan mengakses data yang disimpan pada komputer
pengunjung inilah, suatu server bisa mendapatkan kembali informasi yang
pernah dikirimkan ke client. Cookie biasanya digunakan untuk menciptakan
sesi yang memungkinkan sesorang dapat masuk ke halaman-halaman lain
tanpa perlu melakukan login kembali.
99
Mengakses cookie
Untuk mengakses
$_COOKIE.
cookie,
perlu
menggunakan
super
global
$_COOKIE["nama_cookie"];
Contoh:
<?php
if isset($_COOKIE["mycookie"]){
echo $_COOKIE["mycookie"];
}else{
echo "Cookie Tidak Ada";
}
?>
Menciptakan cookie
Untuk menciptakan sebuah cookie, dapat menggunakan setcookie()
dengan format sebagai berikut.
Contoh:
Contoh:
<?php
setcookie("nama", "Demi Moore");
echo "Cookie telah terbentuk ";
?>
<?php
setcookie("nama", "Demi Moore", time() + 3600);
echo "Cookie telah terbentuk ";
?>
Menghapus cookie
Untuk menghapus suatu cookie, gunakan setcookie() dengan
menyebutkan nama cookie pada argumen pertama, string kosong pada
argumen kedua dan kadaluarsa diset ke waktu sebelumnya (masa lampau)
pada argumen ketiga.
100
Contoh:
<?php
// set kadaluarsa ke satu jam yang lalu
setcookie("nama", "", time() - 3600);
?>
<html>
<body>
101
echo "Session_ID : ".session_id()."<br>";
session_destroy();
echo "Setelah session ditutup <br>";
echo "Session_ID : ".session_id();
?>
Hasil pemanggilan script di atas, dapat dilihat pada Gambar 4.5 berikut ini.
<?php
echo "Cookie 'nama' telah dihapus.";
?>
</body>
</html>
4.8 Session
PHP menyediakan pustaka yang berguna untuk membentuk sebuah
sesi dengan menggunakan session. Berbeda dengan cookie (yang
menyimpan data pada client), session diimplementasikan dengan
menyimpan data pada server. Dengan demikian, tidak perlu ada komunikasi
bolak-balik antara web server dan client ketika web server membutuhkan
data tersebut.
Setiap kali session dibentuk, akan terdapat referensi yang menunjuk ke
session bersangkutan. Referensi ini dikenal dengan sebutan SID (Session
Identifier) atau pengenal session. Nomor referensi ini dapat dibayangkan
seperti nomor transaksi ketika mendapatkan faktur pembelian barang.
<?php
session_start();
session_start();
$_SESSION["var_x"] = "123456";
102
if (isset($_SESSION["var_x"])){
echo $_SESSION["var_x"];
}else{
echo "Tidak ada";
}
?>
103
4.9 Function
Script yang berukuran besar uumnya melibatkan fungsi-fungsi yang
diciptakan sendiri oleh pemrogram. Fungsi adalah blok kode yang ditujukan
untuk melaksanakan suatu tugas tertentu. Dengan menciptakan fungsi, yang
dibuat sekali, fungsi dapat dipanggil berkali-kali di bagian mana pun dalam
script.
Fungsi dapat dideklarasikan dengan menggunakan pernyataan
function. Bentuk pendeklarasiannya adalah sebagai berikut.
function nama_function(parameter)
{
..
..
return variabel;
}
<?php
session_start();
echo "Session_ID : ".session_id()."<br>";
echo "Variabel session var_x diakses dari unreg.php:
".$_SESSION["var_x"]."<br>";
unset($_SESSION["var_x"]);
echo "Variabel session var_x setelah di-unregister: ";
if (isset($_SESSION["var_x"])){
echo $_SESSION["var_x"]."<br>";
}else{
echo "Tidak ada <br>";
}
echo "Session_ID : ".session_id();
?>
Hasil pemanggilan script di atas, dapat dilihat pada Gambar 4.6 berikut ini.
Contoh:
Memerlukan return variabel:
<?php
function jumlah($a, $b){
$c = $a + $b;
return $c;
}
echo "Hasil penjumlahannya = ".jumlah(3, 5);
?>
<?php
function tulis($x){
echo "Anda menampilkan ". $x . "<br>";
}
tulis("Hello World..");
tulis("Apa kabar?");
?>
104
105
jumlah.php
include "namafilemodul.php";
bilangan.php
<?php
$bil1 = 10;
$bil2 = 5;
?>
<?php
include "bilangan.php";
$hasil = $bil1 + $bil2;
echo "Hasil penjumlahannya adalah : ".$hasil;
?>
Bentuk script jumlahkan.php di atas akan identik dengan script berikut ini.
<?php
$bil1 = 10;
$bil2 = 5;
$hasil = $bil1 + $bil2;
echo "Hasil penjumlahannya adalah : ".$hasil;
?>
4.11 Rangkuman
1. PHP atau merupakan singkatan rekursif dari PHP : Hypertext
Preprocessor adalah suatu bahasa pemrograman yang termasuk
kategori server side programming. Server side programming adalah
jenis bahasa pemrograman yang nantinya script/program tersebut akan
dijalankan oleh server. Selanjutnya hasil pengolahan script/program
tersebut akan dikirim ke client sebagai output.
2. PHP dirancang untuk membentuk web dinamis. Berbeda dengan HTML
yang hanya bisa menampilkan konten statis, PHP bisa berinteraksi
dengan database, file dan folder, sehingga membuat PHP bisa
menampilkan konten yang dinamis dari sebuah website.
3. Kode PHP adalah kode yang disertakan di sebuah halaman HTML dan
kode tersebut dijalankan oleh server sebelum dikirim ke browser.
4. Blok scripting PHP selalu diawali dengan <?php dan diakhiri dengan
?>. Blok scripting PHP dapat ditempatkan dimana saja di dalam
dokumen. Setiap baris kode PHP harus diakhiri dengan semikolon (;).
Semikolon ini merupakan separator yang digunakan untuk
membedakan satu instruksi dengan instruksi lainnya.
5.
106
107
Script PHP yang dibuat harus disimpan dalam ekstensi .php. Apabila
tidak, maka script tidak akan bisa dijalankan dan hanya dianggap
sebagai teks biasa.
Nama Lengkap
Tempat Lahir
Tanggal Lahir
Alamat Rumah
Jenis Kelamin
Asal Sekolah
Nilai UAN
Keterangan:
$a adalah variabel yang menyatakan jumlah pecahan Rp. 100.000,$b adalah variabel yang menyatakan jumlah pecahan Rp. 50.000,$c adalah variabel yang menyatakan jumlah pecahan Rp. 20.000,$d adalah variabel yang menyatakan jumlah pecahan Rp. 5.000,$e adalah variabel yang menyatakan jumlah pecahan Rp. 100,$f adalah variabel yang menyatakan jumlah pecahan Rp. 50,2.
3.
: Joko
: XXX
: TGL-BLN-THN
: XXX
: Pria
: XXX
: XXX
109
BAB V
BASIS DATA DALAM PEMROGRAMAN WEB
DENGAN MYSQL
5
RINGKASAN
Basis data (database) dapat didefinisikan sebagai himpunan kelompok
data yang saling berhubungan yang yang disimpan secara bersama tanpa
pengulangan (redundancy) yang diorganisasi sedemikian rupa sehingga
kelak dapat dimanfaatkan dengan cepat dan mudah untuk memenuhi
berbagai kebutuhan. Basis data disimpan dalam media penyimpanan
elektronis. Dalam pengelolaan basis data secara fisik tidak dilakukan oleh
pemakai secara langsung, tetapi ditangani oleh sebuah perangkat lunak
(sistem) yang khusus yang disebut DBMS (Database Management System).
Untuk pembangunan aplikasi web dinamis maka digunakan database untuk
menyimpan konten dari halaman web. Salah satu implementasi yang banyak
digunakan dalam pembangunan aplikasi web dinamis adalah memadukan
pemrograman PHP dengan penggunaan DBMS MySQL.
5.1 Pengenalan Basis Data
Basis data terdiri atas 2 kata, yaitu Basis dan Data. Basis kurang lebih
dapat diartikan sebagai markas atau gudang, sedangkan Data adalah
representasi fakta dunia nyata yang mewakili suatu objek seperti manusia
(pegawai, siswa, pembeli, pelanggan), barang, hewan, peristiwa, konsep,
keadaan dan sebagainya yang diwujudkan dalam bentuk angka, huruf,
simbol, teks, gambar, bunyi, atau kombinasinya.
Sebagai satu kesatuan istilah, basis data (database) sendiri dapat
didefinisikan dalam sejumlah sudut pandang seperti:
Himpunan kelompok data (arsip) yang saling berhubungan yang
diorganisasi sedemikian rupa agar kelak dapat dimanfaatkan kembali
dengan cepat dan mudah.
Kumpulan data yang saling berhubungan yang disimpan secara bersama
sedemikian rupa dan tanpa pengulangan (redundansi) yang tidak
perlu, untuk memenuhi berbagai kebutuhan.
Kumpulan tabel yang saling berhubungan yang disimpan dalam media
penyimpanan elektronis.
5.1.1 Sistem Basis Data
Basis data hanyalah sebuah objek yang pasif. Ia ada karena ada
pembuatnya. Ia tidak akan pernah berguna jika tidak ada pengelola dan
penggeraknya. Yang menjadi pengelola atau penggeraknya secara langsung
108
110
111
CREATE
CREATE digunakan untuk membuat basis data maupun objek-objek
basis data. Perintah SQL yang umum digunakan adalah:
CREATE DATABASE nama_basis_data
Perintah CREATE
baru.
DATABASE
CREATE TABLE membuat tabel baru pada basis data yang sedang aktif.
Secara umum, perintah ini memiliki bentuk:
dengan:
o nama_field adalah nama kolom (field) yang akan dibuat. Beberapa
sistem manajemen basis data mengizinkan penggunaan spasi dan
karakter non huruf pada nama kolom.
112
o tipe_data tergantung implementasi sistem manajemen basis data.
Misalnya, pada MySQL, tipe data dapat berupa VARCHAR, TEXT,
BLOB, ENUM, dan sebagainya.
o constraints adalah batasan-batasan yang diberikan untuk tiap kolom.
Ini juga tergantung implementasi sistem manajemen basis data,
misalnya NOT NULL, UNIQUE, dan sebagainya. Ini dapat
digunakan untuk mendefinisikan kunci primer (primary key) dan
kunci asing (foreign key).
o Satu tabel boleh tidak memiliki kunci primer sama sekali, namun
sangat disarankan mendefinisikan paling tidak satu kolom sebagai
kunci primer.
Contoh:
CREATE TABLE tbl_pelanggan (
id_pelanggan VARCHAR(5) NOT NULL,
nama_pelanggan VARCHAR(25) NOT NULL,
alamat VARCHAR(50) NOT NULL,
no_hp VARCHAR(15) NOT NULL,
PRIMARY KEY (id_pelanggan))
ALTER
Perintah alter digunakan untuk merubah struktur tabel yang telah dibuat
sebelumnya dengan perintah CREATE. Berikut perintah SQL yang
digunakan, diantaranya:
Merubah tipe data kolom:
ALTER TABLE nama_tabel MODIFY nama_kolom tipe_data_baru;
DROP
Perintah drop digunakan untuk menghapus basis data maupun objekobjek basis data. Berikut perintah SQL yang digunakan, diantaranya:
113
Menghapus database:
DROP DATABASE nama_database;
Menghapus tabel:
DROP TABLE nama_tabel;
2.
SELECT
SELECT adalah perintah yang paling sering digunakan pada SQL,
sehingga terkadang istilah query dirujukkan pada perintah SELECT.
SELECT digunakan untuk menampilkan data dari satu atau lebih tabel,
biasanya dalam sebuah basis data yang sama. Secara umum, perintah
SELECT memiliki bentuk lengkap seperti berikut ini.
SELECT [nama_tabel|alias.]nama_field1 [AS alias1] [,
nama_field2, ...]
FROM nama_tabel1 [AS alias1] [INNER|LEFT|RIGHT JOIN tabel2
ON kondisi_penghubung]
[, nama_tabel3 [AS alias3], ...]
[WHERE kondisi]
[ORDER BY nama_field1 [ASC|DESC][, nama_field2 [ASC|DESC],
...]]
[GROUP BY nama_field1[, nama_field2, ...]]
[HAVING kondisi_aggregat]
dengan:
o kondisi adalah syarat yang harus dipenuhi suatu data agar
ditampilkan.
o kondisi_aggregat adalah syarat khusus untuk fungsi aggregat,
contoh fungsi agregat: SUM untuk menghitung total nominal data,
COUNT untuk menghitung jumlah kemunculan data, AVG untuk
menghitung rata-rata sekelompok data, MAX dan MIN untuk
mendapatkan nilai maksimum/minimum dari sekelompok data
Kondisi dapat dihubungkan dengan operator logika, misalnya AND,
OR, dan sebagainya.
Contoh:
SELECT * FROM tbl_pelanggan
WHERE id_pelanggan = 'P0005'
114
115
INSERT
Untuk menyimpan data dalam tabel dipergunakan sintaks:
INSERT INTO [nama_table] ([daftar_field]) VALUES
([daftar_nilai])
Contoh:
INSERT INTO test (nama, alamat, password) VALUES ('test',
'alamat', 'pass');
UPDATE
Untuk mengubah data menggunakan sintaks:
UPDATE [nama_table] SET [nama_kolom]=[nilai] WHERE [kondisi]
Contoh:
UPDATE user SET password="123456" WHERE username="abc";
DELETE
Untuk menghapus data dipergunakan sintaks:
DELETE FROM [nama_table] WHERE [kondisi]
Contoh:
DELETE FROM TEST WHERE NAMA='test';
3.
116
117
118
119
int(11)
varchar(50)
smallint(6)
int(11)
auto increment
primary key
Input dan eksekusi perintah SQL ini, dapat dilihat seperti pada Gambar 5.8
(dengan asumsi telah berhasil login/masuk ke aplikasi phpmyadmin).
Eksekusi dilakukan dengan menekan tombol Go.
120
121
Pada perintah SQL yang di-inputkan terdapat perintah USE. Perintah USE ini
digunakan untuk menset penggunaan objek database dblatihan yang telah
dibuat sebelumnya.
Berikut ini contoh script PHP untuk menjalankan query SQL untuk insert
data ke tabel MySQL.
Keterangan:
o host : nama komputer dimana DBMS MySQL berada, apabila
berada di komputer lokal maka nama hostnya: 'localhost', atau bisa
diisi dengan alamat IP server database MySQL.
o username : nama user yang memiliki hak akses ke DBMS MySQL
o password : password untuk nama user yang memiliki hak akses ke
DBMS MySQL
o dbname : nama database yang digunakan
Contoh dalam script PHP:
<?php
$mysql_hostname = "localhost";
$mysql_user = "root";
$mysql_password = "root";
$mysql_database = "dblatihan";
$conn = mysqli_connect($mysql_hostname, $mysql_user,
$mysql_password, $mysql_database) or die("Koneksi ke database
gagal!");
?>
<?php
include "configdb.php";
$query = "INSERT INTO namaTabel(field1, field2) VALUES(value1,
value2) ";
mysql_query($conn,$query);
?>
122
<input type="button" value="Kembali"
onclick="self.history.back()" /></td></tr>
</table>
</form>
Hasil form input data barang dapat dilihat pada Gambar 5.10 berikut ini.
123
4.
Tampilkan data dari proses fetching sesuai nama field yang ada dalam
array
<!DOCTYPE html>
<html>
<head>
<title>Tampil Data Barang</title>
</head>
<body>
<h2>Tampil Data Barang</h2>
<table border="1">
<thead>
<tr>
<th>ID Barang</th>
<th>Nama Barang</th>
<th>Stok</th>
<th>Harga Satuan</th>
<th>Aksi</th>
</tr>
</thead>
<tbody>
<?php
include "configdb.php";
$res = mysqli_query($conn,"SELECT * FROM tb_barang");
while ($row = mysqli_fetch_array($res)){
?>
<tr>
<td><?php echo $row['id_barang']; ?></td>
<td><?php echo $row['nama_barang']; ?></td>
<td><?php echo $row['stok']; ?></td>
<td><?php echo $row['harga_satuan']; ?></td>
<td>
<a href="update.php?id=<?php echo $row['id_barang'];
?>">Edit</a> |
<a href="action.php?id=<?php echo $row['id_barang'];
?>" onClick="return confirm('Apakah benar akan
menghapus data ini?')">Delete</a>
</td>
</tr>
<?php
}
?>
</tbody>
</table>
</body>
</html>
124
Hasil dari script tampil.php di atas dapat dilihat pada Gambar 5.11 berikut
ini.
125
<a href="update.php?id=<?php echo $row['id_barang'];
?>">Edit</a>
<?php
include "configdb.php";
if(isset($_GET['id'])){
$idbrg = mysqli_real_escape_string($conn,$_GET['id']);
if (isset($_POST['act'])) {
$idbrg = mysqli_real_escape_string($conn,$_POST['idbrg']);
$namabarang = $_POST['nmbrg'];
$stokbarang = $_POST['stkbrg'];
$hargasatuan = $_POST['hrgbrg'];
$sql = "UPDATE tb_barang SET nama_barang = '$namabarang',
stok = $stokbarang, harga_satuan = $hargasatuan
WHERE id_barang = '$idbrg'";
$ex = mysqli_query($conn,$sql) or die("Update data
gagal!");
$result = mysqli_affected_rows($conn);
//cek jika eksekusi query berhasil dilakukan
if ($result>0) {
echo "<script>alert('Update data berhasil..');
location.href='tampil.php'; </script>";
} else {
echo "<script>alert('Update data gagal..'); </script>";
}
}
$res = mysqli_query($conn,"SELECT * FROM tb_barang WHERE
id_barang=".$idbrg);
$row = mysqli_fetch_array($res);
?>
<h2>Update Data Barang</h2>
<form method="post">
<table border="1">
<tr><td>ID Barang</td><td><input type="text" name="idbrg"
readonly value="<?php echo $row['id_barang']; ?>" /></td></tr>
<tr><td>Nama Barang</td><td><input type="text" name="nmbrg"
value="<?php echo $row['nama_barang']; ?>" /></td></tr>
<tr><td>Stok</td><td><input type="text" name="stkbrg"
value="<?php echo $row['stok']; ?>" /></td></tr>
<tr><td>Harga Satuan</td><td><input type="text" name="hrgbrg"
value="<?php echo $row['harga_satuan']; ?>" /></td></tr>
126
127
Berikut ini merupakan contoh script PHP untuk melakukan proses delete
data barang.
<?php
include "configdb.php";
if(isset($_GET['id'])){
$id = mysqli_real_escape_string($_GET['id']);
$sql = "DELETE FROM tb_barang WHERE id_barang='$id'";
$ex = mysqli_query($conn,$sql) or die("Delete data gagal!");
$result = mysqli_affected_rows($conn);
//cek jika eksekusi query berhasil dilakukan
if ($result>0) {
echo "<script>alert('Delete data berhasil..');
location.href='tampil.php'; </script>";
} else {
echo "<script>alert('Delete data gagal..'); </script>"
}
}
?>
128
2.
3.
4.
5.
5.7
1.
2.
3.
4.
129
Nama
Email
Website
Komentar
Adapun tabel dalam database untuk menyimpan data isian buku tamu
tersebut terdiri atas beberapa field sebagai berikut.
Id
Nama
Email
Website
Tanggal
Komentar
integer
varchar(30)
varchar(30)
varchar(30)
datetime
text
auto increment
primary key
Keterangan:
Field "tanggal" digunakan untuk menyimpan informasi tanggal dan
waktu kapan komentar tersebut dikirim (tanggal ini secara otomatis
membaca tanggal dan waktu ketika komentar buku tamu di-submit).
5.8 Daftar Bacaan
1. Gilmore, W. Jason. 2008. Beginning PHP and MySQL: From Novice to
Professional, Third Edition. California: Apress.
2. Beighley, Lynn dan Morrison, Michael. 2009. Head First PHP &
MySQL. California: OReilly Media, Inc.
3. Beighley, L. 2007. Head First SQL. California: O'Reilly.
4. Kadir, Abdul. 2008. Dasar Pemrograman Web Dinamis Menggunakan
PHP. Yogyakarta: Penerbit Andi.
5. Fatansyah. 2012. Basis Data. Bandung: Penerbit Informatika
6. Solichin, Achmad. 2009. Pemrograman Web dengan PHP dan MySQL.
http://achmatim.net/2009/04/15/buku-gratis-pemrograman-web-denganphp-dan-mysql/. Diakses tanggal 28 Agustus 2014
7. Solichin, Achmad. 2010. MySQL 5, Dari Pemula Hingga Mahir.
http://achmatim.net/2010/01/30/buku-gratis-mysql-5-dari-pemulahingga-mahir/. Diakses tanggal 28 Agustus 2014
8. Yuana,
Rosihan
Ari.
2012.
Tutorial
PHP
Dasar.
http://blog.rosihanari.net/download-tutorial-php-dasar-gratis/. Diakses
tanggal 22 Agustus 2014
131
BAB VI
JAVASCRIPT
6
JAVASCRIPT
RINGKASAN
JavaScript adalah bahasa script yang dapat berjalan pada sisi client
(browser) dan termasuk dalam kelompok client side scripting. Secara
umum, penggunaan JavaScript adalah untuk menciptakan keinteraktifan
halaman web dengan user, misalnya untuk validasi input data dalam form
yang dilakukan user, memberikan efek mouse over pada suatu image atau
link, dan lainnya.
6.1 Pengenalan JavaScript
JavaScript adalah bahasa script yang dapat berjalan pada sisi client
(browser) dan termasuk dalam kelompok client side scripting. Pada
awalnya, JavaScript mulai diperkenalkan di browser Netscape Navigator 2.
Namun pada waktu itu namanya bukan JavaScript, melainkan LiveScript.
Mengingat saat itu teknologi Java sedang tren, maka pihak Netscape
memutuskan untuk mengganti LiveScript menjadi JavaScript.
JavaScript bukanlah bahasa Java dan merupakan dua bahasa yang
berbeda. JavaScript diinterpretasikan oleh klien (kodenya bisa dilihat pada
sisi klien), sedangkan kode Java dikompilasi oleh pemrogram dan hasil
kompilasinyalah yang dijalankan oleh klien.
Alasan utama memilih JavaScript adalah karena faktor penggunaan
dan ketersediaan. Maksudnya adalah kebanyakan web browser sudah
mendukung bahasa ini, sebut saja IE, Netscape, Firefox, Opera, Chrome dan
lain-lain. Sehingga dapat diasumsikan bahwa kebanyakan user atau
pengguna membuka halaman web dengan web browser yang telah
mendukung JavaScript. Secara umum, penggunaan JavaScript adalah untuk
menciptakan keinteraktifan halaman web dengan user, misalnya untuk
validasi input data dalam form yang dilakukan user, memberikan efek
mouse over pada suatu image atau link, dan lainnya.
6.2 Penulisan JavaScript
Ada dua jenis cara untuk menuliskan kode JavaScript, yakni pertama
kode JavaScript ditulis dalam file yang terpisah dengan HTML, dan kedua
kode JavaScript ditulis langsung dalam dokumen HTML.
Kode JavaScript yang ditulis di luar HTML disebut Eksternal
JavaScript dengan ektensi file .js. Dalam HTML, penulisan script diawali
dengan <script> </script>. Script yang akan dijalankan harus diletakkan
diantara <script> dan </script>. Tag <script> memiliki beberapa atribut,
namun yang terpenting adalah atribut language dan type. Karena JavaScript
130
Script dapat diletakkan di tag <body> dan atau di tag <head> pada bagian
halaman HTML.
Contoh 1
<script language="JavaScript" type="text/javascript">
alert("Belajar Javascript");
</script>
132
133
Contoh 2
var namakota="Malang";
Untuk memberikan komentar lebih dari satu baris, gunakan /* dan */. Jadi
script yang terletak di antara /* dan */ akan dianggap sebagai komentar.
Berikut contoh memberi komentar yang lebih dari satu baris.
Contoh 3
var namakota="malang", propinsi="Jawa Timur", kode="3", x=6.23;
Contoh 5
/*
Kode berikut akan ditulis ke heading dan paragraph.
Dan akan menampilkan halaman homepage
*/
document.getElementById("myH1").innerHTML="Selamat datang di
Homepage Saya";
document.getElementById("myP").innerHTML=" Ini adalah paragraph
saya.";
Deklarasi Variabel
Dalam JavaScript, setip kali akan menggunakan variabel, langkah
pertama yang harus dilakukan adalah mendeklarasikan keberadaan nama
variabel. Hal ini perlu dilakukan karena dengan adanya deklarasi nama
variabel, komputer akan menyediakan beberapa bagian memori untuk
menyimpan nilai pada nama variabel tersebut. Untuk mendeklarasikan
variabel digunakan kata var. Dalam mendeklarasikan nama variabel ada
beberapa aturan yang harus diperhatian, yaitu :
1. Nama variabel harus dimulai dengan huruf
2. Nama variabel juga dapat dimulai dengan $ dan _
3. Nama variabel adalah casesensitie (memperhatian besar kecilnya huruf)
4. Jangan gunakan Reserved Word atau kata tercadang sebagai nama
variabel. Kata tercadang adalah kata yang sudah built in dalam
Javascript yang sudah bermakna khusus. Pelanggaran hal ini akan
mengakibatkan error.
Contoh 1
var namakota;
namakota="Malang";
134
135
c.
Contoh 1
//untuk menambahkan dua atau lebih variabel tipe String,
gunakan operator + txt1="Selamat Datang";
txt2="Di Jurusan Matematika"; txt3=txt1+" "+txt2;
+
*
/
%
++
--
Deskripsi
Penjumlahan
Pengurangan
Perkalian
Pembagian
Modulus (Sisa bagi)
Increment
Decrement
Contoh
x=y+2
x=y 2
x=y*2
x=y/2
x=y%2
x=++y
x=y++
x=--y
x=y--
Nilai x
7
3
10
2.5
1
6
5
4
5
Nilai y
5
5
5
5
5
6
6
4
4
Contoh
Sama dengan
Hasil
x=5
x=y
x/=y
x=x/y
x=2
%=
x%=y
x=x%y
x=0
/=
+=
x+=y
x=x+y
x=15
-=
x -=y
x=x y
x=5
*=
x*=y
x=x*y
x=50
Contoh 2
//menambahkan String dan Bilangan
x=5+5;
y="5"+5;
z="angka "+5;
d. Operator Pembanding
Operator pembanding digunakan dalam pernyataan logika untuk
menentukan kesamaan atau perbedaan diantara nilai-nilai. Diberikan nilai
X = 5, Tabel 6.3 di bawah ini menjelaskan operator pembanding.
Tabel 6.3 Operator Pembanding pada JavaScript
Operator
==
===
!=
Deskripsi
Sama dengan
Sama persis dengan (nilai
dan tipe data)
Tidak sama dengan
Pembanding
Balikan
x==8
False
x==5
True
x==="5"
False
x===5
True
x!=8
True
136
!==
x!=="5"
True
x!==5
False
>
x>8
False
<
x<8
True
x>=8
False
x<=8
True
137
if(x == 10){
alert("Hai Apa kabar");
}
</script>
if(kondisi){
kode yang dijalankan jika benar
}else{
kode yang dijalankan jika salah
}
Contoh :
e.
Operator Logika
Operator logika digunakan untuk menunjukkan nilai kebenaran
antara beberapa variabel atau beberapa nilai. Diberikan nilai x = 6 dan y =
3, Tabel 6.4 di bawah menjelaskan operator logika.
<script> var x = 5;
if(x == 10){
alert("Hai Apa kabar");
}else{
alert("x tidak sama dengan 10");
}
</script>
Deskripsi
Pembanding
Balikan
&&
Dan
True
||
Atau
(x == 5 || y == 5)
False
Negasi/Ingkaran
!(x==y)
True
f.
Operator Bersyarat
Javascript juga memuat operator bersyarat yang memberikan suatu
nilai ke suatu variabel berdasarkan kondisi yang sama.
Sintaksnya:
NamaVariabel=(syarat)?nilai 1: nilai 2
Contoh:
<script> var x = 10;
if - else
Sintaks :
if - else if - else
Sintaks :
if(kondisi 1){
kode yang dijalankan
}else if(kondisi 2){
kode yang dijalankan
}else if(kondisi 3){
kode yang dijalankan
}else{
kode jika salah satu
benar
}
Contoh :
<script>
var nilai = 80;
if(nilai >= 85){
alert("A");
}else if(nilai >= 70 && nilai < 85){
alert("B");
}else if(nilai >= 60 && nilai < 70){
alert("C");
}else{
alert("D");
}
</script>
138
139
Contoh :
switch
Sama seperti if - else if - else, berguna jika membutuhkan kondisi yang
banyak.
<script>
for (i = 1; i <= 10; i++) {
document.write(i);
}
</script>
Sintaks :
switch(ekspresi){
case kondisi1
kode yang
break;
case kondisi2
kode yang
break;
case kondisi3
kode yang
break;
}
:
dijalankan jika kondisi1 benar;
:
dijalankan jika kondisi2 benar;
:
dijalankan jika kondisi3 benar;
while
Berguna untuk menjalankan suatu kode terus menerus selama kondisi
bernilai TRUE.
Sintaks :
while(kondisi){
kode untuk dijalankan;
}
Contoh:
Contoh :
<script>
var buah = "mangga";
switch (buah) {
case "apple":
alert("buahnya adalah apple");
break;
case "mangga":
alert("buahnya adalah mangga");
break;
case "jambu":
alert("buahnya adalah jambu"); break;
}
</script>
b. Perulangan
Perulangan adalah suatu blok perintah atau kode yang diulang selama
syarat bernilai TRUE. Dalam Javascript, perulangan ini dapat dinyatakan
dalam 2 bentuk, yaitu dengan for dan while.
6.6 Fungsi
Function adalah bagian subprogram yang melaksanakan suatu tugas
tertentu. Setiap saat ketika diperlukan, function ini dapat dipanggil dengan
cara menuliskan nama functionnya saja, disertai dengan parameter apabila
ada.
Sintaks:
function nama_fungsi(parameter){
kode-kode javascript
}
for
Berguna untuk perulangan dengan nilai awalan tertentu, dan dilakukan
hingga kondisi tertentu.
Contoh 1:
Sintaks :
Contoh 2:
<script>
function kalikan(x,y){
140
141
z = x * y;
alert("Hasil kali "+x+" * "+y+" = "+z);
}
kalikan(5,3);
</script>
Sintaknya:
nama_event="kode javascript"
Contoh:
<form>
<input type="button" name="test" value="Click me"
onclick="inform()">
</form>
<html>
<body>
<a href="http://www.google.com"
onclick="alert('hello')">google</a>
</body>
</html>
Pada contoh di atas ada sebuah link google, yang jika diklik (onclick) maka
akan dieksekusi kode JavaScript alert('hello').
Ada macam-macam event yang bisa terjadi pada halaman web atau objek
HTML, yaitu sebagai berikut:
onblur
onchange
onclick
ondblclick
onerror
onfocus
onkeydown
onkeypress
onkeyup
onload
onmousedown
onmousemove
onmouseout
onmouseover
onmouseup
onreset
onresize
onselect
onsubmit
onunload
2.
onload
Event onload akan dieksekusi jika suatu objek telah di-load, pada
contoh berikut menempatkan event onload pada tag <body>, artinya
jika halaman web sudah di-load semua, maka dieksekusi kode
JavaScript.
<html>
<head><title>Body onload example</title>
</head>
142
<body onload="alert('Halaman ini telah selesai di
loading')">
Welcome to my page
</body>
</html>
3.
4.
onunload
Biasanya berguna untuk mendeteksi jika user meninggalkan atau
menutup suatu halaman web.
<html>
<body onunload="alert('Thank you. Please come back to this
site and visit us soon, ok?')">
<h1>Welcome</h1>
</body>
</html>
Deskripsi
Menghasilkan jumlah karakter dari suatu string atau teks
143
big()
blink()
bold()
fixed()
fontcolor(warna)
fontsize(size)
italics()
link(url)
small()
strike()
sub()
sup()
toLowerCase()
toUpperCase()
Metode
Deskripsi
Output:
Menampilkan alert window yang berisi panjang teks: 8
anchor(nama)
Contoh 2:
<script>
var message="Welcome to our site!";
144
document.write(message);
</script>
Output:
Welcome to our site!
145
concat(teks1, teks2,...)
fromCharCode(c1, c2,...)
Contoh 3:
<script>
var message="Welcome to our site!"
document.write(message.toUpperCase())
</script>
indexOf(substr, [start])
Output:
WELCOME TO OUR SITE!
match(regexp)
Contoh 4:
<script>
var message="Welcome to our site!";
var format=message.toUpperCase();
var size=1;
for (i=0;i<message.length;i++){
document.write(format.charAt(i).fontsize(size).bold());
if (size<7){
size++
}else{
size=1
}
}
replace( regexp,
replacetext)
search(regexp)
slice(start, [end])
split(delimiter, [limit])
substr(start, [length])
Output:
LCO
WE
ME TO OUR SITE!
Deskripsi
Menghasilkan karakter pada posisi x dari suatu
string.
Menghasilkan nilai Unicode value dari karakter
pada posisi x dari suatu string.
146
<input type="submit" value="Submit">
</form>
<script type="text/javascript">
function checkemail(email){
if (email.indexOf("@")!=-1 && email.indexOf(".")!=-1)
alert("bagus!");
else
alert("Bukan email");
}
</script>
2.
Menghitung kata
Pada contoh berikut, melakukan penghitungan kata, caranya adalah
mengambil isi suatu textarea, lalu memotong-motong isinya dengan
metode split. Hasilnya dapat dilihat pada Gambar 6.1.
<form name="wordcount">
<textarea rows="12" name="wordcount2" cols="38"
wrap="virtual"></textarea><br>
<input type="button" value="Hitung kata" onClick="hitung()">
<input type="text" name="wordcount3" size="20">
</form>
<script type="text/javascript">
function hitung(){
var formcontent=document.wordcount.wordcount2.value;
isi=formcontent.split(" ");
document.wordcount.wordcount3.value=isi.length;
}
</script>
147
c.
Contoh:
window.open("http://www.google.com","windowku","width=300,
height=200");
Konfigurasi
Deskripsi
width
Lebar window
height
Tinggi window
Nilai
Lebar window dalam
pixel
Tinggi window dalam
pixel
148
toolbar
1 atau 0
menubar
scrollbars
Apakah menampilkan
scrollbars
1 atau 0
resizable
1 atau 0
Contoh:
<html>
<body>
<script>
function bukawindow(){
window.open("http://www.google.com","google","width=400,
height=300,toolbar=1");
}
</script>
<input type="button" onclick="bukawindow()" value="buka">
</body>
</html>
href="urlkamu.com">urlkamu</a>
149
Untuk mengakses window parent gunakan window.opener
Contoh:
induk.html
<html>
<head>
<title>Test</title>
<script language="javascript">
function buka(){
var x = window.open('anak.html', 'newWindow',
'height=300,width=300');
}
</script>
</head>
<body>
<form name=formulir>
<INPUT type=button value="buka window" name=submit1
onClick="buka();">
<input type=text name=kotak id=kotak>
</form>
</body>
</html>
anak.html
<html>
<head>
<title>testing</title>
<script language=javascript>
function setInduk(){
window.opener.document.getElementById("kotak").value =
document.getElementById("inputan").value;
}
</script>
</head>
<body>
<form name=myForm>
<input type=text name="inputan" id="inputan">
<input type=button value="Click Me" onClick="setInduk();">
</form>
</body>
</html>
window.print()
c.
150
Hasil:
151
Hasil:
Contoh:
<html>
<head>
<script type="text/javascript">
function getElement(){
var x=document.getElementById("myHeader") alert("Ini
adalah elemen " + x.tagName);
}
</script>
</head>
<body>
<h1 id="myHeader" onclick="getElement()">
Klik saya untuk lihat nama tag saya</h1>
</body>
</html>
Hasil:
<html>
<head>
<script type="text/javascript">
function lihatisi(){
isi = document.getElementById("kepala").innerHTML;
alert(isi);
}
function tukarisi(){
document.getElementById("kepala").innerHTML = "Tulisan
Ini diganti";
}
</script>
</head>
<body>
<h1 id="kepala">Selamat Datang user!!</h1>
<input type="button" onclick="lihatisi()" value="Lihat isi
H1">
<input type="button" onclick="tukarisi()" value="Tukar isi
H1">
</body>
</html>
152
atau
document.getElementById("namaid").style.namaStyle = "style yang
diset"
document.getElementById("namaid").namaStyle = "style yang
diset"
153
</tr>
</body>
</html>
Contoh:
<html>
<head>
<script type="text/javascript">
function check(){
154
document.getElementById("myCheck").checked=true
}
function uncheck(){
document.getElementById("myCheck").checked=false
}
</script>
</head>
<body>
<form>
<input type="checkbox" id="myCheck" />
<input type="button" onclick="check()" value="Check
Checkbox" />
<input type="button" onclick="uncheck()"
value="Uncheck Checkbox" />
</form>
</body>
</html>
155
b. Penanganan Input Radio
Contoh:
<html>
<head>
<script type="text/javascript">
function setkelamin(jenis){
document.getElementById("kelaminmu").value = jenis;
}
</script>
</head>
<body>
jenis Kelamin:
<br>
<input type=radio value="Laki-laki" name="kelamin"
onclick="setkelamin(this.value)">Laki-laki<br>
<input type=radio value="Perempuan" name="kelamin"
onclick="setkelamin(this.value)">Perempuan<br>
<input type=text id="kelaminmu">
</body>
</html>
c.
156
157
<html>
<head>
<script type="text/javascript">
function removeOption(){
var x=document.getElementById("mySelect");
x.remove(x.selectedIndex);
}
</script>
</head>
<body>
<form>
<select id="mySelect">
<option>Apple</option>
<option>Pear</option>
<option>Banana</option>
<option>Orange</option>
<option>Melon</option>
</select>
<input type="button" onclick="removeOption()" value="Remove
option">
</form>
</body>
</html>
<html>
<head>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$(".tombol1").click(function(){
$("p").hide(1000);
});
$(".tombol2").click(function(){
$("p").show(1000);
});
});
</script>
</head>
<body>
<p>Hello World!</p>
<button class="tombol1">Sembunyikan</button>
<button class="tombol2">Tampilkan</button>
</body>
</html>
6.12 jQuery
jQuery adalah JavaScript library, jQuery mempunyai semboyan "write
less, do more". jQuery dirancang untuk memperingkas kode-kode
JavaScript. jQuery adalah JavaScript library yang cepat dan ringan untuk
menangani dokumen HTML, menangani event, membuat animasi dan
interakasi AJAX. jQuery dirancang untuk mengubah cara menulis
JavaScript. Library jQuery mempunyai kemampuan :
Kemudahan mengakses elemen-elemen HTML
Memanipulasi elemen HTML
Memanipulasi CSS
Penanganan event HTML
Efek-efek JavaScript dan animasi
Modifikasi HTML DOM
AJAX
Menyederhanakan kode JavaScript lainnya
Untuk memulai mempelajari jQuery, diperlukan file jquery.js yang
dapat diperoleh dari situs http://www.jquery.com. Dimana setiap menulis
kode JavaScript dengan menggunakan jQuery harus menyertakan atau
memasukkan file jquery.js ke dalam kode JavaScript yang dibuat.
<script type="text/javascript" src="jquery.js"></script>
tag <p>
class="test"
$("#test").show()
158
Untuk melakukan hal tersebut, perlu menambahkan kode ready event untuk
dokumen.
$(document).ready(function(){
//kode anda di sini
});
Kode di atas berarti kode dijalankan apabila halaman HTML telah di-load
semuanya. Atau dengan kode JavaScript biasanya seperti ini :
window.onload = function(){ //kode anda di sini }
159
jQuery Attribute Selectors
jQuery mirip dengan XPath dalam hal memilih elemen berdasarkan atribut
yang ada.
$("[href]") memilih semua elemen dengan atribut href.
$("[href='#']") memilih semua elemen dengan atribut href bernilai="#".
$("[href!='#']") memilih semua elemen dengan atribut href dengan nilai
tidak sama dengan "#".
$("[href$='.jpg']") memilih semua elemen dengan atribut href yang
mengandung ".jpg".
Kode di atas berarti apabila terjadi event mengklik elemen yang mempunyai
class=tombol1, maka lakukan fungsi hide() terhadap semua element <p>.
Berikut ini beberapa event-event yang dapat terjadi dari elemen HTML.
$(document).ready(function)
$(selector).change(function)
$(selector).click(function)
$(selector).dblclick(function)
$(selector).keydown(function)
$(selector).keypress(function)
$(selector).keyup(function)
$(selector).load(function)
$(selector).mouseout(function)
$(selector).mouseover(function)
$(selector).select(function)
$(selector).submit(function)
$(selector).unload(function)
160
161
Berikut salah satu efek siap pakai yang disediakan oleh jQuery.
jQuery show() Effect
Berguna untuk menampilkan elemen yang tersembunyi. Untuk mengatur
elemen yang tersembunyi melalui CSS adalah display:none (bukan
visibility:hidden).
Sintaks:
$(selector).show(speed,callback)
Parameter
speed
callback
Deskripsi
Opsional. Menentukan kecepatan elemen muncul dari hidden
ke visible. Defaultnya adalah 0.
Nilainya bisa berupa:
milliseconds (contoh : 1500)
"slow"
"normal"
"fast"
Opsional. Suatu fungsi yang akan dijalankann apabila efek
show selesai dijalankan.
Contoh:
<html>
<head>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$(".tombol1").click(function(){
$("p").show(1000,tampilkanAlert);
});
});
function tampilkanAlert(){
alert("Paragraf sekarang muncul");
}
</script>
</head>
<body>
<p style="display:none">Ini adalah paragraph tersembunyi.</p>
<button class="tombol1">Show</button>
</body>
</html>
val()
Pada contoh di atas terdapat kode:
var isilagi = $("#isi").val();
Kode ini berarti kita mengambil nilai dari <input type="text" id="isi">
dan memasukkannya ke variabel isilagi. Sama dengan fungsi html(),
162
apabila memasukkan nilai dari val(), maka artinya me-set nilai dari elemen
yang dipilih. Biasanya val() digunakan pada elemen-elemen HTML
<input>, contoh :
$("#isi").val("hallo apa kabar");
dengan
attr()
Dengan menggunakan fungsi attr(), memberikan kemudahan untuk
mendapatkan nilai dari suatu properti elemen HTML yang dipilih.
Sintaks :
$(selector).attr(properties,nilai);
Parameter properties adalah nama properti yang ingin diambil atau di-set.
Contoh properti misalnya: id, class, title, src, href dan sebagainya.
Parameter nilai, apabila diisi artinya me-set nilai properti, apabila kosong
artinya mengambil nilai properti tersebut.
Contoh:
<html>
<head>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
$(function(){
$('.link').click(function(){
var id=$(this).attr("id");
var class=$(this).attr("class");
var href=$(this).attr("href");
alert(id);
alert(class);
alert(href);
});
});
</script>
<a href="http://ee.unud.ac.id" class="link" id="13">link</a>
</body>
</html>
addClass()
Berguna untuk menambahkan atau mengubah class untuk elemen yang
dipilih.
Sintaks :
$(selector).addClass(namakelas)
163
Contoh:
<html>
<head>
<style>
.besar
{
font-size:106px;
}
.kecil
{
font-size:12px;
}
</style>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
$(function(){
$('.ubahclass').click(function(){
$(".besar").addClass("kecil");
});
});
</script>
<a href="#" class="ubahclass" >Klik </a>
<div class="besar">ee.unud.ac.id</div>
</body>
</html>
Fungsi css() berguna untuk mendapatkan atau men-set sebuah properti CSS
atau lebih untuk elemen yang dipilih. Jika parameter name dan value diisi,
artinya kita me-set nilai dari properti CSS. Untuk me-set nilai-nilai untuk
properti CSS lebih dari satu, bisa menggunakan {properties}. Jika hanya
untuk mendapatkan nilai dari properti CSS yang diinginkan dari elemen
yang dipilih cukup mengisikan parameter name saja.
Contoh:
<html>
<head>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("#tombol1").click(function(){
164
$(".p1").css("color","red");
$(".p2").css({"color":"white","backgroundcolor":"#ff8954","font-family":"Arial","fontsize":"20px",
"padding":"5px"});
});
$("#tombol2").click(function(){
var nilai = $(".p1").css("color");
alert(nilai);
});
});
</script>
</head>
<body>
<p class="p1">Paragraf ini cuma berubah satu properti CSS</p>
<p class="p2">Paragraf ini cuma berubah banyak properti CSS</p>
<button id="tombol1">ubah CSS paragraf</button>
<button id="tombol2">Ambil nilai CSS paragraf 1</button>
</body>
</html>
165
Model interkasi antara user dan browser pada web konvensional
adalah sebagai berikut:
1. Setiap kali browser mengirimkan request ke server, user menunggu
sampai browser menerima response dari server. Setelah response
diterima, halaman browser akan di-refresh untuk menampilkan
response tersebut. Semakin kompleks request user, maka semakin lama
user menunggu. Proses ini disebut juga Click-Wait-Refresh
2. Model komunikasi antara browser dan server adalah synchronous
request/response. Artinya, setelah request dikirim ke server, aplikasi
tidak dapat digunakan user sampai rangkaian request dan response
selesai. Aplikasi dapat digunakan kembali setelah browser selesai
menerima response, yang ditampilkan dalam bentuk halaman baru.
Akibat dari model interaksi tersebut antara lain:
1. Selama halaman baru di-refresh, user kehilangan halaman sebelumnya,
juga kehilangan posisi terakhir dari posisi scroll (jika halaman tersebut
dapat di scroll).
2. Penggunaan aplikasi terasa lambat karena adanya waktu menunggu
response halaman baru. Selain itu, aplikasi terasa tidak interaktif dalam
memberikan feedback kepada user.
Berdasarkan masalah tersebut, dikembangkan beberapa alternatif
solusi dengan satu tujuan, yaitu membuat model interaksi aplikasi web
semakin interaktif. Salah satu solusi tersebut adalah Asysnchronous
Javascript and XML (AJAX). Keunggulan AJAX antara lain:
Menghemat waktu dalam menampilkan halaman yang berisi data yang
diminta user karena hanya data yang diminta saja yang dikirim dari
server.
Data terbaru dari server dapat ditampilkan di client tanpa user
melakukan refresh pada browser.
Tidak diperlukan plug-in khusus pada browser untuk menjalankan
karena diadopsi oleh browser-browser umum seperti Mozilla Firefox,
Microsoft Internet Explorer dan Opera.
AJAX dibangun dengan teknologi pemrograman web sebagai berikut:
1. JavaScript
JavaScript adalah bahasa pemrograman script yang berjalan di sisi
client. Kegunanaan utama dari script ini adalah untuk menjalankan
fungsi yang akan digunakan oleh halaman HTML dengan kemampuan
untuk mengakses Document Object Model (DOM). Penggunaannya
antara lain menampilkan jendela popup yang dapat diatur ukuran,
166
167
3.
4.
XMLHttpRequest
XMLHttpRequest adalah objek JavaScript yang memungkinkan
terjadinya komunikasi asynchronous antara browser dan server.
Komunikasi asynchronous memungkinkan user tetap dapat
menggunakan aplikasi selama browser mengirim request dan menerima
response dari server. Hal ini dimungkinkan karena tipe komunikasi ini
dilakukan di background, atau dengan kata lain permintaan data ke
server (data fetching) tidak menggangu tampilan aplikasi. Model
komunikasi asynchronous digambarkan pada Gambar 6.6.
XMLHttpRequest berkomunikasi dengan server menggunakan method
standar HTTP, yakni GET dan POST.
168
Pada model konvensional, client mengirimkan request HTTP, dan
server mengembalikan response beserta format tampilan halamannya yang
diwakili oleh file HTML dan CSS. Pada model AJAX, client yang
dilengkapi dengan AJAX Engine (berupa kode JavaScript) akan
mengirimkan request HTTP ke server. Server memberikan response, yang
dalam Gambar 2.6 berupa data berformat XML, yang akan diterima AJAX
Engine. AJAX Engine kemudian akan memproses data tersebut, lalu
menampilkannya ke client dengan pengaturan sesuai format HTML dan
CSS yang sudah diterima pada saat pertama kali client meminta request ke
server.
AJAX cocok digunakan untuk aplikasi web yang memiliki kebutuhan
berikut.
1. Validasi data ke server secara real time
Masukan user dapat segera divalidasi sebelum seluruh form dikirim.
Hal ini meningkatkan efisiensi transfer data karena sekarang data-data
pada form yang dikirim sudah valid.
2. Auto-completion
Selagi user mengetikkan masukan ke suatu form input dalam bentuk
satu huruf atau lebih, AJAX dapat memunculkan usulan dalam bentuk
kata/kalimat yang menyambung huruf tersebut sehingga membentuk
kata yang lengkap.
3. Melihat data detail
Berdasarkan pilihan user, detail dari suatu data tampilan dapat segera
diminta dari server dan ditampilkan.
4. Menampilkan data yang relatif cepat berubah.
Data skor pertandingan, bursa saham, prakiraan cuaca, atau nilai tukar
rupiah merupakan data yang relatif cepat berubah. Dengan AJAX, tidak
perlu me-refresh halaman untuk memperbarui data-data tersebut karena
tampilan user segera berubah menyesuaikan dengan data-data yang
baru.
5. Komponen GUI dan kontrol interaktif
Komponen GUI seperti menu, progress bar, atau struktur tree dapat
dioperasikan tanpa refresh halaman.
6.14 Rangkuman
1. JavaScript adalah bahasa script yang dapat berjalan pada sisi client
(browser) dan termasuk dalam kelompok client side scripting.
JavaScript bukanlah bahasa Java dan merupakan dua bahasa yang
berbeda. JavaScript diinterpretasikan oleh klien (kodenya bisa dilihat
pada sisi klien), sedangkan kode Java dikompilasi oleh pemrogram dan
hasil kompilasinyalah yang dijalankan oleh klien.
169
2.
3.
4.
5.
170
Bil 1 dan Bil 2 diinputkan melalui text box, diisi dengan angka, bila
tombol + atau atau x atau / ditekan, maka akan dilakukan proses
perhitungan dan hasilnya langsung ditampilkan pada text box hasil,
(bilangan hasil ini merupakan operasi aritmetika sesuai dengan tombol
yang ditekan).
6.16 Daftar Bacaan
1. Wilton, Paul dan McPeak, Jeremy. 2007. Beginning JavaScript, Third
Edition. Indiana: Wiley Publishing, Inc.
2. Morrison, Michael. 2008. Head First JavaScript. California: OReilly
Media, Inc.
3. Kadir, Abdul. 2009. Mastering Ajax dan PHP. Yogyakarta: Penerbit
Andi.
4. Desrizal. Javascript Guide. http://blog.codingwear.com. Diakses
tanggal 5 September 2014
5. Desrizal.
Panduan
Lengkap
PHP
Ajax
jQuery.
http://blog.codingwear.com. Diakses tanggal 5 September 2014
6. Yuana,
Rosihan
Ari.
2012.
Tutorial
JavaScript.
http://blog.rosihanari.net/download-tutorial-javascript-gratis/. Diakses
tanggal 6 September 2014
BAB VII
WEB CMS (CONTENT MANAGEMENT SYSTEM)
7
CMS (CONTENT MANAGEMENT SYSTEM)
RINGKASAN
Content management merujuk pada proses pembuatan, penyuntingan,
penyimpanan, pengaturan dan publikasi dari berbagai jenis konten/media
(teks, gambar, video, dan lain-lain). Content management system merupakan
suatu aplikasi yang digunakan untuk mengelola konten. Web CMS
merupakan sebuah aplikasi yang digunakan untuk membuat, mengelola,
menyimpan, dan mempublikasikan konten melalui halaman web. Web CMS
memisahkan konten dari mekanisme penyajiannya, dimana pengguna dapat
mengelola kontennya tanpa membutuhkan pengetahuan teknis mengenai
HTML maupun pemrograman web.
7.1 CMS (Content Management System)
Content pada dasarnya adalah semua jenis atau unit informasi digital
yang dapat berupa teks, gambar, grafik, video, suara, dokumen, dan lain
sebagainya atau apapun yang dapat dikelola dalam format elektronik.
Content Management diartikan sebagai pengelolaan secara efektif
setiap content dengan menggabungkan suatu aturan, proses dan alur kerja.
Content management merujuk pada proses pembuatan, penyuntingan,
penyimpanan, pengaturan dan publikasi dari berbagai jenis konten/media
(teks, gambar, video, dan lain-lain). Sedangkan content management system
merupakan suatu alat yang digunakan untuk mengelola konten. CMS adalah
aplikasi komputer dengan proses/alur kerja tertentu yang digunakan untuk
membuat, menyunting, mengelola, dan mempublikasikan berbagai jenis
media digital dan teks elektronik. Sebuah CMS bertanggung jawab atas
pengumpulan, manajemen, dan publikasi suatu konten informasi.
Sebuah CMS terdiri dari berbagai subsistem, adapun tiga subsistem
utama yang ada dalam sebuah CMS yakni: Collection, Management dan
Publishing. Struktur dari sebuah CMS dapat dilihat pada Gambar 7.1.
1. Collection
Merupakan sebuah subsistem yang menangani pembuatan atau upaya
untuk memperoleh/menyediakan informasi. Subsistem ini menyediakan
dukungan untuk proses pembuatan konten, alur kerja, sindikasi dan
integrasi sumber eksternal. Selain itu, subsistem ini juga memberikan
dukungan kepada proses konversi antara format yang berbeda serta
untuk penggabungan isi dari sumber yang berbeda dalam struktur
tertentu.
171
172
173
2. Management
Merupakan subsistem yang menangani pengelolaan dan pengendalian
repositori informasi, kelompok pengguna, dan dukungan proses terhadap
subsistem lainnya. Subsistem ini menangani pendefinisian dan
pengendalian alur informasi yang digunakan oleh subsistem lainnya,
serta definisi parameter untuk fungsi sistem.
3. Publishing
Merupakan subsistem yang menangani pengelolaan publikasi dari
produk informasi digital baik secara otomatis atau semi otomatis.
Subsistem ini menggunakan model berbasis template dan memberikan
pilihan personalisasi bagi pengguna serta kemungkinan publikasi untuk
berbagai platform.
Adapun beberapa fitur yang terdapat pada Web CMS adalah sebagai
berikut.
1. Pengaturan template
Web CMS menyediakan fitur untuk melakukan pengaturan template.
Konten akan ditampilkan sesuai template yang digunakan. Pengguna
juga dapat menambahkan template baru dan mengaktifkan template
tertentu yang dipilih.
2.
3.
4.
5.
6.
7.
174
175
Penyuntingan konten
Konten yang terpisah dari mekanisme penyajian, membuat konten
menjadi lebih mudah dan cepat untuk diubah dan dimanipulasi.
Sebagian besar aplikasi web CMS menyertakan tool editor WYSIWYG
yang mengakomodasi pengguna untuk membuat dan merubah konten
dengan mudah.
Perluasan fungsional (plugin/modul)
Sebagian besar aplikasi web CMS menyediakan fitur plugin atau modul
yang dapat dengan mudah di-install untuk menambahkan suatu
fungsionalitas aplikasi.
Upgrade aplikasi
Web CMS menyediakan fasilitas untuk dapat menerima informasi
update aplikasi dan juga melakukan upgrade aplikasi web CMS
tersebut.
Manajemen proses/alur kerja
Merupakan fitur untuk pengaturan proses/alur kerja dalam CMS.
Sebagai contoh, pembuat konten/penulis dapat membuat atau
mengirimkan artikel, tetapi artikel tersbut dapat dipublikasikan setelah
redaktur menyetujuinya. Dalam hal ini, terkait pula dengan pengaturan
hak akses pengguna.
Manajemen dokumen
Web CMS menyediakan cara untuk mengelola siklus hidup dokumen
dari pembuatan dokumen, revisi, publikasi, arsip, dan penghapusan
dokumen.
Virtualisasi konten
Web CMS menyediakan sarana yang memungkinkan pengguna untuk
dapat bekerja dengan salinan virtual dari konten, misalnya dokumen.
Hal ini juga, memungkinkan perubahan pada beberapa sumber daya
yang saling tekait untuk dapat dilihat maupun dijalankan secara
bersama.
3.
4.
5.
2.
3.
4.
176
177
7.5 Rangkuman
1. Content pada dasarnya adalah semua jenis atau unit informasi digital
yang dapat berupa teks, gambar, grafik, video, suara, dokumen, dan lain
sebagainya atau apapun yang dapat dikelola dalam format elektronik.
2. Content management merujuk pada proses pembuatan, penyuntingan,
penyimpanan, pengaturan dan publikasi dari berbagai jenis
konten/media (teks, gambar, video, dan lain-lain). Sedangkan content
management system merupakan suatu alat yang digunakan untuk
mengelola konten.
3. Sebuah CMS terdiri dari berbagai subsistem, adapun tiga subsistem
utama yang ada dalam sebuah CMS yakni: Collection, Management
dan Publishing.
4. Web CMS merupakan sebuah aplikasi yang digunakan untuk membuat,
mengelola, menyimpan, dan mempublikasikan konten melalui halaman
web. Secara umum, sebuah web CMS memiliki dua buah elemen, yakni
Content Management Application (CMA) dan Content Delivery
Application (CDA).
5. Ada beberapa pendekatan yang digunakan dalam penyediaan suatu
aplikasi CMS, yakni: pengembangan internal untuk aplikasi CMS,
melakukan pembelian untuk aplikasi CMS, melakukan Outsourcing
untuk pengembangan aplikasi CMS, dan menggunakan aplikasi open
source CMS.
7.6 Tugas/Soal Latihan
1. Jelaskan apa yang dimaksud dengan CMS (Content Management
System) dan apa yang dimaksud dengan web CMS!
2. Sebutkan dan jelaskan tiga subsistem utama yang ada dalam sebuah
CMS!
3. Apa perbedaan antara elemen Content Management Application (CMA)
dengan Content Delivery Application (CDA) dalam web CMS?
4. Sebutkan dan jelaskan beberapa fitur yang terdapat pada web CMS!
5. Sebutkan kelebihan dan kekurangan dari aplikasi CMS!
6. Sebutkan dan jelaskan beberapa pendekatan yang digunakan dalam
penyediaan suatu aplikasi CMS!
7.7 Daftar Bacaan
1. Boiko, Bob. 2005. Content Management Bible, 2nd Edition. Indiana:
Wiley Publishing, Inc.
2. Mican, Daniel, Tomai, Nicolae, and Coros, Robert Ioan. 2009. Web
Content Management Systems, a Collaborative Environment in the
Information Society. Informatica Economica Journal Vol. 13(2): 20-31
178
3.
4.
BAB VIII
PENGENALAN WEB FRAMEWORK
DENGAN CODEIGNITER
8
WEB FRAMEWORK DENGAN CODEIGNITER
RINGKASAN
Framework dapat diartikan sebagai koleksi atau kumpulan potonganpotongan program yang disusun atau diorganisasikan sedemikian rupa,
sehingga dapat digunakan untuk membantu membuat aplikasi utuh tanpa
harus membuat semua kodenya dari awal. CodeIgniter (CI) merupakan salah
satu web framework PHP yang banyak digunakan saat ini. CodeIgniter
dibuat berdasarkan kaidah Model-View-Controller (MVC). Dengan MVC,
maka memungkinkan pemisahan antara layer application logic dan
presentation. CodeIgniter menyediakan sekumpulan library yang dapat
digunakan untuk membantu dalam pengembangan aplikasi berbasis web.
8.1 Pengenalan Framework
Framework adalah sebuah struktur konseptual dasar yang digunakan
untuk memecahkan sebuah permasalahan. Framework dapat diartikan pula
sebagai koleksi atau kumpulan potongan-potongan program yang disusun
atau diorganisasikan sedemikian rupa, sehingga dapat digunakan untuk
membantu membuat aplikasi utuh tanpa harus membuat semua kodenya dari
awal.
Salah satu alasan mengapa menggunakan framework terutama dalam
membangun sebuah aplikasi adalah kemudahan yang ditawarkan. Dalam
sebuah framework biasanya sudah tersedia struktur aplikasi yang baik,
standard coding, best practice dan design pattern dan common function.
Dengan menggunakan framework pengembang aplikasi dapat langsung
fokus kepada business process yang dihadapi tanpa harus berpikir banyak
mengenai masalah struktur aplikasi, standar coding dan lain-lain.
Dengan memanfaatkan design pattern dan common function yang telah
ada di dalam framework maka hal tersebut dapat mempercepat proses
pengembangan aplikasi. Pengembang aplikasi tidak perlu membuat sesuatu
fungsionalitas yang bersifat umum. Tanpa disadari ketika membangun
sebuah aplikasi banyak fungsionalitas yang telah dibangun itu ternyata sama
atau berulang-ulang. Dengan pengelempokkan tersebut dapat mempercepat
pengembangan aplikasi.
Selain kemudahan dan kecepatan dalam membangun sistem, dengan
menggunakan framework tertentu, tim pengembang aplikasi dapat
menyeragamkan cara untuk mengimplementasikan kode program. Dengan
framework semua anggota tim pengembang aplikasi akan dipaksa untuk
patuh kepada sebuah kesepakatan. Selain itu juga akan memudahkan
179
180
pengembang lain untuk mempelajari dan mengubah aplikasi yang telah
dibuat apabila kode yang dihasilkan konsisten dan patuh pada sebuah aturan
tertentu.
8.2 Pengenalan CodeIgniter
CodeIgniter (CI) merupakan sebuah web application framework yang
bersifat open source dengan menggunakan PHP, suatu kerangka untuk
bekerja atau membuat aplikasi dengan menggunakan PHP yang lebih
sistematis. Tujuan utama pengembangan Codeigniter adalah untuk
membantu developer untuk mengerjakan aplikasi lebih cepat daripada
menulis semua kode dari awal. Codeigniter menyediakan berbagai macam
library yang dapat mempermudah dalam pengembangan aplikasi.
CodeIgniter pertama kali dibuat oleh Rick Ellis dan diperkenalkan kepada
publik pada tanggal 28 Pebruari 2006 dan saat ini versi rilis terakhir adalah
2.2.1
yang
dapat
diperoleh
dari
situs
resminya
(http://www.codeigniter.com/)
CodeIgniter sangat ringan, terstruktur, mudah dipelajari, dokumentasi
lengkap dan dukungan yang luar biasa dari forum CodeIgniter. Selain itu
CodeIgniter juga memiliki fitur-fitur lainya yang sangat bermanfaat, antara
lain:
Menggunakan Pattern MVC. Dengan menggunakan pattern MVC ini,
struktur kode yang dihasilkan menjadi lebih terstruktur dan memiliki
standar yang jelas.
URL Friendly. URL yang dihasilkan sangat url friendly. Pada
CodeIgniter diminimalisasi penggunaan $_GET dan digantikan dengan
URI (Universal Resource Identifier).
Kemudahan. Kemudahan dalam mempelajari, membuat library dan
helper, memodifikasi serta meng-integrasikan Library dan helper.
Jika membandingkan antara CodeIgniter dengan frameworkframework lainnya maka beberapa poin yang membuat CodeIgniter unggul
adalah:
Kecepatan. Berdasarkan hasil benchmark CodeIgniter merupakan salah
satu framework PHP tercepat yang ada saat ini.
Mudah dimodifikasi dan beradaptasi. Sangat mudah memodifikasi
behavior framework ini.Tidak membutuhkan server requirement
dengan spesifikasi yang rumit serta mudah mengadopsi library lainnya.
Dokumentasi lengkap dan jelas. CodeIgniter telah menyediakan
sebuah panduan yang lengkap mengenai CodeIgniter yang dapat dilihat
pada bagian user guide.
181
182
183
Jika dipetakan, alur kerja aplikasi berbasis MVC akan tampak seperti
Gambar 8.2. Browser berinteraksi melalui controller. Controller-lah yang
akan menerima dan membalas semua request dari browser. Untuk data
maka controller akan meminta ke model dan untuk UI/template akan
meminta ke view. Jadi otak dari aplikasi ada di controller, antarmuka
aplikasi ada di view dan data ada di model. Ketika browser meminta
sebuah halaman web maka router akan mencarikan controller mana yang
harus menangani request tersebut. Setelah itu barulah controller
menggunakan model untuk mengakses data dan view untuk menampilkan
data tersebut.
Berikut pada Gambar 8.3 merupakan alur kerja bagaimana CodeIgniter
mengimplementasi model MVC.
184
185
8.4.1 Objek
Sederhananya, sebuah obyek adalah kumpulan dari variabel dan fungsi
yang dibungkus menjadi satu entitas. Entitas tersebut dapat berupa variabel
biasa. Sebuah obyek diciptakan melalui sebuah kelas atau dengan istilah
instance of class. Objek memiliki 2 elemen utama, yaitu:
1. Attributes atau Properties merupakan nilai-nilai yang tersimpan
dalam objek tersebut dan secara langsung maupun tidak langsung
menentukan karakteristik dari obyek tersebut.
2. Method merupakan suatu aksi yang akan dijalankan atau dikerjakan
oleh obyek tersebut.
8.4.2 Class
Class dapat didefinisikan sebagai struktur data atau cetak biru dari
suatu obyek. Lebih jelasnya adalah sebuah bentuk dasar atau blueprint yang
mendefinisikan variabel, method umum pada semua obyek. Obyek sendiri
adalah kumpulan variabel dan fungsi yang dihasilkan dari template khusus
atau disebut class. Obyek adalah elemen pada saat run-time yang akan
diciptakan, dimanipulasi, dan dibuang/di-destroy ketika eksekusi. Adapun
class merupakan definisi statik dari himpunan obyek yang mungkin
diciptakan sebagai instantiasi dari class.
Perhatikan contoh class di berikut ini.
<?php
/** Contoh kelas **/
class Kendaraan{}
/*** end of class ***/
?>
<?php
/** contoh kelas **/
class kendaraan{
/*** property class ***/
private $warna;
private $jumlah_pintu; private $jumlah_roda; public $harga;
public $merk;
/*** method class ***/
public function construct(){
echo "ini adalah object kendaraan. <br />";
}
public function set_harga($harga){
$this->harga = $harga;
}
public function show_harga(){
echo "harga kendaraan : Rp.".$this->harga.". <br />";
}
public function jalan(){
echo "brrroooooom!!!";
}
}
/*** end of class ***/
/** contoh object **/
#membuat object $saya_adalah_object dari class kendaraan
$saya_adalah_object= new kendaraan;
$saya_adalah_object->set_harga(100000);
$saya_adalah_object->show_harga();
$saya_adalah_object->jalan();
?>
186
187
yang ada di dalam suatu kelas hanya dapat diakses di dalam kelasnya.
Sedangkan pada method atau properti yang bersifat public berarti method
atau properti tersebut dapat diakses di dalam dan di luar kelas. Properti yang
bersifat protected berarti method atau properti tersebut hanya dapat diakses
di dalam kelasnya dan pada kelas turunannya.
dari kelas induknya, pada kelas anak juga dapat ditambahkan fungsi baru
yaitu fungsi Hai.
8.4.3 Inheritance
Inheritance atau dikenal sebagai pewarisan adalah suatu cara untuk
membuat sebuah kelas yang baru dengan menggunakan kelas lain yang
sebelumnya sudah dibuat. Pada hubungan inheritance, sebuah class turunan
mewarisi kelas leluhur (parent class). Oleh karena mewarisi, maka semua
atribut dan method class dari induk akan dibawa (kecuali yang bersifat
private), secara intrinsik menjadi bagian dari class anak. Adapun
keuntungan yang didapat dari inheritance adalah dapat menambah fitur baru
pada kelas anak dan mengubah atau mengganti fitur yang diwarisi dari kelas
induk. Adapun contoh kelas yang menggunakan konsep inheritance adalah
sebagai berikut.
<?php
/* inheritance.php */
class Bapak {
private $nama ="Bapak"; function Bapak($n) {
$this->nama = $n;
}
function Hallo() {
echo "Halo, saya $this->nama <br>";
}
}
class Anak extends Bapak {
function Hai(){
echo "hai dari kelas anak";
}
}
$test = new Anak("Anak dari Bapak");
$test->Hallo();
?>
188
189
Ada 3 direktori sertaan dari CI, yakni application, system, dan
user_guide. Dari ketiga direktori tersebut, maka direktori user_guide dapat
dihapus, jika proses pembuatan aplikasi dengan Ci telah selesai. Direktori
user_guide hanya berisi dokumentasi bagaimana menggunakan CI; direktori
ini perlu ada untuk membantu pengembang aplikasi untuk mengetahui cara
penggunaan library class dan fungsi yang dimiliki CI. Apabila memiliki
rujukan di tempat lain untuk dokumentasinya, amak direktori ini dapat
dihapus karena ukurannya cukup besar.
Direktori system merupakan direktori inti dari semua librari class dan
fungsi yang dimiliki oleh CI untuk dapat digunakan untuk mengembangkan
aplikasi. Direktori application merupakan direktori tempat pemrogram
membuat aplikasi dengan menggunakan CI, termasuk di dalamnya
pemrogram dapat menambahkan librari class dan fungsi tambahan, apabila
librari class dan fungsi yang disediakan oleh CI tidak memadai untuk
kebutuhan program yang dibuat.
Selain ketiga direktori yang telah disebutkan, maka ada sebuah file
yang tidak boleh dihapus, yaitu file index.php. File index.php inilah yang
akan melakukan proses pengarahan (dispatch) suatu aplikasi yang dibuat
untuk dijalankan; jika tidak disebutkan, maka file index.php ini akan
menjalankan aplikasi default yang telah disediakan atau didefinisikan oleh
pemrogram.
8.5.2 Konfigurasi CodeIgniter
Walaupun CodeIgniter dapat berjalan dengan konfigurasi default,
tetapi untuk sebuah aplikasi yang nyata harus tetap melakukan konfigurasi,
setidaknya pada bagian base_url dan router. Pengaturan base_url dan
router sangat berguna ketika proses pengembangan aplikasi yang banyak
menggunakan helper dan library.
File konfigurasi terletak dalam folder application/config. Adapun filefile yang terdapat dalam direktori tersebut dan sering digunakan antara lain:
1. config.php.
Pada file konfigurasi config.php berisi konfigurasi secara umum
mengenai CodeIgniter, seperti peletakkan baseurl, suffix, front
controller, serta metode yang digunakan URI dan lain-lain. Adapun
konfigurasi-konfigurasi yang perlu diperhatikan adalah:
$config[base_url] - Konfigurasi ini berisi alamat URL sebuah
aplikasi. Jika menggunakan helper URL maka konfigurasi ini
harus diset dengan benar. Contoh: aplikasi akan diakses dengan
menggunakan domain www.contoh.com/app_ci maka pada
konfigurasi ini harus diisikan:
$config['base_url']="http://www.contoh.com/app_ci/";
190
191
Tetapi jika ingin menggunakan base url yang lebih fleksibel maka
dapat menggantinya dengan variabel server. Contoh:
$config['base_url']="http://".$_SERVER['HTTP_HOST'].
str_replace(basename($_SERVER['SCRIPT_NAME']),"",
$_SERVER['SCRIPT_NAME']);
2.
$autoload['libraries']=array('database','pagination')
3.
routes.php
Konfigurasi pada file ini bertujuan untuk menentukan tujuan routing
oleh library route akan dilakukan. Hal paling sederhana yang harus
dilakukan adalah mengubah default controller (controller yang akan
dijalankan ketika tidak ada URI yang diberikan oleh browser).
Misalnya website beralamat: www.situsku.web.id, maka ketika
membuka website tersebut secara otomatis CodeIgniter akan
mengalihkan ke controller default, karena tidak disertakan di dalam
URL. Adapun yang perlu diubah adalah
$route['default_controller']="welcome";
192
8.5.3 Kesepakatan Coding (Coding Standart) CodeIgniter
Sebelum melakukan coding menggunakan CodeIgniter maka ada
baiknya untuk mengetahui apa saja kesepakatan-kesepakatan yang ada pada
CodeIgniter. Kesepakatan-kesepakatan tersebut akan membuat kode yang
dibuat lebih mudah dipahami oleh pengembang lainnya. Adapun
kesepakaatan tersebut diantaranya:
1. PHP Closing Tag
Ketika akan menulis library, helper, controller ataupun model maka
sebaiknya tidak menggunakan tanda penutup pada dokumen php ?>.
Hal tersebut dilakukan untuk mencegah adanya spasi atau karakter yang
tidak diinginkan pada kode sehingga membuat aplikasi error.
Pengembang aplikasi juga disarankan untuk memberikan infomasi
tentang akhir dokumen dan berisi path dokumen tersebut.
Contoh salah:
<?php echo "Here's my code!"; ?>
Contoh Benar:
<?php echo "Here's my code!";
2.
Contoh benar:
class Super_class
193
//kurang underscore
function getfileproperties()
//menggunakan CamelCase
function getFileProperties()
//terlalu panjang
get_the_file_properties_from_the_file()
Contoh tepat:
//deskriptif,menggunakan underscore,dan
function get_file_properties()
huruf kecil
194
dalam CodeIgniter seperti Model, View, Library, dan Helper. Cara
penggunaannya adalah:
$this->load->library('nama_library');
$this->load->helper('nama_helper');
Nama library dan helper harus diisi dengan huruf kecil. Ketika sebuah
library sudah di-load maka library tersebut menjadi property pada
object Controller. Adapun cara penggunaannya adalah sebagai berikut.
195
$this->nama_library->fungsi();
Untuk lebih jelasnya, dapat dilihat pada contoh kode berikut ini.
<?php
class Hello extends CI_Controller{
function __construct()
{
parent::__construct();
}
function index(){
echo "<h1>Hello CodeIgniter!</h1>";
}
}
/* End of file hello.php */
/* Location: ./application/controllers/hello.php */
196
Secara sekilas, maka controller yang dibuat adalah seperti
membungkus program script hello.php dengan pernyataan class yang di
dalamnya terdapat fungsi index().
2.
load->view().
197
Dengan variabel
Pemisahan menjadi controller dan view, sebenarnya bukan sekedar
memisahkan 2 buah file saja. Tetapi dapat dibuat untuk menjadi lebih
fleksibel, dimana controller tidak sekedar menjadi pemanggil dan view
tidak sekedar untuk menampilkan dokumen HTML saja.
Contoh controller dan view berikut digunakan untuk menunjukkan
tidak sekedar pemisahan 2 file saja, tetapi kita bisa menunjukkan sedikit
fleksibilitas, yaitu adanya peluang kemudahan untuk melakukan
perubahan atau perbaikan aplikasi untuk menampilkan pesan yang
diinginkan.
Berikut kode untuk controller, dengan nama file hellovar.php dan
disimpan pada direktori: c:\xampp\htdocs\ci221\application\controllers.
<?php
class Hellovar extends CI_Controller{
function __construct()
{
parent::__construct();
}
function index(){
$data=array();
$data["hello"]="Hello CodeIgniter!";
$this->load->view("view_hellovar",$data);
}
}
/* End of file hellovar.php */
/* Location: ./application/controllers/hellovar.php */
198
Pada file view, jadi ada sebuah variabel dengan nama $hello
menggantikan tulisan "Hello CodeIgniter!". CI memudahkan
pemrogram untuk mendefinisikan setiap variabel yang akan muncul di
dalam file view sebagai key dari variabel array yang akan menjadi
parameter dari $this->load->view(). Pada contoh sebelumnya,
terdapat key "hello" dalam array $data, yang menjadi parameter dari
load->view(). Pada view, pemrogram dapat menggunakan key dari
elemn array tersebut sebagai variabel. Dengan teknik seperti ini,
pemrogram dapat mendefinisikan banyak variabel untuk suatu view
dengan membuat banyak key dalam array yang akanmenjadi parameter
load->view().
Berikut ini pada Gambar 8.8 merupakan tampilan aplikasi setelah
dijalankan
dengan
memasukkan
URL
pada
browser:
http://localhost/ci221/index.php/hellovar.
199
function katakata(){
$kalimat = $this->vhello." I'm from model";
return $kalimat;
}
}
/* End of file model_hello.php */
/* Location: ./application/models/model_hello.php */
Berikut kode untuk view dengan nama file view_hellovar.php dan disimpan
pada direktori: c:\xampp\htdocs\ci221\application\views.
<html>
<head>
<title>Hello CodeIgniter!</title>
</head>
<body>
<h1><?php echo $hello1; ?> </h1>
<h2><?php echo $hello2; ?> </h2>
</body>
</html>
Berikut kode untuk controller, dengan nama file helloprop.php dan disimpan
pada direktori: c:\xampp\htdocs\ci221\application\controllers.
<?php
class Helloprop extends CI_Controller{
function __construct()
{
parent::__construct();
}
function index(){
$this->load->model("model_hello");
$data = array();
$data["hello1"]=$this->model_hello->vhello;
$data["hello2"]=$this->model_hello->katakata();
$this->load->view("view_hellovar",$data);
}
}
/* End of file helloprop.php */
/* Location: ./application/controllers/helloprop.php */
200
Berikut ini pada Gambar 8.9 merupakan tampilan aplikasi setelah dijalankan
dengan memasukkan URL pada browser:
http://localhost/ci221/
index.php/helloprop.
201
2.
Melakukan konfigurasi
Setelah pembuatan database selesai, lakukan konfigurasi untuk
aplikasi. File konfigurasi ada pada folder application\config. Berikut
beberapa konfigurasi yang dilakukan.
Konfigurasi pada file autoload.php
Pada file autoload.php, carilah bagian Auto-load Libraries, kemudian
ubah konfigurasi menjadi:
$autoload['libraries'] = array('database');
1.
3.
Membuat model
Setelah semua pengaturan dilakukan, langkah berikutnya adalah
membuat file model. Nama file model-nya adalah mahasiswa_model.php
yang disimpan pada direktori: c:\xampp\htdocs\ci221\application\models.
<?php
class Mahasiswa_model extends CI_Model{
function tampilData()
{
$query=$this->db->get('tb_mahasiswa');
if ($query->num_rows()>0)
{
return $query->result();
}
else{
return array();
}
}
}
/* End of file model_mahasiswa.php */
/* Location: ./application/models/model_mahasiswa.php */
202
203
Fungsi tampil data yang ada pada class Mahasiswa_model adalah untuk
mengambil seluruh data mahasiswa yang ada pada database dan mereturnkannya dalam bentuk array.
<td>NIM</td>
<td>Nama</td>
<td>Jurusan</td>
<td>Alamat</td>
</tr>
<tr>
<?php foreach ($data as $row):?>
<td><?php echo $row->nim;?></td>
<td><?php echo $row->nama;?></td>
<td><?php echo $row->jurusan;?></td>
<td><?php echo $row->alamat;?></td>
</tr>
<?php endforeach;?>
</table>
4.
Membuat controller
Pada file controller yang dibuat akan melakukan load terhadap model
yang telah dibuat sebelumnya. Hal ini dimaksudkan untuk mengambil data
mahasiswa dan kemudian menampilkannya melalui view. Berikut
merupakan kode dari file controller yang disimpan dengan nama
mahasiswa.php pada direktori: c:\xampp\htdocs\ci221\application\
controllers.
<?php
class Mahasiswa extends CI_Controller{
function __construct()
{
parent::__construct();
// konstruktor: berbagai perintah yang ada di dalam
// fungsi ini akan selalu dipanggil di saat objek
// Mahasiswa dibuat
</body>
</html>
$this->load->model('mahasiswa_model');
}
function index(){
$data['data']=$this->mahasiswa_model->tampilData();
$this->load->view('mahasiswa_view',$data);
}
}
/* End of file mahasiswa.php */
/* Location: ./application/controllers/mahasiswa.php */
5.
Membuat view
Langkah terakhir adalah membuat file view. Kode pada file view
dimaksudkan untuk menampilkan seluruh data mahasiswa dalam bentuk
tabel. Berikut merupakan kode dari file view yang disimpan pada direktori:
c:\xampp\htdocs\ci221\application\views dengan nama mahasiswa_
view.php.
<!DOCTYPE HTML>
<html>
<head>
<title>Data Mahasiswa</title>
</head>
<body>
<table width="40%" border="1">
<tr>
204
2.
3.
4.
205
4.
207
BAB IX
WEB SERVICES
9
WEB SERVICES
RINGKASAN
SOA atau Service Oriented Architecture adalah sebuah arsitektur yang
merepresentasikan fungsi dalam bentuk layanan. Salah satu teknologi yang
dapat digunakan untuk mengimplementasikan SOA adalah web service.
Web service adalah suatu sistem perangkat lunak yang dirancang untuk
mendukung interoperabilitas dan interaksi antar sistem pada suatu jaringan.
Web service menyediakan layanan (dalam bentuk informasi) kepada sistem
lain, sehingga sistem lain dapat berinteraksi dengan sistem tersebut melalui
layanan-layanan (service) yang disediakan.
9.1 SOA (Service Oriented Architecture)
SOA atau Service Oriented Architecture adalah sebuah arsitektur yang
merepresentasikan fungsi dalam bentuk layanan. Fungsi menunjukkan
abstraksi aktivitas sesuatu yang secara alami dilakukan oleh
aplikasi/program, individu, dan organisasi. Layanan mengabstraksi fungsi
dan dapat menunjukkan bentuk hubungan yang bermakna antara dua pihak
yang berkomunikasi (peminta dan penyedia layanan).
SOA juga dapat diartikan sebagai arsitektur software yang dibangun
menggunakan prinsip-prinsip perancangan berorientasi service (layanan),
sedangkan orientasi service merupakan konsep dalam rekayasa software
yang merepresentasikan pendekatan berbeda untuk memisahkan
kepentingan. Hal ini berarti bahwa fungsionalitas sistem dipecah ke dalam
unit logik yang lebih kecil yang dinamakan service. Service-service ini lepas
satu sama lain, tetapi mempunyai kemampuan untuk berinteraksi satu sama
lain melalui mekanisme komunikasi tertentu. Karena hal tersebut, SOA
didefinisikan dengan komponen service, descriptions, dan messages.
Service berkomunikasi dengan yang lain melalui message yang
memungkinkan interaksi antar services, yang ditetapkan oleh description.
Dua service berkomunikasi satu sama lain yang diacu sebagai service
requestor dan service provider. Service requestor adalah service yang
memanggil service lain, sedangkan yang dipanggil disebut service provider.
Service sendiri dapat dipandang sebagai enkapsulasi lojik dari satu
atau sekumpulan aktivitas tertentu (seperti terlihat pada Gambar 9.1).
Otomasi bisnis merupakan sekumpulan aktivitas yang disusun dalam
langkah-langkah sebagai implementasi proses bisnis. Setelah seluruh
permasalahan dapat dibagi dalam beberapa service, solusi dari permasalahan
tersebut harus bisa diselesaikan dengan memungkinkan seluruh service
berpartisipasi dalam sebuah orkestrasi. Untuk itu ada beberapa
206
7.
208
209
2.
3.
4.
210
211
212
213
Standard Header
Elemen root
<to>Agus Purwanto</to>
<from>Arsa Suyadnya</from>
<subject>Hallo</subject>
<message>Selamat Pagi</message>
</email>
Elemen child
Sifat XML yang mudah untuk dibaca dan ditulis baik oleh manusia
maupun komputer, maka XML merupakan sebuah format yang dapat
digunakan untuk pertukaran data (interchange) antar aplikasi dan platform
yang berbeda (platform independent). Metode deskripsi data XML (selfdescribing) membuatnya menjadi pilihan efektif untuk bisnis ke bisnis,
solusi antar jaringan, e-business, dan aplikasi terdistribusi. XML juga
bersifat dapat diperluas (extensible), dapat digunakan pada semua bahasa
214
215
9.5 WSDL (Web Service Description Language)
WSDL merupakan kependekan dari Web Services Description
Language. WSDL adalah bahasa berbasis XML untuk mendeskripsikan web
services dan bagaimana untuk mengaksesnya. WSDL membantu konsumer
web service untuk memakai/menggunakan layanan web service. WSDL
menspesifikasikan lokasi service dan operasi (methods) yang disediakan
oleh web service.
Sebagai protokol komunikasi dan format pesan yang distandarkan
pada komunitas web, WSDL menjadi lebih tepat dan penting untuk
mendeskripsikan model komunikasi dalam beberapa langkah yang
terstruktur (dalam memprogram web service). WSDL menyediakan
kebutuhan ini dengan mendefinisikan bentuk XML untuk mendeskripsikan
layanan jaringan sebagai kumpulan-kumpulan titik akhir (endpoints)
komunikasi yang mampu melakukan pertukaran pesan. Hal tersebut sangat
membantu komunikasi antara dua teknologi pada platform-platform secara
umum. Definisi layanan WSDL menyediakan dokumentasi untuk sistem
terdistribusi dan berfungsi sebagai panduan untuk mengotomatisasi rincian
yang terlibat dalam komunikasi antar aplikasi.
WSDL sering digunakan pada kombinasi SOAP dan XML schema
untuk menyediakan web service di internet. Aplikasi client yang terhubung
ke sebuah web service dapat membaca file WSDL untuk menentukan
operasi apa saja yang tersedia pada server. Tipe-tipe data khusus yang
digunakan di-embed pada file WSDL dalam bentuk XML schema. Client
kemudian dapat menggunakan SOAP untuk memanggil operasi-operasi
yang terdaftar pada file WSDL secara aktual menggunakan XML atau
HTTP.
Adapun struktur utama dari dokumen WSDL terlihat seperti berikut
ini.
<definitions>
<types>
definition of types........
</types>
<message>
definition of a message....
</message>
<portType>
definition of a port.......
</portType>
216
217
<binding>
definition of a binding....
</binding>
<service>
definition of a service....
</service>
</definitions>
1.
Elemen Types
Elemen <types> ini digunakan sebagai penampung untuk
mendefinisikan berbagai tipe data yang akan digunakan dalam
pertukaran pesan. Contoh :
<types>
<xsd:schema targetNamespace="urn:WS_Perhitungan_WSDL">
<xsd:import
namespace="http://schemas.xmlsoap.org/soap/encoding/"/>
<xsd:import namespace="http://schemas.xmlsoap.org/wsdl/"/>
</xsd:schema>
</types>
2.
Elemen Message
Elemen <message> dalam sebuah file WSDL mendeskripsikan isi
logika dari pesan-pesan yang saling berhubungan. Tiap-tiap elemen
<message> terdiri dari bagian-bagian logika yang dideskripsikan dalam
elemen anak (child element) <part>. Tiap-tiap element <part>
mempunyai atribut name dan type yang menspesifikasikan nama dari
elemen <part> itu sendiri dan tipe datanya. Jika sebuah elemen
<message> mempunyai banyak bagian logika maka perlu
dispesifikasikan banyak elemen <part> untuk masing-masing bagian
logika. Contoh:
<message name="jumlahkanRequest">
<part name="x" type="xsd:decimal"/>
<part name="y" type="xsd:decimal"/>
</message>
<message name="jumlahkanResponse">
<part name="return" type="xsd:decimal"/>
</message>
3.
4.
Elemen Binding
Untuk setiap elemen <portType> yang mengidentifikasi sebuah operasi
dihubungkan dengan elemen <binding> yang menyediakan detail
protokol operasi tersebut. Sebagai contoh elemen <binding> :
<binding name="WS_PerhitunganBinding"
type="tns:WS_PerhitunganPortType">
<soap:binding style="rpc"
transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="jumlahkan">
<soap:operation soapAction="urn:WS_Perhitungan_WSDL/
jumlahkan" style="rpc"/>
<input>
<soap:body use="encoded"
namespace="urn:WS_Perhitungan_WSDL"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/
"/>
</input>
<output>
<soap:body use="encoded"
namespace="urn:WS_Perhitungan_WSDL"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/
"/>
</output>
</operation>
<operation name="kurangkan">
<soap:operation soapAction="urn:WS_Perhitungan_WSDL/
kurangkan" style="rpc"/>
<input>
<soap:body use="encoded"
namespace="urn:WS_Perhitungan_WSDL"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/
"/>
</input>
<output>
<soap:body use="encoded"
namespace="urn:WS_Perhitungan_WSDL"
218
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/
"/>
</output>
</operation>
</binding>
5.
Elemen Service
Ketika client melakukan request sebuah operasi dari server, maka harus
mengidentifikasikan service, port dari service dan operasi yang akan
dieksekusi. Client menggunakan elemen <service> untuk menyediakan
informasi ini. Setiap elemen <service> berisikan elemen anak <port>
dan elemen <port> mempunyai dua atribut dan satu elemen anak.
Atribut name menyediakan nama khusus dari port yang telah
terdefinisi, sedangkan atribut binding menunjuk pada binding yang
telah dispesifisikan sebelumnya pada elemen <binding>. Contoh
elemen service :
<service name="WS_Perhitungan">
<port name="WS_PerhitunganPort"
binding="tns:WS_PerhitunganBinding">
<soap:address location="http://localhost/nusoap/
server.php"/>
</port>
</service>
219
pesan-pesan SOAP dengan bantuan beberapa class-class pendukung lainnya
untuk melengkapi proses tersebut.
Operasi-operasi pengiriman pesan SOAP dijalankan dengan
melibatkan paramater nama operasi yang diinginkan melalui method call().
Jika web service yang dituju menyediakan sebuah file WSDL, maka class
"nusoap_client" akan mengacu langsung pada URL file WSDL tersebut dan
menggunakan class "wsdl" untuk mem-parsing file WSDL dan mengekstrak
seluruh datanya. Class "wsdl" menyediakan method-method untuk
mengekstrak data per-operasi dan per-binding.
Class nusoap_client menggunakan data dari file WSDL untuk
menerjemahkan
parameter-parameternya sekaligus menyusun SOAP
envelope ketika user mengeksekusi suatu pemanggilan service. Ketika
pemanggilan ini dieksekusi, class "nusoap_client" menggunakan
"soap_transport_http" untuk mengirim pesan SOAP request dan menerima
pesan SOAP response. Selanjutnya pesan SOAP response yang diterima diparsing dengan menggunakan class "nusoap_parser".
9.6.2 Instalasi dan Konfigurasi NuSOAP
Instalasi dan konfigurasi NuSOAP dapat dilakukan dengan beberapa
tahap berikut:
Mengunduh NuSOAP dari situs:
http://sourceforge.net/projects/nusoap/
Ekstrak file zip, dimanaakan mendapatkan sebuah folder bernama
/lib. Di dalam folder /lib inilah kumpulan-kumpulan class NuSOAP
tersimpan.
Copy folder /lib ke lokasi direktori tertentu
Lakukan include class dalam kode PHP:
require_once('lib/nusoap.php');
220
// instansiasi class soap untuk server
$server = new nusoap_server();
$server->configureWSDL("WS_Perhitungan",
"urn:WS_Perhitungan_WSDL");
// meregistrasi 'method' untuk proses penjumlahan
// dengan nama 'jumlahkan'
$server->register(
// method name
'jumlahkan',
// input parameters
array('x' => 'xsd:decimal','y' => 'xsd:decimal'),
// output parameters
array('return' => 'xsd:decimal'),
// namespace
'urn:WS_Perhitungan_WSDL',
// SOAPAction
'urn:WS_Perhitungan_WSDL/jumlahkan',
// style
'rpc',
// use
'encoded',
// documentation
'Melakukan penjumlahan dua buah bilangan'
);
221
function kurangkan($x, $y) {
return $x - $y;
}
// memberikan response service
$HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ?
$HTTP_RAW_POST_DATA : '';
$server->service($HTTP_RAW_POST_DATA);
?>
Pada kode yang ada pada file server.php, aplikasi menyediakan service
dengan menggunakan WSDL dengan cara mengeksekusi method
"configureWSDL": $server->configureWSDL("WS_Perhitungan", "urn:
WS_Perhitungan_WSDL");
222
223
Keterangan:
name
in
:
:
out
namespace
soapaction
style
use
:
:
documentation
encodingstyle
:
:
Untuk melihat detail semua service yang disediakan oleh aplikasi server
yang dibuat, dilakukan dengan cara mengetikkan pada browser web URL
yang mengacu pada file aplikasi server tersebut. Dalam contoh ini URL
tersebut adalah "http://localhost/nusoap/server.php". Hasilnya dapat dilihat
pada Gambar 9.7 dan Gambar 9.8.
Gambar 9.8 Detail operasi pada item service yang disediakan
224
225
}
}
}else{
echo "Input angka masih kosong!";
}
?>
</body>
</html>
Pada kode di atas, variabel $bil1 dan $bil2 merupakan variabel untuk
menampung dua buah bilangan yang diinputkan user melalui sebuah form.
Kedua variabel ini digunakan sebagai parameter input pada pemanggilan
service "jumlahkan" dan "kurangkan". Hasil dari aplikasi "client.php" yang
dijalankan melalui browser dan dengan input parameter bil1 = 5 dan bil2= 4
dapat dilihat pada Gambar 9.9 berikut ini.
$result2 = $client->call('kurangkan',
array('x' => $bil1, 'y' => $bil2));
$err = $client->getError();
if($err){
echo $client->getError();
}else{
if($result1!=null && ($result2!=null ||
$result2==0)){
echo "<p>Hasil penjumlahan ".$bil1." dan
".$bil2." adalah ".$result1."</p>";
echo "<p>Hasil pengurangan ".$bil1." dan
".$bil2." adalah ".$result2."</p>";
}else{
echo "Error result..";
226
9.7 Rangkuman
1. SOA atau Service Oriented Architecture adalah sebuah arsitektur yang
merepresentasikan fungsi dalam bentuk layanan. Fungsi menunjukkan
abstraksi aktivitas sesuatu yang secara alami dilakukan oleh
aplikasi/program, individu, dan organisasi. Layanan mengabstraksi
fungsi dan dapat menunjukkan bentuk hubungan yang bermakna antara
dua pihak yang berkomunikasi (peminta dan penyedia layanan).
2. Web service adalah suatu sistem perangkat lunak yang dirancang untuk
mendukung interoperabilitas dan interaksi antar sistem pada suatu
jaringan. Web service menyediakan layanan (dalam bentuk informasi)
kepada sistem lain, sehingga sistem lain dapat berinteraksi dengan
sistem tersebut melalui layanan-layanan (service) yang disediakan. Web
service menyimpan data informasi dalam format XML, sehingga data
ini dapat diakses oleh sistem lain walaupun berbeda platform, sistem
operasi, maupun bahasa compiler.
3. XML adalah singkatan dari eXtensible Markup Language. Bahasa
markup adalah sekumpulan aturan-aturan yang mendefinisikan suatu
sintaks yang digunakan untuk menjelaskan, dan mendeskripsikan teks
atau data dalam sebuah dokumen melalui penggunaan tag.
4. SOAP (Simple Object Access Protocol) adalah standar untuk bertukar
pesan-pesan berbasis XML melalui jaringan komputer atau sebuah jalan
untuk program yang berjalan pada suatu sistem operasi (OS) untuk
berkomunikasi dengan program pada OS yang sama maupun berbeda
dengan menggunakan HTTP dan XML sebagai mekanisme untuk
pertukaran data.
5. WSDL merupakan kependekan dari Web Services Description
Language. WSDL adalah bahasa berbasis XML untuk mendeskripsikan
web services dan bagaimana untuk mengaksesnya. WSDL membantu
konsumer web service untuk memakai/menggunakan layanan web
service. WSDL menspesifikasikan lokasi service dan operasi (methods)
yang disediakan oleh web service.
9.8 Tugas/Soal Latihan
1. Apa yang dimaksud dengan SOA atau Service Oriented Architecture
dan web service? Bagaimana kaitan antara SOA dengan web service?
2. Sebutkan dan jelaskan komponen-komponen yang terdapat dalam SOA!
3. Sebutkan dan jelaskan tiga entitas dalam arsitektur web service dan
jelaskan tiga operasi yang terlibat di dalamnya!
4. Sebutkan dan jelaskan empat layer komponen protokol pada web
service!
227
5.
PENUTUP
Buku ajar ini tersusun atas beberapa materi pokok, dimulai dari
pengenalan internet dan teknlogi web, HTML (Hypertext Markup
Language), CSS (Cascading Style Sheet), dasar pemrograman PHP, basis
data dalam pemrograman web dengan MySQL, JavaScript, web CMS
(Content Management System), web framework dengan CodeIgniter dan
web services. Dengan materi-materi pokok yang telah dibahas dalam buku
ajar ini, diharapkan mahasiswa maupun pembaca dapat memperoleh
pemahaman mengenai konsep dasar internet, teknologi web dan
pemrograman web.
DATA DIRI
2.
3.
4.
5.
6.
7.
8.
9.
Alamat kantor
10.
11.
Nomor telepon/faks
Alamat email
Lulusan yang telah
dihasilkan
1.
12.
13.
228
229