Script PHP Updating Data Secara Simultan (Studi Kasus Update Nilai Kuliah Mahasiswa)

Dalam kasusnya menceritakan bahwa ingin membuat aplikasi untuk keperluan update nilai siswa. Namun tidak ingin proses update nilainya satu-persatu, namun bisa secara simultan sekaligus. Proses ini terjadi ketika dalam proses entri nilai mata pelajaran.

Perlu diketahui bahwa ketika siswa mengambil pelajaran, terlebih dahulu data siswa dan mata pelajaran yang diikutinya disimpan ke dalam database, namun belum ada nilainya (nilainya 0). Begitu nilai sudah ada dan ingin diinputkan, maka proses updatelah yang terjadi. Nah… proses updatenya bisa dilakukan sekaligus secara simultan dan tidak satu-satu. Kalau satu-satu jadi repot, apalagi kalau jumlah siswanya banyak.

dalam artikel ini akan dibahas teknik atau ide untuk membuat aplikasi seperti yang dimaksud diatas, namun dengan sedikit modifikasi dalam kasusnya. Kali saya ambil kasus proses update nilai kuliah mahasiswa.

Untuk keperluan pembahasannya dalam studi kasus ini, kita siapkan terlebih dahulu tabel dan datanya sebagai berikut :


CREATE TABLE mhs (
   nim varchar(10),
   namamhs varchar(30),
   alamat text,
   sex varchar(10),
   PRIMARY KEY(nim)
);
CREATE TABLE mk (
   kodemk varchar(5),
   namamk varchar(20),
   sks int(11),
   smt int(11),
   PRIMARY KEY(kodemk)
);
CREATE TABLE ambilmk (
   nim varchar(10),
   kodemk varchar(5),
   nilai float,
   PRIMARY KEY(nim,kodemk)
);
INSERT INTO mhs VALUES ('M0197001', 'ROSIHAN ARI YUANA', 'COLOMADU', 'L');
INSERT INTO mhs VALUES ('M0197002', 'DWI AMALIA FITRIANI', 'KUDUS', 'P');
INSERT INTO mhs VALUES ('M0197003', 'FAZA FAUZAN KH.', 'COLOMADU', 'L');
INSERT INTO mhs VALUES ('M0197004', 'NADA HASANAH', 'COLOMADU', 'P');
INSERT INTO mhs VALUES ('M0197005', 'MUH. AHSANI TAQWIM', 'COLOMADU', 'L');

INSERT INTO mk VALUES ('K001', 'KALKULUS II', 3, 4);
INSERT INTO mk VALUES ('K004', 'NUMERIK', 3, 4);

INSERT INTO ambilmk VALUES ('M0197001', 'K001', 0);
INSERT INTO ambilmk VALUES ('M0197002', 'K001', 0);
INSERT INTO ambilmk VALUES ('M0197003', 'K001', 0);
INSERT INTO ambilmk VALUES ('M0197004', 'K001', 0);
INSERT INTO ambilmk VALUES ('M0197005', 'K004', 0);

Perhatikan pada sampel tabel dan data di atas bahwa, misalkan hanya terdapat 2 matakuliah yang ada (Kalkulus II dan Numerik). Sedangkan mahasiswa yang mengambil ‘Kalkulus II’ ada 4 orang yaitu yang bernim ‘M0197001′, ‘M0197002′, ‘M0197003′, dan ‘M0197004′. Tampak pula bahwa nilai matakuliah tersebut untuk keempat mahasiswa adalah masih 0 (belum diinputkan nilainya).
Selanjutnya kita coba desain skenario untuk proses update nilai secara simultan ini. Skenario pertama adalah memilih nama matakuliah yang akan kita update nilainya (lihat gambar di bawah ini)



Photobucket

Setelah dipilih nama matakuliah, akan muncul daftar form nilai untuk semua mahasiswa yang mengambil matakuliah tersebut. Nah.. di form inilah kita kan lakukan proses entri nilai atau edit nilai untuk mahasiswanya.

