Sunday, October 19, 2014

Tutorial 46 - Object Casting

Tutorial ini merupakan permintaan salah seorang yang mengikuti blog ini.

Dalam tutorial polymorphism, ada dua cara untuk declare subclass:
KucingSiam mykucing = new KucingSiam();

dan
Kucing mykucing = new KucingSiam();

Katakanlah kita ada tambah method lompat() pada subclass, iaitu, KucingSiam.

Maknanya, sekarang method yang ada adalah macam ni:
Kucing (superclass) -> makan()
KucingSiam (subclass) -> makan(), lompat()

Apabila kita guna superclass sebagai type (istilah sebenarnya ialah reference), kita hanya boleh guna method yang hanya ada pada superclass sahaja.

Dalam erti kata lain, class Kucing tak boleh guna method lompat().

Jadi, kalau kita nak jugak guna method pada subclass walaupun type yang kita guna adalah superclass, kita kena buat casting.
Kucing mykucing = new KucingSiam();
KucingSiam mykucing2 = (KucingSiam) mykucing;
mykucing2.lompat();

atau secara ringkasnya,
Kucing mykucing = new KucingSiam();
((KucingSiam) mykucing).lompat();



Itu sahaja. Sekian.

Monday, June 23, 2014

Tutorial 45 - Exception Handling

Sebelum kita masuk ke bab File I/O, ada satu benda kita kena ambik tahu dulu, iaitu Exception Handling.

Jadi, tutorial ni kita akan berkenal-kenalan dengan Exception.

Exception ni lebih kurang macam error yang berlaku sewaktu kita run program.

Exception handling pulak bermaksud macam mana kita nak handle exception tersebut.

Disebabkan kita guna Java, secara automatik dia dah handle exception, yay!

Kalau tak percaya, cuba run code ni:

bahagi kosong


Dalam matematik, kita tak boleh bahagi dengan kosong, kalau tak percaya pakai kalkulator.

Bila kita tulis code macam tu, secara automatik Java dah nampak silap, lalu dia pun bagitau:

Exception in thread "main" java.lang.ArithmeticException: / by zero


Sekarang baru kita tahu cara Java handle exception adalah dengan bagitau kita apa exception yang berlaku kemudian tutup program tersebut.

Tapi, boleh tak kalau kita sendiri yang nak handle exception?

Contoh la bila kita ada buat software lepas tu terjadi exception takkan nak tutup terus, ye tak? Dengan tak save bagai, bikin sakit hati je.

Jadi, sekarang kita akan handle exception sendiri, iaitu dengan menggunakan try...catch.

Code... code...:

try catch block


Dalam try kita letak code yang kita nak check, kemudian letak exception apa yang kita nak handle depan catch.

Dalam kes ni kita nak handle ArithmeticException(bahagi kosong), jadi kita letak:

catch (ArithmeticException e)


Kalau taktau exception apa yang akan keluar, kita tulis saja:

catch (Exception e)


dia akan handle semua exception.

Lepas dah tulis catch, kita tulis macam mana kita nak handle exception tersebut.

Contoh kat sini kita tulis "takleh bahagi kosong", kemudian tutup program.


KUIZ!!!

Kalau kita tukar

int a = 5 / 0;


kepada

int a = 5 / 1;


apa yang akan jadi?


Itu saja tutorial kali ni, sekian.

Thursday, June 12, 2014

Tutorial 44 - abstract

Tutorial sebelum ni kita ada class MakananKucing, kita ada class Whiskas.

Kita tau paket Whiskas warna ungu dan ada harga tertentu, maksudnya dia ada ciri-ciri yang spesifik.

Bila kita cakap makanan kucing, kadang-kadang kita tertanya-tanya, makanan kucing yang mana satu? Ada Whiskas, Friskies, tulang ayam tulang ikan pun boleh jadi makanan kucing.

Maksudnya makanan kucing ni terlalu umum.

Bila sesuatu benda terlalu umum, kita tak boleh nak tentukan ciri-ciri dia.

Whiskas --> RM 1.50, warna ungu
Makanan kucing --> ???, ???


Jadi, itulah tutorial kali ni iaitu abstract.

Cara nak buat class abstract senang saja, tambah je keyword abstract depan class, macam ni:

public abstract class MakananKucing


Bila kita letak abstract, Java takkan bagi kita guna class ni.

