Modul Kuliah Pemrograman Web Oleh

87
Modul Kuliah Pemrograman Web Oleh : dwi sakethi pengrajin sistem informasi 0816-403-432 atau 0811-725-1106 [email protected] www.dwijim.0fees.net tulisan niki dipun serat ngangge L A T E X mBandar Lampung Genap 2017/2018

Transcript of Modul Kuliah Pemrograman Web Oleh

Page 1: Modul Kuliah Pemrograman Web Oleh

Modul Kuliah

Pemrograman Web

Oleh :

dwi sakethi

pengrajin sistem informasi

0816-403-432 atau 0811-725-1106

[email protected]

www.dwijim.0fees.net

tulisan niki dipun serat ngangge LATEX

mBandar Lampung

Genap 2017/2018

Page 2: Modul Kuliah Pemrograman Web Oleh

Daftar Isi

1 Pendahuluan 1

1.1 Pengantar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

1.2 Kata Pengantar . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

1.3 Sistem Informasi Berbasis Komputer . . . . . . . . . . . . . . . 2

1.4 Pemrograman . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.5 Ketrampilan yang Dibutuhkan dalam Programming . . . . . . . 4

1.6 Pemrograman yang Baik . . . . . . . . . . . . . . . . . . . . . . 5

1.7 Contoh-Contoh Program . . . . . . . . . . . . . . . . . . . . . . 9

1.8 Contoh-Contoh Program . . . . . . . . . . . . . . . . . . . . . . 11

1.8.1 Program Mencari Nilai Suatu Fungsi . . . . . . . . . . . 11

1.8.2 Program Membuat Kalender Suatu Bulan . . . . . . . . 12

1.9 Plagiat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

2 Arsitektur Sistem Informasi 15

3 Pengantar PHP 17

3.1 Mengapa Belajar PHP . . . . . . . . . . . . . . . . . . . . . . . 17

4 Pengantar HTML 21

4.1 HTML Dasar . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

4.2 Form . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

4.2.1 Tag Form . . . . . . . . . . . . . . . . . . . . . . . . . . 21

4.2.2 Pilihan dengan Radio Button . . . . . . . . . . . . . . . 23

4.2.3 Pilihan dengan Select-Option . . . . . . . . . . . . . . . 25

4.2.4 Ngapain sih Belajar HTML . . . . . . . . . . . . . . . . 26

4.3 Latihan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

i

Page 3: Modul Kuliah Pemrograman Web Oleh

ii DAFTAR ISI

5 Instalasi Program 31

5.1 Pada Sistem Linux . . . . . . . . . . . . . . . . . . . . . . . . . 31

5.1.1 Pengaturan Direktori . . . . . . . . . . . . . . . . . . . . 32

5.2 Pada Sistem Microsoft Windows . . . . . . . . . . . . . . . . . . 34

5.2.1 Pengaturan Direktori . . . . . . . . . . . . . . . . . . . . 36

6 Basis Data 39

6.1 Akses ke Perangkat Lunak . . . . . . . . . . . . . . . . . . . . . 39

6.2 Penentuan Tipe dan Ukuran Field . . . . . . . . . . . . . . . . 40

6.3 Field NPM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

6.4 Sistem Pengkodean . . . . . . . . . . . . . . . . . . . . . . . . . 42

6.5 Contoh Kasus . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

6.6 SQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

7 PHP 57

7.1 Menampilkan Isi Tabel . . . . . . . . . . . . . . . . . . . . . . . 57

7.2 Perintah-Perintah yang Digunakan . . . . . . . . . . . . . . . . 57

7.3 Pertanyaan Pengantar . . . . . . . . . . . . . . . . . . . . . . . 59

7.4 Menampilkan Isi Tabel . . . . . . . . . . . . . . . . . . . . . . . 59

7.5 Select-Option dari Tabel . . . . . . . . . . . . . . . . . . . . . . 61

7.6 Radio Button dari Tabel . . . . . . . . . . . . . . . . . . . . . . 63

8 POST dan GET 67

8.1 Menampilkan Isi Tabel . . . . . . . . . . . . . . . . . . . . . . . 67

I Pengolahan Data 69

9 Grafik 71

9.1 Menghitung Jumlah Vokal Dalam Suatu Kalimat . . . . . . . . 73

9.1.1 Mengambil per huruf kemudian dijumlahkan . . . . . . . 73

9.1.2 Menggunakan fungsi substr count() . . . . . . . . . . . . 75

9.2 Merekap Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

9.3 Grafik dengan Fushion Chart . . . . . . . . . . . . . . . . . . . 76

10 Penutup 77

Page 4: Modul Kuliah Pemrograman Web Oleh

DAFTAR ISI iii

11 Daftar Pustaka 79

Page 5: Modul Kuliah Pemrograman Web Oleh

iv DAFTAR ISI

Page 6: Modul Kuliah Pemrograman Web Oleh

Daftar Tabel

1.1 Hasil keluaran . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

1.2 Hasil keluaran . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

v

Page 7: Modul Kuliah Pemrograman Web Oleh

vi DAFTAR TABEL

Page 8: Modul Kuliah Pemrograman Web Oleh

Daftar Gambar

1.1 Sistem informasi berbasis komputer . . . . . . . . . . . . . . . . 3

2.1 Model Client-Server . . . . . . . . . . . . . . . . . . . . . . . . 15

2.2 Model Web Based . . . . . . . . . . . . . . . . . . . . . . . . . . 16

3.1 Sistem Beban Kerja Dosen . . . . . . . . . . . . . . . . . . . . . 19

3.2 Sistem Remunerasi Dosen Unila . . . . . . . . . . . . . . . . . . 19

4.1 Pilihan dengan Select-Option . . . . . . . . . . . . . . . . . . . 25

4.2 Form Pencarian . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

4.3 Form Kode Suku . . . . . . . . . . . . . . . . . . . . . . . . . . 28

4.4 Form Data Pribadi . . . . . . . . . . . . . . . . . . . . . . . . . 29

5.1 PHP Sudah Sukses di Linux . . . . . . . . . . . . . . . . . . . . 34

5.2 XAMPP Control Panel . . . . . . . . . . . . . . . . . . . . . . . 35

5.3 PHP Sudah Sukses di Windows . . . . . . . . . . . . . . . . . . 37

7.1 Tampilan Isi Tabel . . . . . . . . . . . . . . . . . . . . . . . . . 61

7.2 Tampilan Select-Option . . . . . . . . . . . . . . . . . . . . . . 63

7.3 Tampilan radio button . . . . . . . . . . . . . . . . . . . . . . . 65

9.1 Output hanya satu . . . . . . . . . . . . . . . . . . . . . . . . . 72

vii

Page 9: Modul Kuliah Pemrograman Web Oleh

Bab 1

Pendahuluan

1.1 Pengantar

1.2 Kata Pengantar

Catatan kuliah ini merupakan catatan yang baru mulai ditulis. Pada

semester-semester sebelumnya sebenarnya sudah ada bahan akan tetapi mu-

lai tahun semester genap 2008/2009 ini ada perubahan-perubahan terutama

setelah adanya pelatihan Struktur Data. Juga mengikuti ungkapan yang me-

nyatakan bahwa untuk menjadi lebih baik perlu perubahan walau perubahan

tidak selalu membawa ke arah yang lebih baik.

Satu hal lain yang berbeda dengan semester-semester sebelumnya ada-

lah penghayatan bahwa filosofi mengajar dengan cinta merupakan suatu

keniscayaan. Selain itu entah mengapa juga, apakah ini suatu misteri atau-

kah merupakan kesadaran baru bahwa resource sharing sebagai lahan berbuat

kebaikan berpacu dengan ritme jalan menuju perumahan abadi (kuburan).

Dokumen ini dapat ditelusuri di www.dwijim.wordpress.com. Se-

moga bermanfaat . . . Tulisan ini kupersembahkan untuk semua mahasiswaku

tanpa kecuali dan untuk mereka yang ingin belajar Pemrograman Web.

1

Page 10: Modul Kuliah Pemrograman Web Oleh

2 BAB 1. PENDAHULUAN

1.3 Sistem Informasi Berbasis Komputer

Sebagian besar dari pembaca tentu sudah sering mendengar istilah sistem in-

formasi berbasis komputer.

Menurut Irv Englander, (Englander, 2009:12) menyatakan bahwa ada em-

pat komponen di dalam sistem berbasis komputer yaitu:

1. Perangkat keras (hardware)

2. Perangkat lunak (software)

3. Data

4. Komponen komunikasi

Akan tetapi tinjauan ini menitikberatkan kepada arsitektur sistem komputer

sehingga berbeda dengan pendapat lain.

Ada juga yang berpendapat bahwa di dalam sistem berbasis komputer

terdapat lima komponen, yaitu:

Page 11: Modul Kuliah Pemrograman Web Oleh

1.4. PEMROGRAMAN 3

Gambar 1.1: Sistem informasi berbasis komputer

1.4 Pemrograman

Beberapa hasil pencarian tentang definisi pemrograman menggunakan gee-

vv.com:

1. http://interactivepython.org

Programming is the process of taking an algorithm and encoding it into

a notation, a programming language, so that it can be executed by a

computer.

2. http://www.businessdictionary.com

The process of developing and implementing various sets of instructions

to enable a computer to do a certain task.

3. https://www.techopedia.com

A programming language is a computer language engineered to create a

Page 12: Modul Kuliah Pemrograman Web Oleh

4 BAB 1. PENDAHULUAN

standard form of commands. These commands can be interpreted into a

code understood by a machine. Programs are created through program-

ming languages to control the behavior and output of a machine through

accurate algorithms, similar to the human communication process.

4.

5.

1.5 Ketrampilan yang Dibutuhkan dalam Pro-

