Pemrograman Web 2


Selasa, 22 November 2011

Membuat Pengkodean Otomatis Pada Field Tabel


Assalamualaikum, Saya ingin berbagi ilmu atau informasi tentang programming, yakni php dan mysql. Biasanya pada saat belajar php dan mysql, dalam materi buku tamu dan lain-lain, pada saat pembuatan id_tamu, kode_tamu dan sebagainya, tipe data field yang digunakan adalah int(3) dan menggunakan extra : autoincrement, dan primary key : mencegah data yang sama.

1 CREATE TABLE `tamu` (
2 `id_tamu` INT( 3 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
3 `nama` VARCHAR( 25 ) NOT NULL ,
4 `pesan` VARCHAR( 25 ) NOT NULL
5 ) ENGINE = MYISAM ;

Nah sekarang kita ubah kebiasan tersebut, menggunakan kode auto, pada saat dijalankan dilocalhost, data tersebut akan bertambah otomatis. Caranya adalah dengan membuat fungsi buatan seperti berikut. Dalam tutorial ini saya hanya menampilkan hasilnya saja, saya yakin kamu bisa membuat database, dan table sendiri dan file koneksi.php nya sendiri. 

 

Langkah 1

Buka aplikasi web editor kesukaan kamu, disini saya menggunakan Adobe Dreamweaver CS3. Lalu ketik kode seperti berikut :

1 <?php
2 function kdauto($tabel, $inisial){
3 $struktur = mysql_query("SELECT * FROM $tabel");
4 $field = mysql_field_name($struktur,0);
5 $panjang = mysql_field_len($struktur,0);
6 $qry  = mysql_query("SELECT max(".$field.") FROM ".$tabel);
7 $row  = mysql_fetch_array($qry);
8 if ($row[0]=="") {
9 $angka=0;
10 }
11 else {
12 $angka= substr($row[0], strlen($inisial));
13 }
14 $angka++;
15 $angka      =strval($angka);
16 $tmp  ="";
17 for($i=1; $i<=($panjang-strlen($inisial)-strlen($angka)); $i++) {
18 $tmp=$tmp."0";
19 }
20 return $inisial.$tmp.$angka;
21 }
22 ?>

 
Simpan dengan nama kode_auto.php

Langkah 2

Nah pada saat pembuatan table, pada filed id_tamu kita ubah type datanya menjadi varchar, tidak diberi auto increment, dan primary key. Seperti contoh berikut :


1 CREATE TABLE `tamu` (
2 `id_tamu` VARCHAR(5 ) NOT NULL,
3 `nama` VARCHAR( 25 ) NOT NULL ,
4 `pesan` VARCHAR( 25 ) NOT NULL
5 ) ENGINE = MYISAM ;


Langkah 3

Kapan kode ini digunakan ??
Pada saat pembuatan form. Letakan kode ini di dalam value textfield yang digunakan. Buat dua textfield satu untuk ditampilkan satu untuk dihidden (disembunyikan), pastikan diatas tag html, kamu sudah menulis include koneksi ke database dan file kode_auto.php. Seperti kode berikut :

1 <?php
2 Include “koneksi.php”;
3 Include “kode_auto.php”;
4 ?>
5 <input name="id_tamu" type="text"  maxlength="6" size="6" value="<?
  echo kdauto("tamu","T"); ?>" disabled="disabled">
6 <input name="id_tamu" type="hidden" value="<? 
  echo kdauto("tamu","T"); ?>">

Berikut tampilan hasil nya saat dijalankan dilocalhost :
 


Berikut Kode selengkapnya :
File form_tamu.php

1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
3 <head>
4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
5 <title>Untitled Document</title>
6 </head>
7 <body>
8 <?php
9 include "koneksi.php";
10 include  "kode_auto.php";
11 ?>
12 <form id="form1" name="form1" method="post" action="">
13 <p>nomor tamu
14 <input name="id_tamu" type="text" id="id_tamu" value="<?
   echo kdauto("tamu","T"); 15?>" disabled="disabled" />
15 <input name="id_tamu" type="hidden" id="id_tamu" value="<? 
   echo 17 kdauto("tamu","T"); ?>" />
16 </p>
17 <p>nama tamu
18 <input type="text" name="nama" id="nama" />
19 </p>
20 <p>
21 pesan
22 <input type="text" name="textfield3" id="textfield3" />
23 </p>
24 <p>
25 <input type="submit" name="button" id="button" value="Kirim" />
26 </p>
27 </form>
28 </body>
29 </html>

File koneksi.php 

1 <?php
2 mysql_connect("localhost", "root", "123456");
3 mysql_select_db("data") or die ("tidak ada database ".mysql_error());
4 ?>

Kode table database

1 CREATE TABLE `tamu` (
2 `id_tamu` varchar(5) NOT NULL,
3 `nama` varchar(25) NOT NULL,
4 `pesan` varchar(25) NOT NULL,
5 PRIMARY KEY  (`id_tamu`)
6 ) ENGINE=MyISAM DEFAULT CHARSET=utf8;

File kode_auto.php

1 <?php
2 function kdauto($tabel, $inisial){
3 $struktur   = mysql_query("SELECT * FROM $tabel");
4 $field  = mysql_field_name($struktur,0);
5 $panjang  = mysql_field_len($struktur,0);
6 $qry  = mysql_query("SELECT max(".$field.") FROM ".$tabel);
7 $row  = mysql_fetch_array($qry);
8 if ($row[0]=="") {
9 $angka=0;
10 }
11 else {
12 $angka= substr($row[0], strlen($inisial));
13 }
14 $angka++;
15 $angka =strval($angka);
16 $tmp  ="";
17 for($i=1; $i<=($panjang-strlen($inisial)-strlen($angka)); $i++) {
18 $tmp=$tmp."0";
19 }
20 return $inisial.$tmp.$angka;
21 }
22 ?>

Fungsi dari kode diatas bisa kamu gunakan untuk tabel database yang lain, karena sifatnya fleksibel, memanggil nama tabel yang dibuat dalam database. Semoga bermanfaat jika masih bingung silahkan berkomen - komen dibawah ya, jangan lupa makasih atas like nya.


Sumber :
http://news.palcomtech.com/2011/07/membuat-pengkodean-otomatis- pada-field-tabel/

6 komentar:

  1. langkah 2, knp pada filed id_tamu kita ubah type datanya menjadi varchar, tidak diberi auto increment, dan primary key?

    BalasHapus
  2. ap alsanya pd langkah k 2 it tdk d bri auto increment dan primary key.
    mksh

    BalasHapus
  3. ad cra yg lain gak bwt pengkodeannya?

    BalasHapus
  4. Itukan T0001 gimana gan kalau saya ingin awalannya A0001
    soalnya saya ganti dengan A gak mau gannti nomor nya ke angka selanjut ya butuh pencerahan gan

    BalasHapus