Kalau nak guna jugak, kita kena guna class yang extends class abstract ni, contoh Whiskas.

// yang ni akan bagi error
MakananKucing makanan = new MakananKucing();


MakananKucing makanan = new Whiskas(); // yang ni ok Whiskas makanan = new Whiskas(); // yang ni pun ok



Satu lagi kegunaan keyword abstract adalah untuk buat abstract method, sebelum ni abstract class.

Cara nak buat abstract method, tambah saje keyword abstract dekat method tu kemudian tambah semicolon(;) kat hujung, contoh:

public abstract String toString();


Method abstract bermaksud kita WAJIB tulis balik(overwrite) method tersebut dekat subclass(dalam kes ni Whiskas).

Coding penuh dua-dua class tu akan jadi macam ni:

abstract class MakananKucing


class Whiskas



Itu saja, sekian.

Tuesday, June 10, 2014

Tutorial 43 - Polymorphism (part 2)

Kita dah belajar parameter, inheritance, dan polymorphism.

Sekarang kita akan guna tiga-tiga konsep ni.

Tengok class Kucing ni:

class Kucing


Method makan() ada MakananKucing sebagai parameter.

Ni pulak class MakananKucing:

class MakananKucing


Tutorial ni kita akan tengok walaupun kita letak MakananKucing sebagai parameter, kita masih boleh letak subclass kepada MakananKucing untuk parameter tersebut.

Yang ni class Whiskas, subclass kepada MakananKucing sebab kita ada letak keyword extends:

class Whiskas extends MakananKucing


Kalau tak percaya, kita boleh test macam ni:

test polymorphic argument


Nampak kan?

Walaupun kita letak Whiskas untuk parameter MakananKucing, dia still boleh run, sebab Whiskas extends MakananKucing.


Sekian.

Monday, June 9, 2014

Tutorial 42 - Polymorphism

Katakanlah kita buat class KucingSiam dan KucingParsi, dan dua-dua class ni inherit(mewarisi) class Kucing:

class Kucing

class KucingSiam

class KucingParsi


Rujuk Tutorial Inheritance kalau tak paham.

Kalau kita nak guna class KucingSiam, kita akan buat macam ni kan:
KucingSiam kucingsaya = new KucingSiam();

Selain tu, kita boleh jugak tulis macam ni:
Kucing kucingsaya = new KucingSiam();

So, apa guna tulis macam tu?

Ok, katakanlah kita nak simpan semua kucing tu dalam satu array.

Kalau kita buat array macam ni:
KucingSiam[] kucingsaya = new KucingSiam[2];
kucingsaya[0] = new KucingSiam();
kucingsaya[1] = new KucingParsi(); // yang ni akan bagi error

kita hanya boleh letak KucingSiam saje, KucingParsi tak boleh.

Jadi, kita buat macam ni:
Kucing[] kucingsaya = new Kucing[2];
kucingsaya[0] = new KucingSiam();
kucingsaya[1] = new KucingParsi();

Sekarang kita cuba test array tersebut guna loop, macam ni:

test loop untuk polymorphism


dan kita akan nampak, bila dia jumpa KucingSiam, dia akan guna method dalam class KucingSiam, bila jumpa KucingParsi, dia guna method dalam class KucingParsi.

Dia berubah-ubah.

Itulah yang dinamakan polymorphism.

POLY(banyak)     MORPH(berubah-ubah)


Ingat Poligami, ingat Mighty Morphin Power Rangers.

gambar ustaz azhar and familygambar mighty morphin power rangers


Poligami - kawin banyak.

Power Rangers - bila diorang cakap "It's morphin time!", diorang pun bertukar jadi power rangers.


Sekian.

Saturday, June 7, 2014

Tutorial 41 - Inheritance

Katakanlah kita buat dua class untuk adik-beradik lelaki dan perempuan, macam ni:

class Daughter

class Son


Lepas dah siap semua, tiba-tiba kita rasa nak tukar dari emoticon
:)

ke
:D

Kita pun tukarlah satu-satu code tu.

Hmmm, macam leceh pulak kena tukar satu-satu. Yang ni takpe lagi untuk senyum saje, macam mana kalau nanti nak buat untuk makan, mandi, tidur pulak?


Jadi, kita gunalah konsep inheritance.

Sekarang kita buat class untuk ibu, macam ni:

class Mother


Untuk buat inheritance, kita tambah keyword extends kat class Daughter dan Son, macam ni:

class Daughter guna inheritance

class Son guna inheritance


Inheritance bermaksud warisan.

Contoh, kadang-kadang kita ada dengar orang cakap, "Eh, muka dia macam mak dia la!", maksudnya dia ada mewarisi sifat ibu dia.

Bila kita letak extends macam ni,
public class Daughter extends Mother

Java pun paham:
"Oh ok, class Daughter ni mewarisi class Mother"

lalu Java secara automatik letak sifat-sifat dari class Mother kat class Daughter.

Kalau perasan, kita tak letak apa-apa pun dalam class Daughter dan Son, tapi sebenarnya ada method senyum().

Kalau tak percaya, kita test class Daughter dan Son, kita tengok boleh tak diorang senyum, macam ni:

test class Daughter dan class Son


Oh, sebelum terlupa. Bila Daughter atau Son extends Mother, kita akan panggil Mother sebagai superclass, dan Daughter/Son sebagai subclass.

Mother    ---> superclass

Daughter ---> subclass
Son          ---> subclass



Sekian saja tutorial kali ini.

Kalau tengah belajar Java, bila orang tanya inheritance, cepat-cepat ingat extends!
inheritance: extends
inheritance: extends
inheritance: extends

Friday, June 6, 2014

Tutorial 40 - Composition

Sebelum-sebelum ni class yang kita buat ada instance variable, contoh macam ni:

class Date untuk simpan tarikh


Perhatikan kat sini,
private int day;
private int month;
private int year;

yang biasa kita letak int, double, String, dan lain-lain kan?

Apa kata kalau kita nak buat class 'Kawan', dalamnya ada simpan nama dan birthday, boleh tak?

Nama boleh disimpan sebagai String, tapi macam mana dengan birthday?

Jadi, itulah tutorial kali ni iaitu Composition (cara sebut: Kom Po Zi Syen).


Kita dah ada class 'Date' untuk simpan tarikh, dan kita akan guna class ni untuk simpan tarikh lahir.

Sekarang kita buat class 'Kawan', contoh macam ni:

class Kawan dengan penggunaan composition


Perhatikan yang ni,
private Date birthDay;

itulah yang dipanggil Composition.

Kita letak class sebagai instance variable.


Nak test class ni, kita boleh run macam ni:

class untuk test composition


Sekian, terima kasih.

Thursday, June 5, 2014

Tutorial 39 - toString()

Kita tengok balik code dari Tutorial 37.

Bila kita nak display time, kita akan tulis macam ni:

call class Time objek subuh


Katakanlah kita rasa malas pulak nak tulis .getTime() tu, kita nak tulis macam ni saje:
System.out.println(subuh);


Caranya tambah saja method toString(),

class Time ditambah method tostring


Kita boleh return apa-apa saja string, dan bila kita tulis,
System.out.println(subuh);
kita akan dapat string seperti dalam method toString() tersebut.

Dalam kes ni kita nak tulis sama macam method getTime(), jadi kita guna balik getTime(),
return getTime();



Itu saja, sekian.

Tutorial 38 - Constructor Overloading (part 2)

Tutorial ni adalah sambungan dari Tutorial 37.

Kalau perasan dalam class Time ada satu benda yang nampak leceh, setiap constructor tu kita kena tulis balik isi yang sama:

hour = h;
minute = m;
second = s;


Kalau macam ni takpe lagi ada tiga baris je, nanti macam mana kalau ada berpuluh-puluh baris? Naya dibuatnya.

Untuk selesaikan masalah ni kita akan guna keyword this, macam ni:

class Time selepas diringkaskan


Ingat lagi dari Tutorial 36?

Kat Tutorial 36 keyword this merujuk 'this class', ataupun 'class ini'.

Kan nama untuk constructor sama dengan nama class, jadi bila kita tulis this dengan kurungan,

this();


secara automatik dia akan panggil constructor.

Dekat sini kita tulis,

this(0, 0, 0);


maksudnya kita akan guna constructor yang ada tiga parameter, iaitu

public Time(int h, int m, int s)


dan h akan jadi 0, m jadi 0, s pun jadi 0.


Sekian. Kalau kurang faham, bukak dua-dua tutorial, Tutorial 37 dan 38, dan bandingkan.

