Komitmen Kami

Kami adalah sekelompok orang yang sadar akan pentingnya ilmu :: Orang lain bisa saja berfikir sebaliknya :: Mungkin ini juga sejalan dengan pemahaman kami :: Ini sangat tergantung sudut pandang sebuah ilmu ::

Tetap Dalam Komitmen

Tetapi bagi kami tidak ada kata lain :: Menguasai ilmu adalah segalanya :: Entah sampai kapan kami memegang prinsip ini :: Namun kami yakin bahwa segalanya butuh ilmu ::

Teguh Dalam Komitmen

Indonesia harus menjunjung ini setinggi tingginya :: Lembaga terkai harus mampu mendukung sepenuh hati :: Majukan anak bangsa dari sisi kecerdasan :: Untuk bekal kemandirian dan kemajuan serta kebesaran bangsa ::

Dalam Komitmen

Tekad kami kedepan adalah pasti :: Ilmu harus bisa diciptakan dan digunakan bersama :: Jika kami sadar ilmu datang dan hadir bukan karena kami ciptakan :: Untuk sebaliknya kamipun sadar ilmu datang dan hadir diciptakan untuk kami ::

Kami Bukan Siapa - siapa Tanpa Kalian

Namun ilmu harus terus dilakukan pengkajian, penelitian, pengembangan dan pengabdian :: Akhirnya ilmupun harus mendapat pengakuan dan manfaat :: Ilmu kami tidak hanya berfikir sebatas apa yang kami ketahui dan dapat kami lakukan :: Dan lebih jauh dari itu kami berfikir tentang apa yang tidak kami ketahui dan tidak dapat kami lakukan :: Ilmu kami tidak hannya mencapai batas maksimal kemampuan, lebih jauh dari itu kami harus berfikir menembus batas, sehingga diluar batas maksimal kemampuan.

Senin, 13 Agustus 2012

Membuat Trigger di MySQL

Pendahuluan
Trigger adalah suatu objek database yang merupakan aksi atau prosedur yang dilakukan jika terjadi perubahan pada row data suatu table. Trigger tidak dapat menjadi bagian dari temporary table atau view.

Beberapa contoh penggunaan trigger yang sangat berguna adalah jika kita ingin melakukan kalkulasi tertentu yang tidak perlu "diketahui" aplikasi luar, mencatat aktivitas operasi table misalkan untuk kepentingan change data capture (CDC), dan lain-lain.

Pembuatan Trigger
Kita dapat membuat trigger dengan perintah CREATE TRIGGER. Berikut adalah syntax lengkapnya :

CREATE
    [DEFINER = { user | CURRENT_USER }]
    TRIGGER trigger_name trigger_time trigger_event
    ON tbl_name FOR EACH ROW trigger_body

Keterangan :
  • trigger_name : nama trigger.
  • trigger_time : kapan kita mengeksekusi trigger, apakah sebelum atau sesudah perubahan pada row data table. Jadi pilihannya adalah AFTER atau BEFORE.
  • trigger_event : merupakan event atau peristiwa yang menyebabkan trigger dilakukan. Pilihan event tersebut adalah INSERT, UPDATE, DELETE.
  • tbl_name : nama table.
  • trigger_body : statement-statement perintah SQL yang akan dilakukan. Jika perintahnya lebih dari satu maka gunakan dalam blok statement BEGIN ... END.
  • Jika DEFINER dispesifikasikan maka kita memutuskan trigger tersebut dijalankan hanya oleh user tertentu (dalam format penulisan user@host). Jika tidak dispesifikasikan, maka user yang melakukan perubahan (CURRENT_USER) adalah pilihan default.
Referensi "OLD" dan "NEW"
Karena trigger digunakan pada saat terjadi perubahan row data, maka kita perlu referensi ke row sebelum dan sesudah perubahan. Untuk ini ada dua alias yang berfungsi untuk hal tersebut yaitu OLD dan NEW. 

Sesuai namanya, OLD digunakan untuk referensi sebelum perubahan dan NEW untuk referensi sesudah perubahan.

