1 MEMBUAT HALAMAN ADMINISTRATOR DENGAN FRAMEWORK SENDIRI Setelah kita selesai membuat halaman front end (Halaman Pengunjung) saatnya kita buat halaman...
MEMBUAT HALAMAN ADMINISTRATOR DENGAN FRAMEWORK SENDIRI Setelah kita selesai membuat halaman front end (Halaman Pengunjung) saatnya kita buat halaman administrator yang akan digunakan untuk mengelola atau memanajamen data dari website sekolah kita. Pertama, buat folder administrator pada folder website_sekolah:
Kemudian kita copy semua file framework yang sudah pernah kia buat sebelumnya yaitu framework LP3I_Purwokerto ke dalam folder Administrator.
Maka coba kita buka di browser http://localhost/Website_sekolah/administrator maka hasilnya sebagai berikut:
Setelah itu saatnya kita mulai membuat halaman administrator: 1. Setting File Konfigurasi untuk Administrator Langkah pertama sebelum membuat halaman administrator adalah setting file konfigurasi config.php. Langsung saja kita rubah: 2. Membuat Template Halaman Administrator Seperti halaman front end, kita juga sebaiknya membuat template untuk halaman administrator. Jadi, kita perlu mengulang-ulang struktur HTML yang sama pada setiap halamannya. Untuk template HTML dan CSS yang digunakan pada halaman administrator saya share di DOSEN-PC. Langsung saja copy saja semua file resources yang digunakan pada templare, baik itu css, fonts, font-awesome, images, tinymce, dan js ke folder resources halaman administrator. Lihat gambar berikut:
Kemudian kita buat file baru pada folder administrator/ modules/ views dengan nama template.view.php
protected function template($viewName, $data = array()) { $view = $this->view('template'); $view->bind('viewName', $viewName); $view->bind('data', array_merge($data, array('login' => $this->login))); } } ?> Maksud dari MainController ini adalah sebagai template controller yang akan kita extended di setiap halaman, disini juga akan dilakukan pengecekan apakah sudah login atau belum, kalau sudah login maka user bisa mengecek halaman yang dituju, sedangkan kalau belum, maka user akan langsung diarahkan ke halaman login. 3. Dashboard (Halaman Utama Administrator) Halaman dashboard ini berguna untuk user yang sudah melakukan login agar bisa melihat menu navigasi dan statistik website. Untuk membuat halaman dashboard kita edit dulu controller HomeController.php yang sudah ada, dan membuat viewnya. Kita langsung ubah HomeController.php di folder administrator/modules/controllers menjadi seperti berikut: model('bukutamu'); $this->model('artikel'); $this->model('guru'); $this->model('kontak'); $this->template('home', array('userData' => $data, 'total' => array( 'bukutamu' => $this->bukutamu->rows(), 'artikel' => $this->artikel->rows(), 'guru' => $this->guru->rows(), 'kontak' => $this->kontak->rows() ))); } } ?> Untuk model karena sama seperti model yang digunakan pada halaman front end, maka copy kan saja semua model yang ada pada folder modules/models ke administrator/modules/models:
4. Halaman Login Saatnya kita membuat halaman login, halaman login ini berguna untuk user melakukan login pada halaman ini. Apabila user sesuai, maka login akan berhasil dan user akan bisa melakukan manajeman data, bila tidak maka user tidak bisa login untuk melakukan manajeman data. Kita buat dulu controllernya yaitu LoginController.php di folder Administrator/modules/controllers : redirect("index.php"); } $message = array(); if($_SERVER["REQUEST_METHOD"] == "POST") { $message = array( 'success' => false, 'message' => 'Maaf Username/Password Salah.' ); $username = isset($_POST["username"]) ? $_POST["username"] : ""; $password = isset($_POST["password"]) ? $_POST["password"] : ""; $this->model('user'); $user = $this->user->getWhere(array( 'username' => $username, 'password' => md5($password) )); if(count($user) > 0) { $message = array( 'success' => true, 'message' => 'Selamat anda berhasil login.' ); $_SESSION["login"] = $user[0]; echo '<meta http-equiv="refresh" content="1;url=index.php">'; } } $view = $this->view('login')->bind('message', $message); } public function logout() { unset($_SESSION["login"]);
$this->redirect('index.php'); } } ?> Pada controller tersebut kita memanggil $this->model('user');karena model user belum ada, jadi kita akan membuat file model dengan nama UserModel.php : Selanjutnya, kita buat view untuk login nya dengan nama login.view.php : <meta charset="utf-8" /> SMK Negeri Indonesia <script type="text/javascript" src="resources/js/jquery.min.js"> <script type="text/javascript" src="resources/js/jquery.dataTables.min.js"> <script type="text/javascript" src="resources/js/bootstrap.min.js"> <script type="text/javascript" src="resources/js/expand.js"> <script type="text/javascript" src="resources/js/common.js">
Setelah selesai, sekarng kita inputkan data user di database supaya bisa login. Contoh untuk sql insert: INSERT INTO `user` VALUES (‘’, ‘Administrator’, ‘[email protected]’, ‘’, ‘Purwokerto’, ‘admin’, MD5(‘admin’), ‘’); Untuk Password kita acak menggunakan enkripsi md5 (MD5(‘admin’)) supaya orang lain tidak tahu password asli kita. Sekarang coba ketikkan alaman url halaman administrator pada browser:
Berikut tampilan bila berhasil dan tidak berhasil login:
5. Modul Buku Tamu Pada module buku tamu, kita akan membuat dua action, yaitu untuk melihat data dan menghapus data. Kita buat dulu controllernya dengan nama BukutamuController.php:
[email protected]
15
$this->model('bukutamu'); $data = $this->bukutamu->get(); $this->template('bukutamu', array('bukutamu' => $data)); } public function delete() { $id = isset($_GET["id"]) ? $_GET["id"] : 0; $this->model('bukutamu'); $delete = $this->bukutamu->delete(array('id_bukutamu' => $id)); if($delete) { $this->back(); } } } ?> Pada file controller bukutamu terdapat dua fungsi yaitu index() dan delete(), dimana fungsi index secara default akan menampilkan semua data yang ada pada buku tamu, dan fungsi delete untuk menghapus data pada buku tamu berdasarkan id_bukutamu yang dikirim. Sekarang kita buat view untuk buku tamu dengan nama bukutamu.view.php :
Untuk mencobanya silahkan tampilkan pada browser dengan klik menu Bukutamu. 6. Modul Kategori Artikel Pada modul kategori ini, kita akan membuat empat action, yaitu untuk melihat data, menambah data, melakukan update, dan menghapus data. Langsung saja kita buat controllernya dengan nama KategoriController.php : model('kategori'); $data = $this->kategori->get(); $this->template('kategori', array('kategori' => $data)); } public function delete() { $id = isset($_GET["id"]) ? $_GET["id"] : 0; $this->model('kategori');
if(count($error) == 0) { $update = $this->kategori>update($updateArrayData, array('id_kategori' => $id)); if($update) { $success = "Data Berhasil di simpan."; } } } $this->template('frmKategori', array('kategori' => $data[0],'error' => $error, 'success' => $success, 'title' => 'Update Kategori')); } } ?> Pada file controller kategori tersebut terdapat empat fungsi, yaitu: a. Fungsi Index() secara default akan menampilkan semua data yang ada pada kategori b. Fungsi insert() akan digunakan untuk melakukan input data kategori c. Fungsi delete() untuk menghapus data pada kategori berdasarkan id_kategori yang dikirim d. Fungsi Update() untuk melakukan edit data kategori yang sudah ada Selanjutnya, kita buat view untuk kategori dengan cara membuat file dengan nama Kategori.view.php :
Mari kita coba tampilkan di browser dengan klik menu Kategori Artikel, coba kita tambahkan kategori baru. 7. Modul Artikel Setelah kita membuat modul kategori artikel, saatnya kita membuat modul artikel. Sama seperti Modul sebelumnya kita akan menambahkan beberapa action. Langsung kita buat controller ArtikelController.php : model('artikel'); $data = $this->artikel->getJoin('kategori', array( 'artikel.id_kategori' => 'kategori.id_kategori' ), 'JOIN' ); $this->template('artikel', array('artikel' => $data)); } public function delete() { $id = isset($_GET["id"]) ? $_GET["id"] : 0; $this->model('artikel'); $artikel = $this->artikel->getWhere(array( 'id_artikel' => $id )); if(file_exists('../public/images/artikel/' . $artikel[0]>images)) { unlink('../public/images/artikel/' . $artikel[0]>images); } $delete = $this->artikel->delete(array('id_artikel' => $id)); if($delete) { $this->back(); }
if(count($error) == 0) { $imageName = $gambar["name"]; $updateArrayData = array( 'id_kategori' => $kategori, 'judul' => $judul, 'penulis' => $penulis, 'isi' => $isi, 'tanggal' => date('Y-m-d'), 'waktu' => date('h:i:s') ); if($gambar["name"]) { $imageName = date("h_i_s_Y_m_d_") . str_replace(" ","_", $judul) . '.jpg'; $updateArrayData = array( 'id_kategori' => $kategori, 'judul' => $judul, 'penulis' => $penulis, 'isi' => $isi, 'tanggal' => date('Y-m-d'), 'waktu' => date('h:i:s'), 'images' => $imageName ); if(file_exists('../public/images/artikel/' . $artikel[0]->images)) { unlink('../public/images/artikel/' . $artikel[0]->images); } move_uploaded_file($gambar["tmp_name"], '../public/images/artikel/' . $imageName); } $update = $this->artikel>update($updateArrayData, array('id_artikel' => $id)); if($update) { $success = "Data Berhasil di simpan."; } } } $this->template('frmArtikel', array('kategori' => $data, 'artikel' => $artikel[0], 'error' => $error, 'success' => $success, 'title' => 'Update Artikel')); } } ?> Pada file controller artikel tersebut terdapat empat fungsi, yaitu: a. Fungsi Index() secara default akan menampilkan semua data yang ada pada artikel website kita b. Fungsi insert() akan digunakan untuk melakukan input data artikel c. Fungsi delete() untuk menghapus data pada artikel berdasarkan id_artikel yang dikirim d. Fungsi Update() untuk melakukan edit data artikel berdasarkan id_artikel yang dikirim
Coba tampilkan di browser dengan klik menu artikel. 8. Modul Jurusan Modul jurusan digunakan untuk melakukan manajemen data jurusan yang ada di website kita. Pada modul jurusan, kita akan menambah empat action yang sama seperti modul sebelumnya. Untuk modul jurusan karena hampir mirip dengan modul kategori. Maka saya copy kan di DOSEN-PC. 9. Modul Siswa Modul sisea digunakan untuk memanajemen data siswa yang ada di website kita. Pada modul siswa kita akan membuat lima action yaitu, view, detail, add, update, dan delete data. Kita buat dulu controllernya yaitu SiswaController.php: model('siswa'); $data = $this->siswa->getJoin('jurusan', array( 'jurusan.id_jurusan' => 'siswa.id_jurusan' ), 'JOIN', array( 'status' => "Siswa" ) ); $this->template('siswa', array('siswa' => $data, 'title' => 'Siswa')); } public function detail() { $id = isset($_GET["id"]) ? $_GET["id"] : '0'; $this->model('siswa'); $data = $this->siswa->getJoin('jurusan', array( 'jurusan.id_jurusan' => 'siswa.id_jurusan'
$imageName = date("h_i_s_Y_m_d_") . str_replace(" ","_", $nama) . '.jpg'; unlink('../public/images/siswa/' . $data[0]>images); move_uploaded_file($foto["tmp_name"], '../public/images/siswa/' . $imageName); $dataUpdate = array( 'nis' => $nis, 'nama_lengkap' => $nama, 'id_jurusan' => $jurusan, 'jenis_kelamin' => $jenisKelamin, 'nomor_hp' => $noHP, 'angkatan' => $angkatan, 'status' => $status, 'alamat' => $alamat, 'images' => $imageName ); } $update = $this->siswa->update($dataUpdate, array('id_siswa' => $id)); if($update) { $success = "Data Berhasil di simpan."; } } } $this->template('frmSiswa', array('jurusan' => $listJurusan, 'siswa' => $data[0], 'error' => $error, 'success' => $success, 'title' => 'Update Siswa / Alumni')); } } ?> Pada file controller siswa tersebut terdapat lima fungsi, yaitu: a. Fungsi Index() secara default akan menampilkan semua data yang ada pada tabel siswa yang memiliki status ‘siswa’ di database b. Fungsi insert() akan digunakan untuk melakukan input data siswa c. Fungsi delete() untuk menghapus data pada siswa berdasarkan id_siswa yang dikirim d. Fungsi Update() untuk melakukan edit data siswa berdasarkan id _siswa yang dikirim e. Fungsi detail() digunakan untuk melihat detail siswa berdasarkan id_siswa yang dikirim Selanjutnya, kita membuat file view untuk daftar siswa, dengan cara membuat file dengan nama siswa.view.php :
Coba kita tampilkan di browser dengan klik menu Data Siswa. 10. Modul Alumni Modul alumni digunakan untuk memanajemen data siswa yang memiliki status ‘Alumni’ di database kita. Kita tidak perlu membuat 5 fungsi seperti modul siswa sebelumnya, karena kita cukup menggunakan fungsi dari modul Siswa yang telah kita buat sebelumnya. Kita hanya perlu membuat controllernya saja. Kita buat controller AlumniController.php : model('siswa'); $data = $this->siswa->getJoin('jurusan', array( 'jurusan.id_jurusan' => 'siswa.id_jurusan' ), 'JOIN', array( 'status' => "Alumni" ) ); $this->template('siswa', array('siswa' => $data, 'title' => 'Alumni')); [email protected]
42
} } ?> Pada modul ini kita tidak perlu membuat view karena kita menggunakan view dari siswa, disebebkan alumni dan siswa memiliki data yang sama dari tabel yang sama, suma berbeda status saja. Coba tampilkan di browser dengan klik menu alumni. 11. Modul Guru Modul guru digunakan untuk memanage data guru yang ada di website kita. Ada 5 action yang akan kita buat. Kalau kita perhatikan karakteristiknya, modul guru mirip dengan modul siswa, baik dari action yang dilakukan ada empat maupun jumlah file yang menangani modulnya ada lima, yaitu Siswa Controller.php, SiswaModel.php, detailSiswa.php, siswa.view.php, dan frmSiswa.view.php. Dan ada yang lebih penting lagi, yaitu input yang ditangani hampir sama, termasuk ada input gambar/ foto, tinggal disesuaikan label dan nama field-field nya saja sesuai dengan yang ada di tabel guru. Untuk itu maka saya tidak mencantumkan codenya lagi pada modul guru, ini bisa langsung dilihat di folder share di DOSEN-PC. Setelah semua sudah dicopy bisa kita cek melalui browser. 12. Modul Tentang Sekolah Pada modul ini, kita hanya akan melakukan update data tentang sekolah. Datanya sudah ada pada tabel tentang, kita hanya perlu menyediakan form untuk mengubah isi dari tentang sekolah. Langsung saja kita buat controller baru yaitu TentangController.php: model('tentang'); $data = $this->tentang->get(); $error = array(); $success = null; if($_SERVER["REQUEST_METHOD"] == "POST") { $isi = isset($_POST["isi"]) ? $_POST["isi"] : ""; if(empty($isi) || $isi == "") { array_push($error, "Tentang sekolah harus di isi."); } if(count($error) == 0) { $update = $this->tentang->update( array( 'tentang' => $isi ) ); if($update) { $success = "Data Berhasil di simpan."; } }
} $this->template('tentang', array('tentang' => $data[0],'error' => $error, 'success' => $success)); } } ?> Setelah itu, kita buat view nya dengan nama tentang.view.php:
Untuk melihatnya panggil di browser menu tentang sekolah di halaman administrator. 13. Modul Kontak Kami Pada modul kontak kami, kita akan membuat dua action, yaitu untuk melihat data dan menghapus data. Kalau kita lihat karakteristiknya, sebenarnya modul kontak kami mirip dengan modul buku tamu, baik dari action yang dilakukan ada dua maupun jumlah file yang menangani modul ada tiga. Dan ada yang lebih penting lagi, yaitu input yang ditangani juga hampir sama, dimana input data dilakukan oleh user melalui halaman pengunjung (bukan di halaman administrator). Untuk itu saya copy kan di folder DOSEN-PC untuk modul kontak kami. Bila sudah terbuat semua, silahkan cek di browser menu kontak pada halaman administrator. 14. Modul User Modul user digunakan untuk memanajemen data user yang bisa mengakses halaman administrator. Pada modul user, kita akan membuat 5 action, view, detail, insert, update dan delete data. Kita buat dulu controllernya yaitu UserController.php : model('user'); $data = $this->user->get(); $this->template('user', array('user' => $data)); } public function detail() { $id = isset($_GET["id"]) ? $_GET["id"] : '0'; $this->model('user'); $data = $this->user->getWhere( array( 'id_user' => $id ) ); $this->template('detailUser', array('user' => $data[0])); }
} $this->template('frmUser', array('user' => $data[0], 'error' => $error, 'success' => $success, 'title' => 'Update User')); } } ?> Pada file controller user tersebut terdapat lima fungsi, yaitu: a. Fungsi Index() secara default akan menampilkan semua data yang ada pada tabel user di database kita. b. Fungsi insert() akan digunakan untuk melakukan input data user c. Fungsi delete() untuk menghapus data pada user berdasarkan id_user yang dikirim d. Fungsi Update() untuk melakukan edit data user berdasarkan id _suser yang dikirim e. Fungsi detail() digunakan untuk melihat detail user berdasarkan id_user yang dikirim Setelah itu kita buat viewnya yaitu user.view.php: