Thursday, 29 April 2010
Week 12
1. Implement class kita dengan ActionListener
2. Over ride method actionPerformed
3. Register button yang diinginkan
Dengan melakukan ke tiga cara diatas, maka button yang diregisterkan akan melakuan sesuatu sesuai dengan isi method ActionPerformed.
Langkah - langkah :
1. implement class pada ActionListener
public class Temporary implements ActionListener
2. Over ride method actionPerformed
public void actionPerformed(ActionEvent e) {
Object source = e.getSource();
if(source == button){
button.setText("I have been Clicked!");
}
else if (source == button2){
button2.setText("You have tried me");
}
}
Object source berfungsi untuk mengetahui sumber dari event yang terjadi.
3. Register button yang diinginkan
button.addActionListener(this);
button2.addActionListener(this);
Selain menggunakan Object source untuk mengetahui sumber event, bisa juga menggunakan inner class. Inner class adalah class yang berada dalam class atau nested class. Inner class memiliki semua instance dan method dari outter class nya. Inner class jg memiliki akses penuh pada instance yang di declare private.
Membuat inner class cukup mudah.
public class MyOutterClass{
private int x;
class MyInnerClass{
x = 5;
}
}
Pada contoh diata MyInnerClass memiliki hak akses pada int x meskipun x di declare private.
public class Temporary{
class Button1 implements ActionListener {
public void actionPerformed(ActionEvent e) {
button2.setText("You have tried me");
}
}
class Button implements ActionListener{
public void actionPerformed(ActionEvent e) {
button.setText("I have been clicked");
}
}
}
Diatas adalah bagaimana mengimplement ActionListener jika menggunakan inner class. yang perlu diperhatikan adalah saat inner class sudah mengimplement ActionListener maka outter class tidak perlu lagi mengimplement ActionListener.
button.addActionListener(new Button());
button2.addActionListener(new Button1());
Diatas adalah cara meregister button pada ActionListener. Jika tidak menggunakan inner class kita pass keyword this pada argument, jika menggukankan inner class yang kita pass pada argument adalah object dari inner class.
Thursday, 22 April 2010
OOP Week 11
public class MySimpleFrame extends JFrame{
public MySimpleFrame()
{
setVisible(true);
setSize(800, 650);
setTitle("MY SIMPLE FRAME");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JButton ok = new JButton();
JButton cancel = new JButton();
ok.setText("OK");
cancel.setText("CANCEL");
}
public static void main(String[] args) {
MySimpleFrame msf = new MySimpleFrame();
}
}
Untuk membuat GUI class yg ingin kita beri GUI kita extends JFrame. Dengan demikian class kita memiliki instance variable dan method dari class JFrame. Jika tidak mau memanfaatkan inheritance, bisa juga dengan membuat object dari JFrame dengan cara JFrame jframe = new JFrame(); (buat object seperti biasa.
Pada baris code diatas ada beberapa method yang digunakan:
1. setVisible(true) = untuk menampilkan frame
2. setTitle("My Simple Frame") = membuat title dengan judul "My Simple Frame"
3. setSize(800, 650) = menetukan ukuran frame dlm pixel
4. setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE) = jika user mengklik tombol x pada kanan atas akan langsung menutup frame dengan paksa
5. setLocationRelativeTo(null) = menampilkan frame di tengah layar
Ada pula object untuk membuat button yaitu JButton. Dengan membuat object dari JButton, kita dapat menampilkan button pada frame kita. Fungsi dari method setText() adalah untuk memberi nama dan menampilkan pada button dalam frame kita.
Pada JFrame juga ada pembagian layout.
* Flow layout = menyesuaikan dengan ukuran window
* Grid layout = programmer dapat menentukan berapa grid yang diinginkan
* Border layout = secara default dibagi menjadi 4 yaitu north, south, east, west
Friday, 16 April 2010
Week 10
Contoh:
private final static String[] months = {
"January", "February", "March", "April",
"May", "June", "July", "August",
"September", "October", "November", "December"};nah,, pada contoh diatas isi dari months sudah final alias tidak dapat diubah lagi. Biasanya kita memakai keyword final jika kita butuh variable yang tidak mau kita ubah2 lagi nilainya.Deklarasi Array
String[] colors = new String[4];
colors[0] = "Red";
colors[1] = "Green";
colors[2] = "Blue";
colors[3] = "Yellow";
Pada contoh diatas colors memiliki 4 index yang masing2 index berisi
red, green, blue, dan yellow.
Deklarasi Array 2D
int[][] m = new int[2][2];
m[0][0] = 0;
m[0][1] = 1;
m[1][0] = 0;
m[1][1] = 1;
Deklarasi array 2 dimensi tidak jauh beda dengan deklarasi array 1 dimensi.
Pada contoh diatas Array memiliki 2 x 2. Array diatas pada index 0,0
memiliki nilai o.
Pada indexke 0,1 memiliki nilai 1. Pada index ke 1,0 memiliki nilai 0
dan pada index ke 1,1 nilainya 1.
Pada minggu ini saya juga sempat belajar sendiri dari buku Head First Java.
Saya belajar 2 tempat dimana method dan object hidup.
1. Stack adalah tempat method tinggal pada waktu dipanggil
2. Heap adalah tempat dimana object hidup saat kita membuat object baru.
Ada juga yang namanya "Garbage Collector Heap".
Garbage Collector Heap bertugas untuk membuang object yang
sudah tidak dipakai lagi dan memberi ruang baru untuk memori.
Cara GCH menentukan mana object yang sudah
tidak dipakai lagi:
1. Jika object tersebut tidak lagi memiliki reference variable.
2. Jika reference variable diset ke null.
Thursday, 8 April 2010
Week 9
public class Main {
public static void main(String[] args) {
char ch = 'Z';
byte b = 65;
JOptionPane.showMessageDialog(null, "ASCII code of character " + ch + " is "+(int)ch);
JOptionPane.showMessageDialog(null, "Characters with ASCII code " + b + " is "+(char)b);
JOptionPane.showMessageDialog(null, ch + " is " + ((ch>b)?"bigger" : "smaller") + " than " + (char)b);
}
}
Pada baris kode diatas kita memprint kode ASCII dari 'Z'. Kita juga tahu bahwa bilangan ASCII 65 adalah 'a'. kemudian kita membandingkan mana yang lebih besar 'Z' atau 'a'.
((ch>b)?"bigger" : "smaller")
sama dengan
if (ch>b)
{
"bigger";
}
else
{
smaller;
}
String
String adalah gabungan dari char yang dianggap 1 kesatuan. Contoh: String name = "Kevin";
sama dengan char name = {"K", "e", "v", "i", "n"};
Beberapa perintah dalam penggunaan String.
charAt() = mereturn character yang berada pada index argument
.length = mereturn jumlah character dalam String
.toLowerCase = membuat String menjadi lower case
.toUpperCase = membuat String menjadi upper case
Substring
String name = "Jojon";
String nick = name.substring(0, 2);
System.out.pritnln(nick);
hasilnya adalah "Jo"
cara kerja substring adalah mengambil sebagian dari String sesuai dengan argument.
substring(0, 2) berarti mengambil String dari index ke 0 sampai index ke 1.
Thursday, 1 April 2010
Week 8
------------------------------------------------------------------------------------------------
age = Integer.parseInt(inputStr);
try
{
age = Integer.parseInt(inputStr);
}
catch(NumberFormatException e)
{
JOptionPane.showMessageDialog(null, "'"+inputStr+"' is invalid/n"+"Please enter digits only");
}
------------------------------------------------------------------------------------------------
Contoh diatas akan menjalankan terlebih dahulu statement yang berada di dalam try. Jika mengalami error maka statement yang berada di dalam catch akan dijalankan. Tapi jika statement dalam try tidak mengalami error maka statement dalam catch tidak dijalankan.
* catch(NumberFormatException e) digunakan untuk mendapat error dari kesalahan penggunaan integer.
* catch(ArrayIndexOutOfBoundsExceptions e) digunakan untuk menangkap error jika menggunakan array lebij dari yang tersedia.
Ada juga method yang berfungsi untuk menjelaskan masalah apa yang terjadi jika seandainya terjadi error.
* getMessage : hanya menjelaskan kesimpulan apa yang terjadi dengan error program.
* printStackTrace : menjelaskan secara detail apa yg terjadi pada error program. Biasanya digunakan oleh admin program atau pembuat program.
Propagation Exception--------------------------------------
Propagation berarti melempar tanggung jawab kepada method lain yang mampu menghandlenya.
contoh:
siswa xyx sakit -> Nyoto -> Bu Lita -> Dokter
Pada contoh diatas ada siswa xyz yang sakit lalu minta bantuan Nyoto untuk mengobati, tapi Nyoto tidak bisa mengobati maka Nyoto minta bantuan Bu Lita, tapi Bu Lita pun tidak bisa mengobati yang kemudian menelfon dokter.
Pada contoh diatas propagator adalah Nyoto dan Bu Lita. Sedangkan catcher adalah dokter.
Friday, 26 March 2010
Week 7
Friday, 19 March 2010
Week 6
Pada minggu ini cukup banyak materi yang diberikan Pak Alfon. Dan seperti biasa kelas Pak Alfon banyak di isi dengan koding. Berikut adalah materi yang dibawakan.
This
this digunakan agara tidak membuat terlalu banyak variable.
tanpa 'this' :
public void setLength(double l){
length = l;
}
diatas kita harus menuliskan sebuah variable baru yaitu l.
dengan 'this' :
public void setLength(double length){
this.length = length;
}
diatas kita dapat menggunakan length lagi tanpa harus membuat variable baru.
Static Initializers
Kelebihanya adalah dapat menghemat memori, karena object yang biasa kita buat memakan memori, dengan static kita tidak perlu membuat object baru yang berate lebih hemat dalam penggunaan memori.
Overloaded method
Ini berarti kita membuat method yang sama dengan argumen berbeda. Biasanya digunakan untuk memudahkan dalam inputan
public void setLength(double length){
this.length = length;
}
public void setLength(String length){
this.length = Double.parseDouble(length);
}
x++ dan ++x
Perbedaan z=x++ dengan z=++x adalah z=x++ berarti nilai x dimasukan dulu ke z baru x di ++. Sedangkan z=++x nilai yang diterima z adalah hasil dari x++.
Multiple constructors
Ini berarti kita memasukan 2 atau lebih constructor ke dalam sebuah class.
public Main(){
this(0., 0.);
}
public Main(double length){
this(length, length);
}
public Main(double length, double width){
setLength(length);
setWidth(width);
}
Pada minggu ini saya juga sempat belajar sendiri dari buku yang sama minggu lalu yaitu Schaum’s outlines yang saya pinjam dari perpustakaan UC. Minggu ini saya mempelajari tentang string dari buku ini dan akan saya tampilkan beberapa yang saya pelajari.
class TestStringClass {
public static void main(String[] args) {
String alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
System.out.println("This is string: " + alphabet);
System.out.println("This is the lenght: " + alphabet.length());
System.out.println("The charactert at index 4 is: " +alphabet.charAt(4));
System.out.println("The index of the character Z is: " + alphabet.indexOf('Z'));
System.out.println("Its lowercase version is: " + alphabet.toLowerCase());
System.out.println("This string is still: " + alphabet);
}
}
Pada baris koding diatas ada beberapa perintah unik string.
* Yang pertama adalah alphabet.length yang mengambil berapa panjang dari string yang telah dideklarasikan.
* Alphabet.charAt(4) mengambil string pada index ke 4.
* Alphabet.indexOf(‘Z’) mengambil index dari alphabet Z. alphabet.toLowerCase() berarti membuat String menjadi lower case.
class Replacing{
public static void main(String[] args){
String inventor = "Charles Babbage";
System.out.println(inventor);
System.out.println(inventor.replace('B', 'C'));
System.out.println(inventor.replace('a', 'c'));
System.out.println(inventor);
}
}
Perintah lain seperti replace berarti mengganti huruf dalam string dengan huruf baru yang kita inginkan. Contohnya:
System.out.println(inventor.replace('B', 'C'));
Baris ini berarti mengganti ‘B’ menjadi ‘C’.