• Tidak ada hasil yang ditemukan

Implementasi dan Validasi Query dalam penyusunan Dashboard

ANALISA DAN PEMBAHASAN

4.2 Desain Sistem

4.2.4 Implementasi dan Validasi Query dalam penyusunan Dashboard

a) Implementasi Jadwal

Setelah desain database baik berupa database dan desain alur sistem dengan menggunakan UML (unified Modelling Language) maka selanjutnya adalah implementasi pengerjaan dashboard dimana desain database dan desain UML tersebut sudah termasuk dalam jadwal pengerjaan proyek akhir.

b) Implementasi Query (ETL) dan Validasi Query untuk menunjang Sistem temu Kembali (Information Retrieval)

Implementasi Query merupakan suatu tahap dimana program mulai dibangun berdasarkan class diagram, use case diagram dan activity diagram. Query ini adalah kemampuan dalam menampilkan data-data dari database untuk menampilkan informasi yang dibutuhkan.Database telah tersedia dimana database yang digunakan dalam hal ini adalah database MySql

1. Implementasi Membaca Data dan menampilkan data File, Mahasiswa, Dosen.

Membaca data dari Tabel File digunakan untuk menampilkan datayang diupload oleh operator yang digunakan untuk melihat rekap dan laporan. Untuk dapat membaca Data yang terdapat dalam Tabel dan database peneliti membuat method actionAdmin() dimana method ini akan menjalankan class dari Model Files.php. Untuk detailnya adalah seperti script berikut:

public function actionAdmin() {

$useraktif=Yii::app()->user->name; $model=new Files('search'); $model->unsetAttributes();

// kalau user bukan admin, maka tampilkan yg di upload oleh usernya saja

{

$model->attributes=array("uploader"=>$useraktif); // jika bukan admin, dibatasi hanya uploader=useraktif } if(isset($_GET['Files'])) { if ($useraktif!="admin") { $_GET['Files']['uploader']=$useraktif; } $model->attributes=$_GET['Files']; } $this->render('admin',array( 'model'=>$model, )); }

Demikian juga untuk Data Mahasiswa dan Data Dosen peneliti akan membuat method action yang diletakkan di Controller dan memanggil Class di Model yang ditentukan.

2. Implementasi Indexing Data di index.php

Untuk membuat indexing data temu kembali yang ada di dalam database, query akan membuat method untuk memanggil dan mengidentifikasi data yang tersimpan di dalam database. Dalam Kasus ini proses indexing akan didasarkan pada waktu input terakhir dan id yang degenerate otomatis oleh sistem database, di setiap class seperti files, mahasiswa dan dosen akan degenerate index.php yang secara otomatis akan mengindex data yang berada di tabel files, Mahasiswa dan Dosen. Untuk menampilkan hal tersebut peneliti membuat method

actionIndex() yang akan memanggil class CActiveDataProvider yang otomatis tergenerate oleh Framework YII. Berikut adalah scriptnya:

public function actionIndex() {

$dataProvider=new CActiveDataProvider(„Dosen‟); $this->redirect("index.php");

}

Gambar 4.18 Indexing Data Dosen

Hal ini sama berlaku untuk data Files dan Data Mahasiswa , yaitu peneliti akan membuat method actionIndex().

3. Implementasi Pendekatan Proses Temu Kembali pada pencarian Data.

Query (kata kunci) yang diinputkan user terlebih dahulu sebenarmnya akan dilakukan proses preprosesing. Yaitu dimulai dari proses menghilangkan partikel kata, penghilangan stopword dan proses stemming (pembentukan kata dasar). Dengan melakukan pendekatan tersebut peneliti akan membuat method search yang akan dipanggil juga dalam daftar files , daftar data mahasiswa, dan daftar data Dosen. Method search() akan menggunakan Operator Boolean “OR” yang digunakan jika wuary yang dimasukan oleh User mencari kata yang mempunyai kemungkinan lain seperti pencarian kata Nama atau NIM dalam satu field. Query yang dimasukkan oleh user akan dicocokkan oleh perintah sql yang akan mengecek tabel dan isiannya sehingga

memunculkan kata yang dicari . Berikut query untuk menampilkan dan mencocokkan data yang akan menamilkan data yang dicari oleh user:

public function actionSearch() {

//untuk ambil data dari post dengan elmen input dengan Nama atau NIP

$namaornip = $_POST['namaornipl']; $criteria = new CDbCriteria( array( //spesifik field

'select' => '*', //where kondition

'condition' => "NMDOSTBDOS LIKE '$namaornip%' OR NIPPBTBDOS LIKE '$namaornip%'",

//order by

'order' => 'NIDNNTBDOS DESC', ));

Kondisi OR merupakan tipe Operator Boolean bisa juga menggunakan operator and dan sebagainya.

Gambar 4.19 Hasil cari daftar dosen

4. Implementasi Query Login dan Upload, dan Konfigurasi Files, Data Mahasiswa dan data dosen.

Query Login akan memanggil data database di tabel User, dimana Tabel user akan terdapat tiga level user yaitu Administrator, Operator Program Studi, Pimpinan Fakultas. Untuk membungkus Login agar sesuai User Interface maka dalam pemrograman web berbasis OOP

maka penulis membungkus query kedalam bentuk MVC (Model, View , Controller) dimana Model adalah tempat query utama, View adalah Penampil Query, dan Controller adalah aksi yang menampilkan Views.

Adapun implementasi dari query Login dan query Upload Files dan Konfigurasi File adalah sebagai berikut:

a. Mengedit File Useridentify.php

Untuk mengidentifikasi user dari tabel user dengan membuat class yang merupakan extends dari Class CuserIdentidy dari script useridentify diatas terdapat query yang memanggil data dai tabel user dimana terdapat perintah sebagai berikut:

$user=User::model()->find('LOWER(username)=?',array($username));

Baris diatas maksudnya adalah penulis membuat string user yang memanggil Model User dan memanggil perintah find yang mencari username dari tabel yang di deklarasikan di model User. Dan di Useridentify.php juga terdapat function Validasi Password diamana fungsi tersebut akan memvalidasi setelah user menginputkan username dan query mencari dari tabel user. if($user===null) $this->errorCode=self::ERROR_USERNAME_INVALID; else if(!$user->validatePassword($this->password)) $this->errorCode = self::ERROR_PASSWORD_INVALID; else { $this->_id = $user->id_user; $this->username = $user->username; $this->errorCode = self::ERROR_NONE;

}

Baris diatas merupakan validasi query untuk membatasi login dimana hanya user yang terdapat dalam tabel yang mampu melakukan login. Dan fungsi validasi password akan dideklarasikan di query yang terdapat di file model User.

b. Query Validation Password yang ada di Model User.php

Model User.php terdapat query yang memanggil Class CActiveRecord yang memanggil data yang ada ditabel User. Dan di model User.php terdapat fungsi untuk memvalidasi password dari inputan user yang ada di view ketika user tersebut login. public function validatePassword($password) {

return $password=== $this->password; }

Fungsi diatas adalah fungsi yang dipanggil dalam class useridentify.php yang melakukan validasi password dari model User.php. dengan validasi ini user yang memasukkan password tidak benar maka akan ditolak dan tidak bisa masuk dalam sistem. c. Sript View Login Form untuk inputan Login

Script View Login.php merupakan form inputan dimana inputan tersebut akan di proses dan divalidasi lewat class useridentify.php.

d. Controller Login sebagai aksi query dari view dan model

Untuk menampilkan proses dari login dan tampilan dari login maka perlu aksi dimana aksi tersebut dijalankan lewat controller dengan script terdapat public function action Login yang mana akan merender (menampilkan) view file login.php yang ada dalam folder views/login.php.

e. Query untuk melakukan pembatasan hak akses view di SiteController.php

Setelah User berhasil Login maka perlu dilakukan pembatasan hak akses agar user mengakses halaman sesuai dengan level user.

Dimana valiadasi akses tersebut juga berada dalam fungsi login yaitu sebagai berikut:

if($model->validate() && $model->login()){

$dt_user=User::model()>findByAttributes(array('usernam e'=>$_POST['LoginForm']['username'])); if($dt_user->level == "ADMIN"){ $this->redirect(array('Mspst/rekapfilesemester')); }elseif($dt_user->level == "OPERATOR"){ $this->redirect(array('files/create')); }elseif($dt_user->level == "VIEWER"){ $this->redirect(array('admin/viewer'));

Baris diatas menerangkan bahwa jika level user yang login adalah admin maka user admin akan di arahkan ke halaman rekap file semester. Jika level user tersebut adalah operator maka User tersebutakan diarahkan ke halaman create sebagai halaman utama user tersebut , dan jika level sebagai viewer atau dalam hal ini pimpinan fakultas maka user tersebut akan diarahkan ke halaman viewer.

f. Query Upload, hapus dan Monitoring Laporan Pengiriman File Dalam Query pengririman File maka query akan memanggil isian data dari Tabel Files dari database. Dan sebelum melakukan query terlebih dulu kita menyiapkan tiga file yaitu Model Files.php, Views Files yang terdiri dari admin.php, index.php, search.php, form.php dsb, sebagai kelengkapan dalam menampilkan interface yang akan di tampilkan di views, jugacontroller untuk aksi yang menampilkan views dan model.

g. Query di Model user.php untuk memanggil file yang dikirim yang disimpan di tabel files, terdapat rekap files yang terdiri dari rekap files untuk Operator Prodi, rekap File untuk Viewer, dan rekap File untuk admin.

Query rekap file untuk Operator dan Pimpinan Fakultas adalah intinya sama yaitu memanggil jumlah file berdasarkan tahun semester pelaporan dimana yang membedakan adalah condition yang dibatasi oleh WHERE clause , dan kondisi ini akan disesuaikan dengan user level yang berhasil login dalam sistem. Query mengupload data Files terdapat dalam Controller sebagai aksi input dan divalidasi dan diproses dalam model files.php. di model files.php juga terdapat function yang digunakan untuk validasi yang diambil dari query untuk mengetahui jumlah file yang diupload dalam sistem setiap laporan tahun semester.

Untuk memvalidasi jumlah file yang telah diupload dimana aturan yang dipakai adalah maksimal 7 file setiap tahun pelaporan maka querynya adalah dengan mencari file yang ada dalam tabel files dimana query akan menyeleksi siapa uploadernya dan tahun semester yang ditentukan kemudian berapa fiule yang diupload. Dan jika file sudah diupload maka validasi akan memunculkan sebuah notifikasi sebagai indicator bahwa user sudah mengupload file tersebut dan banyaknya telah terpenuhi. Kemudian setelah validasi sudah terpenuhi maka di FilesController.php akan membuat aksi untuk insert data ke tabel.

h. Query untuk hapus data files.

Query hapus Data adalah dengan menggunakan perintah delete dalam query Mysql. Dan dalam hal ini CActiveRecord sudah bekerja maka untuk menghapus data diperlukan public function delete data yang diletakkan dalam FilesController.php i. Query Monitoring data Mahasiswa dan data Dosen

Query untuk menampilkan data Mahasiswa diambil dari tabel MSMHS sebagai master mahasiswa dan untuk dosen diambil dari data tabel tbdos sebagai tabel master dosen. Dan dihubungkan dengan relasi dari tabel MSPST dengan dpenghubung kode Program Studi dari isian MSMHS di KDPSTMSMHS dan di tabel

tbdos di field KDPSTTBDOS. Jadi penghubung antara dosen dan mahasiswa dalam relasi antara kedua tabel tersebut adalah kode program studi. Dari relasi tersebut akan diadapatkan berapa jumlah dosen dan mahasiswa yang terdapat dalam program studi tersbut, kemudian apakah rasio dosen dan mahasiswa tersebut terpenuhi atau tidak.

j. Query untuk menghitung jumlah Mahasiswa dalam Program studi. Untuk menampilkan laporan sesuai keinginan pemakai maka cukup ditambahkan function yang dilengkapi dengan query kemudian dipanggil dalam controller sebagai aksi dari view dan model. Query diatas adalah sebagai sample dalam penyusunan proyek akhir ini.

Dokumen terkait