gramming

Menulis atau membuat program bukanlah pekerjaan yang mudah, akan

tetapi juga tidak cukup alasan untuk mengatakannya sebagai sesuatu yang

sulit. Dalam menulis program, tidak membutuhkan bakat alam atau ketram-

pilan bawaan, seperti misalnya menyanyi atau melukis. Dalam menyanyi atau

melukis, seseorang yang tidak memiliki bakat bawaan akan terasa sulit untuk

melakukannya. Namun berbeda dengan menulis program komputer. Ada 4

ketrampilan yang dibutuhkan di sini, yaitu :

1. Perhatian terhadap hal-hal yang rinci. Komputer itu barang yang bodoh

tidak dapat dipercaya (incredibly stupid). Pemrogram tidak dapat hanya

menjelaskan 3/4 bagian dari proses dan kemudian berkata, ”Kamu ngerti

kan dengan apa yang aku mauin ?”. Jika dalam penulisan mesti ada ;

maka harus ditulis. Karena variabel harus dideklarasikan, maka variabel

pun harus dideklarasikan.

2. Bersikap bodoh. Sebagaimana tadi sudah disebutkan bahwa komputer

bodoh tidak dapat dipercaya. Komputer hanya mengerjakan apa yang

betul-betul diperintahkan kepada mereka, tidak lebih dan tidak kurang.

Komputer tidak bisa diberikan mie rebus dan kemudian disuruh mem-

baca petunjuk yang ada dibungkusnya, maka kemudian komputer akan

membuat mie rebus.

3. Ingatan yang baik. Banyak hal yang harus diingat ketika membuat pro-

gram. Mulai dari aturan penulisan, fungsi dan perintah yang digunakan,

Page 13: Modul Kuliah Pemrograman Web Oleh

1.6. PEMROGRAMAN YANG BAIK 5

parameter untuk suatu fungsi yang sudah dibuat, nama-nama variabel

yang digunakan dan lain sebagainya.

4. ability to abstract, think on several levels. This is probably the most

important skill in programming. Computers are some of the most com-

plex systems we’ve ever built, and if while programming you had to keep

in mind every aspect of the functioning of the computer at all levels, it

would be a Herculean task to write even a simple program.

1.6 Pemrograman yang Baik

Seperti apakah kriteria pemrograman yang baik ? Salah satu bahan acuan

tentang ini, diambil dari tulisan Prof. Finkel (lagi-lagi) yang bisa diakses di :

http://www.cs.uky.edu/∼raphael/checklist.html

Checklist for good programming This checklist should help you write

high-quality programs. Raphael Finkel, 8/17/2005

1. Identifiers : Make sure all your identifiers are meaningful.

(a) One-letter identifiers are almost never meaningful.

(b) Names like flag and temp are seldom meaningful. Instead of flag,

consider naming the Boolean condition it checks for, such as value-

Found.

(c) Consider multi-word identifiers, like nameIndex. Long identifiers

(within reason) tend to be very readable.

2. Bare literals : Avoid numbers other than 0 and 1 and strings other than

”” in your program except when you define constants.

(a) Don’t use a literal integer as an array bound.

(b) Don’t use a literal integer as a run parameter, such as a timeout or

port number.

(c) Don’t use literal integers to select menu entries.

Page 14: Modul Kuliah Pemrograman Web Oleh

6 BAB 1. PENDAHULUAN

(d) Don’t use a literal integer to measure the size of a string or some

data; use sizeof() and strlen() in C and C++ and .length() and .size

in Java.

(e) Don’t use a literal string for a file name. You may output literal

strings, though.

(f) Don’t use a literal integer to index into an array containing hetero-

geneous data.

(g) Don’t declare an identifier with a name denoting a literal, such as

”thirty”.

3. Modularization : A program is built out of interacting components.

(a) Don’t put all your code into the main() routine.

(b) In fact, don’t make any routine do too much work. If it’s longer

than about 50 lines, it is maybe too long.

(c) If you duplicate code several times, consider whether a loop would

work better, or perhaps a subroutine.

(d) If you find you are indenting very deeply, you most likely aren’t

using subroutines when you should.

(e) Don’t reinvent library routines (unless your assignment requires it).

Look in the manuals to learn about sprintf() and atoi(), for instance.

(f) Use header files in C and C++ (header files have names ending .h) to

define all constants needed by multiple files and declare all subrou-

tines exported between files. But don’t put the body of subroutines

in header files (with the rare exception of inline subroutines).

4. Formatting : Your program should be easy to read.

(a) Look at http://geosoft.no/development/javastyle.html for clear sug-

gestions on formatting and other presentation issues. This reference

is specifically directed at Java, but it has value for other languages,

too.

(b) Try to restrict all your lines to 80 characters; many people view

code in 80-column windows for historical reasons.

Page 15: Modul Kuliah Pemrograman Web Oleh

1.6. PEMROGRAMAN YANG BAIK 7

(c) Don’t use both tabs and spaces for indentation, because not all text

editors treat tabs as exactly 8 spaces.

(d) Do follow a consistent indentation pattern that reflects the pro-

gram’s control structure.

(e) Don’t put lots of blank lines in your program. One blank line be-

tween subroutines is enough.

(f) Different operating systems terminate lines different ways. If you

move between Win32 (which uses /r/n), Unix (which uses /n), and

MacOS (which uses /r), reformat your file to use a consistent ter-

mination method.

(g) Don’t set the executable bit (Unix) on your source files.

5. Coding : You want your coding to be clear, maintainable, and efficient,

in that order. Some of the rules here are very specific; others are more

general.

(a) Don’t use a sequence of if statements that have no else if only one

can match; use else if.

(b) When you want to categorize text input, don’t enumerate the pos-

sible first characters.

(c) Use shift operators instead of multiplication for constructing bit

patterns.

(d) In a switch statement, always check for the default case. Likewise,

in a sequence of if-then-else statements, use a final else.

(e) All system calls can fail. Always check the return code, and use

perror() to report the failure.

(f) Booleans should always use the boolean type in Java, bool in C++,

and 0/1 integers in C. Don’t use characters t and f, and don’t use

-1 and 1.

(g) Use loops to initialize data structures if possible.

(h) Use each variable and each field of a structure for exactly one pur-

pose. Don’t overload them unless there is an excellent reason to do

so.

Page 16: Modul Kuliah Pemrograman Web Oleh

8 BAB 1. PENDAHULUAN

(i) Don’t use the same identifier for both a type, a variable, and a file

name, even if you change the capitalization. It’s too confusing.

(j) If you are modifying data with htonl() or a similar routine before ne-

twork transmission, don’t modify the data in place. Build a second

data structure.

(k) Try not to use global or nonlocal variables. Declare each variable

in the smallest scope you can. There are legitimate uses of nonlocal

variables, but make sure you really need them.

(l) Shell and Perl programs should have their # ! line as the first line

of the file; otherwise, the line is just a comment.

(m) Try to avoid coding special cases. You can often use pseudo-data

or other data-structure methods that allow you to fold special cases

into the regular cases.

6. Compilers : Let them help you find mistakes

(a) Always invoke compilers with all warnings enabled. For C and

C++, use the -Wall flag; for Java, use -Xlint:all -deprecation.

(b) All Perl programs should run with the -w flag and should have use

strict. All Perl cgi-bin scripts should have the -T flag, too.

7. The make utility : Use it, and use it well.

(a) A makefile should always have a ”clean” recipe, which should re-

move all files that can be reconstructed by other recipes in the

makefile, including object and executable files.

(b) If your project has multiple source files, the makefile should generate

object (.o) files as needed and link them together.

(c) The makefile should be written so that if you run make twice in a

row, the second run does no recompilation.

(d) Every recipe should create the file specified in its target.

(e) Every recipe should use every file specified in its prerequisite list.

(f) Learn to use rules for targets like .c.o to avoid repetitious makefiles.

Page 17: Modul Kuliah Pemrograman Web Oleh

1.7. CONTOH-CONTOH PROGRAM 9

(g) If you have just one C or C++ source file, the executable file should

have the same name (without the extension .c or .cpp).

(h) Make sure you list all .h files as prerequisites where they are needed.

Consider using makedepend to generate the prerequisite list for you.

8. Documentation : It’s not just just for the grader. It helps you as you

write the program, too!

(a) Add documentation as you write the program. You can always

modify it as your design changes.

(b) Include external documentation : How does one compile and run the

program, and what is it meant to do ? The external documentation

could be in a separate file; for small projects, it can be a comment

in the single source file.

(c) Include internal documentation : What algorithms and data struc-

tures are you using? An overview can be in a separate file, but

usually internal documentation is placed on the specific routines,

declarations, and steps that it describes.

(d) Check your whole program and documentation for spelling mistakes.

It is impolite to turn in misspelled work.

(e) Check all your documentation (and output messages) for grammar

mistakes.

(f) Programs are much more readable if you put a short comment on

closing braces. For instance, the brace closing a conditional can

have a comment like ”if value looks good”. A brace closing a loop

can have a comment like ”for each input line”. A brace closing a

procedure can have a comment just naming the procedure. A brace

closing a class can have a comment saying ”class” and then the

name of the class.

1.7 Contoh-Contoh Program

Coba bayangkan Anda membuat program untuk mencetak hasil seperti berikutini (cukup angkanya saja, tidak perlu dengan kotak-kotaknya): Program untukhasil seperti tersebut bisa dilihat pada contoh berikut :

Page 18: Modul Kuliah Pemrograman Web Oleh

10 BAB 1. PENDAHULUAN

1 2 3 4 5 6 7

Tabel 1.1: Hasil keluaran

/* --------------------------------------------

* program untuk mencetak angka 1-7

* dibuat hari ahad, 12 maret 2011

* sambilan aja ...

* nama file : cetak-angka-biasa.c

* -------------------------------------------- */