Tutorial 37 - Constructor Overloading

Katakanlah kita buat satu class yang ada constructor, macam ni:

class Time yang asal


Dan untuk guna class Time, kita akan tulis macam ni:

main class yang asal untuk run class Time


Untuk guna class Time, Java akan paksa kita untuk letak tiga argument(contoh: 3, 45, 30), baru kita boleh guna class tersebut.

Tapi, macam mana kalau ada satu hari nanti kita jadi malas sikit, kita nak letak satu je argument ataupun takmau letak langsung! Dan kita masih nak guna class Time.

Jadi, itulah tujuan tutorial ini, iaitu dengan menggunakan constructor overloading. Istilah ni tak payah ingat pun takpe, saje kabor kot-kot nanti exam tanya.

Kat bawah ni adalah contoh penggunaan constructor overloading:

class Time dengan constructor overloading


Simple je kan?

Kita tambah saje constructor baru dengan parameter yang lain-lain.

Nak tau jadi ke tak, kita run ni:

main class untuk run class Time lepas tambah constructor overloading


dan akan dapat output:

03:45:30
02:30:00
20:00:00
00:00:00



Tutorial akan datang kita akan tengok macam mana nak ringkaskan lagi class Time ni.

Thursday, December 22, 2011

Tutorial 36 - public, private, this

Kalau perasan kat Latihan 1, kita ada guna keyword private untuk instance variable.

private ni keyword yang kita boleh guna untuk kawal penggunaan variable tu.

Contoh kalau kita nak tukar variable hour dalam ni:

set private variable from other class


dari class yang lain, contoh macam ni:

the other class


Kalau pakai Eclipse, nak compile pun tak boleh, dah bagitau awal-awal dah "The field is not visible".


Kalau la kita nak jugak tukar variable hour tu, kita boleh tukar dari private jadi public, macam ni:

change private to public


Maksudnya kat sini, bila private hanya method yang ada dalam class tu sahaja yang boleh guna, kalau dari class lain tak boleh.


Jadi, kenapa nak guna private?

Senang citer ambik contoh dari Latihan 1 je la, bila kita boleh tukar-tukar variable hour macam tu je, macam mana nak tau nombor untuk hour tu valid ke tak kan?

Bila kita buat jadi private, cuma method setHour() je yang boleh set nombor untuk variable hour, dan kat method setHour() la boleh kita cek dia valid ke tak.


Ok, itu serba sedikit pasal public dengan private.

Sekarang kita tengok keyword this pulak.

Contoh kalau kita nak buat macam ni:

this keyword in java


Nama instance variable dengan nama parameter tu sama.

Salah memang tak salah, tapi dia buat benda yang bukan kita nak la.

Bila kita tulis

hour = hour;


maksudnya kita masukkan hour ke dalam hour tu balik, bukannya hour yang kat luar tu.

Jadi, dia tak buat apa-apa la.

Kalau pakai Eclipse, kita boleh nampak dia highlight yang mana.


Kalau kita nak masukkan nombor dari parameter tu ke variable hour yang kat luar tu, kita guna keyword this, macam ni:

this.hour = hour;


Jadi, this.hour ni lah yang merujuk hour kat luar tu, maksudnya this class punya hour, bukan hour yang dalam method.

Kalau pakai Eclipse boleh nampak dia highlight yang mana.


Jadi, itu saja rasanya untuk tutorial ni, kalau konfius boleh tinggal komen atau contact kat email/facebook(twitter jarang bukak).

Friday, December 16, 2011

Latihan 1 - Buat Class Time (part 3)

Sekarang kita boleh cuba try test class yang kita baru buat ni:

test class time


Kat sini kita test guna class yang lain.

Kita buat objek tido, set-kan masa dia. Kemudian display guna println(). Hasilnya menepati kehendak kita:

Tido...
00:30:15
12:30:15 AM


Test untuk error:

tido.setTime(15, 1000, 500);


Hasilnya:

Tido...
15:00:00
3:00:00 PM


Nak set satu-satu pun boleh:

tido.setHour(18);
tido.setMinute(15);


Hasil:

Tido...
18:15:00
6:15:00 PM



Jadi, itu saja untuk latihan yang berasaskan object-oriented programming ni. Sekian.

Latihan 1 - Buat Class Time (part 2)

