Monday 11 October 2010

Dari Pengalaman, Bapak ane yang ditantangin sama pesaing-nya masalah database Pengguna POSTGREE and ORacle, hah.. enak Saja dia jelek jelekin database dbf[foxpro] and mysql[SQL], kata-nya mysql dan dbf tidak bisa menggunakan Trigger :: aku si mesem aja [ dengan pandangan Licik ] :: haha.. pasti orang ini ngak pernah megang Mysql // dbf . atau bisanya main kandang sendiri [ POSTGREE || ORACLE ].
[MySQL]
Memang Sie selama ini pada MySQL yang free terdengar rumor tentang keterbatasan pada Fitur fiturnya – tapi tidak untuk TRIGGER.
Trigger merupakan sekumpulan perintah atau sintaks yang akan secara otomatis dijalankan jika terjadi operasi tertentu dalam tabel atau view. Trigger digunakan untuk memanggil satu atau beberapa perintah SQL secara otomatis sebelum atau sesudah terjadi proses INSERT, UPDATE atau DELETE dari suatu tabel. Sebagai contoh misalnya kita ingin menyimpan id pelanggan secara otomatis ke tabel ‘log’ sebelum menghapus data di tabel pelanggan. Ataupun kita akan Secara otomatis merekam semua aktivitas MySQL yang gagal membuat Record Baru yang diakibatkan terputusnya Koneksi.
Trigger sering digunakan, antara lain untuk:
• Melakukan update data otomatis jika terjadi perubahan. Contohnya adalah dalam sistem penjualan, jika dientri barang baru maka stock akan bertambah secara otomatis.
• Trigger dapat digunakan untuk mengimplementasikan suatu sistem log. Setiap terjadi perubahan, secara otomatis akan menyimpan ke tabel log.
• Trigger dapat digunakan untuk melakukan validasi dan verifikasi data sebelum data tersebut disimpan.
Beberapa Contoh Metode Trigger yang saya Gunakan :
CREATE TRIGGER awalreport BEFORE INSERT ON `faktur2` FOR EACH ROW
BEGIN
INSERT INTO TABLE_ERROR ( NO_FAKTUR,USER,TANGGAL,BEFORE,AFTER ) VALUES ( new.no_faktur, new.user,sysdate(),'1','0' );
END ;
NAh.. hal itu difungsikan untuk mencatat smua aktifitas sebelum insert record pada table faktur2, ke dalam table_error ::: KEMUDIAN
CREATE TRIGGER akhirreport AFTER INSERT ON `faktur2` FOR EACH ROW
BEGIN
UPDATE TABLE_ERROR SET after = 1 WHERE no_faktur = new.no_faktur ;
END ;
Hal ini difungsikan jika row record benar benar sudah masuk, maka FIELD after akan terisi angka 1, dan algoritmapun selesai.
Buat apasih pake Triger segala , kan meskipun tanpa pencatatan kedalam TABLE_ERROR pun program kita akan berjalan dengan baik ??
Betul,meskipun tanpa pencatatan tambahan dengan trigerpun pun program kita sudah berjalan dengan baik, namun, bagaimana dengan FAKTOR XXX, APA ITU ?? banyak, seperti :: mati lampu, tiba tiba server ngeHank, dan bahkan sampai kesalahan USER dalam menjalankan Aplikasi, BUKANNYA HAL ITU TIDAK BERPENGARUH BESAR ?? Betul, bagi kita para develop tentu bukan masalah besar, namun BAGI KONSUMEN / PENGUNA APLIKASI itu akan berdampak BESAR.
seperti : tiba tiba saat di STOK OPNAM, hmm… data tidak sama / valid. DIMANA LETAK KESALAHANNYA ??? Gak tau, hehe.. dengan TABLE_ERROR, ada sedikit pencerahan, mungkin ada FAKTUR yang sudah entrykan , tapi tanpa sengaja tidak masuk karena kesalahan KONEKSI dan sebagainya.
Terus, buat apa Lagi ya, hehe.. ini pemikiran tambaan dari metode Triger yang saya gunakan ::
CREATE TRIGGER curangubah BEFORE UPDATE ON `faktur2` FOR EACH ROW
BEGIN
INSERT INTO TABLE_CURANG ( NO_FAKTUR,USER,TANGGAL,QTY_LAMA,QTY_BARU ) VALUES ( new.no_faktur, new.user,sysdat(),old.qty,new.qty );
END ;
CREATE TRIGGER curangdelete BEFORE DELETE ON `faktur2` FOR EACH ROW
BEGIN
INSERT INTO TABLE_CURANG ( NO_FAKTUR,USER,TANGGAL,QTY_LAMA ) VALUES ( new.no_faktur, new.user,sysdat(),old.qty );
END ;
AH.. ini apa Lagi, malah gak masuk akal, Masak setiap ubah atau delete record aja perlu dicatat !!
hehe.. iya. bagi kita update dan delete merupakan hal yang biasa. nah, tapi bagaimana Keamana program kita dari para hacker iseng yang main delete / update [ ingat , hacker dapat difungsikan oleh orang dalam yang ingin bermain curang untuk mengambil keuntungan ]. Tentu hal ini sangat berguna bila ada orang dalam yang dengan sengaja [ Terutama orang dalam ] merubah data dan tentu saja dengan niat buruk, karena dari hasil surfei [duh pake surfei segala] Kecurangan dan pembobola data hmir 80 % didalangi dan disponsori oleh orang dalam untuk mendapatkan keuntungan individuaal .. Haha.. jadi ketahuankan , kapan dia merubah, delete, dengan user siapa dia melakuka, dan tentusaja data lama masih bisa diselamatkan.
Metode ini sangat berguna di aplikasikan pada program yang berurusan dengan STOK barang, Gudang, dan MANY[cie..duit].
Adapun beberapa dokumentasi yang saya search dari mysql-manual :::
Membuat Trigger Baru
Berikut ini bentuk umum perintah untuk membuat triggers:
CREATE TRIGGER name
[BEFORE|AFTER] [INSERT|UPDATE|DELETE]
ON tablename
FOR EACH ROW statement
Keterangan dari bentuk umum perintah membuat trigger:
• name, Nama trigger mengikuti peraturan penamaan variabel / identifier dalam MySQL
• [BEFORE | AFTER] digunakan untuk menentukan kapan proses secara otomatis akan dieksekusi, sebelum atau sesudah proses.
• [INSERT | UPDATE | DELETE] digunakan untuk menentukan event (proses) yang dijadikan trigger (pemicu) untuk menjalankan perintah-perintah di dalam triggers.
• tablename, merupakan nama tabel dimana trigger berada.
• statement, merupakan sekumpulan perintah atau query yang akan secara otomatis dijalankan jika event / proses yang didefinisikan sebelumnya aktif.
Statement atau perintah dalam trigger dapat berupa satu perintah saja, dan dapat juga beberapa perintah sekaligus. Jika terdapat beberapa perintah dalam trigger, maka gunakan perintah BEGIN dan END untuk mengawali dan mengakhiri perintah.
Di dalam statement trigger, kita dapat mengakses record tabel sebelum atau sesudah proses dengan menggunakan NEW dan OLD. NEW digunakan untuk mengambil record yang akan diproses (insert atau update), sedangkan OLD digunakan untuk mengakses record yang sudah diproses (update atau delete).
Berikut ini contoh trigger yang akan mencatat aktivitas ke tabel log setiap terjadi proses insert ke tabel pelanggan:
DELIMITER $$

