Tuesday, February 14, 2012

Install Toad Di Windows 7 - Error: Can't initialize OCI. Error -1

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 :)

Friday, February 11, 2011

DeNtisTaz bLoG: mY heart juZt ScreaMing

DeNtisTaz bLoG: mY heart juZt ScreaMing

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 :)

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;

========================================================

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

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

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

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

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.

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:)

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%

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

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

}


==========================================================

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

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());
}

}

}


}

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


=================================================================================================

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

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

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

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