Saturday, September 8, 2007

Tuesday, June 5, 2007

GraPHiC uSEr InTErFaCE ( GUI )

Di Java, GUI diimplement dari class javax.swing dan packages java.awt

Untuk membuat frame window, kita bisa menggunakan class JFrame.
JFrame defaultJFrame;
defaultJFrame = new JFrame();
defaultJFrame.setVisible(true);

Content pane adalah tempat untuk meletakkan tombol, label, scroll bars, dan lainnya. Dan kita dapat mengaksesnya dengan memanggil method getContentPane.

Cara kita untuk mengubah warna background sebuah content pane :
Container contentPane = getContentPane();
contentPane.setBackground(Color.BLUE);
----> untuk mengubah warna background menjadi warna biru

Beberapa class dari swing GUI adalah :
- JLabel yang berguna untuk menampilkan label seperti image atau text.
Ketika membuat label image, kita harus menambahkan ImageIcon.
JLabel textLabel = new JLabel("Please enter your name");
contentPane.add(textLabel);
-----> untuk menampilkan text

Jlabel imgLabel = new JLabel (new ImageIcon ("cat.gif"));
contentPane.add(imgLabel);
------> untuk menampilkan image

- JTextField yang berguna bagi user untuk memasukkan sebuah kalimat.
getText berfungsi untuk mendapatkan text yang telah dimasukkan oleh user.
JTextField input = new JTextField();
contentPane.add(input);

- JTextArea yang berguna bagi user untuk memasukkan banyak kalimat. Dan ini juga berfungsi untuk menampilan banyak uneditable text.
setText berfungsi untuk memasukkan isi kalimat
append berfungsi untuk menambahkan kalimat dari kalimat sebelumnya
JTextArea textArea = new JTextArea();
......
textArea.setText("Hello\n");
textArea.append(" the lost ");
textArea.append("world");

-----> Hello
the lost world

Di JTextArea, kita juga bisa menambahkan scrool bars dengan menambahkan object JScrollPane.
JTextArea textArea = new JTextArea();
.......
JScrollPane scrollText = new JscrollPane( textArea );
......
contentPane.add(scrollText);

Ada 2 cara untuk memasukkan GUI ke dalam content pane sebuah frame :
a. Menggunakan layout manager :
- FlowLayout
Dengan menggunakan layout ini, maka komponen GUI dapat diletakkan dari kiri ke kanan. Ketika komponen tidak cukup untuk diletakkan dalam satu baris, maka akan diletakkan di baris selanjutnya. Sebagai defaultnya, komponen diletakkan di pusat frame. Ketika ukuran frame nya diubah, maka penempatan komponennya disesuaikan dengan ukuran frame tersebut.

- BorderLayout
Layout ini dibagi dalam 5 bagian : pusat, utara, selatan, timur, dan barat.
Bagian utara dan selatan dapat membesar dan mengecil hanya untuk tinggi dari yang dibatasi.
Bagian timur dan barat dapat membesar dan mengecil hanya untuk lebar dari wilayah yang dibatasi.
Bagian pusat dapat membesar dan mengecil untuk lebar dan tinggi wilayah yang dibatasinya.
Tidak semua wilayah dibatasi dengan border ini.

- GridLayout
Layout ini menempatkan komponen frame dengan ukuran yang sama yang ditempatkan dari atas ke bawah dan dari kanan ke kiri. Dan banyaknya baris dan kolom disesuaikan dengan ukuran frame.

b. Menggunakan absolute positioning
- null layout manager

Komponen GUI yang lainnya :
- JCheckBox
- JRadioButton
- JComboBox
- JList
- JSlider

Di package javax.swing juga berisi class menu, seperti :
- JMenuBar adalah sebuah bar di mana semua menu ditempatkan. Ada satu menu bar di tiap frame.
- JMenu ( seperti File atau Edit ) adalah sebuah kelompok dari pilihan menu. Dan JMenuBar memungkinkan untuk memiliki lebih dari satu JMenu.
- JMenuItem ( seperti Copy, Cut, atau Paste ) adalah pilihan menu dari JMenu. Dan hanya JMenuItem yang menghasilkan events.

inPuT aND ouTPuT

Untuk mengoperasikan sebuah file, kita harus membuat object File dari java.io
Example : File inFile = new File ("sample.dat");
berfungsi untuk membuka file sample.dat

