Sabtu, 29 Januari 2011

Tutorial VB 6.0 : Koneksi Database MySql Tanpa ODBC

Kakek saya bertanya ,, :D .. Apakah membuat koneksi database menggunakan mysql dalam VB 6.0 harus pake ODBC ???. dan saya pun menjawab, owwwhhhhhhh tidak bisa (sule mode on) :P.. tentunya bisa kek, coba deh kakek make API MyVbQL dijamin deh bisa. hehehehehe :D.

MyVbQL adalah application programming interface (API) pada Visual Basic yang dibuat oleh icarz.Inc. MyVbQL merupakan alternatif dari penggunaan driver MS ADO MyODBC yang digunakan oleh pengguna Visual Basic untuk mengakses basis data MySQL. Pembuatan MyVbQL bertujuan untuk mengurangi ukuran setup perangkat lunak. Dan penggunaan MyVbQL.dll dapat mengurangi ukuran setup file sampai 10 MB (megabyte) dibandingkan menggunakan ADO yang standar. (Icarz. Inc, 2002).

Nah sekarang ane buat aje program sederhana dengan menggunakan API MyVBQL, caranya mudah, saudara-saudari add references dulu API nya.

Langkah 1

Buat Form seperti dibawah ini :

Lalu tambahkan kode berikut pada general description di code window
Private connMySQL As New MYSQL_CONNECTION
Private myRS As MYSQL_RS

Langkah 2

Tambahkan event click pada btnOK , btnCancel dan List1

- event click btnOK

Private Sub btnOK_Click()

Dim Sql As String

Dim row As Long

'//error traping

On Error GoTo kesini

List1.Clear

List2.Clear

If connMySQL.State = MY_CONN_OPEN Then connMySQL.CloseConnection

'// buka koneksi

connMySQL.OpenConnection txtDBServer.Text, txtUser.Text, txtPass.Text, "", txtPort.Text

If connMySQL.State = MY_CONN_OPEN Then

Sql = "SHOW DATABASES;"

Set myRS = connMySQL.Execute(Sql, row)

If myRS.RecordCount = 0 Then Exit Sub

myRS.MoveFirst

Do Until myRS.EOF

List1.AddItem myRS.Fields(0).Value

myRS.MoveNext

Loop

myRS.CloseRecordset

Else

MsgBox connMySQL.Error.Description, vbCritical, "Error " & connMySQL.Error.Number

End If

'___________________________________________________________

On Error GoTo 0

Exit Sub

kesini:

MsgBox connMySQL.Error.Description, vbCritical, "Error " & connMySQL.Error.Number

End Sub

- event click btnCancel

Private Sub btnCancel_Click()

txtDBServer.Text = ""

txtPass.Text = ""

txtPort.Text = ""

txtUser.Text = ""

End Sub

- event click List1

Private Sub List1_Click()

Dim Sql As String

Dim row As Long

List2.Clear

On Error Resume Next

If connMySQL.State = MY_CONN_OPEN Then

Sql = "USE " & List1.Text & ";"

connMySQL.Execute Sql

Sql = "SHOW TABLES;"

Set myRS = connMySQL.Execute(Sql, row)

If myRS.RecordCount = 0 Then Exit Sub

myRS.MoveFirst

Do Until myRS.EOF

List2.AddItem myRS.Fields(0).Value

myRS.MoveNext

Loop

myRS.CloseRecordset

End If

End Sub


jreeeenngggg... coba liat hasilnya dibawah ini.. download source codenya disini

Baca Selengkapnya »»  

Senin, 17 Januari 2011

