09 September 2008

Membuat Kamus Memakai database di freepascal

Pada Penasaran kan gimana caranya buat bikin kamus bahasa inggris-indonesia ataupun sebaliknya.gampang-gampang susah. pertama tama sediakan software yang di butuhkan yaitu mysql sebagai software database, freepascal sebagai compiler bahasa pascal dan notepad untuk menulis sintak kodenya.kalau belum menginstall mysql instal dulu anda bisa menginstal mysql satuan ataupun yang sudah otomatis yaitu menggunakan xampp, saya sih menyarankan mengunakan xampp karena bisa dipakai untuk membuat website php dan mysql tidak perlu di utak atik lagi, ya udah deh jadi lama,

kalau udah selesai nge instal nya maka login dulu dengan mengklik star->run, setelah itu kita ketikan cmd lalu tekan ok. lalu kita harus masuk ke direktori mysql berada, bila kita menginstal xamp maka direktorinya di c:\xampp\mysql\bin kalau nginstal gak pake xampp direktorinya di c:\mysql\bin masuk deh ke direktorinya dengan mengetik cd \ lalu tekan enter lalu ketikan cd xampp lalu tekan enter begitu seterusnya hingga ke direktori bin lalu kita ketikan di direktori bin mysql -u root.

untuk membuat database gunakan perintah create database nama_file; setelah membuat database kita harus memilih database yang telah kita buat dengan mengklik use nama_database; lalu kita harus membuat tabelnya dengan cara create table data (indonesia varchar(50), inggris varchar(50));

urusan database sudah selesai maka tulis di notepad sebagai berikut:
Program KamusMysql;
uses crt,mysql4;
var
sock,inisial:PMYSQL;
qmysql:TMYSQL;
recbuf: PMYSQL_RES;
rowbuf:TMYSQL_ROW;
query:PChar;
state,jml:integer;
inggris,indonesia,dummy:string;
lagi,ubah,hapus,pil:char;
procedure tulis(x,y:integer;pesan:string;warna:byte);
begin
textcolor(white);
gotoxy(x,y);write(pesan);
textcolor(white);
end;
Procedure lihat1;
Begin
lagi:='Y';
inisial:=mysql_init(PMySQL(@qmysql));
sock:=mysql_real_connect(inisial,nil,'root','','kamus',0,nil,0);

if sock=nil then
begin
writeln('Connection Error !');
writeln(mysql_error(@qmysql));
end;