File inFile = new File("C:/SamplePrograms/test.dat");
berfungsi untuk membuka file test.dat di directory C:\SamplePrograms

Beberapa method dari File :
- if ( inFile.exists () ) { ----> untuk melihat jika inFile yang dimaksud benar atau tidak
- if ( inFile.isFile () ) { -----> untuk melihat jika inFile yang dimaksud merupakan file atau bukan, jika bukan, berarti itu adalah directory.

File directory = new File ("C:/JavaPrograms/Ch12");
String filename[] = directory.list();
for (int i = 0; i <>
System.out.println(filename[i]);
}
Ini untuk mengeluarkan semua nama file yang ada di directory C:\JavaPrograms\Ch12

Object javax.swing.JFileChooser berguna untuk memilih sebuah file yang diinginkan oleh user.
JFileChooser chooser = new JFileChooser();
chooser.showOpenDialog(null);

Beberapa info dari JFileChooser :
- File selectedFile = chooser.getSelectedFile();
- File currentDirectory = chooser.getCurrentDirectory();

File filter kemungkinan terbatas digunakan dalam JFileChooser hanya untuk file atau directory yang membutuhkan filtering. Di dalam Java, kita bisa menggunakan class javax.swing.filechooser.FileFilter yang juga menyediakan beberapa method, seperti :
- public boolean accept(File file);
- public String getDescription();

Untuk membaca atau menulis data dari sebuah file, kita harus membuat salah satu object stream yang kita lampirkan ke dalam file.
Stream adalah rangkaian dari data items yang biasanya terdiri dari 8 bit.
Java memiliki 2 tipe stream : input stream ( berisi source dari data yang akan ditampilkan ) dan output stream ( berisi tujuan dari data itu ).

FileOutputStream ( membantu kita untuk mengeluarkan rangkaian bytes ) dan FileInputStream ( membantu kita untuk membaca dalam array of bytes ) adalah 2 object stream yang berguna untuk mengakses sebuah file.
File outFile = new File ("sample1.data");
FileOutputStream outStream = new FileOutputStream ( outFile );

File inFile = new File ("sample1.data");
FileInputStream inStream = new FileInputStream ( inFile );

FileOutputStream dan DataOutputStream digunakan untuk mengeluarkan primitive data values. Sedangkan FileInputStream dan DataInputStream digunakan untuk memasukkan primitive data values.

File outFile = new File ("sample1.data");
FileOutputStream outFileStream = new FileOutputStream ( outFile );
DataOutputStream outDataStream = new DataOutputStream ( outFileStream );

outDataStream berguna untuk menuliskan primitive data
outFileStream berguna untuk mengubah primitive data menjadi rangkaian bytes
outFile berguna untuk menuliskan bytenya

Setelah kita menuliskan dan mengatur outDataStream, kita bisa menuliskan nilai primitive data ke dalam stream di main nya.
outDataStream.writeInt(987654321);
outDataStream.writeLong(111111111);
outDataStream.close();

Object dari DataInputStream adalah :
File inFile = new File ("sample1.data");
FileInputStream inFileStream = new FileInputStream ( inFile );
DataInputStream inDataStream = new DataInputStream ( inFileStream );

inFile berguna untuk membaca bytes
inFileStream berguna untuk mengubah rangkaian bytes menjadi primitive data
inDataStream berguna untuk membaca primitive data

Setelah kita mengatur DataInputStream nya, kita membuat data yang sudah dimasukkan dapat diperlihatkan
System.out.println(inDataStream.readInt());
System.out.println(inDataStream.readLong());
inDataStream.close();

Dan yang perlu diingat adalah primitive data yang dioperasikan dalam output dan input harus sama dan benar.

Kita juga bisa menyimpan primitive data sebagai data biner dalam sebuah file, kita dapat mengubah dan menyimpannya sebagai string yang memungkinkan kita untuk melihat isi file dengan banyak text file editor.

Untuk mengeluarkan data sebagai string suatu file, kita menggunakan object PrintWriter.
File outFile = new File ("sample3.data");
FileOutputStream outFileStream = new FileOutputStream ( outFile );
PrintWriter outStream = new PrintWriter ( outFileStream );

Sedangkan untuk memasukkan data dari sebuah text file, kita menggunakan kelas FileReader dan BufferedReader. Dan kita bisa menggunakan class Scanner untuk memasukkan text file nya.
File inFile = new File ("sample3.data");
FileInputStream inFileStream = new FileInputStream ( inFile );
BufferedReader bufReader = new BufferedReader ( fileReader );

Kita dapat menggunakan ObjectOutputStream dan ObjectInputStream untuk menyimpan dan mengisi object dari sebuah file.
Dan untuk menyimpan object dari sebuah class yang diberikan, class nya harus dideclare dengan implements Serializable.
class Person implements Serializable {
......
}

Untuk menyimpan sebuah object :
File outFile = new File ("objects.data");
FileOutputStream outFileStream = new FileOutputStream ( outFile );
ObjectOutputStream outObjectStream = new ObjectOutputStream ( outFileStream );
Person person = new Person ("Mr. Espresso", 20, 'M');
outObjectStream.writeObject ( person );

Sedangkan untuk membaca object :
File inFile = new File ("objects.data");
FileInputStream inFileStream = new FileInputStream ( inFile );
ObjectInputStream inObjectStream = new ObjectInputStream ( inFileStream );
Person person = ( Person ) inObjectStream.readObject(); ----> harus ditulis cast untuk mendapatkan tipe object yang benar.

Menyimpan dan membaca sebuah object dapat dilakukan dalam array.
Person[] people = new Person[ N ];
.........
outObjectStream.writeObject ( people );
................
Person[] people = ( Person[] ) inObjectStream.readObject();

Monday, May 21, 2007

aRRaY

Array adalah kumpulan dari data values. Di Java, array adalah sebuah index dari kumpulan dari data values yang bertipe sama.

Array declaration :
<>[] <>
Contoh : double[] rainfall;
rainfall = new double[12]; ---> array creation

<> <>[]
Contoh : double rainfall[];
rainfall = new double[12]; ---> array creation : <> = new <>[]

Sama dengan data type yang lainnya, sebuah array dapat dideclare dan diinitialisasikan dalam satu waktu.

Di Java, dalam penambahan array dari data type primitive, kita dapat mendeclare array of object. Sebuah array of primitive data adalah sebuah alat yg powerful, tetapi sebuah array of object lebih powerful. Penggunaan dari array of object memungkinkan kita untuk memperagakan aplikasi lebih bersih dan dengan logika.

Contoh array of object :
Person latte;

latte = new Person();
latte.setName(“Mr. Latte”);
latte.setAge(20);

System.out.println(“Name: “ + latte.getName());
System.out.println(“Age: “ + latte.getAge());

2-D Array declaration :
1. <>[][] <>
2. <> <>[][]

Array creation untuk 2-D array : <> = new <> [ <> ][ <> ]

Contoh 2-D array :
double[][] payScaleTable;
payScaleTable = new double[4][5];


payScaleTable = new double[4][5] bisa juga ditulis :
payScaleTable = new double[4][];
payScaleTable[0] = new double[5];
payScaleTable[1] = new double[5];
payScaleTable[2] = new double[5];
payScaleTable[3] = new double[5];

Package dari java.util terdiri dari beberapa class untuk mengatur kumpulan object. Dan ada class yang disebut dengan Java Collection Framework ( JCF ). JCF ini terdiri dari kumpulan object untuk mengatur, mendata, atau memetakan.

JCF terdiri dari List yang mendukung method yang terdiri dari kumpulan object dalam daftar linear. L = (lo, l1, l2, …, ln).
Dan untuk menggunakan sebuah list dalam sebuah program, kita harus membuat instance dari sebuah class yang mengimplementasikan List, dan 2 class yang berguna untuk mengimplementasikan List adalah ArrayList ( sebuah array mengatur data ) dan LinkedList (menggunakan sebuah teknik yg dinamakan linked-node representation).

Sunday, May 13, 2007

chaRacTErS anD StRInGs

Untuk mengekspresikan single character di Java menggunakan char. Character ASCII ( American Standard Code for Information Interchange ) adalah salah satu coding yg dipakai secara luas di dunia yg mampu menampung 1 byte dengan 8 bits.

Karena ASCII hanya bisa mengenali karakter dengan bahasa Inggris, maka untuk mempresentasikan menggunakan bahasa lain menggunakan Unicode yang memiliki 2 byte.

Misalnya:
char ch1 = 'X';

System.out.println(ch1); ------> X
System.out.println((int) ch1); ------> 88
System.out.println((char) 88);-------> X

Instance dari class String digunakan untuk mempresentasikan String di Java. Contoh : String color = "Blue";
Dan di Java, String itu bersifat immutable ( tetap / tidak bisa diubah ).
Untuk mengakses karakter individu dalam sebuah string menggunakan charAt method.

equals() method digunakan untuk mengevaluasi isi dari 2 object string untuk memustuskan apakah diantara keduanya sama atau tidak.

class StringTokenizer ( dari package Java.util ) berguna untuk memisahkan kalimat menjadi beberapa kata.

Regular expression berfungsi untuk menampilkan angka atau huruf yang ingin ditentukan. Jenis regular expression :
1. [] ---> choice
2. * ----> zero / more times
3. + ----> one / times
4. ^ ----> negation
5. hyphen - ----> range
6. () and | ----> range of choice untuk multiple characters

replaceAll() method
digunakan untuk menggantikan semua isi dari regular expression dgn string yang mau menggantikannya.

Memanipulasi isi dari String, seperti mengganti sebuah karakter, menambahkan sebuah string dengan string lainnya, menghapus beberapa string, dan lainnya dapat menggunakan StringBuffer class.



Monday, May 7, 2007

neW exPerienCE witH nEtbeAnS 5.5

Pada topik ini, kita diajari tentang bagaimana cara menggunakan netbeans 5.5 untuk membuat program Java.

Jadi, di dalam netbeans ini kita semakin mudah dalam membuat program Java. Kita bisa langsung menggunakan encapsulation fields untuk memasukkan encapsulation pada program yang kita buat tanpa harus mengetiknya satu per satu.

Di dalam netbeans, kita bisa langsung mencompile dan me-run program yang sudah kita buat. Jadi, kita bisa langsung mengetahui hasilnya ataupun jika ada error atau kesalahan pada program itu.

Di netbeans, kita juga bisa langsung membuat banyak class untuk keperluan program yang kita buat.

Jadi, netbeans ini sangat membantu kita dalam membuat program Java dengan lebih menghemat waktu.

Tuesday, April 17, 2007

eXCepTIOn AnD assERTioN

Di pertemuan kali ini, yang dibahas adalah bagaimana cara mengatasi error atau kesalahan yang tidak kita ketahui sebelumnya. Error ini terkadang bisa kita lihat jika ada error pada program Windows, yang biasanya akan memperlihatkan kotak dialog error dgn menampilkan send error report atau don't send.

Java memiliki sebuah exception sehingga error - error bisa dihindari. Karena di program tsb, ada 3 cara exception yaitu membiarkannya, mengatasinya ketika error itu terjadi, dan mengatasinya di tempat lain di program yg sedang dijalankan.

Di Java, kita bisa menggunakan statement try - catch untuk menghindari error yang mungkin bisa terjadi. Ada 2 method yang bisa dipanggil untuk mendapatkan exception yaitu getMessage dan printStackTrace.

Ada 2 tipe exception yaitu checked exception (diperiksa ketika mengcompilenya) dan unchecked exception (diperiksa ketika menjalankannya).

Assert statement : assert <>; di mana <> memperlihatkan kondisi benar jika kode dijalankan dengan benar. Dan jika kode yang dijalankan salah, maka menggunakan AssertionError ( subclass dari Error ).

Untuk menjalankan program Assertion ini, kita menggunakan java -ea <>. Jika -ea ini tidak tersedia, maka program akan diexecute tanpa assertion.





Friday, April 13, 2007

sELecTiON, LooPInG, anD, DRawING

Minggu kelima ini banyak memberitahu kita tentang penggunaan if - else, switch, break, penggunaan boolean, bagaimana cara menggambar graphic dgn menggunakan java.awt.*


Operator boolean
itu mengambil nilai boolean sebagai operandnya dan mengembalikannya ke dalam nilai boolean tersebut. Ada 3 operator dari boolean, yaitu and ( && ), or ( || ), dan not ( ! ). Hasil dari operasi boolean adalah true atau false. Kita juga bisa mendeclare variable dgn tipe data boolean.

Ada beberapa operatinal operators yang biasanya digunakan dalam selection ini, seperti <, <=, ==, !=, >, >=.

Jika kita ingin menggunakan operasi if - else dgn menggunakan operator boolean, cara penulisannya adalah
if( <> ){
<>
}
else {
<>
}

Penggunaan switch tanpa statement break seperti :

switch(N){
case 1: x = 10;
case 2: x = 20;
}
Jika pada case 1, kita sudah mendapatkan nilai x yg benar, maka hasilnya adalah 20. Karena tidak ada break, sehingga operasinya akan diteruskan sampai terakhir.

Kecuali jika ada break, maka kita langsung mendapatkan nilai 10.
switch(N){
case1: x = 10;
break;
case2: x = 20;
break;
}

Ada juga penggunaan switch dgn menggunakan default.
switch(N){
case1: x = 10;
break;
case2: x = 20;
break;
default: System.out.print("Input error>");
break;
}

Jadi, jika user memasukkan input di luar input yg telah dimasukkan, maka program di atas langsung menampilkan pesan "Input Error".

Chapter 5 ini juga menjelaskan bagaimana jika kita ingin menggambar sesuatu. Dan ada 4 class standard yg dapat digunakan, seperti :
- java.awt.Graphics
- java.awt.Color
- java.awt.Point
- java.awt.Dimension

Dan pada pertemuan kali ini, tiap kelompok juga mencoba membuat program yg menampilkan bilangan ganjil, genap, dan prima. Kemudian saya mencoba untuk membuatnya sendiri. Sebagian besar sudah benar, namun ada juga kesalahan2 yg saya buat di program tersebut. Semoga di kemudian hari saya bisa meningkatkan kemampuan saya dalam membuat program dgn menggunakan Java ini.



Monday, April 9, 2007

deFiNiNG yOUr OwN CLaSS

Kebetulan di presentasi ini, kelompok saya yg presentasi.

di presentasi ini memberitahukan bagaimana cara kita mendefine kelas sendiri karena kadang2 kebutuhan kita dalam programming java ini tidak terpenuhi jadi kita perlu untuk mendefine class sendiri.

Kita juga belajar ttg multiple instances, jadi sebuah class memiliki lebih dari 1 instance. Saya juga mengetahui bagaimana cara mengcompile file name dgn tipe java secara langsung.

Karena di pelajaran ini juga mempelajari bagaimana satu class memiliki banyak object di mana objectnya memiliki main. Jadi class tdk memiliki main sehingga harus mengcompile class maupun objectnya dan me - run objectnya.

Saya juga belajar ttg cara mendeclare data member, method, dan constructor.

Dan modifier dalam data member, method, maupun constructor ada 4 yaitu public, private, protected, dan default. Default tdk bnyk dipakai dlm java sedangkan protected hampir sama dgn public. Private tdk bisa diturunkan ke anak2nya.

Dengan adanya constructor maka semua yg ada di dalam constructor akan dijalankan semuanya. Constructor terdiri dari modifier, class name, dan parameter.

Argument sama dgn parameter. Parameter memiliki class yg mendefine dia, sedangkan argument berupa numeric atau string yg merupakan isi dari parameter.

Penggunaan this ini untuk memasukkan input dari classnya. Jadi kalo tdk menggunakan this, bisa error.

Thursday, March 29, 2007

NumERicAL dATa

Sesuai dgn namanya, saya belajar ttg cara - cara menuliskan nomor di Java. Ada aturan - aturan tertentu jika kita ingin menulis nomor - nomor, seperti integer, float, double, long, short, dan byte. Dan di topik ini, saya juga mengetahui hasil - hasil yg didapatkan.

Di sini, saya juga diajarkan ttg beberapa tanda operasi aritmatikanya, dan juga expressionnya ( cara menuliskan ) serta hasil yg didapat jika dipasangkan dgn variabel tertentu.

Di samping itu, ada juga precedence rules, di mana dalam perhitungan aritmatika harus mendahulukan tanda yg pangkatnya lebih tinggi. Jika x + 3 * y, maka yg dikerjakan terlebih dulu adalah 3 * y kemudian ditambahkan dgn x.

Ada juga tipe penulisan secara implisit dan eksplisit.
Contoh dari eksplisit adalah ( float ) x / 3, jadi jenis nomornya sudah ditentukan terlebih dulu sblm perhitungan.
Sedangkan dalam implisit, hitung dulu baru kemudian diubah sesuai dgn jenis nomornya. Contoh : double x = 3 + a. Jadi, hitung dulu 3 + a, baru diubah menjadi double.

Selain itu, saya juga diajari tentang Gregorian Calendar yg berguna untuk membuat kalendar unix yg merupakan tugas kelompok.

Kemudian juga dijelaskan ttg wrapper class yg berguna untuk mengubah string menjadi nilai numerical, dgn menggunakan parse( class ).

Friday, March 23, 2007

GeTTiNG STarTeD wiTH jaVa ......

Di pelajaran OOP kali ini, hal pertama yg saya pelajari adalah 3 langkah yg harus dilakukan untuk memulai program Java, yaitu :
1. mendeklarasikan nama untuk menentukan object.
2. membuat object yg sudah dideklarasikan.
3. menggunakan object tersebut untuk mengirimkan message.

Ternyata, object itu memiliki 3 hal penting yaitu object name ( nama dari object yang sudah dibuat ), class name ( nama dari instance object tersebut ), dan argument ( argument yg dipakai di class name ).

Java juga memiliki 3 element penting yaitu :
a. comments ( yg biasanya dilambangkan dgn /* dan diakhiri dgn */ ),
b. import statement ( contoh : import javax.swing ),
c. class declaration.

Sedangkan element dari deklarasi method adalah :
- modifier
- return type
- method name
- parameter

4 standard classes adalah : JOptionPane, String, Date, dan SimpleDateFormat.

Setelah belajar materi ini, dgn dibagi menjadi beberapa kelompok, saya dan teman kelompok saya mendapat tugas untuk membuat program yang bisa mengganti nama lengkap seseorang menjadi inisial nama dgn menampilkannya dalam kotak dialog.
Kelompok saya blm bisa menyelesaikan program tsb, kelompok saya baru menyelesaikan membuat kotak dialognya.
Jadi, saya harus mulai belajar banyak di Java ini karena menurut saya sebenarnya pelajaran ini bisa menjadi pelajaran yg menyenangkan.

( ^___________________^ )



Monday, March 19, 2007

inTRodUCtioN tO OOP

pada presentasi kelompok 1 banyak membahas ttg introduction to OOP.

Hal pertama yg harus kita ketahui adalah cara membedakan class dan object.
Class adalah pencetak, sedangkan object adalah hsl dari cetakan tsb di mana object jg bisa disebut instance.
Untuk menuliskan class dan object ini menggunakan bahasa pemrogramman yg disebut jg UML ( Unified Modelling Language ).

Selain itu, kita juga belajar mengenai message dan method.
Message itu adalah pesan atau instruksi yang nantinya akan dilakukan oleh class maupun object tsb.
Dan class atau pun object juga harus disesuaikan dgn method sehingga dpt menghandle message yg diterima.
Method itu dibagi menjadi 2, yaitu class method ( method yg dimiliki class ) dan instance method ( method yg dimiliki oleh instance/object ).
Dan nilai yang yg dimiliki oleh message disebut jg argument.

Namun, tdk semua method yg dimiliki oleh class jg hrs dimiliki oleh objectnya.

Kita juga diajari ttg data values yg merupakan atribut dari sebuah object.
Data values ini bisa bersifat variable ( dpt diubah ) atau constant ( tdk dpt diubah ).
Misalnya anjing memiliki 2 mata ( bernilai constant ) dan berat badan ( bernilai variable ).

Di OOP juga ada inheritance ( pewarisan ) yg dibagi menjadi 2, yaitu superclass ( ancestor/base class ) dan subclass ( descendant/derived class ). Dan di tiap superclass maupun subclass memiliki data values dan methods class.

Dan untuk mencetak semuanya itu, kita membutuhkan software engineering yg berguna dalam membangun, menguji, dan menjalankan program tsb.

Di mana program yg dihasilkan melalui beberapa langkah yg disebut jg software life cycle.
Keseluruhan langkah2nya adalah analysis, design, coding, testing, dan maintenance.

Analysis adalah tahap di mana kita menganalisis masalah dan menentukan solusi yg dpt dicapai utk menyelesaikan mslh tsb.
Design adl tahap untuk merancang program secara detail.
Coding adl tahap utk menimplementasikan design yg telah dibuat ke dlm program, seperti Java.
Testing adl tahap uk menjalankan program yg telah dihasilkan, apakah berhasil atau tdk.
* Apabila pd testing ini, pogram berhasil dijalankan maka dilanjutkan pada tahap maintenance.
* Jika program tdk berhasil dijalankan, maka dilanjutkan pada debugging yaitu tahap utk mengeliminasi kesalahan2 pada program.