Membuat laporan detail bercabang dengan php

Membuat laporan detail bercabangKali ini saya ingin bahas tentang bagaimana membuat laporan detail bercabang dengan php. Maksud bercabang disini adalah sebuah laporan memiliki sub detail, dan didalam sub masih ada lagi laporan lagi sesuai sub yang dipilih.  Saya beri contoh kasus informasi pada sebuah perguruan tinggi. Dalam sebuah universitas terdapat beberapa fakultas, dalam sebuah fakultas terdapat beberapa jurusan.

Dari contoh kasus diatas, sebenarnya kemungkinan sub laporanya masih ada misal dalam sebuah jurusan ada banyak kelas, dalam sebuah kelas ada banyak mahasiswa, tiap mahasiswa memiliki banyak mata kuliah atau nilai dst. Tapi saya tidak bahas sampai detail itu, cukup sampai ke level jurusan.

Berikut ini contoh desain tabel datanya (saya buat minimal dilarang protes) :

Nama database : db_univ (silahkan di create sendiri). Kemudian buat tabelnya :

tabel universitas

kode_univ int(11) primary auto number
nama_niv varchar(30)

tabel fakultas

kode_fak int(11) primary auto number
kode_univ int(11)
nama_fak varchar(30)

tabel jurusan

kode_jur int(11) primary auto number
kode_fak int(11)
nama_jur varchar(30)

Ini query create tabel dan datanya :

