3 struktur java 001

49
Bab 2: Struktur Pengaturcaraan dalam JAVA Rossilawati Sulaiman Jabatan Sains Komputer

Upload: madzani-nusa

Post on 25-Jun-2015

1.583 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: 3   Struktur Java 001

Bab 2:Struktur Pengaturcaraan

dalam JAVA

Rossilawati SulaimanJabatan Sains

Komputer

Page 2: 3   Struktur Java 001

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

Page 3: 3   Struktur Java 001

NyataNombor nyata dari jenis float mempunyai akhiran F, contoh: 3.14F

Tanpa akhiran F, ia dianggap sebagai berjenis doubleJenis data double merupakan jenis data lalai (default) dalam Java

**dalam C, jenis data defaultnya adalah berjenis float

Page 4: 3   Struktur Java 001

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

Page 5: 3   Struktur Java 001

Aksara**Sama seperti C

Menggunakan kata kunci charTanda kutip ‘’ menandakan satu aksaraTanda kutip “” menandakan satu rentetan

Page 6: 3   Struktur Java 001

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

Page 7: 3   Struktur Java 001

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)

Page 8: 3   Struktur Java 001

Pembolehubah dan Takrifan

Peraturannya 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

Page 9: 3   Struktur Java 001

Pengisytiharan Pembolehubah

**Seperti dalam CContoh: byte ruangStoran; int bilangan; char gred; long perbelanjaanKLIA; boolean tamat;

Page 10: 3   Struktur Java 001

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

Page 11: 3   Struktur Java 001

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

Page 12: 3   Struktur Java 001

Acu (Casting)Ada kalanya kita ingin menganggap nombor bernilai double sebagai integerContoh: double hasilBahagi = 20.997; int hasil = (int) hasilBahagi;

Nilai hasil adalah 20. Bermakna terdapat data yang akan hilang.

Page 13: 3   Struktur Java 001

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

Page 14: 3   Struktur Java 001

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)

Page 15: 3   Struktur Java 001

Komen

**Seperti dalam CKita boleh komen satu baris aturcara: gunakan //

Atau kita boleh komen satu blok aturcara dengan menggunakan /*…..*/

Page 16: 3   Struktur Java 001

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

Page 17: 3   Struktur Java 001

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

Page 18: 3   Struktur Java 001

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)

Page 19: 3   Struktur Java 001

Mantik

**Sama seperti dalam COperator asas: && : DAN || : ATAU ! : TAK

Page 20: 3   Struktur Java 001

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

Page 21: 3   Struktur Java 001

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.

Page 22: 3   Struktur Java 001

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

Page 23: 3   Struktur Java 001

Tatasusunan Sebagai Objek

Apabila 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]);

Page 24: 3   Struktur Java 001

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 disalin

bil : bilangan nilai yang disalin

Page 25: 3   Struktur Java 001

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

Page 26: 3   Struktur Java 001

System.arraycopy(nomGanjil, 1, nomPositif, 2, 3);

13579

102035760

13579

102030405060

Sebelum salin

Selepas salin

Page 27: 3   Struktur Java 001

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

Page 28: 3   Struktur Java 001

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

Page 29: 3   Struktur Java 001

Operasi Terhadap Rentetan

Menggabung Rentetan Menggunakan operator ‘+’

String Nama = “ITSim” + 2005;System.out.println(“Nama Cadangan ialah ”+Nama);

OUTPUT Nama Cadangan ialah ITSim2005

Page 30: 3   Struktur Java 001

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

Page 31: 3   Struktur Java 001

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

Page 32: 3   Struktur Java 001

STRUKTUR KAWALAN

STRUKTUR PEMILIHAN if-else switch-break

STRUKTUR PENGULANGAN while do-while for

Page 33: 3   Struktur Java 001

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(“*”);

Page 34: 3   Struktur Java 001

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;

}

Page 35: 3   Struktur Java 001

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

Page 36: 3   Struktur Java 001

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;

Page 37: 3   Struktur Java 001

Kelas Swing JOptionPane

Metod TujuanshowInputDialog() Memaparkan dialog untuk

mendapatkan inputmendapatkan input dari penggunaJOptionPane.showInputDialog(null,”mesej anda”)

showMessageDialog() Memaparkan maklumatMemaparkan maklumat kepada penggunaJOptionPane.showMessageDialog(null,”mesej anda”,tajuk kotak,jenis mesej)

showConfirmDialog() Memaparkan dialog untuk mendapatkan pengesahanpengesahan dari penggunaJOptionPane.showConfirmDialog(null,”mesej anda”, tajuk kotak,jenis mesej)

Page 38: 3   Struktur Java 001

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.

Page 39: 3   Struktur Java 001

OutputTajuk kotak

Mesej anda

Jenis mesej

Tajuk kotak

Mesej anda

Dari pembolehubah name

“Ross’ akan diumpuk Kepada pembolehubah name, berjenis string

Page 40: 3   Struktur Java 001

Contoh: Confirm Dialogs

JOptionPane.YES_NO_OPTION

JOptionPane.YES_NO_CANCEL_OPTION

JOptionPane.DEFAULT_OPTION

JOptionPane.OK_CANCEL_OPTION

Page 41: 3   Struktur Java 001

Contoh: Message Dialogs

JOptionPane.PLAIN_MESSAGE JOptionPane.INFORMATION_MESSAGE

JOptionPane.WARNING_MESSAGE

JOptionPane.ERROR_MESSAGE

JOptionPane.QUESTION_MESSAGE

Page 42: 3   Struktur Java 001

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

Page 43: 3   Struktur Java 001

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;

Page 44: 3   Struktur Java 001

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().

Page 45: 3   Struktur Java 001

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/Pe

mbaca.class

Page 46: 3   Struktur Java 001

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)

Page 47: 3   Struktur Java 001

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

Page 48: 3   Struktur Java 001

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

Page 49: 3   Struktur Java 001

i hear, i forgeti write, i rememberi do, i understand..

so.. just do it!

:-)