CREATE TRIGGER penjualan.before_insert BEFORE INSERT ON penjualan.pelanggan
FOR EACH ROW BEGIN
INSERT INTO `log` (description, `datetime`, user_id)
VALUES (CONCAT('Insert data ke tabel pelanggan id_plg = ', NEW.id_pelanggan), now(), user());
END;
$$

DELIMITER ;
Menghapus Trigger
Untuk menghapus trigger, dapat menggunakan perintah DROP TRIGGER dengan diikuti dengan nama tabel dan nama triggernya. Berikut ini bentuk umum dan contoh perintah untuk menghapus trigger.
Bentuk umum dan contoh menghapus trigger:
DROP TRIGGER tablename.triggername;
Contoh menghapus trigger bernama ‘before_insert’ yang ada di tabel pelanggan.
DROP TRIGGER penjualan.before_insert;
Nah.. diatas adalah penjabaran secara singkat padat dan tak jelas mengenai Metode Trigger yang saya gunakan, namu bila anda pengguna awal dari trigger, mungkin tulisan dibawah lebih dapat membatu anda ::
Sebagai contoh: penghapusan satu tabel akan memicu suatu trigger untuk menghapus pada tabel yang lain yang telah ditunjuk terlebih dahulu. dibawah ini saya berikan satu contoh penggunaan trigger pada database MySQL.
Sebagai contoh kita siapkan terlebih dahulu sebuah database dan tabel yang akan diuji coba seperti dibawah ini:
create database mytrigger;