#include <stdio.h>

// karena ada perintah printf maka ... include ini

#define AkhirLooping 7

// untuk mencetak angka 1-7 sesuai banyaknya hari

// karena tidak boleh ada magic number,

// maka dibuat definisi nilai ini

int main (void)

// program bahasa c minimal terdiri dari satu

// fungsi yaitu fungsi main()

{

int bilangan;

// deklarasi variabel bilangan

for (bilangan=1;bilangan<=AkhirLooping;bilangan++)

// membuat looping dari 1-7

{

printf("%d ",bilangan);

// mencetak angka 1 2 3 4 5 6 7

}

printf("\n");

} // akhir fungsi main

Meningkat ke masalah berikutnya, yaitu bagaimana mencetak angka 1 pa-

da suatu posisi tertentu dari posisi 1-7 seperti pada hasil keluaran tersebut.

Perhatikan contoh berikut :

Page 19: Modul Kuliah Pemrograman Web Oleh

1.8. CONTOH-CONTOH PROGRAM 11

1 2 3 4 5 6 71

Tabel 1.2: Hasil keluaran

1.8 Contoh-Contoh Program

1.8.1 Program Mencari Nilai Suatu Fungsi

/* --------------------------------------------

* program untuk mencari nilai fungsi

* f(x)=x^2, hanya sebagai pengenalan dan

* melakukan demistikisasi atas proses dalam

* komputer ...

* -------------------------------------------- */

#include <stdio.h>

#include <math.h>

float f_x (float x);

int main (void)

{

float x; // deklarasi variabel x

// ingat tentang penamaan variabel

printf("berapa nilai x-nya :");

scanf("%f",&x);

// dialog berikutnya tentu saja menanyakan

// berapa nilai x ?

printf("nilai fungsi f(x)=%f\n ",f_x(x));

// karena sudah ada fungsinya maka

// tinggal memanggil fungsi tersebut

}

/* ---------------------------------------

* deklarasi fungsi f(x)

* dalam dialog, ini untuk menjawab pertanyaan

* apa fungsinya ?

Page 20: Modul Kuliah Pemrograman Web Oleh

12 BAB 1. PENDAHULUAN

*

* --------------------------------------- */

float f_x (float x)

{

float hasil_fungsi;

hasil_fungsi = x * x;

return hasil_fungsi;

}

1.8.2 Program Membuat Kalender Suatu Bulan

/* --------------------------------------------

* program untuk membuat kalender pada

* suatu bulan tertentu

* -------------------------------------------- */

#include <stdio.h>

#include <math.h>

#define akhir_bulan 30

int main (void)

{

int bulan, // bulan ke berapa

hari_ke // sekarang hari ke berapa

;

int tanggal_satu_hari_apa; // tanggal 1 jatuh

// pada hari apa ?

int sekarang_hari_ke;

// dalam proses sekarang ada pada hari apa

// atau hari ke berapa ?

printf("kalender bulan [1, 2, 3, ..., 12] ");

scanf("%d",&bulan);

printf("tanggal 1 jatuh pada hari [1, 2, ..., 7] ");

scanf("%d",&tanggal_satu_hari_apa);

hari_ke = 1; // posisi hari dimulai hari ke-1

printf(" M S S R K J S\n");

Page 21: Modul Kuliah Pemrograman Web Oleh

1.8. CONTOH-CONTOH PROGRAM 13

// tulis kosong sampai ketemu tanggal satu jatuh

// pada hari apa

for(hari_ke=1;hari_ke<=tanggal_satu_hari_apa-1;hari_ke++)

{

printf(" -");

sekarang_hari_ke = hari_ke;

}

sekarang_hari_ke++;

// dari posisi tanggal 1 yang jatuh pada hari apa

// cetak tanggal sampai akhir bulan

for(hari_ke=1;hari_ke<=akhir_bulan;hari_ke++)

{

printf ("%3d",hari_ke);

sekarang_hari_ke++;

// jika sudah lebih dari hari ke-7 (nilainya 8)

// maka menulis tanggalnya pindah baris

if (sekarang_hari_ke==8)

{

sekarang_hari_ke = 1;

printf("\n");

}

}

}

Page 22: Modul Kuliah Pemrograman Web Oleh

14 BAB 1. PENDAHULUAN

1.9 Plagiat . . .

Plagiat ini merupakan masalah yang sangat penting. Oleh karena itu perlu

mendapat perhatian khusus. Bahan acuan tentang plagiat ini, diambil dari tu-

lisan Prof. Finkel (lagi-lagi) yang bisa diakses di : http://www.cs.uky.edu/∼raphael/courses/CS450/backgr.html.

Beliau menuliskan sebagai berikut :

Plagiarism

All academic work, written or otherwise, that you submit is ex-

pected to be the result of your own thought, research, or self-

expression. You may certainly discuss the programs with each

other, but you must not show each other your code; everyone must

develop the code completely independently. It is a serious offense

to allow other students to copy your work or to copy the work of

other students (even if it is in a public computer file). If you borrow

ideas, algorithms, wording, or code from other sources, you must

acknowledge that fact or you have committed plagiarism. If you

directly take more than about 4 words in a row from any source,

you must indicate that you have done so, typically with a footno-

te or an in-line citation, using indentation or quote marks to set

off the quoted text. (Some of this text is taken from the EDP202

plagiarism guide.) Offenses against this policy are punished quite

strictly. I catch plagiarism practically every semester.

Mahasiswa yang dianggap melakukan (artinya bisa jadi sebenarnya tidak me-

lakukan) plagiat akan mendapat nilai E. Hal ini berlaku baik untuk tugas,

ujian dan pekerjaan lainnya. Maksudnya lebih baik mencoba sendiri apapun

hasilnya dari pada kena pinalti.

Page 23: Modul Kuliah Pemrograman Web Oleh

Bab 2

Arsitektur Sistem Informasi

Menurut Irv Englander, (Englander, 2009:51) ada dua model arsitektur sistem

informasi, yaitu:

1. Client-Server

Gambar 2.1: Model Client-Server

2. Web-Based

15

Page 24: Modul Kuliah Pemrograman Web Oleh

16 BAB 2. ARSITEKTUR SISTEM INFORMASI

Gambar 2.2: Model Web Based

Page 25: Modul Kuliah Pemrograman Web Oleh

Bab 3

Pengantar PHP

3.1 Mengapa Belajar PHP

Menurut apa yang ditulis oleh http://www.bestprogramminglanguagefor.me:

80% of the top 10 million websites use PHP. PHP is particularly

popular for freelance work, since many small businesses or non-

technical people would want to use WordPress, Wix, or other po-

pular content management systems to set up their websites or shop-

ping carts.

PHP was designed for the web, and it does the job well. Facebook

has made serious investments into PHP.

Sedangkan menurut data yang diperoleh dari Web Tenchnology Surveys

https://w3techs.com bahwa 83.2% web server yang ada, bahasa pemrograman

yang digunakan adalah PHP. Data ini diambil pada bukan Maret 2018. The

following server-side programming languages are used by less than 0.1% of the

websites: Miva Script, Lasso, Lua, Tcl, Smalltalk, Scala, C++, Haskell, Lisp

17

Page 26: Modul Kuliah Pemrograman Web Oleh

18 BAB 3. PENGANTAR PHP

dan Ada.

Jika pemakai membuka Facebook dan kemudian melihat source code, maka

akan terlihat salah satu potongannya:

https://www.facebook.com/ad_campaign/landing.php?placement=pf_rhc&amp;

campaign_id=242449722530626&amp;extra_1=auto

Ini menunjukkan bahwa saat ini (Maret 2018) Facebook dikembangkan meng-

gunakan PHP.

Khusus di Kampus Universitas Lampung juga cukup banyak sistem yang

menggunakan bahasa pemrograman PHP sebagai basisnya, di antaranya:

1. Sistem Beban Kerja Dosen http://bkd.unila.ac.id/

Sistem ini dikembangkan oleh Bayu Wicaksono (Ilkom 2006)

2. Sistem Remunerasi Dosen Unila http://remunerasidosen.unila.ac.id

Sistem ini dikembangkan oleh Wibi Cahyo Hastomo (Ilkom 2012)

3. Sistem Virtual Class

Page 27: Modul Kuliah Pemrograman Web Oleh

3.1. MENGAPA BELAJAR PHP 19

Gambar 3.1: Sistem Beban Kerja Dosen

Gambar 3.2: Sistem Remunerasi Dosen Unila

Page 28: Modul Kuliah Pemrograman Web Oleh

20 BAB 3. PENGANTAR PHP

Page 29: Modul Kuliah Pemrograman Web Oleh

Bab 4

Pengantar HTML

4.1 HTML Dasar

4.2 Form

4.2.1 Tag Form

Beberapa tag dasar yang digunakan di dalam pembuatan form, di antaranya:

1. < form >

Tag ini menandakan akan dibuat suatu form sebagai tempat untuk me-

masukkan suatu nilai. Parameter tambahan untuk tag dapat dilihat

pada contoh berikut:

<form method=POST action=proses.php>

Tag ini harus diakhiri dengan pasangannya.

21

Page 30: Modul Kuliah Pemrograman Web Oleh

22 BAB 4. PENGANTAR HTML

2. < input type = submit >

Supaya suatu form memberikan respon, maka harus ada tombol yang

dapat diklik. Penentuan tombol ini dilakukan dengan membuat tag ini.

<input type=submit value=Login>

3. < input type = text >

Pemasukan suatu nilai ke dalam form menggunakan tag ini.

<input type=text name=namaPemakai>

Jika data yang diisikan tidak akan ditampilkan apa adanya di layar, maka

dapat digunakan kata kunci password.