Contoh Penggunaan : Trigger After Delete
Berikut adalah contoh penggunaan trigger untuk event setelah penghapusan (AFTER DELETE) pada table "tr_penjualan"  - database phi_minimart. Langkah yang akan kita lakukan adalah sebagai berikut :
  1. Kita akan membuat satu table audit dengan nama "tr_penjualan_hapus" yang berisi row-row yang dihapus dari table "tr_penjualan" dengan tambahan dua field, yaitu tanggal penghapusan (tgl_perubahan) dan user MySQL yang melakukan hal tersebut (nama_user).

    Berikut adalah perintahnya :
USE phi_minimart;
 
CREATE TABLE `tr_penjualan_hapus` LIKE `tr_penjualan`;
 
ALTER TABLE `tr_penjualan_hapus` ADD
        (
        `tgl_perubahan` DATETIME,
        `nama_user` VARCHAR(200)
        );

  1. Tahap berikutnya adalah membuat trigger yang akan melakukan populasi data yang dihapus dari "tr_penjualan" ke table "tr_penjualan_hapus".

    Berikut adalah perintahnya :
DELIMITER |
 
CREATE TRIGGER hapus_tr_penjualan AFTER DELETE
    ON tr_penjualan FOR EACH ROW
BEGIN
  INSERT INTO tr_penjualan_hapus
        (       tgl_transaksi,
                kode_cabang,
                kode_kasir,
                kode_item,
                kode_produk,
                jumlah_pembelian,
                tgl_perubahan,
                nama_user
        )
  VALUES
        (       OLD.tgl_transaksi,
                OLD.kode_cabang,
                OLD.kode_kasir,
                OLD.kode_item,
                OLD.kode_produk,
                OLD.jumlah_pembelian,
                SYSDATE(),
                CURRENT_USER
        );
END;
 
|
 
DELIMITER ;

  1. Setelah trigger di atas kita buat, sekarang saatnya kita melakukan pengujian. Coba hapus tiga row data dari table "tr_penjualan" dan lihat efeknya di table "tr_penjualan_hapus".

    Jalankan perintah berikut :
DELETE FROM tr_penjualan LIMIT 3;
 
SELECT * FROM tr_penjualan_hapus;

Description: http://mysql.phi-integration.com/_/rsrc/1296749472301/sql/membuat-trigger-di-mysql/hasil_trigger.png

Terlihat pada gambar di atas 3 row yang dihapus telah "pindah" ke table "tr_penjualan_hapus" dengan tambahan informasi waktu penghapusan dan user yang menghapus.
  1. Selesai.
Sumber Referensi

Random AutoNumber - php

Assalamu'alaikum gan, sudah cukup lama sepertinya web-buya belum update artikel lagi, dan Alhamdulillah pada kesempatan kali ini saya akan coba share php cara buat nomor atau kode unik otomatis untuk no faktur ataupun transaksi baik secara berurutan maupun secara acak. Sebelum saya bahas, sekali lagi kami mohon maaf dan harap maklum jika web-buya jarang update artikel lagi dikarenakan harus melakukan beberapa aktifitas lainya, sehingga tidak cukup waktu untuk update, namun kami akan berusaha sebisa mungkin untuk tetap update.

Kita langsung ke pembahasan bagaimana cara membuat kode unik  cara acak maupun berurutan untuk no faktur ataupun transaksi.

Kita mungkin sering melihat pada form pesanan transaksi biasanya terdapat no faktur atau no transaksi yang terdiri dari beberapa digit angka atau huruf, pernahkah anda bayangkan itu dibuat manual atau secara otomatis ?, tentunya itu dibuat secara otomatis oleh scipt yg akan saya bahas dibawah nanti, karena bisa repot dan kwalahan jika harus membuatnya secara manual.
Untuk yang pertama kita akan buat No transaksi secara urut alias tidak acak, misal : kode1, kode2, kode3 dan seterusnya. Untuk scriptnya silahkan masukan script berikut pada form input data anda :

<?php
function noauto($tabel, $inisial){
$struktur   = mysql_query("SELECT * FROM $tabel");
$field      = mysql_field_name($struktur,1);
$panjang    = mysql_field_len($struktur,1);
 
$qry  = mysql_query("SELECT max(".$field.") FROM ".$tabel);
$row  = mysql_fetch_array($qry);
if ($row[0]=="") {
$angka=0;
}
else {
$angka= substr($row[0], strlen($inisial));
}
$angka++;
$angka      =strval($angka);
$tmp  ="";
for($i=1; $i<=($panjang-strlen($inisial)-strlen($angka)); $i++) {
$tmp=$tmp."0" < 6;
}
return $inisial.$tmp.$angka;
}
 