while upcase(lagi) = 'Y' do
begin
clrscr;
writeln('Kamus Indonesia-Inggris');
writeln('-----------------------');
write ('Indonesia = ');readln(indonesia);
writeln;
dummy:='select * from data where indonesia='''+indonesia+'''';
query:=@dummy[1];
state:=mysql_query(sock,query);

if (state <>
begin
writeln ('Query Salah....!');
writeln (mysql_error(sock));
end;

recbuf := mysql_store_result(sock);
rowbuf := mysql_fetch_row(recbuf);

if rowbuf = nil then
writeln('Data tidak ditemukan....')
else
while (rowbuf <> nil) do
begin
writeln('Inggris = ',rowbuf[1]);
rowbuf := mysql_fetch_row(recbuf);
end;

writeln;
write('Lihat lagi [Y/T]?');readln(lagi);
writeln;
end;

mysql_free_result (recbuf);
mysql_close(sock);
end;


Procedure tambah;
begin
lagi:='Y';
mysql_init(PMySQL(@qmysql));
sock:=mysql_real_connect(PMySQL(@qmysql),nil,'root','','kamus',0,nil,0);

if sock=nil then
begin
writeln('Koneksi Error !');
writeln(mysql_error(@qmysql));
end;

while upcase(lagi) = 'Y' do
begin
clrscr;
writeln('Tambah Data');
writeln('-----------------');
write('Masukkan Kata indonesia : ');readln(indonesia);
dummy:='select * from data where indonesia='''+indonesia+'''';
query:=@dummy[1];
state:=mysql_query(sock,query);
recbuf:=mysql_store_result(sock);

if RecBuf = Nil then
begin
writeln ('Hasil query nil.');
mysql_close(sock);
end;

jml:=mysql_num_rows(recbuf);
if (jml > 0) then
writeln('Data tersebut sudah ada')
else
begin
write('Masukkan Kata Inggris : ');readln(Inggris);
writeln;

if (length(inggris)=0) then
writeln ('data yang kosong, penambahan batal di lakukan.')
else
begin
dummy:='insert into data (indonesia,inggris) values ('''+indonesia+''','''+inggris+''')';
query:=@dummy[1];
state:=mysql_query(sock,query);

if (state <>
begin
writeln ('Query Salah.');
writeln (mysql_error(sock));
end;

tulis(0,10,'Penambahan berhasil !!',red)
end;
end;

writeln;
write('Tambah lagi [Y/T]? ');readln(lagi);
end;

mysql_free_result (recbuf);
mysql_close(sock);
end;
Procedure lihat2;
Begin
lagi:='Y';
inisial:=mysql_init(PMySQL(@qmysql));
sock:=mysql_real_connect(inisial,nil,'root','','kamus',0,nil,0);

if sock=nil then
begin
writeln('Connection Error !');
writeln(mysql_error(@qmysql));
end;

while upcase(lagi) = 'Y' do
begin
clrscr;
writeln('Kamus Inggris-Indonesia');
writeln('-----------------------');
write ('Inggris = ');readln(Inggris);
writeln;
dummy:='select*from data where inggris='''+inggris+'''';
query:=@dummy[1];
state:=mysql_query(sock,query);

if (state <>
begin
writeln ('Query Salah....!');
writeln (mysql_error(sock));
end;

recbuf := mysql_store_result(sock);
rowbuf := mysql_fetch_row(recbuf);

if rowbuf = nil then
writeln('Data tidak ditemukan....')
else

begin
writeln('Indonesia= ',rowbuf[0]);
end;
writeln;
write('Lihat data lagi [Y/T]?');readln(lagi);
writeln;
end;

mysql_free_result (recbuf);
mysql_close(sock);
end;
begin
repeat
clrscr;
lagi:=' ';ubah:=' ';hapus:=' ';
tulis(23,10,'M E N U',128);
tulis(15,11,'------------------------',blue);
tulis(20,12,'1. Indonesia-Inggris',red);
tulis(20,13,'2. Inggris-Indonesia',red);
tulis(20,14,'3. Tambah Kata Indonesia-Inggris',red);
tulis(20,15,'4. Keluar',red);
tulis(18,16,'Pilihan [1 - 4] : ',blue);readln(pil);

case pil of
'1' : lihat1;
'2' : lihat2;
'3' : tambah;
end;

until pil = '4';
end.


simpan dengan exstensi .pas
terus compile pake freepascal
www.go-pai.blogspot.com
di kutip dari berbagai sumber:
omahku.com

Related Posts by Categories



3 komentar:

  1. tlong bikinin algoritma pemrograman 5 bangun ruang dan 5 bangun datar dong!klo gak ngerti hub.no nich 085221415014
    pleaseeeee,,,,,,,!

    BalasHapus
  2. pd script Anda tertulis
    uses crt,mysql4;

    q menggunakan turbo pascal.saya copy trs q kompile,da yg eror pd bagian mysql4.
    pesan kesalahan
    "File not found (mysql4.tpu)"

    tolong bantunnya ya.
    kirim via email q.yg benar kayak gmn ke

    teguh.arifianto.1988@gmail.com

    BalasHapus
  3. bro..langkah2 diatas udah semua script udah di ketik di notpet.dsimpan dalm . apa??trus setelah itu gmna???mhon penjelasanya..mksh

    BalasHapus

silahkan kalau mau komentar,kritik,saran masukan dan pertanyaan bebas