<input type=password name=kataKunci>

4. < input type = radio >

Pemasukan suatu nilai ke dalam form dengan model pilihan mengguna-

kan tag ini.

<input type=radio name=pilihan value=1>

Jika data yang diisikan tidak akan ditampilkan apa adanya di layar, maka

dapat digunakan kata kunci password.

Page 31: Modul Kuliah Pemrograman Web Oleh

4.2. FORM 23

<input type=’radio’ name=’pilihan’

value=’1’>Auto login until I logout

explicitly<br>

4.2.2 Pilihan dengan Radio Button

Untuk membuat suatu halaman web yang interaktif, programmer dapat meng-

gunakan fasilitas form. Misalkan akan dibuat halaman HTML seperti pada

gambar berikut.Skrip HTML untuk membuat halaman webnya dapat dilihat pada contoh

berikut.

<html>

<!-- dokumen html diawali dengan tag html

dibuat oleh dwi sakethi

dokumen ini dibuat dengan Kate Text Editor

dan dieksekusi dengan web browser

-->

<title>Form HTML</title>

<!-- judul halaman html -->

<form action="proses.php" method="POST">

<!-- pemasukan data menggunakan FORM -->

<h4>Data Latihan </h4>

<!-- menampilkan tulisan dengan format heading 4 -->

Login Page <br> <br>

<table border=0>

<!-- membuat tabel tanpa garis batas -->

<tr>

<!-- membuat baris pertama di dalam tabel -->

<td>User Name</td>

Page 32: Modul Kuliah Pemrograman Web Oleh

24 BAB 4. PENGANTAR HTML

<!-- membuat kolom di dalam tabel -->

<td>

<input type=text >

</td>

<!-- membuat kolom di dalam tabel isinya pemasukan data -->

</tr>

<!-- membuat baris kedua di dalam tabel -->

<td>Password</td>

<!-- membuat kolom di dalam tabel -->

<td>

<input type=password size=17 maxlength=17>

</td>

<!-- membuat kolom di dalam tabel isinya pemasukan data -->

</tr>

<tr>

<!-- membuat baris di dalam tabel -->

<td></td>

<!-- membuat kolom kosong -->

<td>

<!-- membuat kolom yang berisi pilihan -->

<input type=’radio’ name=’pilihan’

value=’1’>Auto login until I logout

explicitly<br>

<input type=’radio’ name=’pilihan’

value=’2’>Save my username<br>

<input type=’radio’ name=’pilihan’

value=’3’>Always ask for my username<br>

</td>

</tr>

<tr>

<!-- membuat baris di dalam tabel -->

Page 33: Modul Kuliah Pemrograman Web Oleh

4.2. FORM 25

<td>

<input type=’submit’ name=’tombol’ value=’Login’>

<!-- membuat tombol yang dapat diklik -->

</td>

<td></td>

<!-- membuat kolom kosong -->

</tr>

</form>

<!-- form harus diakhiri dengan tag penutupnya -->

</html>

<!-- akhir dokumen html -->

4.2.3 Pilihan dengan Select-Option

Untuk membuat pilihan di dalam suatu form, selain menggunakan radio but-ton, juga dapat digunakan tag select-option. Sebagai contoh akan dibuat suatuhalaman web yang berisi pilihan seperti berikut:

Gambar 4.1: Pilihan dengan Select-Option

Adapun skrip HTML-nya adalah:

<html>

<!-- dokumen html diawali dengan tag html

dibuat oleh dwi sakethi

Page 34: Modul Kuliah Pemrograman Web Oleh

26 BAB 4. PENGANTAR HTML

dokumen ini dibuat dengan Kate Text Editor

dan dieksekusi dengan web browser

-->

<title>Form HTML</title>

<!-- judul halaman html -->

<form action="proses.php" method="POST">

<!-- pemasukan data menggunakan FORM -->

Suku:

<select name=suku>

<option value=a>Lampung</option>

<option value=b>Jawa</option>

<option value=c>Jaseng</option>

<option value=d>Betawi</option>

<option value=e>Minang</option>

<option value=f>Batak</option>

<option value=g>Aceh</option>

<option value=h>Bali</option>

</select><br><br>

<input type=submit value=Rekam>

</form>

<!-- form harus diakhiri dengan tag penutupnya -->

</html>

<!-- akhir dokumen html -->

4.2.4 Ngapain sih Belajar HTML

Barangkali masih ada yang bertanya-tanya untuk apa belajar HTML, apalagiHTML dasar. Pada contoh skrip berikut, terdapat potongan skrip suatu sistemyang dikembangkan menggunakan Python.

<input id="id_username" type="text" name="username"

maxlength="30" class="form-control" />

<span class="glyphicon glyphicon-user form-control-feedback">

</span>

</div>

<div class="form-group has-feedback">

<input type="password" name="password" id="id_password"

class="form-control"/>

<span class="glyphicon glyphicon-lock

Page 35: Modul Kuliah Pemrograman Web Oleh

4.3. LATIHAN 27

form-control-feedback"></span>

</div>

<div class="row">

<div class="col-xs-8">

</div>

<div class="col-xs-4" >

<input type="submit" value="Log in" class="btn btn-primary

btn-block btn-flat"/>

Potongan skrip pada bagian lain:

<tr><td>Strata Program &nbsp</td>

<td><select name = "kode_strata">

<OPTION value="4">S1 Reguler </option>

<OPTION value="5">S2 / Magister </option>

<OPTION value="7">S1 Non Reguler </option>

<OPTION value="3">Diploma </option>

<OPTION value="6">S3 / Doktor </option>

<OPTION value="8">Profesi </option>

<select>

Dasar-dasar HTML ini digunakan dimana saja pada sistem yang berbasis web.

4.3 Latihan

1. Latihan 1

Buatlah skrip HTML dengan hasil tampilan seperti pada gambar berikut.

Gambar 4.2: Form Pencarian

2. Latihan 2

Buatlah skrip HTML dengan hasil tampilan seperti pada gambar berikut.

Page 36: Modul Kuliah Pemrograman Web Oleh

28 BAB 4. PENGANTAR HTML

Gambar 4.3: Form Kode Suku

3. Latihan 3

Buatlah skrip HTML dengan hasil tampilan seperti pada gambar berikut.

Page 37: Modul Kuliah Pemrograman Web Oleh

4.3. LATIHAN 29

Gambar 4.4: Form Data Pribadi

Page 38: Modul Kuliah Pemrograman Web Oleh

30 BAB 4. PENGANTAR HTML

Page 39: Modul Kuliah Pemrograman Web Oleh

Bab 5

Instalasi Program

5.1 Pada Sistem Linux

Instalasi perangkat-perangkat yang akan digunakan, dapat dilakukan melalui

perangkat Synaptic Package Manager untuk pengguna Debian atau Ubuntu.

Paket-paket yang dipasang di antaranya:

1. Apache HTTP Server.

2. MySQL Database Server.

3. MySQL Database Client.

4. MySQL module for php5.

5. PHPMyAdmin.

6. nmap.

Termasuk juga mungkin paket-paket tambahan lain. Untuk mencek apakahsistem yang dibutuhkan sudah terpasang atau belum, pemakai dapat menggu-nakan perangkat nmap.

31

Page 40: Modul Kuliah Pemrograman Web Oleh

32 BAB 5. INSTALASI PROGRAM

darra@katro:~/public_html$ nmap localhost