Photobucket
Photobucket

Contoh tampilan di atas menggambarkan proses update nilai mahasiswa yang mengambil ‘Kalkulus II’ OK.. skenario sudah, berikutnya kita mulai buat aplikasinya. Pertama kita buat form untuk memilih nama matakuliahnya terlebih dahulu.

formnilai.php

<?php
// koneksi ke mysql
mysql_connect("dbhost", "dbuser", "dbpass");
mysql_select_db("dbname");
?>

<form method="post" action="submit.php">
Pilih Mata Kuliah :
<select name="mk">
<?php
// query untuk menampilkan semua matakuliah dari tabel 'mk'
$query = "SELECT * FROM mk";
$hasil = mysql_query($query);
while ($data = mysql_fetch_array($hasil))
{
  echo "<option value='".$data['kodemk']."'>".$data['namamk']."</option>";
}
?>
<input type="submit" value="Submit" name="submit" />
</select>
</form> 

Keterangan:

Nilai yang disubmit oleh form di atas menuju submit.php adalah kode matakuliahnya. Selanjutnya kita buat script submit.php. Script ini nanti akan memunculkan form update nilai untuk semua mahasiswa yang mengambil matakuliah yang dipilih dari formnilai.php

submit.php

<h1>Update Nilai</h1>

<form method="post" action="update.php">
<table border="1">
<tr><td>No</td><td>NIM</td><td>Nilai</td></tr>

<?php
mysql_connect("dbhost", "dbuser", "dbpass");
mysql_select_db("dbname");

// membaca kode matakuliah yang disubmit dari formnilai.php
$kodeMK = $_POST['mk'];

// menampilkan data nim dan nilai mahasiswa yang mengambil matakuliah berdasarkan kode MK
$query = "SELECT nim, nilai FROM ambilmk WHERE kodemk = '$kodeMK'";

$hasil = mysql_query($query);

// inisialisasi counter
$i = 1;
while ($data = mysql_fetch_array($hasil))
{
   echo "<tr><td>".$i."</td><td>".$data['nim']."</td><td><input type='hidden' name='mhs".$i."' value='".$data['nim']."' />
         <input type='text' name='nilai".$i."' value='".$data['nilai']."' /></td></tr>";
   $i++;
}
$jumMhs = $i-1;
?>
</table><br />
<input type="hidden" name="n" value="<?php echo $jumMhs ?>" />
<input type="hidden" name="kodemk" value="<?php echo $kodeMK;?>">
<input type="submit" value="Update" name="submit" />
</form>

Terakhir… kita buat script update.php nya



<?php
mysql_connect("dbhost", "dbuser", "dbpass");
mysql_select_db("dbname");

// membaca jumlah mahasiswa (n) dari submit.php
$jumMhs = $_POST['n'];

// membaca kode MK yang akan diupdate
$kodeMK = $_POST['kodemk'];

// proses looping untuk membaca nilai dan nim mahasiswa dari form, serta menjalankan query update
for ($i=1; $i<=$n; $i++)
{
   // membaca nim mahasiswa ke-i, i = 1, 2, 3, ..., n
   $nimMhs = $_POST['mhs'.$i];

   // membaca nilai mahasiswa ke-i, i = 1, 2, 3, ..., n
   $nilai  = $_POST['nilai'.$i];

   // update nilai mahasiswa ke-i, i = 1, 2, 3, ..., n
   $query = "UPDATE ambilmk SET nilai = $nilai WHERE nim = '$nimMhs' AND kodemk = '$kodeMK'";
   mysql_query($query);
}

echo "<h2>Update nilai sukses</h2>";

?>


Artikel Dari : http://blog.rosihanari.net/script-php-updating-data-secara-simultan-studi-kasus-update-nilai-kuliah-mahasiswa/

1 Comments

  1. mas sya punya kasu membuat raport siswa smp.
    ada source codenya kah

    ReplyDelete
Previous Post Next Post