create table coba (
kode varchar(5) not null,nama varchar(35) not null,
primary key (kode))

create table coba2 (
kode varchar(5) not null,nama varchar(35) not null,
primary key (kode))

create table tran (
kode varchar(5) not null,
kodetran varchar(5),jumlah double,
primary key nkode (kode,kodetran))
Kemudian buatlah sebuah trigger dengan kode seperti dibawah ini:
delimiter $$

create trigger auto_insert_coba2
before insert on coba for each row
begin
insert into coba2 (kode,nama) values (NEW.kode,NEW.nama);
end$$

create trigger auto_update_coba2
before update on coba for each row
begin
update coba2 set nama=NEW.nama where kode=NEW.kode;
end$$

create trigger auto_delete_coba2
before delete on coba for each row
begin
delete from coba2 where kode=OLD.kode;
delete from tran where kode=OLD.kode;
end$$

Wednesday 24 February 2010

Kisah Kura2 ...

KISAH 3 KURA-KURA ( kocak gan :D )
Pada suatu hari di negeri seribu satu malam, ada 3 ekor kura-kura ingin berkemah di puncak gunung seribu satu malam bersama-sama. Kura-kura pertama membawa makanan, kura-kura kedua membawa minuman, sedangkan Kura-kura yang ketiga tidak membawa bekal sedikitpun. Dalam perjalanan tiba-tiba hujan mulai turun dengan lebatnya, sehingga mereka tidak dapat meneruskan perjalanan mereka ke gunung seribu satu malam. Kemudian timbul perbincangan di antara ke tiga kura-kura tadi.

Kura2 I: “Ermmm…. salah satu dari kita harus kembali untuk mengambil payung. Di antara kita bertiga siapa yang akan berangkat, tanyanya serius…?”

Kura II dan I saling bertatapan, dan sepakat memilih kura2 III untuk mengambil payung.

Kura2 III: ” Ogah ah, aku kagak mau… kalian kan tau kalau aku jalannya paling lambat di antara kita bertiga, sebelum aku sampai kesini pasti kalian sudah menghabiskan semua makan yang kita bawa.”

Kura2 I & II: Tidak. “Kita akan tunggu sampai kamu kembali.”
Kura2 III: “Betul kagak dihabiskan??? gimana kalau aku terlambat 1 jam?”
Kura2 I & II: “Kita tetap akan menunggu.”

Kura2 III: “Kalau 3 jam gimana?”
Kura2 I & II: “Kita juga akan tetap tunggu.”

Kura2 III: “Kalau 1 hari, terus gimana?”
Kura2 I & II: “Kita pasti tetap tunggu.”

Kura2 III: “gimana kalau 3 hari?”
Kura2 I & II: “dengan setia kami akan tetap munggumu kembali.”

Kura2 III: “5 hari?”
Kura2 I & II: “kami akan tetap menunggu.”

Kura2 III: “1 minggu?”
Kura2 I & II: “kami akan tetap tunggu koq.”

Kura III: “2 minggu?”
Kura I & II: “kami akan tetap meunggu. uda kamu pergia aja dech kami akan tetap tunggu kamu.”