Menangani Single Quote (') Pada SQL

Dalam mengisi data ke dalam database terkadang terdapat karakter quote, terutama single quote. Sebenernya mudah untuk mengatasi masalah ini, yaitu cukup menuliskan dua kali tanda quote tersebut. Artinya setiap ada quote dalam string yang ingin di masukkan ke field dalam database itu harus di gandain, misal kita ingin menginput ta’lim maka kita tulis ta’’lim dalam sqlnya. Ini digunakan jika tanda pengapit untuk valuenya menggunakan single quote. Tetapi bila pengapit value pada sql menggunakan tanda kutipan multi (“) maka inilah yang digandakan.

Contoh :
Misal kita ingin menginput nama sekolah dengan nama : Ta’lim Mubtadi
Maka Sqlnya :
INSERT INTO SEKOLAH(kd_sekolah,nm_sekolah,alamat)
VALUES (’S001’,’Ta’’lim Mubtadi’,’Cipondoh’)

Nah sekarang bagaimana jika dalam pemrograman ???....
Begini, jadi kita hanya menggandakan single quote (’) digandain jadi 2 yaitu (’’), ingat ini 2 single quote bukan multiple quote.

Ini contoh dalam pemrograman Java.
Kita menggunakan string untuk menampung nama sekolah,kode,dan alamat serta menggunakan metod replace Untuk mengganti semua karakter singgle quote (’) menjadi duakali (2 single quote(’’) ).

Sql = ’INSERT INTO SEKOLAH(kd_sekolah,nm_sekolah,alamat)
VALUES (‘+ kode +’,’+ nm_sek.replace(‘\’’,’\’\’’) +’,’ +
alamat_sek.replace(‘\’’,’\’\’’)+’)’;


Jreeennggg… selesai deh, tanda single quote yang mau diinput pun masuk, hehehe
Semoga bermanfaat…
Baca Selengkapnya »»  

Rabu, 12 Januari 2011

ORACLE : MEMBUAT SISTEM AKADEMIK ( ENTRI KELOMPOK DAN NILAI )

Ini yang gw suka kalo UAS Cuma ngumpulin tugas buat system, kalo di f b gw bilang “Like This”, hehehehee. Abis enak sih Cuma buat system, ngga usah belajar dan dengan waktu yang lumayan laaamaaaaaa... hehehe


Di tugas ini ane membuat system akademik untuk entry kelompok dan entri nilai pada Universitas XYZ (XYZ aja deh yang ane pake biar lebih santai.. hehehe)..
ane buat laporannya cetak KRS, KST, Nilai Semester, dan lain-lain. Dan alhamdulillah berhubung dosennya baik hati dan tidak sombong serta menghormati sesama ane diberi nilai yang baaagus dan memuaskan.. hihihihi
Kalo kata sule sih “SEMPOA” .. ahaaaay.

Ini gambar screen shoot entry kelompoknya...Download disini
dokumentasinya



Baca Selengkapnya »»  

Kamis, 06 Januari 2011

PROGRAM J2ME SEDERHANA KRIPTOGRAFI CAESAR CHIPER DAN VIGENERE CHIPER

Di tengah kesibukan UAS lebih baik menyegarkan pikiran dengan ngeblog, hahahaha… sesuai dengan janji saya pada postingan sebelumnya. Ini merupakan pemenuhan janji saya kepada anda, hahahaha *lebaaay*
Oke langsung aja deh mari kita coba mengimplementasikan metode Caesar chipper dan vigenere dalam aplikasi J2ME.
Tapi sebelumnya kita harus memahami bagaimana proses enkripsi maupun deksripsi pada kedua metode ini. Karena metode caesar chiper telah ane jelasin pada postingan sebelumnya jadi disini ane bahas cara vigenere aje ok!!.. hahaha
Satu jam selanjutnya........ begini ceritanya...



Metode ini disebut juga Running Key Chiper tapi lebih di kenal dengan Vigenere Chiper. Karakter ciphertext ditentukan pada pertemuan antara baris dan kolom
Baris. untuk karakter yang akan dienkrip, kolom untuk karakter dari keyword.

Coba lihat contohnya di bawah ini :

Plaintext nya adalah SOUND THE RETREAT dan key(password) adalah DEADFED, dan setelah melakukan enkripsi akan menghasilkan VSUQI XKH VEWWIDW. Coba anda perhatikan kolom untuk plaintext dan baris untuk key. Huruf S pada plaintext bertemu dengan huruf D pada key, maka hasilnya V yang ada pada ciphertext.

Naaaahhh... udah mudengkan, kalo belum, mudeng-mudengin aja deh, hehehehehe

Oke sekarang kita buat programnya.. buka alat perangnya (Netbeans – ane pake Netbean 6.9.1).. hehe

  1. buat tampilan layar :

  1. Tambahkan source code dibawah ini :

String hasil="";

private char [] pass;

private char [] pass2;

private char [] huruf = {'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',

'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'};

private char [] rotasi_13={'N','O','P','Q','R','S','T','U','V','W','X','Y','Z',

'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',

'a','b','c','d','e','f','g','h','i','j','k','l','m'};

  1. Buat method yang digunakan untuk mengenkrip dan mendekrip.


private String kriptografiCaesarChipper(String plainTeks,int panjang,int ambil){

char charEnkrip;

if(ambil

charEnkrip=plainTeks.charAt(ambil);

if (charEnkrip==' '){

hasil=hasil+" ";

}

else{

for(int i=0;i<52;i++){

if(charEnkrip == huruf[i]) {

hasil = hasil + rotasi_13[i];

break;

}

}

}

kriptografiCaesarChipper(plainTeks,panjang,ambil+1);

}

return hasil;

}

private void ConcatPass(String plainTeks,String password){

int jmlSpasi=0;

int indexCurPass2;

pass = new char[password.length()];

int indexPass=0;

for (int x=0;x

if (!(password.charAt(x)==' ')) {

pass[indexPass]=password.charAt(x);

indexPass=indexPass+1;

}

}

int panjang = plainTeks.length();

pass2 = new char[panjang];

int indexCharPass;

for (int i=0;i

if(i

if (plainTeks.charAt(i)==' '){

pass2[i]=' ';

jmlSpasi++;

}

else{

indexCurPass2=i-jmlSpasi;

pass2[i]=pass[indexCurPass2];

}

}

else{

if (plainTeks.charAt(i)==' '){

pass2[i]=' ';

jmlSpasi++;

}

else{

indexCurPass2 = i - jmlSpasi;

indexCharPass = indexCurPass2%password.length();

pass2[i]=pass[indexCharPass];

}

}

}

}

// mengenkrip, jika ada spasi di password maka dianggap A atau index huruf=0;

private String kriptografiEnkripVegenere(String plainTeks,int panjang,int ambil, int jenis){

int indexBaris=0;

int indexKolom=0;

int indexCharHasil=0;

char charEnkrip,passEnkrip;

if(ambil

charEnkrip=plainTeks.charAt(ambil);

passEnkrip = pass2[ambil];

if (charEnkrip==' '){

hasil=hasil+" ";

}

else{

if (jenis == 1 ) {

for(int i=0;i<26;i++){

if(charEnkrip == huruf[i]) {

indexKolom=i;

break;

}

}

for(int i=0;i<26;i++){

if(passEnkrip == huruf[i]) {

indexBaris = i;

break;

}

}

indexCharHasil = indexBaris + indexKolom;

indexCharHasil = indexCharHasil%26;

hasil = hasil + huruf[indexCharHasil];

}

else if(jenis == 2) {

for(int i=26;i<52;i++){

if(charEnkrip == huruf[i]) {

indexKolom=i;

break;

}

}

for(int i=26;i<52;i++){

if(passEnkrip == huruf[i]) {

indexBaris = i;

break;

}

}

indexCharHasil = indexBaris + indexKolom;

indexCharHasil = (indexCharHasil%52);

if (indexCharHasil<26){

indexCharHasil = indexCharHasil+26;

}

hasil = hasil + huruf[indexCharHasil];

}

else if(jenis == 3) {

for(int i=0;i<52;i++){

if(charEnkrip == huruf[i]) {

indexKolom=i;

break;

}

}

for(int i=0;i<52;i++){

if(passEnkrip == huruf[i]) {

indexBaris = i;

break;

}

}

indexCharHasil = indexBaris + indexKolom;

indexCharHasil = indexCharHasil%52;

hasil = hasil + huruf[indexCharHasil];

}

}

kriptografiEnkripVegenere(plainTeks,panjang,ambil+1,jenis);

}

return hasil;

}

// mendekrip, jika ada spasi di password maka di angggap A atau index huruf nya 0

private String kriptografiDekripVegenere(String chiperText,int panjang,int ambil, int jenis){

int indexBaris=0;

int indexChiper=0;

int indexCharHasil=0;

char charDekrip,passEnkrip;

if(ambil

charDekrip=chiperText.charAt(ambil);

passEnkrip = pass2[ambil];

if (charDekrip==' '){

hasil=hasil+" ";

}

else{

if (jenis == 1 ) {

for(int i=0;i<26;i++){

if(charDekrip == huruf[i]) {

indexChiper=i;

break;

}

}

for(int i=0;i<26;i++){

if(passEnkrip == huruf[i]) {

indexBaris = i;

break;

}

}

if (indexChiper

indexCharHasil = 26 + (indexChiper - indexBaris);

}

else {

indexCharHasil = indexChiper - indexBaris;

}

hasil = hasil + huruf[indexCharHasil];

}

else if(jenis == 2) {

for(int i=26;i<52;i++){

if(charDekrip == huruf[i]) {

indexChiper=i;

break;

}

}

for(int i=26;i<52;i++){

if(passEnkrip == huruf[i]) {

indexBaris = i;

break;

}

}

if (indexChiper

indexCharHasil = 52-indexBaris;

indexCharHasil += indexChiper-26;

indexCharHasil +=26;

}

else {

indexCharHasil = (indexChiper - indexBaris);

indexCharHasil %=26;

indexCharHasil +=26;

}

hasil = hasil + huruf[indexCharHasil];

}

else if(jenis == 3) {

for(int i=0;i<52;i++){

if(charDekrip == huruf[i]) {

indexChiper=i;

break;

}

}

for(int i=0;i<52;i++){

if(passEnkrip == huruf[i]) {

indexBaris = i;

break;

}

}

if (indexChiper

indexCharHasil = 26 + (indexChiper - indexBaris);

}

else {

indexCharHasil = indexChiper - indexBaris;

}

hasil = hasil + huruf[indexCharHasil];

}

}

kriptografiDekripVegenere(chiperText,panjang,ambil+1,jenis);

}

return hasil;

}

private void enkrip(int jenis){

if (jenis == 1 ){

hasil="";

txtHasil.setString("");

txtKata.setString(txtKata.getString().toUpperCase());

txtPass.setString(txtPass.getString().toUpperCase());

ConcatPass(txtKata.getString(),txtPass.getString());

}

if (jenis == 2 ){

hasil="";

txtHasil.setString("");

txtKata.setString(txtKata.getString().toLowerCase());

txtPass.setString(txtPass.getString().toLowerCase());

ConcatPass(txtKata.getString(),txtPass.getString());

}

if (jenis == 3 ){

hasil="";

txtHasil.setString("");

ConcatPass(txtKata.getString(),txtPass.getString());

}

txtHasil.setString(kriptografiEnkripVegenere(txtKata.getString(), txtKata.getString().length(), 0,jenis));


}

private void dekrip(int jenis){

if (jenis == 1 ){

hasil="";

txtHasil.setString("");

txtKata.setString(txtKata.getString().toUpperCase());

txtPass.setString(txtPass.getString().toUpperCase());

ConcatPass(txtKata.getString(),txtPass.getString());

}

if (jenis == 2 ){

hasil="";

txtHasil.setString("");

txtKata.setString(txtKata.getString().toLowerCase());

txtPass.setString(txtPass.getString().toLowerCase());

ConcatPass(txtKata.getString(),txtPass.getString());

}

if (jenis == 3 ){

hasil="";

txtHasil.setString("");

ConcatPass(txtKata.getString(),txtPass.getString());

}

txtHasil.setString(kriptografiDekripVegenere(txtKata.getString(), txtKata.getString().length(), 0,jenis));

}


Selanjutnya anda panggil method-method diatas dari command item yang ada pada editor Chaesar Chiper atau Vigenere Chiper yang sesuai. Silahkan download hasil programnya disini






Baca Selengkapnya »»