Belajar Web Programming PHP, HTML, MySQL dan Tutorial

Membuat CRUD Data Mahasiswa Dengan PHP dan MySQL

Sering kali kita melihat suatu aplikasi berbasis web hanya pada hasil akhirnya saja, padahal hal yang paling fundamental dalam suatu aplikasi yang digunakan untuk mengolah data adalah bagaimana data tersebut ada dan siap untuk diolah. Pertanyaannya adalah bagaimana jika data tersebut masih berupa  hardcopy yang tercatat pada buku atau arsip-arsip yang jumlahnya sangat banyak? hal ini tentu tidak mudah, perlu disusun terlebih dahulu rancangan database yang akan dibuat dengan melalui tahapan-tahapan seperti Normalisasi maupun ERD dan LRS.

Aplikasi CRUD Mahasiswa
Setelah rancangan tabel pada database telah normal dan memenuhi syarat untuk pembuatan basis data secara optimal maka kita dapat melakukan langkah berikutnya yaitu membuat aplikasi CRUD yang merupakan singkatan dari Create, Retrieve/Read, Update dan Delete. Ya secara singkat seperti fitur untuk menambah data, mencari/melihat data, mengubah data dan menghapus data secara terkomputerisasi melalui fitur-fitur yang sudah kita buat sebelumnya.

Untuk kali ini kita membuat suatu aplikasi berbasis web untuk mengelola data mahasiswa yang akan kita gunakan juga nanti di artikel selanjutnya yaitu menghitung nilai IPK. Oke kita langsung saja untuk pertama kali kita membuat rancangan dari tabel-tabel terlebih dahulu menggunakan ERD seperti gambar dibawah ini.

ERD Aplikasi CRUD Data Mahasiswa
Berdasarkan ERD diatas kita dapat melihat bahwa aplikasi ini terdiri atas 3 tabel yang saling berelasi satu sama lain. Tabel tersebut adalah transformasi dari entitas mahasiswa, program studi, dan kelas. Mengapa relasi mahasiswa dan program studi adalah M:1? hal ini dikarenakan 1 mahasiswa hanya boleh memiliki 1 program studi, sedangkan 1 program studi boleh memiliki mahasiswa lebih dari satu (banyak/many). Begitu juga dengan kelas, 1 kelas boleh memiliki banyak mahasiswa, sedangkan 1 mahasiswa hanya boleh memiliki 1 kelas. Sedangkan program studi dan kelas memiliki relasi 1:M dimana 1 program studi boleh memiliki lebih dari 1 kelas, sedangkan kelas hanya memiliki 1 program studi.

Dengan demikian kita dapat membuat tabel dasar untuk database dengan ketentuan sebagai berikut:


Tabel: mahasiswa
Nama Field
Tipe Data
Panjang
Keterangan
nim
Integer
10
Primary Key (PK)
nama
Varchar
45

gender
Varchar
1
L/P
idps
Integer
3
Foreign Key (FK)
idkls
Integer
3
Foreign Key (FK)

Tabel: program_studi
Nama Field
Tipe Data
Panjang
Keterangan
idps
Integer
3
Primary Key (PK)
nama_ps
Varchar
30


Tabel: kelas
Nama Field
Tipe Data
Panjang
Keterangan
idkls
Integer
6
Primary Key (PK)
nama_kls
Varchar
16

idps
Integer
3


Dari ketiga tabel diatas kita mencoba membuat data default dari program studi dan kelas. Data tersebut dapat dilihat sebagai berikut:

Tabel: program_studi
idps
nama_ps
458
Teknik Informatika
461
Sistem Informasi



Tabel: kelas
idkls
nama_kls
idps
1
17.TI.A
458
2
17.TI.B
458
3
17.SI.A
461
4
17.SI.B
461


Kita telah memperloh struktur tabel berikut data-data yang diperlukan untuk membuat aplikasi ini. rancangan tersebut diatas akan kita realisasikan kedalam basis data MySQL. Dimana kita dapat menggunakan phpmyadmin/adminer/sqlyog atau aplikasi pengelola database MySQL lainnya yang biasa kalian gunakan. Hasil dari implementasi kedalam database MySQL adalah sebagai berikut:

Nama Database : db_appmhs

Tabel mahasiswa
Perintah SQL

CREATE TABLE  db_appmhs.mahasiswa (
nim INT( 10 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
nama VARCHAR( 45 ) NOT NULL ,
gender VARCHAR( 1 ) NOT NULL ,
idps INT( 3 ) NOT NULL ,
idkls INT( 6 ) NOT NULL
) ENGINE = INNODB;


Hasil:

Tabel program_studi
Perintah SQL

CREATE TABLE IF NOT EXISTS program_studi (
  idps int(3) NOT NULL AUTO_INCREMENT,
  nama_ps varchar(30) NOT NULL,
  PRIMARY KEY (idps)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=462 ;

INSERT INTO program_studi (idps, nama_ps) VALUES
(458, 'Teknik Informatika'),
(461, 'Sistem Informasi');


Hasil:




Tabel kelas
Perintah SQL

CREATE TABLE IF NOT EXISTS kelas (
  idkls int(6) NOT NULL AUTO_INCREMENT,
  nama_kls varchar(16) NOT NULL,
  idps int(3) NOT NULL,
  PRIMARY KEY (idkls)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;

INSERT INTO kelas (idkls, nama_kls, idps) VALUES
(1, '17.TI.A', 458),
(2, '17.TI.B', 458),
(3, '17.SI.A', 461),
(4, '17.SI.B', 461);


Hasil:

Setelah database siap beserta tabel-tabel yang dibutuhkan juga telah siap maka kita lanjut kebagian coding program dengan menggunakan PHP. Pertama kali secara sederhana kita membuat halaman index.php sebagai portal untuk mengelola data tersebut.

Sourcecode: index.php
<?php
include "koneksi.php";
?>
<!DOCTYPE html>
<html>
<head>
 <title>Aplikasi CRUD mahasiswa dengan PHP dan MySQL</title>
 <style type="text/css">
 body {
  margin:5px;
  font-family: verdana;
  font-size: 12px;
 }
 a { text-decoration: none; color: blue; }
 a:hover { text-decoration: underline; color: green; }
 </style>
</head>
<body>
<h2>Aplikasi CRUD Data Mahasiswa</h2>
<hr>
<a href="index.php">Beranda</a> | 
<a href="index.php?p=mahasiswa"> Mahasiswa</a>
<hr>
<?php
$p = isset($_GET['p'])?$_GET['p']:'';

if($p == "mahasiswa") { include "mahasiswa.php"; }
else { include "beranda.php"; }
?>
<hr>
<div align="center">
&copy; 2017 - <a href='www.belajarwebpedia.com'>belajarwebpedia.com</a>
</div>
</body>
</html>

Kemudian kita buat file koneksi.php yang akan menghubungkan file php dengan database mysql. file koneksi.php ini diletakkan pada file index.php agar dapat dipakai di semua halaman apabila ingin mengakses database. Namun untuk file query kedalam database kita akan meletakannya secara terpisah.

Sourcecode: koneksi.php

<?php
$server = "localhost";
$user   = "root";
$pass = "";
$db  = "db_appmhs";

mysql_connect($server, $user, $pass);
mysql_select_db($db);

?>

sekarang file koneksi.php sudah siap untuk digunakan kemudian kita akan membuat file beranda.php yang digunakan sebagai halaman awal untuk menampilkan informas-informasi yang akan dilihat oleh pengguna. Dalam Artikel Kali ini kita mencoba menampilkan informasi mengenai:

  1. Data mahasiswa per Program Studi
  2. Data mahasiswa per kelas
  3. Data mahasiswa per gender berdasarkan kelas

Bagaimana bentuknya? nanti akan kita revisi setelah crud dari data mahasiswa berhasil dilakukan. untuk sementara supaya pada saat dieksekusi halaman beranda tidak error maka kita dapat membuat kode untuk halaman beranda.php sebagai berikut ini

Sourcecode: beranda.php

<marquee>
 Selamat datang dan silahkan mencoba fitur-fitur yang telah tersedia. Terima kasih.
</marquee>
<hr>

<b>DATA MAHASISWA PER PROGRAM STUDI</b>
<br><br>
<div align="justify">
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
<br><br>
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
</div>

Untuk tulisan lorem ipsum silahkan di copy paste saja. Sekarang kita masuk ke bagian inti yaitu bagaimana menambah data mahasiswa berikut cara untuk mengubah dan menghapusnya. Pada dasarnya kita membuat dahulu sebuah file dengan nama mahasiswa.php yang nantinya menjadi portal dalam mengatur fitur-fitur menambah, mengedit dan menghapus data tersebut. Dengan model kode seperti ini kita akan dimudahkan untuk mengelola kode sumber tepat pada tujuannya sehingga apabila ada kendala pada bagian tertentu maka kita dapat langsung menyelesaikannya pada bagian tersebut.

Secara hirarki susunan dari file yang tersimpan berada pada direktori yang sama. Namun secara alur dapat kita susun sebagai berikut:

mahasiswa.php
--mhs-tambah.php
------mhs-insert,php
--mhs-edit.php
------mhs-update.php
--mhs-delete,php

mungkin susunan diatas lebih tepatnya adalah navigasi dari pengaksesan halaman dimana file mhs-insert.php diakses melalu file mhs-tambah.php, dst..

oke kita mulai dengan membangun kode untuk mahasiswa.php, kode sumbernya dapat dilihat dibawah ini.

Sourcecode: mahasiswa.php
<?php
//copyright www.belajarwebpedia.com
//control tampilan akses menu
$act = isset($_GET['act'])?$_GET['act']:'';
if($act == "tambah") { include "mhs-tambah.php"; }
else if($act == "edit") { include "mhs-edit.php"; }
else {
?>
<h2>Daftar Data Mahasiswa </h2>
<hr>
<a href="index.php?p=mahasiswa&act=tambah">Tambah Data</a>
<hr>
<table width="100%" cellpadding="4" cellspacing="1" bgcolor="#ccc">
<tr>
 <th bgcolor="#eee" width="30">No</th>
 <th bgcolor="#eee" width="100">NIM</th>
 <th bgcolor="#eee">Nama</th>
 <th bgcolor="#eee" width="100">Gender</th>
 <th bgcolor="#eee" width="120">Program Studi</th>
 <th bgcolor="#eee" width="100">Kelas</th>
 <th bgcolor="#eee" width="50">Edit</th>
 <th bgcolor="#eee" width="50">Hapus</th>
</tr>
<?php
$sql   = "SELECT mahasiswa.*, program_studi.nama_ps, kelas.nama_kls FROM mahasiswa
   LEFT JOIN program_studi ON mahasiswa.idps=program_studi.idps
   LEFT JOIN kelas ON mahasiswa.idkls = kelas.idkls ORDER BY nim ASC";
$query = mysql_query($sql);
$total = mysql_num_rows($query);

$no = 1;
while ($data=mysql_fetch_array($query))
{
 if($data[gender] == "L") { $gender = "Laki-laki";}
  else { $gender = "Perempuan";}

 echo "<tr>
   <td bgcolor='#fff'>$no</td>
   <td bgcolor='#fff'>$data[nim]</td>
   <td bgcolor='#fff'>$data[nama]</td>
   <td bgcolor='#fff'>$gender</td>
   <td bgcolor='#fff'>$data[nama_ps]</td>
   <td bgcolor='#fff'>$data[nama_kls]</td>
   <td bgcolor='#fff'>
   <a href='index.php?p=mahasiswa&act=edit&nim=$data[nim]'>Edit</a>
   </td>
   <td bgcolor='#fff'>
   <a href='mhs-delete.php?nim=$data[nim]'>Hapus</a>
   </td>
    </tr>";
$no++;
}
?>
<tr>
 <td colspan="8" bgcolor="#999" style="color: #fff;" >
  Total : <?php echo "$total Data";?>
 </td>
</tr>
</table>
<?php
} //tutup else
?>

Secara umum sourcecode diatas tersusun suatu mekanisme kontrol untuk pengelolaan data mahasiswa dimana terdapat link tambah data, edit data dan hapus data yang masing-masing berfungsi sesuai dengan peruntukannya.

Perintah SQL
SELECT mahasiswa.*, program_studi.nama_ps, kelas.nama_kls FROM mahasiswa
   LEFT JOIN program_studi ON mahasiswa.idps=program_studi.idps
   LEFT JOIN kelas ON mahasiswa.idkls = kelas.idkls ORDER BY nim ASC

Merupakan query penggabungan 3 buah tabel dengan perintah LEFT JOIN dimana akan menampilkan semua data dari tabel mahasiswa dan data-data yang berelasi dari tabel program_studi dan tabel kelas.

Sourcecode: mhs-tambah.php
<h2>Tambah Data Mahasiswa</h2>
<hr>
<form action="mhs-insert.php" method="post">
<table border="0" width="100%">
<tr>
 <td width="120">NIM</td>
 <td>: <input type="text" name="nim" required></td>
</tr>
<tr>
 <td width="120">Nama Lengkap</td>
 <td>: <input type="text" name="nama" required></td>
</tr>
<tr>
 <td width="120">Gender</td>
 <td>: <input type="radio" name="gender" value="L" checked> Laki-laki 
    <input type="radio" name="gender" value="P"> Perempuan 
 </td>
</tr>
<tr>
 <td width="120">Program Studi</td>
 <td>: <select name="idps">
    <?php
    $q=mysql_query("SELECT * FROM program_studi");
    while($d=mysql_fetch_array($q))
    {
     echo "<option value='$d[idps]'> $d[nama_ps] </option>";
    }
    ?>
    </select>
 </td>
</tr>
<tr>
 <td width="120">Kelas</td>
 <td>: <select name="idkls">
    <?php
    $q=mysql_query("SELECT * FROM kelas");
    while($d=mysql_fetch_array($q))
    {
     echo "<option value='$d[idkls]'> $d[nama_kls] </option>";
    }
    ?>
    </select>
 </td>
</tr>
<tr>
 <td width="120"></td>
 <td>&nbsp; <input type="submit" value="Simpan Data"></td>
</tr>
</table>
</form>


Sourcecode: mhs-insert.php
<?php
// copyright www.belajarwebpedia.com
include "koneksi.php";

$nim  = trim($_POST[nim]);
$nama  = trim($_POST[nama]);
$gender = trim($_POST[gender]);
$idps  = trim($_POST[idps]);
$idkls  = trim($_POST[idkls]);

//cek tidak boleh ada nim yang sama
$cek = mysql_num_rows(mysql_query("SELECT * FROM mahasiswa WHERE nim='$nim' "));
if ($cek == 0)
{
 $sql = "INSERT INTO mahasiswa (nim, nama, gender, idps, idkls) VALUES 
    ('$nim', '$nama', '$gender', '$idps', '$idkls') ";
 mysql_query($sql);
 $pesan = "Data berhasil tersimpan";
}
else { $pesan = "Maaf NIM telah terdaftar"; }
?>
<script>
 alert('<?php echo $pesan;?>');
 location='index.php?p=mahasiswa';
</script>


Diatas adalah sourcecode dari aplikasi CRUD mahasiswa yang dapat digunakan untuk mengelola data mahasiswa khususnya menambah dan menampilkan data mahasiswa. Untuk sourceode EDIT dan HAPUS data dapat mendownload sourcecode lengkapnya melalui link dibawah. Silahkan dicoba dan semoga bermanfaat ^^

Apabila ada pertanyaan dapat mengirimkan pertanyaan tersebut melalui komentar. Untuk Mendownload sourcode lengkapnya dapat di download dari link dibawah ini.

Membuat CRUD Data Mahasiswa Dengan PHP dan MySQL | Download


Labels: Aplikasi Web, MySQL, PHP, Tutorial

Terima kasih telah membaca Membuat CRUD Data Mahasiswa Dengan PHP dan MySQL. Bila bermanfaat boleh di share yah :)

1 Comment for "Membuat CRUD Data Mahasiswa Dengan PHP dan MySQL"

Wah Bagus Pak, Sanggat Membantu. terlebih materinya sanggat detail

Back To Top