Ini salah satu cadangan jawapan untuk latihan ni:

java class time


Ok, walaupun nampak panjang tapi sebenarnya simple je.

Sekarang kita boleh nampak instance variable kita,

private int hour;
private int minute;
private int second;


Kemudian kita buat satu method untuk set setiap instance variable tu:

public void setTime(int h, int m, int s) {
     setHour(h);
     setMinute(m);
     setSecond(s);
}


Oh, nampaknya kat sini dia guna method lain pulak untuk set setiap instance variable. Setiap instance variable tu ada cara yang tersendiri untuk di-set-kan.

Jadi, bila kita guna method setTime(), dia akan cari setHour() untuk parameter h, setMinute() untuk parameter m, dan setSecond() untuk parameter s.

Kita tengok pulak method setHour():

public void setHour(int h) {
     if (h >= 0 && h <= 23)
          hour = h;
     else
          hour = 0;
}


Kat sini bila h dalam lingkungan 0 sampai 23, kita akan set instance variable hour jadi h, kalau tak kita set jadi 0.

Untuk method setMinute() dengan setSecond() lebih kurang sama, cuma lingkungan dia je yang berbeza:

public void setMinute(int m) {
     if (m >= 0 && m <= 59)
          minute = m;
     else
          minute = 0;
}


public void setSecond(int s) {
     if (s >= 0 && s <= 59)
          second = s;
     else
          second = 0;
}


Sekarang kita tengok method untuk lihat masa yang kita set, iaitu toMilitary() dengan toString().

Military time ni bermaksud masa dalam format sistem 24 jam, ini untuk info saja.

toString tu takde kaitan dengan istilah untuk sistem 12 jam, dia ada keistimewaannya yang tersendiri. Nanti kita akan tengok dalam tutorial yang akan datang.

Buat masa ni kita cuma kena tau method toString() ni untuk format dalam sistem 12 jam.

Kita tengok method toMilitary() dulu:

public String toMilitary() {
     return String.format("%02d:%02d:%02d", hour, minute, second);
}


Method ni nanti akan return data jenis string, maksudnya dia akan menghasilkan string yang kita tetapkan.

Kat sini kita akan return hour, minute, dan second dalam bentuk string, jadi macam 12:30:45 misalnya.

String.format() ni benda baru. Dia sama macam System.out.printf() tapi dia bukan terus display, dia cuma format-kan saja, belum diguna lagi.



Sekarang kita tengok pulak method toString(), untuk format sistem 12 jam, kat sini kita kena buat benda pelik sikit:

public String toString() {
     int h;
     String meridiem;

     if (hour == 0 || hour == 12)
          h = 12;
     else
          h = hour % 12;

     if (hour < 12)
          meridiem = "AM";
     else
          meridiem = "PM";

     return String.format("%d:%02d:%02d %s", h, minute, second, meridiem);
}


Kat dalam ni, kita akan declare variable h dan meridiem.

h untuk tukar nombor jadi sistem 12 jam, meridiem untuk tentukan masa tu AM atau PM.

if (hour == 0 || hour == 12)
     h = 12;
else
     h = hour % 12;


Kat sini kalau nilai hour 0 atau 12, kita letak 12, kalau tak kita letak baki bila hour bahagi 12.

Kita kena buat macam ni sebab mana wujud pukul 0.30 petang dalam sistem 12 jam kan?

Yang modulus tu pulak contoh kalau kita nak tukar jam 15.00(sistem 24 jam) jadi 3.00(sistem 12 jam). 15 bahagi 12 baki 3 kan?

if (hour < 12)
     meridiem = "AM";
else
     meridiem = "PM";


Kat sini kalau hour kurang daripada 12 maksudnya pagi lah kan? Jadi, kita letak AM, kalau tak kita letak PM.

Dan last sekali, kita return dalam bentuk string sama macam method toMilitary().


Oh, kalau nak lagi lawa boleh buat constructor untuk class ni.


Nak tengok class ni boleh jalan ke tak boleh tengok kat sini >>> Test Class Time

Latihan 1 - Buat Class Time (part 1)

Kali ni kita akan buat sikit latihan object-oriented programming(OOP) menggunakan class dan method.

Untuk latihan ni, kita akan buat class Time yang boleh menunjukkan masa dalam jam, minit, dan saat.

Sebelum kita start coding, kita kena tau dulu apa ciri-ciri class ni.

