Framework CodeIgniter mendukung banyak jenis database misalnya MySQL, PostGre SQL, Oracle dan lain-lain. Dukungan database dari CodeIgniter berupa penyediaan beberapa driver database yang sekaligus juga memiliki fungsi sekuriti, caching dan active record.
Dalam Praktik kali
ini, kita akan membuat sebuah aplikasi rumah sakit berbasis web yang mencatat
data pasien. Di aplikasi tersebut kita dapat mengisi data pasien baru, memperbaharui
data yang sudah ada, melihat daftar data yang pernah dicatat, kemudian
menghapus data yang sudha terlewat dan tidak diperlukan. Langkah awal yang
harus dibuat adalah membuat sebuah databasenya terlebih dahulu. Kita namakan
database yang akan digunakan sebagai ‘rumah_sakit’. Di halaman muka PHP MyAdmin
ketikkan nama tersebut dibawah field Create new database, kemudian tekan tombol
Create untuk membuat database yang diinginkan. lebih jelasnya, lihat gambar 1
berikut :
Gambar
1. Pembuatan database
Langkah selanjutnya
setelah database berhasil dibuat adalah membuat suatu tabel. tabel ini yang
nantinya digunakan sebagai wadah memasukkan suatu data. Dan disini kita membuat
2 tabel pokok. yang pertama tabel ‘dokter’ dan yang kedua tabel ‘pasien’. Cara
membuatnya yaitu pada database ‘rumah_sakit’, buat 2 buah tabel dan isikan nama
tabelnya dan jumlah kolom (tabel ‘dokter’ dan ‘pasien’). Selain itu buat juga
atribut – atributnya. Dan untuk implementasinya, lihat gambar 2 dan 3.
Gambar
2. Pembuatan tabel dokter
Gambar
3. Pembuatan tabel pasien
Tabel selesai
dibuat. selanjutnya membuat membuat foreign key untuk ‘id_dokter’ dengan relasi
one-to- many dari tabel dokter ke tabel pasien. Disini yang dijadikan foreign
key ialah id_dokter. Jadi pada penerapannya, id_dokter akan terdapat pada tabel
pasien. Lihat gambar 4.
Gambar 4. Pembuatan fl one-to-many id_dokter
Untuk mengakses
aplikasi rumah sakit yang telah berhasil dibuat, perlu adanya suatu konfigurasi
database terhadap CodeIgniter. Dan berikut cara mengkonfigurasiannya.
Kita harus
mengkonfigurasi database yang akan kita akses lewat CodeIgniter lewat file
database.php yang berada di application -> config. Konfigurasi yang akan
digunakan dalam
pelatihan ini adalah seperti pada gambar 5 berikut.
Gambar 5. Konfigurasi database di
CI
Kemudian setelah
mengkonfigurasi database, kita harus menambahkan library database di
autoload.php yang berlokasi di application -> config . Hal ini dilakukan agar
library database selalu di load dimanapun di controller yang ada di CodeIgniter
(Tentunya jika semua controller memerlukan database). Berikut cara menambahkan
library database kedalam file autoload.php. Lihat gambar 6.
Gambar 6. Konfigurasi library
database
Yang pertama kita
akan membuat model pada framework ini. Model disini berfungsi seperti active
record yang berfungsi untuk membuat data, menampilkan data, mengupdate data dan
menghapus data pada database atau bisa dibilang CRUD. Disini kita mebuat file
model dengan nama pasien_model.php. Simpan
file tersebut pada folder appication
-> models -> daftarpasien. Berikut ialah sourcodenya :
<?php
class pasien_model extends CI_Model {
function __construct(){
parent::__construct();
}
function insert_pasien($data){
$this->db->insert('pasien', $data);
}
function select_all(){
$this->db->select('*');
$this->db->from('pasien');
// $this->db->order_by('date_modified', 'desc');
return $this->db->get();
}
function select_by_id($Id_pas){
$this->db->select('*');
$this->db->from('pasien');
$this->db->where('Id_pas', $Id_pas);
return $this->db->get();
}
function update_pasien($Id_pas, $data){
$this->db->where('Id_pas', $Id_pas);
$this->db->update('pasien', $data);
}
function delete_pasien($Id_pas){
$this->db->where('Id_pas', $Id_pas);
$this->db->delete('pasien');
}
// function yang digunakan oleh paginationsample
function select_all_paging($limit=array()){
$this->db->select('*');
$this->db->from('pasien');
//$this->db->order_by('date_modified', 'desc');
if ($limit != NULL)
$this->db->limit($limit['perpage'], $limit['offset']);
return $this->db->get();
}
}
?>
class pasien_model extends CI_Model {
function __construct(){
parent::__construct();
}
function insert_pasien($data){
$this->db->insert('pasien', $data);
}
function select_all(){
$this->db->select('*');
$this->db->from('pasien');
// $this->db->order_by('date_modified', 'desc');
return $this->db->get();
}
function select_by_id($Id_pas){
$this->db->select('*');
$this->db->from('pasien');
$this->db->where('Id_pas', $Id_pas);
return $this->db->get();
}
function update_pasien($Id_pas, $data){
$this->db->where('Id_pas', $Id_pas);
$this->db->update('pasien', $data);
}
function delete_pasien($Id_pas){
$this->db->where('Id_pas', $Id_pas);
$this->db->delete('pasien');
}
// function yang digunakan oleh paginationsample
function select_all_paging($limit=array()){
$this->db->select('*');
$this->db->from('pasien');
//$this->db->order_by('date_modified', 'desc');
if ($limit != NULL)
$this->db->limit($limit['perpage'], $limit['offset']);
return $this->db->get();
}
}
?>
Selanjutnya buat
controller untuk membuat function yang memproses data sehingga bisa ditampilkan
pada views. Buat file php dengan nama daftarpasien.php
kemudian simpan file tersebut pada folder application -> controllers. Berikut
ialah sourcecodenya :
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Daftarpasien extends CI_Controller {
public function __construct()
{
parent::__construct();
$this->load->helper('url');
$this->load->library('input');
$this->load->model('daftarpasien/pasien_model');
}
// bagian pengelolaan agenda
public function index()
{
$data['daftar_pasien'] = $this->pasien_model->select_all()->result();
$this->load->view('daftarpasien/daftar_pasien', $data);
}
//tambah_pasien
public function tambah_pasien(){
$this->load->view('daftarpasien/form_tambah_pasien');
}
public function proses_tambah_pasien(){
$data['Id_pas'] = $this->input->post('Id_pas');
$data['Id_dok'] = $this->input->post('Id_dok');
$data['Nama_pas'] = $this->input->post('Nama_pas');
$data['Alamat_pas'] = $this->input->post('Alamat_pas');
$data['No_telp_pas'] = $this->input->post('No_telp_pas');
$data['Keluhan'] = $this->input->post('Keluhan');
$this->pasien_model->insert_pasien($data);
redirect(site_url('daftarpasien'));
}
//edit_pasien
public function edit_pasien($Id_pas){
$data['pasien'] = $this->pasien_model->select_by_id($Id_pas)->row();
$this->load->view('daftarpasien/form_edit_pasien', $data);
}
public function proses_edit_pasien(){
$data['Nama_pas'] = $this->input->post('Nama_pas');
$data['Alamat_pas'] = $this->input->post('Alamat_pas');
$data['No_telp_pas'] = $this->input->post('No_telp_pas');
$data['Keluhan'] = $this->input->post('Keluhan');
$Id_pas=$this->input->post('Id_pas');
$this->pasien_model->update_pasien($Id_pas, $data);
redirect(site_url('daftarpasien'));
}
//delete pasien
public function delete_pasien($Id_pas){
$this->pasien_model->delete_pasien($Id_pas);
redirect(site_url('daftarpasien'));
}
}
class Daftarpasien extends CI_Controller {
public function __construct()
{
parent::__construct();
$this->load->helper('url');
$this->load->library('input');
$this->load->model('daftarpasien/pasien_model');
}
// bagian pengelolaan agenda
public function index()
{
$data['daftar_pasien'] = $this->pasien_model->select_all()->result();
$this->load->view('daftarpasien/daftar_pasien', $data);
}
//tambah_pasien
public function tambah_pasien(){
$this->load->view('daftarpasien/form_tambah_pasien');
}
public function proses_tambah_pasien(){
$data['Id_pas'] = $this->input->post('Id_pas');
$data['Id_dok'] = $this->input->post('Id_dok');
$data['Nama_pas'] = $this->input->post('Nama_pas');
$data['Alamat_pas'] = $this->input->post('Alamat_pas');
$data['No_telp_pas'] = $this->input->post('No_telp_pas');
$data['Keluhan'] = $this->input->post('Keluhan');
$this->pasien_model->insert_pasien($data);
redirect(site_url('daftarpasien'));
}
//edit_pasien
public function edit_pasien($Id_pas){
$data['pasien'] = $this->pasien_model->select_by_id($Id_pas)->row();
$this->load->view('daftarpasien/form_edit_pasien', $data);
}
public function proses_edit_pasien(){
$data['Nama_pas'] = $this->input->post('Nama_pas');
$data['Alamat_pas'] = $this->input->post('Alamat_pas');
$data['No_telp_pas'] = $this->input->post('No_telp_pas');
$data['Keluhan'] = $this->input->post('Keluhan');
$Id_pas=$this->input->post('Id_pas');
$this->pasien_model->update_pasien($Id_pas, $data);
redirect(site_url('daftarpasien'));
}
//delete pasien
public function delete_pasien($Id_pas){
$this->pasien_model->delete_pasien($Id_pas);
redirect(site_url('daftarpasien'));
}
}
Selanjutnya untuk
menampilkan data yang sudah di proses pada controllers, maka kita harus membuat
view untuk menampilkan data tersebut. Buat file php dengan nama daftar_pasien.php. Simpan file tersebut
pada folder application -> views
->daftarpasien. Berikut ialah sourcodenya :
<?php $i = 0; foreach ($daftar_pasien as $pasien) {?>
<fieldset>
<?php
$i = $i + 1;
?>
<div align="center"><h2>DAFTAR PASIEN KE- <?php echo $i ?><br><br></h2>
</div>
</td></tr>
<div align="center" ></div>
<table width="366" border="3" align="center">
<tr>
<th><p>ID Pasien</p></th>
<td><p><?php echo $pasien->Id_pas;?></p></td>
</tr>
<tr>
<td><p>ID Dokter</p></td>
<td><p><?php echo $pasien->Id_dok;?></p></td>
</tr>
<tr><th><p>Nama Pasien</p></th>
<td><p><?php echo $pasien->Nama_pas;?></p></td>
</tr>
<tr>
<td><p>Alamat Pasien</p></td>
<td><p><?php echo $pasien->Alamat_pas;?></p></td>
</tr>
<tr>
<th><p>No Telpon Pasien</p></th>
<td><p><?php echo $pasien->No_telp_pas;?></td>
</tr>
<tr>
<td><p>Keluhan</p></td>
<td><p><?php echo $pasien->Keluhan;?></p></td>
</tr>
</table>
<div align="center">
<a href="<?php echo site_url('daftarpasien/edit_pasien/'.$pasien->Id_pas);?>" style="text-decoration:none"><h2 class="button" align="center">Edit Pasien</h2></a>
<a href="<?php echo site_url('daftarpasien/delete_pasien/'.$pasien->Id_pas);?>" style="text-decoration:none"><h2 class="button" align="center">Delete Pasien</h2></a>
</div>
</fieldset>
<?php } ?>
<fieldset>
<?php
$i = $i + 1;
?>
<div align="center"><h2>DAFTAR PASIEN KE- <?php echo $i ?><br><br></h2>
</div>
</td></tr>
<div align="center" ></div>
<table width="366" border="3" align="center">
<tr>
<th><p>ID Pasien</p></th>
<td><p><?php echo $pasien->Id_pas;?></p></td>
</tr>
<tr>
<td><p>ID Dokter</p></td>
<td><p><?php echo $pasien->Id_dok;?></p></td>
</tr>
<tr><th><p>Nama Pasien</p></th>
<td><p><?php echo $pasien->Nama_pas;?></p></td>
</tr>
<tr>
<td><p>Alamat Pasien</p></td>
<td><p><?php echo $pasien->Alamat_pas;?></p></td>
</tr>
<tr>
<th><p>No Telpon Pasien</p></th>
<td><p><?php echo $pasien->No_telp_pas;?></td>
</tr>
<tr>
<td><p>Keluhan</p></td>
<td><p><?php echo $pasien->Keluhan;?></p></td>
</tr>
</table>
<div align="center">
<a href="<?php echo site_url('daftarpasien/edit_pasien/'.$pasien->Id_pas);?>" style="text-decoration:none"><h2 class="button" align="center">Edit Pasien</h2></a>
<a href="<?php echo site_url('daftarpasien/delete_pasien/'.$pasien->Id_pas);?>" style="text-decoration:none"><h2 class="button" align="center">Delete Pasien</h2></a>
</div>
</fieldset>
<?php } ?>
Akses dengan
url localhost/nama_framework/index.php/daftarpasien,
maka akan muncul tampilan seperti gambar 7.
Langkah kali ini
kita akan membuat daftar data pasien dengan integrasi framework CodeIgniter
tentunya. dan berikut merupakan contoh tampilan daftar hadir pasien yang telah
dibuat. Gambar 7.
Gambar 7. Tampilan daftar hadir
pasien
Selanjutnya kita
akan membuat form untuk tambah pasien, yang pertama buatlah fungsi tambah
pasien pada file controller daftarpasien.php.
Berikut ialah sourcecodenya :
//tambah_pasien
public function tambah_pasien(){
$this->load->view('daftarpasien/form_tambah_pasien');
}
public function proses_tambah_pasien(){
$data['Id_pas'] = $this->input->post('Id_pas');
$data['Id_dok'] = $this->input->post('Id_dok');
$data['Nama_pas'] = $this->input->post('Nama_pas');
$data['Alamat_pas'] = $this->input->post('Alamat_pas');
$data['No_telp_pas'] = $this->input->post('No_telp_pas');
$data['Keluhan'] = $this->input->post('Keluhan');
$this->pasien_model->insert_pasien($data);
redirect(site_url('daftarpasien'));
}
public function tambah_pasien(){
$this->load->view('daftarpasien/form_tambah_pasien');
}
public function proses_tambah_pasien(){
$data['Id_pas'] = $this->input->post('Id_pas');
$data['Id_dok'] = $this->input->post('Id_dok');
$data['Nama_pas'] = $this->input->post('Nama_pas');
$data['Alamat_pas'] = $this->input->post('Alamat_pas');
$data['No_telp_pas'] = $this->input->post('No_telp_pas');
$data['Keluhan'] = $this->input->post('Keluhan');
$this->pasien_model->insert_pasien($data);
redirect(site_url('daftarpasien'));
}
Selanjutnya
untuk menampilkan fungsi tambah pasien pada controller, maka kita buat tampilan
view untuk form tambah pasien. Buat file php dengan nama form_tambah_pasien.php. Simpan file tersebut pada folder application -> views -> daftarpasien.
Berikut ialah sourcecodenya :
<fieldset>
<form action="<?php echo site_url('daftarpasien/proses_tambah_pasien');?>" method="POST" name="myForm" onsubmit="return validateForm()">
<div align="center"></div>
<table width="366" border="0" align="center">
<tr><td colspan="3">
<div align="center"> <h2>Form Tambah Pasien</h2>
<p>.....................................................</p>
</div>
</td></tr>
<tr><td width="354"><h4> ID Pasien<td> : </td></h4></td><td><input class="alamat" type="text" name="Id_pas"></td></tr>
<tr><td><h4> ID Dokter<td> : </td></h4></td><td><input class="alamat" type="text" name="Id_dok"><br></td></tr>
<tr><td><h4> Nama Pasien<td> : </td></h4></td><td><input class="alamat" type="text" name="Nama_pas"><br></td></tr>
<tr><td><h4> Alamat Pasien<td> : </td></h4></td><td><input class="alamat" type="text" name="Alamat_pas"><br></td></tr>
<tr><td><h4> No Telepon Pasien<td> : </td></h4></td><td><input class="alamat" type="text" name="No_telp_pas"><br></td></tr>
<tr><td><h4> Keluhan Pasien<td> : </td></h4></td><td><input class="alamat" type="text" name="Keluhan"><br></td></tr>
<tr><td colspan="3"><input class="button" type="submit" value="Tambah"></td></tr>
</table></form>
</fieldset>
<form action="<?php echo site_url('daftarpasien/proses_tambah_pasien');?>" method="POST" name="myForm" onsubmit="return validateForm()">
<div align="center"></div>
<table width="366" border="0" align="center">
<tr><td colspan="3">
<div align="center"> <h2>Form Tambah Pasien</h2>
<p>.....................................................</p>
</div>
</td></tr>
<tr><td width="354"><h4> ID Pasien<td> : </td></h4></td><td><input class="alamat" type="text" name="Id_pas"></td></tr>
<tr><td><h4> ID Dokter<td> : </td></h4></td><td><input class="alamat" type="text" name="Id_dok"><br></td></tr>
<tr><td><h4> Nama Pasien<td> : </td></h4></td><td><input class="alamat" type="text" name="Nama_pas"><br></td></tr>
<tr><td><h4> Alamat Pasien<td> : </td></h4></td><td><input class="alamat" type="text" name="Alamat_pas"><br></td></tr>
<tr><td><h4> No Telepon Pasien<td> : </td></h4></td><td><input class="alamat" type="text" name="No_telp_pas"><br></td></tr>
<tr><td><h4> Keluhan Pasien<td> : </td></h4></td><td><input class="alamat" type="text" name="Keluhan"><br></td></tr>
<tr><td colspan="3"><input class="button" type="submit" value="Tambah"></td></tr>
</table></form>
</fieldset>
Jika berhasil, maka akan muncul
tampilan seperti pada gambar 8.
Dan untuk cara
membuatnya ialah dengan menggunakan fitur tambah data pasien melalui form tambah
pasien yang telah dibuat. Dalam form tersebut terdapat kolom id_pasien,
id_dokter (foreign key), nama pasien, alamat pasien, no. telepon pasien, dan
keluhan pasien. Dengan mengisi semua kolom – kolom tersebut dengan data yang
benar, kita telah membuat sebuah data pasien baru. Gambar 8.
Gambar
8. Tampilan tambah pasien
Untuk tutorial
sourcecode update data pasien dan seterusnya bisa dilihat pada video tutorial
pada link dibawah :
Setelah fitur
tambah data telah diduat dan dipraktikkan, selanjutnya melakukan update data
pasien dengan menggunakan fitur udate yang juga telah dibuatkan formnya. Caranya
sama seperti menambahkan data baru, hanya saja tidak semua data diupdate atau
diubah. Dan jika sudah, klik tombol ubah (Lihat gambar 10) dan untuk melihat
data yang telah diupdate, lihat gambar 11.
Gambar
9. Tampilan sebelum update data pasien
Gambar
10. Tampilan form update
Gambar 11. Tampilan sesudah
update data pasien
Kemudian
melakukan delete data dengan menggunakan fitur ‘delete’, jika suatu waktu
terdapat sebuah data yang tidak lagi diperlukan dan admin ingin menghapusnya.
Maka fitur delete sanga diperlukan.
Dan untuk
caranya ialah pada menu daftar data pasien, pilih data mana yang akan dihapus
dengan menekan tombol delete data pasien /delete pasien. Perhatikan gambar 12
dan 13.
Gambar
12. Tampilan sebelum delete data pasien
Gambar 13. Tampilan sesudah
delete data pasien
Terlihat pada
gambar 13, bahwa pada daftar pasien posisi ke 1 data pasien yang terdapat
adalah data dengan nomor id ke 2. Hal ini menunjukkan bahwa penghapusan data ke
satu berhasil dilakukan.
Pembuatan serta
konfigurasi database maupun tabel dokter dan pasien telah selesai dilakukan.
Selanjutnya kita akan membuat sebuah tabel login. dimana tabel login berfungsi
sebagai akses masuk admin maupun dokter. Langkah pembuatannya sebagai berikut.
Kita buat 1 tabel
dengan 2 username, yaitu admin dan dokter. Untuk cara membuat tabelnya sama
dengan cara membuat membuat tabel dokter dan pasien sebelumnya. Buat kolom
sebanyak 3 dengan nama id_log, username, dan password. Untuk detailnya, lihat
gambar 14 dan 15 dibawah ini :
Gambar
14. Tampilan tabel login
Gambar 15. Tampilan data dalam
tabel login
Jika tabel login
dan form login berhasil dibuat, maka pada ‘localhost/ci2/index.php/akun’ akan
muncul tampilan seperti gambar 16 dibawah ini.
Gambar
16. Tampilan menu login
Tampilan setelah
admin berhasil masuk pada halaman login adalah langsung mengarah pada halaman
daftar data pasien. Lihat gambar 17.
Gambar 17. Tampilan sesudah
login admin
Untuk masuk
sebagai dokter, menggunakan username dokter dan password dokter. Dan untuk
tampilannya sebagai berikut. Gambar 18.
Gambar 18. Tampilan memasukkan
akun login dokter
Ketika akses dokter berhasil
masuk, maka tampilannya akan seperti berikut : Gambar 19.
Gambar 19. Tampilan sesudah
login dokter
Halaman paging
merupakan suatu menu halaman yang terdiri dari beberapa halaman dan dengan
menggunakan model panah arah, yang menunjukkan lihat halaman selanjutnya.
Disamping itu, halaman paging juga menampilkan daftar data pasien yang telah
dimasukkan dari menu tambah pasien sebelumnya. Lebih jelasnya, lihat gambar 20.
Gambar 20. Tampilan halaman
paging daftar hasir pasien
Tampilan halaman
pagination. Halaman pagination merupakan halaman yang menampilkan daftar hadir
pasien yang telah berpindah halaman. Dalam artian user telah memindahkan
halaman yang sebelumnya dari halaman paging.
NB : Pada softcopy yang saya share base url http://pfw2017k01.000webhostapp.com/ silahkan ganti base url local kalian masing-masing. Misal : http://localhost/ci2c/
Untuk file silahkan unduh disini, dan jangan lupa tinggalkan jejak jika artikel ini bermanfaat :)
Jika ada pertanyaan email ke danifwahyudi@gmail.com
No comments:
Post a Comment