Dalam perkembangan dunia web (world wide web) yang semakin lama semakin cepat ini, penggunaan program yang bekerja dalam website sebagai pengolah data dan database sebagai media penyimpanan data tidak dapat ditinggalkan lagi. Karena website yang sifatnya statis atau dalam arti hanya menyajikan data-data statis, dan pengunjung tidak dapat berinteraksi dalam memberikan argumennya dapat mengakibatkan kejenuhan bagi para pengunjung untuk membukanya kembali. Agar pengunjung tertarik dan dapat berinteraksi dengan web server atau pengunjung yang lain, maka Anda perlu untuk menggunakan sebuah program dan database yang dapat menangani masalah ini, sehingga mampu menjadikan website Anda menjadi lebih interaktif. Bertolak dari permasalahan tersebut, buku ini memberikan tip dan trik dengan menggunakan bahasa yang singkat namun mudah dipahami, termasuk bagi pembaca yang baru mengenal pemrograman PHP dan MySQL. Setelah Anda membaca dan mempelajari buku ini, Anda akan dapat membuat serta mengelola aplikasi-aplikasi website yang interaktif. Adapun materi-materi yang dibahas dalam buku ini mencakup: Instalasi Webserver, Modul PHP dan MySQL Mengawali Penulisan Kode Program PHP Jenis Data, Variabel dan Operator dalam Program PHP Struktur Control Fungsi Data Array Fungsi Pengolah String Fungsi Tanggal dan Waktu Operasi File Session dan Cookies Fungsi Mengirim Email Menggunakan Database MySQL Aplikasi Buku Tamu Aplikasi Counter Aplikasi Jajak Pendapat Aplikasi Berita Online.
Daftar Isi
Kata Pengantar .............................................................. Daftar Isi ........................................................................
BAB 1 PENGENALAN DAN INSTALASI PHP
iii v
Mengapa Menggunakan PHP ? ..................................................... Menggunakan Buku Ini ................................................................... Instalasi Program PHP ....................................................................
Instalasi Modul PHP .......................................................... Instalasi Server Microsoft IIS ............................................ Instalasi MySQL ................................................................
2 2 3 4 6 10 13
15
19 19 19 20 22
27 29 31
Operator Aritmatika ......................................................................... Operator Increment / Decrement .................................................... Operator String ................................................................................ Operator Bitwise .............................................................................. Operator Perbandingan .................................................................. Operator Logika............................................................................... Operator Presedence...................................................................... Operasi Nilai Variabel dari Form HTML..........................................
33 34 35 36 37 37 38 39
Pernyataan If ...................................................................................
Fungsi If dalam Satu Statement .................................... Fungsi If Else .......................................................... Fungsi If Elseif sebagai Alternatif Ganda ...............
43 43 45 47 48 52
Aplikasi Program PHP dan MySQL While Loop ........................................................................ Do While ....................................................................... For Loop............................................................................ 52 54 55
Array ................................................................................................
Membuat dan Mengakses Array ....................................... Array Multidimensi............................................................. Menambah Data Array ...................................................... Menggabungkan Array ...................................................... Menghapus Data Array ..................................................... Mengurutkan Array............................................................ Membuat Data Array dari Mengakses File ........................ Menampilkan String ......................................................... Menghitung Panjang String ............................................... Mengirimkan Argumen ...................................................... Include dan Require .......................................................... Mengambil dan Menggabung Elemen...............................
57 58 60 62 64 65 66 68 69 69 72 75 77 80
Fungsi ..............................................................................................
85 85 87 88
Aplikasi Program PHP dan MySQL Fungsi Penghapus Spasi pada String ............................... Fungsi Pemecah String ..................................................... Fungsi Pengubah Bentuk Penulisan Huruf........................ Fungsi Pengulang Penulisan String .................................. Fungsi Pencari String ........................................................ Contoh Penggunaan Fungsi Ereg() dalam Program ......... Fungsi Pencari dan Pengganti String ................................ Fungsi Crc32 ..................................................................... Fungsi Crypt() ................................................................... Fungsi Md5() ..................................................................... Fungsi HTMLentities ......................................................... Fungsi Nl2br ...................................................................... Fungsi Strip_Tags ............................................................. 90 91 95 98 100 105 109 112 112 113 115 118 118 120 122
Mengecek Keberadaan File ............................................................ Mengakses File ............................................................................... Membaca Isi File ............................................................................. Menambah Isi File ........................................................................... Menyalin File ................................................................................... Mengganti Nama dan Menghapus File .......................................... Men-download File ..........................................................................
147
Fungsi Date ..................................................................................... Fungsi Microtime ............................................................................. Fungsi Date dengan Dua Argumen ................................................
BAB 11 MENGGUNAKAN SESSION DAN COOKIES
Session ............................................................................................
Membuat Session ............................................................. Membuat Session dengan Fungsi Session_Register() ..... Mengecek Hasil Registrasi ................................................ Menghapus Variabel Session ........................................... Membuat Cookies ............................................................. Set Cookies dengan Batas Waktu .................................... Menghapus Cookies .........................................................
Cookies............................................................................................
185
Koneksi ke Database ...................................................................... Membuat Database ......................................................................... Membuat Tabel ............................................................................... Tipe Data Field ................................................................................ Tipe Data Numerik ............................................................
Aplikasi Program PHP dan MySQL Tipe Data String ................................................................ Tipe Data Char() dan Varchar()......................................... Tipe Data Tanggal ............................................................. 197 198 199 199 206 212 219 222 223 225 227
Memasukkan Data .......................................................................... Mencari dan Menampilkan Data ..................................................... Mengubah Data............................................................................... Menghapus Data ............................................................................. Mengubah Struktur Tabel .................................................. Menambah Field Tabel...................................................... Mengubah Field Tabel ...................................................... Menghapus Field Tabel .....................................................
Struktur Database ........................................................................... Bagian Administrator ....................................................................... Bagian Tampilan Pertanyaan Jajak Pendapat ............................... Tampilan Hasil Jajak Pendapat ......................................................
286
Membuat Database dan Tabel ....................................................... File Koneksi PHP dengan MySQL.................................................. Halaman Anggota............................................................................
Halaman Pendaftaran ....................................................... Halaman Login ..................................................................
293 295 296 296 320 334 351 352 363 367
PENGERTIAN DATABASE
Buku ini membahas tentang pembuatan program aplikasi database sistem informasi manajemen pendidikan berbasis web, yaitu menggunakan bahasa pemrograman PHP dan database MySQL. Dalam pembahasannya nanti juga disertai keterangan-keterangan dari masing-masing listing program, sehingga Anda mudah untuk memahami maksud dan tujuan pembuatan program ini. Selain penjelasan tentang pembuatan dan listing script PHP juga membahas tentang database MySQL yang sangat terkenal handal dalam menangani database berbasis web. Pada program ini khususnya membahas tentang pembuatan program sistem informasi manajemen online berbasis web. Sub sistem yang ada dalam program ini mulai input data pengolahan data siswa, pengolahan data nilai siswa, input dan pengolahan data instruktur, juga komponen-komponen lain yang mendukung program ini. Mengapa menggunakan bahasa program PHP dan berbasis web dalam membuat program ini? Alasannya adalah: 1. 2. Bahasa program PHP terbukti sangat handal dalam membangun sebuah program berbasis web. Waktu yang digunakan untuk memproses data dan menjalankan printah-perintah query sangat cepat.
Aplikasi Program PHP dan MySQL 3. 4. Dengan berjalan dalam sebuah web server, maka secara otomatis program ini bersifat multiuser. Database MySQL dalam menyimpan data ditempatkan ke dalam direktori khusus dan terpisah dengan file program PHP yang lain, sehingga keamanan data dari orang usil lebih terjaman. Web server dan database server terpisah sehingga menyulitkan pihak luar yang tidak punya akses untuk mengakses data yang di dalam database. Bahasa program PHP dan database MySQL lebih fleksibel, karena dapat diakses dalam sistem operasi Windows maupun linux. Program dapat diakses dari komputer manapun tanpa harus menginstall program client. Program bantuan untuk mengakses sistem ini hanya sebuah browser yang mudah dicari.
5.
6.
7.
Dalam pembuatan sebuah program aplikasi yang baik, pengolahan data merupakan kunci utama dari kesempurnaan fungsi. Dengan adanya pengolahan data yang baik, maka Anda dapat dengan mudah mengakses data yang dibutuhkan. Sebelum Anda memasuki tahap pembuatan aplikasi yang memanfaatkan fasilitas database, sebaiknya Anda mengenal lebih dulu tentang database. Database adalah sekumpulan data yang terdiri atas satu atau lebih tabel yang saling berhubungan. Anda atau user mempunyai wewenang untuk mengakses data tersebut, baik menambah mengubah atau menghapus data yang ada dalam tabel-tabel tersebut.
TABEL
Tabel adalah media untuk menyimpan data yang telah diolah dan mempunyai sesuatu tema tertentu, misalnya tabel yang digunakan untuk menyimpan data tentang karyawan berisikan tentang nomor induk karyawan, nama karyawan alamat karyawan dan status karyawan yang disimpan kedalam field-field tertentu. 9
Aplikasi Program PHP dan MySQL Berikut ini adalah contoh tabel yang digunakan untuk menyimpan data tentang karyawan: Tabel 1.1 Contoh tabel karyawan NIK Nama_karyawan Yeni cahyono Susiana Heri Purwanto Wawan Mei Lenawati alamat Jl. Arumdalu 25 Ponorogo Jl. Manggis 43 Ponorogo Jl. Lawu 59 Madiun Jl.Arjuna 63 Madiun Jl. Melati 54 Madiun jabatan Instruktur Administrasi Instruktur Kepala Bagian Bendahara
A
Keterangan: A : Kolom atau Field B : Baris atau Record Field adalah tempat dimana data atau informasi dalam kelompok sejenis dimasukkan. Record adalah data lengkap dalam jumlah tunggal yang tersimpan dalam bentuk baris horisontal pada tabel. Dalam satu tabel dapat diinputkan beberapa record sekaligus.
SKEMA DATABASE
Database digunakan untuk menampung beberapa tabel atau query yang dijadikan median untuk menyimpan data sebagai sumber pengolahan data. Berikut ini adalah salah satu contoh skema database:
10
database_siswa
data_siswa Nim Nama Alamat Tgl_lahir Sex Asal_sekolah Agama Kelas jurusan data_nilai Nim Kelas Jurusan nilai_harian nilai_uts nilai_uas nilai_akhir absensi Kelas Jurusan Nim nama krs Nim Nama Kelas Jurusan Materi Instruktur Nilai_harian Nilai_tugas Nilai_uts Nilai_uas Nilai_akhir grade
Skema yang ditampilakan di atas menunjukkan bahwa sebuah database dapat menampung beberapa tabel. Kemudian dalam tiap-tiap tabel terdiri dari beberapa field. Dalam suatu program database berbasis web, seperti sebuah web berita, web komunitas, forum diskusi, buku tamu sebaiknya dibuat sebuah database terstruktur dan sistematis. Dengan demikian program tersebut dapat berumur panjang dan dapat dioperasikan dengan kecepat yang optimal. Yang perlu diperhatikan dalam membuat database adalah memori yng digunakan untuk menyimpan data di dalamnya. Semakin tidak efisiensi dalam penggunaan tipe dan lebar field, maka akan semakin tidak hemat memori penyimpanan data. Oleh karena itu dalam membuat tabel Anda harus memperhatikan panjang field dengan panjang data yang akan Anda inputkan dalam field tersebut. Misalkan untuk membuat filed tahun lebih baik menggunakan panjang 4, karena untuk tahun hanya mempunyai 4 karakter saja. Selain panjang field yang perlu Anda perhatikan 11
Aplikasi Program PHP dan MySQL adalah tipe field. Tipe field sebaikkan sesuaikan dengan jenis data yang akan diinputkan, misalkan data angka, teks atau data tanggal. Hal yang perlu Anda perhatikan adalah pemberian nama tabel dan field. Untuk memberikan nama database, tabel dan filed membedakan huruf kapital dan huruf kesil. Selain itu juga tidak mengijinkan penggunakan spasi dan karakter-karakter khusus seperti ? < > * & ^ # @ !.
12
Aplikasi Program PHP dan MySQL mempengaruhi penggunaan relasi ini. Karena relasi dijalankan setelah data dibaca oleh script PHP.
13
14
Aplikasi Program PHP dan MySQL a. Data karyawan Data karyawan ini mencakup nama, alamat, tempat dan tanggal lahir, nomor telepon, pendidikan terakhir,status perkawinan, status jabatan, jabatan, mulai kerja, UserID dan password karyawan. b. Data siswa Data siswa baru yang akan dimasukkan ke dalam program adalah nama, jenis kelamin, alamat, tempat tanggal lahir,agama, nomor telepon,pendidikan terakhir, asal sekolah, nama orang tua, pekerjaan orang tua, mulai masuk, nama kelas, UserID dan password siswa untuk login siswa tersebut ke dalam sistem. c. Data kelas Data kelas adalah informasi tentang kelas tersebut, antara lain nama dan jenis jenjang pendidikan yaitu Diploma dan Reguler. d. Data jurusan Data jurusan yang dimasukkan administrator adalah nama jurusan, kode jurusan dan keterangan tentang jurusan tersebut. e. Data materi. Untuk data materi ini ada dua jenis, yaitu bagian untuk memasukkan data materi baru yang mencakup informasi tentang nama materi dan jumlah session. Bagian yang kedua adalah untuk membuat tabel baru yang digunakan untuk menampung data-data siswa dan materi yang di tempuh oleh siswa dari kelas tertentu. Informasi yang dimasukkan adalah nama materi, instruktur, assisten 1, assisten 2, nama kelas, jumlah session, mulai masuk, jam masuk dan hari masuk. Selain itu seorang passwordnya sendiri. administrator juga dapat mengganti
15
Aplikasi Program PHP dan MySQL Hak akses administrator yang ke dua adalah melihat dan mengamati perkembangan siswa dalam proses belajar, yaitu meliputi nilai harian, nilai tugas, nilai tengah semester, nilai semester yang dimasukkan oleh Instrukturnya. Data yang ke dua adalah data absensi atau keaktifan siswa tersebut dalam mengikuti pelajaran. Selain itu seorang Administrator juga dapat mencetak laporan nilai dan keaktifan siswa tiap kelas atau materi yang ditempuh. 9. Instruktur / Karyawan Instruktur adalah karyawan yang bertugas mengajar materimateri tertentu dalam proses belajar mengajar. Dalam sistem ini seorang instruktur mempunyai hak akses untuk memberikan laporan nilai siswa dan laporan keaktifan siswa dalam menempuh pelajaran. 10. Siswa Siswa dalam program ini hanya memiliki hak akses untuk melihat nilai dan data keaktifan siswa tersebut. Jadi siswa tidak dapat melihat nilai dan data keaktifan siswa lain walaupun sama-sama satu kelas dan menempuh materi pelajaran yang sama. 11. Orang tua siswa / Wali siswa Orang tua siswa atau wali siswa dalam sistem ini berperan sebagai subyek yang mengontrol anaknya yang telah menempuh pelajaran dalam lembaga ini. Orang tua siswa dapat melihat perkembangan anaknya dengan melihat data yang ada dalam program ini dengan menggunakan fasilitas userID dan password yang diberikan oleh administrator.
16
2.
3. 4.
MANAJEMEN PENDIDIKAN
Untuk memperjelas gambaran sistem informasi manajemen pendidikan berbasis website yang akan dibuat ini akan digambarkan sebuah struktur dan alur sistem di bawah ini: Alur data dan aktivitas yang dilakukan oleh administrator
17
Tabel karyawan Tabel siswa Tabel Data_materi Input data Tabel jurusan Tabel Data_materi Tabel kelas Tabel Kelas_n1,n2,..
Data untuk materi baru Data jurusan Data materi baru Kelas kelas
Keterangan:
Masing-masing data dapat dimasukkan pada satu database dengan tabel yang berbeda-beda sesuai dengan jenis data yang dimasukkan. Untuk tabel kelas_1, kelas_2, kelas_3, kelas_n1,n2 adalah tabel baru yang akan dibuat secara otomatis oleh program apabila ada kelas baru. Tabel tersebut dibuat mengacu pada nama kelas yang dimasukkan pada tabel kelas. Artinya setiap ada data kelas baru yang dimasukkan pada tabel kelas, maka pada database juga akan di buatkan tabel baru dengan nama kelas_n ( n adalah nomor id dari data kelas dari tabel kelas ).
Proses / alur membuat materi baru dari kelas yang sudah terdaftar
18
Tabel kelas_n
Gambar 2.2. Struktur / alur membuat materi pelajaran untuk kelas yang sudah terdaftar oleh administrator
Keterangan:
Yang dimaksud dengan membuat materi baru pada kelas yang sudah terdaftar adalah proses mendaftarkan siswa pada kelas tertentu kedalam tabel kelas_n tersebut. Proses ini dilaksanakan berdasarkan data-data yang sudah ada. Untuk materi baru ini membutuhkan beberapa data, yang pertama adalah data kelas yang menempuh materi tersebut. Yang ke dua adalah nama materi diambil dari tabel data_materi, kemudian juga nama-nama siswa dari kelas tersebut dengan membaca tabel siswa. Yang terakhir adalah membaca tabel
19
Aplikasi Program PHP dan MySQL karyawan untuk mengambil nama instruktur sebagai pembimbing kelas dengan materi tersebut. Data-data tersebut kemudian dimasukkan ke dalam tabel kelas_n tersebut, sehingga dapat diakses dengan mudah oleh administrator, instruktur, siswa dan juga orang tua siswa.
20
Data administrator
tidak
cocok
tabel materi
tabel kelas
tabel kelas_n
Baca tabel kelas_n berdasarkan data materi dan kelas Tampilan cetak data absensi Hasil cetak data abseni
Gambar 2.3. Struktur / alur membuat laporan kehadiran dan nilai siswa oleh administrator
21
Keterangan:
Salah satu tugas administrator adalah mencetak arsip yang dibutuhkan adalah data nilai siswa dan data absensi siswa. Untuk mencetak data tersebut dibutuhkan beberapa urutan tingkatan. Yang pertama administrator harus melakukan login untuk mauk ke dalam sistem. Apabila userid dan password sesuai maka sistem akan membaca data materi dan kelas. Apabila password tidak sesuai maka sistem akan membawa administtrator ke halaman login kembali. Data materi dan kelas yang telah dibaca kemudian digunakan untuk membaca data kelas_n yang berisikan tentang siswa, nilai siswa, kehadiran siswa, data instruktur. Data tersebut kemudian ditampilkan dalam bentuk tampilan cetak yang kemudian dapat dicetak oleh administrator sebagai arsip manual. Alur data dan aktivitas yang dilakukan oleh instruktur Proses / alur mengisi data absensi dan nilai siswa.
22
Data karyawan
tidak
cocok
Tabel kelas
Membaca data kelas dan materi Membaca data siswa berdasarkan materi tertentu Tampilan data absensi / nilai Formulir ubah data kehadiran siswa berdasar session Proses ubah data absensi / nilai berhasil
Tabel materi
Tabel Kelas_n
23
Keterangan:
Tugas dari instruktur dalam sistem ini adalah mengisi formulir kehadiran dan nilai siswa untuk laporan ke bagian administrasi / administrator. Tahap yang pertama instruktur harus melakukan login pada halaman formulir untuk login. Apabila data password yang diisikan sesuai dengan data password yang ada dalam tabel karyawan, maka sistem akan membaca tabel kelas dan materi. Apabila password yang dimasukkan tidak sesuai dengan data password yang ada pada tabel karyawan, maka akan dialihkan ke halaman formulir login kembali untuk mengulaginya. Data yang dibaca dari tabel kelas dan data materi yang dibaca dari tabel materi tersebut digunakan untuk membaca data siswa yang ada di tabel kelas tertentu yang telah mengikuti materi tertentu tersebut. Data siswa akan ditampilkan menjadi dua halaman yaitu data kehadiran siswa dan data nilai siswa. Kedua jenis data tersebut dapat diubah nilainya oleh instruktur. Hasil perubahan tersebut akan dikirim kembali ke tabel kelas_n tersebut. Setelah proses selesai maka akan diarahkan kembali pada halaman tampilan data kehadiran maupun nilai siswa. Alur data dan aktivitas yang dilakukan oleh siswa untuk melihat data nilai dan kehadiran siswa tersebut. Proses / alur melihat data absensi dan nilai siswa.
24
Data siswa
tidak
cocok
Tabel Kelas_n
keluar
Gambar 2.4. Struktur / alur melihat data kehadiran dan nilai siswa oleh siswa
Keterangan:
Karena siswa hanya mempunyai hak akses melihat data saja, maka alur data dalam sistem juga lebih sederhana dari pada alur data yang dijalankan oleh administrator atau instruktur. 25
Aplikasi Program PHP dan MySQL Yang pertama siswa harus login melalui formulir login. Apabila data password yang dimasukkan sesuai dengan data password yang ada dalam database, maka akan dibuka halaman siswa yang menginformasikan tentang data pribadi siswa, data kehadiran siswa dan data nilai siswa. Alur data dan aktivitas yang dilakukan oleh wali siswa untuk melihat data nilai dan kehadiran siswa. Proses / alur melihat data absensi dan nilai siswa.
26
tidak
cocok
Tabel Kelas_n
keluar
Gambar 2.4. Struktur / alur melihat data kehadiran dan nilai siswa oleh wali siswa
Keterangan:
Wali siswa atau orang tua siswa dalam sistem ini aktivitasnya hanya melihat data nilai dan kehadiran anaknya. Jadi alur data dan sistemnya tidak jauh berbeda dengan alur data yang dilakukan oleh 27
Aplikasi Program PHP dan MySQL siswa. Bedanya pada alur data yang dilakukan oleh siswa membaca tabel siswa terlebih dahulu, tetapi alur data untuk wali siswa membaca data wali siswa terlebih dahulu.
MEMBUAT DATABASE
Untuk menyimpan semua data yang ada dalam sistem informasi manajemen pendidikan ini dibutuhkan sebuah database yang dibuat dalam MySQL. Database ini diberi nama pendidikan. Database pendidikan dibuat menggunakan script php yang disimpan pada sebuah file dan dijalankan dibrowser yang sebelumnya disimpan pada web server. Script php yang digunakan untuk membuat database tersebut adalah: <?php $host="localhost"; $userdb="root"; $passdb=""; $sambung=mysql_connect($host,$userdb,$passdb); mysql_create_db("pendidikan",$sambung); echo"Database pendidikan berhasil dibuat."; ?> Keterangan: Sebelum membuat sebuah database dibutuhkan script yang berfungsi untuk melakukan koneksi dengan Mysql, yaitu menggunkan fungsi mysql_conect() dengan hosting localhost, userid root dan password dalam kasus ini tidak ada. Kemudian untuk membuat database baru menggunakan fungsi mysql_create_db(pendidikan, $sambung); .
28
MEMBUAT TABEL
Tabel adalah bagian dari database yang berfungsi untuk menyimpan data-data tertentu. Pada program ini dibutuhkan banyak tabel, karena jenis data yang akan dimasukkan juga bermacam-macam. Dengan menggunakan tabel akan memudahkan seorang pembuat program dalam mengatur dan merancang struktur program. Tabel yang akan dibuat untuk program sistem informasi manajemen pendidikan ini dibuat berdasarkan jenis data yang akan dimasukkan.
TABEL KARYAWAN
Tabel karyawan digunakan untuk menampung data-data yang berhubungan dengan karyawan. Berikut adalah field-field yang dibuat dalam tabel karyawan:
Nama Alamat Ttl Agama telepon Pendidikan Perkawinan Stt_jabatan Jabatan Mulai Masa Userid password
varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar
30 100 200 15 15 50 30 30 20 30 30 10 10
29
Aplikasi Program PHP dan MySQL Untuk membuat tabel karyawan tersebut menggunakan script php sebagai berikut: <?php $host="localhost"; $userdb="root"; $passdb=""; $sambung=mysql_connect($host,$userdb,$passdb); mysql_select_db($namadb,$sambung); $buat_tabel=mysql_query(CREATE TABLE karyawan ( id INT( 2 ) NOT NULL AUTO_INCREMENT PRIMARY KEY , nama VARCHAR( 30 ) NOT NULL , alamat VARCHAR( 100 ) NOT NULL , ttl VARCHAR( 200 ) NOT NULL , agama VARCHAR( 15 ) NOT NULL , telepon VARCHAR( 15 ) NOT NULL , pendidikan VARCHAR( 50 ) NOT NULL , perkawinan VARCHAR( 30 ) NOT NULL , stt_jabatan VARCHAR( 30 ) NOT NULL , jabatan VARCHAR( 20 ) NOT NULL , mulai VARCHAR( 30 ) NOT NULL , masa VARCHAR( 30 ) NOT NULL , userid VARCHAR( 10 ) NOT NULL , password VARCHAR( 10 ) NOT NULL )); If($buat_tabel){ EchoTabel karyawan berhasil dibuat; }else{ EchoTabel karyawan gagal dibuat; }
30
TABEL SISWA
Tabel 2.2 Struktur tabel siswa
Field name Id nama sex alamat tempat_lahir tgl_lahir agama telepon pendidikan asal_sekolah orang_tua pekerjaan masuk kelas userid password status Type int varchar varchar varchar varchar int varchar varchar varchar varchar varchar varchar int varchar varchar varchar int Field Size 2 30 10 200 20 30 20 15 30 50 50 100 20 20 50 10 1 Keterangan Nomor id siswa (primary key, index) Nama siswa Jenis kelamin Alamat siswa Tempat lahir siswa Tanggal lahir siswa Agama siswa Nomor telepon siswa Pendidikan terakhir siswa Asal sekolah siswa Nama orang tua siswa Pekerjaan orang tua Mulai masuk Kelas Userid siswa Password siswa Status keaktifan
Script untum membuat tabel siswa tersebut adalah sebagai berikut: <?php $host="localhost"; $userdb="root"; $passdb=""; $sambung=mysql_connect($host,$userdb,$passdb); mysql_select_db($namadb,$sambung); $buat_tabel=mysql_query(CREATE TABLE siswa (
31
Aplikasi Program PHP dan MySQL id int(4) NOT NULL auto_increment, nama varchar(30) NOT NULL default '', sex varchar(10) NOT NULL default '', alamat varchar(200) NOT NULL default '', tempat_lahir varchar(20) NOT NULL default '', tgl_lahir int(30) NOT NULL default '0', agama varchar(20) NOT NULL default '', telepon varchar(15) NOT NULL default '', pendidikan varchar(30) NOT NULL default '', asal_sekolah varchar(50) NOT NULL default '', orang_tua varchar(50) NOT NULL default '', pekerjaan varchar(100) NOT NULL default '', masuk int(20) NOT NULL default '0', kelas varchar(20) NOT NULL default '', userid varchar(50) NOT NULL default '', password varchar(10) NOT NULL default '', status int(1) NOT NULL default '1', PRIMARY KEY (id) )); If($buat_tabel){ EchoTabel siswa berhasil dibuat; }else{ EchoTabel siswa gagal dibuat; }
TABEL KELAS
Tabel kelas digunakan untuk menampung data-data nama kelas. Filed-field yang digunakan adalah:
Script php yang digunakan untuk membuat tabel kelas tersebut adalah: <?php $host="localhost"; $userdb="root"; $passdb=""; $sambung=mysql_connect($host,$userdb,$passdb); mysql_select_db($namadb,$sambung); $buat_tabel=mysql_query(CREATE TABLE kelas ( id int(3) NOT NULL auto_increment, nama varchar(15) NOT NULL default '', jenis varchar(10) NOT NULL default '', status varchar(10) NOT NULL default '', PRIMARY KEY (id) )); If($buat_tabel){ EchoTabel kelas berhasil dibuat; }else{ EchoTabel kelas gagal dibuat; }
TABEL JURUSAN
Tabel jurusan ini khusus digunakan untuk menampung data-data nama materi. Filed-field yang digunakan adalah:
Aplikasi Program PHP dan MySQL key, index) Kode jurusan Nama jurusan Keterangan jurusan
10 255 255
Script php yang digunakan untuk membuat tabel jurusan tersebut adalah: <?php $host="localhost"; $userdb="root"; $passdb=""; $sambung=mysql_connect($host,$userdb,$passdb); mysql_select_db($namadb,$sambung); $buat_tabel=mysql_query(CREATE TABLE jurusan ( id int(3) NOT NULL auto_increment, kode varchar(10) NOT NULL default '', nama varchar(255) NOT NULL default '', keterangan varchar(255) NOT NULL default '', PRIMARY KEY (id) )); If($buat_tabel){ EchoTabel jurusan berhasil dibuat; }else{ EchoTabel jurusan gagal dibuat; }
TABEL MATERI
Berikut ini adalah struktur tabel materi yang akan digunakan untuk menampung data materi:
34
Aplikasi Program PHP dan MySQL Field name Id Type int Field Size 3 Keterangan
nama varchar kelas int instruktur varchar Assisten1 Varchar Assisten2 Varchar Jml_session Int Mulai Varchar Jam_masuk Varchar Hari_masuk Varchar Status Int Script php yang digunakan adalah: <?php $host="localhost"; $userdb="root"; $passdb="";
Nomor id materi (primary key, index) 15 Nama materi 2 id kelas 30 Id karyawan 30 Id karyawan 30 Id karyawan 2 Jumlah pertemuan 15 Waktu mulai pelajaran 15 Jam masuk pelajaran 200 Hari masuk pelajaran 1 Status pelajaran untuk membuat tabel materi tersebut
$sambung=mysql_connect($host,$userdb,$passdb); mysql_select_db($namadb,$sambung); $buat_tabel=mysql_query(CREATE TABLE materi ( id int(3) NOT NULL auto_increment, nama varchar(15) NOT NULL default '', kelas int(2) NOT NULL default '0', instruktur varchar(30) NOT NULL default '', assisten1 varchar(30) NOT NULL default '', assisten2 varchar(30) NOT NULL default '', jml_session int(2) NOT NULL default '0', mulai varchar(15) NOT NULL default '', jam_masuk varchar(15) NOT NULL default '', hari_masuk varchar(200) NOT NULL default '', status int(1) NOT NULL default '1', PRIMARY KEY (id) 35
Aplikasi Program PHP dan MySQL )); If($buat_tabel){ EchoTabel materi berhasil dibuat; }else{ EchoTabel materi gagal dibuat; }
TABEL DATA_MATERI
Tabel data_materi ini berbeda dengan tabel materi. Tabel data_materi ini berisikan data materi saja. Berikut adalah fieldfield yang ada pada tabel data_materi tersebut:
Nomor id materi (primary key, index) nama varchar 200 Nama materi session int 2 Jumlah session Script php yang digunakan untuk membuat tabel data_materi tersebut adalah: <?php $host="localhost"; $userdb="root"; $passdb=""; $sambung=mysql_connect($host,$userdb,$passdb); mysql_select_db($namadb,$sambung); $buat_tabel=mysql_query(CREATE TABLE data_materi ( id int(3) NOT NULL auto_increment, nama varchar(200) NOT NULL default '', session int(2) NOT NULL default '0', PRIMARY KEY (id) 36
Aplikasi Program PHP dan MySQL )); If($buat_tabel){ EchoTabel data_materi berhasil dibuat; }else{ EchoTabel data_materi gagal dibuat; }
TABEL WALISISWA
Tabel walisiswa digunakan untuk menampung data walisiswa, seperti nama, userid dan password. Berikut adalah filed-field yang ada dalam tabel walisiswa:
Nomor id wali siswa (primary key, index) Id_siswa varchar 4 ID siswa Nama_siswa varchar 30 Nama siswa nama varchar 50 Nama wali siswa userid varchar 10 Userid wali siswa password varchar 10 Password wali siswa Script php yang digunakan untuk membuat tabel walisiswa tersebut adalah: <?php $host="localhost"; $userdb="root"; $passdb=""; $sambung=mysql_connect($host,$userdb,$passdb); mysql_select_db($namadb,$sambung); $buat_tabel=mysql_query(CREATE TABLE wali_siswa (
37
Aplikasi Program PHP dan MySQL id int(4) NOT NULL auto_increment, id_siswa int(4) NOT NULL default '0', nama_siswa varchar(30) NOT NULL default '', nama varchar(50) NOT NULL default '', userid varchar(10) NOT NULL default '', password varchar(10) NOT NULL default '', PRIMARY KEY (id) )); If($buat_tabel){ EchoTabel walisiswa berhasil dibuat; }else{ EchoTabel walisiswa gagal dibuat; }
TABEL ADMINISTRATOR
Tabel administrator digunakan untuk menampung data untuk administrator / administrasi, seperti nama, userid dan password. Berikut adalah filed-field yang ada dalam tabel administrator:
nama varchar 20 userid varchar 8 password varchar 8 Script php yang digunakan untuk tersebut adalah: <?php $host="localhost"; $userdb="root"; $passdb=""; 38
Nomor id administrator (primary key, index) Nama Administrator Userid administrator Password administrator membuat tabel administrator
Aplikasi Program PHP dan MySQL $sambung=mysql_connect($host,$userdb,$passdb); mysql_select_db($namadb,$sambung); $buat_tabel=mysql_query(CREATE TABLE administrator ( id int(2) NOT NULL auto_increment, userid varchar(8) NOT NULL default '', password varchar(8) NOT NULL default '', nama varchar(20) NOT NULL default '', PRIMARY KEY (id) )); If($buat_tabel){ EchoTabel administrator berhasil dibuat; }else{ EchoTabel administrator gagal dibuat; }
39
SCRIPT PENDUKUNG
Script pendukung dalam file ini ada beberapa yang akan dibuat. Script tersebut akan disimpan ke dalam file, sehingga file tersebut dapat dipanggil oleh file lain yang membutuhkannya.
40
41
Aplikasi Program PHP dan MySQL 'Desember'); $bulan=$bln[$m+1]; $tahun="$y"; $jam= date("H:i:s"); $hari_ini="$d $bulan $y"; ?>
Keterangan:
Pada script ini menggunakan beberapa fungsi, yang pertama adalah fungsi date() yang digunakan untuk membaca data waktu sekarang pada server. Kemudian untuk mendeklarasikan data bulan dalam bahasa Indnesia, maka harus diterjemahkan sendiri menggunakan fungsi array() yang memiliki data nama-nama bulan dalam bahasa Indonesia.
Keterangan:
42
Aplikasi Program PHP dan MySQL Script ini berisi dua fungsi utama yaitu fungsi if dan dan fungsi session_is_registerd(). Fungsi ini memeriksa keberadaan data sesi yang terdaftar. Apabila data sesi tidak terdaftar maka pengunjung akan dialihkan ke halaman index.php.
MENGHAPUS SESSION
Script ini berfungsi untuk menghapus data sesi. Apabila seorang user atau anggota meninggal halaman anggota, agar data sesi dihapus maka data sesi harus dihapus. Hal ini dilakukan agar kemanan data terjaga karena pengunjung lain tidak dapat mengakses halaman anggota tanpa melakukan login terlebih dahulu. Script yang digunakan untuk menghapus data sesi ini adalah sebagai berikut: <? session_start(); session_destroy(); header("location:index.php"); ?>
Keterangan:
Fungsi yang digunakan untuk menghapus data sesi adalah session_destroy();. Setelah data sesi terhapus maka pengunjung akan dialihkan ke halaman index.php menggunakan fungsi header();.
43
Halam utama dalam sebuah program berbasis web disebut juga dengan nama halaman index. Halaman ini adalah halaman yang akan diakses pertama kali oleh user. Biasanya halaman ini diberi nama index.php, index.htm, index.html dan juga dapat diberi nama index.asp. Halaman index ini biasanya memiliki pintu-pintu yang menghubungkan ke halaman yang lain. Pintu yang menghubungkan halaman satu dengan yang lain dinamakan link. Link dalam halaman web ini dapat berupa obyek / gambar atau tulisan ditandakan dengan perubahan cursor dari gambar panah menjadi tangan menunjuk apabila melintasi sebuah link. Berikut adalah salah satu tampilan halaman index dan link yang ada di dalamnya.
44
Halaman utama / index ini disusun menggunakan bahasa pemrograman HTML. Untuk mendesain halaman index ini dapat menggunakan software Frontpage, dreamweaver dan masih ada beberapa lagi software sejenis. Yang perlu diperhatikan dalam mendesain halaman web adalah: 1. Menentukan ukuran halaman web. Ukuran standard dari halaman web adalah 800 X 600 pixel. Namun tidak ada ketentuan tentang ukuran website tersebut. Yang harus diperhatikan adalah tujuan mendesain halaman website ini salah satunya adalah memudahkan pengunjung. Dengan menggunakan ukuran standard monitor yang sering digunakan pengujung, maka pengunjung tidak perlu lagi menggerser scrol ke kanan atau ke kiri pada browser. 2. Memilih warna yang tepat.
45
Aplikasi Program PHP dan MySQL Pewarnaan dalam mendesain halaman web biasanya disesuaikan dengan topik atau isi dari website tersebut. Usahakan dengan menggunakan warna yang sesuai dengan misi dari website dan enak untuk dipandang. 3. Perhatikan keseimbangan dari isi halaman web tersebut, misalkan apabila disebelah kanan mengandung obyek, maka disebelah kiri juga imbangi dengan obyek atau pewarnaan yang berbeda. Hal ini dimaksudkan untuk menyeimbangkan pandangan dari pengunjung yang mengunjungi website tersebut. 4. Periksa setiap pembuatan link. Adanya link terputus akan merugikan pengelola website, karena pengunjung akan kebingungan dan akan kehilangan informasi pada halaman-halaman yang dain dalam website Anda. Berkut adalah salah satu contoh bentuk link yang dibuat dengan bahasa HTML: <a href="http://localhost/siswa/administrator/index.php"> administrator</a>
Keterangan:
Setiap tag-tag HTML selalu diawali dengan tanda < dan diakhiri dengan >. Jadi karakter yang ada diantara kedua tanda tersebut dianggap sebagai tag HTML. Perhatikan pada tag html diatas yaitu tag html dengan nama link. Tag link diawali dengan huruf a href=. Karekter setelah tanda samadengan adalah nilai dari link tersebut. Nilai dari link adalah lokasi dan nama file yang akan dituju jika link tersebut diklik. Berikutnya diikuti teks administrator yang akan ditampilkan dihalaman website sebagai link. Yang terakhir tag link di tutup dengan tanda </a> sebagai penutup tag link.
46
Pada program sistem informasi manajemen pendidikan ini dibagibagi menjadi beberapa bagian berdasarkan hak akses dari masingmasing user. Yang akan dibahas pertama kali adalah bagian program yang mengolah data dari user dengan hak akses paling luas, yaitu administrator atau admonistrasi. Dalam pembahasan buku ini pada masing-masing script, akan ditampilkan bagian-bagian yang perlu penjelasan saja. Untuk mencoba dan mempelajari program sepenuhnya, Anda dapat menggunakan listing program dari buku ini.
HALAMAN LOGIN
Halaman login adalah halaman paling awal yang akan diakses oleh pengujung dengan atribut sebagai administrator. Pada halaman ini memiliki beberapa obyek formulir, yaitu action, kotak teks untuk userid, kotak teks untuk password dan tombol submit untuk login. Berikut adalah tampilan halaman login untuk administrator:
47
Halaman login administrator ini dibuat menggunakan tag-tag HTML, sehingga dapat ditampilkan di browser. Berikut adalah tag-tag HTML yang membentuk halaman login tersebut: <table border="0" width="100%" cellspacing="0" cellpadding="0" background="../images/img_07.gif" id="table1"> <tr> <td width="182" valign="top"> </td> <td valign="top"> <form method="POST" action="login.php"> <hr width="95%"> <? if($error){ echo"<p align=\"center\"><font color=\"#FF0000\">UserID atau
48
Aplikasi Program PHP dan MySQL Password yang Anda lagi.</font></p>";} ?> <p align="center">User ID<br> <input type="text" name="userid_admin" size="20" style="fontfamily: Arial; font-size: 10pt; color: #000080"></p> <p align="center">Password<br> <input type="password" name="password_admin" size="20" style="font-family: Arial; font-size: 10pt; color: #000080"></p> <p align="center"> <input type="submit" value="L O G I N" name="login" style="color: #000080; font-size: 10pt; font-weight: bold"></p> <hr width="95%"> </form> <p align="left" style="margin-right: 5px"> </td> </tr> </table> masukkan salah.<br> Silakan ulangi
Keterangan:
Yang perlu diperhatikan dalam membuat formulir dari tag HTML adalah obyek-obyek yang ada di dalamnya. Pada tag-tag di atas ada beberapa bagian yang harus diperhatikan. Tag formulir diawali dengan tanda <form action= > dan iawali dengan </form>. Tag formulir di atas memiliki beberapa obyek, yang pertama adalah kotak teks yang digunakan untuk menuliskan userid berikut <input type="text" name="userid_admin" size="20" style="font-family: Arial; font-size: 10pt; color: #000080">. Yang kedua adalah kotak teks yang digunakan untuk menuliskan password tag-nya adalah <input type="password" name="password_admin" size="20" style="fontfamily: Arial; font-size: 10pt; color: #000080">. Kemudian yang terakhir adalah tombol dengan tipe submit yang digunakan untuk
49
Aplikasi Program PHP dan MySQL mengirim data userid dan password apabila diklik. Data tersebut akan dikirimkan ke file login.php sebagai script untuk memeriksa dan mencocokkan data dari formulir login dengan data yang dibaca dari tabel administrasi.
PASSWORD ADMINISTRATOR
Script yang digunakan untuk memeriksa apakah data userid dan password sesuai dengan data administrator dari tabel administrator ini disimpan ke dalam sebuah file dengan nama login.php. Berikut adalah script yang ada dalam file login.php: <? session_start(); include"../sambung.php"; $data=mysql_query("select * from administrator where userid='$userid_admin'"); $user=mysql_fetch_array($data); if($userid_admin ==""){ header("Location:./index.php?error=1"); }else{ if($password_admin=="$user[password]"){ $id_admin="$user[id]"; session_register("id_admin"); session_register("userid_admin"); session_register("password_admin"); header("Location:./admin.php"); }else{ header("Location:./index.php?error=1");
50
Keterangan:
Script di atas diawali dengan fungsi start_session(), Fungsi ini digunakan untuk mendeklarasikan bahwa pada file ini memiliki data sesi. Fungsi strat_session() harus dituliskan pada awal script. Apabila dituliskan pada tengah atau akhir script, fungsi ini tidak akan berjalan dan dianggap sebuah kesalahan. Fungsi berikutnya adalah include, Fungsi ini digunakan memanggil file lain yang dibutuhkan pada script ini. Nilai dari fungsi include ini adalah ../sambung.php, artinya pada script di file ini membutuhkan script yang ada pada file sambung.php, yaitu untuk melakukan koneksi ke database. Setelah melakukan konesi dengan database menggukanan file sambung.php, berikutnya dalah membaca data yang ada dalam tabel administrator, yaitu bagian script pada: $data=mysql_query("select * from administrator where userid='$userid_admin'"); $user=mysql_fetch_array($data); Langkah berikutnya adalah membuat script yang berfungsi untuk memeriksa data masukan dari formulir login yaitu userid dan password. Jika data userid yang dimasukkan kosong maka akan dialihkan kembali pada halaman login. Kemudian apabila data yang dimasukkan lengkap, maka script akan mencocokkan data userid dan password yang dikirim dari formulir login dengan data administrator yang dibaca oleh script sebelumnya seperti pada potongan script dibawah ini: if($userid_admin ==""){ header("Location:./index.php?error=1"); }else{ if($password_admin=="$user[password]"){ $id_admin="$user[id]"; session_register("id_admin"); session_register("userid_admin"); 51
Aplikasi Program PHP dan MySQL session_register("password_admin"); header("Location:./admin.php"); }else{ header("Location:./index.php?error=1"); }} Apabila data userid dan password cocok dengan data yang dibaca dari database, maka script akan mendaftarkan id_admin, userid_admin dan password_admin ke dalam data sesi, kemudian administrator akan diarahkan ke halaman admin.php menggunakan fungsi header(). Apabila data userid dan data password tidak sesuai dengan data yang ada dalam database, maka administrator akan dialihkan ke halaman login kembali.
HALAMAN ADMIN
Halaman admin ini adalah halaman yang akan tampil apabila administrator telah login. Pada halaman ini akan menampilkan beberapa data yang ada dalam database dan juga pilihan menu berupa link untuk mengakses data-data tertentu, seperti data siswa, data karyawan, data kelas dan lain-lain. Berikut adalah script yang digunakan untuk membaca database dan menampilkan data pada halaman admin dengan nama file admin.php tersebut: <table border="0" width="100%" cellspacing="0" cellpadding="0" background="../images/img_07.gif" id="table1"> <tr> <td width="182" valign="top"><p style="margin-left: 10px; marginright: 20px; margin-top: 2px; margin-bottom: 2px" align="left"> <font size="2">TAMBAH DATA</font></p> <p style="margin-left: 10px; margin-right: 20px; margin-top: 2px; margin-bottom: 2px" align="left"> <?
52
Aplikasi Program PHP dan MySQL // Bagian untuk menampilkan menu link ?> <font size="2"><a href="admin.php">Utama</a></font></p> <p style="margin-left: 10px; margin-right: 20px; margin-top: 2px; margin-bottom: 2px" align="left"><font size="2"><a href="admin.php?menu=karyawan">Data karyawan</a></font></p><p style="margin-left: 10px; margin-right: 20px; margin-top: 2px; margin-bottom: 2px" align="left"> <font size="2"><a href="admin.php?menu=siswa">Data siswa</a></font></p> <p style="margin-left: 10px; margin-right: 20px; margin-top: 2px; margin-bottom: 2px" align="left"> <font size="2"><a href="admin.php?menu=kelas">Data kelas</a></font></p> <p style="margin-left: 10px; margin-right: 20px; margin-top: 2px; margin-bottom: 2px" align="left"> <font size="2"><a href="admin.php?menu=jurusan">Data jurusan</a></font></p> <p style="margin-left: 10px; margin-right: 20px; margin-top: 2px; margin-bottom: 2px" align="left"> <font size="2"><a href="admin.php?menu=materi">Data materi</a></font><p style="margin-left: 10px; margin-right: 20px; margin-top: 2px; margin-bottom: 2px" align="left"> <p style="margin-left: 10px; margin-right: 20px; margin-top: 2px; margin-bottom: 2px" align="left"> <font size="2"><a href="admin.php?menu=password">Ganti password</a></font><p style="margin-left: 10px; margin-right: 20px; margin-top: 2px; margin-bottom: 2px" align="left"> <font size="2"><a href="../keluar.php">Keluar</a></font></td> <td valign="top"> <?
53
Aplikasi Program PHP dan MySQL //batas awal if(isset($menu)){ include"$menu.php"; }else{ // membaca data pada database include"../sambung.php"; $data1=mysql_query("select * from karyawan"); $t_karyawan=mysql_num_rows($data1); $data2=mysql_query("select * from siswa"); $t_siswa=mysql_num_rows($data2); $data3=mysql_query("select * from kelas"); $t_kelas=mysql_num_rows($data3); $data4=mysql_query("select * from jurusan"); $t_jurusan=mysql_num_rows($data4); $data5=mysql_query("select * from materi"); $t_materi=mysql_num_rows($data5); //Ditampilkan pada tabel dengan tag-tag HTML. ?> <table border="1" width="98%" cellspacing="0" cellpadding="0" id="table3"> <tr> <td align="center" bgcolor="#93CDF5">Keterangan</td> <td width="183" align="center" bgcolor="#93CDF5"> Jumlah Data</td> </tr> <tr>
54
Aplikasi Program PHP dan MySQL <td> <p style="margin-left: 5px; margin-right: 5px"> <font size="2">Jumlah data karyawan</font></td> <td width="183"><p style="margin-left: 5px; margin-right: 5px"> <font size="2"><?=$t_karyawan?> orang</font></td> </tr> <tr> <td><p style="margin-left: 5px; margin-right: 5px"><font size="2">Jumlah data siswa</font></td> <td width="183"><p style="margin-left: 5px; margin-right: 5px"> <font size="2"><?=$t_siswa?> siswa</font></td> </tr> <tr><td><p style="margin-left: 5px; margin-right: 5px"> <font size="2">Jumlah data kelas</font></td> <td width="183"><p style="margin-left: 5px; margin-right: 5px"> <font size="2"><?=$t_kelas?> kelas</font></td> </tr> <tr><td><p style="margin-left: 5px; margin-right: 5px"> <font size="2">Jumlah data jurusan</font></td> <td width="183"><p style="margin-left: 5px; margin-right: 5px"> <font size="2"><?=$t_jurusan?> jurusan</font></td> </tr> <tr><td><p style="margin-left: 5px; margin-right: 5px"> <font size="2">Jumlah data materi</font></td> <td width="183"><p style="margin-left: 5px; margin-right: 5px"> <font size="2"><?=$t_materi?> materi</font></td>
55
Aplikasi Program PHP dan MySQL </tr> </table> <? } ?> </td></tr></table>
Keterangan:
Ada beberapa bagian yang perlu diperhatikan dalam script di atas. Yang pertama adalah pada saat membuat menu link. Pada masingmasing menu link memiliki variabel dengan nama menu dan memiliki nilai yang berbeda-beda sesuai nama link. Contohnya adalah seperti pada potongan script di bawah ini: <a href="admin.php?menu=siswa">Data siswa</a> Perhatikan tag HTML yang membentuk link di atas, nilai dari link tersebut adalah admin.php?menu=siswa. Artinya apabila link diklik, maka pengunjung akan diarahkan ke file admin.php yaitu file itu sendiri dengan variabel menu yang memiliki nilai siswa yang akan membedakan data tampilannya. Yang kedua adalah bagian script if(isset($menu)){ include"$menu.php"; }else{ // membaca data pada database include"../sambung.php"; $data1=mysql_query("select * from karyawan"); $t_karyawan=mysql_num_rows($data1);
56
Aplikasi Program PHP dan MySQL awal script menggunakan fungsi if dengan memeriksa keberadaan variabel menu. Artinya jika pengunjung mengakses file admin.php dari menu link maka memiliki variabel menu, maka script akan membaca file lain menggunakan fungsi include yaitu include"$menu.php";. Jika nilai variabel menu adalah siswa maka script tersebut akan membaca file siswa.php. Apabila variabel menu tidak ditemukan, maka script akan membaca data keseluruhan dari database seperti pada bagian include"../sambung.php"; $data1=mysql_query("select * from karyawan"); $t_karyawan=mysql_num_rows($data1); Berikut adalah tampilan halaman admin:
Yang perlu diperhatikan pada halaman admin ini adalah menu link yang ada disebelah kiri. Di sini ada beberapa pilihan menu, diantaranya data karyawan, data siswa, data kelas, data jurusan dan data materi. Setiap akan mengakses halaman data tertentu seorang
57
Aplikasi Program PHP dan MySQL administrator harus menekan menu link tersebut. Untuk lebih jelasnya perhatikan gambar 5.3 berikut:
Menu untuk melihat data karyawan Menu untuk melihat data siswa Menu untuk melihat data kelas Menu untuk melihat data jurusan Menu untuk melihat data materi
Gambar 5.3 tampilan pilihan menu link.
58
Aplikasi Program PHP dan MySQL Halaman data karyawan diberi nama karyawan.php, akan muncul apabila dipanggil menggunakan menu link yang ada pada halaman atau file admin.php dengan alamat / nilai admin.php?menu=karyawan. Berikut adalah script yang menampilkan data karyawan: <? include"../sambung.php"; if($act=="edit"){ $data1=mysql_query("select id='$id_data'"); $d=mysql_fetch_array($data1); } if(!isset($act)){ $data=mysql_query("select id from karyawan order by id desc limit 1"); $userbaru=mysql_fetch_array($data); $baru=101+$userbaru[0]; $userid="KAR-$baru"; }else{ $userid="$d[userid]"; } ?> <table border="1" width="98%" cellspacing="0" cellpadding="0" id="table4"> <tr> <td align="center" bgcolor="#93CDF5" colspan="2">Tambah Data Karyawan</td></tr><form method="POST" * from karyawan where digunakan untuk membaca dan
59
Aplikasi Program PHP dan MySQL action="proses_tambah.php"> <tr><td width="25%"><p style="margin-left: 5px; margin-right: 5px"> <font size="2">Nama</font></td> <td width="74%"><input type="text" name="nama" size="73" style="color: #000080; font-size: 10pt; font-family: Arial; border: 1px solid #FFFFFF; padding-left: 4px; padding-right: 4px; paddingtop: 1px; padding-bottom: 1px" value="<?=$d[nama]?>"></td> </tr> <tr> <td width="25%"> <p style="margin-left: 5px; margin-right: 5px"><font size="2">Alamat</font></td><td width="74%"> <input type="text" name="alamat" size="73" style="color: #000080; font-size: 10pt; font-family: Arial; border: 1px solid #FFFFFF; padding-left: 4px; padding-right: 4px; padding-top: 1px; padding-bottom: 1px" value="<?=$d[alamat]?>"></td> </tr> <tr><td width="25%"><p style="margin-left: 5px; margin-right: 5px"> <font size="2">Tempat tanggal lahir</font></td><td width="74%"> <input type="text" name="ttl" size="73" style="color: #000080; font-size: 10pt; font-family: Arial; border: 1px solid #FFFFFF; padding-left: 4px; padding-right: 4px; padding-top: 1px; paddingbottom: 1px" value="<?=$d[ttl]?>"></td> </tr> <tr><td width="25%"> <p style="margin-left: 5px; margin-right: 5px"> <font size="2">Agama</font></td><td width="74%">
60
Aplikasi Program PHP dan MySQL <input type="text" name="agama" size="73" style="color: #000080; font-size: 10pt; font-family: Arial; border: 1px solid #FFFFFF; padding-left: 4px; padding-right: 4px; padding-top: 1px; padding-bottom: 1px" value="<?=$d[agama]?>"></td> </tr> <tr><td width="25%"><p style="margin-left: 5px; margin-right: 5px"> <font size="2">Nomor telepon / hp</font></td> <td width="74%"><input type="text" name="telepon" size="73" style="color: #000080; font-size: 10pt; font-family: Arial; border: 1px solid #FFFFFF; padding-left: 4px; padding-right: 4px; paddingtop: 1px; padding-bottom: 1px" value="<?=$d[telepon]?>"></td> </tr> <tr><td width="25%"><p style="margin-left: 5px; margin-right: 5px"> <font size="2">Pendidikan terakhir</font></td> <td width="74%"><input type="text" name="pendidikan" size="73" style="color: #000080; font-size: 10pt; font-family: Arial; border: 1px solid #FFFFFF; padding-left: 4px; padding-right: 4px; paddingtop: 1px; padding-bottom: 1px" value="<?=$d[pendidikan]?>"></td> </tr> <tr><td width="25%"> <p style="margin-left: 5px; margin-right: 5px"> <font size="2">Status perkawinan</font></td><td width="74%"> <input type="text" name="perkawinan" size="73" style="color: #000080; font-size: 10pt; font-family: Arial; border: 1px solid #FFFFFF; padding-left: 4px; padding-right: 4px; padding-top: 1px; padding-bottom: 1px" value="<?=$d[perkawinan]?>"></td></tr> <tr><td width="25%">
61
Aplikasi Program PHP dan MySQL <p style="margin-left: 5px; margin-right: 5px"><font size="2">Status jabatan</font></td><td width="74%"><input type="text" name="stt_jabatan" size="73" style="color: #000080; font-size: 10pt; font-family: Arial; border: 1px solid #FFFFFF; padding-left: 4px; padding-right: 4px; padding-top: 1px; paddingbottom: 1px" value="<?=$d[stt_jabatan]?>"></td></tr> <tr> <td width="25%"><p style="margin-left: 5px; margin-right: 5px"> <font size="2">Jabatan</font></td><td width="74%"> <input type="text" name="jabatan" size="73" style="color: #000080; font-size: 10pt; font-family: Arial; border: 1px solid #FFFFFF; padding-left: 4px; padding-right: 4px; padding-top: 1px; padding-bottom: 1px" value="<?=$d[jabatan]?>"></td></tr> <tr><td width="25%"><p style="margin-left: 5px; margin-right: 5px"> <font size="2">Mulai kerja</font></td><td width="74%"> <? if($act=="edit"){ $mulai=date("j / n / Y",$d[mulai]); } ?> <input type="text" name="mulai" size="30" style="color: #000080; font-size: 10pt; font-family: Arial; border: 1px solid #FFFFFF; padding-left: 4px; padding-right: 4px; padding-top: 1px; paddingbottom: 1px" value="<?=$mulai?>"> <font size="2">Format <b>dd/mm/yyyy</b></font></td> </tr> <tr><td width="25%"><p style="margin-left: 5px; margin-right: 5px"> <font size="2">Masa kerja</td>
62
Aplikasi Program PHP dan MySQL <? if($act=="edit"){ $now=time(); $dl=date("d m Y",$d[mulai]); $sk=date("d m Y",$now); $sekarang=explode(" ",$sk); $dulu=explode(" ",$dl); $hari=$sekarang[0]-$dulu[0]; $bulan=$sekarang[1]-$dulu[1]; $tahun=$sekarang[2]-$dulu[2]; if($sekarang[0]<$dulu[0]){ $hari+=30; $bulan+=11; $tahun-=1; } if($sekarang[1]<$dulu[1]){ $hari+=30; $bulan+=11; $tahun-=1; } if($hari>=30){ $hari=$hari-30; $bulan+=1; } if($bulan>=12){
63
Aplikasi Program PHP dan MySQL $bulan=$bulan-12; $tahun+=1; } echo"<td width=\"74%\"> <b>$tahun</b> <b>$bulan</b> bulan <b>$hari</b> hari.</font>"; } ?></td></tr> <tr><td width="74%"> </td></tr> width="25%"> </td><td tahun
<tr><td width="25%"><p style="margin-left: 5px; margin-right: 5px"> <font size="2">User ID</font></td><td width="74%"> <input type="hidden" name="userid" size="24" style="color: #000080; font-size: 10pt; font-family: Arial; border: 1px solid #FFFFFF; padding-left: 4px; padding-right: 4px; padding-top: 1px; padding-bottom: 1px" value="<?=$userid?>"> <font size="2"><b><?=$userid?></b></font></td> </tr> <tr><td width="25%"><p style="margin-left: 5px; margin-right: 5px"> <font size="2">Password</font></td><td width="74%"> <input type="text" name="password" size="24" style="color: #000080; font-size: 10pt; font-family: Arial; border: 1px solid #FFFFFF; padding-left: 4px; padding-right: 4px; padding-top: 1px; padding-bottom: 1px" value="<?=$d[password]?>"></td></tr> <tr><td width="25%"> </td><td width="74%"> </td></tr> <tr><td width="25%"> </td><td width="74%"> <?
64
Aplikasi Program PHP dan MySQL if($act!=="edit"){ ?> <input type="submit" value="TAMBAH" style="font-family: Arial; color: #000080"> <?}else{?> <input type="submit" value=" UBAH " name="ubah" style="fontfamily: Arial; color: #000080"> <input type="submit" value=" HAPUS " name="hapus" style="fontfamily: Arial; color: #000080"> <?}?></td></tr> <input type="hidden" name="id_data" value="<?=$d[id]?>"> <input type="hidden" name="menu" value="<?=$menu?>"> </form></table> <p style="margin-top: 1px; margin-bottom: 1px"> </p> <table border="1" width="98%" cellspacing="0" cellpadding="0" id="table5"> <tr><td align="center" bgcolor="#93CDF5" colspan="3"> Data Karyawan</td></tr> <tr><td width="31%" bgcolor="#FBA53F"><p style="margin-left: 5px; margin-right: 5px"><font size="2">Nama</font></td><td width="25%" bgcolor="#FBA53F"><p style="margin-left: 5px; margin-right: 5px"> <font size="2">Jabatan</font></td> <td width="43%" bgcolor="#FBA53F"> <p style="margin-left: 5px; margin-right: 5px"> <font size="2">Alamat</font></td> </tr> <? name="tambah"
65
Aplikasi Program PHP dan MySQL $total=0; $data2=mysql_query("select * from karyawan order by nama"); while($data=mysql_fetch_array($data2)){ echo"<tr><td width=\"31%\"> <p style=\"margin-left: 5px; margin-right: 5px\"> <font size=\"2\"> <a href=\"admin.php?menu=karyawan&act=edit& id_data=",$data[id],"\"> ",$data[nama],"</font></td> <td width=\"25%\"><p style=\"margin-left: 5px; margin-right: 5px\"> <font size=\"2\">",$data[jabatan],"</font></td> <td width=\"43%\"><p style=\"margin-left: 5px; margin-right: 5px\"> <font size=\"2\">",$data[alamat],"</font></td> </tr>"; $total++; } ?> <tr><td width="99%" colspan="3"><p align="center"><font size="2">Jumlah total karyawan adalah <b><?=$total?></b> orang.</font></td></tr>0 .</table>
Keterangan:
Pada dasarnya script ini akan menampilkan formulir dengan isi tentang karyawan tertentu yang akan diubah datanya dan informasi daftar karyawan yang telah tercatat dalam databse. Pada bagian pertama adalah script dan tag HTML yang menampilkan data karyawan tertentu secara lengkap. Pada bagian ini ada beberapa script yang perlu diperhatikan. Diawal script ini akan dituliskan script yang berfungsi untuk 66
Aplikasi Program PHP dan MySQL membaca databse karyawan. include"../sambung.php"; if($act=="edit"){ $data1=mysql_query("select * from karyawan where id='$id_data'"); $d=mysql_fetch_array($data1); } Untuk koneksi dengan database selalu menggunakan script yang ada dalam file sambung.php, kemudian membaca database karyawan berdasarkan id dari masing-masing karyawan yang akan ditampilkan. Babarapa script yang perlu diperhatikan lagi adalah bagian script untuk menghitung masa kerja. Script ini menghitung waktu sekarang dikurangi dengan mulai kerja, kemudian dikonverikan kedalam format waktu tahun, bulan dan hari. Berikut adalah potongan script tersebut: $now=time(); $dl=date("d m Y",$d[mulai]); $sk=date("d m Y",$now); $sekarang=explode(" ",$sk); $dulu=explode(" ",$dl); $hari=$sekarang[0]-$dulu[0]; $bulan=$sekarang[1]-$dulu[1]; $tahun=$sekarang[2]-$dulu[2]; if($sekarang[0]<$dulu[0]){ $hari+=30; $bulan+=11; $tahun-=1; } if($sekarang[1]<$dulu[1]){ Bagian script tersebut adalah
67
Aplikasi Program PHP dan MySQL $hari+=30; $bulan+=11; $tahun-=1; } if($hari>=30){ $hari=$hari-30; $bulan+=1; } if($bulan>=12){ $bulan=$bulan-12; $tahun+=1; } echo"<td width=\"74%\"> <b>$tahun</b> tahun <b>$bulan</b> bulan <b>$hari</b> hari.</font>"; } Paling awal dalam script ini adalam mengambil waktu sekarang menggunakan fungsi now(). Berikutnya mendeklarasikan waktu sekarang dan waktu mulai kerja kedalam format tanggal, bulan dan tahun menggunakan fungsi date(). Kedua data waktu tersebut di cari selisihnya dan dirubah menjadi format data waktu tahun, bulan dan tahun. Untuk mengakses halaman ini seorang administrator harus menekan menu link data karyawan setelah login.
68
Menu karyawan
Apabila menu link telah ditekan maka halaman admin.php ini akan mengakses file karyawan menggunakan fungsi include dan menampilkan pada halaman admin seperti terlihat pada gambar 5.4 berikut:
69
Namanama karyawan
Jika da data karyawan baru yang harus dtambahkan ke dalam database, seorang administrator harus mengisi data karyawan tersebut dengan lengkap kemudian tekan tombol TAMBAH yang ada di bawah formulir. Untuk menampilkan masing-masing data karyawan secara lengkap, dapat menekan link berupa nama dari masing-masing karyawan yang berada dihalaman karyawan di bawah formulir. Berikut contoh tampilan data lengkap salah satu karyawan:
70
Dari tampilan data lengkap karyawan ini, seorang administrator dapat merubah data atau menghapus data karyawan yang sedang aktif.
71
Aplikasi Program PHP dan MySQL File ini adalah file yang digunakan untuk tujuan setiap akan mengubah, menambah atau menghapus data. Data yang akan diproses oleh file ini tidak hanya data karyawan, namun juga data siswa, data kelas dan juga data yang lain dalam database. Berikut adalah script yang ada dalam file proses_tambah.php tersebut: <? include"./cek_session.php"; include"../sambung.php"; include"input_$menu.php"; ?>
Keterangan:
Fungsi yang digunakan dalam file ini adalah fungsi include. Artinya script yang digunakan untuk mengolah masing-masing data menggunakan file lain sesuai dengan data yang diproses. Misalkan Data yang diproses adalah data karyawan maka script ini akan memanggil file input_karyawan.php dengan menggunakan fungsi includeinput_$menu.php; Variabel $menu akan membawa nilai karyawan, sehingga nama file yang dipanggil adalah input_karyawan.php.
72
Aplikasi Program PHP dan MySQL $mulai= mktime (0,0,0,$msk[1],$msk[0],$msk[2]); if(isset($tambah)){ $tbh=mysql_query("INSERT INTO `karyawan` ( `id` , `nama` , `alamat` , `ttl` , `agama` , `telepon` , `pendidikan` , `perkawinan` , `stt_jabatan` , `jabatan` , `mulai` , `masa` , `userid` , `password` ) VALUES ( '', '$nama', '$alamat', '$ttl', '$agama', '$telepon', '$pendidikan', '$perkawinan', '$stt_jabatan', '$jabatan', '$mulai', '$masa', '$userid', '$password' )"); header("location:./admin.php?menu=karyawan"); }elseif(isset($ubah)){ $ub=mysql_query("update karyawan set nama='$nama' , alamat='$alamat' , ttl='$ttl' , agama='$agama' , telepon='$telepon' , pendidikan='$pendidikan' , perkawinan='$perkawinan' , stt_jabatan='$stt_jabatan' , jabatan='$jabatan' , mulai='$mulai' , masa='$masa' , userid='$userid' , password='$password' where id='$id_data'"); header("location:./admin.php?menu=karyawan"); }elseif(isset($hapus)){ $hp=mysql_query("delete from karyawan where id='$id_data'"); header("location:./admin.php?menu=karyawan"); }else{ header("location:./admin.php?menu=karyawan"); } ?>
Keterangan:
Dalam satu rangkaian script di atas memiliki 3 bagian penting untuk mengolah data masukan. Yang pertama adalah bagian script dengan 73
Aplikasi Program PHP dan MySQL fungsi untuk menambahkan data karyawan dari formulir tambah data karyawan. Script ini dipisahkan dengan fungsi if dengan memeriksa keberadaan variabel $tambah sepertia pada potongan script berikut: if(isset($tambah)){ $tbh=mysql_query("INSERT INTO `karyawan` ( `id` , `nama` , `alamat` , `ttl` , `agama` , `telepon` , `pendidikan` , `perkawinan` , `stt_jabatan` , `jabatan` , `mulai` , `masa` , `userid` , `password` ) VALUES ( '', '$nama', '$alamat', '$ttl', '$agama', '$telepon', '$pendidikan', '$perkawinan', '$stt_jabatan', '$jabatan', '$mulai', '$masa', '$userid', '$password' )"); Setelah variabel $tambah diperiksa dan mempunyai nilai true / benar, maka langkah berikutnya adalah proses memasukkan data karyawan ke dalam database karyawan. Bagian script yang kedua adalah untuk mengubah data karyawan. Pada bagian ini juga dipisahkan dengan fungsi if yang berfungsi memeriksa keberadaan variabel $ubah. Apabila variabel $ubah ini dipilih, maka data yang berhubungan salah satu karyawan akan diubah. Potongan script tersebut adalah seperti dibawah ini: }elseif(isset($ubah)){ $ub=mysql_query("update karyawan set nama='$nama' , alamat='$alamat' , ttl='$ttl' , agama='$agama' , telepon='$telepon' , pendidikan='$pendidikan' , perkawinan='$perkawinan' , stt_jabatan='$stt_jabatan' , jabatan='$jabatan' , mulai='$mulai' , masa='$masa' , userid='$userid' , password='$password' where id='$id_data'"); Bagian yang ketiga adalah script yang berfungsi untuk menghapus data karyawan. Seperti halnya bagian untuk menambah dan mengubah data karyawan, pada bagian script ini juga dipisahkan dengan fungsi if yang memeriksa keberadaan variabel $hapus.
74
Aplikasi Program PHP dan MySQL Apabila variabel $hapus ini ada dan bernilai true, maka pada script dibawahnya yang berfungsi menghapus data karyawan akan dijalankan. Bagian script tersebut adalah sebagai berikut: }elseif(isset($hapus)){ $hp=mysql_query("delete from karyawan where id='$id_data'"); Dibawah dari script untuk menghapus data karyawa tersebut masih ada satu bagian lagi yang berfungsi akan mengalihkan pengunjung yang membuka halaman ini, namun tidak mengikuti prosedur program. Script tersebut menggunakan fungsi header dengan nilai alamat file admin.php?menu=karyawan seperti pada potongan script berikut: }else{ header("location:./admin.php?menu=karyawan"); }
75
Aplikasi Program PHP dan MySQL $waktu=explode(" ",$lahir); $start=date("j n Y",$d[masuk]); $mulai=explode(" ",$start); $bln=array('Januari','Pebruari', 'Maret', 'April', 'Mei', 'Juni', 'Juli', 'Agustus','September','Oktober','Nopember','Desember'); $msk=$mulai[1]; $bulan=$waktu[1]; } $th=date("Y"); ?> <table border="1" width="98%" cellspacing="0" cellpadding="0" id="table4"> <tr><td align="center" bgcolor="#93CDF5" colspan="2">Tambah Data Siswa</td> </tr><form method="POST" action="proses_tambah.php"> <tr><td width="25%"><p style="margin-left: 5px; margin-right: 5px"> <font size="2">Nama</td> <td width="74%"><input type="text" name="nama" size="40" style="color: #000080; font-size: 10pt; font-family: Arial; border: 1px solid #FFFFFF; padding-left: 4px; padding-right: 4px; paddingtop: 1px; padding-bottom: 1px" value="<?=$d[nama]?>"> <? if($act=="edit"){ ?> <font size="2"> Status</font> <select size="1" name="status" style="color: #000080; font-family: Arial; font-size: 10pt; background-color: #FFFFFF"><option value="1" selected>Masih Aktif</option>
76
Aplikasi Program PHP dan MySQL <option value="0">Sudah Keluar</option> </select><?}?></td></tr> <tr><td width="25%"><p style="margin-left: 5px; margin-right: 5px"> <font size="2">Jenis Kelamin</font></td><td width="74%"> <? if($d[sex]=="Pria"){ $pria="checked"; $wanita=""; }else{ $pria=""; $wanita="checked"; } ?> <input type="radio" value="Pria" name="sex" <?=$pria?>> <font size="2">Pria <input type="radio" value="Wanita" name="sex" <?=$wanita?>> Wanita</font></td></tr> <tr><td width="25%"><p style="margin-left: 5px; margin-right: 5px"> <font size="2">Alamat</font></td><td width="74%"> <input type="text" name="alamat" size="66" style="color: #000080; font-size: 10pt; font-family: Arial; border: 1px solid #FFFFFF; padding-left: 4px; padding-right: 4px; padding-top: 1px; padding-bottom: 1px" value="<?=$d[alamat]?>"></td> </tr> <tr><td width="25%"><p style="margin-left: 5px; margin-right: 5px">
77
Aplikasi Program PHP dan MySQL <font size="2">Tempat tanggal lahir</font></td> <td width="74%"><input type="text" name="tempat" size="27" style="color: #000080; font-size: 10pt; font-family: Arial; border: 1px solid #FFFFFF; padding-left: 4px; padding-right: 4px; paddingtop: 1px; padding-bottom: 1px" value="<?=$d[tempat_lahir]?>"> <select size="1" name="tanggal" style="color: #000080; fontfamily: Arial; font-size: 10pt; background-color: #FFFFFF"> <? if($act=="edit"){ echo"<option value=\"$waktu[0]\" selected>$waktu[0]</option>"; } for($s=1;$s<=31;$s++){ echo"<option value=\"$s\">$s</option>"; } ?> </select><select size="1" name="bulan" style="color: #000080; font-family: Arial; font-size: 10pt; background-color: #FFFFFF"> <? if($act=="edit"){ echo"<option value=\"$waktu[1]\" selected>$bln[$bulan]</option>"; } ?> <option value="01" >Januari</option> <option value="02">Pebruari</option> <option value="03">Maret</option> <option value="04">April</option>
78
Aplikasi Program PHP dan MySQL <option value="05">Mei</option> <option value="06">Juni</option> <option value="07">Juli</option> <option value="08">Agustus</option> <option value="09">September</option> <option value="10">Oktober</option> <option value="11">Nopember</option> <option value="12">Desember</option> </select> <select size="1" name="tahun" style="color: #000080; font-family: Arial; font-size: 10pt; background-color: #FFFFFF"> <? if($act=="edit"){ echo"<option value=\"$waktu[2]\" selected>$waktu[2]</option>"; } for($s=$th-35;$s<=$th-10;$s++){ echo"<option value=\"$s\">$s</option>"; } ?> </select></td></tr> <tr><td width="25%"><p style="margin-left: 5px; margin-right: 5px"> <font size="2">Agama</font></td> <td width="74%"><select size="1" name="agama" style="color: #000080; font-family: Arial; font-size: 10pt; background-color: #FFFFFF"> <?
79
Aplikasi Program PHP dan MySQL if($act=="edit"){ echo"<option value=\"$d[agama]\" selected>$d[agama]</option>"; }?> <option value="Islam">Islam</option> <option value="Kristen Protestan">Kristen Protestan</option> <option value="Kristen Katolik">Kristen Katolik </option> <option value="Hindu">Hindu</option> <option value="Budha">Budha</option> <option value="lainnya">Lainnya</option> </select></td></tr> <tr><td width="25%"><p style="margin-left: 5px; margin-right: 5px"> <font size="2">Nomor telepon / hp</font></td> <td width="74%"><input type="text" name="telepon" size="34" style="color: #000080; font-size: 10pt; font-family: Arial; border: 1px solid #FFFFFF; padding-left: 4px; padding-right: 4px; paddingtop: 1px; padding-bottom: 1px" value="<?=$d[telepon]?>"></td> </tr> <tr> <td width="25%"> <p style="margin-left: 5px; margin-right: 5px"> <font size="2">Pendidikan terakhir</font></td> <td width="74%"> <input type="text" name="pendidikan" size="34" style="color: #000080; font-size: 10pt; font-family: Arial; border: 1px solid #FFFFFF; padding-left: 4px; padding-right: 4px; padding-top: 1px; padding-bottom: 1px" value="<?=$d[pendidikan]?>"></td>
80
Aplikasi Program PHP dan MySQL </tr> <tr><td width="25%"><p style="margin-left: 5px; margin-right: 5px"> <font size="2">Sekolah asal</font></td><td width="74%"> <input type="text" name="asal_sekolah" size="34" style="color: #000080; font-size: 10pt; font-family: Arial; border: 1px solid #FFFFFF; padding-left: 4px; padding-right: 4px; padding-top: 1px; padding-bottom: 1px" value="<?=$d[asal_sekolah]?>"></td> </tr> <tr><td width="25%"><p style="margin-left: 5px; margin-right: 5px"> <font size="2">Nama orang tua</font></td> <td width="74%"><input type="text" name="orang_tua" size="40" style="color: #000080; font-size: 10pt; font-family: Arial; border: 1px solid #FFFFFF; padding-left: 4px; padding-right: 4px; paddingtop: 1px; padding-bottom: 1px" value="<?=$d[orang_tua]?>"></td> </tr> <tr><td width="25%"><p style="margin-left: 5px; margin-right: 5px"> <font size="2">Pekerjaan Orang tua</font></td> <td width="74%"><input type="text" name="pekerjaan" size="40" style="color: #000080; font-size: 10pt; font-family: Arial; border: 1px solid #FFFFFF; padding-left: 4px; padding-right: 4px; paddingtop: 1px; padding-bottom: 1px" value="<?=$d[pekerjaan]?>"></td> </tr> <tr><td width="25%"><p style="margin-left: 5px; margin-right: 5px"> <font size="2">Mulai masuk</font></td> <td width="74%">
81
Aplikasi Program PHP dan MySQL <select size="1" name="masuk1" style="color: #000080; fontfamily: Arial; font-size: 10pt; background-color: #FFFFFF"> <? if($act=="edit"){ echo"<option value=\"$mulai[0]\" selected>$mulai[0]</option>"; } for($s=1;$s<=31;$s++){ echo"<option value=\"$s\">$s</option>"; } ?> </select><select size="1" name="masuk2" style="color: #000080; font-family: Arial; font-size: 10pt; background-color: #FFFFFF"> <? if($act=="edit"){ echo"<option value=\"$mulai[1]\" selected>$bln[$msk]</option>"; } ?><option value="01">Januari</option> <option value="02">Pebruari</option> <option value="03">Maret</option> <option value="04">April</option> <option value="05">Mei</option> <option value="06">Juni</option> <option value="07">Juli</option> <option value="08">Agustus</option> <option value="09">September</option> <option value="10">Oktober</option>
82
Aplikasi Program PHP dan MySQL <option value="11">Nopember</option> <option value="12">Desember</option> </select><select size="1" name="masuk3" style="color: #000080; font-family: Arial; font-size: 10pt; background-color: #FFFFFF"> <? if($act=="edit"){ echo"<option value=\"$mulai[2]\" selected>$mulai[2]</option>"; } for($s=$th-10;$s<=$th;$s++){ echo"<option value=\"$s\">$s</option>"; } ?> </select></td></tr> <tr><td width="25%"><p style="margin-left: 5px; margin-right: 5px"> <font size="2">Kelas</font></td><td width="74%"> <select size="1" name="kelas" style="color: #000080; font-family: Arial; font-size: 10pt; background-color: #FFFFFF"> <? if($act=="edit"){ $data3=mysql_query("select nama from kelas where id='$d[kelas]'"); $hasil=mysql_fetch_array($data3); echo"<option value=\"$d[kelas]\" selected>$hasil[nama]</option>"; } $data2=mysql_query("select * from kelas order by nama");
83
Aplikasi Program PHP dan MySQL while($data=mysql_fetch_array($data2)){ echo"<option value=\"",$data[id],"\">",$data[nama],"</option>"; } ?> </select></td></tr> <tr><td width="25%"> </td><td width="74%"> </td> </tr><tr> <td width="25%"> <p style="margin-left: 5px; margin-right: 5px"> <font size="2">User ID</font></td> <td width="74%"> <select size="1" name="userid1" style="color: #000080; fontfamily: Arial; font-size: 10pt; background-color: #FFFFFF"> <? if($act=="edit"){ $data4=mysql_query("select userid from siswa where id='$id_data'"); $hasil=mysql_fetch_array($data4); $userid1=explode("_",$hasil[userid]); echo"<option value=\"$userid1[0]\" selected>$userid1[0]</option>"; } $data2=mysql_query("select * from kelas order by nama"); while($data=mysql_fetch_array($data2)){ echo"<option value=\"",$data[nama],"\">",$data[nama],"</option>"; }
84
Aplikasi Program PHP dan MySQL ?> </select>_<input type="text" name="userid2" size="15" style="color: #000080; font-size: 10pt; font-family: Arial; border: 1px solid #FFFFFF; padding-left: 4px; padding-right: 4px; paddingtop: 1px; padding-bottom: 1px" value="<?=$userid1[1]?>"> </tr> <tr><td width="25%"> <p style="margin-left: 5px; margin-right: 5px"><font size="2">Password</font></td><td width="74%"> <input type="text" name="password" size="24" style="color: #000080; font-size: 10pt; font-family: Arial; border: 1px solid #FFFFFF; padding-left: 4px; padding-right: 4px; padding-top: 1px; padding-bottom: 1px" value="<?=$d[password]?>"></td></tr> <tr><td width="25%"> </td><td width="74%"> </td></tr> <tr><td width="25%"> </td><td width="74%"> <? if($act!=="edit"){ ?> <input type="submit" value="TAMBAH" name="tambah" style="font-family: Arial; color: #000080"> <?}else{?> <input type="submit" value=" UBAH " name="ubah" style="fontfamily: Arial; color: #000080"> <input type="submit" value=" HAPUS " name="hapus" style="fontfamily: Arial; color: #000080"> <?}?></td></tr> <input type="hidden" name="id_data" value="<?=$d[id]?>"> <input type="hidden" name="menu" value="siswa">
85
Aplikasi Program PHP dan MySQL </form></table> <p style="margin-top: 1px; margin-bottom: 1px"> </p> <table border="1" width="98%" cellspacing="0" cellpadding="0" id="table5"><tr><td align="center" bgcolor="#93CDF5" colspan="3">Data Siswa</td></tr> <tr><td width="31%" bgcolor="#FBA53F"><p style="margin-left: 5px; margin-right: 5px"><font size="2">Nama</font></td> <td width="25%" bgcolor="#FBA53F"><p style="margin-left: 5px; margin-right: 5px"><font size="2">Kelas</font></td> <td width="43%" bgcolor="#FBA53F"><p style="margin-left: 5px; margin-right: 5px"><font size="2">Alamat</font></td> </tr> <? $total=0; $data3=mysql_query("select * from siswa where status='1' order by id desc"); while($data=mysql_fetch_array($data3)){ $baca=mysql_query("select nama from kelas where id='$data[kelas]'"); $data2=mysql_fetch_array($baca); echo"<tr><td width=\"31%\"><p style=\"margin-left: 5px; marginright: 5px\"><font size=\"2\"><a href=\"admin.php?menu=siswa&act=edit&id_data=",$data[id],"\"> ",$data[nama],"</a></font></td> <td width=\"16%\"><p style=\"margin-left: 5px; margin-right: 5px\"> <font size=\"2\">",$data2[nama],"</font></td> <td width=\"52%\"><p style=\"margin-left: 5px; margin-right: 5px\"> <font size=\"2\">",$data[alamat],"</font></td> </tr>"; 86
Aplikasi Program PHP dan MySQL $total++; } ?> <tr><td width="99%" colspan="3"><p align="center"><font size="2">Jumlah total siswa adalah <b><?=$total?></b> orang.</font></td></tr></table>
Keterangan:
Pada awal dari script ini akan memanggil file sambung.php untuk melakukan koneksi ke database. Kemudian pada bagian-bagian tertentu membutuhkan fungsi if untuk memeriksa keberadaan variabel $act dengan nilai edit. Hal ini dilakukan karena dalam satc script ini dapat digunakan untuk menampilkan formulir yang digunakan untuk menambah data siswa dan juga dapat digunakan untuk menampilkan data lengkap dari masing-masing siswa. Jika Halaman ini langsung diakses dari menu link data siswa, maka yang akan tampil adalah formulir kosong yang digunakan untuk menambah data siswa baru seperti tampak pada gambar 5.7 berikut:
87
Untuk menambah data siswa, seorang administrator cukup mengisikan data siswa baru tersebut ke dalam formulir. Apabila administrator ingin mengubah data salah satu siswa, langkah pertama harus memilih nama siswa yang akan di ubah pada daftar siswa yang ada di bawah formulir. Klik salah satu nama siswa, karena 88
Aplikasi Program PHP dan MySQL nama tersebut adalah sebuah menu link. Suatu contoh alamat link tersebut adalah: http://localhost/siswa/administrator/admin.php?menu=siswa&act=ed it&id_data=19 Jika diperhatikan, alamat link tersebut memiliki beberapa bagian penting, yang pertama adalah file tujuan dari link tersebut apabila link tersebut diklik yaitu admin.php. kemudian link tersebut juga memiliki beberapa variabel yang dikirim ke file admin.php, yaitu menu dengan nilai siswa, variabel act dengan nilai edit dan yang terakhir adalah variabel id_data dengan nilai 19. Artinya menu link tersebut akan menuju file admin.php dengan menu pilihannya adalah siswa, kemudian bertujuan menampilkan data siswa yaitu ditandai dengan membawa variabel act dengan nilai edit dan menampilkan data siswa dengan nomor id 19 dari database. Berikut adalah tampilan data siswa secara lengkap setelah link salah satu nama siswa dipilih:
89
Data lengkap salah satu siswa akan ditampilkan ke dalam formulir yang ada di atas daftar siswa yang sudah terdaftar. Data siswa yang ditampilkan secara lengkap tersebut dapat diubah atau di hapus oleh administrator. Proses tersebut diawali dengan menekan tombol UBAH atau HAPUS.
Aplikasi Program PHP dan MySQL '', '$nama', '$sex', '$alamat', '$tempat', '$tanggal_lahir', '$agama', '$telepon', '$pendidikan', '$asal_sekolah', '$orang_tua', '$pekerjaan', '$masuk', '$kelas', '$userid', '$password' )"); $wali=mysql_query("INSERT INTO wali_siswa ( nama_siswa , nama , userid , password )VALUES ('$nama', '$orang_tua', '$user_wali', '')"); header("location:./admin.php?menu=siswa"); }else{ ?> <html> <head> <title>Sistem Manajemen Pendidikan online</title> <meta http-equiv="Content-Type" content="text/html; charset=iso8859-1"> <style> </table> </body> </html> <? } }elseif(isset($ubah)){ $ub=mysql_query("update siswa set nama='$nama' , sex= '$sex',alamat='$alamat' , tempat_lahir='$tempat' , tgl_lahir='$tanggal_lahir', agama='$agama' , telepon='$telepon' , pendidikan='$pendidikan' ,asal_sekolah='$asal_sekolah', orang_tua='$orang_tua' , pekerjaan='$pekerjaan' , masuk='$masuk' , kelas='$kelas' , userid='$userid' , password='$password' , status='$status' where id='$id_data'");
91
Aplikasi Program PHP dan MySQL $ubah_wali=mysql_query("update wali_siswa set nama_siswa='$nama',nama='$orang_tua' , userid='$user_wali' WHERE id_siswa='$id_data'"); header("location:./admin.php?menu=siswa"); }elseif(isset($hapus)){ $hp=mysql_query("delete from siswa where id='$id_data'"); $hps=mysql_query("delete from wali_siswa where id_siswa='$id_data'"); header("location:./admin.php?menu=siswa"); }elseif(isset($nilai)){ header("location:./nilai.php?id=$userid"); }else{ header("location:./admin.php?menu=siswa"); }
Keterangan:
Tiap-tiap bagian dalam script tersebut dipisahkan menggunakan fungsi if. Bagian pertama adalah script untuk menambah data siswa ke dalama database siswa, diawali dengan script if(isset($tambah)){ Kemudian diikuti script yang berguna untuk memasukkan data siswa baru. Pada bagian ke dua juga diawali dengan fungsi if yang berfungsi memerikan keberadaan variabel $ubah. Bagian ke dua ini berfungsi untuk mengubah data siswa yang sudah terdaftar. Bagian yang terakhir adalah script yang berfungsi untuk menghapus data siswa yang sudah keluar. Script ini juga diawali dengan fungsi if yang memeriksa keberadaan variabel $hapus.
Aplikasi Program PHP dan MySQL halaman ini, administrator juga dapat memasukkan data kelas baru, mengubah data kelas yang sudah ada atau juga menghapus data kelas yang sudah tidak terpakai. Pada halaman ini akan menampilkan dua bagian utama, yaitu bagian formulir yang digunakan untuk memasukkan data kelas baru atau menampilkan data kelas yang akan diubah tau dihapus, kemudian bagian yang kedua adalah menampilkan data kelas yang sudah terdaftar. Berikut adalah script yang digunakan untuk menampilkan halaman data kelas: <? include"../sambung.php"; if($act=="edit"){ $data1=mysql_query("select * from kelas where id='$id_data'"); $d=mysql_fetch_array($data1); } ?> <table border="1" width="98%" cellspacing="0" cellpadding="0" id="table4"> <tr><td align="center" bgcolor="#93CDF5" colspan="2">Tambah Data Kelas</td></tr><form method="POST" action="proses_tambah.php"> <tr><td width="25%"><p style="margin-left: 5px; margin-right: 5px"><font size="2">Nama Kelas</font></td><td width="74%"> <input type="text" name="nama" size="40" style="color: #000080; font-size: 10pt; font-family: Arial; border: 1px solid #FFFFFF; padding-left: 4px; padding-right: 4px; padding-top: 1px; paddingbottom: 1px" value="<?=$d[nama]?>"></td></tr> <tr><td width="25%"><p style="margin-left: 5px; margin-right: 5px"><font size="2">Jenis Kelas</font></td> <td width="74%"> <?
93
Aplikasi Program PHP dan MySQL if($d[jenis]=="Diploma"){ $diploma="checked"; $regular=""; }else{ $diploma=""; $regular="checked"; } ?> <input type="radio" value="Diploma" name="jenis" <?=$diploma?>> <font size="2">Diploma<input type="radio" value="Regular" name="jenis" <?=$regular?>> Regular</font></td></tr> <tr><td width="25%"> </td> <td width="74%"> </td></tr> <tr><td width="25%"> </td><td width="74%"> <? if($act!=="edit"){ ?> <input type="submit" value="TAMBAH" name="tambah" style="font-family: Arial; color: #000080"> <?}else{?> <input type="submit" value=" UBAH " name="ubah" style="fontfamily: Arial; color: #000080"> <input type="submit" value=" HAPUS " name="hapus" style="fontfamily: Arial; color: #000080"> <?}?></td></tr> <input type="hidden" name="id_data" value="<?=$d[id]?>">
94
Aplikasi Program PHP dan MySQL <input type="hidden" name="menu" value="kelas"></form> </table><p style="margin-top: 1px; margin-bottom: 1px"> </p><table border="1" width="98%" cellspacing="0" cellpadding="0" id="table5"> <tr><td align="center" bgcolor="#93CDF5" colspan="4"> Data Kelas</td></tr> <tr><td width="31%" bgcolor="#FBA53F"><p style="margin-left: 5px; margin-right: 5px"><font size="2">Nama Kelas</font></td> <td width="25%" bgcolor="#FBA53F"><p style="margin-left: 5px; margin-right: 5px"><font size="2">Jenis</font></td> <td width="22%" bgcolor="#FBA53F"><p style="margin-left: 5px; margin-right: 5px"><font size="2">Status</font></td> </tr> <? $total=0; $kelas=mysql_query("select * from kelas order by id desc"); while($data=mysql_fetch_array($kelas)){ echo"<tr> <td width=\"31%\"><p style=\"margin-left: 5px; margin-right: 5px\"> <font size=\"2\"><a href=\"admin.php?menu=kelas &act=edit&id_data=",$data[id],"\"> ",$data[nama],"</a></font></td> <td width=\"25%\"><p style=\"margin-left: 5px; margin-right: 5px\"> <font size=\"2\">",$data[jenis],"</font></td> <td width=\"22%\"><p style=\"margin-left: 5px; margin-right: 5px\"> <font size=\"2\">",$data[status]," </font></td> </tr>";
95
Aplikasi Program PHP dan MySQL $total++; } ?> <tr><td width="99%" colspan="4"><p align="center"><font size="2">Jumlah total elas adalah <b><?=$total?></b> kelas.</font></td></tr></table>
Keterangan:
Script ini digunakan untuk mengakses data yang ada pada database kelas dan ditampilkan dalam halaman kelas. Halaman ini memuat sebuah formulir yang digunakan untuk memasukkan data kelas baru atau mengubah dan menghapus data kelas yang sudah pernah dimasukkan dan pada bagian dibawahnya menampilkan data siswa yang telah terdaftar. Berikut adalah tampilan halaman kelas apabila di akses menggunakan browser:
96
Aplikasi Program PHP dan MySQL absen_6 VARCHAR( 10 ) DEFAULT '#93CDF5' NOT NULL , absen_7 VARCHAR( 10 ) DEFAULT '#93CDF5' NOT NULL , absen_8 VARCHAR( 10 ) DEFAULT '#93CDF5' NOT NULL , absen_9 VARCHAR( 10 ) DEFAULT '#93CDF5' NOT NULL , absen_10 VARCHAR( 10 ) DEFAULT '#93CDF5' NOT NULL , absen_11 VARCHAR( 10 ) DEFAULT '#93CDF5' NOT NULL , absen_12 VARCHAR( 10 ) DEFAULT '#93CDF5' NOT NULL , absen_13 VARCHAR( 10 ) DEFAULT '#93CDF5' NOT NULL , absen_14 VARCHAR( 10 ) DEFAULT '#93CDF5' NOT NULL , absen_15 VARCHAR( 10 ) DEFAULT '#93CDF5' NOT NULL , absen_16 VARCHAR( 10 ) DEFAULT '#93CDF5' NOT NULL , absen_17 VARCHAR( 10 ) DEFAULT '#93CDF5' NOT NULL , absen_18 VARCHAR( 10 ) DEFAULT '#93CDF5' NOT NULL , nilai_harian INT( 3 ) NOT NULL , nilai_tugas INT( 3 ) NOT NULL , nilai_tengah INT( 3 ) NOT NULL , nilai_akhir INT( 3 ) NOT NULL , status VARCHAR( 200 ) NOT NULL )"; $sql=mysql_db_query("pendidikan",$tabel); header("location:./admin.php?menu=kelas"); }elseif(isset($ubah)){ $ub=mysql_query("update kelas set nama='$nama' , jenis='$jenis' , status='$status' where id='$id_data'"); header("location:./admin.php?menu=kelas"); }elseif(isset($hapus)){
98
Aplikasi Program PHP dan MySQL $hp=mysql_query("delete from kelas where id='$id_data'"); header("location:./admin.php?menu=kelas"); }else{ header("location:./admin.php?menu=kelas"); } ?>
Keterangan:
Pada script ini mempunyai tiga bagian besar, yang pertama adalah bagian script yang berfungsi untuk menambah data kelas. Untuk menambah data kelas ini, script akan memasukkan data kelas baru ke dalam database kelas dan membuat sebuah tabel baru dengan nama kelas_id kelas. Tabel baru inilah yang pada program berikutnya digunakan untuk menampung data kelas aktif. Berikut adalah potongan script tersebut: if(isset($tambah)){ $tbh=mysql_query("INSERT INTO kelas ( id , nama , jenis , status )VALUES ('', '$nama', '$jenis', '$status')"); $buat_tabel=mysql_query("select id from kelas where nama='$nama'"); $hasil=mysql_fetch_array($buat_tabel); $tabel="CREATE TABLE kelas_$hasil[0] ( id INT( 4 ) NOT NULL AUTO_INCREMENT PRIMARY KEY , id_materi VARCHAR( 200 ) NOT NULL , kelas VARCHAR( 200 ) NOT NULL , id_instruktur VARCHAR( 200 ) NOT NULL , id_assisten1 VARCHAR( 200 ) NOT NULL , id_assisten2 VARCHAR( 200 ) NOT NULL , jml_session INT( 2 ) NOT NULL ,
99
Aplikasi Program PHP dan MySQL id_siswa VARCHAR( 10 ) NOT NULL , absen_1 VARCHAR( 10 ) DEFAULT '#93CDF5' NOT NULL , absen_2 VARCHAR( 10 ) DEFAULT '#93CDF5' NOT NULL , absen_3 VARCHAR( 10 ) DEFAULT '#93CDF5' NOT NULL , absen_4 VARCHAR( 10 ) DEFAULT '#93CDF5' NOT NULL , absen_5 VARCHAR( 10 ) DEFAULT '#93CDF5' NOT NULL , absen_6 VARCHAR( 10 ) DEFAULT '#93CDF5' NOT NULL , absen_7 VARCHAR( 10 ) DEFAULT '#93CDF5' NOT NULL , absen_8 VARCHAR( 10 ) DEFAULT '#93CDF5' NOT NULL , absen_9 VARCHAR( 10 ) DEFAULT '#93CDF5' NOT NULL , absen_10 VARCHAR( 10 ) DEFAULT '#93CDF5' NOT NULL , absen_11 VARCHAR( 10 ) DEFAULT '#93CDF5' NOT NULL , absen_12 VARCHAR( 10 ) DEFAULT '#93CDF5' NOT NULL , absen_13 VARCHAR( 10 ) DEFAULT '#93CDF5' NOT NULL , absen_14 VARCHAR( 10 ) DEFAULT '#93CDF5' NOT NULL , absen_15 VARCHAR( 10 ) DEFAULT '#93CDF5' NOT NULL , absen_16 VARCHAR( 10 ) DEFAULT '#93CDF5' NOT NULL , absen_17 VARCHAR( 10 ) DEFAULT '#93CDF5' NOT NULL , absen_18 VARCHAR( 10 ) DEFAULT '#93CDF5' NOT NULL , nilai_harian INT( 3 ) NOT NULL , nilai_tugas INT( 3 ) NOT NULL , nilai_tengah INT( 3 ) NOT NULL , nilai_akhir INT( 3 ) NOT NULL , status VARCHAR( 200 ) NOT NULL )";
$sql=mysql_db_query("pendidikan",$tabel);
100
Aplikasi Program PHP dan MySQL Bagian yang kedua adalah script yang berfungsi untuk mengubah data kelas. Pada intinya script ini akan mengubah data kelas berdasarkan id tertentu pada tabel kels. Berikut adalah potongan script tersebut }elseif(isset($ubah)){ $ub=mysql_query("update kelas set nama='$nama' , jenis='$jenis' , status='$status' where id='$id_data'"); Pada bagian yang terakhir adalah script yang berguna untuk menghapus data kelas yang tidak terpakai. Berikut adalah potongan script yang berfungsi untuk menghapus data kelas: }elseif(isset($hapus)){
$hp=mysql_query("delete from kelas where id='$id_data'");
Aplikasi Program PHP dan MySQL $mulai=explode(" ",$start); $bln=array('Januari','Pebruari','Maret','April','Mei','Juni','Juli', 'Agustus','September','Oktober','Nopember','Desember'); $msk=$mulai[1]; $bulan=$waktu[1]; } $th=date("Y"); ?> <table border="1" width="98%" cellspacing="0" cellpadding="0" id="table4"> <tr><td align="center" bgcolor="#93CDF5" colspan="2">Tambah Data Siswa</td> </tr> <form method="POST" action="proses_tambah.php"> <tr><td width="25%"><p style="margin-left: 5px; margin-right: 5px"> <font size="2">Nama</td><td width="74%"> <input type="text" name="nama" size="40" style="color: #000080; font-size: 10pt; font-family: Arial; border: 1px solid #FFFFFF; padding-left: 4px; padding-right: 4px; padding-top: 1px; paddingbottom: 1px" value="<?=$d[nama]?>"> <? if($act=="edit"){ ?> <font size="2"> Status</font> <select size="1" name="status" style="color: #000080; font-family: Arial; font-size: 10pt; background-color: #FFFFFF"><option value="1" selected>Masih Aktif</option> <option value="0">Sudah Keluar</option></select><?}?></td></tr>
102
Aplikasi Program PHP dan MySQL <tr><td width="25%"><p style="margin-left: 5px; margin-right: 5px"> <font size="2">Jenis Kelamin</font></td><td width="74%"> <? if($d[sex]=="Pria"){ $pria="checked"; $wanita=""; }else{ $pria=""; $wanita="checked"; } ?> <input type="radio" value="Pria" name="sex" <?=$pria?>> <font size="2">Pria <input type="radio" value="Wanita" name="sex" <?=$wanita?>> Wanita</font></td></tr> <tr><td width="25%"><p style="margin-left: 5px; margin-right: 5px"><font size="2">Alamat</font></td> <td width="74%"> <input type="text" name="alamat" size="66" style="color: #000080; font-size: 10pt; font-family: Arial; border: 1px solid #FFFFFF; padding-left: 4px; padding-right: 4px; padding-top: 1px; padding-bottom: 1px" value="<?=$d[alamat]?>"></td> </tr> <tr> <td width="25%"><p style="margin-left: 5px; margin-right: 5px"> <font size="2">Tempat tanggal lahir</font></td><td width="74%"> <input type="text" name="tempat" size="27" style="color: 103
Aplikasi Program PHP dan MySQL #000080; font-size: 10pt; font-family: Arial; border: 1px solid #FFFFFF; padding-left: 4px; padding-right: 4px; padding-top: 1px; padding-bottom: 1px" value="<?=$d[tempat_lahir]?>"> <select size="1" name="tanggal" style="color: #000080; fontfamily: Arial; font-size: 10pt; background-color: #FFFFFF"> <? if($act=="edit"){ echo"<option value=\"$waktu[0]\" selected>$waktu[0]</option>"; } for($s=1;$s<=31;$s++){ echo"<option value=\"$s\">$s</option>"; } ?> </select> <select size="1" name="bulan" style="color: #000080; font-family: Arial; font-size: 10pt; background-color: #FFFFFF"> <? if($act=="edit"){ echo"<option value=\"$waktu[1]\" selected>$bln[$bulan]</option>"; } ?> <option value="01" >Januari</option><option value="02">Pebruari</option> <option value="03">Maret</option><option value="04">April</option> <option value="05">Mei</option><option value="06">Juni</option> <option value="07">Juli</option><option value="08">Agustus</option>
104
Aplikasi Program PHP dan MySQL <option value="09">September</option><option value="10">Oktober</option> <option value="11">Nopember</option><option value="12">Desember</option> </select> <select size="1" name="tahun" style="color: #000080; font-family: Arial; font-size: 10pt; background-color: #FFFFFF"> <? if($act=="edit"){ echo"<option value=\"$waktu[2]\" selected>$waktu[2]</option>"; } for($s=$th-35;$s<=$th-10;$s++){ echo"<option value=\"$s\">$s</option>"; } ?> </select></td></tr> <tr><td width="25%"> <p style="margin-left: 5px; margin-right: 5px"><font size="2">Agama</font></td> <td width="74%"><select size="1" name="agama" style="color: #000080; font-family: Arial; font-size: 10pt; background-color: #FFFFFF"> <? if($act=="edit"){ echo"<option value=\"$d[agama]\" selected>$d[agama]</option>"; }?> <option value="Islam">Islam</option>
105
Aplikasi Program PHP dan MySQL <option value="Kristen Protestan">Kristen Protestan</option> <option value="Kristen Katolik">Kristen Katolik</option> <option value="Hindu">Hindu</option><option value="Budha">Budha</option> <option value="lainnya">Lainnya</option></select></td></tr> <tr><td width="25%"> <p style="margin-left: 5px; margin-right: 5px"><font size="2">Nomor telepon / hp</font></td> <td width="74%"><input type="text" name="telepon" size="34" style="color: #000080; font-size: 10pt; font-family: Arial; border: 1px solid #FFFFFF; padding-left: 4px; padding-right: 4px; paddingtop: 1px; padding-bottom: 1px" value="<?=$d[telepon]?>"></td> </tr> <tr><td width="25%"><p style="margin-left: 5px; margin-right: 5px"> <font size="2">Pendidikan terakhir</font></td><td width="74%"> <input type="text" name="pendidikan" size="34" style="color: #000080; font-size: 10pt; font-family: Arial; border: 1px solid #FFFFFF; padding-left: 4px; padding-right: 4px; padding-top: 1px; padding-bottom: 1px" value="<?=$d[pendidikan]?>"></td> </tr> <tr><td width="25%"> <p style="margin-left: 5px; margin-right: 5px"><font size="2">Sekolah asal</font></td> <td width="74%"><input type="text" name="asal_sekolah" size="34" style="color: #000080; font-size: 10pt; font-family: Arial; border: 1px solid #FFFFFF; padding-left: 4px; padding-right: 4px; padding-top: 1px; padding-bottom: 1px" value="<?=$d[asal_sekolah]?>"></td> </tr>
106
Aplikasi Program PHP dan MySQL <tr><td width="25%"><p style="margin-left: 5px; margin-right: 5px"> <font size="2">Nama orang tua</font></td> <td width="74%"><input type="text" name="orang_tua" size="40" style="color: #000080; font-size: 10pt; font-family: Arial; border: 1px solid #FFFFFF; padding-left: 4px; padding-right: 4px; paddingtop: 1px; padding-bottom: 1px" value="<?=$d[orang_tua]?>"></td> </tr> <tr><td width="25%"><p style="margin-left: 5px; margin-right: 5px"> <font size="2">Pekerjaan Orang tua</font></td> <td width="74%"><input type="text" name="pekerjaan" size="40" style="color: #000080; font-size: 10pt; font-family: Arial; border: 1px solid #FFFFFF; padding-left: 4px; padding-right: 4px; paddingtop: 1px; padding-bottom: 1px" value="<?=$d[pekerjaan]?>"></td> </tr><tr><td width="25%"><p style="margin-left: 5px; margin-right: 5px"> <font size="2">Mulai masuk</font></td> <td width="74%"><select size="1" name="masuk1" style="color: #000080; font-family: Arial; font-size: 10pt; background-color: #FFFFFF"> <? if($act=="edit"){ echo"<option value=\"$mulai[0]\" selected>$mulai[0]</option>"; } for($s=1;$s<=31;$s++){ echo"<option value=\"$s\">$s</option>"; } ?> 107
Aplikasi Program PHP dan MySQL </select><select size="1" name="masuk2" style="color: #000080; font-family: Arial; font-size: 10pt; background-color: #FFFFFF"> <? if($act=="edit"){ echo"<option value=\"$mulai[1]\" selected>$bln[$msk]</option>"; } ?><option value="01">Januari</option><option value="02">Pebruari</option> <option value="03">Maret</option><option value="04">April</option> <option value="05">Mei</option><option value="06">Juni</option> <option value="07">Juli</option><option value="08">Agustus</option> <option value="09">September</option><option value="10">Oktober</option> <option value="11">Nopember</option><option value="12">Desember</option> </select><select size="1" name="masuk3" style="color: #000080; font-family: Arial; font-size: 10pt; background-color: #FFFFFF"> <? if($act=="edit"){ echo"<option value=\"$mulai[2]\" selected>$mulai[2]</option>"; } for($s=$th-10;$s<=$th;$s++){ echo"<option value=\"$s\">$s</option>"; } ?>
108
Aplikasi Program PHP dan MySQL </select></td></tr> <tr><td width="25%"><p style="margin-left: 5px; margin-right: 5px"> <font size="2">Kelas</font></td> <td width="74%"><select size="1" name="kelas" style="color: #000080; font-family: Arial; font-size: 10pt; background-color: #FFFFFF"> <? if($act=="edit"){ $data3=mysql_query("select nama from kelas where id='$d[kelas]'"); $hasil=mysql_fetch_array($data3); echo"<option value=\"$d[kelas]\" selected>$hasil[nama]</option>"; } $data2=mysql_query("select * from kelas order by nama"); while($data=mysql_fetch_array($data2)){ echo"<option value=\"",$data[id],"\">",$data[nama],"</option>"; } ?> </select></td></tr> <tr><td width="25%"> </td><td width="74%"> </td></tr> <tr><td width="25%"><p style="margin-left: 5px; margin-right: 5px"> <font size="2">User ID</font></td><td width="74%"> <select size="1" name="userid1" style="color: #000080; fontfamily: Arial; font-size: 10pt; background-color: #FFFFFF">
109
Aplikasi Program PHP dan MySQL <? if($act=="edit"){ $data4=mysql_query("select userid from siswa where id='$id_data'"); $hasil=mysql_fetch_array($data4); $userid1=explode("_",$hasil[userid]); echo"<option value=\"$userid1[0]\" selected>$userid1[0]</option>"; } $data2=mysql_query("select * from kelas order by nama"); while($data=mysql_fetch_array($data2)){ echo"<option value=\"",$data[nama],"\">",$data[nama],"</option>"; } ?> </select> </tr> <tr><td width="25%"><p style="margin-left: 5px; margin-right: 5px"><font size="2">Password</font></td> <td width="74%"><input type="text" name="password" size="24" style="color: #000080; font-size: 10pt; font-family: Arial; border: 1px solid #FFFFFF; padding-left: 4px; padding-right: 4px; paddingtop: 1px; padding-bottom: 1px" value="<?=$d[password]?>"></td> </tr> <tr> <td width="25%"> </td><td width="74%"> </td></tr> <tr><td width="25%"> </td><td width="74%"> <? if($act!=="edit"){
110
Aplikasi Program PHP dan MySQL ?> <input type="submit" value="TAMBAH" name="tambah" style="font-family: Arial; color: #000080"> <?}else{?> <input type="submit" value=" UBAH " name="ubah" style="fontfamily: Arial; color: #000080"> <input type="submit" value=" HAPUS " name="hapus" style="fontfamily: Arial; color: #000080"> <?}?></td></tr> <input type="hidden" name="id_data" value="<?=$d[id]?>"> <input type="hidden" name="menu" value="siswa"></form> </table> <p style="margin-top: 1px; margin-bottom: 1px"> </p> <table border="1" width="98%" cellspacing="0" cellpadding="0" id="table5"> <tr><td align="center" bgcolor="#93CDF5" colspan="3">Data Siswa</td></tr> <tr><td width="31%" bgcolor="#FBA53F"> <p style="margin-left: 5px; margin-right: 5px"> <font size="2">Nama</font></td><td width="25%" bgcolor="#FBA53F"><p style="margin-left: 5px; margin-right: 5px"><font size="2">Kelas</font></td><td width="43%" bgcolor="#FBA53F"><p style="margin-left: 5px; margin-right: 5px"><font size="2">Alamat</font></td></tr> <? $total=0; $data3=mysql_query("select * from siswa where status='1' order by id desc"); while($data=mysql_fetch_array($data3)){
111
Aplikasi Program PHP dan MySQL $baca=mysql_query("select nama from kelas where id='$data[kelas]'"); $data2=mysql_fetch_array($baca); echo"<tr><td width=\"31%\"><p style=\"margin-left: 5px; marginright: 5px\"><font size=\"2\"><a href=\"admin.php?menu=siswa&act=edit&id_data=",$data[id],"\"> ",$data[nama],"</a></font></td><td width=\"16%\"><p style=\"margin-left: 5px; margin-right: 5px\"><font size=\"2\">",$data2[nama],"</font></td><td width=\"52%\"> <p style=\"margin-left: 5px; margin-right: 5px\"><font size=\"2\">",$data[alamat],"</font></td></tr>"; $total++; } ?> <tr><td width="99%" colspan="3"><p align="center"><font size="2">Jumlah total siswa adalah <b><?=$total?></b> orang.</font></td></tr></table>
Keterangan:
Pada script yang ada dalam halaman kelas aktif ini banyak sekali memuat fungsi-fungsi PHP. Fungsi-fungsi ini digabung dan difungsikan untuk mengolah data sesuai dengan kondisi program dan datanya. Pada bagian awal script ini memanggil file sambung.php untuk mengkoneksikan program dengan database, yaitu menggunakan fungsi include. Berikutnya dilanjutkan dengan rangkaian script yang berfungsi untuk mengambil data dari database dan mengkonversikan dalam bentuk format tanggal dalam bahasa Indonesia, potongan script tersebut adalah: if($act=="edit"){ $data1=mysql_query("select * from siswa where id='$id_data'"); $d=mysql_fetch_array($data1); $lahir=date("j n Y",$d[tgl_lahir]);
112
Aplikasi Program PHP dan MySQL $waktu=explode(" ",$lahir); $start=date("j n Y",$d[masuk]); $mulai=explode(" ",$start); $bln=array('Januari','Pebruari','Maret','April','Mei','Juni','Juli', 'Agustus','September','Oktober','Nopember','Desember'); $msk=$mulai[1]; $bulan=$waktu[1]; } $th=date("Y"); Berikutnya untuk menampilkan data pada halaman website, program menggunkan tag-tag HTML. Namun pada bagian-bagian tertentu, script ini membutuhkan script PHP untuk membuat obyek-obyek formulir. Berikut adalah script PHP digunakan untuk membuat obyek drop down untuk mentukan pilihan tanggal: <select size="1" name="tanggal" style="color: #000080; font-family: Arial; font-size: 10pt; background-color: #FFFFFF"> <? if($act=="edit"){ echo"<option value=\"$waktu[0]\" selected>$waktu[0]</option>"; } for($s=1;$s<=31;$s++){ echo"<option value=\"$s\">$s</option>"; } ?> </select> Pada script ini, untuk menuliskan pilihan tanggal dari angka 1 sampai angka 31 tidak perlu menuliskan opsi pilihan berulang sampai tiga pulih satu kali, namun cukup menggunakan fungsi for dari kode PHP.
113
Aplikasi Program PHP dan MySQL Untuk menentukan pilihan nama kelas, script ini tidak menulis lagi tiap-tiap nama kelas yang sudah terdaftar, namun script akan membaca database nama kelas aktif dan menampilkan sebagai opsi. Potongan script tersebut adalah: $data2=mysql_query("select * from kelas order by nama"); while($data=mysql_fetch_array($data2)){ echo"<option value=\"",$data[nama],"\">",$data[nama],"</option>"; } ?> </select> Pada bagian paling bawah dari script ini adalah befungsi untuk membaca data kelas dari database dan menampilkan ke halaman kelas menggunakan tag-tag HTML. Berikut adalah potongan script tersebut: <? $total=0; $data3=mysql_query("select * from siswa where status='1' order by id desc"); while($data=mysql_fetch_array($data3)){ $baca=mysql_query("select nama from kelas where id='$data[kelas]'"); $data2=mysql_fetch_array($baca); echo"<tr><td width=\"31%\"><p style=\"margin-left: 5px; marginright: 5px\"><font size=\"2\"><a href=\"admin.php?menu=siswa&act=edit&id_data=",$data[id],"\"> ",$data[nama],"</a></font></td><td width=\"16%\"><p style=\"marginleft: 5px; margin-right: 5px\"><font size=\"2\">",$data2[nama],"</font></td><td width=\"52%\"> <p style=\"margin-left: 5px; margin-right: 5px\"><font size=\"2\">",$data[alamat],"</font></td></tr>";
114
Aplikasi Program PHP dan MySQL $total++; } ?> Apabila ditampilkan pada browser, tampilan halaman kelas seperti pada gambar 5.10 berikut:
Untuk melihat data lengkap dari salah satu data materi kelas aktif, anda dapat pilih dan klik salah satu nama kelas aktif pada daftar
115
Aplikasi Program PHP dan MySQL kelas aktif. Berikut adalah tampilan data kelas aktif detail apbila salah satu nama kelas aktif telah dipilih:
Apabila anda perhatikan pada gambar 5.10 dan gambar 5.11 ada beberapa perbedaan. Pada gambar 5.10 hanya digunakan untuk menambah kelas aktif baru, jadi hanya membutuhkan satu tombol yaitu tambah saja. Namun pada halaman kelas aktif dengan data detail akan ditampilkan beberapa tombol dengan fungsi yang berbedabeda. Tombol ubah digunakan untuk mengubah data kelas aktif, tombol hapus digunakan untuk menghapus data kelas aktif, 116
Aplikasi Program PHP dan MySQL kemudian tombol nilai digunakan untuk melihat nilai siswa dari kelas dan materi tersebut dan tombol lihat absensi digunakan untuk melihat data absensi siswa dari kelas yang sedang diakses.
117
Aplikasi Program PHP dan MySQL VALUES ( '', '$nama', '$kelas' , '$instruktur', '$assisten1', '$assisten2', '$session', '$siswa[id]', '#93CDF5', '#93CDF5', '#93CDF5', '#93CDF5', '#93CDF5', '#93CDF5', '#93CDF5', '#93CDF5', '#93CDF5', '#93CDF5', '#93CDF5', '#93CDF5', '#93CDF5', '#93CDF5', '#93CDF5', '#93CDF5', '#93CDF5', '#93CDF5', '0', '0', '0', '0', '1' )"); } header("location:./admin.php?menu=materi"); }elseif(isset($ubah)){ $ub=mysql_query("update materi set nama='$nama' , instruktur='$instruktur' , assisten1='$assisten1' , assisten2='$assisten2' , jml_session='$session' , mulai='$mulai' , jam_masuk='$jam_masuk' , hari_masuk='$hari' , status='$status' where id='$id_data'"); $add_siswa=mysql_query("update kelas_$kelas set id_materi='$materi', kelas='$kelas' , id_instruktur='$instruktur' , id_assisten1='$assisten1' , id_assisten2='$assisten2' , jml_session='$session' where id_materi='$nama' and kelas='$kelas' and id_instruktur='$instruktur'"); header("location:./admin.php?menu=materi"); }elseif(isset($hapus)){ $hp=mysql_query("delete from materi where id='$id_data'"); header("location:./admin.php?menu=materi"); }elseif(isset($materi_baru)){ header("location:./admin.php?menu=materi_baru"); }elseif(isset($nilai)){ header("location:./admin.php?menu=nilai&kelas=$kelas& inst=$instruktur&materi=$nama"); }elseif(isset($absensi)){ 118
Aplikasi Program PHP dan MySQL header("location:./admin.php?menu=absensi&kelas=$kelas& inst=$instruktur&materi=$nama"); }else{ header("location:./admin.php?menu=materi"); } ?>
Keterangan:
Pada bagian pertama dalam script di atas adalah berfungsi untuk menambah data pada database kelas dan kelas aktif. Script ini diawali dengan fungsi if yang memeriksa keberadaan variabel $tambah seperti pada potongan script di bawah ini: if(isset($tambah)){ $tbh=mysql_query("INSERT INTO materi ( id , nama , kelas , instruktur , assisten1 , assisten2 , jml_session , mulai , jam_masuk , hari_masuk , status ) VALUES ('', '$nama', '$kelas' , '$instruktur', '$assisten1', '$assisten2','$session', '$mulai', '$jam_masuk', '$hari', '1')"); $kls=mysql_query("select * from siswa where kelas='$kelas'"); $jml_siswa=mysql_num_rows($kls); for($a=0;$a<$jml_siswa;$a++){ $siswa=mysql_fetch_array($kls); Pada bagian kedua adalah script yang berfungsi untuk mengubah data kelas aktif yang sudah terdaftar. Bagian ini diawali dengan fungsi if dengan memeriksa keberadaan variabel $ubah seperti pada potongan script dibawah ini: }elseif(isset($ubah)){ $ub=mysql_query("update materi set nama='$nama' , instruktur='$instruktur' , assisten1='$assisten1' , assisten2='$assisten2' , jml_session='$session' , mulai='$mulai' ,
119
Aplikasi Program PHP dan MySQL jam_masuk='$jam_masuk' , hari_masuk='$hari' , status='$status' where id='$id_data'"); Bagian ketiga dari script ini adalah digunakan untuk menghapus data kelas aktif yang sudah terdaftar. Seperti pada bagian sebelumnya, bagian ini juga diawali dengan fungsi if yang memeriksa keberadaan variabel $hapus. Berikut adalah bagian script yang digunakan untuk menghapus data kelas aktif: }elseif(isset($ubah)){ $ub=mysql_query("update materi set nama='$nama' , instruktur='$instruktur' , assisten1='$assisten1' , assisten2='$assisten2' , jml_session='$session' , mulai='$mulai' , jam_masuk='$jam_masuk' , hari_masuk='$hari' , status='$status' where id='$id_data'"); $add_siswa=mysql_query("update kelas_$kelas set id_materi='$materi', kelas='$kelas' , id_instruktur='$instruktur' , id_assisten1='$assisten1' , id_assisten2='$assisten2' , jml_session='$session' where id_materi='$nama' and kelas='$kelas' and id_instruktur='$instruktur'"); Di bawah dari bagian script yang berfungsi untuk menghapus data kelas, masih ada beberapa fungsi lagi yaitu link redirect ke halaman tambah data materi baru jika tombol tambah data materi baru dipilih, kemudian link kehalaman data absensi siswa apabila tombol lihat absensi di pilih dan bagian script yang terakhir dengan fungsi mengalihkan administrator ke halaman data nilai apabila administrator menekan tombol lihat nilai.
120
Aplikasi Program PHP dan MySQL Halaman ini berisikan formulir untuk menambah data materi baru dan daftar materi yang sudah dimasukkan sebelumnya. Berikut adalah script yang digunakan untuk membuat halaman tambah data materi baru ini. <? include"../sambung.php"; if($act=="edit"){ $data1=mysql_query("select * from data_materi where id='$id_data'"); $d=mysql_fetch_array($data1); } ?> <table border="1" width="98%" cellspacing="0" cellpadding="0" id="table4"> <tr><td align="center" bgcolor="#93CDF5" colspan="2">Tambah Data Materi</td></tr> <form method="POST" action="proses_tambah.php"> <tr><td width="25%"><p style="margin-left: 5px; margin-right: 5px"> <font size="2">Nama Materi</font></td> <td width="74%"><input type="text" name="nama" size="40" style="color: #000080; font-size: 10pt; font-family: Arial; border: 1px solid #FFFFFF; padding-left: 4px; padding-right: 4px; paddingtop: 1px; padding-bottom: 1px" value="<?=$d[nama]?>"></td></tr> <tr><td width="25%"><p style="margin-left: 5px; margin-right: 5px"> <font size="2">Jumlah session</font></td> <td width="74%"><input type="text" name="session" size="2" style="color: #000080; font-size: 10pt; font-family: Arial; border: 1px solid #FFFFFF; padding-left: 4px; padding-right: 4px; padding-
121
Aplikasi Program PHP dan MySQL top: 1px; padding-bottom: 1px" value="<?=$d[session]?>"> pertemuan.</td></tr> <tr><td width="25%"> </td> <td width="74%"> </td></tr> <tr><td width="25%"> </td><td width="74%"> <? if($act!=="edit"){ ?> <input type="submit" value="TAMBAH" name="tambah" style="font-family: Arial; color: #000080"> <?}else{?> <input type="submit" value=" UBAH " name="ubah" style="fontfamily: Arial; color: #000080"> <input type="submit" value=" HAPUS " name="hapus" style="fontfamily: Arial; color: #000080"> <?}?></td></tr> <input type="hidden" name="id_data" value="<?=$d[id]?>"> <input type="hidden" name="menu" value="materi_baru"></form> </table> <p style="margin-top: 1px; margin-bottom: 1px"> </p> <table border="1" width="98%" cellspacing="0" cellpadding="0" id="table5"> <tr><td align="center" bgcolor="#93CDF5" colspan="4">Data Kelas</td></tr> <tr><td width="31%" bgcolor="#FBA53F"><p style="margin-left: 5px; margin-right: 5px"><font size="2">Nama Materi</font></td> <td width="25%" bgcolor="#FBA53F"><p style="margin-left: 5px; margin-right: 5px"><font size="2">Jumlah Session</font></td> <td width="22%" bgcolor="#FBA53F"><p style="margin-left: 5px; 122
Aplikasi Program PHP dan MySQL margin-right: 5px"><font size="2">Status</font></td></tr> <? $total=0; $materi=mysql_query("select * from data_materi order by id desc"); while($data=mysql_fetch_array($materi)){ echo"<tr><td width=\"31%\"><p style=\"margin-left: 5px; marginright: 5px\"><font size=\"2\"> <a href=\"admin.php?menu=materi_baru&act=edit& id_data=",$data[id],"\"> ",$data[nama],"</a></font></td> <td width=\"25%\"><p style=\"margin-left: 5px; margin-right: 5px\"> <font size=\"2\">",$data[session],"</font></td><td width=\"22%\"> <p style=\"margin-left: 5px; margin-right: 5px\"><font size=\"2\">",$data[status]," </font></td> </tr>"; $total++; } ?> <tr><td width="99%" colspan="4"><p align="center"><font size="2">Jumlah total kelas adalah <b><?=$total?></b> kelas.</font></td></tr></table>
Keterangan:
Awal dari script ini akan melakukan koneksi dengan database materi, yaitu memanggil file sambung.php menggunakan fungsi include. Kemudian pada script berikutnya adalah membentuk formulir yang digunakan untuk menambah data materi baru. Pada bagian kedua script ini akan membaca data materi yang sudah terdaftar dan menampilkan di bawah formulir kosong. Script yang dimaksud adalah seperti pada potongan script berikut: <? 123
Aplikasi Program PHP dan MySQL $total=0; $materi=mysql_query("select * from data_materi order by id desc"); while($data=mysql_fetch_array($materi)){ echo"<tr><td width=\"31%\"><p style=\"margin-left: 5px; marginright: 5px\"><font size=\"2\"> <a href=\"admin.php?menu=materi_baru&act=edit& id_data=",$data[id],"\"> ",$data[nama],"</a></font></td> <td width=\"25%\"><p style=\"margin-left: 5px; margin-right: 5px\"> <font size=\"2\">",$data[session],"</font></td><td width=\"22%\"> <p style=\"margin-left: 5px; margin-right: 5px\"><font size=\"2\">",$data[status]," </font></td> </tr>"; $total++; } ?> Berikut adalah tampilan halaman tambah data materi baru:
124
125
Aplikasi Program PHP dan MySQL header("location:./admin.php?menu=materi_baru"); }elseif(isset($ubah)){ $ub=mysql_query("update data_materi session='$session' where id='$id_data'"); set nama='$nama' ,
header("location:./admin.php?menu=materi_baru"); }elseif(isset($hapus)){ $hp=mysql_query("delete from data_materi where id='$id_data'"); header("location:./admin.php?menu=materi_baru"); }else{ header("location:./admin.php?menu=materi_baru"); } ?>
Keterangan:
Sama halnya dengan script pengolah data yang ada pada bahasan sebelumnya, bahwa pada script ini juga dibagi menjadi tiga bagian yaitu bagian yang berfungsi untuk menambahkan data pada database, bagian yang kedua adalah script yang berfungi untuk mengubah data materi yang telah trdaftar dan yang ke tiga adalah script yang berfungsi untuk menghapus data materi yang sudah tidak digunakan. Pada masing-masing bagian dibatasi dengan fungsi if yang memeriksa variabel-variabel dari formulir tambah data materi.
126
Aplikasi Program PHP dan MySQL semester dan juga nilai akhir semester. Berikut adalah script yang digunakan untuk membangun halaman data nilai siswa tersebut: <table border="1" width="98%" cellspacing="0" cellpadding="0" id="table4"> <tr><td align="center" bgcolor="#93CDF5">Data Nilai Siswa <?=$nama?></td></tr> <tr><td width="99%"><form method="POST" action="nilai_cetak.php?kelas=<?echo"$kelas&inst=$inst& materi=$materi"?>" target="_blank"> <table border="1" width="602" id="table5" cellspacing="0"> <? include"../sambung.php"; $mtr=@mysql_query("select nama from data_materi where id='$materi'"); $mtr2=@mysql_fetch_array($mtr); ?> <tr><td bgcolor="#93CDF5" width="37" align="center" rowspan="2"> <font size="2">No.</font></td> <td bgcolor="#93CDF5" align="center" width="173" rowspan="2"><font size="2">Nama</font></td> <td bgcolor="#93CDF5" align="center" width="383" colspan="6"><font size="2">Nilai materi <?=$mtr2[nama]?></font></td></tr> <tr> <td bgcolor="#93CDF5" width="63"><p align="center"><font size="2">Harian</font></td> <td bgcolor="#93CDF5" width="63"><p align="center"><font size="2">Tugas</font></td> <td bgcolor="#93CDF5" width="64"><p align="center"><font 127
Aplikasi Program PHP dan MySQL size="2">Tengah sms</font></td> <td bgcolor="#93CDF5" width="64"><p align="center"><font size="2">Akhir sms</font></td> <td bgcolor="#93CDF5" width="64"><p align="center"><font size="2">Total</font></td> <td bgcolor="#93CDF5" width="64"><p align="center"><font size="2">Nilai Huruf</font></td></tr> <? $nomor=1; $baca=mysql_query("select * from kelas_$kelas where id_instruktur='$inst' and id_materi='$materi' and kelas='$kelas'"); while($data=mysql_fetch_array($baca)){ $siswa=mysql_query("select nama from siswa where id='$data[id_siswa]'"); $siswa2=mysql_fetch_array($siswa); $total[$nomor]=number_format(((($data[nilai_harian]+ $data[nilai_tugas]+$data[nilai_tengah])/3)+($data[nilai_akhir]))/2,2); if($total[$nomor]<=50){ $n[$nomor]="E"; $bg_color="#FFCC99"; }elseif($total[$nomor]<=75){ $n[$nomor]="D"; }elseif($total[$nomor]<=82){ $n[$nomor]="C"; }elseif($total[$nomor]<=92){ $n[$nomor]="B"; }else{ $n[$nomor]="A"; 128
Aplikasi Program PHP dan MySQL } echo"<tr><td bgcolor=\"$bg_color\" width=\"37\"><font size=\"2\"> <center>$nomor</center></font></td> <td bgcolor=\"$bg_color\" width=\"173\"><font size=\"2\">$siswa2[nama]</font></td> <td bgcolor=\"$bg_color\" width=\"63\" align=\"center\"><font size=\"2\">$data[nilai_harian]</font></td> <td bgcolor=\"$bg_color\" width=\"63\" align=\"center\"><font size=\"2\">$data[nilai_tugas]</font></td> <td bgcolor=\"$bg_color\" width=\"64\" align=\"center\"><font size=\"2\">$data[nilai_tengah]</font></td> <td bgcolor=\"$bg_color\" width=\"64\" align=\"center\"><font size=\"2\">$data[nilai_akhir]</font></td> <td bgcolor=\"$bg_color\" width=\"64\" align=\"center\"><font size=\"2\">$total[$nomor]</font></td> <td bgcolor=\"$bg_color\" width=\"64\" align=\"center\"><b><font size=\"2\" color=\"#FF0000\">$n[$nomor]</font></b></td> </tr>"; $nomor++; } ?> </table><center><input type="submit" value="Format Cetak" name="tambah" style="font-family: Arial; color: #000080"> </form></td></tr></table>
Keterangan:
Pada dasarnya script di atas mempunyai fungsi membaca data siswa dan instruktur berdasarkan materi dan kelas aktif tertentu yang ada dalam tabel kelas_n1,n2, n.
129
Aplikasi Program PHP dan MySQL Bagian-bagian penting yang harus diperhatikan dalam script diatas adalah script yang membaca data siswa berdasarkan instruktur, materi dan kelas seperti yang ditampilkan dibawah ini: $baca=mysql_query("select * from kelas_$kelas where id_instruktur='$inst' and id_materi='$materi' and kelas='$kelas'"); while($data=mysql_fetch_array($baca)){ $siswa=mysql_query("select nama from siswa where id='$data[id_siswa]'"); $siswa2=mysql_fetch_array($siswa); $total[$nomor]=number_format(((($data[nilai_harian]+ $data[nilai_tugas]+$data[nilai_tengah])/3)+($data[nilai_akhir]))/2,2); Kemudian pada halaman nilai ini juga ditampilkan nilai dalam format abjad. Untuk menuliskan nilai abjad ini, script akan membaca total nilai siswa dan mendeklarasikan nilai dalam bentuk abjad berdasarkan rate tertentu. Berikut adalah bagian script yang mengalah data tersebut: if($total[$nomor]<=50){ $n[$nomor]="E"; $bg_color="#FFCC99"; }elseif($total[$nomor]<=75){ $n[$nomor]="D"; }elseif($total[$nomor]<=82){ $n[$nomor]="C"; }elseif($total[$nomor]<=92){ $n[$nomor]="B"; }else{ $n[$nomor]="A"; }
130
Aplikasi Program PHP dan MySQL Pada script berikutnya adalah menampilkan data tersebut ke dalam halaman nilai siswa menggunakan fungsi PHP dan tag-tag HTML. Berikut adalah tampilan halaman nilai siswa:
Jika diperhatikan pada halaman nilai ini terdapat sebuah tombol dengan nama format cetak. Tombol ini adalah pintu yang digunakan untuk membuka halaman nilai siswa dalam format cetak. Artinya jika seorang administrasi ingin mencetak laporan dalam media kertas, maka administrator dapat mencetak dari browser.
131
Aplikasi Program PHP dan MySQL cetak nilai siswa ini dibuatkan sebuah format halaman tanpa warna yang mencolok dan dengan format hitam putih saja. Tujuan dari halaman ini adalah digunakan untuk dicetak oleh administrasi apabila dibutuhkan laporan dengan media kertas. Berikut adalah script yang digunakan untuk membuat halaman cetak nilai: <? include"../sambung.php"; $mtr=@mysql_query("select nama from data_materi where id='$materi'"); $mtr2=@mysql_fetch_array($mtr); $kls=@mysql_query("select * from kelas where id='$kelas'"); $kls2=@mysql_fetch_array($kls); $instr=@mysql_query("select * from karyawan where id='$inst'"); $inst2=@mysql_fetch_array($instr); $materi2=mysql_query("select * from materi where id='$kelas'"); $materi1=mysql_fetch_array($materi2); ?> <html><head><title>Data Nilai Siswa</title></head> <body><center><br> <table border="1" width="72%" cellspacing="0" cellpadding="0" id="table1"> <tr><td colspan="8"><p align="center"><img border="0" src="../images/logomadcoms.gif" width="577" height="110"></td></tr> <tr><td colspan="8"><p align="center"><font face="Arial" size="4">Laporan Nilai Siswa Kelas <?=$kls2[nama]?></font></td></tr> <tr><td colspan="8"><table border="0" width="100%" cellspacing="0" cellpadding="0" id="table2">
132
Aplikasi Program PHP dan MySQL <tr><td width="125"><p style="margin-left: 10px"> <font face="Arial" size="2" color="#000080">Materi</font></td> <td><font face="Arial" size="2" color="#000080">:<?=$mtr2[nama]?></font></td></tr> <tr><td width="125"><p style="margin-left: 10px"><font face="Arial" size="2" color="#000080">Instruktur</font></td> <td><font face="Arial" size="2" color="#000080">:<?=$inst2[nama]?></font></td></tr> <tr><td width="125"><p style="margin-left: 10px"> <font face="Arial" size="2" color="#000080">Hari Masuk</font></td> <td><font face="Arial" size="2" color="#000080">:<?=$materi1[hari_masuk]?></font></td></tr> <tr><td width="125"><p style="margin-left: 10px"><font face="Arial" size="2" color="#000080">Jam Masuk</font></td> <td><font face="Arial" size="2" color="#000080">:<?=$materi1[jam_masuk]?></font></td> </tr></table></td></tr> <tr><td width="4%" rowspan="2" align="center"><b><font face="Arial" size="2" color="#000080">No.</font></b></td> <td width="26%" rowspan="2" align="center"><b><font face="Arial" size="2" color="#000080">Nama Siswa</font></b></td><td width="68%" colspan="6" align="center"><b><font face="Arial" size="2" color="#000080">Nilai</font></b></td></tr> <tr><td width="12%" align="center"><b><font face="Arial" size="2" color="#000080">Harian</font></b></td><td width="12%" align="center"><b><font face="Arial" size="2" color="#000080">Tugas</font></b></td><td width="11%" align="center"><b><font face="Arial" size="2" color="#000080">Tengah sms</font></b></td><td width="11%" align="center"><b><font face="Arial" size="2" color="#000080">Akhir sms</font></b></td><td width="11%" 133
Aplikasi Program PHP dan MySQL align="center"><b><font face="Arial" size="2" color="#000080">Total</font></b></td><td width="11%" align="center"><b><font face="Arial" size="2" color="#000080">Nilai Abjad</font></b></td></tr> <? $nomor=1; $baca=mysql_query("select * from kelas_$kelas where id_instruktur='$inst' and id_materi='$materi' and kelas='$kelas'"); while($data=mysql_fetch_array($baca)){ $siswa=mysql_query("select nama from siswa where id='$data[id_siswa]'"); $siswa2=mysql_fetch_array($siswa); $total[$nomor]=number_format(((($data[nilai_harian]+ $data[nilai_tugas]+$data[nilai_tengah])/3)+($data[nilai_akhir]))/2,2); if($total[$nomor]<=50){ $n[$nomor]="E"; $bg_color="#FFCC99"; }elseif($total[$nomor]<=75){ $n[$nomor]="D"; }elseif($total[$nomor]<=82){ $n[$nomor]="C"; }elseif($total[$nomor]<=92){ $n[$nomor]="B"; }else{ $n[$nomor]="A"; } echo"<tr><td width=\"4%\"><p align=\"center\"><font face=\"Arial\" size=\"2\" color=\"#000080\">$nomor</font></td>
134
Aplikasi Program PHP dan MySQL <td width=\"26%\"><p style=\"margin-left: 5px; margin-right: 5px\"><font face=\"Arial\" size=\"2\" color=\"#000080\">$siswa2[nama]</font></td> <td width=\"12%\" align=\"center\"><font face=\"Arial\" size=\"2\" color=\"#000080\">$data[nilai_harian]</font></td> <td width=\"12%\" align=\"center\"><font face=\"Arial\" size=\"2\" color=\"#000080\">$data[nilai_tugas]</font></td> <td width=\"11%\" align=\"center\"><font face=\"Arial\" size=\"2\" color=\"#000080\">$data[nilai_tengah]</font></td> <td width=\"11%\" align=\"center\"><font face=\"Arial\" size=\"2\" color=\"#000080\">$data[nilai_akhir]</font></td> <td width=\"11%\" align=\"center\"><font face=\"Arial\" size=\"2\" color=\"#000080\">$total[$nomor]</font></td> <td width=\"11%\" align=\"center\"><font face=\"Arial\" size=\"2\" color=\"#000080\">$n[$nomor]</font></td></tr>"; $nomor++; } ?> </table></center></body></html>
Keterangan:
Fungsi-fungsi yang digunakan untuk membuat halaman cetak adalah sama dengan script yang digunakan untuk menampilkan data nilai siswa, bedanya adalah tag-tag HTML yang dibuat dalam halaman ini adalah tag-tag HTML untuk membuat tampilan yang sederhana saja. Berikut adalah tampilan halaman cetak nilai siswa:
135
Aplikasi Program PHP dan MySQL <? include"../sambung.php"; $nomor=1; $baca=@mysql_query("select * from kelas_$kelas where id_instruktur='$inst' and id_materi='$materi' and kelas='$kelas'"); while($data=@mysql_fetch_array($baca)){ $siswa=@mysql_query("select nama from siswa where id='$data[id_siswa]'"); $siswa2=@mysql_fetch_array($siswa); echo"<tr><td width=\"34\"><font size=\"2\"><center>$nomor</center></font></td> <td width=\"127\"><font size=\"2\">$siswa2[nama]</font></td> <td width=\"21\" bgcolor=\"$data[absen_1]\"> </td> <td width=\"21\" bgcolor=\"$data[absen_2]\"> </td> <td width=\"21\" bgcolor=\"$data[absen_3]\"> </td> <td width=\"21\" bgcolor=\"$data[absen_4]\"> </td> <td width=\"21\" bgcolor=\"$data[absen_5]\"> </td> <td width=\"21\" bgcolor=\"$data[absen_6]\"> </td> <td width=\"21\" bgcolor=\"$data[absen_7]\"> </td> <td width=\"21\" bgcolor=\"$data[absen_8]\"> </td> <td width=\"21\" bgcolor=\"$data[absen_9]\"> </td> <td width=\"21\" bgcolor=\"$data[absen_10]\"> </td> <td width=\"21\" bgcolor=\"$data[absen_11]\"> </td> <td width=\"21\" bgcolor=\"$data[absen_12]\"> </td> <td width=\"21\" bgcolor=\"$data[absen_13]\"> </td> <td width=\"21\" bgcolor=\"$data[absen_14]\"> </td> <td width=\"22\" bgcolor=\"$data[absen_15]\"> </td>
137
Aplikasi Program PHP dan MySQL <td width=\"22\" bgcolor=\"$data[absen_16]\"> </td> <td width=\"22\" bgcolor=\"$data[absen_17]\"> </td> <td width=\"22\" bgcolor=\"$data[absen_18]\"> </td> </tr>"; $nomor++; } ?>
Keterangan:
Sengaja saya tidak menampilkan script data absensi siswa ini secara keseluruhan, karena terlalu panjngnya tag-tag HTML yang dibutuhkan. Saya hanya menampilkan bagian-bagian penting saja pada script data absensi siswa ini. Untuk melihat script keseluruhan , anda dapat membuka file absensi.php pada folder administrator dalam cd yang disertakan bersama buku ini. Script di atas dimulai dengan memanggil file sambung.php yang berfungsi untuk melakukan koneksi dengan database. Berikutnya script dilanjutkan dengan perintah query untuk membaca tabel kelas_n1 dengan filter atau syarat pembacaan data berdasarkan id_instruktur, id_materi dan berdasarkan kelas tertentu. Langkah berikutnya diikuti dengan tag-tag HTML dengan disisipkan beberapa variabel untuk menampilkan data pada halaman data absensi siswa ini. Berikut adalah gambar halaman keaktivan siswa:
138
ABSENSI SISWA
Tujuan dibuatnya halaman cetak data absensi siswa ini juga sama dengan halaman cetak data nilai siswa, yaitu apabila administrasi ingin mencetak laporan keaktivan siswa. Script yang digunakanpun intinya sama denhan halaman data absensi siswa. Perbedaannya adalah tag-tag HTML yang digunakan. Berikut adalah tampilan halaman cetak data absensi siswa tersebut: 139
140
HALAMAN INDEX
Seperti pada halaman administrator, halaman instruktur ini juga memiliki halaman utama yang disebut halaman index. Halaman ini yang akan diakses paling awal oleh seorang instruktur. Halaman indek instruktur menampilkan sebuah formulir untuk melakukan login. Apabila instruktur akan mengakses halaman ini, maka
141
Aplikasi Program PHP dan MySQL instruktur harus membuka halaman index utama dari program ini, kemudian memilih menu link instruktur. Berikut adalah script yang digunakan untuk menampilkan halaman index instruktur: <table border="1" width="98%" cellspacing="0" cellpadding="0" id="table4"> <tr><td align="center" bgcolor="#93CDF5">Login Instruktur</td> </tr> <form method="POST" action="login.php"> <tr><td width="99%"> <? if($error){ echo"<p align=\"center\"><font color=\"#FF0000\">UserID atau Password yang Anda masukkan salah.<br> Silakan ulangi lagi.</font></p>";} ?> <p style="margin-left: 5px; margin-right: 5px" align="center"> <p style="margin:2px 5px; " align="center"> <font size="2">Nama</font><p style="margin:2px 5px; " align="center"> <select size="1" name="id" style="color: #000080; font-family: Arial; font-size: 10pt"> <option selected value="-">Pilih Nama</option> <? include"../sambung.php"; $baca=mysql_query("select id,nama from karyawan order by nama"); while($data=mysql_fetch_array($baca)){
142
Aplikasi Program PHP dan MySQL echo"<option value=\"$data[id]\">$data[nama]</option>"; } ?> </select><p style="margin:2px 5px; " align="center"> <font size="2">Password</font><p style="margin:2px 5px; " align="center"> <input type="password" name="password" size="18" style="color: #000080; font-family: Arial; font-size: 10pt"><p align="center"> <input type="submit" value=" LOGIN " name="login" style="fontfamily: Arial; color: #000080"></td></tr> <input type="hidden" name="id_data" value="<?=$data[id]?>"> </form> </table>
Keterangan:
Pada script di atas saya cantumkan bagian script yang perlu dijelaskan saja, karena pnjangnya tag-tag HTML di dalamnya. Script ini intinya memuat tag-tag HTML yang membentuk sebuah formulir dengan dua obyek saja. Obyek yang pertama adalah sebuah drop down dengan menampilkan nilai nama-nama instruktur. Jadi apabila instruktur akan melakukan login tidak perlu menuliskan nama atau user id lagi, namun cukup mencari namanya yang ada dalam pilihan dropdown ini. Data nama-nama instruktur ini diambil dari hasil pembacaan data instruktur dari tabel karyawan. Bagian dari fungsi membaca dan menampilkan nama instruktur ini adalah: <? include"../sambung.php"; $baca=mysql_query("select id,nama from karyawan order by nama"); while($data=mysql_fetch_array($baca)){ echo"<option value=\"$data[id]\">$data[nama]</option>";
143
Aplikasi Program PHP dan MySQL } ?> Kemudian diikuti dengan obyek formulir yang kedua adalah kotak teks jenis password. Fungsi dari kotak teks ini adalah digunakan untuk menuliskan password dari masing-masing instruktur. Script tersebut adalah pada bagian: <input type="password" name="password" size="18" style="color: #000080; font-family: Arial; font-size: 10pt"> Tampilan dari halaman index instruktur tersebut adalah sebagai berikut:
144
Aplikasi Program PHP dan MySQL variabel-variabel tertentu kemudian akan diolah pada script ini. Berikut adalah data script pengolah data login tersebut: <? session_start(); include"../sambung.php"; $data=mysql_query("select * from karyawan where id='$id'"); $user=mysql_fetch_array($data); $pengajar="$user[nama]"; if($userid =="-" || $password==""){ header("Location:./index.php?error=1"); }else{ if($password=="$user[password]"){ session_register("id"); session_register("password"); session_register("pengajar"); header("Location:./utama.php"); }else{ header("Location:./index.php?error=1"); }} ?>
Keterangan:
Yang harus ditulis paling atas dalam script ini adalah fungsi sesi, yaitu session_start(); Fungsi untuk mendeklarasikan adanya data sesi dalam sebuah halaman php ini harus dituliskan pada bagian paling awal dari script keseluruhan. Apabila fungsi session_start() ini ditulis di tengah script maka php akan mendefinisikan sebuah kesalahan. Kemudian script akan memanggil file sambung.php untuk melakukan koneksi dengan 145
Aplikasi Program PHP dan MySQL database. Data yang ada dalam tabel karyawan akan dibaca menggunakan perintah query berdasarkan id instruktur yang sedang login. Data yang dibaca adalah nama instruktur, id instruktur dan password instruktur tersebut, kemudian oleh fungsi if akan dicocokkan dengan data password yang dikirim dari formulir login. Apabila data password yang dibaca tersebut sama, maka script akan mengarahkan instruktur untuk membuka halaman data utama instruktur. Apabila data password tersebut tidak sesuai, maka instruktur akan diarahkan ke halaman login kembali untuk memperbaiki password yang salah ketik.
146
Aplikasi Program PHP dan MySQL alt=""></td></tr> <tr><td colspan="3" valign="top" height="23"> <table border="0" width="100%" cellspacing="0" cellpadding="0" background="../images/img_02.gif" id="table2" height="23"> <tr><td><p style="margin-left: 170px; margin-right: 50px" align="right"> </td></tr></table> </td></tr> <tr><td colspan="3" valign="top" height="18"><img src="../images/img_03.gif" width="800" height="18" alt=""></td></tr> <tr><td valign="top" height="74" width="180" bgcolor="#D5EBFB"><img src="../images/img_04.gif" width="180" height="74" alt=""></td><td valign="top" height="74" width="20" bgcolor="#D5EBFB"><img src="../images/img_05.gif" width="20" height="74" alt=""></td><td valign="top" height="74" width="600" bgcolor="#D5EBFB"><p align="center"><b>Halaman Untuk Instruktur</b></td></tr> <tr><td colspan="3" valign="top" height="19" bgcolor="#D5EBFB"><table border="0" width="100%" cellspacing="0" cellpadding="0" background="../images/img_07.gif" id="table1"> <tr><td width="182" valign="top"><p style="margin-left: 5px; margin-right: 15px; margin-top: 2px; margin-bottom: 2px"> Data Kelas</p><p style="margin-left: 5px; margin-right: 15px; margin-top: 2px; margin-bottom: 2px"> <? include"../sambung.php"; $nomor=1; $kelas=mysql_query("select nama from kelas order by nama"); while($data=mysql_fetch_array($kelas)){ echo"<font size=\"2\">$nomor. $data[nama]<br></font>";
147
Aplikasi Program PHP dan MySQL $nomor++; } ?> </p><p style="margin-left: 5px; margin-right: 15px; margin-top: 2px; margin-bottom: 2px"> </p><p style="margin-left: 5px; margin-right: 15px; margin-top: 2px; margin-bottom: 2px">Pengaturan</p><p style="margin-left: 5px; margin-right: 15px; margin-top: 2px; margin-bottom: 2px"><font size="2"><a href="ganti_password.php">Ganti Password</a></font></p><p style="margin-left: 5px; margin-right: 15px; margin-top: 2px; margin-bottom: 2px"><font size="2"><a href="../keluar.php">Keluar</a></font></p><p style="margin-left: 5px; margin-right: 15px; margin-top: 2px; margin-bottom: 2px"> </td><td valign="top"> <table border="1" width="98%" cellspacing="0" cellpadding="0" id="table4"> <tr><td align="center" bgcolor="#93CDF5">Halaman utama</td></tr> <tr><td width="99%">Data Kelas yang sedang di bimbing oleh <?=$pengajar?><br> <table border="1" width="100%" cellspacing="0" cellpadding="0" id="table5"> <tr><td width="48" align="center"><font size="2">No.</font></td> <td width="123" align="center"><font size="2">Nama Kelas</font></td><td width="204" align="center"><font size="2">Materi</font></td> <td width="108" align="center"><font size="2">Jumlah Session</font></td> <td align="center"><font size="2">Status</font></td></tr> <? include"../sambung.php"; $baca1=mysql_query("select id,nama, kelas,jml_session,status
148
Aplikasi Program PHP dan MySQL from materi where instruktur='$id' limit 0,20"); $no=1; while($data1=mysql_fetch_array($baca1)){ $baca2=mysql_query("select id,nama from data_materi where id='$data1[nama]'"); $data2=mysql_fetch_array($baca2); $baca3=mysql_query("select id,nama from kelas where id='$data1[kelas]'"); $data3=mysql_fetch_array($baca3); if($data1[status]=="1"){ $status="Aktif"; }else{ $status="<font size=\"2\" color=\"#FF0000\">Sudah selesai</font>"; } echo"<tr><td width=\"48\"><p align=\"center\"><font size=\"2\">$no</font></td><td width=\"123\"><p style=\"marginleft: 2px; margin-right: 2px\"><font size=\"2\"><a href=\"kelas.php?kelas=$data1[kelas]&materi=$data1[nama]\"> $data3[nama]</a></font></td><td width=\"204\"><p style=\"marginleft: 2px; margin-right: 2px\"><font size=\"2\"><a href=\"kelas.php?kelas=$data1[kelas]&materi=$data1[nama]\"> $data2[nama]</a></font></td><td width=\"108\"><p align=\"center\"><font size=\"2\">$data1[jml_session] kali.</font></td><td><p align=\"center\"><font size=\"2\">$status</font></td></tr>"; $no++; } ?>
149
Aplikasi Program PHP dan MySQL </table></td></tr> <input type="hidden" name="id_data" value="$d[id_data]"> </table> <p style="margin-top: 1px; margin-bottom: 1px"> </p></td></tr></table></td></tr> <tr><td colspan="3" valign="top"><img src="../images/img_09.gif" width="800" height="56" alt=""></td></tr></table></body></html>
Keterangan:
Bagian utama dari script di atas adalah script yang berfungsi untuk membaca data kelas aktif yang ada pada tabel kelas. Data kelas yang dibaca dan ditampilkan dalam halaman ini adalah data kelas berdasarkan id dari instruktur yang sedang membuka halaman ini. Berikut adalah potongan script tersebut: include"../sambung.php"; $baca1=mysql_query("select id,nama, kelas,jml_session,status from materi where instruktur='$id' limit 0,20"); $no=1; while($data1=mysql_fetch_array($baca1)){ $baca2=mysql_query("select id,nama from data_materi where id='$data1[nama]'"); $data2=mysql_fetch_array($baca2); $baca3=mysql_query("select id,nama from kelas where id='$data1[kelas]'"); $data3=mysql_fetch_array($baca3); if($data1[status]=="1"){ $status="Aktif"; }else{ $status="<font size=\"2\" color=\"#FF0000\">Sudah selesai</font>"; }
150
Aplikasi Program PHP dan MySQL echo"<tr><td width=\"48\"><p align=\"center\"><font size=\"2\">$no</font></td><td width=\"123\"><p style=\"margin-left: 2px; margin-right: 2px\"><font size=\"2\"><a href=\"kelas.php?kelas=$data1[kelas]&materi=$data1[nama]\"> $data3[nama]</a></font></td><td width=\"204\"><p style=\"marginleft: 2px; margin-right: 2px\"><font size=\"2\"><a href=\"kelas.php?kelas=$data1[kelas]&materi=$data1[nama]\"> $data2[nama]</a></font></td><td width=\"108\"><p align=\"center\"><font size=\"2\">$data1[jml_session] kali.</font></td><td><p align=\"center\"><font size=\"2\">$status</font></td></tr>"; $no++;
}
Pada awal dari potongan script tersebut adalah membaca file sambung.php menggunakan fungsi include, kemudian menggunaan perintah query $baca1=mysql_query("select id,nama, kelas,jml_session,status from materi where instruktur='$id' limit 0,20"); while($data1=mysql_fetch_array($baca1)){ untuk membaca data pada tabel materi. Selain membaca tabel materi, script ini berikutnya membaca tabel kelas menggunakan query $baca2=mysql_query("select id,nama from data_materi where id='$data1[nama]'"); $data2=mysql_fetch_array($baca2); berdasarkan id kelas yang disimpan pada variabel $data1[nama] dari tabel materi yang telah dibaca untuk menampilkan nama kelas. Langkah terakhir kemudian data hasil pembacaan dari database ditampilkan pada halaman ini menggunakan perintah echo. Berikut adalah tampilan halaman data utama instruktur:
151
152
Aplikasi Program PHP dan MySQL include"ceksession.php"; include"../sambung.php"; ?> <html><head> <title>Sistem Manajemen Pendidikan online</title> </head> <body bgcolor="#A9C5BE" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0"> <table id="Table_01" width="800" height="296" border="0" cellpadding="0" cellspacing="0"> <tr><td colspan="3" valign="top" height="108"><img src="../images/img_1.gif" width="800" height="108" alt=""></td></tr> <tr><td colspan="3" valign="top" height="23"> <table border="0" width="100%" cellspacing="0" cellpadding="0" background="../images/img_02.gif" id="table2" height="23"><tr> <td><p style="margin-left: 170px; margin-right: 50px" align="right"> </td></tr> </table> </td></tr> <tr><td colspan="3" valign="top" height="18"><img src="../images/img_03.gif" width="800" height="18" alt=""></td> </tr> <tr><td valign="top" height="74" width="180" bgcolor="#D5EBFB"><img src="../images/img_04.gif" width="180" height="74" alt=""></td><td valign="top" height="74" width="20" bgcolor="#D5EBFB"><img src="../images/img_05.gif" width="20" height="74" alt=""></td><td valign="top" height="74" width="600" bgcolor="#D5EBFB"><p align="center"><b>Halaman Untuk Instruktur</b></td></tr>
153
Aplikasi Program PHP dan MySQL <tr><td colspan="3" valign="top" height="19" bgcolor="#D5EBFB"> <table border="0" width="100%" cellspacing="0" cellpadding="0" background="../images/img_07.gif" id="table1"> <tr><td width="182" valign="top"><p style="margin-left: 5px; margin-right: 15px; margin-top: 2px; margin-bottom: 2px"><a href="utama.php">DATA KELAS</a></p> <p style="margin-left: 5px; margin-right: 15px; margin-top: 2px; margin-bottom: 2px"> <font size="2"><a href="absensi.php?kelas=<?=$kelas?>&materi=<?=$materi?>"> Absensi</a></font></p> <p style="margin-left: 5px; margin-right: 15px; margin-top: 2px; margin-bottom: 2px"><font size="2"><a href="nilai.php?kelas=<?=$kelas?>&materi=<?=$materi?>"> Nilai</a></font></p> <p style="margin-left: 5px; margin-right: 15px; margin-top: 2px; margin-bottom: 2px"> </p> <p style="margin-left: 5px; margin-right: 15px; margin-top: 2px; margin-bottom: 2px">Pengaturan</p><p style="margin-left: 5px; margin-right: 15px; margin-top: 2px; margin-bottom: 2px"> <font size="2"><a href="ganti_password.php">Ganti Password</a></font></p><p style="margin-left: 5px; margin-right: 15px; margin-top: 2px; margin-bottom: 2px"> <font size="2"><a href="../keluar.php">Keluar</a></font></p><p style="margin-left: 5px; margin-right: 15px; margin-top: 2px; margin-bottom: 2px"> </td><td valign="top"> <? $baca1=mysql_query("select nama from kelas where id='$kelas'"); $data1=mysql_fetch_array($baca1); ?>
154
Aplikasi Program PHP dan MySQL <table border="1" width="98%" cellspacing="0" cellpadding="0" id="table4"> <tr><td align="center" bgcolor="#93CDF5">Data Siswa <?=$data1[nama]?></td></tr> <tr><td width="99%"><table border="1" width="100%" id="table5" cellspacing="0"> <tr><td bgcolor="#93CDF5" width="49" align="center"><font size="2">No.</font></td><td bgcolor="#93CDF5" align="center"> <font size="2">Nama</font></td><td bgcolor="#93CDF5" align="center" width="106"><font size="2">Jenis Kelamin</font></td><td bgcolor="#93CDF5" width="226" align="center"><font size="2">Alamat</font></td></tr> <? $no=1; $baca2=mysql_query("select id,nama,sex,alamat,kelas from siswa where kelas='$kelas'"); while($data2=mysql_fetch_array($baca2)){ ?> <tr><td width="49"><font size="2"><?=$no?></font></td><td><font size="2"><?=$data2[nama]?></font></td><td width="106"><font size="2"><?=$data2[sex]?></font></td><td width="226"><font size="2"><?=$data2[alamat]?></font></td></tr> <? $no++; }?> </table> <form method="POST" action="absensi.nilai.php"><p align="right" style="margin-right: 10px"> <input type="submit" value="Ke halaman sebelumnya"
155
Aplikasi Program PHP dan MySQL name="utama" style="color: #000080; font-family: Arial; font-size: 10pt"> <input type="submit" value="Periksa Absensi" name="absensi" style="color: #000080; font-family: Arial; font-size: 10pt"> <input type="submit" value=" Periksa Nilai " name="nilai" style="color: #000080; fontfamily: Arial; font-size: 10pt"></p> <input type="hidden" name="kelas" value="<?=$kelas?>"> <input type="hidden" name="materi" value="<?=$materi?>"> <input type="hidden" name="nama_kelas" value="<?=$data1[nama]?>"> </form> </td></tr></table><p style="margin-top: 1px; margin-bottom: 1px"> </p></td></tr></table></td></tr> <tr><td colspan="3" valign="top"><img src="../images/img_09.gif" width="800" height="56" alt=""></td></tr></table></body></html>
Keterangan:
Paling awal dari script ini adalah memanggil file ceksession.php yang berfungsi memeriksa data sesi. Kemudian dipanggil juga file sambung.php untuk melakukan koneksi dengan database. Bagian yang penting lagi adalah pada script yang mengunkan query untuk membaca data siswa pada tabel kelas aktif dan menampilakan data tersebut pada sela-sela tag-tag HTML. Potongan script tersebut adalah sebagai berikut: <? $no=1; $baca2=mysql_query("select id,nama,sex,alamat,kelas from siswa where kelas='$kelas'"); while($data2=mysql_fetch_array($baca2)){ ?> <tr><td width="49"><font size="2"><?=$no?></font></td><td><font size="2"><?=$data2[nama]?></font></td><td width="106"><font size="2"><?=$data2[sex]?></font></td><td width="226"><font size="2"><?=$data2[alamat]?></font></td></tr>
156
Aplikasi Program PHP dan MySQL <? $no++; }?> Dibagian paling bawah dari script ini adalah menampilkan tiga buah tombol navigasi, yang pertama adalah tombol untuk kembali ke halaman sebelumnya, kemudian tombol yang kedua digunakan untuk melihat data nilai siswa dan yang ketiga tombol untuk melihat data absensi siswa. Script tersebut adalah sebagai berikut: <form method="POST" action="absensi.nilai.php"><p align="right" style="margin-right: 10px"> <input type="submit" value="Ke halaman sebelumnya" name="utama" style="color: #000080; font-family: Arial; font-size: 10pt"> <input type="submit" value="Periksa Absensi" name="absensi" style="color: #000080; font-family: Arial; font-size: 10pt"> <input type="submit" value=" Periksa Nilai " name="nilai" style="color: #000080; font-family: Arial; font-size: 10pt"></p> <input type="hidden" name="kelas" value="<?=$kelas?>"> <input type="hidden" name="materi" value="<?=$materi?>"> <input type="hidden" name="nama_kelas" value="<?=$data1[nama]?>"> </form> Berikut tampilan halaman data siswa kelas aktif apabila anda pilih salah satu nama kelas aktif dari halaman utama instruktur:
157
Pada bagian bawah dari halaman data siswa kelas aktif ini ada tiga tombol yang memiliki fungsi berbeda-beda. Sebenarnya tombol tersebut merupakan sebuah formulir yang memuat tiga obyek formulir submit dan tiga obyek hidden yang digunakan untuk menyimpan data kelas, materi dan data nama instruktur. Formulir ini memiliki nilai action / tujuan formulir apabila salah satu tombol tersebut di tekan ke file absensi.nilai.php. file ini akan memilah-milah atau membedakan tombol yang telah dipilih, kemudian mengarahkan ke halaman yang sesuai dengan tombol pilihan. Berikut adalah script yang ada dalam file absensi.nilai.php tersebut:
158
Aplikasi Program PHP dan MySQL <? include"ceksession.php"; if(isset($nilai)){ header("Location:./nilai.php?kelas=$kelas&materi=$materi& nama=$nama_kelas"); }elseif(isset($absensi)){ header("Location:./absensi.php?kelas=$kelas&materi=$materi& nama=$nama_kelas"); }elseif(isset($utama)){ header("Location:./utama.php"); }else{ header("Location:../keuar.php"); } ?>
159
Aplikasi Program PHP dan MySQL <html><head> <title>Sistem Manajemen Pendidikan online</title> </head><center><br> <body bgcolor="#A9C5BE" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0"> <table id="Table_01" width="800" height="296" border="0" cellpadding="0" cellspacing="0"> <tr><td colspan="3" valign="top" height="108"><img src="../images/img_1.gif" width="800" height="108" alt=""></td> </tr><tr><td colspan="3" valign="top" height="23"> <table border="0" width="100%" cellspacing="0" cellpadding="0" background="../images/img_02.gif" id="table2" height="23"> <tr><td><p style="margin-left: 170px; margin-right: 50px" align="right"> </td></tr></table> </td></tr> <tr><td colspan="3" valign="top" height="18"><img src="../images/img_03.gif" width="800" height="18" alt=""></td> </tr><tr><td valign="top" height="74" width="180" bgcolor="#D5EBFB"> <img src="../images/img_04.gif" width="180" height="74" alt=""></td><td valign="top" height="74" width="20" bgcolor="#D5EBFB"><img src="../images/img_05.gif" width="20" height="74" alt=""></td><td valign="top" height="74" width="600" bgcolor="#D5EBFB"><p align="center"><b>Halaman Untuk Instruktur</b></td></tr> <tr><td colspan="3" valign="top" height="19" bgcolor="#D5EBFB"> <table border="0" width="100%" cellspacing="0" cellpadding="0" background="../images/img_07.gif" id="table1"> <tr><td width="182" valign="top"><p style="margin-left: 5px; margin-right: 15px; margin-top: 2px; margin-bottom: 2px">Data Kelas</p><p style="margin-left: 5px; margin-right: 15px; 160
Aplikasi Program PHP dan MySQL margin-top: 2px; margin-bottom: 2px"> <font size="2"><a href="utama.php">Daftar Kelas</a><br> <a href="nilai.php?kelas=<?=$kelas?>&materi=<?=$materi?>& nama=<?=$nama?>">Nilai</a></font></p> <p style="margin-left: 5px; margin-right: 15px; margin-top: 2px; margin-bottom: 2px"> </p> <p style="margin-left: 5px; margin-right: 15px; margin-top: 2px; margin-bottom: 2px"> Pengaturan</p> <p style="margin-left: 5px; margin-right: 15px; margin-top: 2px; margin-bottom: 2px"> <font size="2"><a href="ganti_password.php">Ganti Password</a> </font></p> <p style="margin-left: 5px; margin-right: 15px; margin-top: 2px; margin-bottom: 2px"> <font size="2"><a href="../keluar.php">Keluar</a></font></p> <p style="margin-left: 5px; margin-right: 15px; margin-top: 2px; margin-bottom: 2px"> </td> <td valign="top"> <table border="1" width="98%" cellspacing="0" cellpadding="0" id="table4"> <tr><td align="center" bgcolor="#93CDF5">Data Absensi Siswa <?=$nama?></td></tr> <tr><td width="99%"> <table border="0" width="100%" cellspacing="0" cellpadding="0" id="table6"> <tr><td width="341" valign="top"><p align="center"> <font size="2">Keterangan kehadiran siswa</font></td> <td valign="top" align="center" bgcolor="#008000"><p align="center"> 161
Aplikasi Program PHP dan MySQL <font size="2" color="#00FFFF"><b>hadir</b></font></td> <td valign="top" align="center" bgcolor="#FF0000" width="131"> <font size="2" color="#00FFFF"><b>tidak hadir</b></font></td></tr></table> <table border="1" width="602" id="table5" cellspacing="0"> <tr><td bgcolor="#93CDF5" width="34" align="center" rowspan="2"><font size="2">No.</font></td> <td bgcolor="#93CDF5" align="center" width="127" rowspan="2"> <font size="2">Nama</font></td> <td bgcolor="#93CDF5" align="center" width="382" colspan="18"> <font size="2">Session</font></td></tr> <tr><td bgcolor="#93CDF5" align="center" width="21"><font size="2"> <a href="input_absensi.php?kelas=<?=$kelas?>& materi=<?=$materi?>&kls=<?=$nama?>&ses=1">1</a></font></td> <td bgcolor="#93CDF5" align="center" width="21"><font size="2"> <a href="input_absensi.php?kelas=<?=$kelas?>& materi=<?=$materi?>&kls=<?=$nama?>&ses=2">2</a></font></td> <td bgcolor="#93CDF5" align="center" width="21"><font size="2"> <a href="input_absensi.php?kelas=<?=$kelas?>& materi=<?=$materi?>&kls=<?=$nama?>&ses=3">3</a></font></td> <td bgcolor="#93CDF5" align="center" width="21"><font size="2"> <a href="input_absensi.php?kelas=<?=$kelas?>& materi=<?=$materi?>&kls=<?=$nama?>&ses=4">4</a></font></td> <td bgcolor="#93CDF5" align="center" width="21"><font size="2"> <a href="input_absensi.php?kelas=<?=$kelas?>& materi=<?=$materi?>&kls=<?=$nama?>&ses=5">5</a></font></td> <td bgcolor="#93CDF5" align="center" width="21"><font size="2"> <a href="input_absensi.php?kelas=<?=$kelas?>& materi=<?=$materi?>&kls=<?=$nama?>&ses=6">6</a></font></td> 162
Aplikasi Program PHP dan MySQL <td bgcolor="#93CDF5" align="center" width="21"><font size="2"> <a href="input_absensi.php?kelas=<?=$kelas?>& materi=<?=$materi?>&kls=<?=$nama?>&ses=7">7</a></font></td> <td bgcolor="#93CDF5" align="center" width="21"><font size="2"> <a href="input_absensi.php?kelas=<?=$kelas?>& materi=<?=$materi?>&kls=<?=$nama?>&ses=8">8</a></font></td> <td bgcolor="#93CDF5" align="center" width="21"><font size="2"> <a href="input_absensi.php?kelas=<?=$kelas?>& materi=<?=$materi?>&kls=<?=$nama?>&ses=9">9</a></font></td> <td bgcolor="#93CDF5" align="center" width="21"><font size="2"> <a href="input_absensi.php?kelas=<?=$kelas?>& materi=<?=$materi?>&kls=<?=$nama?>&ses=10">10</a></font> </td><td bgcolor="#93CDF5" align="center" width="21"><font size="2"><a href="input_absensi.php?kelas=<?=$kelas?>& materi=<?=$materi?>&kls=<?=$nama?>&ses=11">11</a></font> </td><td bgcolor="#93CDF5" align="center" width="21"><font size="2"><a href="input_absensi.php?kelas=<?=$kelas?>& materi=<?=$materi?>&kls=<?=$nama?>&ses=12">12</a></font> </td><td bgcolor="#93CDF5" align="center" width="21"><font size="2"><a href="input_absensi.php?kelas=<?=$kelas?>& materi=<?=$materi?>&kls=<?=$nama?>&ses=13">13</a></font> </td><td bgcolor="#93CDF5" align="center" width="21"><font size="2"><a href="input_absensi.php?kelas=<?=$kelas?>& materi=<?=$materi?>&kls=<?=$nama?>&ses=14">14</a></font> </td><td bgcolor="#93CDF5" align="center" width="22"><font size="2"><a href="input_absensi.php?kelas=<?=$kelas?>& materi=<?=$materi?>&kls=<?=$nama?>&ses=15">15</a></font> </td><td bgcolor="#93CDF5" align="center" width="22"><font size="2"><a href="input_absensi.php?kelas=<?=$kelas?>& materi=<?=$materi?>&kls=<?=$nama?>&ses=16">16</a></font> </td><td bgcolor="#93CDF5" align="center" width="22"><font
163
Aplikasi Program PHP dan MySQL size="2"><a href="input_absensi.php?kelas=<?=$kelas?>& materi=<?=$materi?>&kls=<?=$nama?>&ses=17">17</a></font> </td><td bgcolor="#93CDF5" align="center" width="22"><font size="2"><a href="input_absensi.php?kelas=<?=$kelas?>& materi=<?=$materi?>&kls=<?=$nama?>&ses=18">18</a></font> </td></tr> <? include"../sambung.php"; $nomor=1; $baca=@mysql_query("select * from kelas_$kelas where id_instruktur='$id' and id_materi='$materi' and kelas='$kelas'"); while($data=@mysql_fetch_array($baca)){ $siswa=@mysql_query("select nama from siswa where id='$data[id_siswa]'"); $siswa2=@mysql_fetch_array($siswa); echo"<tr><td width=\"34\"><font size=\"2\"><center>$nomor </center></font></td> <td width=\"127\"><font size=\"2\">$siswa2[nama]</font></td> <td width=\"21\" bgcolor=\"$data[absen_1]\"> </td> <td width=\"21\" bgcolor=\"$data[absen_2]\"> </td> <td width=\"21\" bgcolor=\"$data[absen_3]\"> </td> <td width=\"21\" bgcolor=\"$data[absen_4]\"> </td> <td width=\"21\" bgcolor=\"$data[absen_5]\"> </td> <td width=\"21\" bgcolor=\"$data[absen_6]\"> </td> <td width=\"21\" bgcolor=\"$data[absen_7]\"> </td> <td width=\"21\" bgcolor=\"$data[absen_8]\"> </td> <td width=\"21\" bgcolor=\"$data[absen_9]\"> </td> <td width=\"21\" bgcolor=\"$data[absen_10]\"> </td> 164
Aplikasi Program PHP dan MySQL <td width=\"21\" bgcolor=\"$data[absen_11]\"> </td> <td width=\"21\" bgcolor=\"$data[absen_12]\"> </td> <td width=\"21\" bgcolor=\"$data[absen_13]\"> </td> <td width=\"21\" bgcolor=\"$data[absen_14]\"> </td> <td width=\"22\" bgcolor=\"$data[absen_15]\"> </td> <td width=\"22\" bgcolor=\"$data[absen_16]\"> </td> <td width=\"22\" bgcolor=\"$data[absen_17]\"> </td> <td width=\"22\" bgcolor=\"$data[absen_18]\"> </td></tr>"; $nomor++; } ?> </table> </td></tr> <input type="hidden" name="id_data" value="$d[id_data]"> </table><p style="margin-top: 1px; margin-bottom: 1px"> </p> </td></tr></table> </td></tr> <tr><td colspan="3" valign="top"><img src="../images/img_09.gif" width="800" height="56" alt=""></td></tr></table></body></html>
Keterangan:
Dalam rangkaian script di atas memiliki dua bagian utama yang harus diperhatikan. Yang pertama adalah bagian menu link untuk masing-masing data tatap muka materi yang sedang aktif. Link tersebut digunakan untuk memasukkan data keaktivan dari masingmasing siswa. Menu link tersebut dibuat dengan tag HTML dengan membawa beberapa variabel yang memiliki nilai dari hasil pembacaan database. Salah satu bagian tag untuk membuat menu link tersebut adalah: 165
Aplikasi Program PHP dan MySQL <a href="input_absensi.php?kelas=<?=$kelas?>& materi=<?=$materi?>&kls=<?=$nama?>&ses=1">1</a> Pada link tersebut memiliki alamat file tujuan input_absensi.php kemudian memiliki variabel kelas dengan nilai $kelas, hasil dari pembacaan database, variabel mater dan vasiabel ses=1, artinya link tersebut digunakan untuk membuka halaman input data absensi pada pertemuan ke satu. Bagian ke dua adalah data keaktivan siswa. Pada halaman ini data keaktivan siswa digambarkan dengan warna dari sel pertemuan kolom pertemuan dan nama siswa. Tanda gambar ini dibuat emggunakan tag HTML dengan memberikan nilai warna dasar hasil dari pembacaan database. Berikut adalah salah satu script yang digunakan untuk menampilkan data keaktivan siswa tersebut: <? include"../sambung.php"; $nomor=1; $baca=@mysql_query("select * from kelas_$kelas where id_instruktur='$id' and id_materi='$materi' and kelas='$kelas'"); while($data=@mysql_fetch_array($baca)){ $siswa=@mysql_query("select nama from siswa where id='$data[id_siswa]'"); $siswa2=@mysql_fetch_array($siswa); echo"<tr><td width=\"34\"><font size=\"2\"><center>$nomor </center></font></td> <td width=\"127\"><font size=\"2\">$siswa2[nama]</font></td> <td width=\"21\" bgcolor=\"$data[absen_1]\"> </td> Berikut adalah tampilan halaman absensi siswa yang dapat diakses oleh instruktur:
166
167
Aplikasi Program PHP dan MySQL ke tujuh, maka instruktur harus pilih / klik nomor 7 yang ada pada kolom tujuh. Halaman input data absensi ini berupa formulir yang memiliki obyek pilihan radio dengan nilai masuk dan tidak masuk. Pilihan radion ini dimiliki pada masing-masing nama siswa. Berikut adalah script yang ada pada halaman input data absensi:
<? include"ceksession.php"; ?> <html><head> <title>Sistem Manajemen Pendidikan online</title> <meta http-equiv="Content-Type" content="text/html; charset=iso8859-1"> </head><center><br> <body bgcolor="#A9C5BE" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0"> <table id="Table_01" width="800" height="296" border="0" cellpadding="0" cellspacing="0"> <tr><td colspan="3" valign="top" height="108"><img src="../images/img_1.gif" width="800" height="108" alt=""></td></tr> <tr><td colspan="3" valign="top" height="23"> <table border="0" width="100%" cellspacing="0" cellpadding="0" background="../images/img_02.gif" id="table2" height="23"> <tr><td><p style="margin-left: 170px; margin-right: 50px" align="right"> </td></tr> </table> </td></tr>
168
Aplikasi Program PHP dan MySQL <tr><td colspan="3" valign="top" height="18"><img src="../images/img_03.gif" width="800" height="18" alt=""></td></tr> <tr><td valign="top" height="74" width="180" bgcolor="#D5EBFB"><img src="../images/img_04.gif" width="180" height="74" alt=""></td> <td valign="top" height="74" width="20" bgcolor="#D5EBFB"> <img src="../images/img_05.gif" width="20" height="74" alt=""></td> <td valign="top" height="74" width="600" bgcolor="#D5EBFB"> <p align="center"><b>Halaman Untuk Instruktur</b></td></tr> <tr><td colspan="3" valign="top" height="19" bgcolor="#D5EBFB"> <table border="0" width="100%" cellspacing="0" cellpadding="0" background="../images/img_07.gif" id="table1"> <tr><td width="182" valign="top"><p style="margin-left: 5px; margin-right: 15px; margin-top: 2px; margin-bottom: 2px">Data Kelas</p> <p style="margin-left: 5px; margin-right: 15px; margin-top: 2px; margin-bottom: 2px"><font size="2"> <a href="absensi.php?kelas=<?=$kelas?>&materi=<?=$materi?>& nama=<?=$kls?>">Absensi</a></font></p> <p style="margin-left: 5px; margin-right: 15px; margin-top: 2px; margin-bottom: 2px"> <font size="2"><a href="nilai.php?kelas=<?=$kelas?>&materi=<?=$materi?>& nama=<?=$kls?>">Nilai</a></font></p> <p style="margin-left: 5px; margin-right: 15px; margin-top: 2px; margin-bottom: 2px"> </p> <p style="margin-left: 5px; margin-right: 15px; margin-top: 2px; margin-bottom: 2px">
169
Aplikasi Program PHP dan MySQL Pengaturan</p> <p style="margin-left: 5px; margin-right: 15px; margin-top: 2px; margin-bottom: 2px"> <font size="2"><a href="ganti_password.php">Ganti Password</a></font></p> <p style="margin-left: 5px; margin-right: 15px; margin-top: 2px; margin-bottom: 2px"> <font size="2"><a href="../keluar.php">Keluar</a></font></p> <p style="margin-left: 5px; margin-right: 15px; margin-top: 2px; margin-bottom: 2px"> </td> <td valign="top"> <table border="1" width="98%" cellspacing="0" cellpadding="0" id="table4"> <form method="POST" action="proses_input_absensi.php"> <tr><td align="center" bgcolor="#93CDF5">Input Data Absensi Siswa <?=$kls?></td> </tr> <tr><td width="99%"> <table border="1" width="602" id="table5" cellspacing="0"> <tr><td bgcolor="#93CDF5" width="54" align="center"><font size="2">No.</font></td> <td bgcolor="#93CDF5" align="center" width="132"><font size="2">Nama</font></td> <td bgcolor="#93CDF5" align="center" width="382">Masukkan data absensi siswa session ke <?=$ses?>.</td></tr> <? include"../sambung.php"; $nomor=1; $baca=mysql_query("select * from kelas_$kelas where 170
Aplikasi Program PHP dan MySQL id_instruktur='$id' and id_materi='$materi' and kelas='$kelas'"); while($data=mysql_fetch_array($baca)){ $siswa=mysql_query("select nama from siswa where id='$data[id_siswa]'"); $siswa2=mysql_fetch_array($siswa); echo"<tr><td width=\"54\"> <p align=\"center\"><font size=\"2\">$nomor</font></td> <td width=\"132\"><font size=\"2\">$siswa2[nama]</font></td> <td width=\"382\"><input type=\"radio\" value=\"#008000\" checked name=\"n[$nomor]\"><font size=\"2\"> Masuk </font><input type=\"radio\" name=\"n[$nomor]\" value=\"#FF0000\"><font size=\"2\">Tidak masuk</font></td></tr>"; $nomor++; } ?> <input type="hidden" name="jml_siswa" value="<?=$nomor-2?>"> <input type="hidden" name="kelas" value="<?=$kelas?>"> <input type="hidden" name="materi" value="<?=$materi?>"> <input type="hidden" name="nama" value="<?=$kls?>"> <input type="hidden" name="ses" value="<?=$ses?>"> </table> <p align="right"><input type="submit" value=" K I R I M " name="kirim" style="color: #000080; font-weight: bold"></td></tr></form> </table><p style="margin-top: 1px; margin-bottom: 1px"> </p></td></tr></table> </td></tr> 171
Aplikasi Program PHP dan MySQL <tr><td colspan="3" valign="top"> <img src="../images/img_09.gif" width="800" height="56" alt=""></td></tr> </table> </body></html>
Keterangan:
Secara umum script ini disusun menggunakan tag-tag html, namun pada bagian-bagian tertentu yang difungsikan untuk membaca database script ini menggunakan kode-kode PHP. Bagian yang perlu anda perhatikan adalah bagian script yang berfungsi mengakses database dan menampilkan tag HTML pilihan radio secara berulangulang berdasarkan jumlah siswa yang ada dalam kelas tertentu. Script tersebut adalah: <? include"../sambung.php"; $nomor=1; $baca=mysql_query("select * from kelas_$kelas where id_instruktur='$id' and id_materi='$materi' and kelas='$kelas'"); while($data=mysql_fetch_array($baca)){ $siswa=mysql_query("select nama from siswa where id='$data[id_siswa]'"); $siswa2=mysql_fetch_array($siswa); echo"<tr><td width=\"54\"> <p align=\"center\"><font size=\"2\">$nomor</font></td> <td width=\"132\"><font size=\"2\">$siswa2[nama]</font></td> <td width=\"382\"><input type=\"radio\" value=\"#008000\" checked name=\"n[$nomor]\"><font size=\"2\"> Masuk </font><input type=\"radio\" name=\"n[$nomor]\" value=\"#FF0000\"><font size=\"2\">Tidak masuk</font></td></tr>"; 172
Aplikasi Program PHP dan MySQL $nomor++; } ?> Apabila halaman tersebut diakses menggunakan browser akan ditampilkan seperti berikut:
Aplikasi Program PHP dan MySQL PHP dan perintah query untuk memasukkan data ke dalam database. Berikut adalah script untuk mengolah data absensi tersebut: <? include"ceksession.php"; include"../sambung.php"; if(isset($kirim)){ $nomor=1; $baca=mysql_query("select * from kelas_$kelas where id_instruktur='$id' and id_materi='$materi' and kelas='$kelas'"); while($data=mysql_fetch_array($baca)){ $add_absen=mysql_query("update kelas_$kelas set absen_$ses='$n[$nomor]' where id_siswa='$data[id_siswa]' and id_materi='$data[id_materi]'"); $nomor++; } header("location:./absensi.php?kelas=$kelas&materi=$materi& nama=$kelas"); } ?>
Keterangan:
Awal dari script ini adalah memanggil file ceksession.php yang berfungsi untuk keamanan hak akses, kemudian memanggil file sambung.php untuk melakukan koneksi dengan database MySQL. Script untuk memasukkan data absensi ini menggunakan perintahperintah query seperti pada potongan script di bawah ini: $add_absen=mysql_query("update kelas_$kelas set absen_$ses='$n[$nomor]' where id_siswa='$data[id_siswa]' and id_materi='$data[id_materi]'");
174
Aplikasi Program PHP dan MySQL Query di atas berfungsi untuk mengudate data yang ada pada tabel kelas_aktif dengan nilai data yang dimasukkan pada field absent_session berdasarkan id_siswa dan materi tertentu.
175
Aplikasi Program PHP dan MySQL <tr><td colspan="3" valign="top" height="18"><img src="../images/img_03.gif" width="800" height="18" alt=""></td></tr> <tr><td valign="top" height="74" width="180" bgcolor="#D5EBFB"><img src="../images/img_04.gif" width="180" height="74" alt=""></td> <td valign="top" height="74" width="20" bgcolor="#D5EBFB"><img src="../images/img_05.gif" width="20" height="74" alt=""></td> <td valign="top" height="74" width="600" bgcolor="#D5EBFB"><p align="center"><b>Halaman Untuk Instruktur</b></td></tr> <tr><td colspan="3" valign="top" height="19" bgcolor="#D5EBFB"> <table border="0" width="100%" cellspacing="0" cellpadding="0" background="../images/img_07.gif" id="table1"> <tr><td width="182" valign="top"><p style="margin-left: 5px; margin-right: 15px; margin-top: 2px; margin-bottom: 2px"> Data Kelas</p><p style="margin-left: 5px; margin-right: 15px; margin-top: 2px; margin-bottom: 2px"> <font size="2"><a href="utama.php">Daftar Kelas</a><br> <a href="absensi.php?kelas=<?=$kelas?>&materi=<?=$materi?>& nama=<?=$nama?>">Absensi</a></font></p> <p style="margin-left: 5px; margin-right: 15px; margin-top: 2px; margin-bottom: 2px"> </p> <p style="margin-left: 5px; margin-right: 15px; margin-top: 2px; margin-bottom: 2px"> </p> <p style="margin-left: 5px; margin-right: 15px; margin-top: 2px; margin-bottom: 2px"> Pengaturan</p> <p style="margin-left: 5px; margin-right: 15px; margin-top: 2px; 176
Aplikasi Program PHP dan MySQL margin-bottom: 2px"> <font size="2"><a href="ganti_password.php">Ganti Password</a></font></p> <p style="margin-left: 5px; margin-right: 15px; margin-top: 2px; margin-bottom: 2px"> <font size="2"><a href="../keluar.php">Keluar</a></font></p> <p style="margin-left: 5px; margin-right: 15px; margin-top: 2px; margin-bottom: 2px"> </td> <td valign="top"> <table border="1" width="98%" cellspacing="0" cellpadding="0" id="table4"> <tr><td align="center" bgcolor="#93CDF5">Data Nilai Siswa <?=$nama?></td></tr> <tr><td width="99%"><table border="1" width="602" id="table5" cellspacing="0"> <? include"../sambung.php"; $mtr=@mysql_query("select nama from data_materi where id='$materi'"); $mtr2=@mysql_fetch_array($mtr); ?> <tr><td bgcolor="#93CDF5" width="37" align="center" rowspan="2"><font size="2">No.</font></td> <td bgcolor="#93CDF5" align="center" width="173" rowspan="2"><font size="2">Nama</font></td> <td bgcolor="#93CDF5" align="center" width="383" colspan="6"><font size="2">Nilai materi <?=$mtr2[nama]?></font></td></tr> <tr><td bgcolor="#93CDF5" width="63"><p align="center"><font size="2">
177
Aplikasi Program PHP dan MySQL <a href="input_nilai.php?kelas=<?=$kelas?>&materi=<?=$materi?> &nama=<?=$nama?>&n=harian"> Harian</a></font></td> <td bgcolor="#93CDF5" width="63"><p align="center"><font size="2"> <a href="input_nilai.php?kelas=<?=$kelas?>&materi=<?=$materi?> &nama=<?=$nama?>&n=tugas"> Tugas</a></font></td><td bgcolor="#93CDF5" width="64"><p align="center"><font size="2"> <a href="input_nilai.php?kelas=<?=$kelas?>&materi=<?=$materi?> &nama=<?=$nama?>&n=tengah"> Tengah sms</a></font></td> <td bgcolor="#93CDF5" width="64"><p align="center"><font size="2"> <a href="input_nilai.php?kelas=<?=$kelas?>&materi=<?=$materi?> &nama=<?=$nama?>&n=akhir"> Akhir sms</a></font></td> <td bgcolor="#93CDF5" width="64"><p align="center"><font size="2">Total</font></td> <td bgcolor="#93CDF5" width="64"><p align="center"><font size="2">Nilai Huruf</font></td></tr> <? $nomor=1; $baca=@mysql_query("select * from kelas_$kelas where id_instruktur='$id' and id_materi='$materi' and kelas='$kelas'"); while($data=@mysql_fetch_array($baca)){
178
Aplikasi Program PHP dan MySQL $siswa=@mysql_query("select nama from siswa where id='$data[id_siswa]'"); $siswa2=@mysql_fetch_array($siswa); $total[$nomor]=number_format(((($data[nilai_harian]+ $data[nilai_tugas]+$data[nilai_tengah])/3)+($data[nilai_akhir]))/2,2); if($total[$nomor]<=50){ $n[$nomor]="E"; $bg_color="#FFCC99"; }elseif($total[$nomor]<=75){ $n[$nomor]="D"; }elseif($total[$nomor]<=82){ $n[$nomor]="C"; }elseif($total[$nomor]<=92){ $n[$nomor]="B"; }else{ $n[$nomor]="A"; } echo"<tr><td bgcolor=\"$bg_color\" width=\"37\"><font size=\"2\"><center>$nomor</center></font></td> <td bgcolor=\"$bg_color\" width=\"173\"><font size=\"2\">$siswa2[nama]</font></td> <td bgcolor=\"$bg_color\" width=\"63\" align=\"center\"><font size=\"2\">$data[nilai_harian]</font></td> <td bgcolor=\"$bg_color\" width=\"63\" align=\"center\"><font size=\"2\">$data[nilai_tugas]</font></td> <td bgcolor=\"$bg_color\" width=\"64\" align=\"center\"><font size=\"2\">$data[nilai_tengah]</font></td> <td bgcolor=\"$bg_color\" width=\"64\" align=\"center\"><font
179
Aplikasi Program PHP dan MySQL size=\"2\">$data[nilai_akhir]</font></td> <td bgcolor=\"$bg_color\" width=\"64\" align=\"center\"><font size=\"2\">$total[$nomor]</font></td> <td bgcolor=\"$bg_color\" width=\"64\" align=\"center\"><b><font size=\"2\" color=\"#FF0000\">$n[$nomor]</font></b></td></tr>"; $nomor++; }?> </table></td></tr></table> <p style="margin-top: 1px; margin-bottom: 1px"> </p> </td></tr></table></td></tr> <tr><td colspan="3" valign="top"><img src="../images/img_09.gif" width="800" height="56" alt=""></td></tr></table> </body></html>
Keterangan:
Halaman data nilai siswa ini digunakan untuk menampilkan data nilai dari masing-masing siswa, yaitu nilai harian, nilai tugas, nilai tengah semester, nilai akhir semester dan nilai dengan format abjad. Pada script data nilai siswa ini ada beberapa yang harus diperhatikan, yang pertama adalah menu link untuk membuka halaman input data nilai siswa, ditunjukkan pada potongan script berikut: <a href="input_nilai.php?kelas=<?=$kelas?>&materi=<?=$materi?> &nama=<?=$nama?>&n=harian">Harian</a></font></td><td bgcolor="#93CDF5" width="63"><p align="center"><font size="2"><a href="input_nilai.php?kelas=<?=$kelas?>&materi=<?=$materi?> &nama=<?=$nama?>&n=tugas">Tugas</a></font></td><td bgcolor="#93CDF5" width="64"><p align="center"><font size="2"><a href="input_nilai.php?kelas=<?=$kelas?>&materi=<?=$materi?> &nama=<?=$nama?>&n=tengah">Tengah sms</a></font></td><td bgcolor="#93CDF5" width="64"><p align="center"><font size="2"><a 180
Aplikasi Program PHP dan MySQL href="input_nilai.php?kelas=<?=$kelas?>&materi=<?=$materi?> &nama=<?=$nama?>&n=akhir"> Akhir sms</a> Kemudian script untuk membaca data nilai siswa, yaitu membaca database pada tabel kelas_aktif seperti pada potongan script berikut: <? $nomor=1; $baca=@mysql_query("select * from kelas_$kelas where id_instruktur='$id' and id_materi='$materi' and kelas='$kelas'"); while($data=@mysql_fetch_array($baca)){ $siswa=@mysql_query("select nama from siswa where id='$data[id_siswa]'"); $siswa2=@mysql_fetch_array($siswa); Berikutnya script yang digunakan untuk mengkonversi data angka menjadi data abjad. Bagian ini digunakan untuk menampilkan data nilai abjad berdasarkan data nilai total pada masing-masing siswa. Berikut adalah potongan script tersebut: $total[$nomor]=number_format(((($data[nilai_harian]+ $data[nilai_tugas]+$data[nilai_tengah])/3)+($data[nilai_akhir]))/2,2); if($total[$nomor]<=50){ $n[$nomor]="E"; $bg_color="#FFCC99"; }elseif($total[$nomor]<=75){ $n[$nomor]="D"; }elseif($total[$nomor]<=82){ $n[$nomor]="C"; }elseif($total[$nomor]<=92){ $n[$nomor]="B"; }else{
181
Aplikasi Program PHP dan MySQL $n[$nomor]="A"; } Script di atas menggunakan fungsi if dengan membaca jumlah total dari nilai siswa kemudian dijadikan filter untuk menentukan nilai abjad. Berikut adalah tampilan halaman data nilai siswa tersebut:
182
Aplikasi Program PHP dan MySQL mengisi data nilai harian siswa, maka menu link yang harus dipilih oleh instruktur adalah menu link harian. Berikut adalah script yang digunakan untuk menampilkan formulir input data nilai siswa: <? include"ceksession.php"; ?> <html> <head> <title>Sistem Manajemen Pendidikan online</title> </head> <center><br> <body bgcolor="#A9C5BE" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0"> <table id="Table_01" width="800" height="296" border="0" cellpadding="0" cellspacing="0"> <tr><td colspan="3" valign="top" height="108"><img src="../images/img_1.gif" width="800" height="108" alt=""></td></tr> <tr><td colspan="3" valign="top" height="23"> <table border="0" width="100%" cellspacing="0" cellpadding="0" background="../images/img_02.gif" id="table2" height="23"> <tr><td><p style="margin-left: 170px; margin-right: 50px" align="right"> </td></tr></table> </td></tr> <tr><td colspan="3" valign="top" height="18"><img src="../images/img_03.gif" width="800" height="18" alt=""></td></tr> <tr><td valign="top" height="74" width="180" bgcolor="#D5EBFB"><img src="../images/img_04.gif" width="180"
183
Aplikasi Program PHP dan MySQL height="74" alt=""></td><td valign="top" height="74" width="20" bgcolor="#D5EBFB"> <img src="../images/img_05.gif" width="20" height="74" alt=""></td> <td valign="top" height="74" width="600" bgcolor="#D5EBFB"><p align="center"><b>Halaman Untuk Instruktur</b></td></tr> <tr><td colspan="3" valign="top" height="19" bgcolor="#D5EBFB"> <table border="0" width="100%" cellspacing="0" cellpadding="0" background="../images/img_07.gif" id="table1"> <tr><td width="182" valign="top"><p style="margin-left: 5px; margin-right: 15px; margin-top: 2px; margin-bottom: 2px">Data Kelas</p> <p style="margin-left: 5px; margin-right: 15px; margin-top: 2px; margin-bottom: 2px"> <font size="2"><a href="absensi.php?kelas=<?=$kelas?>& materi=<?=$materi?>&nama=<?=$nama?>">Absensi</a></font> </p> <p style="margin-left: 5px; margin-right: 15px; margin-top: 2px; margin-bottom: 2px"> <font size="2"><a href="nilai.php?kelas=<?=$kelas?>&materi=<?=$materi?>& nama=<?=$nama?>">Nilai</a></font></p> <p style="margin-left: 5px; margin-right: 15px; margin-top: 2px; margin-bottom: 2px"> </p> <p style="margin-left: 5px; margin-right: 15px; margin-top: 2px; margin-bottom: 2px">Pengaturan</p> <p style="margin-left: 5px; margin-right: 15px; margin-top: 2px; margin-bottom: 2px"> <font size="2"><a href="ganti_password.php">Ganti Password</a></font></p> <p style="margin-left: 5px; margin-right: 15px; margin-top: 2px; 184
Aplikasi Program PHP dan MySQL margin-bottom: 2px"> <font size="2"><a href="../keluar.php">Keluar</a></font></p><p style="margin-left: 5px; margin-right: 15px; margin-top: 2px; margin-bottom: 2px"> </td> <td valign="top"> <table border="1" width="98%" cellspacing="0" cellpadding="0" id="table4"> <form method="POST" action="proses_input_nilai.php"> <tr><td align="center" bgcolor="#93CDF5">Data Nilai Siswa kelas <?=$nama?></td></tr> <tr><td width="99%"> <table border="1" width="602" id="table5" cellspacing="0"> <tr><td bgcolor="#93CDF5" width="37" align="center"><font size="2">No.</font></td> <td bgcolor="#93CDF5" align="center" width="274"><font size="2">Nama</font></td> <td bgcolor="#93CDF5" align="center" width="128"><font size="2">Jenis kelamin</font></td> <td bgcolor="#93CDF5" align="center" width="146"><font size="2">Nilai <?=$n?></font></td></tr> <? include"../sambung.php"; $nomor=1; $baca=mysql_query("select * from kelas_$kelas where id_instruktur='$id' and id_materi='$materi' and kelas='$kelas'"); while($data=mysql_fetch_array($baca)){ $siswa=mysql_query("select nama,sex from siswa where id='$data[id_siswa]'"); $siswa2=mysql_fetch_array($siswa);
185
Aplikasi Program PHP dan MySQL echo"<tr><td width=\"37\"><font size=\"2\">$nomor</font></td> <td width=\"274\"><font size=\"2\">$siswa2[nama]</font></td> <td width=\"128\"><p align=\"center\"><font size=\"2\">$siswa2[sex]</font></td> <td width=\"146\" align=\"center\"><select size=\"1\" name=\"n[$nomor]\" style=\"color: #000080; font-family: Arial; font-size: 10pt\">"; for($nilai=100;$nilai>=10;$nilai--){ echo"<option value=\"$nilai\">$nilai</option>"; } echo"</select></td></tr>"; $nomor++; } ?> <input type="hidden" name="kelas" value="<?=$kelas?>"> <input type="hidden" name="materi" value="<?=$materi?>"> <input type="hidden" name="nama" value="<?=$nama?>"> <input type="hidden" name="nilai" value="<?=$n?>"> </table> <p> <input type="submit" value=" K I R I M " name="kirim" style="color: #000080; font-weight: bold; float: right"></td></tr> </form> </table> <p style="margin-top: 1px; margin-bottom: 1px"> </p></td></tr></table> </td></tr>
186
Aplikasi Program PHP dan MySQL <tr><td colspan="3" valign="top"><img src="../images/img_09.gif" width="800" height="56" alt=""></td> </tr></table> </body> </html>
Keterangan:
Inti dari script di atas adalah bagian script PHP yang membaca data siswa dan menampilkan formulir yang memiliki obyek drop down sejumlah banyaknya siswa. Berikut adalah potonghan script tersebut: <? include"../sambung.php"; $nomor=1; $baca=mysql_query("select * from kelas_$kelas where id_instruktur='$id' and id_materi='$materi' and kelas='$kelas'"); while($data=mysql_fetch_array($baca)){ $siswa=mysql_query("select nama,sex from siswa where id='$data[id_siswa]'"); $siswa2=mysql_fetch_array($siswa); echo"<tr><td width=\"37\"><font size=\"2\">$nomor</font></td> <td width=\"274\"><font size=\"2\">$siswa2[nama]</font></td> <td width=\"128\"><p align=\"center\"><font size=\"2\">$siswa2[sex]</font></td> <td width=\"146\" align=\"center\"><select size=\"1\" name=\"n[$nomor]\" style=\"color: #000080; font-family: Arial; fontsize: 10pt\">"; for($nilai=100;$nilai>=10;$nilai--){ echo"<option value=\"$nilai\">$nilai</option>"; } echo"</select></td></tr>"; 187
Aplikasi Program PHP dan MySQL $nomor++; } ?> Langkah awal dari script di atas adalah membaca data siswa dari database kelas aktif berdasarkan materi dan instruktur yang sedang membuka halaman ini. Kemudian data siswa tersebut dihitung jumlahnya yang akan dijadikan ketentuan jumlah dropdown pada formulir tersebut. Berikut adalah tampilan halaman input data nilai siswa:
188
SISWA
Setiap formulir yang akan digunakan untuk mengolah data, pasti membutuhkan script tujuan yang berfungsi untuk mengolah data masukkan tersebut. Demikian juga untuk formulir input data nilai siswa di atas, membutuhkan script pengolah data masukkan. Script tersebut disimpan ke dalam sebuah file yang diberi nama proses_input _nilai.php. berikut adalah listing script tersebut: <? include"ceksession.php"; include"../sambung.php"; if(isset($kirim)){ $nomor=1; $baca=mysql_query("select * from kelas_$kelas where id_instruktur='$id' and id_materi='$materi' and kelas='$kelas'"); while($data=mysql_fetch_array($baca)){ $add_absen=mysql_query("update kelas_$kelas set nilai_$nilai='$n[$nomor]' where id_siswa='$data[id_siswa]' and id_materi='$data[id_materi]'"); $nomor++; } header("location:./nilai.php?kelas=$kelas&materi=$materi& nama=$nama"); } ?>
Keterangan:
189
Aplikasi Program PHP dan MySQL Script ini diawali dengan memanggil file ceksession.php untuk memeriksa keberadaan data sesi, kemudian juga memanggil file sambung.php untuk melakukan koneksi dengan database. Langkah berikutnya adalah menggunakan perintah query untuk memasukkan data dari formulir ke dalama database kelas aktif.
190
Aplikasi Program PHP dan MySQL alt=""></td></tr> <tr><td colspan="3" valign="top" height="23"> <table border="0" width="100%" cellspacing="0" cellpadding="0" background="../images/img_02.gif" id="table2" height="23"> <tr><td><p style="margin-left: 170px; margin-right: 50px" align="right"> </td></tr></table> </td></tr> <tr><td colspan="3" valign="top" height="18"> <img src="../images/img_03.gif" width="800" height="18" alt=""></td></tr> <tr><td valign="top" height="74" width="180" bgcolor="#D5EBFB"> <img src="../images/img_04.gif" width="180" height="74" alt=""></td> <td valign="top" height="74" width="20" bgcolor="#D5EBFB"> <img src="../images/img_05.gif" width="20" height="74" alt=""></td> <td valign="top" height="74" width="600" bgcolor="#D5EBFB"> <p align="center"><b>Halaman Untuk Instruktur</b></td> </tr> <tr><td colspan="3" valign="top" height="19" bgcolor="#D5EBFB"> <table border="0" width="100%" cellspacing="0" cellpadding="0" background="../images/img_07.gif" id="table1"> <tr><td width="182" valign="top"> </td> <td valign="top"> <table border="1" width="98%" cellspacing="0" cellpadding="0" id="table4"> <tr>
191
Aplikasi Program PHP dan MySQL <td align="center" bgcolor="#93CDF5">Ganti Password</td> </tr> <form method="POST" action="ganti.php"> <tr><td width="99%"><p style="margin-left: 5px; margin-right: 5px" align="center"> <font color="#FF0000"><?=$err?></font><br><p style="margin:2px 5px; " align="center"> <font size="2">Password Lama</font><p style="margin:2px 5px; " align="center"> <input type="password" name="password_lama" size="18" style="color: #000080; font-family: Arial; font-size: 10pt"><p style="margin:2px 5px; " align="center"> <font size="2">Password Baru</font><p style="margin:2px 5px; " align="center"> <input type="password" name="password1" size="18" style="color: #000080; font-family: Arial; font-size: 10pt"><p style="margin:2px 5px; " align="center"> <font size="2">Password Baru ( <font color="#FF0000">ulangi</font> )</font><p style="margin:2px 5px; " align="center"> <input type="password" name="password2" size="18" style="color: #000080; font-family: Arial; font-size: 10pt"><p align="center"> <input type="submit" value="G A N T I" name="ganti" style="fontfamily: Arial; color: #000080"> <input type="submit" value="B A T A L" name="batal" style="fontfamily: Arial; color: #000080"></td> </tr> </form> </table>
192
Aplikasi Program PHP dan MySQL <p style="margin-top: 1px; margin-bottom: 1px"> </p> </td></tr> </table> </td></tr> <tr><td colspan="3" valign="top"> <img src="../images/img_09.gif" width="800" height="56" alt=""></td></tr> </table> </body> </html>
Keterangan:
Inti dari script di atas adalah tag-tag HTML yang digunakan untuk membentuk formulir ganti password instruktur. Formulir ini mempunyai empat obyek formulir, yaitu kotak teks yang digunakan untuk mengirim data password dan tombol submit. Berikut adalah tampilan halaman formulir ganti password:
193
194
Aplikasi Program PHP dan MySQL $pesan="<br>Password baru Anda harus sama dengan password konfirmasi dibawahnya.<br>"; header("location:./ganti_password.php?err=$pesan"); }else{ include"../sambung.php"; $ganti_pass=mysql_query("UPDATE karyawan set password='$password1' WHERE id='$id'"); session_unregister ("password"); $password="$password1"; session_register("password"); } }else{ header("location:./utama.php"); } ?> <html> <head> <title>Sistem Manajemen Pendidikan online</title> <meta http-equiv="Content-Type" content="text/html; charset=iso8859-1"> </head><center><br> <body bgcolor="#A9C5BE" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0"> <table id="Table_01" width="800" height="296" border="0" cellpadding="0" cellspacing="0"> <tr><td colspan="3" valign="top" height="108"><img src="../images/img_1.gif" width="800" height="108" alt=""></td>
195
Aplikasi Program PHP dan MySQL </tr> <tr><td colspan="3" valign="top" height="23"> <table border="0" width="100%" cellspacing="0" cellpadding="0" background="../images/img_02.gif" id="table2" height="23"> <tr><td><p style="margin-left: 170px; margin-right: 50px" align="right"> </td></tr> </table> </td></tr> <tr><td colspan="3" valign="top" height="18"> <img src="../images/img_03.gif" width="800" height="18" alt=""></td></tr> <tr><td valign="top" height="74" width="180" bgcolor="#D5EBFB"><img src="../images/img_04.gif" width="180" height="74" alt=""></td> <td valign="top" height="74" width="20" bgcolor="#D5EBFB"> <img src="../images/img_05.gif" width="20" height="74" alt=""></td> <td valign="top" height="74" width="600" bgcolor="#D5EBFB"> <p align="center"><b>Halaman Untuk Instruktur</b></td></tr> <tr><td colspan="3" valign="top" height="19" bgcolor="#D5EBFB"> <table border="0" width="100%" cellspacing="0" cellpadding="0" background="../images/img_07.gif" id="table1"> <tr><td width="182" valign="top"> </td> <td valign="top"> <table border="1" width="98%" cellspacing="0" cellpadding="0" id="table4"> <tr><td align="center" bgcolor="#93CDF5">Konfirmasi Ganti Password</td>
196
Aplikasi Program PHP dan MySQL </tr> <tr><td width="99%"><p style="margin-left: 5px; margin-right: 5px" align="center"> <p style="margin-left: 5px; marginright: 5px" align="center">Password anda telah diganti dengan :<p style="margin-left: 5px; margin-right: 5px" align="center"> <b><?=$password1?></b><p style="margin-left: 5px; margin-right: 5px" align="center">Untuk melanjutkan tekan tombol di bawah ini<form method="POST" action="utama.php"><p style="marginleft: 5px; margin-right: 5px" align="center"> <input type="submit" value="L A N J U T" name="lanjut" style="color: #000080; font-family: Arial; font-size: 10pt"></p> </form> <p style="margin-left: 5px; margin-right: 5px" align="center"> </td></tr> </table> <p style="margin-top: 1px; margin-bottom: 1px"> </p></td> </tr> </table> </td></tr> <tr><td colspan="3" valign="top"> <img src="../images/img_09.gif" width="800" height="56" alt=""></td> </tr> </table> </body> </html>
Keterangan:
197
Aplikasi Program PHP dan MySQL Script di atas dibagi menjadi dua bagian utama. Yang pertama adalah script yang berfungsi untuk mengolah data password baru instruktur. Berikut adalah bagian script tersebut: <? include"ceksession.php"; if(isset($ganti)){ if($password_lama!==$password){ $pesan="<br>Password lama yang Anda masukkan salah. Periksa kembali.<br>"; header("location:./ganti_password.php?err=$pesan"); }elseif($password1!==$password2){ $pesan="<br>Password baru Anda harus sama dengan password konfirmasi dibawahnya.<br>"; header("location:./ganti_password.php?err=$pesan"); }else{ include"../sambung.php"; $ganti_pass=mysql_query("UPDATE karyawan set password='$password1' WHERE id='$id'"); session_unregister ("password"); $password="$password1"; session_register("password"); } }else{ header("location:./utama.php"); } ?> Script tersebut diawali deangan memanggil file ceksession.php untuk memeriksa keberadaan data sesi. Kemudian memeriksa apakah password yang dimasukkan pada bagian password lama apa sama 198
Aplikasi Program PHP dan MySQL dengan data password yang disimpan pada variable sesi. Apabila password yang dimasukkan pada variable password lama tidak sama dengan data sesi password, maka akan dimasukkan keterangan bahwa data password lama tidak benar. Apabila data password lama yang dimasukkan sudah benar, maka script akan dilanjutkan memeriksa data password 1 dengan password 2. kedua data tersebut di periksa kesamaannya.. Apabila kedua syarat tersebut terpenuhi, maka script akan memasukkan data password baru untuk mengganti password lama menggunakan perintah query berikut: $ganti_pass=mysql_query("UPDATE karyawan set password='$password1' WHERE id='$id'"); Data password lama akan diganti dengan data password baru setelah script diatas dijalankan. Namun pada data sesi masih memiliki data password yang lama. Hal ini akan ditolah oleh halaman-halaman yang lain apabila instruktur membuka halaman berikutnya. Maka dari itu dibuat sebuah script yang menghapus data password lama dan memasukkan data password baru ke dalam variable sesi seperti pada script di bawah ini: session_unregister ("password"); $password="$password1"; session_register("password"); bagian yang kedua adalah tag-tag HTML yang berfungsi menampilkan halaman ganti password apabila password sudah sukses diganti. Berikut adalah tampilan halaman sukses ganti password:
199
200
201
Aplikasi Program PHP dan MySQL Berikut adalah script yang digunakan untuk menampilkan halaman index siswa: <html> <head> <title>Sistem Manajemen Pendidikan online</title> <meta http-equiv="Content-Type" content="text/html; charset=iso8859-1"> </head><center><br> <body bgcolor="#A9C5BE" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0"> <table id="Table_01" width="800" height="296" border="0" cellpadding="0" cellspacing="0"> <tr><td colspan="3" valign="top" height="108"><img src="../images/img_1.gif" width="800" height="108" alt=""></td> </tr> <tr><td colspan="3" valign="top" height="23"> <table border="0" width="100%" cellspacing="0" cellpadding="0" background="../images/img_02.gif" id="table2" height="23"> <tr><td><p style="margin-left: 170px; margin-right: 50px" align="right"><span class=menu><font size="2"><a href="../index.php">HOME</a> | <a href="../siswa/index.php">LOGIN SISWA</a> | <a href="../walisiswa/index.php">WALI SISWA </a>| <a href="../pengajar/index.php">INSTRUKTUR </a>| <a href="../administrator/index.php">ADMINISTRASI </a> </font> </span></td></tr> </table> </td>
202
Aplikasi Program PHP dan MySQL </tr> <tr><td colspan="3" valign="top" height="18"> <img src="../images/img_03.gif" width="800" height="18" alt=""></td> </tr> <tr><td valign="top" height="74" width="180" bgcolor="#D5EBFB"><img src="../images/img_04.gif" width="180" height="74" alt=""></td><td valign="top" height="74" width="20" bgcolor="#D5EBFB"><img src="../images/img_05.gif" width="20" height="74" alt=""></td><td valign="top" height="74" width="600" bgcolor="#D5EBFB"> <p align="center"><b>Halaman Untuk Siswa</b></td></tr> <tr><td colspan="3" valign="top" height="19" bgcolor="#D5EBFB"> <table border="0" width="100%" cellspacing="0" cellpadding="0" background="../images/img_07.gif" id="table1"> <tr><td width="182" valign="top"> </td> <td valign="top"> <table border="1" width="98%" cellspacing="0" cellpadding="0" id="table4"> <tr><td align="center" bgcolor="#93CDF5">Login Siswa</td></tr> <form method="POST" action="login.php"> <tr><td width="99%"><p style="margin-left: 5px; margin-right: 5px" align="center"> <p style="margin:2px 5px; " align="center"><font size="2">User ID</font><p style="margin:2px 5px; " align="center"> <select size="1" name="userid1" style="color: #000080; fontfamily: Arial; font-size: 10pt; background-color: #FFFFFF"> <? include"../sambung.php";
203
Aplikasi Program PHP dan MySQL $data2=mysql_query("select * from kelas order by nama"); while($data=mysql_fetch_array($data2)){ echo"<option value=\"",$data[nama],"\">",$data[nama],"</option>"; } ?> </select>_<input type="text" name="userid2" size="15" style="color: #000080; font-size: 10pt; font-family: Arial; border: 1px solid #FFFFFF; padding-left: 4px; padding-right: 4px; paddingtop: 1px; padding-bottom: 1px"><p style="margin:2px 5px; " align="center"> <font size="2">Password</font><p style="margin:2px 5px; " align="center"> <input type="password" name="password" size="18" style="color: #000080; font-family: Arial; font-size: 10pt"><p align="center"> <input type="submit" value=" LOGIN " name="login" style="fontfamily: Arial; color: #000080"></td></tr> </form> </table> <p style="margin-top: 1px; margin-bottom: 1px"> </p> </td></tr> </table> </td></tr> <tr><td colspan="3" valign="top"><img src="../images/img_09.gif" width="800" height="56" alt=""></td></tr> </table> </body> </html>
Keterangan:
204
Aplikasi Program PHP dan MySQL Dalam script di atas lebih banyak memuat tag-tag HTML, namun yang perlu anda perhatikan adalah tag dank ode PHP yang digunakan untuk membentuk sebuah formulir. Formulir untuk login ini bukan sebuah formulir kosong, namun formulir yang beberapa obyeknya sudah memiliki nilai atau value. Setiap tag yang membentuk formulir akan diawali dengan tag <form> yang memiliki beberapa nilai. Berikut adalah tag yang digunakan untuk membuat formulir tersebut: <form method="POST" action="login.php"> Artinya apabila formulir tersebut dijalankan dan tombol login ditekan, maka data yang ada pada obyek / variabel akan dikirim ke file login.php, sebagai script pengalah data. Script berikutnya dilanjutnkan dengan obyek formulir dropdown dengan nilai atau value hasil pembacaan nama kelas dari database kelas. Berikut adalah script untuk membentuk dropdown tersebut: <select size="1" name="userid1" style="color: #000080; font-family: Arial; font-size: 10pt; background-color: #FFFFFF"> <? include"../sambung.php"; $data2=mysql_query("select * from kelas order by nama"); while($data=mysql_fetch_array($data2)){ echo"<option value=\"",$data[nama],"\">",$data[nama],"</option>"; } ?> </select> Nama dari dropdown tersebut adalah userid1 dengan hasil pembacaan data kelas menggunakan kode-kode PHP dan perintah query. Data kemudian ditampilkan sebagai pilihan nama kelas siswamenggunakan fungsi echo. Obyek dropdown ditutup dengan tag </select>. Script berikutnya dilanjutkan dengan menampilkan obyek kotak teks untuk userid2 dan password. Seperti dibawah ini:
205
Aplikasi Program PHP dan MySQL <input type="text" name="userid2" size="15" style="color: #000080; font-size: 10pt; font-family: Arial; border: 1px solid #FFFFFF; padding-left: 4px; padding-right: 4px; padding-top: 1px; paddingbottom: 1px"><p style="margin:2px 5px; " align="center"> <font size="2">Password</font><p style="margin:2px 5px; " align="center"> <input type="password" name="password" size="18" style="color: #000080; font-family: Arial; font-size: 10pt"><p align="center"> Kemudian script ditutup dengan menampilkan tombol submit dan tag penutup formlulir yaitu: <input type="submit" value=" LOGIN " name="login" style="fontfamily: Arial; color: #000080"></td></tr> </form> Berikut adalah tampilan halaman login untuk siswa:
Aplikasi Program PHP dan MySQL Untuk mengolah data login dibutuhkan sebuah script khusus. Script ini berfungsi untuk memeriksa data yang dikirim dari formulir login dengan data hasil pembacaan dari database. Apabila kedua data tersebut cocok maka script akan mengarahkan siswa yang sedang login ke halaman utama untuk siswa. Apabila kedua data tersebut tidak sama, maka siswa akan diarahkan ke halaman login kembali untuk melakukan login ulang. Berikut adalah script pengolah data login tersebut: <? session_start(); $userid=$userid1."_".$userid2; include"../sambung.php"; $data=mysql_query("select * from siswa where userid='$userid'"); $user=mysql_fetch_array($data); $id_siswa="$user[id]"; $nama="$user[nama]"; $kelas="$user[kelas]"; if($userid =="" || $password==""){ header("Location:./index.php?error=1"); }else{ if($password=="$user[password]"){ session_register("id_siswa"); session_register("password"); session_register("kelas"); session_register("nama"); header("Location:./utama.php"); }else{ header("Location:./index.php?error=2");
207
Keterangan:
Script di atas di awali dengan fungsi untuk mendeklarasikan adanya data sesi, yaitu session_start(); kemudian diikuti kode php untuk menggabung userid1 dan userid2 menjadi sebuah variabel userid yaitu bagian kode $userid=$userid1."_".$userid2;. Berikutnya script akan membaca data yang da pada tabel siswa menggunakan perintah query. Hasil pembacaan data tersebut dimasukkan ke dalam variabelvariabel dan dicocokkan dengan data yang telah dikirim dari formulir login. Apabila data tersebut tidak sesuai maka siswa akan diarahkan ke halaman login kembali menggunakan fungsi header seperti bagian script berikut: header("Location:./index.php?error=2");. Apabila hasil dari pemeriksaan data tersebut sesuai, maka siswa akan diarahkan ke halaman berikutnya yaitu halaman utama siswa seperti pada bagian script di bawah ini: if($password=="$user[password]"){ session_register("id_siswa"); session_register("password"); session_register("kelas"); session_register("nama"); header("Location:./utama.php");
208
Aplikasi Program PHP dan MySQL Berikut adalah script yang ada pada halaman utama siswa: <? include"ceksession.php"; include"../sambung.php"; $data1=mysql_query("select * from siswa where id='$id_siswa'"); $d=mysql_fetch_array($data1); $lahir=date("j n Y",$d[tgl_lahir]); $waktu=explode(" ",$lahir); $start=date("j n Y",$d[masuk]); $mulai=explode(" ",$start); $bln=array('Januari','Pebruari','Maret','April','Mei','Juni','Juli', 'Agustus','September','Oktober','Nopember','Desember'); $msk=$mulai[1]; $bulan=$waktu[1]; $kls=mysql_query("select nama from kelas where id='$d[kelas]'"); $kls2=mysql_fetch_array($kls); ?> <html> <head> <title>Sistem Manajemen Pendidikan online</title> <meta http-equiv="Content-Type" content="text/html; charset=iso8859-1"> </head> <center><br> <body bgcolor="#A9C5BE" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0"> <table id="Table_01" width="800" height="296" border="0" 209
Aplikasi Program PHP dan MySQL cellpadding="0" cellspacing="0"> <tr><td colspan="3" valign="top" height="108"> <img src="../images/img_1.gif" width="800" height="108" alt=""></td></tr> <tr><td colspan="3" valign="top" height="23"> <table border="0" width="100%" cellspacing="0" cellpadding="0" background="../images/img_02.gif" id="table2" height="23"> <tr><td><p style="margin-left: 170px; margin-right: 50px" align="right"> </td></tr> </table> </td></tr> <tr><td colspan="3" valign="top" height="18"> <img src="../images/img_03.gif" width="800" height="18" alt=""></td></tr> <tr><td valign="top" height="74" width="180" bgcolor="#D5EBFB"> <img src="../images/img_04.gif" width="180" height="74" alt=""></td> <td valign="top" height="74" width="20" bgcolor="#D5EBFB"> <img src="../images/img_05.gif" width="20" height="74" alt=""></td> <td valign="top" height="74" width="600" bgcolor="#D5EBFB"> <p align="center"><b>Halaman Untuk Siswa</b></td></tr> <tr><td colspan="3" valign="top" height="19" bgcolor="#D5EBFB"> <table border="0" width="100%" cellspacing="0" cellpadding="0" background="../images/img_07.gif" id="table1"> <tr><td width="182" valign="top"> <p style="margin-left: 5px; margin-right: 15px; margin-top: 2px;
210
Aplikasi Program PHP dan MySQL margin-bottom: 2px">Informasi<p style="margin-left: 5px; marginright: 15px; margin-top: 2px; margin-bottom: 2px"> <a href="data_absensi.php">Lihat Absensi</a><p style="marginleft: 5px; margin-right: 15px; margin-top: 2px; margin-bottom: 2px"> <a href="data_nilai.php">Lihat Nilai</a><p style="margin-left: 5px; margin-right: 15px; margin-top: 2px; margin-bottom: 2px"> <p style="margin-left: 5px; margin-right: 15px; margin-top: 2px; margin-bottom: 2px"> <p style="marginleft: 5px; margin-right: 15px; margin-top: 2px; margin-bottom: 2px"> <p style="margin-left: 5px; margin-right: 15px; margin-top: 2px; margin-bottom: 2px">Pengaturan</p> <p style="margin-left: 5px; margin-right: 15px; margin-top: 2px; margin-bottom: 2px"> <font size="2"><a href="ganti_password.php">Ganti Password</a><br> <a href="../keluar.php">Keluar</a></font></p> </td> <td valign="top"> <table border="1" width="98%" cellspacing="0" cellpadding="0" id="table4"> <tr><td width="99%" colspan="2" align="center" bgcolor="#93CDF5">Biodata Siswa</td></tr> <tr><td width="25%"> <p style="margin-left: 5px; margin-right: 5px"> <font size="2">Nama</font></td> <td width="74%"> <p style="margin: 0px 5px"><font size="2"> <?=$d[nama]?> </font></td></tr>
211
Aplikasi Program PHP dan MySQL <tr><td width="25%"> <p style="margin-left: 5px; margin-right: 5px"> <font size="2">Jenis Kelamin</font></td> <td width="74%"> <p style="margin: 0px 5px"><font size="2"> <?=$d[sex]?> </font></td> </tr> <tr> <td width="25%"> <p style="margin-left: 5px; margin-right: 5px"> <font size="2">Alamat</font></td> <td width="74%"><p style="margin: 0px 5px"><font size="2"> <?=$d[alamat]?> </font></td></tr> <tr><td width="25%"> <p style="margin-left: 5px; margin-right: 5px"> <font size="2">Tempat tanggal lahir</font></td> <td width="74%"><p style="margin: 0px 5px"><font size="2"> <?=$d[tempat_lahir]?>, <?echo"$waktu[0] $bln[$bulan] $waktu[2]"?> </font></td> </tr> <tr><td width="25%"> <p style="margin-left: 5px; margin-right: 5px"> <font size="2">Agama</font></td> <td width="74%"> <p style="margin: 0px 5px"><font size="2">
212
Aplikasi Program PHP dan MySQL <?=$d[agama]?> </font></td></tr> <tr><td width="25%"> <p style="margin-left: 5px; margin-right: 5px"> <font size="2">Nomor telepon / hp</font></td> <td width="74%"><p style="margin: 0px 5px"><font size="2"> <?=$d[telepon]?> </font></td></tr> <tr><td width="25%"> <p style="margin-left: 5px; margin-right: 5px"> <font size="2">Pendidikan terakhir</font></td> <td width="74%"> <p style="margin: 0px 5px"><font size="2"> <?=$d[pendidikan]?> </font></td></tr> <tr><td width="25%"> <p style="margin-left: 5px; margin-right: 5px"> <font size="2">Sekolah asal</font></td> <td width="74%"> <p style="margin: 0px 5px"><font size="2"> <?=$d[asal_sekolah]?> </font></td></tr> <tr><td width="25%"> <p style="margin-left: 5px; margin-right: 5px"> <font size="2">Nama orang tua</font></td> <td width="74%"><p style="margin: 0px 5px"><font size="2"> <?=$d[orang_tua]?> </font></td></tr> <tr><td width="25%"> <p style="margin-left: 5px; margin-right: 5px">
213
Aplikasi Program PHP dan MySQL <font size="2">Pekerjaan Orang tua</font></td> <td width="74%"> <p style="margin: 0px 5px"><font size="2"> <?=$d[pekerjaan]?> </font></td></tr> <tr><td width="25%"><p style="margin-left: 5px; margin-right: 5px"> <font size="2">Mulai masuk</font></td> <td width="74%"><p style="margin: 0px 5px"><font size="2"> <?echo"$mulai[0] $bln[$msk] $mulai[2]"?> </font></td></tr> <tr><td width="25%"> <p style="margin-left: 5px; margin-right: 5px"> <font size="2">Kelas</font></td> <td width="74%"><p style="margin: 0px 5px"><font size="2"> <?=$kls2[nama]?> </font></td></tr> <tr><td width="25%"> </td> <td width="74%"> </td></tr> <tr><td width="25%"> <p style="margin-left: 5px; margin-right: 5px"> <font size="2">User ID</font></td> <td width="74%"><p style="margin: 0px 5px"><font size="2"> <?=$d[userid]?> </font></td></tr> <tr><td width="25%"><p style="margin-left: 5px; margin-right: 5px"><font size="2">Password</font></td> <td width="74%"><p style="margin: 0px 5px"><font size="2"> <?=$d[password]?> </font></td></tr> <tr><td width="25%"> </td>
214
Aplikasi Program PHP dan MySQL <td width="74%"> </td></tr></table> <p style="margin-top: 1px; margin-bottom: 1px"> </p></td> </tr></table> </td></tr> <tr><td colspan="3" valign="top"> <img src="../images/img_09.gif" width="800" height="56" alt=""></td></tr></table> </body> </html>
Keterangan:
Script untuk halaman utama siswa ini diawali dengan memanggil file ceksession.php untuk memeriksa keberadan data sesi, kemudinan memanggil file sambung.php untuk melakukan koneksi dengan database menggunakan fungsi include(). Setelah data sesi diperiksa dan sudah melakukan koneksi dengan database, maka script akan membaca data siswa berdasarkan userid siswa yang sedang login menggunakan perintah query SQL. Data hasil pembacaan data dari database siswa ini, kemudian disimpan kedalam variabel-variabel dengan nama variabel sesuai data yang ada didalamnya. Perintah query tersebut adalah: $data1=mysql_query("select * from siswa where id='$id_siswa'"); $d=mysql_fetch_array($data1); Khusus untuk data tanggal lahir dan data tanggal mulai masuk sebagai siswa perlu dikonversikan ke dalam format tanggal/bulan/tahun menggukan fungsi date(). Hal ini dilakukan karena data tersebut dalam database masih menggunakan format microtime. Berikut adalahbagian script yang mengubah data micro menjadi format tanggal normal: $lahir=date("j n Y",$d[tgl_lahir]); $waktu=explode(" ",$lahir); $start=date("j n Y",$d[masuk]);
215
Aplikasi Program PHP dan MySQL $mulai=explode(" ",$start); Misalkan hasil dari pembacaan data tanggal lahir pada salah satu siswa pada database disimpan kedalam variabel $d[tgl_lahir] maka script untuk mengkonversikan data tersebut ke dalam format tanggal menjadi $lahir=date("j n Y",$d[tgl_lahir]);. Hasil dari konversi tanggal tersebut masih dalam bentuk tanggal standart yaitu dd/mm/yyy, kemudian kalau ingin mengubah sebuah data bulan menjadi format penulisan nama bulan dalam bahasa Indonesia, Anda harus menggunakan script yang berfungsi mengubahdata bulan dalam bentuk angka menjadi data bulan dalam bentuk nama lengkap. Hal ini dapat dilakukan menggunakan bagian script berikut: $bln=array('Januari','Pebruari','Maret','April','Mei','Juni','Juli', 'Agustus','September','Oktober','Nopember','Desember'); $msk=$mulai[1]; $bulan=$waktu[1]; Data kelas yang ada pada tabel siswa tersebut masih berupa id dari nama kelas yang ada pada tabel kelas. Oleh karena itu untuk menampilkan nama kelas pada halaman ini, script akan membaca data nama kelas yang ada pada tabel kelas bedasarkan id kelas yang telah dibaca dari tabel siswa. Berikut adalah bagian script tersebut: $kls=mysql_query("select nama from kelas where id='$d[kelas]'"); $kls2=mysql_fetch_array($kls); Bagian script di atas yang terakhir adalah menampilkan data hasil pembacaan data siswa dari database. Data siswa tersebut ditampilkan dengan menggunakan tag-tag HTML dengan menyisipkan variabelvariabel PHP yang mempunyai nilai data-data siswa tersebut. Berikut adalah tampilan halaman utama siswa:
216
Aplikasi Program PHP dan MySQL <? include"ceksession.php"; ?> <html> <head> <title>Sistem Manajemen Pendidikan online</title> <meta http-equiv="Content-Type" content="text/html; charset=iso8859-1"> <style> <!-body { color: #000080; font-family: Arial; font-size: 10pt }
A:link {COLOR: #000080; TEXT-DECORATION: none; fontsize:10pt; font-family:Arial } A:visited {COLOR: #000080; TEXT-DECORATION: none; fontfamily:Arial; font-size:10pt } A:active {COLOR: #000080; TEXT-DECORATION: none; fontfamily:Arial; font-size:10pt } A:hover {COLOR: #00FFFF; TEXT-DECORATION: none; fontfamily:Arial; font-size:10pt; font-weight:bold } .topbar A:visited {FONT-WEIGHT: normal; COLOR: white; TEXTDECORATION: none } .topbar A:hover {FONT-WEIGHT: bold; COLOR: yellow; TEXTDECORATION: none
218
Aplikasi Program PHP dan MySQL } .topbar A:link {FONT-WEIGHT: normal; COLOR: white; TEXTDECORATION: none } .menu A:visited {COLOR: #0000FF; TEXT-DECORATION: none; font-size:10pt; font-family:Arial } .menu A:hover {COLOR: #00FFFF; TEXT-DECORATION: none; font-family:Arial; font-size:10pt; font-weight:bold } .menu A:link {COLOR: #0000FF; TEXT-DECORATION: none; fontfamily:Arial; font-size:10pt } --> </style></head> <center><br> <body bgcolor="#A9C5BE" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0"> <table id="Table_01" width="800" height="296" border="0" cellpadding="0" cellspacing="0"> <tr><td colspan="3" valign="top" height="108"> <img src="../images/img_1.gif" width="800" height="108" alt=""></td></tr> <tr><td colspan="3" valign="top" height="23"> <table border="0" width="100%" cellspacing="0" cellpadding="0" background="../images/img_02.gif" id="table2" height="23"> <tr><td><p style="margin-left: 170px; margin-right: 50px" align="right"> </td></tr> </table> 219
Aplikasi Program PHP dan MySQL </td></tr> <tr><td colspan="3" valign="top" height="18"> <img src="../images/img_03.gif" width="800" height="18" alt=""></td></tr> <tr><td valign="top" height="74" width="180" bgcolor="#D5EBFB"><img src="../images/img_04.gif" width="180" height="74" alt=""></td> <td valign="top" height="74" width="20" bgcolor="#D5EBFB"> <img src="../images/img_05.gif" width="20" height="74" alt=""></td> <td valign="top" height="74" width="600" bgcolor="#D5EBFB"> <p align="center"><b>Halaman Untuk Siswa</b></td></tr> <tr><td colspan="3" valign="top" height="19" bgcolor="#D5EBFB"> <table border="0" width="100%" cellspacing="0" cellpadding="0" background="../images/img_07.gif" id="table1"> <tr><td width="182" valign="top"><p style="margin-left: 5px; margin-right: 15px; margin-top: 2px; margin-bottom: 2px"> <font size="2"><a href="utama.php">Halaman Utama</a></font></p><p style="margin-left: 5px; margin-right: 15px; margin-top: 2px; margin-bottom: 2px"><font size="2"> <a href="data_nilai.php">Lihat Nilai</a></font></p> <p style="margin-left: 5px; margin-right: 15px; margin-top: 2px; margin-bottom: 2px"> </p> <p style="margin-left: 5px; margin-right: 15px; margin-top: 2px; margin-bottom: 2px">Pengaturan</p> <p style="margin-left: 5px; margin-right: 15px; margin-top: 2px; margin-bottom: 2px"><font size="2"><a href="ganti_password.php">Ganti Password</a></font></p> <p style="margin-left: 5px; margin-right: 15px; margin-top: 2px;
220
Aplikasi Program PHP dan MySQL margin-bottom: 2px"> <font size="2"><a href="../keluar.php">Keluar</a></font></p> <p style="margin-left: 5px; margin-right: 15px; margin-top: 2px; margin-bottom: 2px"> </td> <td valign="top"> <table border="1" width="99%" cellspacing="0" cellpadding="0" id="table4"> <tr><td align="center" bgcolor="#93CDF5">Data Absensi <?=$nama?></td></tr> <tr><td width="99%"> <table border="0" width="100%" cellspacing="0" cellpadding="0" id="table6"> <tr><td width="341" valign="top"> <p align="center"><font size="2">Keterangan kehadiran siswa</font></td> <td valign="top" align="center" bgcolor="#008000"><p align="center"> <font size="2" color="#00FFFF"><b>hadir</b></font></td> <td valign="top" align="center" bgcolor="#FF0000" width="131"> <font size="2" color="#00FFFF"><b>tidak hadir</b></font></td></tr></table> <table border="1" width="608" id="table5" cellspacing="0"> <tr><td bgcolor="#93CDF5" width="34" align="center" rowspan="2"><font size="2">No.</font></td> <td bgcolor="#93CDF5" align="center" width="218" rowspan="2"> <font size="2">Nama Materi</font></td> <td bgcolor="#93CDF5" align="center" width="335" colspan="18"> <font size="2">Session</font></td></tr>
221
Aplikasi Program PHP dan MySQL <tr><td bgcolor="#93CDF5" align="center" width="19"> <font size="2">1</font></td> <td bgcolor="#93CDF5" align="center" width="19"> <font size="2">2</font></td> <td bgcolor="#93CDF5" align="center" width="19"> <font size="2">3</font></td> <td bgcolor="#93CDF5" align="center" width="19"> <font size="2">4</font></td> <td bgcolor="#93CDF5" align="center" width="19"> <font size="2">5</font></td> <td bgcolor="#93CDF5" align="center" width="19"> <font size="2">6</font></td> <td bgcolor="#93CDF5" align="center" width="19"> <font size="2">7</font></td> <td bgcolor="#93CDF5" align="center" width="19"> <font size="2">8</font></td> <td bgcolor="#93CDF5" align="center" width="19"> <font size="2">9</font></td> <td bgcolor="#93CDF5" align="center" width="19"> <font size="2">10</font></td> <td bgcolor="#93CDF5" align="center" width="19"> <font size="2">11</font></td> <td bgcolor="#93CDF5" align="center" width="19"> <font size="2">12</font></td> <td bgcolor="#93CDF5" align="center" width="19">
222
Aplikasi Program PHP dan MySQL <font size="2">13</font></td> <td bgcolor="#93CDF5" align="center" width="19"> <font size="2">14</font></td> <td bgcolor="#93CDF5" align="center" width="20"> <font size="2">15</font></td> <td bgcolor="#93CDF5" align="center" width="20"> <font size="2">16</font></td> <td bgcolor="#93CDF5" align="center" width="20"> <font size="2">17</font></td> <td bgcolor="#93CDF5" align="center" width="20"> <font size="2">18</font></td></tr> <? include"../sambung.php"; $nomor=1; $baca=mysql_query("select * from kelas_$kelas where id_siswa='$id_siswa'"); while($data=mysql_fetch_array($baca)){ $materi1=mysql_query("select nama from data_materi where id='$data[id_materi]'"); $materi2=mysql_fetch_array($materi1); echo"<tr><td width=\"34\"><font size=\"2\"><center>$nomor</center></font></td> <td width=\"218\"><font size=\"2\">$materi2[nama]</font></td> <td width=\"19\" bgcolor=\"$data[absen_1]\"> </td> <td width=\"19\" bgcolor=\"$data[absen_2]\"> </td> <td width=\"19\" bgcolor=\"$data[absen_3]\"> </td>
223
Aplikasi Program PHP dan MySQL <td width=\"19\" bgcolor=\"$data[absen_4]\"> </td> <td width=\"19\" bgcolor=\"$data[absen_5]\"> </td> <td width=\"19\" bgcolor=\"$data[absen_6]\"> </td> <td width=\"19\" bgcolor=\"$data[absen_7]\"> </td> <td width=\"19\" bgcolor=\"$data[absen_8]\"> </td> <td width=\"19\" bgcolor=\"$data[absen_9]\"> </td> <td width=\"19\" bgcolor=\"$data[absen_10]\"> </td> <td width=\"19\" bgcolor=\"$data[absen_11]\"> </td> <td width=\"19\" bgcolor=\"$data[absen_12]\"> </td> <td width=\"19\" bgcolor=\"$data[absen_13]\"> </td> <td width=\"19\" bgcolor=\"$data[absen_14]\"> </td> <td width=\"20\" bgcolor=\"$data[absen_15]\"> </td> <td width=\"20\" bgcolor=\"$data[absen_16]\"> </td> <td width=\"20\" bgcolor=\"$data[absen_17]\"> </td> <td width=\"20\" bgcolor=\"$data[absen_18]\"> </td> </tr>"; $nomor++; } ?> </table> </td></tr> </table> <p style="margin-top: 1px; margin-bottom: 1px"> </p> </td></tr> </table>
224
Aplikasi Program PHP dan MySQL </td></tr> <tr><td colspan="3" valign="top"> <img src="../images/img_09.gif" width="800" height="56" alt=""></td></tr> </table> </body> </html>
Keterangan:
Pada script di atas didominasi oleh tag-tag HTML untuk menampilkan halaman data absensi siswa, namun yang perlu anda perhatikan adalah bagian kode PHP yang berfungsi untuk membaca data absensi pada database kelas aktif dan beberapa kode PHP dalam bentuk variable yang disisipkan pada tag HTML untuk menampilkan data absensi siswa tesebut. Bagian kode PHP yang digunakan untuk membaca data tersebut adalah: <? include"../sambung.php"; $nomor=1; $baca=mysql_query("select * from kelas_$kelas where id_siswa='$id_siswa'"); while($data=mysql_fetch_array($baca)){ $materi1=mysql_query("select nama from data_materi where id='$data[id_materi]'"); $materi2=mysql_fetch_array($materi1); Sebelum membaca data dari database kelas aktif, script memanggil file sambung.php untuk melakukan koneksi terlebih dahulu. Kemudian data dibaca menggunakan perintah query SQL. Setelah data dibaca oleh kode PHP kemudian ditampilkan dengan cara menyisipkan variabel PHP ke dalam tag-tag HTML seperti dibawah ini: <td width=\"218\"><font size=\"2\">$materi2[nama]</font></td> 225
Aplikasi Program PHP dan MySQL <td width=\"19\" bgcolor=\"$data[absen_1]\"> </td> Pada baris yang pertama tag HTML tersebut digunakan untuk menampilkan bagian nama materi dengan cara menyisipkan variabel $mater2[nama] yang memiliki nilai nama materi, kemudian pada baris kedua digunakan untuk menampilkan data session / pertemuan ke satu dan memberikan warna background dengan cara menyisipkan nilai warna hasil dari pembacaan database yang sudah dimasukkan ke dalam variabel $data[absent_1]. Berikut adalah tampilan halaman laporan absensi siswa:
226
Aplikasi Program PHP dan MySQL tugas, nilai tengah semester, nilai akhir semester nilai total dan nilai dalam bentuk abjad. Berikut adalah script yang digunakan untuk menampilkan halaman laporan absensi tersebut: <? include"ceksession.php"; ?> <html> <head> <title>Sistem Manajemen Pendidikan online</title> <meta http-equiv="Content-Type" content="text/html; charset=iso8859-1"> <style> <!-body{ color: #000080; font-family: Arial; font-size: 10pt } A:link {COLOR: #000080; TEXT-DECORATION: none; fontsize:10pt; font-family:Arial } A:visited {COLOR: #000080; TEXT-DECORATION: none; fontfamily:Arial; font-size:10pt } A:active {COLOR: #000080; TEXT-DECORATION: none; fontfamily:Arial; font-size:10pt } A:hover {COLOR: #00FFFF; TEXT-DECORATION: none; fontfamily:Arial; font-size:10pt; font-weight:bold } .topbar A:visited {FONT-WEIGHT: normal; COLOR: white; TEXT-
227
Aplikasi Program PHP dan MySQL DECORATION: none } .topbar A:hover {FONT-WEIGHT: bold; COLOR: yellow; TEXTDECORATION: none } .topbar A:link {FONT-WEIGHT: normal; COLOR: white; TEXTDECORATION: none } .menu A:visited {COLOR: #0000FF; TEXT-DECORATION: none; font-size:10pt; font-family:Arial } .menu A:hover {COLOR: #00FFFF; TEXT-DECORATION: none; font-family:Arial; font-size:10pt; font-weight:bold } .menu A:link {COLOR: #0000FF; TEXT-DECORATION: none; fontfamily:Arial; font-size:10pt } --> </style> </head><center><br> <body bgcolor="#A9C5BE" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0"> <table id="Table_01" width="800" height="296" border="0" cellpadding="0" cellspacing="0"> <tr><td colspan="3" valign="top" height="108"> <img src="../images/img_1.gif" width="800" height="108" alt=""></td></tr> <tr><td colspan="3" valign="top" height="23"> <table border="0" width="100%" cellspacing="0" cellpadding="0" 228
Aplikasi Program PHP dan MySQL background="../images/img_02.gif" id="table2" height="23"> <tr><td> <p style="margin-left: 170px; margin-right: 50px" align="right"> </td> </tr></table> </td></tr> <tr><td colspan="3" valign="top" height="18"> <img src="../images/img_03.gif" width="800" height="18" alt=""></td></tr> <tr><td valign="top" height="74" width="180" bgcolor="#D5EBFB"> <img src="../images/img_04.gif" width="180" height="74" alt=""></td> <td valign="top" height="74" width="20" bgcolor="#D5EBFB"> <img src="../images/img_05.gif" width="20" height="74" alt=""></td> <td valign="top" height="74" width="600" bgcolor="#D5EBFB"> <p align="center"><b>Halaman Untuk Siswa</b></td></tr> <tr><td colspan="3" valign="top" height="19" bgcolor="#D5EBFB"> <table border="0" width="100%" cellspacing="0" cellpadding="0" background="../images/img_07.gif" id="table1"> <tr><td width="182" valign="top"> <p style="margin-left: 5px; margin-right: 15px; margin-top: 2px; margin-bottom: 2px"> <font size="2"><a href="utama.php">Halaman Utama</a></font></p> <p style="margin-left: 5px; margin-right: 15px; margin-top: 2px; margin-bottom: 2px">
229
Aplikasi Program PHP dan MySQL <font size="2"><a href="data_absensi.php">Absensi</a></font></p> <p style="margin-left: 5px; margin-right: 15px; margin-top: 2px; margin-bottom: 2px"> </p> <p style="margin-left: 5px; margin-right: 15px; margin-top: 2px; margin-bottom: 2px"> </p> <p style="margin-left: 5px; margin-right: 15px; margin-top: 2px; margin-bottom: 2px"> Pengaturan</p> <p style="margin-left: 5px; margin-right: 15px; margin-top: 2px; margin-bottom: 2px"> <font size="2"><a href="ganti_password.php">Ganti Password</a></font></p> <p style="margin-left: 5px; margin-right: 15px; margin-top: 2px; margin-bottom: 2px"> <font size="2"><a href="../keluar.php">Keluar</a></font></p> <p style="margin-left: 5px; margin-right: 15px; margin-top: 2px; margin-bottom: 2px"> </td> <td valign="top"> <table border="1" width="98%" cellspacing="0" cellpadding="0" id="table4"> <tr><td align="center" bgcolor="#93CDF5">Data Nilai <?=$nama?></td> </tr> <tr><td width="99%"> <table border="1" width="602" id="table5" cellspacing="0"> <tr><td bgcolor="#93CDF5" width="37" align="center" rowspan="2">
230
Aplikasi Program PHP dan MySQL <font size="2">No.</font></td> <td bgcolor="#93CDF5" align="center" width="173" rowspan="2"> <font size="2">Nama</font></td> <td bgcolor="#93CDF5" align="center" width="383" colspan="6"> <font size="2">Nilai</font></td></tr> <tr><td bgcolor="#93CDF5" width="63"> <p align="center"><font size="2">Harian</font></td> <td bgcolor="#93CDF5" width="63"> <p align="center"><font size="2">Tugas</font></td> <td bgcolor="#93CDF5" width="64"> <p align="center"><font size="2">Tengah sms</font></td> <td bgcolor="#93CDF5" width="64"> <p align="center"><font size="2">Akhir sms</font></td> <td bgcolor="#93CDF5" width="64"> <p align="center"><font size="2">Total</font></td> <td bgcolor="#93CDF5" width="64"> <p align="center"><font size="2">Nilai Huruf</font></td></tr> <? include"../sambung.php"; $nomor=1; $baca=mysql_query("select * from kelas_$kelas where id_siswa='$id_siswa'"); while($data=mysql_fetch_array($baca)){ $materi1=mysql_query("select nama from data_materi where id='$data[id_materi]'"); $materi2=mysql_fetch_array($materi1);
231
Aplikasi Program PHP dan MySQL $total[$nomor]=number_format(((($data[nilai_harian]+ $data[nilai_tugas]+$data[nilai_tengah])/3)+($data[nilai_akhir]))/2,2); if($total[$nomor]<=50){ $n[$nomor]="E"; $bg_color="#FFCC99"; }elseif($total[$nomor]<=75){ $n[$nomor]="D"; }elseif($total[$nomor]<=82){ $n[$nomor]="C"; }elseif($total[$nomor]<=92){ $n[$nomor]="B"; }else{ $n[$nomor]="A"; } echo"<tr> <td width=\"37\" bgcolor=\"#FFCC99\"><font size=\"2\"><center>$nomor.</center></font></td> <td width=\"173\" bgcolor=\"#FFCC99\"><font size=\"2\">$materi2[nama]</font></td> <td width=\"63\" align=\"center\" bgcolor=\"#FFCC99\"> <font size=\"2\">$data[nilai_harian]</font></td> <td width=\"63\" align=\"center\" bgcolor=\"#FFCC99\"> <font size=\"2\">$data[nilai_tugas]</font></td> <td width=\"64\" align=\"center\" bgcolor=\"#FFCC99\"> <font size=\"2\">$data[nilai_tengah]</font></td> <td width=\"64\" align=\"center\" bgcolor=\"#FFCC99\">
232
Aplikasi Program PHP dan MySQL <font size=\"2\">$data[nilai_akhir]</font></td> <td width=\"64\" align=\"center\" bgcolor=\"#FFCC99\"> <font size=\"2\">$total[$nomor]</font></td> <td width=\"64\" align=\"center\" bgcolor=\"#FFCC99\"> <b><font size=\"2\" color=\"#FF0000\">$n[$nomor]</font></b></td></tr>"; $nomor++; } ?> </table> </td></tr> </table> <p style="margin-top: 1px; margin-bottom: 1px"> </p> </td></tr> </table> </td></tr> <tr><td colspan="3" valign="top"> <img src="../images/img_09.gif" width="800" height="56" alt=""></td></tr> </table> </body> </html>
Keterangan:
Seperti halnya untuk menampilkan halaman laporan absensi, script untuk halaman laporan nilai siswa ini juga didominasi dengan tag-tag HTML. Namun untuk membaca data nilai dari database kelas aktif dibutuhkan kode-kode PHP. Fungsi kode PHP yang pertama adalah
233
Aplikasi Program PHP dan MySQL membaca data nilai dari database seperti pada bagian script dibawah ini: <? include"../sambung.php"; $nomor=1; $baca=mysql_query("select * from kelas_$kelas where id_siswa='$id_siswa'"); while($data=mysql_fetch_array($baca)){ $materi1=mysql_query("select nama from data_materi where id='$data[id_materi]'"); $materi2=mysql_fetch_array($materi1); Untuk koneksi dengan database tetap menggunakan file sambung.php dan perintah yang digunakan untuk membaca data dari database adalah perintah Query SQL. Yang perlu diperhatikan lagi adalah bagian script yang digunakan untuk menampilkan data nilai dalam bentuk abjad. Script ini menggunakan fungsi if yang mengambil data total nilai yaitu hasil penjumlahan dan pembagian dari nilai-nilai keseluruhan masingmasing siswa berdasarkan tiap materi yang ditempuh. Bagian script tersebut adalah: $total[$nomor]=number_format(((($data[nilai_harian]+ $data[nilai_tugas]+$data[nilai_tengah])/3)+($data[nilai_akhir]))/2,2); if($total[$nomor]<=50){ $n[$nomor]="E"; $bg_color="#FFCC99"; }elseif($total[$nomor]<=75){ $n[$nomor]="D"; }elseif($total[$nomor]<=82){ $n[$nomor]="C"; }elseif($total[$nomor]<=92){ 234
Aplikasi Program PHP dan MySQL $n[$nomor]="B"; }else{ $n[$nomor]="A"; } Bagian paling atas dari script tersebut adalah menjumlah data semua nilai siswa dan kemudian mengambil rata-rata keseluruhan dengan membagi dengan angka tertentu. Hasil dari pembagian tersebut kemudian dijadikan filter pada fungsi if untuk menterjemahkan ke dalam bentuk nilai abjad. Misalkan pada pilihan paling atas, apabila nilai rata-rata kurang dari 50, maka akan dimasukkan dalam kategori nailai E, kemudian apabila nilai rata-rata kurang dari 75 akan dimasukkan dalam kategori E dan seterusnya. Berikut adalah tampilan halaman laporan nilai siswa tersebut:
Aplikasi Program PHP dan MySQL password dikarenakan password lama telah diketahui siswa lain, maka siswa tidak perlu menghubungi administrasi untuk mengganti password. Halaman untuk mengganti password ini menampilkan sebuah formulir sederhana yang memuat beberapa obyek kotak teks. Berikut adalah script yang digunakan untuk membuat halaman ganti password: <? include"ceksession.php"; ?> <html> <head> <title>Sistem Manajemen Pendidikan online</title> <meta http-equiv="Content-Type" content="text/html; charset=iso8859-1"> </head> <center><br> <body bgcolor="#A9C5BE" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0"> <table id="Table_01" width="800" height="296" border="0" cellpadding="0" cellspacing="0"> <tr><td colspan="3" valign="top" height="108"> <img src="../images/img_1.gif" width="800" height="108" alt=""></td></tr> <tr><td colspan="3" valign="top" height="23"> <table border="0" width="100%" cellspacing="0" cellpadding="0" background="../images/img_02.gif" id="table2" height="23"> <tr><td> <p style="margin-left: 170px; margin-right: 50px" align="right"> </td></tr>
236
Aplikasi Program PHP dan MySQL </table> </td></tr> <tr><td colspan="3" valign="top" height="18"> <img src="../images/img_03.gif" width="800" height="18" alt=""></td></tr> <tr><td valign="top" height="74" width="180" bgcolor="#D5EBFB"> <img src="../images/img_04.gif" width="180" height="74" alt=""></td> <td valign="top" height="74" width="20" bgcolor="#D5EBFB"> <img src="../images/img_05.gif" width="20" height="74" alt=""></td> <td valign="top" height="74" width="600" bgcolor="#D5EBFB"> <p align="center"><b>Halaman Untuk Siswa</b></td></tr> <tr><td colspan="3" valign="top" height="19" bgcolor="#D5EBFB"> <table border="0" width="100%" cellspacing="0" cellpadding="0" background="../images/img_07.gif" id="table1"> <tr><td width="182" valign="top"> </td> <td valign="top"> <table border="1" width="98%" cellspacing="0" cellpadding="0" id="table4"> <tr><td align="center" bgcolor="#93CDF5">Ganti Password</td></tr> <form method="POST" action="ganti.php"> <tr><td width="99%"> <p style="margin-left: 5px; margin-right: 5px" align="center"> <font color="#FF0000"><?=$err?></font><br><p style="margin:2px 5px; " align="center"> 237
Aplikasi Program PHP dan MySQL <font size="2">Password Lama</font><p style="margin:2px 5px; " align="center"> <input type="password" name="password_lama" size="18" style="color: #000080; font-family: Arial; font-size: 10pt"><p style="margin:2px 5px; " align="center"> <font size="2">Password Baru</font><p style="margin:2px 5px; " align="center"> <input type="password" name="password1" size="18" style="color: #000080; font-family: Arial; font-size: 10pt"><p style="margin:2px 5px; " align="center"> <font size="2">Password Baru ( <font color="#FF0000">ulangi</font> )</font><p style="margin:2px 5px; " align="center"> <input type="password" name="password2" size="18" style="color: #000080; font-family: Arial; font-size: 10pt"><p align="center"> <input type="submit" value="G A N T I" name="ganti" style="fontfamily: Arial; color: #000080"> <input type="submit" value="B A T A L" name="batal" style="fontfamily: Arial; color: #000080"></td></tr> </form> </table> <p style="margin-top: 1px; margin-bottom: 1px"> </p></td> </tr> </table> </td></tr> <tr><td colspan="3" valign="top"> <img src="../images/img_09.gif" width="800" height="56" alt=""></td></tr> </table> 238
Keterangan:
Script di atas berfungsi untuk menampilkan formulir ganti password. Formulir untuk ganti password ini memiliki empat obyek, yaitu kotak teks untuk menuliskan password lama, kemudian kotak teks untuk menuliskan password baru, kotak teks untuk menuliskan password baru yang kedua dan sebuah tombol submit untuk mengirim data tersebut. Berikut adalah tampilan halaman untuk mengubah password siswa:
239
Aplikasi Program PHP dan MySQL formulir dalam halaman ganti password. Berikut adalah script untuk mengganti password lama dengan password baru: <? include"ceksession.php"; if(isset($ganti)){ if($password_lama!==$password){ $pesan="<br>Password lama yang Anda masukkan salah. Periksa kembali.<br>"; header("location:./ganti_password.php?err=$pesan"); }elseif($password1!==$password2){ $pesan="<br>Password baru Anda harus sama dengan password konfirmasi dibawahnya.<br>"; header("location:./ganti_password.php?err=$pesan"); }else{ include"../sambung.php"; $ganti_pass=mysql_query("UPDATE siswa set password='$password1' WHERE id='$id_siswa'"); session_unregister ("password"); $password="$password1"; session_register("password"); } }else{ header("location:./utama.php"); } ?> <html> <head>
240
Aplikasi Program PHP dan MySQL <title>Sistem Manajemen Pendidikan online</title> <meta http-equiv="Content-Type" content="text/html; charset=iso8859-1"> </head> <center><br> <body bgcolor="#A9C5BE" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0"> <table id="Table_01" width="800" height="296" border="0" cellpadding="0" cellspacing="0"> <tr><td colspan="3" valign="top" height="108"> <img src="../images/img_1.gif" width="800" height="108" alt=""></td></tr> <tr><td colspan="3" valign="top" height="23"> <table border="0" width="100%" cellspacing="0" cellpadding="0" background="../images/img_02.gif" id="table2" height="23"> <tr><td><p style="margin-left: 170px; margin-right: 50px" align="right"> </td></tr> </table> </td></tr> <tr><td colspan="3" valign="top" height="18"> <img src="../images/img_03.gif" width="800" height="18" alt=""></td></tr> <tr><td valign="top" height="74" width="180" bgcolor="#D5EBFB"> <img src="../images/img_04.gif" width="180" height="74" alt=""></td> <td valign="top" height="74" width="20" bgcolor="#D5EBFB"> <img src="../images/img_05.gif" width="20" height="74" alt=""></td>
241
Aplikasi Program PHP dan MySQL <td valign="top" height="74" width="600" bgcolor="#D5EBFB"> <p align="center"><b>Halaman Untuk Siswa</b></td></tr> <tr><td colspan="3" valign="top" height="19" bgcolor="#D5EBFB"> <table border="0" width="100%" cellspacing="0" cellpadding="0" background="../images/img_07.gif" id="table1"> <tr><td width="182" valign="top"> </td> <td valign="top"> <table border="1" width="98%" cellspacing="0" cellpadding="0" id="table4"> <tr><td align="center" bgcolor="#93CDF5">Konfirmasi Ganti Password</td></tr> <tr><td width="99%"> <p style="margin-left: 5px; margin-right: 5px" align="center"> <p style="margin-left: 5px; margin-right: 5px" align="center">Password anda telah diganti dengan :<p style="margin-left: 5px; margin-right: 5px" align="center"> <b><?=$password1?></b><p style="margin-left: 5px; margin-right: 5px" align="center">Untuk melanjutkan tekan tombol di bawah ini<form method="POST" action="utama.php"> <p style="margin-left: 5px; margin-right: 5px" align="center"> <input type="submit" value="L A N J U T" name="lanjut" style="color: #000080; font-family: Arial; font-size: 10pt"></p> </form> <p style="margin-left: 5px; margin-right: 5px" align="center"> </td></tr></table> <p style="margin-top: 1px; margin-bottom: 1px"> </p></td></tr> </table>
242
Aplikasi Program PHP dan MySQL </td></tr> <tr><td colspan="3" valign="top"> <img src="../images/img_09.gif" width="800" height="56" alt=""></td></tr> </table> </body> </html>
Keterangan:
Script di atas dibagi menjadi dua bagian utama. Yang pertama adalah script yang berfungsi untuk mengolah data password baru siswa. Berikut adalah bagian script tersebut: <? include"ceksession.php"; if(isset($ganti)){ if($password_lama!==$password){ $pesan="<br>Password lama yang Anda masukkan salah. Periksa kembali.<br>"; header("location:./ganti_password.php?err=$pesan"); }elseif($password1!==$password2){ $pesan="<br>Password baru Anda harus sama dengan password konfirmasi dibawahnya.<br>"; header("location:./ganti_password.php?err=$pesan"); }else{ include"../sambung.php"; $ganti_pass=mysql_query("UPDATE siswa set password='$password1' WHERE id='$id_siswa'"); session_unregister ("password"); $password="$password1";
243
Aplikasi Program PHP dan MySQL session_register("password"); } }else{ header("location:./utama.php"); } ?> Script tersebut diawali deangan memanggil file ceksession.php untuk memeriksa keberadaan data sesi. Kemudian memeriksa apakah password yang dimasukkan pada bagian password lama apa sama dengan data password yang disimpan pada variable sesi. Apabila password yang dimasukkan pada variable password lama tidak sama dengan data sesi password, maka akan dimasukkan keterangan bahwa data password lama tidak benar. Apabila data password lama yang dimasukkan sudah benar, maka script akan dilanjutkan memeriksa data password 1 dengan password 2. kedua data tersebut di periksa kesamaannya.. Apabila kedua syarat tersebut terpenuhi, maka script akan memasukkan data password baru untuk mengganti password lama menggunakan perintah query berikut: $ganti_pass=mysql_query("UPDATE siswa set password='$password1' WHERE id='$id'"); Data password lama akan diganti dengan data password baru setelah script diatas dijalankan. Namun pada data sesi masih memiliki data password yang lama. Hal ini akan ditolah oleh halaman-halaman yang lain apabila instruktur membuka halaman berikutnya. Maka dari itu dibuat sebuah script yang menghapus data password lama dan memasukkan data password baru ke dalam variable sesi seperti pada script di bawah ini: session_unregister ("password"); $password="$password1"; session_register("password"); Bagian yang kedua adalah tag-tag HTML yang berfungsi menampilkan halaman ganti password apabila password sudah
244
Aplikasi Program PHP dan MySQL sukses diganti. Berikut adalah tampilan halaman sukses ganti password:
245
246
Aplikasi Program PHP dan MySQL Berikut adalah script yang digunakan untuk menampilkan halaman index wali siswa: <html> <head> <title>Sistem Manajemen Pendidikan online</title> <meta http-equiv="Content-Type" content="text/html; charset=iso8859-1"> <style> <!-body { color: #000080; font-family: Arial; font-size: 10pt } A:link {COLOR: #000080; TEXT-DECORATION: none; fontsize:10pt; font-family:Arial} A:visited {COLOR: #000080; TEXT-DECORATION: none; fontfamily:Arial; font-size:10pt} A:active {COLOR: #000080; TEXT-DECORATION: none; fontfamily:Arial; font-size:10pt} A:hover {COLOR: #00FFFF; TEXT-DECORATION: none; fontfamily:Arial; font-size:10pt; font-weight:bold} .topbar A:visited {FONT-WEIGHT: normal; COLOR: white; TEXTDECORATION: none} .topbar A:hover {FONT-WEIGHT: bold; COLOR: yellow; TEXTDECORATION: none} .topbar A:link {FONT-WEIGHT: normal; COLOR: white; TEXTDECORATION: none} .menu A:visited {COLOR: #0000FF; TEXT-DECORATION: none; font-size:10pt; font-family:Arial} .menu A:hover {COLOR: #00FFFF; TEXT-DECORATION: none; font-family:Arial; font-size:10pt; font-weight:bold} .menu A:link {COLOR: #0000FF; TEXT-DECORATION: none; fontfamily:Arial; font-size:10pt} 247
Aplikasi Program PHP dan MySQL --> </style> </head><center><br> <body bgcolor="#A9C5BE" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0"> <table id="Table_01" width="800" height="296" border="0" cellpadding="0" cellspacing="0"> <tr><td colspan="3" valign="top" height="108"> <img src="../images/img_1.gif" width="800" height="108" alt=""></td></tr> <tr><td colspan="3" valign="top" height="23"> <table border="0" width="100%" cellspacing="0" cellpadding="0" background="../images/img_02.gif" id="table2" height="23"> <tr><td><p style="margin-left: 170px; margin-right: 50px" align="right"><span class=menu><font size="2"><a href="../index.php">HOME</a> | <a href="../siswa/index.php">LOGIN SISWA</a> | <a href="../walisiswa/index.php">WALI SISWA </a>| <a href="../pengajar/index.php">INSTRUKTUR </a>| <a href="../administrator/index.php">ADMINISTRASI </a> </font> </span></td></tr></table> </td></tr> <tr><td colspan="3" valign="top" height="18"> <img src="../images/img_03.gif" width="800" height="18" alt=""></td></tr> <tr><td valign="top" height="74" width="180" bgcolor="#D5EBFB"> <img src="../images/img_04.gif" width="180" height="74" alt=""></td> 248
Aplikasi Program PHP dan MySQL <td valign="top" height="74" width="20" bgcolor="#D5EBFB"> <img src="../images/img_05.gif" width="20" height="74" alt=""></td> <td valign="top" height="74" width="600" bgcolor="#D5EBFB"> <p align="center"><b>Halaman Untuk Wali Siswa</b></td></tr> <tr><td colspan="3" valign="top" height="19" bgcolor="#D5EBFB"> <table border="0" width="100%" cellspacing="0" cellpadding="0" background="../images/img_07.gif" id="table1"> <tr><td width="182" valign="top"> </td> <td valign="top"> <table border="1" width="98%" cellspacing="0" cellpadding="0" id="table4"> <tr><td align="center" bgcolor="#93CDF5">Login Wali Siswa</td></tr> <form method="POST" action="login.php"> <tr><td width="99%"> <? if($error){ echo"<p align=\"center\"><font color=\"#FF0000\">Password yang Anda masukkan salah.<br> Silakan ulangi lagi.</font></p>";} ?> <p style="margin-left: 5px; margin-right: 5px" align="center"> <p style="margin:2px 5px; " align="center"> <font size="2">Nama Siswa</font><p style="margin:2px 5px; " align="center"> <select size="1" name="id_siswa" style="color: #000080; fontfamily: Arial; font-size: 10pt">
249
Aplikasi Program PHP dan MySQL <option selected value="-">Pilih Nama Siswa</option> <? include"../sambung.php"; $baca=mysql_query("select * from wali_siswa order by nama_siswa"); while($data=mysql_fetch_array($baca)){ echo"<option value=\"$data[id_siswa]\">$data[nama_siswa]</option>"; } ?> </select><p style="margin:2px 5px; " align="center"> <font size="2">Password</font><p style="margin:2px 5px; " align="center"> <input type="password" name="password" size="18" style="color: #000080; font-family: Arial; font-size: 10pt"><p align="center"> <input type="submit" value=" LOGIN " name="login" style="fontfamily: Arial; color: #000080"></td></tr> </form> </table> <p style="margin-top: 1px; margin-bottom: 1px"> </p></td> </tr></table> </td></tr> <tr><td colspan="3" valign="top"> <img src="../images/img_09.gif" width="800" height="56" alt=""></td></tr> </table> </body>
250
Keterangan:
Dalam script di atas lebih banyak memuat tag-tag HTML, namun yang perlu anda perhatikan adalah tag dan kode PHP yang digunakan untuk membentuk sebuah formulir. Formulir untuk login ini bukan sebuah formulir kosong, namun formulir yang beberapa obyeknya sudah memiliki nilai atau value. Setiap tag yang membentuk formulir akan diawali dengan tag <form> yang memiliki beberapa nilai. Berikut adalah tag yang digunakan untuk membuat formulir tersebut: <form method="POST" action="login.php"> Artinya apabila formulir tersebut dijalankan dan tombol login ditekan, maka data yang ada pada obyek / variabel akan dikirim ke file login.php, sebagai script pengolah data. Script berikutnya dilanjutkan dengan obyek formulir dropdown dengan nilai atau value hasil pembacaan nama siswa dari database wali siswa. Berikut adalah script untuk membentuk dropdown tersebut: <select size="1" name="id_siswa" style="color: #000080; font-family: Arial; font-size: 10pt"> <option selected value="-">Pilih Nama Siswa</option> <? include"../sambung.php"; $baca=mysql_query("select * from wali_siswa order by nama_siswa"); while($data=mysql_fetch_array($baca)){ echo"<option value=\"$data[id_siswa]\">$data[nama_siswa]</option>"; } ?> </select> Nama dari dropdown tersebut adalah id_siswa dengan hasil pembacaan data wali_siswa menggunakan kode-kode PHP dan
251
Aplikasi Program PHP dan MySQL perintah query. Data kemudian ditampilkan sebagai pilihan nama siswa menggunakan fungsi echo. Obyek dropdown ditutup dengan tag </select>. Script berikutnya dilanjutkan dengan menampilkan obyek kotak teks untuk userid2 dan password. Seperti dibawah ini: <input type="password" name="password" size="18" style="color: #000080; font-family: Arial; font-size: 10pt"><p align="center"> <input type="submit" value=" LOGIN " name="login" style="fontfamily: Arial; color: #000080"></td></tr> </form> Berikut adalah tampilan halaman login untuk siswa:
Aplikasi Program PHP dan MySQL tersebut cocok maka script akan mengarahkan wali siswa yang sedang login ke halaman utama untuk wali siswa. Apabila kedua data tersebut tidak sama, maka wali siswa akan diarahkan ke halaman login kembali untuk melakukan login ulang. Berikut adalah script pengolah data login tersebut: <? session_start(); include"../sambung.php"; $data=mysql_query("select * from wali_siswa where id_siswa='$id_siswa'"); $user=mysql_fetch_array($data); $pengajar="$user[nama]"; if($id=="-"){ header("Location:./index.php?error=1"); }else{ if($password=="$user[password]"){ session_register("id_siswa"); session_register("password"); session_register("nama"); header("Location:./utama.php"); }else{ header("Location:./index.php?error=2"); }} ?>
Keterangan:
Script di atas di awali dengan fungsi untuk mendeklarasikan adanya data sesi, yaitu session_start(); Berikutnya script akan membaca data yang ada pada tabel wali_siswa menggunakan perintah query. Hasil
253
Aplikasi Program PHP dan MySQL pembacaan data tersebut dimasukkan ke dalam variabel-variabel dan dicocokkan dengan data yang telah dikirim dari formulir login. Apabila data tersebut tidak sesuai maka wali siswa akan diarahkan ke halaman login kembali menggunakan fungsi header seperti bagian script berikut: header("Location:./index.php?error=2");. Apabila hasil dari pemeriksaan data tersebut sesuai, maka wali siswa akan diarahkan ke halaman berikutnya yaitu halaman utama wali siswa seperti pada bagian script di bawah ini: if($password=="$user[password]"){ session_register("id_siswa"); session_register("password"); session_register("nama"); header("Location:./utama.php"); }
Aplikasi Program PHP dan MySQL $start=date("j n Y",$d[masuk]); $mulai=explode(" ",$start); $bln=array('Januari','Pebruari','Maret','April','Mei','Juni','Juli', 'Agustus','September','Oktober','Nopember','Desember'); $msk=$mulai[1]; $bulan=$waktu[1]; $kls=mysql_query("select nama from kelas where id='$d[kelas]'"); $kls2=mysql_fetch_array($kls); ?> <html> <head> <title>Sistem Manajemen Pendidikan online</title> <meta http-equiv="Content-Type" content="text/html; charset=iso8859-1"> </head> <center><br> <body bgcolor="#A9C5BE" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0"> <table id="Table_01" width="800" height="296" border="0" cellpadding="0" cellspacing="0"> <tr><td colspan="3" valign="top" height="108"> <img src="../images/img_1.gif" width="800" height="108" alt=""></td></tr> <tr><td colspan="3" valign="top" height="23"> <table border="0" width="100%" cellspacing="0" cellpadding="0" background="../images/img_02.gif" id="table2" height="23"> <tr><td><p style="margin-left: 170px; margin-right: 50px" align="right"> </td></tr>
255
Aplikasi Program PHP dan MySQL </table> </td></tr> <tr><td colspan="3" valign="top" height="18"> <img src="../images/img_03.gif" width="800" height="18" alt=""></td></tr> <tr><td valign="top" height="74" width="180" bgcolor="#D5EBFB"> <img src="../images/img_04.gif" width="180" height="74" alt=""></td> <td valign="top" height="74" width="20" bgcolor="#D5EBFB"> <img src="../images/img_05.gif" width="20" height="74" alt=""></td> <td valign="top" height="74" width="600" bgcolor="#D5EBFB"> <p align="center"><b>Halaman Untuk Siswa</b></td></tr> <tr><td colspan="3" valign="top" height="19" bgcolor="#D5EBFB"> <table border="0" width="100%" cellspacing="0" cellpadding="0" background="../images/img_07.gif" id="table1"> <tr><td width="182" valign="top"> <p style="margin-left: 5px; margin-right: 15px; margin-top: 2px; margin-bottom: 2px">Informasi<p style="margin-left: 5px; marginright: 15px; margin-top: 2px; margin-bottom: 2px"> <a href="data_absensi.php">Lihat Absensi</a><p style="marginleft: 5px; margin-right: 15px; margin-top: 2px; margin-bottom: 2px"> <a href="data_nilai.php">Lihat Nilai</a><p style="margin-left: 5px; margin-right: 15px; margin-top: 2px; margin-bottom: 2px"> <p style="margin-left: 5px; margin-right: 15px; margin-top: 2px; margin-bottom: 2px"> <p style="marginleft: 5px; margin-right: 15px; margin-top: 2px; margin-bottom: 2px"> 256
Aplikasi Program PHP dan MySQL <p style="margin-left: 5px; margin-right: 15px; margin-top: 2px; margin-bottom: 2px">Pengaturan</p> <p style="margin-left: 5px; margin-right: 15px; margin-top: 2px; margin-bottom: 2px"> <font size="2"><a href="ganti_password.php">Ganti Password</a><br> <a href="../keluar.php">Keluar</a></font></p> </td> <td valign="top"> <table border="1" width="98%" cellspacing="0" cellpadding="0" id="table4"> <tr><td width="99%" colspan="2" align="center" bgcolor="#93CDF5">Biodata Siswa</td></tr> <tr><td width="25%"> <p style="margin-left: 5px; margin-right: 5px"> <font size="2">Nama</font></td> <td width="74%"> <p style="margin: 0px 5px"><font size="2"> <?=$d[nama]?> </font></td></tr> <tr><td width="25%"> <p style="margin-left: 5px; margin-right: 5px"> <font size="2">Jenis Kelamin</font></td> <td width="74%"> <p style="margin: 0px 5px"><font size="2"> <?=$d[sex]?> </font></td> </tr> <tr>
257
Aplikasi Program PHP dan MySQL <td width="25%"> <p style="margin-left: 5px; margin-right: 5px"> <font size="2">Alamat</font></td> <td width="74%"><p style="margin: 0px 5px"><font size="2"> <?=$d[alamat]?> </font></td></tr> <tr><td width="25%"> <p style="margin-left: 5px; margin-right: 5px"> <font size="2">Tempat tanggal lahir</font></td> <td width="74%"><p style="margin: 0px 5px"><font size="2"> <?=$d[tempat_lahir]?>, <?echo"$waktu[0] $bln[$bulan] $waktu[2]"?> </font></td> </tr> <tr><td width="25%"> <p style="margin-left: 5px; margin-right: 5px"> <font size="2">Agama</font></td> <td width="74%"> <p style="margin: 0px 5px"><font size="2"> <?=$d[agama]?> </font></td></tr> <tr><td width="25%"> <p style="margin-left: 5px; margin-right: 5px"> <font size="2">Nomor telepon / hp</font></td> <td width="74%"><p style="margin: 0px 5px"><font size="2"> <?=$d[telepon]?> </font></td></tr> <tr><td width="25%"> <p style="margin-left: 5px; margin-right: 5px">
258
Aplikasi Program PHP dan MySQL <font size="2">Pendidikan terakhir</font></td> <td width="74%"> <p style="margin: 0px 5px"><font size="2"> <?=$d[pendidikan]?> </font></td></tr> <tr><td width="25%"> <p style="margin-left: 5px; margin-right: 5px"> <font size="2">Sekolah asal</font></td> <td width="74%"> <p style="margin: 0px 5px"><font size="2"> <?=$d[asal_sekolah]?> </font></td></tr> <tr><td width="25%"> <p style="margin-left: 5px; margin-right: 5px"> <font size="2">Nama orang tua</font></td> <td width="74%"><p style="margin: 0px 5px"><font size="2"> <?=$d[orang_tua]?> </font></td></tr> <tr><td width="25%"> <p style="margin-left: 5px; margin-right: 5px"> <font size="2">Pekerjaan Orang tua</font></td> <td width="74%"> <p style="margin: 0px 5px"><font size="2"> <?=$d[pekerjaan]?> </font></td></tr> <tr><td width="25%"><p style="margin-left: 5px; margin-right: 5px"> <font size="2">Mulai masuk</font></td> <td width="74%"><p style="margin: 0px 5px"><font size="2"> <?echo"$mulai[0] $bln[$msk] $mulai[2]"?> </font></td></tr>
259
Aplikasi Program PHP dan MySQL <tr><td width="25%"> <p style="margin-left: 5px; margin-right: 5px"> <font size="2">Kelas</font></td> <td width="74%"><p style="margin: 0px 5px"><font size="2"> <?=$kls2[nama]?> </font></td></tr> <tr><td width="25%"> </td> <td width="74%"> </td></tr> <tr><td width="25%"> <p style="margin-left: 5px; margin-right: 5px"> <font size="2">User ID</font></td> <td width="74%"><p style="margin: 0px 5px"><font size="2"> <?=$d[userid]?> </font></td></tr> <tr><td width="25%"><p style="margin-left: 5px; margin-right: 5px"><font size="2">Password</font></td> <td width="74%"><p style="margin: 0px 5px"><font size="2"> <?=$d[password]?> </font></td></tr> <tr><td width="25%"> </td> <td width="74%"> </td></tr></table> <p style="margin-top: 1px; margin-bottom: 1px"> </p></td> </tr></table> </td></tr> <tr><td colspan="3" valign="top"> <img src="../images/img_09.gif" width="800" height="56" alt=""></td></tr></table> </body> </html>
260
Keterangan:
Script untuk halaman utama wali siswa ini diawali dengan memanggil file ceksession.php untuk memeriksa keberadan data sesi, kemudinan memanggil file sambung.php untuk melakukan koneksi dengan database menggunakan fungsi include(). Setelah data sesi diperiksa dan sudah melakukan koneksi dengan database, maka script akan membaca data siswa berdasarkan userid wali siswa yang sedang login menggunakan perintah query SQL. Data hasil pembacaan data dari database wali siswa ini, kemudian disimpan kedalam variabel-variabel dengan nama variabel sesuai data yang ada didalamnya. Perintah query tersebut adalah: $data1=mysql_query("select * from siswa where id='$id_siswa'"); $d=mysql_fetch_array($data1); Khusus untuk data tanggal lahir dan data tanggal mulai masuk sebagai siswa perlu dikonversikan ke dalam format tanggal/bulan/tahun menggukan fungsi date(). Hal ini dilakukan karena data tersebut dalam database masih menggunakan format microtime. Berikut adalah bagian script yang mengubah data micro menjadi format tanggal normal: $lahir=date("j n Y",$d[tgl_lahir]); $waktu=explode(" ",$lahir); $start=date("j n Y",$d[masuk]); $mulai=explode(" ",$start); Misalkan hasil dari pembacaan data tanggal lahir pada salah satu siswa pada database disimpan ke dalam variabel $d[tgl_lahir] maka script untuk mengkonversikan data tersebut ke dalam format tanggal menjadi $lahir=date("j n Y",$d[tgl_lahir]);. Hasil dari konversi tanggal tersebut masih dalam bentuk tanggal standart yaitu dd/mm/yyy, kemudian kalau ingin mengubah sebuah data bulan menjadi format penulisan nama bulan dalam bahasa Indonesia, Anda harus menggunakan script yang berfungsi mengubahdata bulan dalam bentuk angka menjadi data bulan dalam bentuk nama lengkap. Hal ini dapat dilakukan menggunakan bagian script berikut:
261
Aplikasi Program PHP dan MySQL $bln=array('Januari','Pebruari','Maret','April','Mei','Juni','Juli', 'Agustus','September','Oktober','Nopember','Desember'); $msk=$mulai[1]; $bulan=$waktu[1]; Data kelas yang ada pada tabel siswa tersebut masih berupa id dari nama kelas yang ada pada tabel kelas. Oleh karena itu untuk menampilkan nama kelas pada halaman ini, script akan membaca data nama kelas yang ada pada tabel kelas bedasarkan id kelas yang telah dibaca dari tabel siswa. Berikut adalah bagian script tersebut: $kls=mysql_query("select nama from kelas where id='$d[kelas]'"); $kls2=mysql_fetch_array($kls); Bagian script di atas yang terakhir adalah menampilkan data hasil pembacaan data siswa dari database. Data siswa tersebut ditampilkan dengan menggunakan tag-tag HTML dengan menyisipkan variabelvariabel PHP yang mempunyai nilai data-data siswa tersebut. Berikut adalah tampilan halaman utama wali siswa:
262
Halaman-halaman yang diakses oleh wali siswa memang hampir sama dengan halaman yang diakses oleh siswa. Karena data yang dibaca oleh script PHP memang sama, yaitu membaca data siswa tertentu berdasarkan id siswa.
263
Aplikasi Program PHP dan MySQL pada masing-masing pertemuan dalam masing-masing materi yang ada pada tabel tersebut. Berikut adalah script yang digunakan untuk menampilkan halaman laporan absensi tersebut: <? include"ceksession.php"; ?> <html> <head> <title>Sistem Manajemen Pendidikan online</title> <meta http-equiv="Content-Type" content="text/html; charset=iso8859-1"> <style> <!-body { color: #000080; font-family: Arial; font-size: 10pt }
A:link {COLOR: #000080; TEXT-DECORATION: none; fontsize:10pt; font-family:Arial } A:visited {COLOR: #000080; TEXT-DECORATION: none; fontfamily:Arial; font-size:10pt } A:active {COLOR: #000080; TEXT-DECORATION: none; fontfamily:Arial; font-size:10pt } A:hover {COLOR: #00FFFF; TEXT-DECORATION: none; fontfamily:Arial; font-size:10pt; font-weight:bold } .topbar A:visited {FONT-WEIGHT: normal; COLOR: white; TEXT-
264
Aplikasi Program PHP dan MySQL DECORATION: none } .topbar A:hover {FONT-WEIGHT: bold; COLOR: yellow; TEXTDECORATION: none } .topbar A:link {FONT-WEIGHT: normal; COLOR: white; TEXTDECORATION: none } .menu A:visited {COLOR: #0000FF; TEXT-DECORATION: none; font-size:10pt; font-family:Arial } .menu A:hover {COLOR: #00FFFF; TEXT-DECORATION: none; font-family:Arial; font-size:10pt; font-weight:bold } .menu A:link {COLOR: #0000FF; TEXT-DECORATION: none; fontfamily:Arial; font-size:10pt } --> </style></head> <center><br> <body bgcolor="#A9C5BE" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0"> <table id="Table_01" width="800" height="296" border="0" cellpadding="0" cellspacing="0"> <tr><td colspan="3" valign="top" height="108"> <img src="../images/img_1.gif" width="800" height="108" alt=""></td></tr> <tr><td colspan="3" valign="top" height="23"> <table border="0" width="100%" cellspacing="0" cellpadding="0" 265
Aplikasi Program PHP dan MySQL background="../images/img_02.gif" id="table2" height="23"> <tr><td><p style="margin-left: 170px; margin-right: 50px" align="right"> </td></tr> </table> </td></tr> <tr><td colspan="3" valign="top" height="18"> <img src="../images/img_03.gif" width="800" height="18" alt=""></td></tr> <tr><td valign="top" height="74" width="180" bgcolor="#D5EBFB"><img src="../images/img_04.gif" width="180" height="74" alt=""></td> <td valign="top" height="74" width="20" bgcolor="#D5EBFB"> <img src="../images/img_05.gif" width="20" height="74" alt=""></td> <td valign="top" height="74" width="600" bgcolor="#D5EBFB"> <p align="center"><b>Halaman Untuk Wali Siswa</b></td></tr> <tr><td colspan="3" valign="top" height="19" bgcolor="#D5EBFB"> <table border="0" width="100%" cellspacing="0" cellpadding="0" background="../images/img_07.gif" id="table1"> <tr><td width="182" valign="top"><p style="margin-left: 5px; margin-right: 15px; margin-top: 2px; margin-bottom: 2px"> <font size="2"><a href="utama.php">Halaman Utama</a></font></p><p style="margin-left: 5px; margin-right: 15px; margin-top: 2px; margin-bottom: 2px"><font size="2"> <a href="data_nilai.php">Lihat Nilai</a></font></p> <p style="margin-left: 5px; margin-right: 15px; margin-top: 2px; margin-bottom: 2px"> </p> <p style="margin-left: 5px; margin-right: 15px; margin-top: 2px; margin-bottom: 2px">Pengaturan</p>
266
Aplikasi Program PHP dan MySQL <p style="margin-left: 5px; margin-right: 15px; margin-top: 2px; margin-bottom: 2px"><font size="2"><a href="ganti_password.php">Ganti Password</a></font></p> <p style="margin-left: 5px; margin-right: 15px; margin-top: 2px; margin-bottom: 2px"> <font size="2"><a href="../keluar.php">Keluar</a></font></p> <p style="margin-left: 5px; margin-right: 15px; margin-top: 2px; margin-bottom: 2px"> </td> <td valign="top"> <table border="1" width="99%" cellspacing="0" cellpadding="0" id="table4"> <tr><td align="center" bgcolor="#93CDF5">Data Absensi <?=$nama?></td></tr> <tr><td width="99%"> <table border="0" width="100%" cellspacing="0" cellpadding="0" id="table6"> <tr><td width="341" valign="top"> <p align="center"><font size="2">Keterangan kehadiran siswa</font></td> <td valign="top" align="center" bgcolor="#008000"><p align="center"> <font size="2" color="#00FFFF"><b>hadir</b></font></td> <td valign="top" align="center" bgcolor="#FF0000" width="131"> <font size="2" color="#00FFFF"><b>tidak hadir</b></font></td></tr></table> <table border="1" width="608" id="table5" cellspacing="0"> <tr><td bgcolor="#93CDF5" width="34" align="center" rowspan="2"><font size="2">No.</font></td> <td bgcolor="#93CDF5" align="center" width="218" rowspan="2">
267
Aplikasi Program PHP dan MySQL <font size="2">Nama Materi</font></td> <td bgcolor="#93CDF5" align="center" width="335" colspan="18"> <font size="2">Session</font></td></tr> <tr><td bgcolor="#93CDF5" align="center" width="19"> <font size="2">1</font></td> <td bgcolor="#93CDF5" align="center" width="19"> <font size="2">2</font></td> <td bgcolor="#93CDF5" align="center" width="19"> <font size="2">3</font></td> <td bgcolor="#93CDF5" align="center" width="19"> <font size="2">4</font></td> <td bgcolor="#93CDF5" align="center" width="19"> <font size="2">5</font></td> <td bgcolor="#93CDF5" align="center" width="19"> <font size="2">6</font></td> <td bgcolor="#93CDF5" align="center" width="19"> <font size="2">7</font></td> <td bgcolor="#93CDF5" align="center" width="19"> <font size="2">8</font></td> <td bgcolor="#93CDF5" align="center" width="19"> <font size="2">9</font></td> <td bgcolor="#93CDF5" align="center" width="19"> <font size="2">10</font></td> <td bgcolor="#93CDF5" align="center" width="19"> <font size="2">11</font></td>
268
Aplikasi Program PHP dan MySQL <td bgcolor="#93CDF5" align="center" width="19"> <font size="2">12</font></td> <td bgcolor="#93CDF5" align="center" width="19"> <font size="2">13</font></td> <td bgcolor="#93CDF5" align="center" width="19"> <font size="2">14</font></td> <td bgcolor="#93CDF5" align="center" width="20"> <font size="2">15</font></td> <td bgcolor="#93CDF5" align="center" width="20"> <font size="2">16</font></td> <td bgcolor="#93CDF5" align="center" width="20"> <font size="2">17</font></td> <td bgcolor="#93CDF5" align="center" width="20"> <font size="2">18</font></td></tr> <? include"../sambung.php"; $nomor=1; $baca=mysql_query("select * from kelas_$kelas where id_siswa='$id_siswa'"); while($data=mysql_fetch_array($baca)){ $materi1=mysql_query("select nama from data_materi where id='$data[id_materi]'"); $materi2=mysql_fetch_array($materi1); echo"<tr><td width=\"34\"><font size=\"2\"><center>$nomor</center></font></td> <td width=\"218\"><font size=\"2\">$materi2[nama]</font></td>
269
Aplikasi Program PHP dan MySQL <td width=\"19\" bgcolor=\"$data[absen_1]\"> </td> <td width=\"19\" bgcolor=\"$data[absen_2]\"> </td> <td width=\"19\" bgcolor=\"$data[absen_3]\"> </td> <td width=\"19\" bgcolor=\"$data[absen_4]\"> </td> <td width=\"19\" bgcolor=\"$data[absen_5]\"> </td> <td width=\"19\" bgcolor=\"$data[absen_6]\"> </td> <td width=\"19\" bgcolor=\"$data[absen_7]\"> </td> <td width=\"19\" bgcolor=\"$data[absen_8]\"> </td> <td width=\"19\" bgcolor=\"$data[absen_9]\"> </td> <td width=\"19\" bgcolor=\"$data[absen_10]\"> </td> <td width=\"19\" bgcolor=\"$data[absen_11]\"> </td> <td width=\"19\" bgcolor=\"$data[absen_12]\"> </td> <td width=\"19\" bgcolor=\"$data[absen_13]\"> </td> <td width=\"19\" bgcolor=\"$data[absen_14]\"> </td> <td width=\"20\" bgcolor=\"$data[absen_15]\"> </td> <td width=\"20\" bgcolor=\"$data[absen_16]\"> </td> <td width=\"20\" bgcolor=\"$data[absen_17]\"> </td> <td width=\"20\" bgcolor=\"$data[absen_18]\"> </td> </tr>"; $nomor++; } ?> </table> </td></tr> </table>
270
Aplikasi Program PHP dan MySQL <p style="margin-top: 1px; margin-bottom: 1px"> </p> </td></tr> </table> </td></tr> <tr><td colspan="3" valign="top"> <img src="../images/img_09.gif" width="800" height="56" alt=""></td></tr> </table> </body> </html>
Keterangan:
Script halaman laporan absensi siswa ini didominasi oleh tag-tag HTML untuk menampilkan halaman pada browser, namun yang perlu anda perhatikan adalah bagian kode PHP yang berfungsi untuk membaca data absensi pada database kelas aktif dan beberapa kode PHP dalam bentuk variabel yang disisipkan pada tag HTML untuk menampilkan data absensi siswa tesebut. Bagian kode PHP yang digunakan untuk membaca data tersebut adalah: <? include"../sambung.php"; $nomor=1; $baca=mysql_query("select * from kelas_$kelas where id_siswa='$id_siswa'"); while($data=mysql_fetch_array($baca)){ $materi1=mysql_query("select nama from data_materi where id='$data[id_materi]'"); $materi2=mysql_fetch_array($materi1); Sebelum membaca data dari database kelas aktif, script memanggil file sambung.php untuk melakukan koneksi terlebih dahulu. Kemudian data dibaca menggunakan perintah query SQL.
271
Aplikasi Program PHP dan MySQL Setelah data dibaca oleh kode PHP kemudian ditampilkan dengan cara menyisipkan variabel PHP ke dalam tag-tag HTML seperti dibawah ini: <td width=\"218\"><font size=\"2\">$materi2[nama]</font></td> <td width=\"19\" bgcolor=\"$data[absen_1]\"> </td> Pada baris yang pertama tag HTML tersebut digunakan untuk menampilkan bagian nama materi dengan cara menyisipkan variabel $mater2[nama] yang memiliki nilai nama materi, kemudian pada baris kedua digunakan untuk menampilkan data session / pertemuan ke satu dan memberikan warna background dengan cara menyisipkan nilai warna hasil dari pembacaan database yang sudah dimasukkan ke dalam variabel $data[absent_1]. Berikut adalah tampilan halaman laporan absensi siswa:
272
Aplikasi Program PHP dan MySQL oleh anaknya. Wali siswa hanya dapat melihat data nilai saja, tanpa dapat mengganti datanya. Data nilai ditampilkan dalam sebuah tabel dengan memuat beberapa materi yang ditempuh dan juga data nilai pelajaran. Data nilai tiap-tiap materi memiliki beberapa bagian nilai, yaitu nilai harian, nilai tugas, nilai tengah semester, nilai akhir semester nilai total dan nilai dalam bentuk abjad. Berikut adalah script yang digunakan untuk menampilkan halaman laporan nilai tersebut: <? include"ceksession.php"; ?> <html> <head> <title>Sistem Manajemen Pendidikan online</title> <meta http-equiv="Content-Type" content="text/html; charset=iso8859-1"> <style> <!-body{ color: #000080; font-family: Arial; font-size: 10pt } A:link {COLOR: #000080; TEXT-DECORATION: none; fontsize:10pt; font-family:Arial } A:visited {COLOR: #000080; TEXT-DECORATION: none; fontfamily:Arial; font-size:10pt } A:active {COLOR: #000080; TEXT-DECORATION: none; fontfamily:Arial; font-size:10pt } A:hover {COLOR: #00FFFF; TEXT-DECORATION: none; font-
273
Aplikasi Program PHP dan MySQL family:Arial; font-size:10pt; font-weight:bold } .topbar A:visited {FONT-WEIGHT: normal; COLOR: white; TEXTDECORATION: none } .topbar A:hover {FONT-WEIGHT: bold; COLOR: yellow; TEXTDECORATION: none } .topbar A:link {FONT-WEIGHT: normal; COLOR: white; TEXTDECORATION: none } .menu A:visited {COLOR: #0000FF; TEXT-DECORATION: none; font-size:10pt; font-family:Arial } .menu A:hover {COLOR: #00FFFF; TEXT-DECORATION: none; font-family:Arial; font-size:10pt; font-weight:bold } .menu A:link {COLOR: #0000FF; TEXT-DECORATION: none; fontfamily:Arial; font-size:10pt } --> </style> </head><center><br> <body bgcolor="#A9C5BE" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0"> <table id="Table_01" width="800" height="296" border="0" cellpadding="0" cellspacing="0"> <tr><td colspan="3" valign="top" height="108"> <img src="../images/img_1.gif" width="800" height="108" 274
Aplikasi Program PHP dan MySQL alt=""></td></tr> <tr><td colspan="3" valign="top" height="23"> <table border="0" width="100%" cellspacing="0" cellpadding="0" background="../images/img_02.gif" id="table2" height="23"> <tr><td> <p style="margin-left: 170px; margin-right: 50px" align="right"> </td> </tr></table> </td></tr> <tr><td colspan="3" valign="top" height="18"> <img src="../images/img_03.gif" width="800" height="18" alt=""></td></tr> <tr><td valign="top" height="74" width="180" bgcolor="#D5EBFB"> <img src="../images/img_04.gif" width="180" height="74" alt=""></td> <td valign="top" height="74" width="20" bgcolor="#D5EBFB"> <img src="../images/img_05.gif" width="20" height="74" alt=""></td> <td valign="top" height="74" width="600" bgcolor="#D5EBFB"> <p align="center"><b>Halaman Untuk Wali Siswa</b></td></tr> <tr><td colspan="3" valign="top" height="19" bgcolor="#D5EBFB"> <table border="0" width="100%" cellspacing="0" cellpadding="0" background="../images/img_07.gif" id="table1"> <tr><td width="182" valign="top"> <p style="margin-left: 5px; margin-right: 15px; margin-top: 2px; margin-bottom: 2px"> <font size="2"><a href="utama.php">Halaman
275
Aplikasi Program PHP dan MySQL Utama</a></font></p> <p style="margin-left: 5px; margin-right: 15px; margin-top: 2px; margin-bottom: 2px"> <font size="2"><a href="data_absensi.php">Absensi</a></font></p> <p style="margin-left: 5px; margin-right: 15px; margin-top: 2px; margin-bottom: 2px"> </p> <p style="margin-left: 5px; margin-right: 15px; margin-top: 2px; margin-bottom: 2px"> </p> <p style="margin-left: 5px; margin-right: 15px; margin-top: 2px; margin-bottom: 2px"> Pengaturan</p> <p style="margin-left: 5px; margin-right: 15px; margin-top: 2px; margin-bottom: 2px"> <font size="2"><a href="ganti_password.php">Ganti Password</a></font></p> <p style="margin-left: 5px; margin-right: 15px; margin-top: 2px; margin-bottom: 2px"> <font size="2"><a href="../keluar.php">Keluar</a></font></p> <p style="margin-left: 5px; margin-right: 15px; margin-top: 2px; margin-bottom: 2px"> </td> <td valign="top"> <table border="1" width="98%" cellspacing="0" cellpadding="0" id="table4"> <tr><td align="center" bgcolor="#93CDF5">Data Nilai <?=$nama?></td> </tr> <tr><td width="99%">
276
Aplikasi Program PHP dan MySQL <table border="1" width="602" id="table5" cellspacing="0"> <tr><td bgcolor="#93CDF5" width="37" align="center" rowspan="2"> <font size="2">No.</font></td> <td bgcolor="#93CDF5" align="center" width="173" rowspan="2"> <font size="2">Nama</font></td> <td bgcolor="#93CDF5" align="center" width="383" colspan="6"> <font size="2">Nilai</font></td></tr> <tr><td bgcolor="#93CDF5" width="63"> <p align="center"><font size="2">Harian</font></td> <td bgcolor="#93CDF5" width="63"> <p align="center"><font size="2">Tugas</font></td> <td bgcolor="#93CDF5" width="64"> <p align="center"><font size="2">Tengah sms</font></td> <td bgcolor="#93CDF5" width="64"> <p align="center"><font size="2">Akhir sms</font></td> <td bgcolor="#93CDF5" width="64"> <p align="center"><font size="2">Total</font></td> <td bgcolor="#93CDF5" width="64"> <p align="center"><font size="2">Nilai Huruf</font></td></tr> <? include"../sambung.php"; $nomor=1; $baca=mysql_query("select * from kelas_$kelas where id_siswa='$id_siswa'"); while($data=mysql_fetch_array($baca)){
277
Aplikasi Program PHP dan MySQL $materi1=mysql_query("select nama from data_materi where id='$data[id_materi]'"); $materi2=mysql_fetch_array($materi1); $total[$nomor]=number_format(((($data[nilai_harian]+ $data[nilai_tugas]+$data[nilai_tengah])/3)+($data[nilai_akhir]))/2,2); if($total[$nomor]<=50){ $n[$nomor]="E"; $bg_color="#FFCC99"; }elseif($total[$nomor]<=75){ $n[$nomor]="D"; }elseif($total[$nomor]<=82){ $n[$nomor]="C"; }elseif($total[$nomor]<=92){ $n[$nomor]="B"; }else{ $n[$nomor]="A"; } echo"<tr> <td width=\"37\" bgcolor=\"#FFCC99\"><font size=\"2\"><center>$nomor.</center></font></td> <td width=\"173\" bgcolor=\"#FFCC99\"><font size=\"2\">$materi2[nama]</font></td> <td width=\"63\" align=\"center\" bgcolor=\"#FFCC99\"> <font size=\"2\">$data[nilai_harian]</font></td> <td width=\"63\" align=\"center\" bgcolor=\"#FFCC99\"> <font size=\"2\">$data[nilai_tugas]</font></td> <td width=\"64\" align=\"center\" bgcolor=\"#FFCC99\">
278
Aplikasi Program PHP dan MySQL <font size=\"2\">$data[nilai_tengah]</font></td> <td width=\"64\" align=\"center\" bgcolor=\"#FFCC99\"> <font size=\"2\">$data[nilai_akhir]</font></td> <td width=\"64\" align=\"center\" bgcolor=\"#FFCC99\"> <font size=\"2\">$total[$nomor]</font></td> <td width=\"64\" align=\"center\" bgcolor=\"#FFCC99\"> <b><font size=\"2\" color=\"#FF0000\">$n[$nomor]</font></b></td></tr>"; $nomor++; } ?> </table> </td></tr> </table> <p style="margin-top: 1px; margin-bottom: 1px"> </p> </td></tr> </table> </td></tr> <tr><td colspan="3" valign="top"> <img src="../images/img_09.gif" width="800" height="56" alt=""></td></tr> </table> </body> </html>
Keterangan:
Seperti halnya untuk menampilkan halaman laporan absensi, script untuk halaman laporan nilai siswa ini juga didominasi dengan tag-tag 279
Aplikasi Program PHP dan MySQL HTML. Namun untuk membaca data nilai dari database kelas aktif dibutuhkan kode-kode PHP. Fungsi kode PHP yang pertama adalah membaca data nilai dari database seperti pada bagian script dibawah ini: <? include"../sambung.php"; $nomor=1; $baca=mysql_query("select * from kelas_$kelas where id_siswa='$id_siswa'"); while($data=mysql_fetch_array($baca)){ $materi1=mysql_query("select nama from data_materi where id='$data[id_materi]'"); $materi2=mysql_fetch_array($materi1); Untuk koneksi dengan database tetap menggunakan file sambung.php dan perintah yang digunakan untuk membaca data dari database adalah perintah Query SQL. Yang perlu diperhatikan lagi adalah bagian script yang digunakan untuk menampilkan data nilai dalam bentuk abjad. Script ini menggunakan fungsi if yang mengambil data total nilai yaitu hasil penjumlahan dan pembagian dari nilai-nilai keseluruhan masingmasing siswa berdasarkan tiap materi yang ditempuh. Bagian script tersebut adalah: $total[$nomor]=number_format(((($data[nilai_harian]+ $data[nilai_tugas]+$data[nilai_tengah])/3)+($data[nilai_akhir]))/2,2); if($total[$nomor]<=50){ $n[$nomor]="E"; $bg_color="#FFCC99"; }elseif($total[$nomor]<=75){ $n[$nomor]="D"; }elseif($total[$nomor]<=82){
280
Aplikasi Program PHP dan MySQL $n[$nomor]="C"; }elseif($total[$nomor]<=92){ $n[$nomor]="B"; }else{ $n[$nomor]="A"; } Bagian paling atas dari script tersebut adalah menjumlah data semua nilai siswa dan kemudian mengambil rata-rata keseluruhan dengan membagi dengan angka tertentu. Hasil dari pembagian tersebut kemudian dijadikan filter pada fungsi if untuk menterjemahkan ke dalam bentuk nilai abjad. Misalkan pada pilihan paling atas, apabila nilai rata-rata kurang dari 50, maka akan dimasukkan dalam kategori nailai E, kemudian apabila nilai rata-rata kurang dari 75 akan dimasukkan dalam kategori E dan seterusnya. Berikut adalah tampilan halaman laporan nilai siswa tersebut:
281
282
Aplikasi Program PHP dan MySQL <tr><td> <p style="margin-left: 170px; margin-right: 50px" align="right"> </td></tr> </table> </td></tr> <tr><td colspan="3" valign="top" height="18"> <img src="../images/img_03.gif" width="800" height="18" alt=""></td></tr> <tr><td valign="top" height="74" width="180" bgcolor="#D5EBFB"> <img src="../images/img_04.gif" width="180" height="74" alt=""></td> <td valign="top" height="74" width="20" bgcolor="#D5EBFB"> <img src="../images/img_05.gif" width="20" height="74" alt=""></td> <td valign="top" height="74" width="600" bgcolor="#D5EBFB"> <p align="center"><b>Halaman Untuk Wali Siswa</b></td></tr> <tr><td colspan="3" valign="top" height="19" bgcolor="#D5EBFB"> <table border="0" width="100%" cellspacing="0" cellpadding="0" background="../images/img_07.gif" id="table1"> <tr><td width="182" valign="top"> </td> <td valign="top"> <table border="1" width="98%" cellspacing="0" cellpadding="0" id="table4"> <tr><td align="center" bgcolor="#93CDF5">Ganti Password</td></tr> <form method="POST" action="ganti.php"> <tr><td width="99%"> 283
Aplikasi Program PHP dan MySQL <p style="margin-left: 5px; margin-right: 5px" align="center"> <font color="#FF0000"><?=$err?></font><br><p style="margin:2px 5px; " align="center"> <font size="2">Password Lama</font><p style="margin:2px 5px; " align="center"> <input type="password" name="password_lama" size="18" style="color: #000080; font-family: Arial; font-size: 10pt"><p style="margin:2px 5px; " align="center"> <font size="2">Password Baru</font><p style="margin:2px 5px; " align="center"> <input type="password" name="password1" size="18" style="color: #000080; font-family: Arial; font-size: 10pt"><p style="margin:2px 5px; " align="center"> <font size="2">Password Baru ( <font color="#FF0000">ulangi</font> )</font><p style="margin:2px 5px; " align="center"> <input type="password" name="password2" size="18" style="color: #000080; font-family: Arial; font-size: 10pt"><p align="center"> <input type="submit" value="G A N T I" name="ganti" style="fontfamily: Arial; color: #000080"> <input type="submit" value="B A T A L" name="batal" style="fontfamily: Arial; color: #000080"></td></tr> </form> </table> <p style="margin-top: 1px; margin-bottom: 1px"> </p></td> </tr> </table> </td></tr> <tr><td colspan="3" valign="top"> 284
Aplikasi Program PHP dan MySQL <img src="../images/img_09.gif" width="800" height="56" alt=""></td></tr> </table> </body> </html>
Keterangan:
Script di atas berfungsi untuk menampilkan formulir ganti password. Formulir untuk ganti password ini memiliki empat obyek, yaitu kotak teks untuk menuliskan password lama, kemudian kotak teks untuk menuliskan password baru, kotak teks untuk menuliskan password baru yang kedua dan sebuah tombol submit untuk mengirim data tersebut. Berikut adalah tampilan halaman untuk mengubah password wali siswa:
Aplikasi Program PHP dan MySQL File ini digunakan untuk menyimpan script yang berfungsi untuk mengolah data password. Data password lama yang ada pada database akan diganti dengan data password baru yang dikirim dari formulir halaman ganti password. Berikut adalah script untuk mengganti password lama dengan password baru: <? include"ceksession.php"; if(isset($ganti)){ if($password_lama!==$password){ $pesan="<br>Password lama yang Anda masukkan salah. Periksa kembali.<br>"; header("location:./ganti_password.php?err=$pesan"); }elseif($password1!==$password2){ $pesan="<br>Password baru Anda harus sama dengan password konfirmasi dibawahnya.<br>"; header("location:./ganti_password.php?err=$pesan"); }else{ include"../sambung.php"; $ganti_pass=mysql_query("UPDATE wali_siswa set password='$password1' WHERE id='$id_siswa'"); session_unregister ("password"); $password="$password1"; session_register("password"); } }else{ header("location:./utama.php"); } ?>
286
Aplikasi Program PHP dan MySQL <html> <head> <title>Sistem Manajemen Pendidikan online</title> <meta http-equiv="Content-Type" content="text/html; charset=iso8859-1"> </head> <center><br> <body bgcolor="#A9C5BE" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0"> <table id="Table_01" width="800" height="296" border="0" cellpadding="0" cellspacing="0"> <tr><td colspan="3" valign="top" height="108"> <img src="../images/img_1.gif" width="800" height="108" alt=""></td></tr> <tr><td colspan="3" valign="top" height="23"> <table border="0" width="100%" cellspacing="0" cellpadding="0" background="../images/img_02.gif" id="table2" height="23"> <tr><td><p style="margin-left: 170px; margin-right: 50px" align="right"> </td></tr> </table> </td></tr> <tr><td colspan="3" valign="top" height="18"> <img src="../images/img_03.gif" width="800" height="18" alt=""></td></tr> <tr><td valign="top" height="74" width="180" bgcolor="#D5EBFB"> <img src="../images/img_04.gif" width="180" height="74" alt=""></td> <td valign="top" height="74" width="20" bgcolor="#D5EBFB"> 287
Aplikasi Program PHP dan MySQL <img src="../images/img_05.gif" width="20" height="74" alt=""></td> <td valign="top" height="74" width="600" bgcolor="#D5EBFB"> <p align="center"><b>Halaman Untuk Wali Siswa</b></td></tr> <tr><td colspan="3" valign="top" height="19" bgcolor="#D5EBFB"> <table border="0" width="100%" cellspacing="0" cellpadding="0" background="../images/img_07.gif" id="table1"> <tr><td width="182" valign="top"> </td> <td valign="top"> <table border="1" width="98%" cellspacing="0" cellpadding="0" id="table4"> <tr><td align="center" bgcolor="#93CDF5">Konfirmasi Ganti Password</td></tr> <tr><td width="99%"> <p style="margin-left: 5px; margin-right: 5px" align="center"> <p style="margin-left: 5px; margin-right: 5px" align="center">Password anda telah diganti dengan :<p style="margin-left: 5px; margin-right: 5px" align="center"> <b><?=$password1?></b><p style="margin-left: 5px; margin-right: 5px" align="center">Untuk melanjutkan tekan tombol di bawah ini<form method="POST" action="utama.php"> <p style="margin-left: 5px; margin-right: 5px" align="center"> <input type="submit" value="L A N J U T" name="lanjut" style="color: #000080; font-family: Arial; font-size: 10pt"></p> </form> <p style="margin-left: 5px; margin-right: 5px" align="center"> </td></tr></table> <p style="margin-top: 1px; margin-bottom:
288
Aplikasi Program PHP dan MySQL 1px"> </p></td></tr> </table> </td></tr> <tr><td colspan="3" valign="top"> <img src="../images/img_09.gif" width="800" height="56" alt=""></td></tr> </table> </body> </html>
Keterangan:
Script di atas dibagi menjadi dua bagian utama. Yang pertama adalah script yang berfungsi untuk mengolah data password baru wali siswa. Berikut adalah bagian script tersebut: <? include"ceksession.php"; if(isset($ganti)){ if($password_lama!==$password){ $pesan="<br>Password lama yang Anda masukkan salah. Periksa kembali.<br>"; header("location:./ganti_password.php?err=$pesan"); }elseif($password1!==$password2){ $pesan="<br>Password baru Anda harus sama dengan password konfirmasi dibawahnya.<br>"; header("location:./ganti_password.php?err=$pesan"); }else{ include"../sambung.php"; $ganti_pass=mysql_query("UPDATE wali_siswa set password='$password1' WHERE id='$id_siswa'");
289
Aplikasi Program PHP dan MySQL session_unregister ("password"); $password="$password1"; session_register("password"); } }else{ header("location:./utama.php"); } ?> Script tersebut diawali deangan memanggil file ceksession.php untuk memeriksa keberadaan data sesi. Kemudian memeriksa apakah password yang dimasukkan pada bagian password lama apa sama dengan data password yang disimpan pada variabel sesi. Apabila password yang dimasukkan pada variabel password lama tidak sama dengan data sesi password, maka akan dimasukkan keterangan bahwa data password lama tidak benar. Apabila data password lama yang dimasukkan sudah benar, maka script akan dilanjutkan memeriksa data password 1 dengan password 2. kedua data tersebut di periksa kesamaannya.. Apabila kedua syarat tersebut terpenuhi, maka script akan memasukkan data password baru untuk mengganti password lama menggunakan perintah query berikut: $ganti_pass=mysql_query("UPDATE wali_siswa set password='$password1' WHERE id='$id'"); Data password lama akan diganti dengan data password baru setelah script diatas dijalankan. Namun pada data sesi masih memiliki data password yang lama. Hal ini akan ditolak oleh halaman-halaman yang lain apabila instruktur membuka halaman berikutnya. Maka dari itu dibuat sebuah script yang menghapus data password lama dan memasukkan data password baru ke dalam variabel sesi seperti pada script di bawah ini: session_unregister ("password"); $password="$password1"; session_register("password"); 290
Aplikasi Program PHP dan MySQL Bagian yang kedua adalah tag-tag HTML yang berfungsi menampilkan halaman ganti password apabila password sudah sukses diganti. Berikut adalah tampilan halaman sukses ganti password:
291