Class kita ni nanti akan ada instance variable untuk jam, minit, dan saat.

Method yang ada ialah method-method untuk set setiap instance variable tu, dengan method untuk tunjuk masa dalam format yang tertentu, contoh macam 9:00:45 AM.

Satu method untuk tunjuk dalam sistem 24 jam, satu lagi untuk sistem 12 jam.

Kita semua tau kat bumi ni jam ada dalam lingkungan 24, minit ada 60, dan saat ada 60 untuk menunjukkan masa.

Jadi, kita kena pastikan semua instance variable ni tak terkeluar daripada lingkungan tu.




Disebabkan ini latihan, boleh cuba-cuba sendiri dulu sebelum tengok cadangan jawapan.

Dah siap boleh tengok kat sini >>> Cadangan Jawapan

Thursday, December 8, 2011

Tutorial 35 - Banyak-banyak Parameter

Kali ni kita akan tengok macam mana nak buat method yang boleh ambik tak kira berapa banyak argument yang kita bagi.

Oh, sebelum tu nak cakap sikit pasal istilah argument dengan parameter ni.

Dua istilah ni macam nak sama tapi tak serupa.

Parameter ialah apa yang diperlukan oleh method.

Argument pulak ialah benda yang kita masukkan sebagai parameter.

Harap paham ye...


Sekarang balik ke topik asal, jadi kita terus tengok ke source code untuk tutorial ni:

vararg java parameter


Program kita ni nanti akan cari purata untuk nombor-nombor yang kita bagi.

Untuk proses-proses cari purata tu kita buat method luar untuk handle.

Method ni pulak taktau berapa banyak nombor kita nak bagi, 5 ke 10 ke 1000 ke.

Jadi, bila kita nak buat method yang boleh ambik berapa banyak argument, kita kena letak 3 dot selepas jenis parameter tu, contoh:

int...nombor


Untuk ambik bilangan nombor yang kita bagi, kita guna .length, contoh:

nombor.length


macam kat line 14 tu.

Proses-proses nak kira purata tu harap paham la ye... kita dah belajar kat tutorial yang lepas.

Kat main() method tu, kita bagi tak kisah berapa banyak pun nombor, dan output nanti akan dapatlah purata dia:

5.5



Jadi, itu saja untuk tutorial pendek ni.

Wednesday, December 7, 2011

Tutorial 34 - Buat Table Untuk Array 2D

Kali ni kita sambung sikit dari apa yang kita belajar sebelum ni, mengenai array dalam 2D.

Jadi, kita dah tau macam mana nak declare array dalam 2D.

Sekarang kita akan buat program untuk display array 2D dalam bentuk table.

Mula-mula kita declare dulu array:

declare 2d array


Disebabkan kita akan buat 2 table untuk array yang berbeza, maka kita akan guna konsep object-oriented.

Object-oriented ni yang guna class dengan method tu la, ayat je gempak.

Jadi, kita akan buat method display() kat luar main() untuk display array 2D dalam bentuk table.

display method for 2d array


Perhatikan yang kita letak 2 kurungan stapler dalam parameter, maksudnya method ni perlukan array 2D untuk digunakan.

Untuk buat dalam bentuk table, kita kena buat nested loop(maksudnya loop dalam loop).

Loop yang kat luar untuk loop-kan row, loop yang dalam untuk loop-kan column.

Kat sini kita guna for loop.

Sekarang kita tengok loop yang luar:

for (int row = 0; row < array.length; row++)


Jadi loop ni akan loop untuk row.

Untuk array 2D, bila kita tulis array.length maksudnya kita ambik panjang row array tu.

Sekarang tengok loop yang kat dalam pulak:

for (int column = 0; column < array[row].length; column++)


Loop ni akan loop untuk column.

Bila kita tulis array[row].length maksudnya kita ambik panjang untuk setiap row atau dalam bahasa lainnya, column.

Kemudian, kat dalam loop yang dalam, kita akan tulis

System.out.print(array[row][column] + "\t");


untuk paparkan nombor dalam setiap row tu dari kiri ke kanan.

\t tu maksudnya tab, untuk bagi ruang sikit.

Lepas kita dah paparkan nombor-nombor dalam row, kita akan buat line baru

System.out.println();


untuk paparkan nombor-nombor dalam row-row yang seterusnya.