CREATE TABLE IF NOT EXISTS `tb_fak` (
  `kode_fak` int(11) NOT NULL AUTO_INCREMENT,
  `kode_univ` int(11) NOT NULL,
  `nama_fak` varchar(30) NOT NULL,
  PRIMARY KEY (`kode_fak`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

CREATE TABLE IF NOT EXISTS `tb_jur` (
  `kode_jur` int(11) NOT NULL AUTO_INCREMENT,
  `kode_fak` int(11) NOT NULL,
  `nama_jur` varchar(30) NOT NULL,
  PRIMARY KEY (`kode_jur`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

CREATE TABLE IF NOT EXISTS `tb_univ` (
  `kode_univ` int(11) NOT NULL AUTO_INCREMENT,
  `nama_univ` varchar(30) NOT NULL,
  PRIMARY KEY (`kode_univ`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

INSERT INTO `tb_fak` (`kode_fak`, `kode_univ`, `nama_fak`) VALUES
(1, 1, 'Fak. Teknik'),
(2, 2, 'Fak. Ekonomi'),
(3, 1, 'Fak. Fisip');

INSERT INTO `tb_jur` (`kode_jur`, `kode_fak`, `nama_jur`) VALUES
(1, 1, 'Tek. Informasi'),
(2, 1, 'Tek. Mesin');

INSERT INTO `tb_univ` (`kode_univ`, `nama_univ`) VALUES
(1, 'UNIV. JAYA'),
(2, 'UNIV. MERDEKA');

Kita mulai membuat koneksi database (koneksi.php) dengan isi seperti berikut :

<?php
   $dbserver="localhost";
   $dbusername="root";
   $dbpassword="";
   $dbname="db_univ";
   mysql_connect($dbserver,$dbusername,$dbpassword) or die(mysql_error());
   mysql_select_db($dbname) or die (mysql_error());
?>

Kita mulai dari membuat laporan universitas, seperti kode berikut :

<?php
	include("koneksi.php");
?>
<html>
<head>
<title>Daftar Universitas</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<h2 align="center">Daftar Universitas</h2>
<table width="400" border="1" align="center" cellpadding="3" cellspacing="0">
  <tr>
    <td>Nama Universitas</td>
    </tr>
<?php
   $myquery="select kode_univ,nama_univ from tb_univ";
   $laporan=mysql_query($myquery) or die (mysql_error());
   while($rec=mysql_fetch_object($laporan))
   {
?>
  <tr>
    <td><a href="laporan-fak.php?kode_univ=<?php echo  $rec->kode_univ?>"><?php echo  $rec->nama_univ?></a></td>
    </tr>
<?php
   }
?>
</table>
<div align="center">
<div align="center"><a href="javascript:history.back()">Kembali</a>
</div>
</body>
</html>

Jika anda jalankan hasilnya seperti ini :

contoh laporan universitas

Dari laporan universitas, jika di klik salah satu nama universitas maka akan dihubungkan dengan daftar nama fakultas pada masing-masing universitas. Untuk laporan fakultas, hampir mirip dengan laporan universitas hanya sedikit dimodifikasi tampilan dan querynya. Lihat script berikut :

<?php
	include("koneksi.php");
?>
<html>
<head>
<title>Laporan Data Mahasiswa</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<h2 align="center">Daftar Fakultas</h2>
<table width="400" border="1" align="center" cellpadding="3" cellspacing="0">
  <tr>
    <td>Nama Fakultas</td>
    </tr>
<?php
   $myquery="select kode_fak,nama_fak from tb_fak where kode_univ='".$_GET['kode_univ']."'";
   $laporan=mysql_query($myquery) or die (mysql_error());
   while($rec=mysql_fetch_object($laporan))
   {
?>
  <tr>
    <td><a href="laporan-jur.php?kode_fak=<?php echo  $rec->kode_fak?>"><?php echo  $rec->nama_fak?></a></td>
    </tr>
<?php
   }
?>
</table>
<div align="center"><a href="javascript:history.back()">Kembali</a>
</div>
</body>
</html>

Jika universitas dipilih maka tampil halaman laporan fakultas seperti berikut :

contoh laporan fakultas

Laporan diatas, adalah fakultas yang berada pada universitas yang sudah dipilih. Pada laporan fakutas, kita bisa memilih lagi fakultas mana yang akan kita lihat jurusanya. Laporan jurusan, juga tidak berbeda jauh dengan laporan universitas dan fakultas. Scripnya seperti ini :

<?php
	include("koneksi.php");
?>
<html>
<head>
<title>Laporan Data Mahasiswa</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<h2 align="center">Daftar Jurusan</h2>
<table width="400" border="1" align="center" cellpadding="3" cellspacing="0">
  <tr>
    <td>Nama Jurusan</td>
    </tr>
<?php
   $myquery="select kode_jur,nama_jur from tb_jur where kode_fak='".$_GET['kode_fak']."'";
   $laporan=mysql_query($myquery) or die (mysql_error());
   while($rec=mysql_fetch_object($laporan))
   {
?>
  <tr>
    <td><?php echo  $rec->nama_jur?></td>
    </tr>
<?php
   }
?>
</table>
<div align="center"><a href="javascript:history.back()">Kembali</a>
</div>
</body>
</html>

Dan hasilnya jika anda pilih fakultas maka muncul laporan jurusan seperti ini :

contoh laporan jurusan

Dari contoh-contoh script diatas, kita bisa buat sub lagi dibawah laporan jurusan. Misal dengan memilih jurusan, kita tampilkan nama mahasiswa, dari nama mahasiswa kita tampilkan nilai dst.

Mudahan ini bisa menginspirasi anda yang sedang galau dalam hal laporan detail yang bercabang.

Silahkan download contoh laporan detail bercabang dengan php ini.

Selamat mencoba dan semoga bisa diterapkan pada kasus-kasus lainnya

Zainal Hakim

** Bebas disunting dengan menyebutkan sumber **

Komentar

Halaman Lainya

  • Membuat pesan error sendiri dengan php
    Pesan error yang sering kita temui di lingkungan pemrograman php sangat beragam tergantung proses apa yang sedang dilakukan. Contoh paling gampang seperti gagalnya melakukan koneksi database, gagalnya menjalankan query, atau salahnya penggunaan sebuah function. Secara mendasar memang semua error akan muncul dilayar tanpa diminta dengan format seadanya (bawaan php). Bagaimana jika kita ingin membuat bentuk tampilan error sendiri?? ini bisa kita lakukan selama yang salah bukan cara penulisan phpnya. Caranya akan saya bahas pada artikel ini.
  • Membuat aplikasi data mahasiswa dengan PHP - Bagian 1
    Pada artikel ini saya akan menjelaskan langkah-langkah secara lengkap membuat aplikasi data mahasiswa dengan php. Bahasan akan saya bagi menjadi beberapa bagian yaitu Langkah Membuat database, Membuat koneksi database, membuat menu utama, membuat form input data, membuat proses simpan dan upload gambar, membuat laporan membuat pencarian, membuat delete data, membuat form update, membuat proses update, membuat tabel login, membuat proses login, dan terakhir membuat proses logout.
  • Menghitung umur dengan php
    Menghitung umur dengan php. Sering kali jika kita membuat aplikasi web dengan php yang berhubungan dengan data personal seperti karyawan, siswa, mahasiswa, dan pasien kita ingin menampilkan informasi umur yang dihitung dari tanggal lahirnya. Berikut ini contoh kode singkat cara melakukan perhitungan umur dengan php.
  • Membuat fungsi cek data mysql dengan php
    Proses pengecekan apakah data sudah ada dalam database tentunya pasti kita lakukan berulang-ulang dalam sebuah aplikasi php. Untuk mempermudah proses pengecekannya kita memerlukan sebuah fungsi/function yang gampang dipanggil setiap saat. Berikut ini saya ingin berbagi tentang bagaimana membuat fungsi tersebut.
  • Masalah seputar upload file dengan php
    Minat terhadap bahasan tentang upload file dengan php kayanya sangat tinggi, ini saya lihat dari banyaknya pengunjung yang datang ke situs saya ini mencari informasi tentang bagaimana membuat form upload, membuat upload ke database dll. Oleh karena itu saya akan berbagi informasi tentang hal yang sering terjadi pada saat membuat fasilitas upload file dengan php, mudahan ini berguna buat teman-teman yang sedang mendalaminya.

Kiriman terbaru