Habis install Toad 9.0 di windows 7. test test login...ok
Restart.......
Login lagi...Lho Koq tidak bisa ya?? malah muncul error kayak gini "Error: Can't initialize OCI. Error -1"
coba dicoba ohh harusnya di desktop "Toad for Oracle Version 9.0" Click Kanan => Run as administrator
test test login again...ehh success...alhamdulillah :)
Tuesday, February 14, 2012
Friday, February 11, 2011
Install IReport 3.7.6 dan Konfigurasi Database Jdbc Connection
Wah...aq tulis aja ah.. cara instalasi IReport and step-step konfigurasinya..
capek kalo try and error lama2. buang-buang waktu aja ya sebel :)
Step-Step instalasinya begini :
1. Install iReport-3.7.6 seperti biasanya caranya install:D
2. Masuk ke Ireport lalu ke menu Tools => Option => Pilih Tab Classpath
lalu Tekan Tombol "Add Jar" select File oracle jdbc driver yang sesuai dengan versi oraclenya (soalnya aq lagi pakai DB oracle) dalam hal yang aku pakai ojdbc14.jar kalo nggak punya ya download aje:)
untuk mengecek versi dari oracle yang kita pakai :
select * from v$version
where banner like 'Oracle%';
3. Untuk setup Data sourcenya, klik "Report datasources"
klik Tombol "New" maka akan tampil
List yang akan disetup lalu pilih "database JDBC Connection" lalu tekan Next
isi propertinya
Name : MyOracleCon (Terserah u namanya)
JDBC Driver : Oracle (oracle.jdbc.driver.OracleDriver)
JDBC Url : jdbc:oracle:thin:@10.16.254.11:1521:MIS_DB
Server Address : 10.16.254.11
Database : MIS_DB
Username : izza
password : passwordku
Klik Tombol "Test" kalau sukses maka akan tampil "Connection Test Successfull"
4. Ireport Siap digunakan :)
capek kalo try and error lama2. buang-buang waktu aja ya sebel :)
Step-Step instalasinya begini :
1. Install iReport-3.7.6 seperti biasanya caranya install:D
2. Masuk ke Ireport lalu ke menu Tools => Option => Pilih Tab Classpath
lalu Tekan Tombol "Add Jar" select File oracle jdbc driver yang sesuai dengan versi oraclenya (soalnya aq lagi pakai DB oracle) dalam hal yang aku pakai ojdbc14.jar kalo nggak punya ya download aje:)
untuk mengecek versi dari oracle yang kita pakai :
select * from v$version
where banner like 'Oracle%';
3. Untuk setup Data sourcenya, klik "Report datasources"
klik Tombol "New" maka akan tampil
List yang akan disetup lalu pilih "database JDBC Connection" lalu tekan Next
isi propertinya
Name : MyOracleCon (Terserah u namanya)
JDBC Driver : Oracle (oracle.jdbc.driver.OracleDriver)
JDBC Url : jdbc:oracle:thin:@10.16.254.11:1521:MIS_DB
Server Address : 10.16.254.11
Database : MIS_DB
Username : izza
password : passwordku
Klik Tombol "Test" kalau sukses maka akan tampil "Connection Test Successfull"
4. Ireport Siap digunakan :)
Friday, August 27, 2010
Error Message : ORA-14552: cannot perform a DDL, commit or rollback inside a query or DML
aduh...error mulu ya pakai PL/SQL..abis kebiasaan pakai T-SQl sih...
bikin function yang didalamnya ada proses DDL(Data Definition language) koq ga mau y?
aq pikir2..masak DB sekelas oracle koq gt aja ga support..
hmmm akhirnya ketemu juga jawabannya..
scriptnya harus di kasih tambahan script lg ternyata
ternyata ini 'pragma autonomous_transaction;' yang dicari2 dari td..
ihh gemez......bikin lama kerjaan aj:D
========================================================
CREATE OR REPLACE Function NextProcessInDestinationTable
( modeInput IN Integer, tableNm IN varchar2, tablespaceNm IN varchar2
, dd IN varchar2, mm IN varchar2, yy IN varchar2)
RETURN Integer
IS
-- penambahan ini untuk mengatasi error msg :
-- ORA-14552: cannot perform a DDL, commit or rollback inside a query or DML
pragma autonomous_transaction; -- <===== ini dia :D
tailOfTable VARCHAR2(50);
sqlStatement VARCHAR2(2000);
i integer :=0;
BEGIN
IF ( tableNM = 'ACTIVITY' or tableNM = 'PENDING'
or tableNM = 'SETTLEMENT_LOP' or tableNm = 'RESOLVED') THEN
tailOfTable := substr(yy, 3, 2) || mm;
ELSIF ( tableNM = 'CUSTOMER' or tableNM = 'MERCHANT') then
tailOfTable := substr(yy, 3, 2) || mm ||dd;
END IF;
DBMS_OUTPUT.PUT_LINE('>>>>> ' || tailOfTable);
if (modeinput = 0) then
select count(1) into i
from all_tables
where table_name = (tableNm || tailOfTable) and tablespace_name = tablespaceNm;
if ( i > 0 ) then
-- processinsertdata please wait y:D
return 1;
else
--create table if not exists
sqlStatement := 'create table ' || tableNm || tailOfTable || ' as select * from ' || ' template_' || TableNm;
Execute immediate (sqlStatement);
end if;
end if;
return 0;
END;
========================================================
bikin function yang didalamnya ada proses DDL(Data Definition language) koq ga mau y?
aq pikir2..masak DB sekelas oracle koq gt aja ga support..
hmmm akhirnya ketemu juga jawabannya..
scriptnya harus di kasih tambahan script lg ternyata
ternyata ini 'pragma autonomous_transaction;' yang dicari2 dari td..
ihh gemez......bikin lama kerjaan aj:D
========================================================
CREATE OR REPLACE Function NextProcessInDestinationTable
( modeInput IN Integer, tableNm IN varchar2, tablespaceNm IN varchar2
, dd IN varchar2, mm IN varchar2, yy IN varchar2)
RETURN Integer
IS
-- penambahan ini untuk mengatasi error msg :
-- ORA-14552: cannot perform a DDL, commit or rollback inside a query or DML
pragma autonomous_transaction; -- <===== ini dia :D
tailOfTable VARCHAR2(50);
sqlStatement VARCHAR2(2000);
i integer :=0;
BEGIN
IF ( tableNM = 'ACTIVITY' or tableNM = 'PENDING'
or tableNM = 'SETTLEMENT_LOP' or tableNm = 'RESOLVED') THEN
tailOfTable := substr(yy, 3, 2) || mm;
ELSIF ( tableNM = 'CUSTOMER' or tableNM = 'MERCHANT') then
tailOfTable := substr(yy, 3, 2) || mm ||dd;
END IF;
DBMS_OUTPUT.PUT_LINE('>>>>> ' || tailOfTable);
if (modeinput = 0) then
select count(1) into i
from all_tables
where table_name = (tableNm || tailOfTable) and tablespace_name = tablespaceNm;
if ( i > 0 ) then
-- processinsertdata please wait y:D
return 1;
else
--create table if not exists
sqlStatement := 'create table ' || tableNm || tailOfTable || ' as select * from ' || ' template_' || TableNm;
Execute immediate (sqlStatement);
end if;
end if;
return 0;
END;
========================================================
Monday, August 09, 2010
Cara menggunakan SQL Loader via script untuk import data dari csv file
1. Tentukan file csv nya. misal file csv namanya data.csv berisi :
Source MDN,Destination MDN,Type,Transaction Date,return code
62882100000000,62881300000000,Topup,08/01/2010 23:59,145
882100000000,8821000000000,Topup,08/01/2010 23:58,145
882100000000,8826000000000,Topup,08/01/2010 23:58,145
881300000000,881300000000,Topup,08/01/2010 23:58,145
8821000000000,8821000000000,Topup,08/01/2010 23:58,145
881300000000,881600000000,Topup,08/01/2010 23:57,145
881600000000,881500000000,Topup,08/01/2010 23:57,145
8821000000000,8821000000000,Topup,08/01/2010 23:57,444
881800000000,881500000000,Topup,08/01/2010 23:56,444
881800000000,8822000000000,Topup,08/01/2010 23:56,444
881800000000,881400000000,Topup,08/01/2010 23:56,444
881800000000,881200000000,Topup,08/01/2010 23:56,444
881100000000,881100000000,Topup,08/01/2010 23:56,444
881800000000,8821000000000,Transfer,08/01/2010 23:56,444
881800000000,8822000000000,Transfer,08/01/2010 23:55,675
882000000000,8821000000000,Transfer,08/01/2010 23:55,675
881800000000,881300000000,Transfer,08/01/2010 23:55,675
881800000000,8822000000000,Transfer,08/01/2010 23:55,675
881100000000,881300000000,Transfer,08/01/2010 23:55,675
881800000000,8822000000000,Transfer,08/01/2010 23:55,675
881800000000,8822000000000,Transfer,08/01/2010 23:55,675
881900000000,881975tt4714,Transfer,08/01/2010 23:55,675
8821000000000,8826000000000,Transfer,08/01/2010 23:55,675
881300000000,881300000000,Transfer,08/01/2010 23:55,675
2. Buat table yang digunakan untuk menampung hasil insert, sesuaikan fieldnya dengan field csv nya misal seperti ini
Contoh model 1 :
CREATE TABLE TABLE_EX
(
SOURCE_MDN VARCHAR2(35 BYTE),
DEST_MDN VARCHAR2(35 BYTE),
TYPE VARCHAR2(10 BYTE),
TRX_DATE DATE,
RETUN_CODE VARCHAR2(10 BYTE)
)
Apabila ingin memasukkan datetime Process loader sekaligus saat loader maka buat table seperti berikut :
Contoh model 2:
CREATE TABLE TABLE_EX
(
SOURCE_MDN VARCHAR2(35 BYTE),
DEST_MDN VARCHAR2(35 BYTE),
TYPE VARCHAR2(10 BYTE),
TRX_DATE DATE,
RETUN_CODE VARCHAR2(10 BYTE),
LOADER_DATE DATE
)
3. Buat file type nya loader.ctl dengan isi seperti dibawah ini :
file .ctl untuk contoh model 1 adalah :
LOAD DATA
TRUNCATE
INTO TABLE "IZZA"."TABLE_EX"
FIELDS TERMINATED BY ','
TRAILING NULLCOLS
(
source_mdn "decode(substr(trim (:source_mdn), 1,2), '88', '62'||trim (:source_mdn), trim (:source_mdn))"
, dest_mdn "decode(substr(trim (:dest_mdn), 1,2), '88', '62'||trim (:dest_mdn), trim (:source_mdn))"
, Type "trim(:type)"
, trx_date date "yyyy-mm-dd hh24:mi:ss"
, return_code
)
file .ctl untuk contoh model 2 adalah :
LOAD DATA
TRUNCATE
INTO TABLE "IZZA"."TABLE_EX"
FIELDS TERMINATED BY ','
TRAILING NULLCOLS
(
source_mdn "decode(substr(trim (:source_mdn), 1,2), '88', '62'||trim (:source_mdn), trim (:source_mdn))"
, dest_mdn "decode(substr(trim (:dest_mdn), 1,2), '88', '62'||trim (:dest_mdn), trim (:source_mdn))"
, Type "trim(:type)"
, trx_date date "yyyy-mm-dd hh24:mi:ss"
, return_code
, LOADER_DATE "sysdate"
)
maksud dari script diatas adalah:
- IZZA : schema yang dipergunakan table yang akan diinsert data
- TABLE_EX : nama table yang digunakan menmapung data insert
- untuk field source_mdn :
apabila data mdn ini karakter 1-2 = 88 maka tambahkan 62 plus data asli field tersebut
- untuk field dest_mdn :
apabila data mdn ini karakter 1-2 = 88 maka tambahkan 62 plus data asli field tersebut
- untuk field type :
apabila terdapat sepasi diawal atau diakhir maka spasi dihilangkan baru diinsert
- untuk field trx_date :
data diformat sesuai yang format tanggal diinginkan karena tipe data dari table tersebut adalah date
- untuk field return_code :
data dimasukkan apa adanya
- untuk field loader_date
diisi fungsi "sysdate" yaitu mengambil data datetime saat itu. model pengisian seperti ini bisa digunakan apabila kita menginginkan memasukkan data dalam jumlah banyak sekaligus memberi tanggal kapan data tersebut dimasukkan ke system. kita juga bisa memasukkan fungsi-fungsi oracle yang lain
proses loader diatas akan menjalankan proses truncate table "table_EX" dulu sebelum meng-insert data yang ada di file csv ke table tersebut.
4. Jalankan script berikut di cmd command windows :
sqlldr izza/ismatulizzah@mis control='c:\loader.ctl', data='c:\data.csv', log='c:\loaderlog.log', BAD='c:\databad.bad', DISCARD='c\datadsc.dsc' direct='yes' skip=1
izzah => username
telco1 => password
control ='c:\loader.ctl' => lokasi dari file ctl nya
log='c:\loaderlog.log' => lokasi dari file log hasil proses yg dijalankan success atau ada fail nya
BAD='c:\databad.bad' => file akan berisi row data yang error dari data yang diproses
Skip = 1 => Baris Pertama dari isi file csv tidak diinsert ke table
direct = yes => ini bisa mempercepat proses loader file2 kapasitas besar kalau untuk file2 kecil ga begitu terlihat perbedaan timingnya.
lebih jelasnya baca artikel tentang sqlldr
Source MDN,Destination MDN,Type,Transaction Date,return code
62882100000000,62881300000000,Topup,08/01/2010 23:59,145
882100000000,8821000000000,Topup,08/01/2010 23:58,145
882100000000,8826000000000,Topup,08/01/2010 23:58,145
881300000000,881300000000,Topup,08/01/2010 23:58,145
8821000000000,8821000000000,Topup,08/01/2010 23:58,145
881300000000,881600000000,Topup,08/01/2010 23:57,145
881600000000,881500000000,Topup,08/01/2010 23:57,145
8821000000000,8821000000000,Topup,08/01/2010 23:57,444
881800000000,881500000000,Topup,08/01/2010 23:56,444
881800000000,8822000000000,Topup,08/01/2010 23:56,444
881800000000,881400000000,Topup,08/01/2010 23:56,444
881800000000,881200000000,Topup,08/01/2010 23:56,444
881100000000,881100000000,Topup,08/01/2010 23:56,444
881800000000,8821000000000,Transfer,08/01/2010 23:56,444
881800000000,8822000000000,Transfer,08/01/2010 23:55,675
882000000000,8821000000000,Transfer,08/01/2010 23:55,675
881800000000,881300000000,Transfer,08/01/2010 23:55,675
881800000000,8822000000000,Transfer,08/01/2010 23:55,675
881100000000,881300000000,Transfer,08/01/2010 23:55,675
881800000000,8822000000000,Transfer,08/01/2010 23:55,675
881800000000,8822000000000,Transfer,08/01/2010 23:55,675
881900000000,881975tt4714,Transfer,08/01/2010 23:55,675
8821000000000,8826000000000,Transfer,08/01/2010 23:55,675
881300000000,881300000000,Transfer,08/01/2010 23:55,675
2. Buat table yang digunakan untuk menampung hasil insert, sesuaikan fieldnya dengan field csv nya misal seperti ini
Contoh model 1 :
CREATE TABLE TABLE_EX
(
SOURCE_MDN VARCHAR2(35 BYTE),
DEST_MDN VARCHAR2(35 BYTE),
TYPE VARCHAR2(10 BYTE),
TRX_DATE DATE,
RETUN_CODE VARCHAR2(10 BYTE)
)
Apabila ingin memasukkan datetime Process loader sekaligus saat loader maka buat table seperti berikut :
Contoh model 2:
CREATE TABLE TABLE_EX
(
SOURCE_MDN VARCHAR2(35 BYTE),
DEST_MDN VARCHAR2(35 BYTE),
TYPE VARCHAR2(10 BYTE),
TRX_DATE DATE,
RETUN_CODE VARCHAR2(10 BYTE),
LOADER_DATE DATE
)
3. Buat file type nya loader.ctl dengan isi seperti dibawah ini :
file .ctl untuk contoh model 1 adalah :
LOAD DATA
TRUNCATE
INTO TABLE "IZZA"."TABLE_EX"
FIELDS TERMINATED BY ','
TRAILING NULLCOLS
(
source_mdn "decode(substr(trim (:source_mdn), 1,2), '88', '62'||trim (:source_mdn), trim (:source_mdn))"
, dest_mdn "decode(substr(trim (:dest_mdn), 1,2), '88', '62'||trim (:dest_mdn), trim (:source_mdn))"
, Type "trim(:type)"
, trx_date date "yyyy-mm-dd hh24:mi:ss"
, return_code
)
file .ctl untuk contoh model 2 adalah :
LOAD DATA
TRUNCATE
INTO TABLE "IZZA"."TABLE_EX"
FIELDS TERMINATED BY ','
TRAILING NULLCOLS
(
source_mdn "decode(substr(trim (:source_mdn), 1,2), '88', '62'||trim (:source_mdn), trim (:source_mdn))"
, dest_mdn "decode(substr(trim (:dest_mdn), 1,2), '88', '62'||trim (:dest_mdn), trim (:source_mdn))"
, Type "trim(:type)"
, trx_date date "yyyy-mm-dd hh24:mi:ss"
, return_code
, LOADER_DATE "sysdate"
)
maksud dari script diatas adalah:
- IZZA : schema yang dipergunakan table yang akan diinsert data
- TABLE_EX : nama table yang digunakan menmapung data insert
- untuk field source_mdn :
apabila data mdn ini karakter 1-2 = 88 maka tambahkan 62 plus data asli field tersebut
- untuk field dest_mdn :
apabila data mdn ini karakter 1-2 = 88 maka tambahkan 62 plus data asli field tersebut
- untuk field type :
apabila terdapat sepasi diawal atau diakhir maka spasi dihilangkan baru diinsert
- untuk field trx_date :
data diformat sesuai yang format tanggal diinginkan karena tipe data dari table tersebut adalah date
- untuk field return_code :
data dimasukkan apa adanya
- untuk field loader_date
diisi fungsi "sysdate" yaitu mengambil data datetime saat itu. model pengisian seperti ini bisa digunakan apabila kita menginginkan memasukkan data dalam jumlah banyak sekaligus memberi tanggal kapan data tersebut dimasukkan ke system. kita juga bisa memasukkan fungsi-fungsi oracle yang lain
proses loader diatas akan menjalankan proses truncate table "table_EX" dulu sebelum meng-insert data yang ada di file csv ke table tersebut.
4. Jalankan script berikut di cmd command windows :
sqlldr izza/ismatulizzah@mis control='c:\loader.ctl', data='c:\data.csv', log='c:\loaderlog.log', BAD='c:\databad.bad', DISCARD='c\datadsc.dsc' direct='yes' skip=1
izzah => username
telco1 => password
control ='c:\loader.ctl' => lokasi dari file ctl nya
log='c:\loaderlog.log' => lokasi dari file log hasil proses yg dijalankan success atau ada fail nya
BAD='c:\databad.bad' => file akan berisi row data yang error dari data yang diproses
Skip = 1 => Baris Pertama dari isi file csv tidak diinsert ke table
direct = yes => ini bisa mempercepat proses loader file2 kapasitas besar kalau untuk file2 kecil ga begitu terlihat perbedaan timingnya.
lebih jelasnya baca artikel tentang sqlldr
Friday, January 09, 2009
Bagaimana Kill Proses di Linux
Kadang kita tidak menginginkan lagi suatu proses running di system linux kita atau kita sudah membuka suatu aplikasi ternyata aplikasi yang kita buka itu sudah running akhirnya si linux kita neh nggak mau merunningkan aplikasi tersebut untuk kita dan ada komentarnya bilang kalo proses dah jalan tutup dulu untuk membuka yang baru. maka kalo ada yang ginian kill aja proses yang katanya dah running tersebut.
Caranya ada 2 :
A. Kill dari PID(Process ID) nya :
Langkahnya :
1. Lihat Semua PID proses yang sedang running dengan cara ketik ps (process status) command di konsole
ps -ef | grep [aplikasi/proses]
Contoh :
izzah@dev01:~> ps -ef | grep firefox
maka akan muncul
izzah@dev01:~> ps -ef | grep firefox
paddy 20644 13556 0 949 1396 0 Jan08 ? 00:00:00 /bin/sh /usr/bin/firefox
paddy 20649 20644 0 39768 37208 3 Jan08 ? 00:00:07 /usr/lib/firefox/firefox-bin
suseno 28352 7128 0 948 1392 1 10:17 ? 00:00:00 /bin/sh /usr/bin/firefox
suseno 28357 28352 1 47444 67336 7 10:17 ? 00:00:27 /usr/lib/firefox/firefox-bin
rusdi 31968 11397 0 948 1392 4 10:50 ? 00:00:00 /bin/sh /usr/bin/firefox
rusdi 31973 31968 0 28101 30096 6 10:50 ? 00:00:01 /usr/lib/firefox/firefox-bin
lukito 32752 11045 0 949 1396 6 10:52 ? 00:00:00 /bin/sh /usr/bin/firefox
lukito 32759 32752 3 42539 30924 1 10:52 ? 00:00:06 /usr/lib/firefox/firefox-bin
izzah 687 8926 0 733 1376 6 10:54 ? 00:00:00 /bin/sh /usr/bin/firefox
izzah 692 687 2 34632 40952 0 10:54 ? 00:00:02 /usr/lib/firefox/firefox-bin
izzah 823 772 0 491 680 6 10:56 pts/33 00:00:00 grep firefox
atau
kalau kita cuma pingin liat proses yang ada pada system qta sendiri(seperti saat kita main-main di windows dengan menekan tombol "CTRL+ALT+DEL" truss keluarlah "Task-Manager" ), di Linux bisa digunakan juga
izzah@dev01:~> ps ux
2. Kill Proses ID nya dengan cara ketik di konsole
kill -9 [PID]
Contoh :
izzah@dev01:~> kill -9 687
atau
izzah@dev01:~> kill 687
B. pkill nama prosesnya dengan cara ketik di konsole
pkill namaproses
Contoh :
izzah@dev01:~> pkill firefox
Caranya ada 2 :
A. Kill dari PID(Process ID) nya :
Langkahnya :
1. Lihat Semua PID proses yang sedang running dengan cara ketik ps (process status) command di konsole
ps -ef | grep [aplikasi/proses]
Contoh :
izzah@dev01:~> ps -ef | grep firefox
maka akan muncul
izzah@dev01:~> ps -ef | grep firefox
paddy 20644 13556 0 949 1396 0 Jan08 ? 00:00:00 /bin/sh /usr/bin/firefox
paddy 20649 20644 0 39768 37208 3 Jan08 ? 00:00:07 /usr/lib/firefox/firefox-bin
suseno 28352 7128 0 948 1392 1 10:17 ? 00:00:00 /bin/sh /usr/bin/firefox
suseno 28357 28352 1 47444 67336 7 10:17 ? 00:00:27 /usr/lib/firefox/firefox-bin
rusdi 31968 11397 0 948 1392 4 10:50 ? 00:00:00 /bin/sh /usr/bin/firefox
rusdi 31973 31968 0 28101 30096 6 10:50 ? 00:00:01 /usr/lib/firefox/firefox-bin
lukito 32752 11045 0 949 1396 6 10:52 ? 00:00:00 /bin/sh /usr/bin/firefox
lukito 32759 32752 3 42539 30924 1 10:52 ? 00:00:06 /usr/lib/firefox/firefox-bin
izzah 687 8926 0 733 1376 6 10:54 ? 00:00:00 /bin/sh /usr/bin/firefox
izzah 692 687 2 34632 40952 0 10:54 ? 00:00:02 /usr/lib/firefox/firefox-bin
izzah 823 772 0 491 680 6 10:56 pts/33 00:00:00 grep firefox
atau
kalau kita cuma pingin liat proses yang ada pada system qta sendiri(seperti saat kita main-main di windows dengan menekan tombol "CTRL+ALT+DEL" truss keluarlah "Task-Manager" ), di Linux bisa digunakan juga
izzah@dev01:~> ps ux
2. Kill Proses ID nya dengan cara ketik di konsole
kill -9 [PID]
Contoh :
izzah@dev01:~> kill -9 687
atau
izzah@dev01:~> kill 687
B. pkill nama prosesnya dengan cara ketik di konsole
pkill namaproses
Contoh :
izzah@dev01:~> pkill firefox
Wednesday, January 07, 2009
PEMODELAN DATABASE
I. Tahapan Pemodelan
Dalam suatu pemodelan tidak ada istilah model yang kita rancang benar atau salah, yang ada hanyalah model yang kita rancang tepat atau tidak tepat terhadap aplikasi yang akan kita buat
Tahapan dalam membuat model database :
1. Menentukan Entity(object dalam suatu sistem)
Tiap entity umumnya dijadikan dalam 1 tabel yang disebut tabel entity. Misal : dalam sistem penjualan maka ada entity supplier, customer, barang dan transaksi
2. Menentukan Atribut(Property) dari entity yang telah ditetapkan
Misal : tabel customer mempunyai atribut nama, alamat, kota, kodepos, propinsi, tanggal record dibuat, tanggal record diupdate, status record(aktif/tidak) dsb
3. Menentukan Kardinalitas(derajat relasi) antara entity-entity yang telah ditetapkan.
Kardinalitas(derajat relasi) :
Jumlah maximal entity yang dapat berelasi dengan entity pada himpunan entity lain.
Kardinalitas antara 2 himpunan entity (misal A dan B) dapat berupa :
1. One to One (1:1)
Tiap entity pada himpunan entity A boleh berelasi hanya maximal 1 entity di himpunan entity B, begitu juga sebaliknya. Tidak boleh terjadi duplikasi pada kedua himpunan entitiy.
2. One to Many (1:n)
Tiap entitiy pada himpunan entity A boleh berelasi lebih dari satu entity pada himpunan entity B. Tidak boleh terjadi duplikasi pada himpunan entity A.
3. Many to One (n:1)
Kebalikan dari definisi One to Many
4. Many to many (m:n)
Tiap entitiy pada himpunan entity A boleh berelasi lebih dari satu entity pada himpunan entity B. begitu pula sebaliknya.
Pada aplikasi sederhana pemodelan yang dibuat masih sederhana namun jika aplikasi berkembang menjadi lebih komplek otomatis pemodelan yang dirancang akan lebih komplek pula. Jumlah entity, atribut dan relasi juga akan bertambah. Dan terkadang yang semula merupakan atribut, pada aplikasi yang lebih komplek atribut tersebut harus diubah menjadi sebuah entity dikarenakan hubungan one to many atau many to many dengan atribut lain. Misal : tabel customer mempunyai atribut alamat. jika pada aplikasi yang kita rancang memungkinkan 1 customer bisa memiliki lebih dari 1 alamat maka alamat yang sebelumnya merupakan atribut dari entity customer harus diubah menjadi entity yang menempati suatu tabel tersendiri dah selanjutnya harus dibuat hubungan relasi one to many dari tabel customer ke tabel alamat.
II. Normalisasi
Normalisasi merupakan proses pengelompokan data menjadi tabel yang menunjukkan entity dan relasi. Proses normalisasi suatu data sampai tidak ada kesulitan pada proses Create, Read(Select/Retrieve), Update dan Delete(Destroy),atau yang sering disingkat CRUD, data pada database.
Misal : kita mengambil kasus transaksi penjualan dengan mengambil data sample dari nota penjualannya dan kita coba membuat step-step bentuk normalisasinya.
======================================================================
| PT Winaros Kawula Bahari |
| Jl. Cangkringmalang Beji- Pasuruan |
| www.kawula.or.id |
| |
| No Nota : Kode Customer : |
| Tanggal : Nama : |
| Alamat : |
| |
| ================================================================= |
| |No | Kode | Nama Barang | Harga |Quantity | Total | |
| ================================================================= |
| |1 | | | | | | |
| ================================================================= |
| |2 | | | | | | |
| ================================================================= |
| Total | | | |
| ======================= |
| Pasuruan, 23 Agustus 2008 |
| Kasir, |
| |
| Stevany |
======================================================================
Dalam perancangan dikenal beberapa tahap pembentukan tabel yaitu :
1. Bentuk Tidak Normal ( Unnormalized )
Kumpulan data yang akan ditangani tidak ada keharusan mengikuti suatu format tertentu, bisa berupa data yang tidak lengkap atau terduplikasi. Data yang dikumpulkan apa adanya sesuai keberadaanya.
2. Bentuk Normal Pertama (First Normal Form / 1NF )
Data dipisahkan pada field yang tepat dan bernilai atomik(tidak ada set atribut yang berulang-ulang/ bernilai ganda(Multi Value) ).
======================================================================
| No Nota | Tanggal |Kode Customer|Nama Customer|Alamat |
======================================================================
|001/SBY/01/2008|01/01/2008| A001 |Anna Via |Jl Mawar 1 |
======================================================================
|002/SBY/02/2008|01/02/2008| A002 |Andrea |Jl.Kinibalu 2|
======================================================================
Lanjutan record tabel
=====================================================
Kode Barang|Nama Barang | Harga |Quantity| Total |
=====================================================
T01 |Tas Elizabeth|150.000 | 3 |450.0000|
=====================================================
S01 |Sepatu Beauty|100.000 | 2 |200.0000|
=====================================================
3. Bentuk Normal Kedua (Second Normal Form / 2NF )
Menentukan kunci field sebagai acuan pencarian data dan memiliki sifat yang unit. Diasumsikan bahwa data telah memenuhi kriteria bentuk normal pertama. atribut bukan kunci haruslah bergantung secara fungsi pada primary key.
Dari tabel diatas maka primary key nya dapat ditentukan sebagai berikut :
A. No Nota
B. Kode Customer
C. Kode Barang
dari ketiga primary key diatas maka dapat diturunkan tabel yang mempunyai ketergantungan pada masing-masing kunci.
===============
|Tabel Nota |
===============
|No Nota |
|Tanggal Nota |
|Kode Customer|
|Kode Barang |
|Quantity |
|Harga |
==============
=================
|Tabel Customer |
=================
|Kode Customer |
|Nama Customer |
|Alamat |
================
================
| Tabel Barang |
================
|Kode Barang |
|Nama Barang |
|Harga |
================
Dengan struktur tabel diatas maka proses insert, delete, Update todak bermasalah, Kode customer dan nama customer baru dapat diinsertkan tanpa harus ada transaksi di tabel nota. Begitu juga Kode barang dan nama barang baru.
Selanjutnya terdapat masalah di tabel nota karena field entity dan harga tidak bergantung pada primary key No Nota di tabel nota tapi fungsinya bergantung pada kode barang. Hal ini disebut ketergantungan transitif dann harus dipisah dalam 2 buah tabel(tabel master-detail).
4. Bentuk Normal Ketiga (third Normal Form / 3NF )
Bentuk normal ketiga mempunyai syarat setiap tabel tidak mempunyai field yang bergantung transitif, namun harus bergantung penuh pada kunci utama.
Dengan Demikian, Relasi haruslah dalam bentuk normal kedua(2NF) dan semua atribut yang bukan primer tidak punya hubungan transitif. Dengan kata lain, setiap atribut bukan kunci haruslah bergantung hanya pada primary key secara menyeluruh.
Mengacu pada bentuk normal ketika maka model yang kita buat sebelumnya harus diubah menjadi :
=================
|Tbl Nota Master|
=================
|No Nota |
|Tanggal Nota |
|Kode Customer |
================
=================
|Tbl Nota Detail|
=================
|No Nota |
|Kode Barang |
|Quantity |
|Harga |
=================
=================
|Tabel Customer |
=================
|Kode Customer |
|Nama Customer |
|Alamat |
=================
================
| Tabel Barang |
================
|Kode Barang |
|Nama Barang |
|Harga |
================
5. Boyce-codd Normal Form (BCNF)
Mempunyai paksaan yang lebih kuat dari bentuk normal ketiga untuk menjadi BCNf, relasi harus dalam bentuk normal kesatu dan setiap atribut harus bergantung secara fungsi pada atribut superkey
Dalam suatu pemodelan tidak ada istilah model yang kita rancang benar atau salah, yang ada hanyalah model yang kita rancang tepat atau tidak tepat terhadap aplikasi yang akan kita buat
Tahapan dalam membuat model database :
1. Menentukan Entity(object dalam suatu sistem)
Tiap entity umumnya dijadikan dalam 1 tabel yang disebut tabel entity. Misal : dalam sistem penjualan maka ada entity supplier, customer, barang dan transaksi
2. Menentukan Atribut(Property) dari entity yang telah ditetapkan
Misal : tabel customer mempunyai atribut nama, alamat, kota, kodepos, propinsi, tanggal record dibuat, tanggal record diupdate, status record(aktif/tidak) dsb
3. Menentukan Kardinalitas(derajat relasi) antara entity-entity yang telah ditetapkan.
Kardinalitas(derajat relasi) :
Jumlah maximal entity yang dapat berelasi dengan entity pada himpunan entity lain.
Kardinalitas antara 2 himpunan entity (misal A dan B) dapat berupa :
1. One to One (1:1)
Tiap entity pada himpunan entity A boleh berelasi hanya maximal 1 entity di himpunan entity B, begitu juga sebaliknya. Tidak boleh terjadi duplikasi pada kedua himpunan entitiy.
2. One to Many (1:n)
Tiap entitiy pada himpunan entity A boleh berelasi lebih dari satu entity pada himpunan entity B. Tidak boleh terjadi duplikasi pada himpunan entity A.
3. Many to One (n:1)
Kebalikan dari definisi One to Many
4. Many to many (m:n)
Tiap entitiy pada himpunan entity A boleh berelasi lebih dari satu entity pada himpunan entity B. begitu pula sebaliknya.
Pada aplikasi sederhana pemodelan yang dibuat masih sederhana namun jika aplikasi berkembang menjadi lebih komplek otomatis pemodelan yang dirancang akan lebih komplek pula. Jumlah entity, atribut dan relasi juga akan bertambah. Dan terkadang yang semula merupakan atribut, pada aplikasi yang lebih komplek atribut tersebut harus diubah menjadi sebuah entity dikarenakan hubungan one to many atau many to many dengan atribut lain. Misal : tabel customer mempunyai atribut alamat. jika pada aplikasi yang kita rancang memungkinkan 1 customer bisa memiliki lebih dari 1 alamat maka alamat yang sebelumnya merupakan atribut dari entity customer harus diubah menjadi entity yang menempati suatu tabel tersendiri dah selanjutnya harus dibuat hubungan relasi one to many dari tabel customer ke tabel alamat.
II. Normalisasi
Normalisasi merupakan proses pengelompokan data menjadi tabel yang menunjukkan entity dan relasi. Proses normalisasi suatu data sampai tidak ada kesulitan pada proses Create, Read(Select/Retrieve), Update dan Delete(Destroy),atau yang sering disingkat CRUD, data pada database.
Misal : kita mengambil kasus transaksi penjualan dengan mengambil data sample dari nota penjualannya dan kita coba membuat step-step bentuk normalisasinya.
======================================================================
| PT Winaros Kawula Bahari |
| Jl. Cangkringmalang Beji- Pasuruan |
| www.kawula.or.id |
| |
| No Nota : Kode Customer : |
| Tanggal : Nama : |
| Alamat : |
| |
| ================================================================= |
| |No | Kode | Nama Barang | Harga |Quantity | Total | |
| ================================================================= |
| |1 | | | | | | |
| ================================================================= |
| |2 | | | | | | |
| ================================================================= |
| Total | | | |
| ======================= |
| Pasuruan, 23 Agustus 2008 |
| Kasir, |
| |
| Stevany |
======================================================================
Dalam perancangan dikenal beberapa tahap pembentukan tabel yaitu :
1. Bentuk Tidak Normal ( Unnormalized )
Kumpulan data yang akan ditangani tidak ada keharusan mengikuti suatu format tertentu, bisa berupa data yang tidak lengkap atau terduplikasi. Data yang dikumpulkan apa adanya sesuai keberadaanya.
2. Bentuk Normal Pertama (First Normal Form / 1NF )
Data dipisahkan pada field yang tepat dan bernilai atomik(tidak ada set atribut yang berulang-ulang/ bernilai ganda(Multi Value) ).
======================================================================
| No Nota | Tanggal |Kode Customer|Nama Customer|Alamat |
======================================================================
|001/SBY/01/2008|01/01/2008| A001 |Anna Via |Jl Mawar 1 |
======================================================================
|002/SBY/02/2008|01/02/2008| A002 |Andrea |Jl.Kinibalu 2|
======================================================================
Lanjutan record tabel
=====================================================
Kode Barang|Nama Barang | Harga |Quantity| Total |
=====================================================
T01 |Tas Elizabeth|150.000 | 3 |450.0000|
=====================================================
S01 |Sepatu Beauty|100.000 | 2 |200.0000|
=====================================================
3. Bentuk Normal Kedua (Second Normal Form / 2NF )
Menentukan kunci field sebagai acuan pencarian data dan memiliki sifat yang unit. Diasumsikan bahwa data telah memenuhi kriteria bentuk normal pertama. atribut bukan kunci haruslah bergantung secara fungsi pada primary key.
Dari tabel diatas maka primary key nya dapat ditentukan sebagai berikut :
A. No Nota
B. Kode Customer
C. Kode Barang
dari ketiga primary key diatas maka dapat diturunkan tabel yang mempunyai ketergantungan pada masing-masing kunci.
===============
|Tabel Nota |
===============
|No Nota |
|Tanggal Nota |
|Kode Customer|
|Kode Barang |
|Quantity |
|Harga |
==============
=================
|Tabel Customer |
=================
|Kode Customer |
|Nama Customer |
|Alamat |
================
================
| Tabel Barang |
================
|Kode Barang |
|Nama Barang |
|Harga |
================
Dengan struktur tabel diatas maka proses insert, delete, Update todak bermasalah, Kode customer dan nama customer baru dapat diinsertkan tanpa harus ada transaksi di tabel nota. Begitu juga Kode barang dan nama barang baru.
Selanjutnya terdapat masalah di tabel nota karena field entity dan harga tidak bergantung pada primary key No Nota di tabel nota tapi fungsinya bergantung pada kode barang. Hal ini disebut ketergantungan transitif dann harus dipisah dalam 2 buah tabel(tabel master-detail).
4. Bentuk Normal Ketiga (third Normal Form / 3NF )
Bentuk normal ketiga mempunyai syarat setiap tabel tidak mempunyai field yang bergantung transitif, namun harus bergantung penuh pada kunci utama.
Dengan Demikian, Relasi haruslah dalam bentuk normal kedua(2NF) dan semua atribut yang bukan primer tidak punya hubungan transitif. Dengan kata lain, setiap atribut bukan kunci haruslah bergantung hanya pada primary key secara menyeluruh.
Mengacu pada bentuk normal ketika maka model yang kita buat sebelumnya harus diubah menjadi :
=================
|Tbl Nota Master|
=================
|No Nota |
|Tanggal Nota |
|Kode Customer |
================
=================
|Tbl Nota Detail|
=================
|No Nota |
|Kode Barang |
|Quantity |
|Harga |
=================
=================
|Tabel Customer |
=================
|Kode Customer |
|Nama Customer |
|Alamat |
=================
================
| Tabel Barang |
================
|Kode Barang |
|Nama Barang |
|Harga |
================
5. Boyce-codd Normal Form (BCNF)
Mempunyai paksaan yang lebih kuat dari bentuk normal ketiga untuk menjadi BCNf, relasi harus dalam bentuk normal kesatu dan setiap atribut harus bergantung secara fungsi pada atribut superkey
Monday, December 22, 2008
SDLC (System Development Life Cycle)
Kita coba belajar lagi tentang SDLC biar tidak ada step-step yang ketinggalan kalo kita mau membangun suatu sistem baru(istirahat dulu dari kerjaan yakkk.. refeshing sebentar:D)
Ada beberapa metode untuk pengembangan suatu sistem diantaranya : Traditional SDLC(System Development Life Cycle), Rapid Application Development(RAD), Prototyping, Joint Application Development (JAD), End-User Development(EUD), Outsourcing, Object-Oriented Development(OOD) dll
Traditional SDLC merupakan metode yang digunakan untuk mengembangkan suatu sistem। SDLC sendiri adalah framework untuk memanage proses pengembangan suatu sistem. Dengan mengacu pada metode SDLC ini diharapkan output yang dihasilkan merupakan sistem yang berkualitas tinggi yang dapat memenuhi/melebihi harapan customer dan sesuai dengan waktu dan biaya yang telah diperkirakan.
Tahapan-tahapan dari SDLC
1. PLANNING
- Mendefinisikan bisnis problem dan scope nya berdasar user requirement
- Mengidentifikasikan dan memastikan kelayakan dari project baik dari sisi ekonomi, organisasi, technical, resource dan jadwal
- Menentukan jadwal project secara detail beserta staff projectnya(resource management).
- Launching Project(pengumuman resmi)
2. ANALYSIS
- Mempelajari business proses dan struktur dari sistem yang didinginkan
- Membuat prototype berdasar user requirement
- Menetapkan prioritas dari requirement-requirement yang ada.
- Mengidentifikasikan masalah-masalah pada sistem yang telah ada dan mencari solusi yang selanjutnya digunakan sebagai perbaikan dari sistem yang telah berjalan saat ini.
3. DESIGN
- Mengkonversikan solusi yang disarankan ke dalam spesifikasi system
- Membuat desain arsitektur dari aplikasi
- Membuat desain user interface
- Membuat desain integrasi dari database ke aplikasi
- Membuat prototype dari desain secara detail
- Mebuat desain dan integrasinya dengan sistem control
4. IMPLEMENTATION
- Mengimplementasikan rancangan-rancangan logical ke dalam kegiatan sebenarnya dari sistem yang akan dibangun/dikembangkan
- Mengetest dan memverifikasi sistem yang dihasilkan dan memastikan bahwa semua modul berfungsi dengan baik dan sesuai dengan user requirement dengan cara menjalankan 1 life cycle dari proses. tidak hanya melakukan Unit Testing(Testing per unit)
- Konversi Data Lama ke sistem baru jika diperlukan
- Menginstall system baru dan memberi pelatihan pada user(user training) berdasar user manual yang telah dibuat
5. MAINTENANCE
- Menjaga sistem baru agar tetap berjalan dengan baik
- melakukan upgrade untuk meningkatkan kemampuan system beserta dokumen-dokumen yang berkaitan
Ada beberapa metode untuk pengembangan suatu sistem diantaranya : Traditional SDLC(System Development Life Cycle), Rapid Application Development(RAD), Prototyping, Joint Application Development (JAD), End-User Development(EUD), Outsourcing, Object-Oriented Development(OOD) dll
Traditional SDLC merupakan metode yang digunakan untuk mengembangkan suatu sistem। SDLC sendiri adalah framework untuk memanage proses pengembangan suatu sistem. Dengan mengacu pada metode SDLC ini diharapkan output yang dihasilkan merupakan sistem yang berkualitas tinggi yang dapat memenuhi/melebihi harapan customer dan sesuai dengan waktu dan biaya yang telah diperkirakan.
Tahapan-tahapan dari SDLC
1. PLANNING
- Mendefinisikan bisnis problem dan scope nya berdasar user requirement
- Mengidentifikasikan dan memastikan kelayakan dari project baik dari sisi ekonomi, organisasi, technical, resource dan jadwal
- Menentukan jadwal project secara detail beserta staff projectnya(resource management).
- Launching Project(pengumuman resmi)
2. ANALYSIS
- Mempelajari business proses dan struktur dari sistem yang didinginkan
- Membuat prototype berdasar user requirement
- Menetapkan prioritas dari requirement-requirement yang ada.
- Mengidentifikasikan masalah-masalah pada sistem yang telah ada dan mencari solusi yang selanjutnya digunakan sebagai perbaikan dari sistem yang telah berjalan saat ini.
3. DESIGN
- Mengkonversikan solusi yang disarankan ke dalam spesifikasi system
- Membuat desain arsitektur dari aplikasi
- Membuat desain user interface
- Membuat desain integrasi dari database ke aplikasi
- Membuat prototype dari desain secara detail
- Mebuat desain dan integrasinya dengan sistem control
4. IMPLEMENTATION
- Mengimplementasikan rancangan-rancangan logical ke dalam kegiatan sebenarnya dari sistem yang akan dibangun/dikembangkan
- Mengetest dan memverifikasi sistem yang dihasilkan dan memastikan bahwa semua modul berfungsi dengan baik dan sesuai dengan user requirement dengan cara menjalankan 1 life cycle dari proses. tidak hanya melakukan Unit Testing(Testing per unit)
- Konversi Data Lama ke sistem baru jika diperlukan
- Menginstall system baru dan memberi pelatihan pada user(user training) berdasar user manual yang telah dibuat
5. MAINTENANCE
- Menjaga sistem baru agar tetap berjalan dengan baik
- melakukan upgrade untuk meningkatkan kemampuan system beserta dokumen-dokumen yang berkaitan
Tuesday, December 16, 2008
Teknik Pengkabelan UTP
Komputer dapat berhubungan dengan komputer lain/jaringan lain karena adanya perlatan jaringan komputer yang disebut Network Interface, yang bisa berupa ethernet card maupun modem। sebelum menghubungkan perangkat tersebut harusnya kita tentuin dulu . koneksi tipe apa yang mau kita gunakan.
Teknik pengkabelan untuk mengkoneksikan perangkat kita ada 2 tipe
A. Tipe straight-through (Straight)
Tipe ini digunakan jika kita ingin menghubungkan komputer ke hub/switch/router
Konfigurasi kabel untuk tipe straight, Ujung A dan Ujung B mempunyai urutan sebagai berikut :
1. white-orange
2. orange
3. white-green
4. blue
5. white-blue
6. green
7. white-brown
8. brown
B. Tipe Crossover(Cross)
Tipe ini digunakan jika kita ingin menghubungkan Komputer ke komputer, hub ke hub atau Router ke router
Konfigurasi kabel untuk tipe cross, Ujung A mempunyai urutan sebagai berikut :
1. white-orange
2. orange
3. white-green
4. blue
5. white-blue
6. green
7. white-brown
8. brown
Konfigurasi kabel untuk tipe cross, Ujung B mempunyai urutan sebagai berikut :
1. white-green
2. green
3. white-orange
4. blue
5. white-blue
6. orange
7. white-brown
8. brown
Setelah kita tentuin tipe yang kita pilih, maka komponen-komponen yang harus kita siapin selanjutnya adalah :
1. Ethernet Card
Device ini harus diperiksa lagi, apa komputer yang kita pakai ethernet card nya on-board atau ngga.kalo nggak yach mestinya harus beli donk:)
2. Kabel UTP (Unshielded Twisted Pair)
Kabel ini murah koq ga mahal(wah...jd inget pas skripsi ya...kenangan tak terlupa:D, beli kabel ke pasar genteng, beli UTP sepanjang2nya, beli Crimping Tool, bikin kabel sendiri, bikin LAN sendiri)
3. Konektor RJ-45(Register Jack)
Konektor ini menghubungkan kabel UTP ke ethernet card
4. Crimping Tool
Alat ini seperti tang yang memasukkan bagian-bagian dari kabel UTP ke dalam pin2 di konektor RJ-45
5. LAN Tester
Kalo yang ini sifatnya optional sich..tanpa alat ini pun bisa koq.
LAN Tester ini mempunyai 8 pasang LED Indicator yang bs berkedip-kedip bergantian yang berfungsi untuk mengindikasikan kalo kabel2 yang dah kita rancang itu terkoneksi dengan baik.
Teknik pengkabelan untuk mengkoneksikan perangkat kita ada 2 tipe
A. Tipe straight-through (Straight)
Tipe ini digunakan jika kita ingin menghubungkan komputer ke hub/switch/router
Konfigurasi kabel untuk tipe straight, Ujung A dan Ujung B mempunyai urutan sebagai berikut :
1. white-orange
2. orange
3. white-green
4. blue
5. white-blue
6. green
7. white-brown
8. brown
B. Tipe Crossover(Cross)
Tipe ini digunakan jika kita ingin menghubungkan Komputer ke komputer, hub ke hub atau Router ke router
Konfigurasi kabel untuk tipe cross, Ujung A mempunyai urutan sebagai berikut :
1. white-orange
2. orange
3. white-green
4. blue
5. white-blue
6. green
7. white-brown
8. brown
Konfigurasi kabel untuk tipe cross, Ujung B mempunyai urutan sebagai berikut :
1. white-green
2. green
3. white-orange
4. blue
5. white-blue
6. orange
7. white-brown
8. brown
Setelah kita tentuin tipe yang kita pilih, maka komponen-komponen yang harus kita siapin selanjutnya adalah :
1. Ethernet Card
Device ini harus diperiksa lagi, apa komputer yang kita pakai ethernet card nya on-board atau ngga.kalo nggak yach mestinya harus beli donk:)
2. Kabel UTP (Unshielded Twisted Pair)
Kabel ini murah koq ga mahal(wah...jd inget pas skripsi ya...kenangan tak terlupa:D, beli kabel ke pasar genteng, beli UTP sepanjang2nya, beli Crimping Tool, bikin kabel sendiri, bikin LAN sendiri)
3. Konektor RJ-45(Register Jack)
Konektor ini menghubungkan kabel UTP ke ethernet card
4. Crimping Tool
Alat ini seperti tang yang memasukkan bagian-bagian dari kabel UTP ke dalam pin2 di konektor RJ-45
5. LAN Tester
Kalo yang ini sifatnya optional sich..tanpa alat ini pun bisa koq.
LAN Tester ini mempunyai 8 pasang LED Indicator yang bs berkedip-kedip bergantian yang berfungsi untuk mengindikasikan kalo kabel2 yang dah kita rancang itu terkoneksi dengan baik.
Monday, November 17, 2008
Tidak Semua Header C di Windows Berlaku di linux lho ...
Tidak Semua Header C di Windows Berlaku di linux lho। Seperti header conio.h yg salah satunya dipakai untuk fungsi clrscr, getch misalnya, di GNU / linux tidak bisa dipakai ternyata ya?(wah payah neh gw ketahuan kalo mmg jarang pake C di linux hehehe, memang:D). dah beberapa tahun y dah ga pake c, pakenya hanya saat Tugas akhir di poltek and saat praktikum Mata kuliah Interfacing di ITS yang ngakses hardware mknya pake C kalo ga , ga kenal C kali:).
Daftar header turbo C apa aja sih yang bisa digunakan di linux?kita bisa lihat di /usr/include/ . Jadi jangan lupa yach..periksa lagi di /usr/include/ jika mau include kan macam2 header C. jadi kalo ada komentar "error: conio.h: No such file or directory" pas di compile program C nya jangan kelamaan.. langsung aja periksa /usr/include/. ada ga daftar header yang diinclude di program disana:)
Daftar header turbo C apa aja sih yang bisa digunakan di linux?kita bisa lihat di /usr/include/ . Jadi jangan lupa yach..periksa lagi di /usr/include/ jika mau include kan macam2 header C. jadi kalo ada komentar "error: conio.h: No such file or directory" pas di compile program C nya jangan kelamaan.. langsung aja periksa /usr/include/. ada ga daftar header yang diinclude di program disana:)
Tuesday, November 11, 2008
Format Number di JAVA menggunakan DecimalFormat dan NumberFormat
Untuk membuat format number di java dapat digunakan DecimalFormat atau NumberFormat।Supaya tidak lupa aq tulis di blog saja ah.
esnips.com/doc/8614e892-0a92-437b-8e3b-574fad318fce/MyNumberFormat
====================================================================
package test1;
import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.util.Locale;
public class MyNumberFormart {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Double nilai = new Double(1234.6);
DecimalFormat gaPakaiTanda = new DecimalFormat("###,##0.00");
System.out.println("\nNilai (dengan format DecimalFormat(''###,##0.00'')) = " + gaPakaiTanda.format(nilai));
DecimalFormat pakaiTanda = new DecimalFormat("$###,##0.00");
System.out.println("\nNilai (dengan format DecimalFormat(''$###,##0.00'') =" + pakaiTanda.format(nilai));
NumberFormat instanceFormat = NumberFormat.getCurrencyInstance();
System.out.println("\nNilai (dengan NumberFormat.getCurrencyInstance() ) = " + instanceFormat.format(nilai));
NumberFormat dgFormat = NumberFormat.getInstance();
System.out.println("\nNilai (dengan NumberFormat.getInstance() ) = " +dgFormat.format(nilai));
Double dataPersen = new Double(0.35);
NumberFormat formatPersen;
String data = new String("");
formatPersen = NumberFormat.getPercentInstance();
data = formatPersen.format(dataPersen);
System.out.println("\nNilai Data dalam Format Persen = "+data);
}
}
====================================================================
ओउत्पुत:
Nilai (dengan format DecimalFormat(''###,##0.00'')) = 1,234.60
Nilai (dengan format DecimalFormat(''$###,##0.00'') =$1,234.60
Nilai (dengan NumberFormat.getCurrencyInstance() ) = $1,234.60
Nilai (dengan NumberFormat.getInstance() ) = 1,234.6
Nilai Data dalam Format Persen = 35%
esnips.com/doc/8614e892-0a92-437b-8e3b-574fad318fce/MyNumberFormat
====================================================================
package test1;
import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.util.Locale;
public class MyNumberFormart {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Double nilai = new Double(1234.6);
DecimalFormat gaPakaiTanda = new DecimalFormat("###,##0.00");
System.out.println("\nNilai (dengan format DecimalFormat(''###,##0.00'')) = " + gaPakaiTanda.format(nilai));
DecimalFormat pakaiTanda = new DecimalFormat("$###,##0.00");
System.out.println("\nNilai (dengan format DecimalFormat(''$###,##0.00'') =" + pakaiTanda.format(nilai));
NumberFormat instanceFormat = NumberFormat.getCurrencyInstance();
System.out.println("\nNilai (dengan NumberFormat.getCurrencyInstance() ) = " + instanceFormat.format(nilai));
NumberFormat dgFormat = NumberFormat.getInstance();
System.out.println("\nNilai (dengan NumberFormat.getInstance() ) = " +dgFormat.format(nilai));
Double dataPersen = new Double(0.35);
NumberFormat formatPersen;
String data = new String("");
formatPersen = NumberFormat.getPercentInstance();
data = formatPersen.format(dataPersen);
System.out.println("\nNilai Data dalam Format Persen = "+data);
}
}
====================================================================
ओउत्पुत:
Nilai (dengan format DecimalFormat(''###,##0.00'')) = 1,234.60
Nilai (dengan format DecimalFormat(''$###,##0.00'') =$1,234.60
Nilai (dengan NumberFormat.getCurrencyInstance() ) = $1,234.60
Nilai (dengan NumberFormat.getInstance() ) = 1,234.6
Nilai Data dalam Format Persen = 35%
Format Date di JAVA menggunakan SimpleDateFormat atau DateFormat
Untuk membuat format tanggal di java dapat digunakan SimpleDateFormat atau DateFormat।Supaya tidak lupa aq tulis di blog saja ah॥
esnips.com/doc/8614e892-0a92-437b-8e3b-574fad318fce/FormatTanggal
===========================================================================
package test1;
import java.text.DateFormat;
import java.text.Format;
import java.text.SimpleDateFormat;
import java.util.Date;
public class FormatTanggal {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String temp = new String("");
Date date = new Date();
System.out.println("Hari ini (tanpa format data) adalah : " +date);
Format myFormat = new SimpleDateFormat("yyyy.MM.dd G 'at' HH:mm:ss z");
temp = myFormat.format(date);
System.out.println("\n\nHari ini adalah : " +temp);
myFormat = new SimpleDateFormat("dd-MM-yyyy G 'at' HH:mm:ss z");
temp = myFormat.format(date);
System.out.println("\n\nHari ini adalah : " +temp);
myFormat = new SimpleDateFormat("EEE, MMM d, ''yy");
temp = myFormat.format(date);
System.out.println("\n\nHari ini adalah : " +temp);
myFormat = new SimpleDateFormat("EEE, d MMM yyyy HH:mm:ss Z");
temp = myFormat.format(date);
System.out.println("\n\nHari ini adalah : " +temp);
myFormat = new SimpleDateFormat("EEEE, d MMMM yyyy HH:mm:ss");
temp = myFormat.format(date);
System.out.println("\n\nHari ini adalah : " +temp);
myFormat = new SimpleDateFormat("dd/MM/yyyy");
temp = myFormat.format(date);
System.out.println("\n\nHari ini adalah : " +temp);
myFormat = new SimpleDateFormat("MM");
temp = myFormat.format(date);
System.out.println("\n\nSekarang Bulan ke : " +temp);
myFormat = new SimpleDateFormat("MMM");
temp = myFormat.format(date);
System.out.println("\n\nSekarang Bulan : " +temp);
myFormat = new SimpleDateFormat("dd");
temp = myFormat.format(date);
System.out.println("\n\nSekarang Hari : " +temp);
myFormat = new SimpleDateFormat("EEEE");
temp = myFormat.format(date);
System.out.println("\n\nSekarang Hari : " +temp);
myFormat = new SimpleDateFormat("h:mm a");
temp = myFormat.format(date);
System.out.println("\n\nHari ini adalah : " +temp);
temp = DateFormat.getDateInstance(DateFormat.SHORT).format(date);
System.out.println("\n\nHari ini (DateFormat.SHORT) adalah : " +temp);
temp = DateFormat.getDateInstance(DateFormat.LONG).format(date);
System.out.println("\n\nHari ini (DateFormat.LONG) adalah : " +temp);
temp = DateFormat.getDateInstance(DateFormat.MEDIUM).format(date);
System.out.println("\n\nHari ini (DateFormat.MEDIUM) adalah : " +temp);
}
}
============================================================
output
Hari ini (tanpa format data) adalah : Tue Nov 11 13:15:50 WIT 2008
Hari ini adalah : 2008.11.11 AD at 13:15:50 WIT
Hari ini adalah : 11-11-2008 AD at 13:15:50 WIT
Hari ini adalah : Tue, Nov 11, '08
Hari ini adalah : Tue, 11 Nov 2008 13:15:50 +0700
Hari ini adalah : Tuesday, 11 November 2008 13:15:50
Hari ini adalah : 11/11/2008
Sekarang Bulan ke : 11
Sekarang Bulan : Nov
Sekarang Hari : 11
Sekarang Hari : Tuesday
Hari ini adalah : 1:15 PM
Hari ini (DateFormat.SHORT) adalah : 11/11/08
Hari ini (DateFormat.LONG) adalah : November 11, 2008
Hari ini (DateFormat.MEDIUM) adalah : Nov 11, 2008
esnips.com/doc/8614e892-0a92-437b-8e3b-574fad318fce/FormatTanggal
===========================================================================
package test1;
import java.text.DateFormat;
import java.text.Format;
import java.text.SimpleDateFormat;
import java.util.Date;
public class FormatTanggal {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String temp = new String("");
Date date = new Date();
System.out.println("Hari ini (tanpa format data) adalah : " +date);
Format myFormat = new SimpleDateFormat("yyyy.MM.dd G 'at' HH:mm:ss z");
temp = myFormat.format(date);
System.out.println("\n\nHari ini adalah : " +temp);
myFormat = new SimpleDateFormat("dd-MM-yyyy G 'at' HH:mm:ss z");
temp = myFormat.format(date);
System.out.println("\n\nHari ini adalah : " +temp);
myFormat = new SimpleDateFormat("EEE, MMM d, ''yy");
temp = myFormat.format(date);
System.out.println("\n\nHari ini adalah : " +temp);
myFormat = new SimpleDateFormat("EEE, d MMM yyyy HH:mm:ss Z");
temp = myFormat.format(date);
System.out.println("\n\nHari ini adalah : " +temp);
myFormat = new SimpleDateFormat("EEEE, d MMMM yyyy HH:mm:ss");
temp = myFormat.format(date);
System.out.println("\n\nHari ini adalah : " +temp);
myFormat = new SimpleDateFormat("dd/MM/yyyy");
temp = myFormat.format(date);
System.out.println("\n\nHari ini adalah : " +temp);
myFormat = new SimpleDateFormat("MM");
temp = myFormat.format(date);
System.out.println("\n\nSekarang Bulan ke : " +temp);
myFormat = new SimpleDateFormat("MMM");
temp = myFormat.format(date);
System.out.println("\n\nSekarang Bulan : " +temp);
myFormat = new SimpleDateFormat("dd");
temp = myFormat.format(date);
System.out.println("\n\nSekarang Hari : " +temp);
myFormat = new SimpleDateFormat("EEEE");
temp = myFormat.format(date);
System.out.println("\n\nSekarang Hari : " +temp);
myFormat = new SimpleDateFormat("h:mm a");
temp = myFormat.format(date);
System.out.println("\n\nHari ini adalah : " +temp);
temp = DateFormat.getDateInstance(DateFormat.SHORT).format(date);
System.out.println("\n\nHari ini (DateFormat.SHORT) adalah : " +temp);
temp = DateFormat.getDateInstance(DateFormat.LONG).format(date);
System.out.println("\n\nHari ini (DateFormat.LONG) adalah : " +temp);
temp = DateFormat.getDateInstance(DateFormat.MEDIUM).format(date);
System.out.println("\n\nHari ini (DateFormat.MEDIUM) adalah : " +temp);
}
}
============================================================
output
Hari ini (tanpa format data) adalah : Tue Nov 11 13:15:50 WIT 2008
Hari ini adalah : 2008.11.11 AD at 13:15:50 WIT
Hari ini adalah : 11-11-2008 AD at 13:15:50 WIT
Hari ini adalah : Tue, Nov 11, '08
Hari ini adalah : Tue, 11 Nov 2008 13:15:50 +0700
Hari ini adalah : Tuesday, 11 November 2008 13:15:50
Hari ini adalah : 11/11/2008
Sekarang Bulan ke : 11
Sekarang Bulan : Nov
Sekarang Hari : 11
Sekarang Hari : Tuesday
Hari ini adalah : 1:15 PM
Hari ini (DateFormat.SHORT) adalah : 11/11/08
Hari ini (DateFormat.LONG) adalah : November 11, 2008
Hari ini (DateFormat.MEDIUM) adalah : Nov 11, 2008
Friday, October 24, 2008
Bermain MouseEvent di JAVA
Kita akan memanfaatkan MouseEvent di Java untuk membuat mouseEntered dan mouseExited pada TextField. mouseEntered ketika mouse berada diatas posisi TextField and mouseExited ketika mouse keluar dari area TextField .
Coba kita buat program yang diberi nama "MyMouseEvent1.java". program ini berisi Label Command, Name, Age and Description. Jika mouse berada di atas posisi TextField Name maka label command akan tertulis "Please type your name" dan jika mouse berada diatas posisi TextField Age maka label command akan tertulis "Please type your Age". Saat mouse keluar dari name jika name diisi data maka data yang ada di name dan age akan ditampilkan description.Saat mouse keluar dari Age jika name diisi data yang ada di name dan age maka data akan ditampilkan description.
Download source :
esnips.com/doc/6f73d79d-9a06-4707-9a8d-d4b42ed52188/MyMouseEvent1
==========================================================
package test1;
import java.awt.Dimension;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Label;
import java.awt.TextArea;
import java.awt.TextField;
import java.awt.Insets;
import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;
import javax.swing.JFrame;
public class MyMouseEvent1 extends JFrame{
/**
* @param args
*/
private Label lblCommand = null;
private Label lblName = null;
private TextField txfName = null;
private Label lblAge = null;
private TextField txfAge = null;
private Label lblDescription = null;
private TextArea txaDescription = null;
public MyMouseEvent1() {
super("My Title");
initialize();
}
public void initialize(){
int y = 0;
GridBagConstraints gbcLblCommand = new GridBagConstraints();
gbcLblCommand.gridx = 1;
gbcLblCommand.gridy = y;
gbcLblCommand.anchor = GridBagConstraints.WEST;
gbcLblCommand.fill = GridBagConstraints.HORIZONTAL;
gbcLblCommand.insets = new Insets(5,10,0,10);
lblCommand = new Label();
lblCommand.setText("");
y++;
GridBagConstraints gbcLblName = new GridBagConstraints();
gbcLblName.gridx = 0;
gbcLblName.gridy = y;
gbcLblName.anchor = GridBagConstraints.WEST;
gbcLblName.fill = GridBagConstraints.HORIZONTAL;
lblName = new Label();
lblName.setText("Name");
GridBagConstraints gbcTxfName = new GridBagConstraints();
gbcTxfName.gridx = 1;
gbcTxfName.gridy = y;
gbcTxfName.anchor = GridBagConstraints.WEST;
gbcTxfName.insets = new Insets(5,10,0,10);
y++;
GridBagConstraints gbcLblAge = new GridBagConstraints();
gbcLblAge.gridx = 0;
gbcLblAge.gridy = y;
gbcLblAge.anchor = GridBagConstraints.WEST;
gbcLblAge.fill = GridBagConstraints.HORIZONTAL;
lblAge = new Label();
lblAge.setText("Age");
GridBagConstraints gbcTxfAge = new GridBagConstraints();
gbcTxfAge.gridx = 1;
gbcTxfAge.gridy = y;
gbcTxfAge.anchor = GridBagConstraints.WEST;
gbcTxfAge.insets = new Insets(5,10,0,10);
y++;
GridBagConstraints gbcLblDescription = new GridBagConstraints();
gbcLblDescription.gridx = 0;
gbcLblDescription.gridy = y;
gbcLblDescription.anchor = GridBagConstraints.WEST;
gbcLblDescription.fill = GridBagConstraints.HORIZONTAL;
lblDescription = new Label();
lblDescription.setText("description");
GridBagConstraints gbcTxaDescription = new GridBagConstraints();
gbcTxaDescription.gridx = 1;
gbcTxaDescription.gridy = y;
gbcTxaDescription.anchor = GridBagConstraints.WEST;
gbcTxaDescription.insets = new Insets(5,10,0,10);
this.setLayout(new GridBagLayout());
this.setSize(new Dimension(695, 498));
this.add(lblCommand, gbcLblCommand);
this.add(lblName, gbcLblName);
this.add(getTxfName(), gbcTxfName);
this.add(lblAge, gbcLblAge);
this.add(getTxtAge(), gbcTxfAge);
this.add(lblDescription, gbcLblDescription);
this.add(getTxaDescription(), gbcTxaDescription);
}
private TextField getTxfName() {
if (txfName == null) {
txfName = new TextField();
txfName.setColumns(30);
txfName.setName("name");
txfName.addMouseListener(new MouseListener(){
public void mouseClicked(MouseEvent e) {
}
public void mouseEntered(MouseEvent e) {
lblCommand.setText("Please type your name");
}
public void mousePressed(MouseEvent e) {
}
public void mouseReleased(MouseEvent e) {
}
public void mouseExited(MouseEvent e) {
if ((!txfName.getText().equals("")) && (!txfAge.getText().equals("")) ){
txaDescription.setText("Name : "+txfName.getText()+" ; "+"Age : "+txfAge.getText());
}
else if (!txfName.getText().equals("")){
txaDescription.setText("Name : "+txfName.getText());
}
else if (!txfAge.getText().equals("")){
txaDescription.setText("Age : "+txfAge.getText());
}
}
}
);
}
return txfName;
}
private TextField getTxtAge() {
if (txfAge == null) {
txfAge = new TextField();
txfAge.setColumns(10);
txfAge.setName("age");
txfAge.addMouseListener(new MouseListener(){
public void mouseClicked(MouseEvent e) {
}
public void mouseEntered(MouseEvent e) {
lblCommand.setText("Please type your Age");
}
public void mousePressed(MouseEvent e) {
}
public void mouseReleased(MouseEvent e) {
}
public void mouseExited(MouseEvent e) {
if ((!txfName.getText().equals("")) && (!txfAge.getText().equals("")) ){
txaDescription.setText("Name : "+txfName.getText()+" ; "+"Age : "+txfAge.getText());
}
else if (!txfName.getText().equals("")){
txaDescription.setText("Name : "+txfName.getText());
}
else if (!txfAge.getText().equals("")){
txaDescription.setText("Age : "+txfAge.getText());
}
}
}
);
}
return txfAge;
}
private TextArea getTxaDescription() {
if (txaDescription == null) {
txaDescription = new TextArea();
txaDescription.setName("addRemark");
txaDescription .setRows(4);
txaDescription.setColumns(40);
txaDescription.setEditable(false);
}
return txaDescription;
}
}
==========================================================
Coba kita buat program yang diberi nama "MyMouseEvent1.java". program ini berisi Label Command, Name, Age and Description. Jika mouse berada di atas posisi TextField Name maka label command akan tertulis "Please type your name" dan jika mouse berada diatas posisi TextField Age maka label command akan tertulis "Please type your Age". Saat mouse keluar dari name jika name diisi data maka data yang ada di name dan age akan ditampilkan description.Saat mouse keluar dari Age jika name diisi data yang ada di name dan age maka data akan ditampilkan description.
Download source :
esnips.com/doc/6f73d79d-9a06-4707-9a8d-d4b42ed52188/MyMouseEvent1
==========================================================
package test1;
import java.awt.Dimension;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Label;
import java.awt.TextArea;
import java.awt.TextField;
import java.awt.Insets;
import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;
import javax.swing.JFrame;
public class MyMouseEvent1 extends JFrame{
/**
* @param args
*/
private Label lblCommand = null;
private Label lblName = null;
private TextField txfName = null;
private Label lblAge = null;
private TextField txfAge = null;
private Label lblDescription = null;
private TextArea txaDescription = null;
public MyMouseEvent1() {
super("My Title");
initialize();
}
public void initialize(){
int y = 0;
GridBagConstraints gbcLblCommand = new GridBagConstraints();
gbcLblCommand.gridx = 1;
gbcLblCommand.gridy = y;
gbcLblCommand.anchor = GridBagConstraints.WEST;
gbcLblCommand.fill = GridBagConstraints.HORIZONTAL;
gbcLblCommand.insets = new Insets(5,10,0,10);
lblCommand = new Label();
lblCommand.setText("");
y++;
GridBagConstraints gbcLblName = new GridBagConstraints();
gbcLblName.gridx = 0;
gbcLblName.gridy = y;
gbcLblName.anchor = GridBagConstraints.WEST;
gbcLblName.fill = GridBagConstraints.HORIZONTAL;
lblName = new Label();
lblName.setText("Name");
GridBagConstraints gbcTxfName = new GridBagConstraints();
gbcTxfName.gridx = 1;
gbcTxfName.gridy = y;
gbcTxfName.anchor = GridBagConstraints.WEST;
gbcTxfName.insets = new Insets(5,10,0,10);
y++;
GridBagConstraints gbcLblAge = new GridBagConstraints();
gbcLblAge.gridx = 0;
gbcLblAge.gridy = y;
gbcLblAge.anchor = GridBagConstraints.WEST;
gbcLblAge.fill = GridBagConstraints.HORIZONTAL;
lblAge = new Label();
lblAge.setText("Age");
GridBagConstraints gbcTxfAge = new GridBagConstraints();
gbcTxfAge.gridx = 1;
gbcTxfAge.gridy = y;
gbcTxfAge.anchor = GridBagConstraints.WEST;
gbcTxfAge.insets = new Insets(5,10,0,10);
y++;
GridBagConstraints gbcLblDescription = new GridBagConstraints();
gbcLblDescription.gridx = 0;
gbcLblDescription.gridy = y;
gbcLblDescription.anchor = GridBagConstraints.WEST;
gbcLblDescription.fill = GridBagConstraints.HORIZONTAL;
lblDescription = new Label();
lblDescription.setText("description");
GridBagConstraints gbcTxaDescription = new GridBagConstraints();
gbcTxaDescription.gridx = 1;
gbcTxaDescription.gridy = y;
gbcTxaDescription.anchor = GridBagConstraints.WEST;
gbcTxaDescription.insets = new Insets(5,10,0,10);
this.setLayout(new GridBagLayout());
this.setSize(new Dimension(695, 498));
this.add(lblCommand, gbcLblCommand);
this.add(lblName, gbcLblName);
this.add(getTxfName(), gbcTxfName);
this.add(lblAge, gbcLblAge);
this.add(getTxtAge(), gbcTxfAge);
this.add(lblDescription, gbcLblDescription);
this.add(getTxaDescription(), gbcTxaDescription);
}
private TextField getTxfName() {
if (txfName == null) {
txfName = new TextField();
txfName.setColumns(30);
txfName.setName("name");
txfName.addMouseListener(new MouseListener(){
public void mouseClicked(MouseEvent e) {
}
public void mouseEntered(MouseEvent e) {
lblCommand.setText("Please type your name");
}
public void mousePressed(MouseEvent e) {
}
public void mouseReleased(MouseEvent e) {
}
public void mouseExited(MouseEvent e) {
if ((!txfName.getText().equals("")) && (!txfAge.getText().equals("")) ){
txaDescription.setText("Name : "+txfName.getText()+" ; "+"Age : "+txfAge.getText());
}
else if (!txfName.getText().equals("")){
txaDescription.setText("Name : "+txfName.getText());
}
else if (!txfAge.getText().equals("")){
txaDescription.setText("Age : "+txfAge.getText());
}
}
}
);
}
return txfName;
}
private TextField getTxtAge() {
if (txfAge == null) {
txfAge = new TextField();
txfAge.setColumns(10);
txfAge.setName("age");
txfAge.addMouseListener(new MouseListener(){
public void mouseClicked(MouseEvent e) {
}
public void mouseEntered(MouseEvent e) {
lblCommand.setText("Please type your Age");
}
public void mousePressed(MouseEvent e) {
}
public void mouseReleased(MouseEvent e) {
}
public void mouseExited(MouseEvent e) {
if ((!txfName.getText().equals("")) && (!txfAge.getText().equals("")) ){
txaDescription.setText("Name : "+txfName.getText()+" ; "+"Age : "+txfAge.getText());
}
else if (!txfName.getText().equals("")){
txaDescription.setText("Name : "+txfName.getText());
}
else if (!txfAge.getText().equals("")){
txaDescription.setText("Age : "+txfAge.getText());
}
}
}
);
}
return txfAge;
}
private TextArea getTxaDescription() {
if (txaDescription == null) {
txaDescription = new TextArea();
txaDescription.setName("addRemark");
txaDescription .setRows(4);
txaDescription.setColumns(40);
txaDescription.setEditable(false);
}
return txaDescription;
}
}
==========================================================
Thursday, October 23, 2008
Apa beda SQL Inner Join, Left Outer Join, Right Outer Join?
Mungkin kedengarannya lucu ya pertanyaan diatas(Hari gene masih binun ttg SQL Join)? tp mmg kalo ga sering pake kita bisa lupa prinsip tentang SQL join koq.Wajar...manusiawi:))
Selagi belum ada kerjaan yg di assign ke aq, sambil nunggu JIRA-nya diisi ama mas paddy bisa belajar n review2 hehehe
Sekarang mari kita coba mengingat-ingat lagi pelajaran SQl ini :
disini qta buat dulu 2 tabel yaitu
- tabel area, dengan 3 buah field : area_id, nama_area, luas_area
- tabel penduduk, dengan field 3 buah field : penduduk_id, nama_penduduk, area_id
kedua tabel diatas diilustrasikan dengan beberapa data sebagai berikut :
TABEL AREA
=====================================================
Area_ID || Nama_Area || Luas_Area
=====================================================
ARS01 Surabaya 1000
ARJ01 Jakarta 2000
ARY09 Yogya 4000
ARS02 Solo 3000
ARK01 Kediri null
TABEL PENDUDUK
=====================================================
Penduduk_ID || Nama_Penduduk || Area_ID
=====================================================
PDS01 Susanna ARS01
PDJ01 Jocki Hendry null
PDA01 Asrina Febyanti ARJ01
PDA02 Abi Anwari ARY01
I. Inner Join / Join :
Operasi Join tipe ini akan hanya menampilkan tabel sisi kiri yang datanya sama dengan data di pasangan joinnya yg disisi kanan.
dengan script sql berikut :
select d.Area_id, d.nama_area, d.luas_area, p.penduduk_id, p.nama_penduduk from area d
inner join penduduk p on (d.area_id=p.area_id);
script diatas ekivalen dengan script dibawah ini :
select d.Area_id, d.nama_area, d.luas_area, p.penduduk_id, p.nama_penduduk from penduduk p
inner join area d on (d.area_id=p.area_id);
akan menghasilkan :
AREA_ID NAMA_AREA LUAS_AREA PENDUDUK_ID NAMA_PENDUDUK
------- -------------------- ---------------------- ----------- --------------------
ARS01 Surabaya 1000 PDS01 Susanna
ARJ01 Jakarta 2000 PDA01 Asrina Febyanti
2 rows selected
II. Left Outer Join / Left Join :
Operasi Join tipe ini akan menampilkan semua isi tabel sisi kiri, walaupun data di pasangan joinnya yg disisi kanan nilainya tidak sama ataupun bernilai null.
dengan script sql berikut (Note => tabel sisi kiri : area; tabel sisi kanan : penduduk) :
select d.Area_id, d.nama_area, d.luas_area, p.penduduk_id, p.nama_penduduk from area d
left outer join penduduk p on (d.area_id=p.area_id);
akan menghasilkan :
AREA_ID NAMA_AREA LUAS_AREA PENDUDUK_ID NAMA_PENDUDUK
------- -------------------- ---------------------- ----------- --------------------
ARS01 Surabaya 1000 PDS01 Susanna
ARJ01 Jakarta 2000 PDA01 Asrina Febyanti
ARY09 Yogya 4000
ARS02 Solo 3000
ARK01 Kediri
5 rows selected
dengan script sql berikut (Note => tabel sisi kiri : penduduk; tabel sisi kanan : area) :
select d.Area_id, d.nama_area, d.luas_area, p.penduduk_id, p.nama_penduduk from penduduk p
left outer join area d on (d.area_id=p.area_id);
akan menghasilkan :
AREA_ID NAMA_AREA LUAS_AREA PENDUDUK_ID NAMA_PENDUDUK
------- -------------------- ---------------------- ----------- --------------------
ARS01 Surabaya 1000 PDS01 Susanna
PDJ01 Jocki Henry
ARJ01 Jakarta 2000 PDA01 Asrina Febyanti
PDA02 Abi Anwari
4 rows selected
III. Right Outer Join / Right Join :
Operasi Join tipe ini akan menampilkan semua isi tabel sisi Kanan, walaupun data di pasangan joinnya yg disisi kiri nilainya tidak sama ataupun bernilai null.
dengan script sql berikut (Note => tabel sisi kiri : area; tabel sisi kanan : penduduk) :
select d.Area_id, d.nama_area, d.luas_area, p.penduduk_id, p.nama_penduduk from area d
Right outer join penduduk p on (d.area_id=p.area_id);
akan menghasilkan :
AREA_ID NAMA_AREA LUAS_AREA PENDUDUK_ID NAMA_PENDUDUK
------- -------------------- ---------------------- ----------- --------------------
ARS01 Surabaya 1000 PDS01 Susanna
PDJ01 Jocki Henry
ARJ01 Jakarta 2000 PDA01 Asrina Febyanti
PDA02 Abi Anwari
4 rows selected
dengan script sql berikut (Note => tabel sisi kiri : penduduk; tabel sisi kanan : area) :
select d.Area_id, d.nama_area, d.luas_area, p.penduduk_id, p.nama_penduduk from penduduk p
Right outer join area d on (d.area_id=p.area_id);
akan menghasilkan :
AREA_ID NAMA_AREA LUAS_AREA PENDUDUK_ID NAMA_PENDUDUK
------- -------------------- ---------------------- ----------- --------------------
ARS01 Surabaya 1000 PDS01 Susanna
ARJ01 Jakarta 2000 PDA01 Asrina Febyanti
ARY09 Yogya 4000
ARS02 Solo 3000
ARK01 Kediri
5 rows selected
IV. Cross Join :
Operasi Join tipe ini akan menampilkan semua isi tabel sisi Kiri akan memiliki pasangan semua data disisi kanan.
Banyaknya Record Cross Join = jumlah record tabel pertama x jumlah record tabel kedua
dengan script sql berikut :
select d.Area_id, d.nama_area, d.luas_area, p.penduduk_id, p.nama_penduduk from area d
cross JOIN penduduk p
akan menghasilkan :
AREA_ID NAMA_AREA LUAS_AREA PENDUDUK_ID NAMA_PENDUDUK
------- -------------------- ---------------------- ----------- --------------------
ARS01 Surabaya 1000 PDS01 Susanna
ARJ01 Jakarta 2000 PDS01 Susanna
ARS02 Solo 3000 PDS01 Susanna
ARY09 Yogya 4000 PDS01 Susanna
ARK01 Kediri PDS01 Susanna
ARS01 Surabaya 1000 PDJ01 Jocki Henry
ARJ01 Jakarta 2000 PDJ01 Jocki Henry
ARS02 Solo 3000 PDJ01 Jocki Henry
ARY09 Yogya 4000 PDJ01 Jocki Henry
ARK01 Kediri PDJ01 Jocki Henry
ARS01 Surabaya 1000 PDA01 Asrina Febyanti
ARJ01 Jakarta 2000 PDA01 Asrina Febyanti
ARS02 Solo 3000 PDA01 Asrina Febyanti
ARY09 Yogya 4000 PDA01 Asrina Febyanti
ARK01 Kediri PDA01 Asrina Febyanti
ARS01 Surabaya 1000 PDA02 Abi Anwari
ARJ01 Jakarta 2000 PDA02 Abi Anwari
ARS02 Solo 3000 PDA02 Abi Anwari
ARY09 Yogya 4000 PDA02 Abi Anwari
ARK01 Kediri PDA02 Abi Anwari
20 rows selected
script diatas ekivalen dengan script dibawah ini :
select * from area d, penduduk p;
V. Full Outer Join / Full Join :
Operasi Join tipe ini akan menampilkan semua isi tabel sisi kiri, walaupun data di pasangan joinnya yg disisi kanan nilainya null.dan sebaliknya.
dengan script sql berikut :
select d.Area_id, d.nama_area, d.luas_area, p.penduduk_id, p.nama_penduduk from area d
full join penduduk p on (d.area_id=p.area_id);
akan menghasilkan :
AREA_ID NAMA_AREA LUAS_AREA PENDUDUK_ID NAMA_PENDUDUK
------- -------------------- ---------------------- ----------- --------------------
ARS01 Surabaya 1000 PDS01 Susanna
ARJ01 Jakarta 2000 PDA01 Asrina Febyanti
ARY09 Yogya 4000
ARS02 Solo 3000
ARK01 Kediri
PDJ01 Jocki Henry
PDA02 Abi Anwari
7 rows selected
dengan script sql berikut :
select d.Area_id, d.nama_area, d.luas_area, p.penduduk_id, p.nama_penduduk from penduduk p
full join area d on (d.area_id=p.area_id);
akan menghasilkan :
AREA_ID NAMA_AREA LUAS_AREA PENDUDUK_ID NAMA_PENDUDUK
------- -------------------- ---------------------- ----------- --------------------
ARS01 Surabaya 1000 PDS01 Susanna
PDJ01 Jocki Henry
ARJ01 Jakarta 2000 PDA01 Asrina Febyanti
PDA02 Abi Anwari
ARY09 Yogya 4000
ARS02 Solo 3000
ARK01 Kediri
7 rows selected
VI. Lain-lain
Kadang ada yang terbiasa/lebih suka dengan menggunakan left outer join untuk menghasilkan data seperti yang dihasilkan perintah di inner join. bisa juga sich. caranya filter data sisi kanan yang bernilai null.
dengan script sql berikut :
select d.Area_id, d.nama_area, d.luas_area, p.penduduk_id, p.nama_penduduk from area d
left outer join penduduk p on (d.area_id=p.area_id)
where p.area_id is not null;
akan menghasilkan :
AREA_ID NAMA_AREA LUAS_AREA PENDUDUK_ID NAMA_PENDUDUK
------- -------------------- ---------------------- ----------- --------------------
ARS01 Surabaya 1000 PDS01 Susanna
ARJ01 Jakarta 2000 PDA01 Asrina Febyanti
2 rows selected
atau ada yang suka pake right outer join juga bisa lho.
scriptnya sebagai berikut
select d.Area_id, d.nama_area, d.luas_area, p.penduduk_id, p.nama_penduduk from area d
Right outer join penduduk p on (d.area_id=p.area_id)
where d.area_id is not null;
akan menghasilkan :
AREA_ID NAMA_AREA LUAS_AREA PENDUDUK_ID NAMA_PENDUDUK
------- -------------------- ---------------------- ----------- --------------------
ARS01 Surabaya 1000 PDS01 Susanna
ARJ01 Jakarta 2000 PDA01 Asrina Febyanti
2 rows selected
Selagi belum ada kerjaan yg di assign ke aq, sambil nunggu JIRA-nya diisi ama mas paddy bisa belajar n review2 hehehe
Sekarang mari kita coba mengingat-ingat lagi pelajaran SQl ini :
disini qta buat dulu 2 tabel yaitu
- tabel area, dengan 3 buah field : area_id, nama_area, luas_area
- tabel penduduk, dengan field 3 buah field : penduduk_id, nama_penduduk, area_id
kedua tabel diatas diilustrasikan dengan beberapa data sebagai berikut :
TABEL AREA
=====================================================
Area_ID || Nama_Area || Luas_Area
=====================================================
ARS01 Surabaya 1000
ARJ01 Jakarta 2000
ARY09 Yogya 4000
ARS02 Solo 3000
ARK01 Kediri null
TABEL PENDUDUK
=====================================================
Penduduk_ID || Nama_Penduduk || Area_ID
=====================================================
PDS01 Susanna ARS01
PDJ01 Jocki Hendry null
PDA01 Asrina Febyanti ARJ01
PDA02 Abi Anwari ARY01
I. Inner Join / Join :
Operasi Join tipe ini akan hanya menampilkan tabel sisi kiri yang datanya sama dengan data di pasangan joinnya yg disisi kanan.
dengan script sql berikut :
select d.Area_id, d.nama_area, d.luas_area, p.penduduk_id, p.nama_penduduk from area d
inner join penduduk p on (d.area_id=p.area_id);
script diatas ekivalen dengan script dibawah ini :
select d.Area_id, d.nama_area, d.luas_area, p.penduduk_id, p.nama_penduduk from penduduk p
inner join area d on (d.area_id=p.area_id);
akan menghasilkan :
AREA_ID NAMA_AREA LUAS_AREA PENDUDUK_ID NAMA_PENDUDUK
------- -------------------- ---------------------- ----------- --------------------
ARS01 Surabaya 1000 PDS01 Susanna
ARJ01 Jakarta 2000 PDA01 Asrina Febyanti
2 rows selected
II. Left Outer Join / Left Join :
Operasi Join tipe ini akan menampilkan semua isi tabel sisi kiri, walaupun data di pasangan joinnya yg disisi kanan nilainya tidak sama ataupun bernilai null.
dengan script sql berikut (Note => tabel sisi kiri : area; tabel sisi kanan : penduduk) :
select d.Area_id, d.nama_area, d.luas_area, p.penduduk_id, p.nama_penduduk from area d
left outer join penduduk p on (d.area_id=p.area_id);
akan menghasilkan :
AREA_ID NAMA_AREA LUAS_AREA PENDUDUK_ID NAMA_PENDUDUK
------- -------------------- ---------------------- ----------- --------------------
ARS01 Surabaya 1000 PDS01 Susanna
ARJ01 Jakarta 2000 PDA01 Asrina Febyanti
ARY09 Yogya 4000
ARS02 Solo 3000
ARK01 Kediri
5 rows selected
dengan script sql berikut (Note => tabel sisi kiri : penduduk; tabel sisi kanan : area) :
select d.Area_id, d.nama_area, d.luas_area, p.penduduk_id, p.nama_penduduk from penduduk p
left outer join area d on (d.area_id=p.area_id);
akan menghasilkan :
AREA_ID NAMA_AREA LUAS_AREA PENDUDUK_ID NAMA_PENDUDUK
------- -------------------- ---------------------- ----------- --------------------
ARS01 Surabaya 1000 PDS01 Susanna
PDJ01 Jocki Henry
ARJ01 Jakarta 2000 PDA01 Asrina Febyanti
PDA02 Abi Anwari
4 rows selected
III. Right Outer Join / Right Join :
Operasi Join tipe ini akan menampilkan semua isi tabel sisi Kanan, walaupun data di pasangan joinnya yg disisi kiri nilainya tidak sama ataupun bernilai null.
dengan script sql berikut (Note => tabel sisi kiri : area; tabel sisi kanan : penduduk) :
select d.Area_id, d.nama_area, d.luas_area, p.penduduk_id, p.nama_penduduk from area d
Right outer join penduduk p on (d.area_id=p.area_id);
akan menghasilkan :
AREA_ID NAMA_AREA LUAS_AREA PENDUDUK_ID NAMA_PENDUDUK
------- -------------------- ---------------------- ----------- --------------------
ARS01 Surabaya 1000 PDS01 Susanna
PDJ01 Jocki Henry
ARJ01 Jakarta 2000 PDA01 Asrina Febyanti
PDA02 Abi Anwari
4 rows selected
dengan script sql berikut (Note => tabel sisi kiri : penduduk; tabel sisi kanan : area) :
select d.Area_id, d.nama_area, d.luas_area, p.penduduk_id, p.nama_penduduk from penduduk p
Right outer join area d on (d.area_id=p.area_id);
akan menghasilkan :
AREA_ID NAMA_AREA LUAS_AREA PENDUDUK_ID NAMA_PENDUDUK
------- -------------------- ---------------------- ----------- --------------------
ARS01 Surabaya 1000 PDS01 Susanna
ARJ01 Jakarta 2000 PDA01 Asrina Febyanti
ARY09 Yogya 4000
ARS02 Solo 3000
ARK01 Kediri
5 rows selected
IV. Cross Join :
Operasi Join tipe ini akan menampilkan semua isi tabel sisi Kiri akan memiliki pasangan semua data disisi kanan.
Banyaknya Record Cross Join = jumlah record tabel pertama x jumlah record tabel kedua
dengan script sql berikut :
select d.Area_id, d.nama_area, d.luas_area, p.penduduk_id, p.nama_penduduk from area d
cross JOIN penduduk p
akan menghasilkan :
AREA_ID NAMA_AREA LUAS_AREA PENDUDUK_ID NAMA_PENDUDUK
------- -------------------- ---------------------- ----------- --------------------
ARS01 Surabaya 1000 PDS01 Susanna
ARJ01 Jakarta 2000 PDS01 Susanna
ARS02 Solo 3000 PDS01 Susanna
ARY09 Yogya 4000 PDS01 Susanna
ARK01 Kediri PDS01 Susanna
ARS01 Surabaya 1000 PDJ01 Jocki Henry
ARJ01 Jakarta 2000 PDJ01 Jocki Henry
ARS02 Solo 3000 PDJ01 Jocki Henry
ARY09 Yogya 4000 PDJ01 Jocki Henry
ARK01 Kediri PDJ01 Jocki Henry
ARS01 Surabaya 1000 PDA01 Asrina Febyanti
ARJ01 Jakarta 2000 PDA01 Asrina Febyanti
ARS02 Solo 3000 PDA01 Asrina Febyanti
ARY09 Yogya 4000 PDA01 Asrina Febyanti
ARK01 Kediri PDA01 Asrina Febyanti
ARS01 Surabaya 1000 PDA02 Abi Anwari
ARJ01 Jakarta 2000 PDA02 Abi Anwari
ARS02 Solo 3000 PDA02 Abi Anwari
ARY09 Yogya 4000 PDA02 Abi Anwari
ARK01 Kediri PDA02 Abi Anwari
20 rows selected
script diatas ekivalen dengan script dibawah ini :
select * from area d, penduduk p;
V. Full Outer Join / Full Join :
Operasi Join tipe ini akan menampilkan semua isi tabel sisi kiri, walaupun data di pasangan joinnya yg disisi kanan nilainya null.dan sebaliknya.
dengan script sql berikut :
select d.Area_id, d.nama_area, d.luas_area, p.penduduk_id, p.nama_penduduk from area d
full join penduduk p on (d.area_id=p.area_id);
akan menghasilkan :
AREA_ID NAMA_AREA LUAS_AREA PENDUDUK_ID NAMA_PENDUDUK
------- -------------------- ---------------------- ----------- --------------------
ARS01 Surabaya 1000 PDS01 Susanna
ARJ01 Jakarta 2000 PDA01 Asrina Febyanti
ARY09 Yogya 4000
ARS02 Solo 3000
ARK01 Kediri
PDJ01 Jocki Henry
PDA02 Abi Anwari
7 rows selected
dengan script sql berikut :
select d.Area_id, d.nama_area, d.luas_area, p.penduduk_id, p.nama_penduduk from penduduk p
full join area d on (d.area_id=p.area_id);
akan menghasilkan :
AREA_ID NAMA_AREA LUAS_AREA PENDUDUK_ID NAMA_PENDUDUK
------- -------------------- ---------------------- ----------- --------------------
ARS01 Surabaya 1000 PDS01 Susanna
PDJ01 Jocki Henry
ARJ01 Jakarta 2000 PDA01 Asrina Febyanti
PDA02 Abi Anwari
ARY09 Yogya 4000
ARS02 Solo 3000
ARK01 Kediri
7 rows selected
VI. Lain-lain
Kadang ada yang terbiasa/lebih suka dengan menggunakan left outer join untuk menghasilkan data seperti yang dihasilkan perintah di inner join. bisa juga sich. caranya filter data sisi kanan yang bernilai null.
dengan script sql berikut :
select d.Area_id, d.nama_area, d.luas_area, p.penduduk_id, p.nama_penduduk from area d
left outer join penduduk p on (d.area_id=p.area_id)
where p.area_id is not null;
akan menghasilkan :
AREA_ID NAMA_AREA LUAS_AREA PENDUDUK_ID NAMA_PENDUDUK
------- -------------------- ---------------------- ----------- --------------------
ARS01 Surabaya 1000 PDS01 Susanna
ARJ01 Jakarta 2000 PDA01 Asrina Febyanti
2 rows selected
atau ada yang suka pake right outer join juga bisa lho.
scriptnya sebagai berikut
select d.Area_id, d.nama_area, d.luas_area, p.penduduk_id, p.nama_penduduk from area d
Right outer join penduduk p on (d.area_id=p.area_id)
where d.area_id is not null;
akan menghasilkan :
AREA_ID NAMA_AREA LUAS_AREA PENDUDUK_ID NAMA_PENDUDUK
------- -------------------- ---------------------- ----------- --------------------
ARS01 Surabaya 1000 PDS01 Susanna
ARJ01 Jakarta 2000 PDA01 Asrina Febyanti
2 rows selected
Tuesday, October 21, 2008
Bermain FocusEvent di Java
Kita akan memanfaatkan FocusEvent di Java untuk membuat focusGained dan FocusLost pada TextField. FocusGained seperti onKeyDown and FocusLost seperti OnExit di Delphi kali y:).
Coba kita buat program yang diberi nama "MyFocusLostFocusGain1.java". program ini berisi Label Command, Name, Age and Description. Jika onKeydown di Name maka label command akan tertulis "Please type your name" dan jika onKeydown di Age maka label command akan tertulis "Please type your Age". Saat mouse keluar dari name jika name diisi data maka data yang ada di name dan age akan ditampilkan description.Saat mouse keluar dari Age jika name diisi data yang ada di name dan age maka data akan ditampilkan description.
Download source :
www.esnips.com/doc/f6d77178-b25f-4a2f-808d-8aaf71b87910/MyFocusLostFocusGain1
=============================================================================
package test1;
import java.awt.Dimension;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Label;
import java.awt.TextArea;
import java.awt.TextField;
import java.awt.Insets;
import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;
import javax.swing.JFrame;
public class MyFocusLostFocusGain1 extends JFrame{
/**
* @param args
*/
private Label lblCommand = null;
private Label lblName = null;
private TextField txfName = null;
private Label lblAge = null;
private TextField txfAge = null;
private Label lblDescription = null;
private TextArea txaDescription = null;
public MyFocusLostFocusGain1() {
super("My Title");
initialize();
}
public void initialize(){
int y = 0;
GridBagConstraints gbcLblCommand = new GridBagConstraints();
gbcLblCommand.gridx = 1;
gbcLblCommand.gridy = y;
gbcLblCommand.anchor = GridBagConstraints.WEST;
gbcLblCommand.fill = GridBagConstraints.HORIZONTAL;
gbcLblCommand.insets = new Insets(5,10,0,10);
lblCommand = new Label();
lblCommand.setText("");
y++;
GridBagConstraints gbcLblName = new GridBagConstraints();
gbcLblName.gridx = 0;
gbcLblName.gridy = y;
gbcLblName.anchor = GridBagConstraints.WEST;
gbcLblName.fill = GridBagConstraints.HORIZONTAL;
lblName = new Label();
lblName.setText("Name");
GridBagConstraints gbcTxfName = new GridBagConstraints();
gbcTxfName.gridx = 1;
gbcTxfName.gridy = y;
gbcTxfName.anchor = GridBagConstraints.WEST;
gbcTxfName.insets = new Insets(5,10,0,10);
y++;
GridBagConstraints gbcLblAge = new GridBagConstraints();
gbcLblAge.gridx = 0;
gbcLblAge.gridy = y;
gbcLblAge.anchor = GridBagConstraints.WEST;
gbcLblAge.fill = GridBagConstraints.HORIZONTAL;
lblAge = new Label();
lblAge.setText("Age");
GridBagConstraints gbcTxfAge = new GridBagConstraints();
gbcTxfAge.gridx = 1;
gbcTxfAge.gridy = y;
gbcTxfAge.anchor = GridBagConstraints.WEST;
gbcTxfAge.insets = new Insets(5,10,0,10);
y++;
GridBagConstraints gbcLblDescription = new GridBagConstraints();
gbcLblDescription.gridx = 0;
gbcLblDescription.gridy = y;
gbcLblDescription.anchor = GridBagConstraints.WEST;
gbcLblDescription.fill = GridBagConstraints.HORIZONTAL;
lblDescription = new Label();
lblDescription.setText("description");
GridBagConstraints gbcTxaDescription = new GridBagConstraints();
gbcTxaDescription.gridx = 1;
gbcTxaDescription.gridy = y;
gbcTxaDescription.anchor = GridBagConstraints.WEST;
gbcTxaDescription.insets = new Insets(5,10,0,10);
this.setLayout(new GridBagLayout());
this.setSize(new Dimension(695, 498));
this.add(lblCommand, gbcLblCommand);
this.add(lblName, gbcLblName);
this.add(getTxfName(), gbcTxfName);
this.add(lblAge, gbcLblAge);
this.add(getTxtAge(), gbcTxfAge);
this.add(lblDescription, gbcLblDescription);
this.add(getTxaDescription(), gbcTxaDescription);
}
private TextField getTxfName() {
if (txfName == null) {
txfName = new TextField();
txfName.setColumns(30);
txfName.setName("name");
txfName.addFocusListener(new FocusListener() {
public void focusGained(FocusEvent feLost) {
lblCommand.setText("Please type your name");
}
public void focusLost(FocusEvent feGain){
if ((!txfName.getText().equals("")) && (!txfAge.getText().equals("")) ){
txaDescription.setText("Name : "+txfName.getText()+" ; "+"Age : "+txfAge.getText());
}
else if (!txfName.getText().equals("")){
txaDescription.setText("Name : "+txfName.getText());
}
else if (!txfAge.getText().equals("")){
txaDescription.setText("Age : "+txfAge.getText());
}
}
}
);
}
return txfName;
}
private TextField getTxtAge() {
if (txfAge == null) {
txfAge = new TextField();
txfAge.setColumns(10);
txfAge.setName("age");
txfAge.addFocusListener(new FocusListener() {
public void focusGained(FocusEvent feLost) {
lblCommand.setText("Please type your Age");
}
public void focusLost(FocusEvent feGain){
if ((!txfName.getText().equals("")) && (!txfAge.getText().equals("")) ){
txaDescription.setText("Name : "+txfName.getText()+" ; "+"Age : "+txfAge.getText());
}
else if (!txfName.getText().equals("")){
txaDescription.setText("Name : "+txfName.getText());
}
else if (!txfAge.getText().equals("")){
txaDescription.setText("Age : "+txfAge.getText());
}
}
}
);
}
return txfAge;
}
private TextArea getTxaDescription() {
if (txaDescription == null) {
txaDescription = new TextArea();
txaDescription.setName("addRemark");
txaDescription .setRows(4);
txaDescription.setColumns(40);
txaDescription.setEditable(false);
}
return txaDescription;
}
}
=============================================================================
atau
http://www.esnips.com/doc/3e5e58c6-d1c6-44e6-ab97-b7bf09db5955/MyFocusLostFocusGain2
=============================================================================
package test1;
import java.awt.Dimension;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Label;
import java.awt.TextArea;
import java.awt.TextField;
import java.awt.Insets;
import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;
import javax.swing.JFrame;
public class MyFocusLostFocusGain2 extends JFrame implements FocusListener{
/**
* @param args
*/
private Label lblCommand = null;
private Label lblName = null;
private TextField txfName = null;
private Label lblAge = null;
private TextField txfAge = null;
private Label lblDescription = null;
private TextArea txaDescription = null;
public MyFocusLostFocusGain2() {
super("My Title");
initialize();
}
public void initialize(){
int y = 0;
GridBagConstraints gbcLblCommand = new GridBagConstraints();
gbcLblCommand.gridx = 1;
gbcLblCommand.gridy = y;
gbcLblCommand.anchor = GridBagConstraints.WEST;
gbcLblCommand.fill = GridBagConstraints.HORIZONTAL;
gbcLblCommand.insets = new Insets(5,10,0,10);
lblCommand = new Label();
lblCommand.setText("");
y++;
GridBagConstraints gbcLblName = new GridBagConstraints();
gbcLblName.gridx = 0;
gbcLblName.gridy = y;
gbcLblName.anchor = GridBagConstraints.WEST;
gbcLblName.fill = GridBagConstraints.HORIZONTAL;
lblName = new Label();
lblName.setText("Name");
GridBagConstraints gbcTxfName = new GridBagConstraints();
gbcTxfName.gridx = 1;
gbcTxfName.gridy = y;
gbcTxfName.anchor = GridBagConstraints.WEST;
gbcTxfName.insets = new Insets(5,10,0,10);
y++;
GridBagConstraints gbcLblAge = new GridBagConstraints();
gbcLblAge.gridx = 0;
gbcLblAge.gridy = y;
gbcLblAge.anchor = GridBagConstraints.WEST;
gbcLblAge.fill = GridBagConstraints.HORIZONTAL;
lblAge = new Label();
lblAge.setText("Age");
GridBagConstraints gbcTxfAge = new GridBagConstraints();
gbcTxfAge.gridx = 1;
gbcTxfAge.gridy = y;
gbcTxfAge.anchor = GridBagConstraints.WEST;
gbcTxfAge.insets = new Insets(5,10,0,10);
y++;
GridBagConstraints gbcLblDescription = new GridBagConstraints();
gbcLblDescription.gridx = 0;
gbcLblDescription.gridy = y;
gbcLblDescription.anchor = GridBagConstraints.WEST;
gbcLblDescription.fill = GridBagConstraints.HORIZONTAL;
lblDescription = new Label();
lblDescription.setText("description");
GridBagConstraints gbcTxaDescription = new GridBagConstraints();
gbcTxaDescription.gridx = 1;
gbcTxaDescription.gridy = y;
gbcTxaDescription.anchor = GridBagConstraints.WEST;
gbcTxaDescription.insets = new Insets(5,10,0,10);
this.setLayout(new GridBagLayout());
this.setSize(new Dimension(695, 498));
this.add(lblCommand, gbcLblCommand);
this.add(lblName, gbcLblName);
this.add(getTxfName(), gbcTxfName);
this.add(lblAge, gbcLblAge);
this.add(getTxtAge(), gbcTxfAge);
this.add(lblDescription, gbcLblDescription);
this.add(getTxaDescription(), gbcTxaDescription);
}
private TextField getTxfName() {
if (txfName == null) {
txfName = new TextField();
txfName.setColumns(30);
txfName.setName("name");
txfName.addFocusListener(this);
}
return txfName;
}
private TextField getTxtAge() {
if (txfAge == null) {
txfAge = new TextField();
txfAge.setColumns(10);
txfAge.setName("age");
txfAge.addFocusListener(this);
}
return txfAge;
}
private TextArea getTxaDescription() {
if (txaDescription == null) {
txaDescription = new TextArea();
txaDescription.setName("addRemark");
txaDescription .setRows(4);
txaDescription.setColumns(40);
txaDescription.setEditable(false);
}
return txaDescription;
}
public void focusGained(FocusEvent feLost) {
if (feLost.getSource() == txfName) {
lblCommand.setText("Please type your name");
}
else if (feLost.getSource() == txfAge){
lblCommand.setText("Please type your Age");
}
}
public void focusLost(FocusEvent feGain){
if ((feGain.getSource() == txfName ) ||(feGain.getSource() == txfAge)) {
if ((!txfName.getText().equals("")) && (!txfAge.getText().equals("")) ){
txaDescription.setText("Name : "+txfName.getText()+" ; "+"Age : "+txfAge.getText());
}
else if (!txfName.getText().equals("")){
txaDescription.setText("Name : "+txfName.getText());
}
else if (!txfAge.getText().equals("")){
txaDescription.setText("Age : "+txfAge.getText());
}
}
}
}
Coba kita buat program yang diberi nama "MyFocusLostFocusGain1.java". program ini berisi Label Command, Name, Age and Description. Jika onKeydown di Name maka label command akan tertulis "Please type your name" dan jika onKeydown di Age maka label command akan tertulis "Please type your Age". Saat mouse keluar dari name jika name diisi data maka data yang ada di name dan age akan ditampilkan description.Saat mouse keluar dari Age jika name diisi data yang ada di name dan age maka data akan ditampilkan description.
Download source :
www.esnips.com/doc/f6d77178-b25f-4a2f-808d-8aaf71b87910/MyFocusLostFocusGain1
=============================================================================
package test1;
import java.awt.Dimension;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Label;
import java.awt.TextArea;
import java.awt.TextField;
import java.awt.Insets;
import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;
import javax.swing.JFrame;
public class MyFocusLostFocusGain1 extends JFrame{
/**
* @param args
*/
private Label lblCommand = null;
private Label lblName = null;
private TextField txfName = null;
private Label lblAge = null;
private TextField txfAge = null;
private Label lblDescription = null;
private TextArea txaDescription = null;
public MyFocusLostFocusGain1() {
super("My Title");
initialize();
}
public void initialize(){
int y = 0;
GridBagConstraints gbcLblCommand = new GridBagConstraints();
gbcLblCommand.gridx = 1;
gbcLblCommand.gridy = y;
gbcLblCommand.anchor = GridBagConstraints.WEST;
gbcLblCommand.fill = GridBagConstraints.HORIZONTAL;
gbcLblCommand.insets = new Insets(5,10,0,10);
lblCommand = new Label();
lblCommand.setText("");
y++;
GridBagConstraints gbcLblName = new GridBagConstraints();
gbcLblName.gridx = 0;
gbcLblName.gridy = y;
gbcLblName.anchor = GridBagConstraints.WEST;
gbcLblName.fill = GridBagConstraints.HORIZONTAL;
lblName = new Label();
lblName.setText("Name");
GridBagConstraints gbcTxfName = new GridBagConstraints();
gbcTxfName.gridx = 1;
gbcTxfName.gridy = y;
gbcTxfName.anchor = GridBagConstraints.WEST;
gbcTxfName.insets = new Insets(5,10,0,10);
y++;
GridBagConstraints gbcLblAge = new GridBagConstraints();
gbcLblAge.gridx = 0;
gbcLblAge.gridy = y;
gbcLblAge.anchor = GridBagConstraints.WEST;
gbcLblAge.fill = GridBagConstraints.HORIZONTAL;
lblAge = new Label();
lblAge.setText("Age");
GridBagConstraints gbcTxfAge = new GridBagConstraints();
gbcTxfAge.gridx = 1;
gbcTxfAge.gridy = y;
gbcTxfAge.anchor = GridBagConstraints.WEST;
gbcTxfAge.insets = new Insets(5,10,0,10);
y++;
GridBagConstraints gbcLblDescription = new GridBagConstraints();
gbcLblDescription.gridx = 0;
gbcLblDescription.gridy = y;
gbcLblDescription.anchor = GridBagConstraints.WEST;
gbcLblDescription.fill = GridBagConstraints.HORIZONTAL;
lblDescription = new Label();
lblDescription.setText("description");
GridBagConstraints gbcTxaDescription = new GridBagConstraints();
gbcTxaDescription.gridx = 1;
gbcTxaDescription.gridy = y;
gbcTxaDescription.anchor = GridBagConstraints.WEST;
gbcTxaDescription.insets = new Insets(5,10,0,10);
this.setLayout(new GridBagLayout());
this.setSize(new Dimension(695, 498));
this.add(lblCommand, gbcLblCommand);
this.add(lblName, gbcLblName);
this.add(getTxfName(), gbcTxfName);
this.add(lblAge, gbcLblAge);
this.add(getTxtAge(), gbcTxfAge);
this.add(lblDescription, gbcLblDescription);
this.add(getTxaDescription(), gbcTxaDescription);
}
private TextField getTxfName() {
if (txfName == null) {
txfName = new TextField();
txfName.setColumns(30);
txfName.setName("name");
txfName.addFocusListener(new FocusListener() {
public void focusGained(FocusEvent feLost) {
lblCommand.setText("Please type your name");
}
public void focusLost(FocusEvent feGain){
if ((!txfName.getText().equals("")) && (!txfAge.getText().equals("")) ){
txaDescription.setText("Name : "+txfName.getText()+" ; "+"Age : "+txfAge.getText());
}
else if (!txfName.getText().equals("")){
txaDescription.setText("Name : "+txfName.getText());
}
else if (!txfAge.getText().equals("")){
txaDescription.setText("Age : "+txfAge.getText());
}
}
}
);
}
return txfName;
}
private TextField getTxtAge() {
if (txfAge == null) {
txfAge = new TextField();
txfAge.setColumns(10);
txfAge.setName("age");
txfAge.addFocusListener(new FocusListener() {
public void focusGained(FocusEvent feLost) {
lblCommand.setText("Please type your Age");
}
public void focusLost(FocusEvent feGain){
if ((!txfName.getText().equals("")) && (!txfAge.getText().equals("")) ){
txaDescription.setText("Name : "+txfName.getText()+" ; "+"Age : "+txfAge.getText());
}
else if (!txfName.getText().equals("")){
txaDescription.setText("Name : "+txfName.getText());
}
else if (!txfAge.getText().equals("")){
txaDescription.setText("Age : "+txfAge.getText());
}
}
}
);
}
return txfAge;
}
private TextArea getTxaDescription() {
if (txaDescription == null) {
txaDescription = new TextArea();
txaDescription.setName("addRemark");
txaDescription .setRows(4);
txaDescription.setColumns(40);
txaDescription.setEditable(false);
}
return txaDescription;
}
}
=============================================================================
atau
http://www.esnips.com/doc/3e5e58c6-d1c6-44e6-ab97-b7bf09db5955/MyFocusLostFocusGain2
=============================================================================
package test1;
import java.awt.Dimension;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Label;
import java.awt.TextArea;
import java.awt.TextField;
import java.awt.Insets;
import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;
import javax.swing.JFrame;
public class MyFocusLostFocusGain2 extends JFrame implements FocusListener{
/**
* @param args
*/
private Label lblCommand = null;
private Label lblName = null;
private TextField txfName = null;
private Label lblAge = null;
private TextField txfAge = null;
private Label lblDescription = null;
private TextArea txaDescription = null;
public MyFocusLostFocusGain2() {
super("My Title");
initialize();
}
public void initialize(){
int y = 0;
GridBagConstraints gbcLblCommand = new GridBagConstraints();
gbcLblCommand.gridx = 1;
gbcLblCommand.gridy = y;
gbcLblCommand.anchor = GridBagConstraints.WEST;
gbcLblCommand.fill = GridBagConstraints.HORIZONTAL;
gbcLblCommand.insets = new Insets(5,10,0,10);
lblCommand = new Label();
lblCommand.setText("");
y++;
GridBagConstraints gbcLblName = new GridBagConstraints();
gbcLblName.gridx = 0;
gbcLblName.gridy = y;
gbcLblName.anchor = GridBagConstraints.WEST;
gbcLblName.fill = GridBagConstraints.HORIZONTAL;
lblName = new Label();
lblName.setText("Name");
GridBagConstraints gbcTxfName = new GridBagConstraints();
gbcTxfName.gridx = 1;
gbcTxfName.gridy = y;
gbcTxfName.anchor = GridBagConstraints.WEST;
gbcTxfName.insets = new Insets(5,10,0,10);
y++;
GridBagConstraints gbcLblAge = new GridBagConstraints();
gbcLblAge.gridx = 0;
gbcLblAge.gridy = y;
gbcLblAge.anchor = GridBagConstraints.WEST;
gbcLblAge.fill = GridBagConstraints.HORIZONTAL;
lblAge = new Label();
lblAge.setText("Age");
GridBagConstraints gbcTxfAge = new GridBagConstraints();
gbcTxfAge.gridx = 1;
gbcTxfAge.gridy = y;
gbcTxfAge.anchor = GridBagConstraints.WEST;
gbcTxfAge.insets = new Insets(5,10,0,10);
y++;
GridBagConstraints gbcLblDescription = new GridBagConstraints();
gbcLblDescription.gridx = 0;
gbcLblDescription.gridy = y;
gbcLblDescription.anchor = GridBagConstraints.WEST;
gbcLblDescription.fill = GridBagConstraints.HORIZONTAL;
lblDescription = new Label();
lblDescription.setText("description");
GridBagConstraints gbcTxaDescription = new GridBagConstraints();
gbcTxaDescription.gridx = 1;
gbcTxaDescription.gridy = y;
gbcTxaDescription.anchor = GridBagConstraints.WEST;
gbcTxaDescription.insets = new Insets(5,10,0,10);
this.setLayout(new GridBagLayout());
this.setSize(new Dimension(695, 498));
this.add(lblCommand, gbcLblCommand);
this.add(lblName, gbcLblName);
this.add(getTxfName(), gbcTxfName);
this.add(lblAge, gbcLblAge);
this.add(getTxtAge(), gbcTxfAge);
this.add(lblDescription, gbcLblDescription);
this.add(getTxaDescription(), gbcTxaDescription);
}
private TextField getTxfName() {
if (txfName == null) {
txfName = new TextField();
txfName.setColumns(30);
txfName.setName("name");
txfName.addFocusListener(this);
}
return txfName;
}
private TextField getTxtAge() {
if (txfAge == null) {
txfAge = new TextField();
txfAge.setColumns(10);
txfAge.setName("age");
txfAge.addFocusListener(this);
}
return txfAge;
}
private TextArea getTxaDescription() {
if (txaDescription == null) {
txaDescription = new TextArea();
txaDescription.setName("addRemark");
txaDescription .setRows(4);
txaDescription.setColumns(40);
txaDescription.setEditable(false);
}
return txaDescription;
}
public void focusGained(FocusEvent feLost) {
if (feLost.getSource() == txfName) {
lblCommand.setText("Please type your name");
}
else if (feLost.getSource() == txfAge){
lblCommand.setText("Please type your Age");
}
}
public void focusLost(FocusEvent feGain){
if ((feGain.getSource() == txfName ) ||(feGain.getSource() == txfAge)) {
if ((!txfName.getText().equals("")) && (!txfAge.getText().equals("")) ){
txaDescription.setText("Name : "+txfName.getText()+" ; "+"Age : "+txfAge.getText());
}
else if (!txfName.getText().equals("")){
txaDescription.setText("Name : "+txfName.getText());
}
else if (!txfAge.getText().equals("")){
txaDescription.setText("Age : "+txfAge.getText());
}
}
}
}
Bermain dengan Gridbagconstraint di java
Property yang ada di class Gridbagconstraint antara lain :
- gridx -> digunakan untuk menentukan posisi x dr komponen
- gridy -> digunakan untuk menentukan posisi y dr komponen
- anchor -> digunakan jika komponen lebih kecil dari display area
- insets -> digunakan untuk menentukan external padding dari komponen, minimum space antara komponen dan ujung dari display area
- gridheight -> digunakan untuk menentukan jumlah sel di suatu kolom untuk display area komponen
- gridwidth -> digunakan untuk menentukan jumlah sel di baris untuk display area komponen
class Gridbagconstraint ini kita coba untuk di test di program yang kita beri nama "MyGridBagConstraints1.java" sbb :
Download Source :
esnips.com/doc/d4d4254d-46a8-4e8e-9f50-8ee70c7e8b17/MyGridBagConstraints1
=================================================================================================
package test1;
import java.awt.Dimension;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Label;
import java.awt.Panel;
import java.awt.TextArea;
import java.awt.TextField;
import java.awt.Insets;
import javax.swing.JFrame;
public class MyGridBagConstraints1 extends JFrame{
/**
* @param args
*/
private Label lblName = null;
private TextField txfName = null;
private Label lblAddress = null;
private TextField txfAddress = null;
private Label lblAge = null;
private TextField txfAge = null;
private Label lblWeight = null;
private TextField txfWeight = null;
private Label lblDescription = null;
private TextArea txaDescription = null;
private Panel pnlWeightAge = null;
public MyGridBagConstraints1() {
super("My Title");
initialize();
}
public void initialize(){
GridBagConstraints gbcLblName = new GridBagConstraints();
gbcLblName.gridx = 0;
gbcLblName.gridy = 1;
gbcLblName.anchor = GridBagConstraints.WEST;
gbcLblName.weighty = 0.1;
lblName = new Label();
lblName.setText("Name");
GridBagConstraints gbcTxfName = new GridBagConstraints();
gbcTxfName.gridx = 1;
gbcTxfName.gridy = 1;
gbcTxfName.anchor = GridBagConstraints.WEST;
gbcTxfName.insets = new Insets(0,10,0,5);
gbcTxfName.weightx = 0.1;
GridBagConstraints gbcLblAddress = new GridBagConstraints();
gbcLblAddress.gridx = 0;
gbcLblAddress.gridy = 2;
gbcLblAddress.anchor = GridBagConstraints.WEST;
gbcLblAddress.weighty = 0.1;
lblAddress = new Label();
lblAddress.setText("Address");
GridBagConstraints gbcTxfAddress = new GridBagConstraints();
gbcTxfAddress.gridx = 1;
gbcTxfAddress.gridy = 2;
gbcTxfAddress.anchor = GridBagConstraints.WEST;
gbcTxfAddress.insets = new Insets(0,10,0,5);
gbcTxfAddress.weightx = 0.1;
GridBagConstraints gbcLblAge = new GridBagConstraints();
gbcLblAge.gridx = 0;
gbcLblAge.gridy = 3;
gbcLblAge.anchor = GridBagConstraints.WEST;
gbcLblAge.weighty = 0.1;
lblAge = new Label();
lblAge.setText("Age");
GridBagConstraints gbcPnlWeightAge = new GridBagConstraints();
gbcPnlWeightAge.gridx = 1;
gbcPnlWeightAge.gridy = 3;
gbcPnlWeightAge.anchor = GridBagConstraints.WEST;
gbcPnlWeightAge.insets = new Insets(0,10,0,5);
gbcPnlWeightAge.weighty = 0.1;
GridBagConstraints gbcLblDescription = new GridBagConstraints();
gbcLblDescription.gridx = 0;
gbcLblDescription.gridy = 4;
gbcLblDescription.anchor = GridBagConstraints.WEST;
gbcLblDescription.weighty = 0.1;
lblDescription = new Label();
lblDescription.setText("description");
GridBagConstraints gbcTxaDescription = new GridBagConstraints();
gbcTxaDescription.gridx = 1;
gbcTxaDescription.gridy = 4;
gbcTxaDescription.anchor = GridBagConstraints.WEST;
gbcTxaDescription.insets = new Insets(0,10,0,5);
gbcTxaDescription.weightx = 0.1;
this.setLayout(new GridBagLayout());
this.setSize(new Dimension(695, 300));
this.add(lblName, gbcLblName);
this.add(getTxfName(), gbcTxfName);
this.add(lblAddress, gbcLblAddress);
this.add(getTxtAddress(), gbcTxfAddress);
this.add(lblAge, gbcLblAge);
this.add(getPnlWeightAge() , gbcPnlWeightAge);
this.add(lblDescription, gbcLblDescription);
this.add(getTxaDescription(), gbcTxaDescription);
}
private Panel getPnlWeightAge() {
if (pnlWeightAge == null) {
lblWeight = new Label();
lblWeight.setText("Weight");
pnlWeightAge = new Panel();
pnlWeightAge.add(getTxtAge(), null);
pnlWeightAge.add(lblWeight, null);
pnlWeightAge.add(getTxtWeight(), null);
}
return pnlWeightAge;
}
private TextField getTxfName() {
if (txfName == null) {
txfName = new TextField();
txfName.setColumns(30);
txfName.setName("name");
}
return txfName;
}
private TextField getTxtAddress() {
if (txfAddress == null) {
txfAddress = new TextField();
txfAddress.setColumns(40);
txfAddress.setName("address");
}
return txfAddress;
}
private TextField getTxtAge() {
if (txfAge == null) {
txfAge = new TextField();
txfAge.setColumns(10);
txfAge.setName("age");
}
return txfAge;
}
private TextField getTxtWeight() {
if (txfWeight == null) {
txfWeight = new TextField();
txfWeight.setColumns(10);
txfWeight .setName("weight");
}
return txfWeight;
}
private TextArea getTxaDescription() {
if (txaDescription == null) {
txaDescription = new TextArea();
txaDescription.setName("addRemark");
txaDescription .setRows(4);
txaDescription.setColumns(40);
}
return txaDescription;
}
}
=================================================================================================
- gridx -> digunakan untuk menentukan posisi x dr komponen
- gridy -> digunakan untuk menentukan posisi y dr komponen
- anchor -> digunakan jika komponen lebih kecil dari display area
- insets -> digunakan untuk menentukan external padding dari komponen, minimum space antara komponen dan ujung dari display area
- gridheight -> digunakan untuk menentukan jumlah sel di suatu kolom untuk display area komponen
- gridwidth -> digunakan untuk menentukan jumlah sel di baris untuk display area komponen
class Gridbagconstraint ini kita coba untuk di test di program yang kita beri nama "MyGridBagConstraints1.java" sbb :
Download Source :
esnips.com/doc/d4d4254d-46a8-4e8e-9f50-8ee70c7e8b17/MyGridBagConstraints1
=================================================================================================
package test1;
import java.awt.Dimension;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Label;
import java.awt.Panel;
import java.awt.TextArea;
import java.awt.TextField;
import java.awt.Insets;
import javax.swing.JFrame;
public class MyGridBagConstraints1 extends JFrame{
/**
* @param args
*/
private Label lblName = null;
private TextField txfName = null;
private Label lblAddress = null;
private TextField txfAddress = null;
private Label lblAge = null;
private TextField txfAge = null;
private Label lblWeight = null;
private TextField txfWeight = null;
private Label lblDescription = null;
private TextArea txaDescription = null;
private Panel pnlWeightAge = null;
public MyGridBagConstraints1() {
super("My Title");
initialize();
}
public void initialize(){
GridBagConstraints gbcLblName = new GridBagConstraints();
gbcLblName.gridx = 0;
gbcLblName.gridy = 1;
gbcLblName.anchor = GridBagConstraints.WEST;
gbcLblName.weighty = 0.1;
lblName = new Label();
lblName.setText("Name");
GridBagConstraints gbcTxfName = new GridBagConstraints();
gbcTxfName.gridx = 1;
gbcTxfName.gridy = 1;
gbcTxfName.anchor = GridBagConstraints.WEST;
gbcTxfName.insets = new Insets(0,10,0,5);
gbcTxfName.weightx = 0.1;
GridBagConstraints gbcLblAddress = new GridBagConstraints();
gbcLblAddress.gridx = 0;
gbcLblAddress.gridy = 2;
gbcLblAddress.anchor = GridBagConstraints.WEST;
gbcLblAddress.weighty = 0.1;
lblAddress = new Label();
lblAddress.setText("Address");
GridBagConstraints gbcTxfAddress = new GridBagConstraints();
gbcTxfAddress.gridx = 1;
gbcTxfAddress.gridy = 2;
gbcTxfAddress.anchor = GridBagConstraints.WEST;
gbcTxfAddress.insets = new Insets(0,10,0,5);
gbcTxfAddress.weightx = 0.1;
GridBagConstraints gbcLblAge = new GridBagConstraints();
gbcLblAge.gridx = 0;
gbcLblAge.gridy = 3;
gbcLblAge.anchor = GridBagConstraints.WEST;
gbcLblAge.weighty = 0.1;
lblAge = new Label();
lblAge.setText("Age");
GridBagConstraints gbcPnlWeightAge = new GridBagConstraints();
gbcPnlWeightAge.gridx = 1;
gbcPnlWeightAge.gridy = 3;
gbcPnlWeightAge.anchor = GridBagConstraints.WEST;
gbcPnlWeightAge.insets = new Insets(0,10,0,5);
gbcPnlWeightAge.weighty = 0.1;
GridBagConstraints gbcLblDescription = new GridBagConstraints();
gbcLblDescription.gridx = 0;
gbcLblDescription.gridy = 4;
gbcLblDescription.anchor = GridBagConstraints.WEST;
gbcLblDescription.weighty = 0.1;
lblDescription = new Label();
lblDescription.setText("description");
GridBagConstraints gbcTxaDescription = new GridBagConstraints();
gbcTxaDescription.gridx = 1;
gbcTxaDescription.gridy = 4;
gbcTxaDescription.anchor = GridBagConstraints.WEST;
gbcTxaDescription.insets = new Insets(0,10,0,5);
gbcTxaDescription.weightx = 0.1;
this.setLayout(new GridBagLayout());
this.setSize(new Dimension(695, 300));
this.add(lblName, gbcLblName);
this.add(getTxfName(), gbcTxfName);
this.add(lblAddress, gbcLblAddress);
this.add(getTxtAddress(), gbcTxfAddress);
this.add(lblAge, gbcLblAge);
this.add(getPnlWeightAge() , gbcPnlWeightAge);
this.add(lblDescription, gbcLblDescription);
this.add(getTxaDescription(), gbcTxaDescription);
}
private Panel getPnlWeightAge() {
if (pnlWeightAge == null) {
lblWeight = new Label();
lblWeight.setText("Weight");
pnlWeightAge = new Panel();
pnlWeightAge.add(getTxtAge(), null);
pnlWeightAge.add(lblWeight, null);
pnlWeightAge.add(getTxtWeight(), null);
}
return pnlWeightAge;
}
private TextField getTxfName() {
if (txfName == null) {
txfName = new TextField();
txfName.setColumns(30);
txfName.setName("name");
}
return txfName;
}
private TextField getTxtAddress() {
if (txfAddress == null) {
txfAddress = new TextField();
txfAddress.setColumns(40);
txfAddress.setName("address");
}
return txfAddress;
}
private TextField getTxtAge() {
if (txfAge == null) {
txfAge = new TextField();
txfAge.setColumns(10);
txfAge.setName("age");
}
return txfAge;
}
private TextField getTxtWeight() {
if (txfWeight == null) {
txfWeight = new TextField();
txfWeight.setColumns(10);
txfWeight .setName("weight");
}
return txfWeight;
}
private TextArea getTxaDescription() {
if (txaDescription == null) {
txaDescription = new TextArea();
txaDescription.setName("addRemark");
txaDescription .setRows(4);
txaDescription.setColumns(40);
}
return txaDescription;
}
}
=================================================================================================
Monday, October 20, 2008
Create dan Compile Program Assembler di Linux
- bikin program Assembler di linux bs gunakan editor "kwrite" or editor gedit misal : file dikasih nama hello.S
- untuk meng-compile program hello.S agar menghasilkan file object "hello.o" di linux dg perintah "as" yang merupakan compiler default pada linux yang menggunakan GNU Assembler compiler. seperti dibawah ini di console :
as -o hello.o hello.S
- untuk menghasilkan executable file nya digunakan perintah "ld".seperti dibawah ini
ld -s -o hello hello.o
- untuk menjalankan program yang dihasilkan tersebut dg perintah dibawah ini di console:
./hello
- untuk meng-compile program hello.S agar menghasilkan file object "hello.o" di linux dg perintah "as" yang merupakan compiler default pada linux yang menggunakan GNU Assembler compiler. seperti dibawah ini di console :
as -o hello.o hello.S
- untuk menghasilkan executable file nya digunakan perintah "ld".seperti dibawah ini
ld -s -o hello hello.o
- untuk menjalankan program yang dihasilkan tersebut dg perintah dibawah ini di console:
./hello
Tuesday, September 23, 2008
Query Menampilkan data null di Oracle dan MS SQL server
NVL function di oracle dan isnull function di ms sql server ini mempunyai fungsi yang sama yaitu menampilkan data dari suatu table yang isi datanya null diganti dengan data sesuai dengan format yang kita inginkan
- NVL(NamaField,dataPengganti) function di Oracle
select p.cd, NVL(p.group_cd, 'MY GROUP') as group_cd, NVL(p.login_count , 0) as LOGIN_COUNT ,p.* from im_user p
- ISNULL(NamaField,dataPengganti) function di MS SQL Server
select p.cd, ISNULL(p.group_cd, 'MY GROUP') as group_cd, ISNULL(p.login_count , 0) as LOGIN_COUNT ,p.* from im_user p
- NVL(NamaField,dataPengganti) function di Oracle
select p.cd, NVL(p.group_cd, 'MY GROUP') as group_cd, NVL(p.login_count , 0) as LOGIN_COUNT ,p.* from im_user p
- ISNULL(NamaField,dataPengganti) function di MS SQL Server
select p.cd, ISNULL(p.group_cd, 'MY GROUP') as group_cd, ISNULL(p.login_count , 0) as LOGIN_COUNT ,p.* from im_user p
Monday, September 15, 2008
Create dan Compile Program C di Linux
- bikin program c di linux bs gunakan editor "kwrite" or editor gedit misal : file dikasih nama hello.c
- untuk meng-compile program hello.c di linux dg perintah "gcc" yang merupakan compiler default pada linux yang menggunakan GNU C compiler. Caranya tulis perintah dibawah ini di console :
gcc -o hello hello.c
setelah proses compile ini maka akan terbentuk executable file yang bernama hello
- untuk mejalankan program yang dihasilkan tersebut dg cara tulis perintah dibawah ini di console:
./hello
- untuk meng-compile program hello.c di linux dg perintah "gcc" yang merupakan compiler default pada linux yang menggunakan GNU C compiler. Caranya tulis perintah dibawah ini di console :
gcc -o hello hello.c
setelah proses compile ini maka akan terbentuk executable file yang bernama hello
- untuk mejalankan program yang dihasilkan tersebut dg cara tulis perintah dibawah ini di console:
./hello
Monday, August 11, 2008
Array dan Vector di JAVA
1)Kapasitas komponen array adalah n-1, kalau kapasitas vector tidak usah diinisialisasi tdk apa2
Note :
“capacity” di vector adalah jumlah slot yang tersedia
“size” di vector adalah jumlah slot yang sudah terisi data
=================
Program Array :
=================
class Array1
{
public static void main ( String[] args)
{
Integer[] dataku = new Integer[5];
dataku[0] = 10 ;
dataku[1] = 11 ;
dataku[2] = 12 ;
dataku[3] = 13 ;
dataku[4] = 14 ;
System.out.println("capacity: "+ dataku.length);
for (int i=0; i< dataku.length; i++){
System.out.println("dataku[" + i + "] : "+dataku[i]);
}
}
}
================
Output Program :
================
capacity: 5
dataku[0] : 10
dataku[1] : 11
dataku[2] : 12
dataku[3] : 13
dataku[4] : 14
===============
Contoh Vector :
===============
import java.util.* ;
class Vector1 {
public static void main ( String[] args) {
//vector tanpa inisialisasi kapasitas
Vector dataku = new Vector();
dataku.addElement(10);
dataku.addElement(11);
dataku.addElement(12);
dataku.addElement(13);
dataku.addElement(14);
System.out.println("capacity: "+ dataku.capacity() );
System.out.println("size: "+ dataku.size() );
for (int i=0; i < dataku.size(); i++){
System.out.println("dataku elemen ke " + i + " : "+dataku.elementAt(i));
}
}
}
================
Output program :
================
capacity: 10
size: 5
dataku elemen ke 0 : 10
dataku elemen ke 1 : 11
dataku elemen ke 2 : 12
dataku elemen ke 3 : 13
dataku elemen ke 4 : 14
2)kapasitas komponen Array harus diinisialisasi dari awal, dan tidak bs ditambahi lagi tapi vector bisa diinisialisasi bisa tidak
===============
Contoh Array :
===============
class Array1
{
public static void main ( String[] args)
{
Integer[] dataku = new Integer[5];
dataku[0] = 10 ;
dataku[1] = 11 ;
dataku[2] = 12 ;
dataku[3] = 13 ;
dataku[4] = 14 ;
///ini tambahannya yang nyebabin error:)
dataku[5] = 14 ;
System.out.println("capacity: "+ dataku.length);
for (int i=0; i < dataku.length; i++){
System.out.println("dataku[" + i + "] : "+dataku[i]);
}
}
}
===============
Error Program :
===============
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5
at MyDrill.Array1.main(Array1.java:16)
==============
Contoh Vector :
==============
import java.util.* ;
class Vector1 {
public static void main ( String[] args) {
//vector dengan inisialisasi kapasitasnya =5
Vector dataku = new Vector(5);
dataku.addElement(10);
dataku.addElement(11);
dataku.addElement(12);
dataku.addElement(13);
dataku.addElement(14);
dataku.addElement(101);
System.out.println("capacity: "+ dataku.capacity() );
System.out.println("size: "+ dataku.size() );
for (int i=0; i < dataku.size(); i++){
System.out.println("dataku elemen ke " + i + " : "+dataku.elementAt(i));
}
}
}
================
Output Program :
================
capacity: 10
size: 6
dataku elemen ke 0 : 10
dataku elemen ke 1 : 11
dataku elemen ke 2 : 12
dataku elemen ke 3 : 13
dataku elemen ke 4 : 14
dataku elemen ke 5 : 101
3)Menghapus elemen vector
===========
Program :
===========
import java.util.* ;
class Vector1 {
public static void main ( String[] args) {
//vector dengan inisialisasi kapasitasnya =5
Vector dataku = new Vector(5);
dataku.addElement(10);
dataku.addElement(11);
dataku.addElement(12);
dataku.addElement(13);
dataku.addElement(14);
dataku.addElement(101);
dataku.remove(2);
System.out.println("capacity: "+ dataku.capacity() );
System.out.println("size: "+ dataku.size() );
for (int i=0; i < dataku.size(); i++){
System.out.println("dataku elemen ke " + i + " : "+dataku.elementAt(i));
}
}
}
===============
output program :
===============
capacity: 10
size: 5
dataku elemen ke 0 : 10
dataku elemen ke 1 : 11
dataku elemen ke 2 : 13
dataku elemen ke 3 : 14
dataku elemen ke 4 : 101
4)Insert/sisipkan elemen pada vector
================
contoh Program :
================
import java.util.* ;
class Vector1 {
public static void main ( String[] args) {
//vector dengan inisialisasi kapasitasnya =5
Vector dataku = new Vector(5);
dataku.addElement(10);
dataku.addElement(11);
dataku.addElement(12);
dataku.addElement(13);
dataku.addElement(14);
dataku.addElement(101);
//menyisipkan data pada element ke 3
dataku.insertElementAt(500, 3);
System.out.println("capacity: "+ dataku.capacity() );
System.out.println("size: "+ dataku.size() );
for (int i=0; i < dataku.size(); i++){
System.out.println("dataku elemen ke " + i + " : "+dataku.elementAt(i));
}
}
}
==================
Output program :
==================
capacity: 10
size: 7
dataku elemen ke 0 : 10
dataku elemen ke 1 : 11
dataku elemen ke 2 : 12
dataku elemen ke 3 : 500
dataku elemen ke 4 : 13
dataku elemen ke 5 : 14
dataku elemen ke 6 : 101
5. mengetahui elemen pertama dan terakhir dr vector
================
contoh program :
================
import java.util.* ;
class Vector1 {
public static void main ( String[] args) {
//vector dengan inisialisasi kapasitasnya =5
Vector dataku = new Vector(5);
dataku.addElement(10);
dataku.addElement(11);
dataku.addElement(12);
dataku.addElement(13);
dataku.addElement(14);
dataku.addElement(101);
System.out.println("elemen vectorku yang pertama : "+dataku.firstElement());
System.out.println("elemen vectorku yang pertama : "+dataku.lastElement());
}
}
================
Output program :
================
elemen vectorku yang pertama : 10
elemen vectorku yang terakhir : 101
6. mendeteksi vector kosong apa berisi
================
Contoh program :
================
import java.util.* ;
class Vector1 {
public static void main ( String[] args) {
//vector dengan inisialisasi kapasitasnya =5
Vector dataku = new Vector(5);
if (dataku.isEmpty()) {
System.out.println("wah kosong neh...");
}
else {
System.out.println("ada isinya lho...");
}
System.out.println(">>>>>>>>>>>>>>>>Batas if pertama dan if kedua>>>>>>>>>>>>>>>>>>>>");
dataku.addElement(10);
dataku.addElement(11);
dataku.addElement(12);
dataku.addElement(13);
dataku.addElement(14);
dataku.addElement(101);
if (dataku.isEmpty()) {
System.out.println("wah kosong neh...");
}
else {
System.out.println("ada isinya lho...");
}
}
===============
output program :
===============
wah kosong neh...
>>>>>>>>>>>>>>>>Batas if pertama dan if kedua>>>>>>>>>>>>>>>>>>>>
ada isinya lho...
7. mengetahui index dari suatu element vector.jika elemen tersebut bukan termasuk elemennya maka akan mengembalikan nilai -1. jika termasuk elemennya maka akan mengembalikan no elemen.
================
Contoh Program :
================
import java.util.* ;
class Vector1 {
public static void main ( String[] args) {
//vector dengan inisialisasi kapasitasnya =5
Vector dataku = new Vector(5);
dataku.addElement(10);
dataku.addElement(11);
dataku.addElement(12);
dataku.addElement(13);
dataku.addElement(14);
dataku.addElement(101);
System.out.println("element dataku.indexOf(100) : "+dataku.indexOf(100));
System.out.println("element dataku.indexOf(1) : "+dataku.indexOf(1));
System.out.println("element dataku.indexOf(13) : "+dataku.indexOf(13));
}
}
================
output program :
================
element dataku.indexOf(100) : -1
element dataku.indexOf(1) : -1
element dataku.indexOf(13) : 3
Note :
“capacity” di vector adalah jumlah slot yang tersedia
“size” di vector adalah jumlah slot yang sudah terisi data
=================
Program Array :
=================
class Array1
{
public static void main ( String[] args)
{
Integer[] dataku = new Integer[5];
dataku[0] = 10 ;
dataku[1] = 11 ;
dataku[2] = 12 ;
dataku[3] = 13 ;
dataku[4] = 14 ;
System.out.println("capacity: "+ dataku.length);
for (int i=0; i< dataku.length; i++){
System.out.println("dataku[" + i + "] : "+dataku[i]);
}
}
}
================
Output Program :
================
capacity: 5
dataku[0] : 10
dataku[1] : 11
dataku[2] : 12
dataku[3] : 13
dataku[4] : 14
===============
Contoh Vector :
===============
import java.util.* ;
class Vector1 {
public static void main ( String[] args) {
//vector tanpa inisialisasi kapasitas
Vector dataku = new Vector();
dataku.addElement(10);
dataku.addElement(11);
dataku.addElement(12);
dataku.addElement(13);
dataku.addElement(14);
System.out.println("capacity: "+ dataku.capacity() );
System.out.println("size: "+ dataku.size() );
for (int i=0; i < dataku.size(); i++){
System.out.println("dataku elemen ke " + i + " : "+dataku.elementAt(i));
}
}
}
================
Output program :
================
capacity: 10
size: 5
dataku elemen ke 0 : 10
dataku elemen ke 1 : 11
dataku elemen ke 2 : 12
dataku elemen ke 3 : 13
dataku elemen ke 4 : 14
2)kapasitas komponen Array harus diinisialisasi dari awal, dan tidak bs ditambahi lagi tapi vector bisa diinisialisasi bisa tidak
===============
Contoh Array :
===============
class Array1
{
public static void main ( String[] args)
{
Integer[] dataku = new Integer[5];
dataku[0] = 10 ;
dataku[1] = 11 ;
dataku[2] = 12 ;
dataku[3] = 13 ;
dataku[4] = 14 ;
///ini tambahannya yang nyebabin error:)
dataku[5] = 14 ;
System.out.println("capacity: "+ dataku.length);
for (int i=0; i < dataku.length; i++){
System.out.println("dataku[" + i + "] : "+dataku[i]);
}
}
}
===============
Error Program :
===============
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5
at MyDrill.Array1.main(Array1.java:16)
==============
Contoh Vector :
==============
import java.util.* ;
class Vector1 {
public static void main ( String[] args) {
//vector dengan inisialisasi kapasitasnya =5
Vector dataku = new Vector(5);
dataku.addElement(10);
dataku.addElement(11);
dataku.addElement(12);
dataku.addElement(13);
dataku.addElement(14);
dataku.addElement(101);
System.out.println("capacity: "+ dataku.capacity() );
System.out.println("size: "+ dataku.size() );
for (int i=0; i < dataku.size(); i++){
System.out.println("dataku elemen ke " + i + " : "+dataku.elementAt(i));
}
}
}
================
Output Program :
================
capacity: 10
size: 6
dataku elemen ke 0 : 10
dataku elemen ke 1 : 11
dataku elemen ke 2 : 12
dataku elemen ke 3 : 13
dataku elemen ke 4 : 14
dataku elemen ke 5 : 101
3)Menghapus elemen vector
===========
Program :
===========
import java.util.* ;
class Vector1 {
public static void main ( String[] args) {
//vector dengan inisialisasi kapasitasnya =5
Vector dataku = new Vector(5);
dataku.addElement(10);
dataku.addElement(11);
dataku.addElement(12);
dataku.addElement(13);
dataku.addElement(14);
dataku.addElement(101);
dataku.remove(2);
System.out.println("capacity: "+ dataku.capacity() );
System.out.println("size: "+ dataku.size() );
for (int i=0; i < dataku.size(); i++){
System.out.println("dataku elemen ke " + i + " : "+dataku.elementAt(i));
}
}
}
===============
output program :
===============
capacity: 10
size: 5
dataku elemen ke 0 : 10
dataku elemen ke 1 : 11
dataku elemen ke 2 : 13
dataku elemen ke 3 : 14
dataku elemen ke 4 : 101
4)Insert/sisipkan elemen pada vector
================
contoh Program :
================
import java.util.* ;
class Vector1 {
public static void main ( String[] args) {
//vector dengan inisialisasi kapasitasnya =5
Vector dataku = new Vector(5);
dataku.addElement(10);
dataku.addElement(11);
dataku.addElement(12);
dataku.addElement(13);
dataku.addElement(14);
dataku.addElement(101);
//menyisipkan data pada element ke 3
dataku.insertElementAt(500, 3);
System.out.println("capacity: "+ dataku.capacity() );
System.out.println("size: "+ dataku.size() );
for (int i=0; i < dataku.size(); i++){
System.out.println("dataku elemen ke " + i + " : "+dataku.elementAt(i));
}
}
}
==================
Output program :
==================
capacity: 10
size: 7
dataku elemen ke 0 : 10
dataku elemen ke 1 : 11
dataku elemen ke 2 : 12
dataku elemen ke 3 : 500
dataku elemen ke 4 : 13
dataku elemen ke 5 : 14
dataku elemen ke 6 : 101
5. mengetahui elemen pertama dan terakhir dr vector
================
contoh program :
================
import java.util.* ;
class Vector1 {
public static void main ( String[] args) {
//vector dengan inisialisasi kapasitasnya =5
Vector dataku = new Vector(5);
dataku.addElement(10);
dataku.addElement(11);
dataku.addElement(12);
dataku.addElement(13);
dataku.addElement(14);
dataku.addElement(101);
System.out.println("elemen vectorku yang pertama : "+dataku.firstElement());
System.out.println("elemen vectorku yang pertama : "+dataku.lastElement());
}
}
================
Output program :
================
elemen vectorku yang pertama : 10
elemen vectorku yang terakhir : 101
6. mendeteksi vector kosong apa berisi
================
Contoh program :
================
import java.util.* ;
class Vector1 {
public static void main ( String[] args) {
//vector dengan inisialisasi kapasitasnya =5
Vector dataku = new Vector(5);
if (dataku.isEmpty()) {
System.out.println("wah kosong neh...");
}
else {
System.out.println("ada isinya lho...");
}
System.out.println(">>>>>>>>>>>>>>>>Batas if pertama dan if kedua>>>>>>>>>>>>>>>>>>>>");
dataku.addElement(10);
dataku.addElement(11);
dataku.addElement(12);
dataku.addElement(13);
dataku.addElement(14);
dataku.addElement(101);
if (dataku.isEmpty()) {
System.out.println("wah kosong neh...");
}
else {
System.out.println("ada isinya lho...");
}
}
===============
output program :
===============
wah kosong neh...
>>>>>>>>>>>>>>>>Batas if pertama dan if kedua>>>>>>>>>>>>>>>>>>>>
ada isinya lho...
7. mengetahui index dari suatu element vector.jika elemen tersebut bukan termasuk elemennya maka akan mengembalikan nilai -1. jika termasuk elemennya maka akan mengembalikan no elemen.
================
Contoh Program :
================
import java.util.* ;
class Vector1 {
public static void main ( String[] args) {
//vector dengan inisialisasi kapasitasnya =5
Vector dataku = new Vector(5);
dataku.addElement(10);
dataku.addElement(11);
dataku.addElement(12);
dataku.addElement(13);
dataku.addElement(14);
dataku.addElement(101);
System.out.println("element dataku.indexOf(100) : "+dataku.indexOf(100));
System.out.println("element dataku.indexOf(1) : "+dataku.indexOf(1));
System.out.println("element dataku.indexOf(13) : "+dataku.indexOf(13));
}
}
================
output program :
================
element dataku.indexOf(100) : -1
element dataku.indexOf(1) : -1
element dataku.indexOf(13) : 3
Subscribe to:
Posts (Atom)