?>
dan pada form inputan tuliskan contoh script seperti ini pada baris kolom No transaksi anda : <input name="kode_pemesan" type="text" id="kode_pemesan" value="<? echo noauto("pemesan","kode"); ?>" size="10"/ readonly> , yang berada didalam kurung noauto("pemesan") ini nama tabel untuk menerima data pesanan, dan silahkan sesuaikan dengan nama tabel punya agan.
Untuk selanjutnya kita akan buat contoh No unik secara acak yang hanya berupa angka, misal 68721, 55804, 15278 dan seterusnya. jadi hanya terdiri dari angka saja, namun angka" tersebut digenerate otomatis secara acak. Untuk scriptnya silahkan copy dibawah ini dan masukan pada form inputan anda.
<?php
$kode_ps=array('0','1','2','3','4','5','6','7','8','9');
shuffle($kode_ps);
reset($kode_ps);
$no=0;
foreach($kode_ps as $line)
{
$kode_pesanan.=strtoupper($line);
$no++;
if (($no >= 5)) break;
  }
?>

dan pada form inputan tuliskan contoh script seperti ini pada baris kolom No transaksi anda : <input name="kode_pesanan" type="text" id="kode_pesanan" value="" size="10"/ readonly> hampir sama seperti diatas, cuma pada isi value nya diganti dengan script ini : <? echo $kode_pesanan;?> .
Untuk yang terakhir kita akan buat contoh No Faktur kombinasi dari angka dan hurup. Untuk scriptnya silahkan copy dibawah ini :
<?
$faktur=array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','0','1','2','3','4','5','6','7','8','9');
shuffle($faktur);
reset($faktur);
$no=0;
foreach($faktur as $line)
{
$kode_faktur.=strtoupper($line);
$no++;
if (($no >= 6)) break;
}
?>
dan pada form inputan tuliskan contoh script seperti ini pada baris kolom No transaksi anda : 
<input name="kode_pesanan" type="text" id="kode_pesanan" value="" size="10"/ readonly> 

hampir sama seperti diatas, cuma pada isi value nya diganti dengan script ini :  
<? echo $kode_faktur;?>. 

Ya pada script terakhir sebenarnya sama seperti script yang kedua, cuma pada array nya ditambahkan hurup dari a - z .

Oke sekian dulu tutor kali ini, dan seperti biasa jika masih kurang faham atau ada script yang error, agar dibahas pada form komentar dibawah.
See you All with next science.

Rabu, 08 Agustus 2012

Agar jejak tidak terlacak

Apapun yang Anda lakukan saat menggunakan komputer, jejaknya pasti tertinggal dalam operasi sistem.  Misalnya, saat berselancar di dunia maya, situs apapun yang pernah anda datangi baik di Internet Explorer maupun browser lainnya, semuanya tercatat dalam History.
Kejadian yang sama juga terjadi pada aplikasi lain.  Setelah selesai mengetik dokumen di Microsoft Word atau membuka gambar lewat ACDSEE, Photoshop atau Microsoft Paint, jejaknya pasti tercatat di Recent Documents yang ditampilkan secara transparan di menu Start.  Bahkan bila komputer Anda terhubung dalam satu jaringan, jejak yang Anda tinggalkan akan berbekas dan akan terlihat oleh orang lain.
Soal privasi adalah pilihan.  Bila Anda ingin menggunakannya, maka Anda dapat mononaktifkan sistem pencatatan jejak lewat cara berikut :
Buka program Notepad dan ketikkan kode ini :
Code:
REGEDIT4                                                                                                 
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer]
“NoRecentDocsHistory”=dword:00000001                                                                                                   “NoRecentDocsMenu”=dword:00000001                                                                                                             “ClearRecentDocsOnExit”=dword:00000001                                                                                                    “NoRecentDocsNetHood”=hex:01,00,00,00  
“MaxRecentDocs”=dword:00000000 
Save As file diatas sebagai file Save As type dan beri nama dengan hapusjejak.reg atau nama lainnya sesuka Anda.  Jalankan file (klik dua kali) file registry (reg) yang telah jadi untuk mengeksekusi perubahan yang kita inginkan.