Starting Nmap 6.47 ( http://nmap.org ) at 2018-03-30 08:24 WIB

Nmap scan report for localhost (127.0.0.1)

Host is up (0.00076s latency).

Other addresses for localhost (not scanned): 127.0.0.1

Not shown: 994 closed ports

PORT STATE SERVICE

22/tcp open ssh

25/tcp open smtp

80/tcp open http

111/tcp open rpcbind

631/tcp open ipp

3306/tcp open mysql

Nmap done: 1 IP address (1 host up) scanned in 0.15 seconds

Dengan adanya layanan http dan mysql, berarti perangkat yang dibutuh-

kan sudah tersedia.

5.1.1 Pengaturan Direktori

Pada sistem berbasis Linux, direktori dasar sebagai tempat untuk menyimp-

an berkas-berkas .html ataupun .php ada di direktori /var/www/html. Pada

direktori ini, biasanya pemakai yang memiliki hak untuk menulis adalah root.

Oleh karena itu, salah satu pemecahannya adalah dengan meletakkan berkas-

berkas .html atau .php di home directory dan dari /var/www/html perlu di-

buatkan sotflink dan home directory. Karena jika pada home directory pema-

kai akan memiliki hak akses secara penuh yaitu read, write dan execute.

Urutan prosesnya sebagai berikut:

1. Masuk ke sistem dengan user biasa. Kemudian di dalam home directorybuat direktori bernama public html.

darra@katro:~$ ls -l

total 0

Page 41: Modul Kuliah Pemrograman Web Oleh

5.1. PADA SISTEM LINUX 33

darra@katro:~$ whoami

darra

darra@katro:~$ mkdir public_html

darra@katro:~$ ls -l

total 4

drwxr-xr-x 2 darra darra 4096 Mar 30 07:12 public_html

2. Ubahlah hak akses pada direktori public html supaya pemakai lain dapatmembaca dan mengeksekusi. Perintah yang digunakan adalah chmod

755 -R.

darra@katro:~$ chmod 755 -R public_html/

darra@katro:~$ ls -l

total 4

drwxr-xr-x 2 darra darra 4096 Mar 30 07:12 public_html

3. Pada direktori /var/www/html dibuat sotflink menggunakan pemakai

root.

ln -s /home/darra/public_html/ darra

Maka contoh isi dari direktori ini adalah:

drwxr-xr-x 2 dwijim dwijim 4096 May 20 2017 config

lrwxrwxrwx 1 root root 24 Mar 30 07:55 darra -> /home/darra/public_html/

drwxr-xr-x 5 dwijim dwijim 4096 May 11 2017 database

lrwxrwxrwx 1 root root 25 Aug 30 2016 dwijim -> /home/dwijim/public_html/

4. Kemudian dengan menggunakan pemakai biasa, pada direktori public html

buatlah berkas bernama cek.php dengan isi seperti berikut:

<?php

phpinfo();

Page 42: Modul Kuliah Pemrograman Web Oleh

34 BAB 5. INSTALASI PROGRAM

?>

5. Cek skrip dengan menggunakan browser dan pada bagian alamat diisi de-

ngan http://localhost/darra/cek.php. Seharusnya hasilnya tampat

seperti berikut: Ini berarti sistem sudah mendukung untuk digunakan

Gambar 5.1: PHP Sudah Sukses di Linux

sebagai media pembelajaran PHP.

5.2 Pada Sistem Microsoft Windows

Di sini, salah satu alternatif paket yang dapat digunakan adalah XAMPP. Ha-

nya perlu diperhatikan bahwa XAMPP terbaru menggunakan MariaDB Da-

Page 43: Modul Kuliah Pemrograman Web Oleh

5.2. PADA SISTEM MICROSOFT WINDOWS 35

tabase Server, sementara versi lama menggunakan MySQL Database Server.

Biasanya XAMPP ini dipasang pada drive C. Dengan demikian jika suatu saat

akan Microsoft Windows akan diinstal ulang, maka data di XAMPP ini perlu

untuk dibuat cadangannya. Adapun direktori yang penting untuk diperhati-

kan adalah direktori c : \xampp\htdocs dan c : \xampp\mysql\data.

Paket XAMPP dapat diakses melalui XAMPP Control Panel, yang tampak

seperti pada gambar berikut: Alternatif lain yaitu Apache Web Server dan

Gambar 5.2: XAMPP Control Panel

MySQL Database Server dijalankan sebagai layanan (services) pada Microsoft

Windows.

Jika bukan sebagai layanan, maka Apache dan MySQL dijalankan dengan

mengklik tombol Start.

Page 44: Modul Kuliah Pemrograman Web Oleh

36 BAB 5. INSTALASI PROGRAM

Sebelum komputer dimatikan, jika Apache Web Server dan MySQL Data-

base Server dalam keadaan hidup, maka sebaiknya dimatikan dengan mengklik

tombol Stop.

5.2.1 Pengaturan Direktori

Pengaturan direktori di sini lebih mudah dan sederhana. Pemakai (program-

mer) cukup meletakkan skrip .html atau .php di dalam direktori c : \xampp\htdocs.

Baik langsung atau dengan membuat lagi direktori di dalamnya.Pada contoh berikut, dibuat skrip .php bernama cek.php yang disimpan di

dalam direktori bernama dwijim.

C:\Documents and Settings\dwijim>cd\xampp\htdocs

C:\xampp\htdocs>md dwijim

C:\xampp\htdocs>cd dwijim

C:\xampp\htdocs\dwijim>dir

Volume in drive C has no label.

Volume Serial Number is F421-B25D

Directory of C:\xampp\htdocs\dwijim

03/30/2018 07:15 PM <DIR> .

03/30/2018 07:15 PM <DIR> ..

03/30/2018 07:15 PM 21 cek.php

1 File(s) 21 bytes

2 Dir(s) 5,960,007,680 bytes free

Isi dari skrip sama dengan skrip pada contoh sebelumnya, yaitu:

<?php

phpinfo();

?>

Page 45: Modul Kuliah Pemrograman Web Oleh

5.2. PADA SISTEM MICROSOFT WINDOWS 37

Kemudian berkas tersebut diakses menggunakan browser dan hasilnya:

Gambar 5.3: PHP Sudah Sukses di Windows

Page 46: Modul Kuliah Pemrograman Web Oleh

38 BAB 5. INSTALASI PROGRAM

Page 47: Modul Kuliah Pemrograman Web Oleh

Bab 6

Basis Data

6.1 Akses ke Perangkat Lunak

Akses ke perangkat MySQL Database Server, ketika masih dalam proses belajar-

mengajar sebaiknya dilakukan menggunakan cara-cara yang primitif. Dengan

kata lain menggunakan aplikasi Console. Seperti pada tampilan berikut

dwijim@katro:~$ mysql -u root -p

Enter password:

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connection id is 455

Server version: 5.5.50-0+deb8u1 (Debian)

Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.

Type ’help;’ or ’\h’ for help. Type ’\c’ to clear the current input statement.

mysql>

Sedangkan untuk akses pada sistem operasi Microsoft Windows, contohnyaseperti berikut:

39

Page 48: Modul Kuliah Pemrograman Web Oleh

40 BAB 6. BASIS DATA

Microsoft Windows XP [Version 5.1.2600]

(C) Copyright 1985-2001 Microsoft Corp.

C:\Documents and Settings\dwijim>cd\xampp\mysql\bin

C:\xampp\mysql\bin>mysql -u root -p

Enter password:

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connection id is 1

Server version: 5.5.27 MySQL Community Server (GPL)

Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.

Type ’help;’ or ’\h’ for help. Type ’\c’ to clear the current input statement.

mysql>

6.2 Penentuan Tipe dan Ukuran Field

Tipe dan ukuran suatu field atau kolom pada suatu tabel ditentukan dengan

alasan-alasan yang rasional, bukan asal-asalan. Ada yang sudah tepat dan ada

juga yang masih terkesan sembarangan di dalam penentuan ini.

6.3 Field NPM

Misalkan diambil contoh masalah pada suatu data mahasiswa. Mahasiswamemiliki NPM 1617051444. Sedangkan nama mahasiswa misalnya AhmadIjul. Kemudian jika dilihat pada struktur tabel untuk data mahasiswa ini:

mysql> desc mhs;

+----------+-------------+------+-----+---------+-------+

| Field | Type | Null | Key | Default | Extra |

+----------+-------------+------+-----+---------+-------+

Page 49: Modul Kuliah Pemrograman Web Oleh

6.3. FIELD NPM 41

| npm | char(10) | NO | PRI | NULL | |

| nama_mhs | varchar(50) | NO | | NULL | |

+----------+-------------+------+-----+---------+-------+

2 rows in set (0.01 sec)

Ada beberapa pertanyaaan yang perlu pemikiran

1. Mengapa NPM tipenya char bukan int?

2. Mengapa NPM ukurannya 10?

3. Apakah NPM mesti not null atau boleh null?

4. Kolom nama mahasiswa mengapa varchar bukan char seperti NPM?

Pada kasus dengan obyek yang sama, namun struktur tabel seperti berikut:

mysql> use cektranskrip;

Database changed

mysql> desc tabel_transkrip;

+-------------+--------------+------+-----+---------+-------+

| Field | Type | Null | Key | Default | Extra |

+-------------+--------------+------+-----+---------+-------+

| no | int(3) | YES | | NULL | |

| npm | varchar(12) | YES | | NULL | |

| kopel | varchar(10) | YES | | NULL | |

| matkul | varchar(100) | YES | | NULL | |

| semester | varchar(4) | YES | | NULL | |

| sks | varchar(3) | YES | | NULL | |

| pengambilan | int(3) | YES | | NULL | |

| nilai | varchar(3) | YES | | NULL | |

+-------------+--------------+------+-----+---------+-------+

8 rows in set (0.00 sec)

Pertanyaan-pertanyaan:

1. Pada tabel sebelumnya, ukuran dari NPM adalah 10, sedangkan di dalam

tabel ini, ukuran NPM adalah 12. Mana yang lebih tepat?

2. Kolom pengambilan int(3) apakah sudah tepat? Mengapa?

Page 50: Modul Kuliah Pemrograman Web Oleh

42 BAB 6. BASIS DATA

3. Mengapa nilai varchar(3) lebih cocok diganti menjadi nilai varchar(2)?

4. NPM biasanya menjadi primary key. Pada contoh tersebut npm var-

char(12), mengapa Null-nya bisa YES?

5. Mengapa di dalam tabel ini tidak terdapat primary key?

6. Untuk kolom no, apakah tipe dan ukurannya sudah tepat?

7. Mengapa di dalam tabel tabel transkrip ini tidak ada kolom untuk nama

mahasiswa?

8. Apakah tipe dan ukuran yang lebih tepat untuk semester varchar(4)?

9. Semester memiliki nilai seperti Semester 1, Semester 2, Semester 2 Pen-

dek, Semester 3, Semester 4, Semester 4 Pendek dan seterusnya sampai

dengan Semester 15. Bagaimana isi dari kolom semester?

6.4 Sistem Pengkodean

Perhatikan struktur dari tabel penduduk seperti pada potongan berikut:

Page 51: Modul Kuliah Pemrograman Web Oleh

6.4. SISTEM PENGKODEAN 43

+--------------------+---------------+------+-----+---------+----------------+

|Field

|Type

|Null

|Key

|Default

|Extra

|

+--------------------+---------------+------+-----+---------+----------------+

|Nomor_Data

|int(7)

|NO

|PRI

|NULL

|auto_increment

|

|Nama_Lengkap

|char(68)

|NO

||

-|

|

|Jenis_Kelamin

|enum(’L’,’P’)

|NO

||

NULL

||

|Tempat_Lahir

|char(46)

|NO

||

-|

|

|Tanggal_Lahir

|date

|NO

||

NULL

||

|Alamat

|varchar(123)

|YES

||

-|

|

|RT

|char(3)

|YES

||

-|

|

|RW

|char(3)

|YES

||

-|

|

|Kecamatan

|char(3)

|YES

||

-|

|

|Kelurahan

|int(5)

|NO

||

0|

|

|Status_Marital

|char(1)

|YES

||

NULL

||

|Suku

|int(3)

|YES

||

0|

|

|Tingkat_Pendidikan

|tinyint(1)

|YES

||

0|

|

|Program_Studi

|int(4)

|YES

||

0|

|

|Golongan_Darah

|int(1)

|YES

||

0|

|

|Telpon

|char(23)

|YES

||

-|

|

+--------------------+---------------+------+-----+---------+----------------+

Page 52: Modul Kuliah Pemrograman Web Oleh

44 BAB 6. BASIS DATA

Pertanyaan-pertanyaan:

1. Mengapa kolom Nomor Data menjadi primary key?

2. Jika suatu kolom memiliki sifat auto increment seperti Nomor Data mi-salnya, apakah isinya ada kemungkinan seperti ini: 1, 2, 3, 4, 6.

3. Mengapa jenis kelamin diisi dengan L atau P bukan dengan Laki-Lakiatau Perempuan?

4. Suku berisi kode-kode suku yang ada di Indonesia. Tipe apa dan ukuranberapa yang paling hemat tapi masih tetap dapat memenuhi kebutuhankode suku?

5. Untuk kolom Golongan Darah, tipe mana yang lebih tepat int(1) atauchar(1)?

6. Mengapa kolom Jenis Kelamin bersifat not null?

Inti dari permasalah yang disampaikan di sini adalah bahwa penentuan tipedan ukuran dari suatu kolom hendaklah disesuaikan betul dengan kebutuhanyang ada. Bukan dengan sembarangan.

Selain itu, isi dari suatu kolom (field) juga harus diperhatikan. Kekeliruandi dalam menentukan isi suatu kolom (field) dapat menyebabkan kesalahanpada sistem.

Untuk mengetahui ukuran suatu tabel perintah SQL-nya:

select table_name as "Nama Table",

round(((data_length+index_length)/1024/1024),2)

as Ukuran_MB from information_schema.tables where table_schema=’NamaDB’

order by Ukuran_MB desc;

6.5 Contoh Kasus

Berikut ini adalah contoh kasus tiga tabel yang diisi dengan data yang sama,

namun ketiganya memiliki tipe dan ukuran kolom (field) yang berbeda.

<?php

/* -----------------------------------------

program untuk mengisi tabel dengan banyak

data, tujuannya untuk mengetahui efek dari

penentuan tipe data yang berbeda ...

Page 53: Modul Kuliah Pemrograman Web Oleh

6.5. CONTOH KASUS 45

dwi sakethi www.dwijim.wordpress.com

[email protected]

struktur basis data:

--

-- Database: ‘karakter‘

--

-- ------------------------------------------

--

-- Table structure for table ‘karakter10‘

--

CREATE TABLE IF NOT EXISTS ‘karakter10‘ (

‘kode‘ char(10) NOT NULL

) ENGINE=InnoDB DEFAULT CHARSET=latin1;

-- ------------------------------------------

--

-- Table structure for table ‘karakter12‘

--

CREATE TABLE IF NOT EXISTS ‘karakter12‘ (

‘kode‘ char(12) NOT NULL

) ENGINE=InnoDB DEFAULT CHARSET=latin1;

-- ------------------------------------------

--

-- Table structure for table ‘varchar12‘

--

CREATE TABLE IF NOT EXISTS ‘varchar12‘ (

‘kode‘ varchar(12) NOT NULL

) ENGINE=InnoDB DEFAULT CHARSET=latin1;

----------------------------------------- */

Page 54: Modul Kuliah Pemrograman Web Oleh

46 BAB 6. BASIS DATA

mysql_connect(’localhost’,’root’,’dwisakethi’);

// koneksi ke mysql database server

mysql_select_db(’karakter’);

// menentukan database yang digunakan

mysql_query("truncate table karakter10");

// menghapus isi tabel karakter10

mysql_query("truncate table karakter12");

// menghapus isi tabel karakter12

mysql_query("truncate table varchar12");

// menghapus isi tabel karakter12

/* -----------------------------------------

mengisi data dengan karakter angka

dari 1 sampai dengan 1500

----------------------------------------- */

for ($i=1;$i<=1500;$i++)

{

$kueri = "insert into karakter10 (kode)

values (’$i’)

";

// kueri untuk isi data ke tabel karakter10

mysql_query($kueri);

// menjalankan kueri

$kueri = "insert into karakter12(kode)

values (’$i’)

";

// kueri untuk isi data ke tabel karakter12

mysql_query($kueri);

// menjalankan kueri

$kueri = "insert into varchar12(kode)

values (’$i’)

";

// kueri untuk isi data ke tabel varchar12

Page 55: Modul Kuliah Pemrograman Web Oleh

6.5. CONTOH KASUS 47

mysql_query($kueri);

// menjalankan kueri

echo "$i-";

}

/* -----------------------------------------

data dan ukuran tabel setelah diisi data

select count(kode) from karakter10;

+-------------+

| count(kode) |

+-------------+

| 1500 |

+-------------+

1 row in set (0.01 sec)

select count(kode) from karakter12;

+-------------+

| count(kode) |

+-------------+

| 1500 |

+-------------+

1 row in set (0.01 sec)

select count(kode) from varchar12;

+-------------+

| count(kode) |

+-------------+

| 1500 |

+-------------+

1 row in set (0.01 sec)

select table_name as "Nama Table", data_length as Ukuran

from information_schema.tables where table_schema=’karakter’

order by Ukuran desc;

+------------+--------+

| Nama Table | Ukuran |

+------------+--------+

| karakter12 | 98304 |

| varchar12 | 81920 |

Page 56: Modul Kuliah Pemrograman Web Oleh

48 BAB 6. BASIS DATA

| karakter10 | 81920 |

+------------+--------+

3 rows in set (0.00 sec)

----------------------------------------- */

?>

6.6 SQL

Untuk materi SQL ini, basis data yang digunakan bernama latihan denganbeberapa tabel seperti:

Page 57: Modul Kuliah Pemrograman Web Oleh

6.6. SQL 49

+-----------------------+--------------------------------+------+-----+---------+----------------+

|Field

|Type

|Null

|Key

|Default

|Extra

|

+-----------------------+--------------------------------+------+-----+---------+----------------+

|Nomor_Data

|int(7)

|NO

|PRI

|NULL

|auto_increment

|

|ID_SIK

|int(7)

|YES

||

0|

|

|Nama_Lengkap

|char(68)

|NO

||

-|

|

|Jenis_Kelamin

|enum(’L’,’P’)

|NO

||

NULL

||

|Tempat_Lahir

|char(46)

|NO

||

-|

|

|Tanggal_Lahir

|date

|NO

||

NULL

||

|Alamat

|varchar(123)

|YES

||

-|

|

|RT

|char(3)

|YES

||

-|

|

|RW

|char(3)

|YES

||

-|

|

|Kecamatan

|char(3)

|YES

||

-|

|

|Kelurahan

|int(5)

|NO

||

0|

|

|Status_Marital

|char(1)

|YES

||

NULL

||

|Suku

|int(3)

|YES

||

0|

|

|Tingkat_Pendidikan

|tinyint(1)

|YES

||

0|

|

|Program_Studi

|int(4)

|YES

||

0|

|

|Golongan_Darah

|int(1)

|YES

||

0|

|

|Telpon

|char(23)

|YES

||

-|

|

|Email

|char(46)

|YES

||

-|

|

|Kelas_Sekarang

|enum(’Kelas

1’,’Kelas

2’,

|YES

||

NULL

||

||

’Kelas

3’,’Kelas

4’,’Kelas

5’)

||

||

|

+-----------------------+--------------------------------+------+-----+---------+----------------+

Page 58: Modul Kuliah Pemrograman Web Oleh

50 BAB 6. BASIS DATA

1. Membuat tabel kode pekerjaan dengan stuktur seperti berikut:

Page 59: Modul Kuliah Pemrograman Web Oleh

6.6. SQL 51

+-----------------------+--------------+------+-----+---------+----------------+

|Field

|Type

|Null

|Key

|Default

|Extra

|

+-----------------------+--------------+------+-----+---------+----------------+

|kode_bidang_pekerjaan

|int(2)

|NO

|PRI

|NULL

|auto_increment

|

|nama_bidang_pekerjaan

|varchar(127)

|NO

||

NULL

||

+-----------------------+--------------+------+-----+---------+----------------+

Page 60: Modul Kuliah Pemrograman Web Oleh

52 BAB 6. BASIS DATA

2. Membuat tabel kode suku dengan stuktur seperti berikut:

Page 61: Modul Kuliah Pemrograman Web Oleh

6.6. SQL 53

+------------+----------+------+-----+---------+-------+

|Field

|Type

|Null

|Key

|Default

|Extra

|

+------------+----------+------+-----+---------+-------+

|kode

|int(3)

|NO

|PRI

|NULL

||

|keterangan

|char(27)

|NO

||

NULL

||

+------------+----------+------+-----+---------+-------+

Page 62: Modul Kuliah Pemrograman Web Oleh

54 BAB 6. BASIS DATA

3. Mengisi contoh-contoh data suku dengan perintah SQL. Adapun contohdata sukunya:

+------+------------+

| kode | keterangan |

+------+------------+

| 1 | Jawa |

| 2 | Sunda |

| 3 | Bali |

| 4 | Batak |

| 5 | Madura |

| 6 | Banten |

| 7 | India |

| 8 | Minang |

| 9 | Palembang |

| 10 | Melayu |

| 11 | Ambon |

| 12 | Manado |

| 13 | Betawi |

| 14 | Kutai |

| 15 | Cina |

| 16 | Lampung |

+------+------------+

4. Mengisi contoh-contoh kode pekerjaan dengan menggunakan perintahSQL.

+-------+-----------------------+

| 106 | Keperawatan |

| 107 | Keuangan |

| 108 | Data Control Keuangan |

| 109 | Asuransi |

| 110 | PNS |

| 111 | Dokter Gigi |

| 112 | Karyawan BUMN |

| 113 | PETERNAKAN |

+-------+-----------------------+

5. Mengisi contoh-contoh data-data anggota. Data bisa diisi dengan data

simulasi saja.

Page 63: Modul Kuliah Pemrograman Web Oleh

6.6. SQL 55

Kemudian tabel manusia diisi dengan data secukupnya, tapi lebih banyak

dan bervariasi, akan lebih baik.

Pertanyaan-pertanyaan untuk berlatih SQL.

1. Berapa jumlah tabel yang ada di dalam basis data latihan?

2. Apakah nama field untuk menyimpan nomor telepon?

3. Apakah jenis kelamin dapat diisi dengan selain L atau P?

4. Apakah ada orang bernama Lia?

5. Ada berapa orang yang namanya diawali dengan huruf m?

6. Ada berapa orang yang namanya diakhiri dengan huruf i?

7. Tampilkan nama lengkap, alamat dan nama kecamatan dari orang-orang

yang tinggal di Kecamatan Cibeber.

8. Siapakah yang lahir pada bulan Mei? Lahirnya tanggal berapa saja?

9. Siapakah orang yang nomor telponnya 0816403432?

10. Berapa jumlah orang yang tinggal di Kecamatan Cilegon.

11.

12.

13.

14.

1. show tables

Page 64: Modul Kuliah Pemrograman Web Oleh

56 BAB 6. BASIS DATA

2. desc manusia

3. insert into manusia(JenisKelamin)values(′X ′)selectnamalengkapfrommanusiawherenama lengkaplike′%lia%′

4.4. select count(namalengkap)frommanusiawherenamalengkaplike′m%′selectnamalengkapfrommanusiawhereright(trim(nama lengkap), 1) =′

i′

5.5. select manusia.nama lengkap,manusia.alamat, kode kecamatan.keterangan from

manusia, kode kecamatan where manusia.kecamatan= kode kecamatan.kode

and kode kecamatan.keterangan=’Cibeber’

6. select nama lengkap,tanggal lahir from manusia where month(tanggal lahir)=5

7. select nama lengkap,telpon from manusia where telpon like ’

8. select count(manusia.nama lengkap) from manusia, kode kecamatan where ma-

nusia.kecamatan= kode kecamatan.kode and kode kecamatan.keterangan=’Cilegon’

9.

10.

11.

12.

Page 65: Modul Kuliah Pemrograman Web Oleh

Bab 7

PHP

7.1 Menampilkan Isi Tabel

Proses menampilkan isi suatu tabel dari suatu basis data merupakan hal yang

sangat mendasar dan penting. Mengapa? Karena hal-hal berikutnya seper-

ti pencarian, rekapitulasi data yang kemudian dilanjutkan dengan pembuatan

grafiknya, pada dasarnya dimulai dengan kemampuan mendasar yaitu menam-

pilan isi suatu tabel.

7.2 Perintah-Perintah yang Digunakan

Perintah-perintah yang digunakan untuk menampilkan data dari suatu tabel:

1. mysql connect()

Perintah ini digunakan untuk menghubungkan sistem ke suatu database

server MySQL. Contoh:

mysql_connect("localhost","root","123");

57

Page 66: Modul Kuliah Pemrograman Web Oleh

58 BAB 7. PHP

2. mysql select db()

Perintah ini digunakan untuk memilih database MySQL yang akan digu-

nakan di dalam sistem. Contoh:

mysql_select_db("latihan");

3. mysql query()Perintah ini digunakan untuk menjalankan kueri yang sudah ditentukan.Contoh:

$kueri="select nama_lengkap, tempat_lahir,nomor_data

from manusia order by nama_lengkap";

$hasil_kueri=mysql_query($kueri);

4. mysql fetch row ()

Perintah ini digunakan untuk memotong data hasil kueri yang sudah

dijalankan. Contoh:

$orang=mysql_fetch_row($hasil_kueri)

5. while()Perintah ini digunakan untuk membuat looping. Contoh:

while($orang=mysql_fetch_row($hasil_kueri))

{

echo "<tr>";

$nomor=$nomor+1;

// isi proses looping

echo "</tr>";

}

Page 67: Modul Kuliah Pemrograman Web Oleh

7.3. PERTANYAAN PENGANTAR 59

7.3 Pertanyaan Pengantar

Perintah apa saja yang diberikan untuk mengakses tabel manusia di dalam

basis data latihan, setelah pemakai masuk ke layar Console?

7.4 Menampilkan Isi Tabel

Berikut ini contoh skrip PHP lengkat untuk menampilkan data ke dalam tabelHTML. Perlu diingatkan kembali bahwa di sini diperlukan tag-tag HTML yangberhubungan dengan tabel.

<?php

/* --------------------------------------------------

contoh program untuk menampilan isi suatu tabel

(data base) ke layar

dibuat oleh dwi sakethi

untuk pembelajaran materi kuliah

skrip PHP disimpan dengan nama: baca-saja.php

-------------------------------------------------- */

// untuk koneksi ke database server

mysql_connect("localhost","root","");

// memilih nama database yang akan digunakan

$basisdata = mysql_select_db("latihan");

$nomor=0;

echo "<table border=1>";

echo "<tr>";

echo "<th>Nomor</th>";

echo "<th>Nama Orang</th>";

echo "<th>Tempat Lahir</th>";

echo "</tr>";

// kueri untuk membaca data dari tabel manusia

$kueri="select nama_lengkap, tempat_lahir,nomor_data

from manusia order by nama_lengkap";

// menjalankan kueri dan menyimpan hasilnya

$hasil_kueri=mysql_query($kueri);

Page 68: Modul Kuliah Pemrograman Web Oleh

60 BAB 7. PHP

// looping untuk memotong data hasil bacaan

while($orang=mysql_fetch_row($hasil_kueri))

{

echo "<tr>";

$nomor=$nomor+1;

// menyimpan hasil bacaan ke dalam

// variabel yang lebih mudah dipahami

$nama = $orang[0];

$tempat_lahir = $orang[1];

// menampilan ke dalam format tabel

echo "<td align=center>$nomor</td>";

echo "<td>$nama</td>";

echo "<td>$tempat_lahir</td>";

echo "</tr>";

}

echo "</table>";

echo "<marquee>Ilkom Unila</marquee>";

?>

Hasil dari skrip tersebut dapat dilihat pada gambar berikut:

Page 69: Modul Kuliah Pemrograman Web Oleh

7.5. SELECT-OPTION DARI TABEL 61

Gambar 7.1: Tampilan Isi Tabel

7.5 Select-Option dari Tabel

Salah satu bentuk implementasi lain dari proses baca tabel adalah membuat

pilihan Select-Option yang isi pilihannya diambil dari suatu tabel.Tag-tag HTML dasar untuk membuat pilihan kecamatan, contohnya:

<select name=kecamatan>";

<option value=1>Rajabasa</option>

<option value=2>Kedaton</option>

<option value=3>Kemiling</option>

</select>";

Nilai-nilai dari value dan tampilan pilihan, kemudian diambilkan dari tabelkode kecamatan.

Page 70: Modul Kuliah Pemrograman Web Oleh

62 BAB 7. PHP

<?php

/* --------------------------------------------------

contoh program untuk membuat pilihan yang isi

pilihan diambil dari tabel

untuk pembelajaran materi kuliah

-------------------------------------------------- */

// untuk koneksi ke database server

mysql_connect("localhost","root","");

// memilih nama database yang akan digunakan

$basisdata = mysql_select_db("latihan");

// pilihan biasa yang tag HTML disimpan ke dalam

// suatu variabel

$a = "<select name=kecamatan>";

$b = "<option value=1>Rajabasa</option>";

$c = "<option value=2>Kedaton</option>";

$d = "<option value=3>Kemiling</option>";

$e = "</select>";

// tulisan ini kemudian digabungkan ke dalam

// satu variabel

$f = $a.$b.$c.$d.$e;

echo "$f";

echo "<br>";

// kueri membaca isi kode kecamatan

$baca="select kode,keterangan from kode_kecamatan

order by keterangan";

// kueri dijalankan dan hasilnya disimpan

// ke dalam variabel

$hasil_kueri=mysql_query($baca);

// awal dari tag select

$select="<select name=kecamatan>";

// looping pembacaan data

while($kecamatan=mysql_fetch_row($hasil_kueri))

Page 71: Modul Kuliah Pemrograman Web Oleh

7.6. RADIO BUTTON DARI TABEL 63

{

// teksnya dijejerkan

$select=$select."<option value=

".$kecamatan[0].">".$kecamatan[1]."</option>";

}

$select=$select."</select>";

echo "<br><br>$select";

?>

Hasil eksekusi skrip:

Gambar 7.2: Tampilan Select-Option

7.6 Radio Button dari Tabel

Penerapan lain dari proses pembacaan isi suatu tabel adalah membuat pilihan

radio button dengan isi pilihan yang berasal dari suatu tabel. Prinsipnya sama

dengan pembuatan select option.

Pengelompokkan suatu pilihan radio button ditentukan oleh isi name dari

tag radio button ini.Contoh skrip dapat dilihat pada program berikut.

<?php

/* -----------------------------------

program untuk membuat pilihan dengan

Page 72: Modul Kuliah Pemrograman Web Oleh

64 BAB 7. PHP

radio button yang pilihannya diambil

dari tabel suatu basis data

----------------------------------- */

// mendefinikan variabel yang berisi tag radio button

echo "Status: [HTML] <br>";

$a="<input type=radio name=pilihan value=1>Belum Menikah<br>";

$b="<input type=radio name=pilihan value=2>Sudah Menikah<br>";

$c="<input type=radio name=pilihan value=3>Duda/Janda<br><br>";

// tag-tag dijejerkan (digabung)

$f = $a.$b.$c;

// memulai suatu form, belum pakai method, masih form sederhana

echo "<form>";

// menampilan pilihan dengan radio button

echo "$f";

// untuk koneksi ke database server

mysql_connect("localhost","root","");

// memilih nama database yang akan digunakan

$basisdata = mysql_select_db("latihan");

// kueri untuk membaca data dari tabel manusia

$kueri="select kode,keterangan

from kode_marital order by kode";

// menjalankan kueri dan menyimpan hasilnya

$hasil_kueri=mysql_query($kueri);

echo "Status: [PHP] <br>";

// nilai awal masih kosong

$teks_pilihan="";

// looping untuk memotong data hasil bacaan

while($pilihan=mysql_fetch_row($hasil_kueri))

{

$nilai = $pilihan[0];

$keterangan = $pilihan[1];

Page 73: Modul Kuliah Pemrograman Web Oleh

7.6. RADIO BUTTON DARI TABEL 65

// menggabungkan tag-tag pilihan

$teks_pilihan=$teks_pilihan."<input type=radio name=pilih

value=".$nilai.">".$keterangan."<br>";

}

// menampilan tag pilihan radio button

echo "$teks_pilihan<br>";

// akhir suatu form

echo "</form>";

echo "<marquee>Ilkom Unila</marquee>";

?>

Gambar 7.3: Tampilan radio button

Page 74: Modul Kuliah Pemrograman Web Oleh

66 BAB 7. PHP

Page 75: Modul Kuliah Pemrograman Web Oleh

Bab 8

POST dan GET

8.1 Menampilkan Isi Tabel

67

Page 76: Modul Kuliah Pemrograman Web Oleh

68 BAB 8. POST DAN GET

Page 77: Modul Kuliah Pemrograman Web Oleh

Bagian I

Pengolahan Data

69

Page 78: Modul Kuliah Pemrograman Web Oleh
Page 79: Modul Kuliah Pemrograman Web Oleh

Bab 9

Grafik

Informasi merupakan bahan di dalam pengambilan keputusan. Oleh kare-

nanya, sistem yang dikembangkan selayaknya dapat menghasilkan informasi

sebanyak-banyaknya. Bukan sekedar sistem yang berfungsi untuk menyimpan

informasi saja.

Kadang di dalam mendapatkan kebutuhan pemakai terhadap sistem belum

tergali sepenuhnya, sehingga manfaat dari sistem menjadi kurang.

Banyak di antara orang-orang yang merancang suatu sistem, agak pelit

untuk mengembangkan sistem yang mendekati ideal. Walaupun memang ini

dalam tahap pembelajaran. Pada contoh use case berikut, dapat dilihat bahwa

sistem hanya memberikan satu informasi. Pada sistem informasi mestinya ba-

nyak informasi yang dapat diperolah, dengan pemasukkan data yang terbatas.

Semestinya banyak informasi yang dapat diperoleh dari sistem ini.

71

Page 80: Modul Kuliah Pemrograman Web Oleh

72 BAB 9. GRAFIK

Gambar 9.1: Output hanya satu

Page 81: Modul Kuliah Pemrograman Web Oleh

9.1. MENGHITUNG JUMLAH VOKAL DALAM SUATU KALIMAT 73

9.1 Menghitung Jumlah Vokal Dalam Suatu

Kalimat

Misalkan terdapat kalimat dengan tulisan ’Ilmu Komputer FMIPA Univer-

sitas Lampung’. Di dalam kalimat tersebut ada berapa jumlah vokal a, i, u,

e dan o? Barangkali ada yang mengatakan lebih menjawab langsung secara

manual dari pada membuat program untuk menyelesaikan masalah itu ...

Bagaimanakah ide pemecahan masalahnya? Ada banyak cara untuk me-

nyelesaikan masalah tersebut. Oleh karena itu, memang sudah selayaknya,

setiap pembelajar berusaha untuk mencari solusi sendiri. Boleh jadi masing-

masing orang akan mendapatkan solusi yang unik, sesuai dengan ide masing-

masing.

9.1.1 Mengambil per huruf kemudian dijumlahkan

Alternatif pertama adalah dari tulisan tersebut, dibaca per huruf dari huruf

pertama sampai dengan terakhir. Kemudian jika huruf tersebut adalah vokal

’a’ maka jumlah vokal a ditambah dengan satu. Demikian proses yang sama

untuk vokal-vokal yang lain.Proses ini, kemudian dirinci dalam bentuk skrip PHP seperti berikut:

<?php

/* ----------------------------------------------

proses untuk menghitung banyaknya vokal:

a. i, u, e dan o pada suatu kalimat atau kata

dibuat oleh dwi sakethi

---------------------------------------------- */

// membuat judul pada browser

echo "<title>Program Aneka Proses String </title>";

// membuat tampilan di web

Page 82: Modul Kuliah Pemrograman Web Oleh

74 BAB 9. GRAFIK

echo "<h2>Program Aneka Proses String </h2>";

// karena data berasal dari form maka

// esktrak POST - method=post

extract($_POST);

// tampilkan dulu data aslinya

echo "Kalimat : <br>$kalimat <br>";

// counter maka diberi nilai awal 0

// counter adalah variabel yang bentuk di dalam program

// $x = $x + 1, misalnya $jumlah_a=$jumlah_a+1

$jumlah_a = 0;

$jumlah_i = 0;

$jumlah_u = 0;

$jumlah_e = 0;

$jumlah_o = 0;

// menghitung panjang kalimat, untuk proses

// dari awal sampai akhir

$panjang_kalimat = strlen($kalimat);

// looping dari huruf pertama sampai huruf terakhir

for ($posisi=1;$posisi<=$panjang_kalimat;$posisi++)

{

// mengambil huruf ke-i sebanyak satu karakter

$huruf=substr($kalimat,$posisi-1,1);

// ini untuk mencek saja apakah program sudah

// benar mengambil per huruf dari kalimat asli

echo "$huruf ";

// jika hurufnya a, maka jumlah a ditambah 1

if ($huruf==’a’) {$jumlah_a=$jumlah_a+1;}

elseif ($huruf==’i’) {$jumlah_i=$jumlah_i+1;}

elseif ($huruf==’u’) {$jumlah_u=$jumlah_u+1;}

elseif ($huruf==’e’) {$jumlah_e=$jumlah_e+1;}

elseif ($huruf==’o’) {$jumlah_o=$jumlah_o+1;}

}

// menampilkan hasil

echo "<br><br>";

Page 83: Modul Kuliah Pemrograman Web Oleh

9.2. MEREKAP DATA 75

echo "Jumlah a: $jumlah_a <br>";

echo "Jumlah i: $jumlah_i <br>";

echo "Jumlah u: $jumlah_u <br>";

echo "Jumlah e: $jumlah_e <br>";

echo "Jumlah o: $jumlah_o <br>";

?>

9.1.2 Menggunakan fungsi substr count()

9.2 Merekap Data

Misalkan terdapat tabel manusia pada suatu basis data dengan strukturseperti pada tampilan berikut.

mysql> desc manusia;

+-----------------------+---------------+------+-----+----+

| Field | Type | Null | Key |Def.|

+-----------------------+---------------+------+-----+----+

| Nomor_Data | int(7) | NO | PRI |NULL|

| Nama_Lengkap | char(68) | NO | | - |

| Jenis_Kelamin | enum(’L’,’P’) | NO | | - |

| Tempat_Lahir | char(46) | NO | | - |

| Tanggal_Lahir | date | NO | | - |

| Alamat | varchar(123) | YES | | - |

| RT | char(3) | YES | | - |

| RW | char(3) | YES | | - |

| Kecamatan | char(3) | YES | | - |

| Kelurahan | int(5) | NO | | 0 |

| Status_Marital | char(1) | YES | | - |

| Suku | int(3) | YES | | 0 |

| Tingkat_Pendidikan | tinyint(1) | YES | | 0 |

Page 84: Modul Kuliah Pemrograman Web Oleh

76 BAB 9. GRAFIK

| Program_Studi | int(4) | YES | | 0 |

| Golongan_Darah | int(1) | YES | | 0 |

| Telpon | char(23) | YES | | - |

| Email | char(46) | YES | | - |

| Pekerjaan | tinyint(2) | YES | | 0 |

| Nama_Istri | char(68) | YES | | - |

+-----------------------+---------------+------+-----+----+

Dari data yang tersimpan ini, akan dihitung berapa jumlah laki-laki dan

berapa jumlah perempuan. Proses perhitungan ini, mirip dengan apa yang

dilakukan dengan cara manual. Meskipun memang terdapat modifikasi sesuai

dengan apa yang dapat dilakukan dengan komputer.Contoh skrip untuk melakukan rekapitulasi dapat dilihat pada skrip beri-

kut:

9.3 Grafik dengan Fushion Chart

Page 85: Modul Kuliah Pemrograman Web Oleh

Bab 10

Penutup

Semoga tulisan ini bisa menjadi pemacu atau sumber inspirasi bagi siapa

saja yang sedang belajar HTML/PHP atau mengajarkan pemrograman.

77

Page 86: Modul Kuliah Pemrograman Web Oleh

78 BAB 10. PENUTUP

Page 87: Modul Kuliah Pemrograman Web Oleh

Bab 11

Daftar Pustaka

Englander, Irv, 2009, The Architecture Of Computer Hardware, System Soft-

ware, and Networking An Information Technology Approach, Fourth Edition,

John Wiley Sons, Inc.

79