Jadi, rupa program kita yang dah siap sepatutnya jadi macam ni:

full program display 2d array in table


dan hasilnya:

output 2d array table


Itu saja gamaknya untuk tutorial ni. Sekian.

Tuesday, December 6, 2011

Tutorial 33 - Array 2D

Tutorial kali ni kita akan tengok pulak macam mana nak menghasilkan array dalam 2D.

2D ni singkatan untuk dua dimensi, maksudnya dia ada paksi x dengan paksi y.

Contoh kalau kita nak buat table ke, koordinat ke...

Ok, kita terus tengok cara nak declare array dalam 2D, nanti explain panjang-panjang pening pulak.

declare 2d array java


Untuk declare array 2D, kita kena letak 2 pasang kurungan stapler, [][]. Sebelum ni kita guna sepasang, untuk 2D kita letak 2 pasang.

Kat sini kita guna cara nak declare array guna kurungan langsir untuk masukkan nombor terus ke dalam array.

Jadi, apa yang berlaku kat sini, setiap row(baris) akan dipisahkan dengan koma, dan setiap row tu sendiri ada column(lajur) yang ditutup dengan kurungan langsir yang lain.

Kiranya dia dah jadi macam filem Inception, dalam kurungan ada kurungan.


Kalau kita tulis sebaris macam contoh kat atas tu memang tak nampak, jadi kita tukar sikit kedudukannya jadi macam ni:

clearer 2d array java


Tak salah, Java memang tak kisah kalau kita letak code kita berterabur pun, janji kedudukan dia berada kat tempat sepatutnya.

Jadi, barulah kita nampak dengan jelas kat mana kedudukan setiap nombor tu dalam array bila kita tukar tempat dia.

Sekarang kita tengok macam mana nak guna salah satu nombor dalam array tu.

Katakanlah kita nak ambik nombor 90, kita tau nombor 90 ada kat row 1, column 3. Ingat, komputer start kira mula dari 0.

Jadi, apa yang kita kena letak sebagai indeks ialah:

contoh[row][column]


dan untuk nombor 90

contoh[1][3]


Tak percaya cuba print,

guna data dalam array


dan hasilnya macam yang kita jangkakan:

90


Jadi itu saja untuk tutorial ni. Sekian.

Monday, December 5, 2011

Tutorial 32 - Array Sebagai Parameter

Untuk tutorial kali ni kita akan belajar macam mana nak guna array sebagai parameter untuk method.

Ini source code-nya:

source code array sebagai parameter


Sekarang kita fokus kat sini:

int[] nombor = {1, 2, 3, 4, 5};
topup(nombor);


Ok, mula-mula kita akan buat satu array dengan nama nombor.

Kemudian kita akan panggil method topup() dan hantar array nombor dalam kurungan dia.

Bila sampai sini, program akan cari mana dia method topup() ni.

Oh, sini pun dia:

public static void topup(int[] x) {
     for (int i = 0; i < x.length; i++)
          x[i] += 5;
}


Perhatikan kan sini kita letak array sebagai parameter(ada kurungan stapler).

Jadi, apa yang method ni akan buat adalah dia akan tambah 5 untuk setiap nombor dalam array yang kita hantar guna increment.

Dah setel method topup(), dia akan pergi ke method main() balik dan akan sambung buat bahagian ni:

for (int array : nombor)
     System.out.println(array);


Kat sini kita print macam biasa untuk tengok nombor yang dah di-topup-kan, dan hasilnya:

6
7
8
9
10


Jadi, apa yang nak difokuskan dalam tutorial ni adalah apa yang nak ditulis untuk hantar array dengan apa yang nak ditulis untuk parameter method tu.

Waktu kita nak hantar, kita hanya tulis nama array tu sahaja, tak payah letak kurungan stapler.

Untuk parameter pulak barulah kita letak kurungan stapler.


Jadi, itu saja untuk tutorial kali ni. Praktis sikit benda ni. Kalau tak paham boleh tanya.

Sunday, December 4, 2011

Tutorial 31 - enhanced for Loop

Sekarang kita akan belajar for loop versi upgrade punya, iaitu enhanced for loop.

Ini source code untuk tutorial ni:

enhanced for loop


Mula-mula kita akan buat array dengan nama monyet.

Ini bahagian paling penting untuk tutorial ni:

