Post on 06-Jul-2015
Bab 2:Struktur Pengaturcaraan
dalam JAVA
Rossilawati SulaimanJabatan Sains Komputer
Jenis DataJava merupakan bahasa yang mementingkan jenis dataDalam C, saiz bagi data numerik (dalam bait) adalah bergantung kepada sistem pengoperasian. Saiz data bagi Java adalah piawai pada mana-mana Sistem pengoperasianTerdapat lapan jenis data primitif dalam Java: enam berjenis nombor:byte, short, int, long, float, double
Dua lagi berjenis:char, boolean
Terdapat 2 jenis data nyata iaitu float dan double
NyataNombor nyata dari jenis float mempunyai akhiran F, contoh: 3.14F
Tanpa akhiran F, ia dianggap sebagai berjenis double
Jenis data double merupakan jenis data lalai (default) dalam Java
**dalam C, jenis data defaultnya adalah berjenis float
NyataUntuk data berjenis double, akhiran D boleh digunakan, contoh: 3.14D
Limpah atas (overflow) terjadi bila terdapat ralat julatLimpah bawah (underflow) terjadi bila terdapat ralat masa larian cth: pembahagian dengan sifar
Aksara**Sama seperti C
Menggunakan kata kunci char
Tanda kutip ‘’ menandakan satu aksaraTanda kutip “” menandakan satu rentetan
BooleanJenis data boolean hanya bernilai true dan false.
Digunakan untuk menguji ungkapan mantikDalam bahasa C tidak ada jenis data ini. Selalunya 0 dan 1 (atau bukan sifar) digunakan bagi mewakili palsu dan benarDalam C++, jenis data bool digunakan
Boolean: contohboolean lapar;lapar = true;
while(lapar){System.out.println(“Beri Makan..”);lapar = false;
} lapar hanya bernilai true/false. Gelung while akan berhenti apabila nilai lapar
bernilai false. (nilai false diberikan, iaitu selepas makanan diberi)
Pembolehubah dan TakrifanPeraturannya sama seperti CBerikan nama-nama yang bermaknaKata simpanan Java tidak boleh digunakan, seperti: abstract, boolean, break, byte, case, catch, char,
class, const, continue, default, do, double, else, extends, final, finally, float, for, goto, if, implements, import, instanceof, int, interface, long, native, new, null, package, private, protected, public, return, short, static, super, switch, synchronized, this, throws, transient, try, void, volatile, while
Pengisytiharan Pembolehubah
**Seperti dalam CContoh: byte ruangStoran; int bilangan; char gred; long perbelanjaanKLIA; boolean tamat;
PemalarDalam C, #define digunakan bagi mentakrifkan pemalar bersama-sama nilainya. Contoh: #define loop 1000
Dalam Java, kita boleh mentakrifkan pemalar menggunakan sintaks: public static final nama_pembolehubah
Contoh: public static final PI = 3.142 public static final loop = 1000
Pertukaran Nilai Numerik
Java membenarkan operasi aritmetik dilakukan di antara operan yang berbeza jenisnya. Penilaian hasil operasi adalah seperti berikut:
Jika salah satu operan berjenis double, maka operan yang satu lagi ditukar kepada doubleSebaliknya, jika salah satu operan berjenis float, maka operan yang satu lagi ditukar kepada floatSebaliknya, jika salah satu operan berjenis long, maka operan yang satu lagi ditukar kepada long
** hukum yang sama berlaku dengan int, short dan byte
Acu (Casting)Ada kalanya kita ingin menganggap nombor bernilai double sebagai integer
Contoh: double hasilBahagi = 20.997; int hasil = (int) hasilBahagi;
Nilai hasil adalah 20. Bermakna terdapat data yang akan hilang.
Pembundaran
Dalam Java, kita boleh membundarkan suatu nombor nyata kepada integer terdekat, kita boleh menggunakan metod Math.round double markahPurata = 20.997; int markahBundar=(int)
Math.round(markahPurata);Nilai markahBundar ialah 21 selepas dibundarkan.Penggunaan acu (int) masih diperlukan kerana nilai yang dikembalikan oleh metod round berjenis long.Kita perlu tukarkan long kepada int, menggunakan acu
PembundaranJava membenarkan penukaran hasil suatu pembolehubah tanpa menggunakan proses acu mengikut jujukan berikut:
byte short int long float double char int**(dibaca: byte boleh ditukar kepada short
short boleh ditukar kepada int.. dll)
Komen
**Seperti dalam CKita boleh komen satu baris aturcara: gunakan //
Atau kita boleh komen satu blok aturcara dengan menggunakan /*…..*/
Penjanaan Dokomen Secara Automatik
Komen yang bermula dengan /** dan berakhir dengan */ akan menjana dokumentasi secara automatik.javadoc yang disediakan dalam java akan menggelintar fail sumber, dan apabila bertemu dengan /** ia akan menjana satu fail HTML bagi menghasilkan satu dokumentasi
Operator**Sama seperti dalam C
Operator asas: +, -, /, *, %
Umpukan majmuk juga dibenarkan seperti dalam C. Contoh: bil += 5; setara dengan bil = bil + 5;
Tokok dan susut (++ dan –-) Contoh:
int i= 1;int x = 5 - ++i; //nilai x menjadi 3
//nilai i menjadi 2
Hubungan**Sama seperti dalam C
Operator asas: ==, !=, <, >, <=, >=
Bezakan antara umpukan dan hubungan Umpukan: bil = 0; Hubungan: if(bil == 0)
Java akan memberi mesej ralat sintaks jika sekiranya kita silap menulis hubungan atau umpukan seperti: if(bil = 0)
Mantik
**Sama seperti dalam COperator asas: && : DAN || : ATAU ! : TAK
TatasusunanPengisytiharan Jenis_data[] nama_pembolehubah =
new jenis_data[saiz];
Contoh:int[] tts = new int[100]; ATAUATAU
int[] tts;tts = new int[100]; ATAUATAU
int tts[]= new int[100];
TatasusunanMemberi nilai kepada tatasusunan:int[] nilai = {2, 3, 4, 5};char[] abjad= {a, b, c, d};
Kita juga boleh memberi nilai awal kepada tatasusunan yang tidak ditakrifkan namanya:
new int[]{2, 3, 5, 7, 11};menyediakan satu tatasusunan baru dengannilai-nilai tersebut.
TatasusunanDigunakan sekiranya kita ingin menghantar suatu tatasusunan sebagai parameter ke suatu metod
cetakLimaPerdana(new int[] {2,3,5,7,11} );
int[] nomPerdana = {2,3,5,7,11};
cetakLimaPerdana(nomPerdana);
ATAUATAU
Tatasusunan Sebagai ObjekApabila ia dianggap sebagai objek, maka ia mempunyai atribut dan metodAtribut length Menentukan saiz suatu tatasusunan:
nama_tatasusunan.length
int nomPerdana={2, 3, 5, 7, 11};
for(int i=0; i<nomPerdana.length;i++)System.out.println(nomPerdana[i]);
Metod arraycopy() Menyalin kandungan tatasusunan kepada
tatasusunan yang lain. Sintaksnya: System.arraycopy(sumber,indekSumber,sasaran,
indekSasaran,bil);
sumber :nama tatasusunan yang hendak disalinindekSumber :permulaan kedudukan kandungan
tatasusunan yang akan di salin dari sumbersasaran :tatsusunan baru yang akan menyimpan
kandungan tatasusunan sumberindekSasaran :permulaan kedudukan pada tatasusunan
sasaran untuk menyimpan nilai yang disalinbil : bilangan nilai yang disalin
Metod arraycopy()
int[] nomGanjil ={1, 3, 5, 7, 9};int[] nomPositif={10, 20, 30, 40, 50, 60};System.arraycopy(nomGanjil, 1, nomPositif, 2, 3);for(int i=0; i<nomPositif.length; i++){
Sysem.out.println(“nomPositif[“ + i + “] selepas salinan:” +nomPositif[i]);
}
nomPositif[0] selepas salinan ialah 10nomPositif[1] selepas salinan ialah 20nomPositif[2] selepas salinan ialah 3nomPositif[3] selepas salinan ialah 5nomPositif[4] selepas salinan ialah 7nomPositif[5] selepas salinan ialah 60
OUTPUT
System.arraycopy(nomGanjil, 1, nomPositif, 2, 3);
13579
102035760
13579
102030405060
Sebelum salin
Selepas salin
RentetanBerbeza dengan C, Java mempunyai kelas String. Kita tidak perlu untuk isytihar pembolehubah berjenis char untuk menyimpan rentetan aksara.Pemalar berjenis String akan menyimpan aksara di antara tanda “ “, termasuk ruang kosong
Contoh: String kosong=“”; //suatu rentetan kosong String namaSaya = “Mohammad Muktasim”;
Operasi Terhadap Rentetan
Menggabung rentetan Menggunakan operator ‘+’
String tajuk = “OO”;String buku = “.Java”;String tajukBuku = tajuk + buku;System.out.println(tajukBuku);
OUTPUT OO.Java //tanpa ruang kosong
Operasi Terhadap Rentetan
Menggabung Rentetan Menggunakan operator ‘+’
String Nama = “ITSim” + 2005;System.out.println(“Nama Cadangan ialah ”+Nama);
OUTPUT Nama Cadangan ialah ITSim2005
Operasi Terhadap Rentetan
Subrentetan Mendapatkan sebahagian daripada rentetan yang lengkap Metod substring() digunakan
String senikata = “Puji dan syukur kepada Ilahi”;String s = senikata.substring(0,4);System.out.println(“Subrentetan bernilai ”+s);
Java mengira subrentetan bermula dari 0 hingga 40: kedudukan ‘P’4: kedudukan ‘i’
OUTPUT Subrentetan bernilai Puji
Operasi Terhadap Rentetan
Panjang rentetan Mendapatkan panjang suatu rentetan Metod length() digunakanString kataAluan = “Salam Sejahtera”;int panjang = kataAluan.length(); // panjang bernilai 15
Membanding rentetan Menguji sama ada dua rentetan mempunyai nilai yang sama Metod equals() digunakan
“salam”.equals(kataAluan); // bernilai false“Salam sejahtera”.equalIgnoreCase(kataAluan); // bernilai true
STRUKTUR KAWALAN
STRUKTUR PEMILIHAN if-else switch-break
STRUKTUR PENGULANGAN while do-while for
STRUKTUR PEMILIHANif-elseif (ungkapan)
kenyataan Contoh:if (markahPelajar >= 60)
System.out.println(“LULUS”); Sintaksnya sama dengan C, kecuali dalam Java,
ungkapan mesti bernilai boolean (true or false). Oleh itu kenyataan berikut tidak dibenarkan
dalam Java:int bilangan =10;if(bilangan)
System.out.print(“*”);
STRUKTUR PEMILIHANswitch-break**sintaksnya sama seperti C Hanya membenarkan jenis integer dan aksara:
byte, char, short, int atau longint pilihan =1;switch(pilihan){
case 1: … break;
case 2: .. break;
default: …break;
}
STRUKTUR PENGULANGAN
while, do-while dan for**sintaksnya sama seperti C Buatkan aturcara Java dengan
menggunakan while dan do-while bagi kod-pseudo di bawah:
lapar = benarSelagi lapar benar
paparkan “beri makanan”lapar = false
Tamat selagi
Kelas Swing JOptionPane
Kelas ini menyediakan banyak metod yang boleh memaparkan kotak dialog pada skrin dengan mudah
Ini termasuklah kotak input (input box), kotak mesej dialog(message dialog box) dan mesej pengesahan (confirmation)
Sintaks umum: JOptionPane.metod(parameter);
Perlu untuk import kelas : import javax.swing.JOptionPane;
Kelas Swing JOptionPane
Memaparkan dialog untuk mendapatkan pengesahanpengesahan dari penggunaJOptionPane.showConfirmDialog(null,”mesej anda”, tajuk kotak,jenis mesej)
showConfirmDialog()
Memaparkan dialog untuk mendapatkan inputmendapatkan input dari penggunaJOptionPane.showInputDialog(null,”mesej anda”)
showInputDialog()
Memaparkan maklumatMemaparkan maklumat kepada penggunaJOptionPane.showMessageDialog(null,”mesej anda”,tajuk kotak,jenis mesej)
Tujuan
showMessageDialog()
Metod
import javax.swing.JOptionPane;
public class greeting{public static void main(String[] args){
String namename = JOptionPane.showInputDialog (null,"what is your name?","Hello..",JOptionPane.QUESTION_MESSAGE);
JOptionPane.showMessageDialog(null, name name + "...Have a nice day!", "Greeting..",
JOptionPane.INFORMATION_MESSAGE);}
}
JOptionPane: Contoh
The code will ask for your name using the Input Dialog Box.It will then display your name and greet you.
OutputTajuk kotak
Mesej anda
Jenis mesej
Tajuk kotak
Mesej anda
Dari pembolehubah name
“Ross’ akan diumpuk Kepada pembolehubah name, berjenis string
Contoh: Confirm Dialogs
JOptionPane.YES_NO_OPTION
JOptionPane.YES_NO_CANCEL_OPTION
JOptionPane.DEFAULT_OPTION
JOptionPane.OK_CANCEL_OPTION
Contoh: Message Dialogs
JOptionPane.PLAIN_MESSAGE JOptionPane.INFORMATION_MESSAGE
JOptionPane.WARNING_MESSAGE
JOptionPane.ERROR_MESSAGE
JOptionPane.QUESTION_MESSAGE
Contoh lagi..import javax.swing.JOptionPane;
public class bodyMassSwing{public static void main(String[] args) {
int weight,height;double massIndex,weightNew,heightNew;
String inputName=JOptionPane.showInputDialog(null,"Your Name please");String kilo =JOptionPane.showInputDialog(null,"Weight in Kg?");weight = Integer.parseInt(kilo);
String meter =JOptionPane.showInputDialog(null,"Height in cm?");height = Integer.parseInt(meter);
heightNew = (double) (height*height)/10000;massIndex = (double) weight/heightNew;JOptionPane.showMessageDialog(null, inputName+ ", Your bodymass is: " +
Math.round(massIndex));System.exit(0);}
}
Kod di bawah akan mengira indeks berat badan anda
String inputName =JOptionPane.showInputDialog (null,"Your Name please");
String kilo =JOptionPane.showInputDialog (null,"Weight in Kg);
String meter =JOptionPane.showInputDialog (null,"Height in cm);
JOptionPane.showMessageDialog (null, inputName + ", Your bodymass is: " + Math.round(massIndex));
kilo dan meter berjenis string dan mesti di tukar ke bentuk integer:
weight = Integer.parseInt(kilo);
height = Integer.parseInt(meter);
Pengiraan Indeks berat badan:
heightNew = (double)(height*height)/10000;
massIndex = (double)height/heightNew;
Metod parserContoh: weight = Integer.parseInt(kilo);
Nilai yang berjenis String yang diumpuk dalam kilo akan ditukar menjadi integer dan disimpan dalam weight
Jenis parser yang lain: parseInt(), parseFloat(), parseLong(),
parseDouble, parseShort(), parseByte().
Kelas pembacaKelas ini disediakan sebagai satu alternatif untuk membaca inputmembaca input daripada pengguna.Kelas ini dapat membaca input dari pengguna dari jenis integer, aksara, nombor nyata ataupun rentetan aksaraKelas ini boleh didapati dari: http://www.ftsm/ukm.my/jabatan/tk/sufian/Pembaca.class
Kelas PembacaMuat turun fail kelas tersebut dan letakkannya pada direktori yang SAMA dengan dengan program.java andaEdit fail autoexec.bat anda supaya mengandungi arahan berikut:SET CLASSPATH = c:\jdk1.3\bin
-Salin Pembaca.class anda ke dalam direktori tersebut-**jdk1.3 (bergantung kepada versi jdk yang Gunakan dalam komputer anda)
Contohimport java.io.*;
class membacaInput{public static void main(String[] args)throws IOException{
int integer;Pembaca baca
baca = new Pembaca();
System.out.println("Masukkan satu Integer: ");integer= baca.bacaInt();
System.out.println("Integer yang dimasukkan: " + integer);}
}
Isytihar pembolehubah tika dari kelas Pembaca iaitu baca
Mencipta ahli kelas Pembaca
Membaca integer dengan metod bacaInt()
Paparkan integer
Pembolehubah integer akan menerima nilai integer yang dikembalikan oleh metod bacaInt()Sintaks panggilan metod:Nama_pembolehubah_tika.nama_metod
Kod berikut digunakan untuk memapar output
integer= baca.bacaInt();
System.out.println("Integer yang dimasukkan: " + integer);
Metod-metod lain yang ada dalam kelas pembaca:
bacaFloat(), bacaDouble(), bacaLong(), bacaShort(), bacaChar() dan bacaString()
i hear, i forgeti write, i rememberi do, i understand..
so.. just do it!
:-)