Dengan berat hati, akhirnya kura2 III pun berangkat untuk mengambil payung. kura2 I & II
menunggu dengan setia. Satu hari, dua hari dan seminggu telah berlalu.
Kura2 III tidak kunjung tiba. Setelah dua minggu berlalu, kura2 I & II
sudah tidak dapat menahan lapar.

Kura2 I : “Aku sudah kagak dapat menahan lapar lagi. gimana kalau kita makan aja bekal in.”
Kura2 II: “Aku juga sama uda kagak tahan lagi. ayo kita habiskan semuanya.”

Tiba-tiba Kura2 III muncul dari semak dan berteriak “Hoi! kebetulan aku belum pergi. Kalau pergi, pasti kalian habiskan makanan ini kan? kan?!!!”

Monday 15 February 2010

LAN wiring system(system pengkabelan LAN)

Perlu anda ketahui bahwa kabel UTP memiliki 4 pasang kabel kecil didalamnya yang memiliki warna yang berbeda. 4 pasang kabel itu adalah:
Pasangan 1 : Putih/Biru dan Biru,
Pasangan 2 : Putih/Oranye dan Oranye,
Pasangan 3 : Putih/Hijau dan Hijau,
Pasangan 4 : Putih/Coklat dan Coklat

Pemasangan kabel UTP sendiri terbagi dua jenis. Straight Through dan Cross Over.
*Straight Through*
Penggunaan kabel straight :
menghubungkan komputer ke port biasa di Switch.
menghubungkan komputer ke port LAN modem cable/DSL.
menghubungkan port WAN router ke port LAN modem cable/DSL.
menghubungkan port LAN router ke port uplink di Switch.
menghubungkan 2 HUB/Switch dengan salah satu HUB/Switch menggunakan port uplink dan yang lainnya menggunakan port biasa.

contoh desain jaringan menggunakan straight

Konfigurasi masing-masing PC
PC 0 : 192.168.0.10
PC 1 : 192.168.0.11
PC 2 : 192.168.0.12
PC 3 : 192.168.0.13
PC 4 : 192.168.0.14
dst.

Langkah-langkah mengkonfigurasi jaringan di windows xp:
1. Klik gandalah My Computer. Muncul jendela My Computer.
2. Klik gandalah icon control panel. Muncul jendela control panel
3. Klik gandalah Network and Internet Connections. Muncul kotak dialog Network and Internet Connections.
4. Klik gandalah Network Connections.
5. Klik kanan Local Area Connection
6. Pilih Properties
7. Tampak sejumlah komponen jaringan pada kotak daftar the connection uses the following items.
8. Pilih Internet Protocol (TCP/IP)
9. Klik Propertieas.
10. Muncul kotak dialog Internet Protocol (TCP/IP) Properties.
11. Klik tombol pilihan Use the following IP address. Cantumkan angka-angka berikut ini:
IP address : 198.168.0.1
Subnet mask : 255.255.255.0
gateway dan dns berfungsi untuk jaringan agar bisa sharing internet, tanpa isi gteway dan dns kita tetap bisa share data dan printer tapi ga bisa internetan.
jika ip mau share internet cara termudah adsl aktipkan dhcp, terus pilih ip automatic
Kliklah tombol perintah OK. Kembali kekotak dialog local area Connection
12. kliklah tombol OK.

klo di windows vista/ 7, conection center pilih local area connection, proporties lalu setting ipv4
susunan warna kabel
ujung A = ujung B
ujung A

ujung B

Lebih detailnya


*Cross Over*
Penggunaan kabel crossover :
menghubungkan 2 buah komputer secara langsung (PC to PC)
menghubungkan 2 buah HUB/Switch menggunakan port biasa diantara kedua HUB/Switch. (hub/switch to hub/switch)

contoh disain cross

Konfigurasi masing-masing IP adrres PC
PC 0 : 192.168.0.1
PC 1 : 192.168.0.2

susunan kabelnya
ujung A tidak = ujung B
Ujung A

Ujung B

lihat detailnya

tes koneksi dengan ping


Alat yang di perlukan untuk membuat kabel :
crimping tool

Konektor RJ45

contoh switch 8 port

lan tester