for (int x : monyet)


enhanced for loop lebih kurang sama macam for loop yang biasa, yang lainnya cuma apa yang kita letak dalam kurungan tu.

for loop yang biasa perlukan 3 statement dalam kurungan kan?

Untuk enhanced for loop dia lain sikit.

Mula-mula kita tulis jenis array yang kita nak loop-kan, untuk program kita ni kita letak int.

Kemudian kita buat variable untuk rujukan, nak letak nama apa pun boleh. Untuk demo, kita letak x.

Lepas titik bertindih tu kita letak benda apa yang kita nak rujuk. Dalam kes ni, kita nak loop untuk semua elemen dalam array monyet, jadi kita letak monyet.

Jadi, apa yang berlaku nanti ialah kita akan loop untuk semua elemen dalam array monyet, tak kiralah berapa banyak yang ada.

Dan apabila kita run, kita akan dapat:

34
54
12
46
90


sebab untuk program ni kita hanya print saja setiap elemen tu berdasarkan rujukan yang bernama x.


Kalau nak, boleh jugak buat macam ni:

enhanced for loop sum of array


Dan bila kita run, hasilnya:

236


iaitu jumlah untuk semua nombor tu.

Jadi, itu saja untuk tutorial kali ni. Praktis sikit guna for loop yang baru ni.

Tutorial 30 - Kira Frequency

Untuk tutorial kali ni kita akan buat satu program yang akan kira berapa kali dadu dapat nombor antara 1 sampai 6.

Program kita nanti akan baling dadu sebanyak 1000 kali, kemudian dia akan kira nombor 1 dapat berapa kali, nombor 2 dapat berapa, bla bla bla... sampai nombor 6.

Ini source code untuk program yang dah siap:

count frequency in array


Mula-mula kita tengok code yang ni:

Random dadu = new Random();
int[] freq = new int[7];


Program ni akan main dengan dadu, jadi kita akan guna class Random.

Lepas tu, kita buat array nama freq untuk simpan frekuensi untuk setiap nombor antara 1 sampai 6.

Ok, sekarang kenapa kita buat panjang array kita 7?

Ini sebab ingat tak yang komputer ni suka mula kira dengan 0. Kita nak guna dadu, mana ada dadu pakai nombor 0 kan...

Bila kita buat array panjangnya 7 bermaksud kita ada array dengan indeks 0 sampai 6, dan kita hanya akan guna indeks 1 sampai 6 sebab ya la kan... dadu.

Sekarang kita tengok bahagian yang paling penting:

for (int i = 0; i < 1000; i++) {
     ++freq[1 + dadu.nextInt(6)];
}


Kat sini kita guna for loop untuk program baling dadu sebanyak 1000 kali.

dadu.nextInt(6) akan menghasilkan nombor rawak dalam lingkungan 0 sampai 5, jadi kita tambah satu, 1 + dadu.nextInt(6) untuk dapat nombor 1 sampai 6 sebab ya la... dadu.

Nombor rawak ni kita akan letak sebagai indeks untuk array freq yang akan kita increment-kan.

Jadi, nanti bila run, bila dapat nombor 3, freq[3] akan tambah satu... bila dapat nombor 6, freq[6] akan tambah satu... dan seterusnya sampai 1000 kali.

Kat sini mungkin keliru sikit, takpe nanti bila run program tu baru kita boleh nampak.

Sekarang kita tengok yang ni:

System.out.println("Nombor\tFrekuensi");

for (int i = 1; i < freq.length; i++) {
     System.out.println(i + "\t" + freq[i]);
}


Code yang ni untuk kita buat table macam yang kita buat kat tutorial yang lepas.

Kepala table kita bubuh Nombor untuk nombor dadu, dan Frekuensi untuk berapa kali nombor tu kena.

Kita guna for loop macam sebelum ni untuk menghasilkan table.

Loop ni akan bermula dari 1 sebab ya la kan... dadu.


Jadi, bila kita run kemungkinan akan dapat:

NomborFrekuensi
1168
2161
3162
4169
5165
6175


Kat sini barulah jelas kita nampak dadu tu kena nombor 1 sebanyak 168 kali, nombor 2 kena 161 kali, dan seterusnya.

Jadi, itu saja untuk tutorial ni. Sekian.

 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes | Hot Sonakshi Sinha, Car Price in India