data numerik

42
TA 113 – Bab 5 – Pg.1 Bab 5 : Asas Bahasa Java dan Data Numerik Untuk bab ini, pertimbangkan program aplikasi berikut: /* * Tajuk : Tambah.java * * Program mencari hasil tambah 2 integer. Antaramuka * pengguna menggunakan pakej javax.swing */ import javax.swing.*; public class Tambah { public static void main(String args[]) { JOptionPane objekUI = new JOptionPane(); String nilai; int n1, n2, jumlah; objekUI.showMessageDialog(null, "Selamat datang ke” + “\nProgram mencari\nhasil tambah 2 integer"); nilai = objekUI.showInputDialog( "Berikan integer pertama : "); n1 = Integer.parseInt(nilai); nilai = objekUI.showInputDialog( "Berikan integer kedua : "); n2 = Integer.parseInt(nilai); jumlah = n1 + n2; objekUI.showMessageDialog(null, “Hasil tambah " + n1 + " dan " + n2 + " ialah "

Upload: ming-hui-riko

Post on 13-Aug-2015

130 views

Category:

Documents


5 download

DESCRIPTION

Matematik

TRANSCRIPT

Page 1: Data Numerik

TA 113 – Bab 5 – Pg.1

Bab 5 : Asas Bahasa Java dan Data Numerik

Untuk bab ini, pertimbangkan program aplikasi berikut:

/* * Tajuk : Tambah.java * * Program mencari hasil tambah 2 integer. Antaramuka * pengguna menggunakan pakej javax.swing */

import javax.swing.*;

public class Tambah{ public static void main(String args[]) { JOptionPane objekUI = new JOptionPane(); String nilai; int n1, n2, jumlah;

objekUI.showMessageDialog(null, "Selamat datang ke” + “\nProgram mencari\nhasil tambah 2 integer");

nilai = objekUI.showInputDialog( "Berikan integer pertama : "); n1 = Integer.parseInt(nilai);

nilai = objekUI.showInputDialog( "Berikan integer kedua : "); n2 = Integer.parseInt(nilai);

jumlah = n1 + n2;

objekUI.showMessageDialog(null, “Hasil tambah " + n1 + " dan " + n2 + " ialah " + jumlah);

System.exit(0); }}

Page 2: Data Numerik

TA 113 – Bab 5 – Pg.2

Output:

Page 3: Data Numerik

TA 113 – Bab 5 – Pg.3

Pengecam (identifier)

Pengecam adalah suatu siri aksara Unicode yang digunakan untuk memberikan nama rujukan kepada unsur-unsur (seperti pembolehubah, method, kelas dsb) dalam suatu program.

Pengecam dibentuk mengikut peraturan berikut:1. Ia boleh terdiri dari aksara-aksara berikut sahaja :

- huruf, digit nombor, underscore ( _ ), dan simbol dollar ( $)2. Tidak dimulai dengan digit nombor 3. Tidak mengandungi ruang kosong (space bar)

Berikut beberapa contoh pengecam yang sah dan tidak sah

Pengecam sah Pengecam tak sahWelcome1 Welcome 1$nilai Nilai@value_nilai Input fieldbutton7 7button

Perhatian: Java adalah bahasa pengaturcaraan yang case-sensitive iaitu ia membezakan antara huruf besar dan huruf kecil. Oleh itu, pengecam-pengecam berikut adalah pengecam-pengecam yang berbeza:

HelloWorld helloWorldHelloWORLD HELLOWORLDHeLlOwOrLd

Katakunci (keyword)

Katakunci adalah perkataan khas yang mempunyai maksud dan penggunaan tertentu, yang telah ditetapkan oleh bahasa pengaturcaraan.

Berikut adalah katakunci-katakuci dalam bahasa pengatrucaraan Java.

Page 4: Data Numerik

TA 113 – Bab 5 – Pg.4

abstract double int strictfpboolean else interface superbreak extends long switchbyte final native synchronizedcase finally new thiscatch float package throwchar for private throwsclass goto protected transientconst if public trycontinue implements return voiddefault import short volatiledo instanceof static while

Selain dari katakunci-katakunci ini, di dalam bahasa pengaturcaraan Java, terdapat 3 lagi perkataan simpanan iaitu true, false dan null. Ketiga-tiga perkataan ini mempunyai maksud dan kegunaan tersendiri.

Peringatan: Perkataan katakunci dan katasimpanan tidak boleh digunakan sebagai pengecam di dalam program.

Pembolehubah (variable)

Pembolehubah ialah suatu item data yang diberikan nama dengan suatu pengecam.

Di dalam suatu program, pembolehubah digunakan untuk menyimpan nilai data. Nilai data yang disimpan di dalam pembolehubah boleh berubah-ubah mengikut keperluan, semasa program dilaksanakan. Untuk menggunakan pembolehubah di dalam program, kita perlu menyatakan nama dan juga jenisnya. Untuk memberitahu komputer berkenaan suatu pembolehubah yang kita ingin gunakan, kita boleh membuat pengisytiharan pembolehubah menggunakan format seperti berikut:

Page 5: Data Numerik

TA 113 – Bab 5 – Pg.5

<jenis> <nama pembolehubah>;

dimana <jenis> adalah jenis pembolehubah yang memberitahu komputer jenis nilai yang akan disimpan/dirujuk oleh pembolehubah tersebut. <nama pembolehubah> adalah pengecam yang digunakan untuk merujuk kepada pembolehubah tersebut.

Contoh pengisytiharan pembolehubah seperti:

int n1;

Selain dari jenis dan nama pembolehubah yang perlu diberikan secara langsung di dalam program, suatu pembolehubah juga mempunyai skop (scope).

Skop adalah kawasan dalam program di mana satu-satu pembolehubah itu boleh digunakan. Selain dari itu, skop juga menentukan bila komputer akan mencipta (create) dan memusnahkan (destroy) lokasi ingatan untuk suatu pembolehubah.

Skop suatu pembolehubah ditentukan secara tidak langsung oleh lokasai di mana pemgisytiharan pembolehubah itu dibuat di dalam program.

Jenis data pembolehubah

Setiap pembolehubah mesti mempunyai jenis data. Jenis data pembolehubah akan menentukan nilai yang boleh disimpan oleh pembolehubah dan operasi yang boleh dilaksanakan keatas pembolehubah tersebut.

Contohnya, pengisytiharan seperti

int n1;

Page 6: Data Numerik

TA 113 – Bab 5 – Pg.6

memberitahu pengompil/komputer bahawa n1 mempunyai jenis data integer (int). Oleh itu, n1 hanya boleh menyimpan nilai integer sahaja. Dan operasi-operasi arithmetik seperti tambah, tolak, darab dan bahagi boleh dilaksanakan keatas pembolehubah n1.

Dalam bahasa pengaturcaraan Java, ada dua kategori jenis data: primitif (primitive) dan rujukan (reference).

Janis data primitif

Suatu pembolehubah dengan jenis data primitif boleh menyimpan satu nilai sahaja dalam satu masa, dan nilai yang disimpan itu mestilah bersesuaian dengan saiz dan format jenis pembolehubah tersebut.

Berikut adalah senarai jenis data primitif, berserta katakuncinya, yang disokong oleh Java.

Katakunci

Penerangan Saiz/format

Kategori Integerbyte Integer satu bait 8-bit two's complementshort Integer pendek 16-bit two's complementint Integer biasa 32-bit two's complementlong Integer penjang 64-bit two's complement

Kategori nombor perpuluhan/apunganfloat Nombor perpuluhan

dengan ketepatan Single32-bit IEEE 754

double Nombor perpuluhan dengan ketepatan double

64-bit IEEE 754

Lain-lainchar Satu aksara 16-bit Aksara Unicodeboolean Nilai boolean

(benar/palsu)True or false

Literal nilai primitif

Page 7: Data Numerik

TA 113 – Bab 5 – Pg.7

Literal nilai primitif adalah perwakilan asas suatu nilai data primitif seperti integer, nombor perpuluhan atau aksara. Contohnya, 4 adalah suatu nilai literal integer (int).

Beberapa contoh lain literal nilai primitif

Literal Jenis data178 int8864L long37.266 double37.266D double87.363F float26.77e3 double'c' chartrue booleanflase boolean

Secara am: sebarang literal nombor yang tiada titik perpuluhan adalah

berjenis int. Untuk menukar jenisnya kepada long, kita boleh menambahkan horof 'l' atau 'L' dihujung nombor tersebut.

Sebarang literal nombor yang mempunyai titik perpuluhan adalah berjenis double. Untuk menukar jenisnya kepada single, kita boleh menambahkan huruf 'f' ata 'F' dihujung nombor tersebut.

Suatu nilai literal aksara adalah satu huruf/simbol Unicode yang dikurung dengan single-quote ( ‘ ).

Hanya true dan false sahaja merupakan literal jenis boolean.

Jenis data rujukan

Page 8: Data Numerik

TA 113 – Bab 5 – Pg.8

Unsur data yang nilainya adalah suatu alamat ingatan dipanggil jenis data rujukan.

Oleh itu, nilai suatu pembolehubah rujukan adalah rujukan kepada (alamat untuk) nilai atau set nilai yang diwakilkan oleh pembolehubah tersebut.

Antara jenis-jenis data rujukan seperti tatasusunan, kelas dan interface.

Suatu rujukan juga kadangkala dipanggil penunjuk (pointer) dalam bahasa pengaturcaraan lain.

Nama Pembolehubah

Program merujuk kepada nilai yang disimpan oleh pembolehubah dengan menggunakan nama pembolehubah tersebut.

Dalam bahasa pengaturcaraan Java, peraturan berikut mesti diapatuhi oleh suatu nama pembolehubah:1. Ia mesti adalah suatu pengecam yang sah.

2. Ia mestilah bukan dari katakunci, nilai boolean (true dan false), atau kata simpanan null.

3. Ia mestilah unik di dalam skopnya. Bagaimanapun, suatu pembolehubah boleh menggunakan nama pembolehubah lain yang digunakan dalam skop yang berbeza.

Mengikut convention:

rujukan

Suatu objek atau tatasusunan

Page 9: Data Numerik

TA 113 – Bab 5 – Pg.9

Suatu nama pembolehubah dimulakan dengan huruf kecil, dan nama kelas dimulakan dengan huruf besar. Jika nama pembolehubah terdiri lebih dari satu perkataan, perkataan tersebut dicantumkan, dan setiap perkataan selepas perkataan pertama dimulai dengan huruf besar, seperti sepertiIni.

Underscore boleh digunakan dimana-mana pada nama pembolehubah, tetapi mengikut convention ia digunakan hanya untuk memisahkan perkataan-perkataan yang membentuk nama konstan kerana nama konstan, mengikut convention, ditulis semunya dengan huruf besar.

Skop Pembolehubah

Skop pembolehubah ialah kawasan di dalam program dimana pembolehubah tersebut boleh dirujuki dengan namanya. Selain dari itu, skop juga menentukan bilamasa komputer mencipta dan memusnahkan ruang ingatan memori yang diperuntukkan kepada pembolehubah tersebut.

Skop pembolehubah ditentukan dari kedudukan pengisytiharan sesuatu pembolehubah dalam program. Bergantung kepada kedudukan tersebut, skop-skop yang mungkin adalah:

1. Pembolehubah member (member variable) Adalah pembolehubah yang menjadi ahli kepada kelas atau

objek (nilai data / data values). Ia di isytiharkan di dalam kelas tetapi di luar sebarang method

atau constructor. Skop pembolehubah ini merangkumi keseluruhan kelas.

2. Pembolehubah tempatan (local variable) Pembolehubah tempatan diisytiharkan di dalam suatu blok

pernyataan (kumpulan pernyataan yang dikurung dalam { dan } ).

Skop pembolehubah ini bermula dari baris ia diisytiharkan sehingga penghujung blok di mana ia disytiharkan.

Page 10: Data Numerik

TA 113 – Bab 5 – Pg.10

3. Parameter method (method parameter) Parameters adalah argument formal (formal arguments)

kepada method atau constructor dan digunakan untuk menerima dan menghantar nilai kedalam method atau constructor.

Skop parameter method adalah keseluruhan method tersebut.

4. Parameter pengendali-pengecualian (exception-handler parameter) Parameter ini adalah serupa dengan parameter method tetapi

arguments bukan dihantar kedalam method, sebaliknya dihantar kedalam pengendali-pengecualian (yang mengawal run-time errors).

Skop parameter pengendali-pengecualian adalah blok selepas pernyataan catch.

Pertimbangkan contoh kod berikut:

Page 11: Data Numerik

TA 113 – Bab 5 – Pg.11

if ( ……. ){ int j = 17; ………………….}System.out.println("Nilai j ialah " + j); // error!!

Baris terakhir akan memberikan ralat apabila dikompil, kerana skop pembolehubah tempatan j hanyalah di dalam blok pernyataan di antara { dan } sahaja. Selepas dari penutup blok tersebut ( selepas } ), j tidak lagi wujud.

Menilaiawalkan pembolehubah

Pembolehubah tempatan (local variables) dan pembolehubah member (member variables) boleh dinilaiawalkan dengan pernyataan umpukan semasa ia diisytiharkan.

Jenis data pembolehubah dan jenis data nilai awal mestilah setara.

Contoh penilaiawalan semasa pengisytiharan:

double d1 = 1.223e-2;JOptionPane objekUI = new JOptionPane();int n1 = 0, n2 = 0, jumlah = 0;

Parameter methods dan parameters pengendali-pengecualian tidak boleh dinilaiawalkan dengan cara ini. Nilai parameter (termasuk nilai awalnya) hanya boleh diberikan oleh pemanggil method / pengendali-pengecualian tersebut.

Page 12: Data Numerik

TA 113 – Bab 5 – Pg.12

Pembolehubah Final (final variable)

Kita boleh mengisytiharkan pembolehubah dengan sebarang skop sebagai final.

Nilai pembolehubah final tidak boleh diubah selepas ia dinilai awalkan. (Dalam sesetengah bahasa pengaturcaraan pembolehubah seperti ini di panggil constant).

Untuk mengisytihar suatu pembolehubah final, hanya perlu tambahkan katakunci final di hadapan pengisyitharan pembolehubah yang biasa:

Contoh:

final int aFinalVar = 0;

Pernyataan ini mengisytiharkan pembolehubah final aFinalVar sebagai berjenis int, dan seterusnya menilaiwalkannya dengan nilai 0. Sebarang percubaan untuk mengubah nilai pembolehubah aFinalVar selepas ini akan memberikan ralat (error).

Bagi pembolehubah tempatan final (final local variable), kita boleh asingkan bahagian penilai-awalan dan bahagian pengisytiharan pembolehubah final seperti berikut.

final int blankfinal;…………blankfinal = 0;

Pembolehubah final tempatan yang telah diisytiharkan, tetapi belum dinilaiawalkan dipanggil blank final.

Sugguhpun begitu, sebaik sahaja suatu pembolehubah blank final diberikan nilai awal, nilainya tidak lagi boleh diubah-ubah. Sebarang percubaan untuk mengubah nilainya selepas ia dinilaiwalkan akan menghasilkan ralat.

Page 13: Data Numerik

TA 113 – Bab 5 – Pg.13

Operator

Operator melaksanakan suatu tindakan ke atas satu, dua atau tiga operand. Operator yang memerlukan satu operand dipanggil operator unary, operator yang memerlukan dua operand dipanggil operator binary dan operator yang memerlukan tiga operand dipanggil operator trinary.

Selain dari melaksanakan suatu tindakan, operator juga akan menghasilkan suatu nilai. Nilai dan jenis nilai yang dihasilkan bergantung kepada operator dan jenis operandnya.

Operator arithmetik

Operator arithmetik binary

Operator penggunaan Penerangan+ op1 + op2 menambah op1 dan op2- op1 - op2 menolak op1 dari op2* op1 * op2 mendarab op1 dan op2/ op1 / op2 membahagi op1 dengan op2% op1 % op2 mengira baki dari hasilbahagi op1 dan

op2

Jenis hasil operator-operator ini adalah bergantung kepada operandnya. Secara umum, apabila suatu integer dan suatu no. perpuluhan digunakan sebagai operand kepada 1 operator arithmetik binary, hasilnya adalah suatu no. perpuluhan.

Jenis op1 Jenis op2 Jenis op1(+ - x / %) op2long byte, short, int,

longlong

int byte, short, int intdouble byte, short, int,

long, float, singledouble

float byte, short, int, long, float

float

Contoh:Jika pengisytiharan pembolehubah berikut diberikan:

Page 14: Data Numerik

TA 113 – Bab 5 – Pg.14

int i = 37;long j = 42L;float x = 27.475F;double y = 7.22;

maka

i + j = 79 (jenis long)i + x = 64.475 (jenis float)j + x = 69.475 (jenis float)j + y = 49.22 (jenis double)x + y = 34.695 (jenis double)i / j = 0 (jenis long)i / y = 5.1246537396 (jenis double)

Operator arithmetik unary

Operator penggunaan Penerangan+ +op naikkan jenis op kepada int jika op

berjenis byte, short atau char- -op menegatifkan nilai op++ ++op, op++ meningkatkan nilai op sebanyak 1

(increment)-- --op, op-- mengurangkan nilai op sebanyak 1

(decrement)

Jenis hasil operasi keatas operator unary akan mengikut jenis operandnya.

Perhatian:Bagi operator unari ++ dan -- 1. Operandnya mestilah dari jenis integer (byte, short, int, long) sahaja.

2. Jika digunakan sebagai pre-fix (++op / --op), memberikan nilai op selepas nilai op ditingkatkan/dikurangkan.

Page 15: Data Numerik

TA 113 – Bab 5 – Pg.15

3. Jika digunakan sebagai post-fix (op++ / op--), memberikan nilai op sebelum nilai op ditingkatkan/dikurangkan.

Contoh:Bahagian aturcara berikut:

int i;

i = 3;System.out.println("++i = " + (++i) + " dan i = " + i);i = 3;System.out.println("i++ = " + (i++) + " dan i = " + i);

i = 3;System.out.println("--i = " + (--i) + " dan i = " + i);i = 3;System.out.println("i-- = " + (i--) + " dan i = " + i);

akan menghasilkan output

++i = 4 dan i = 4i++ = 3 dan i = 4--i = 2 dan i = 2i-- = 3 dan i = 2

Operator perbandingan

Oprator perbandingan membanding 2 nilai dan menentukan perhubungan antara 2 nilai tersebut. Hasil operasi perbandingan adalah nilai booleh true atau false

Operator penggunaan Memberikan nilai true jika> op1 > op2 op1 lebih besar daripada op2>= op1 >= op2 op1 lebih besar atau sama dengan op2< op1 < op2 op1 kurang daripada op2<= op1 <= op2 op1 kurang atau sama dengan op2== op1 == op2 op1 sama dengan op2!= op1 != op2 op1 tak sama dengan op2

Page 16: Data Numerik

TA 113 – Bab 5 – Pg.16

Contoh:Jika diberikan bahagian aturcara seperti dibawah:

int i = 5;

System.out.println("i > 2 menghasilkan " + (i>2));System.out.println("i > 7 menghasilkan " + (i>7));System.out.println("i == 5 menghasilkan " + (i==7));System.out.println("i != 5 menghasilkan " + (i==7));

Maka, outputnya adalah seperti berikut

i > 2 menghasilkan truei > 7 menghasilkan falsei == 5 menghasilkan falsei != 5 menghasilkan false

Operator bersyarat

Operator bersyarat juga akan menghasilkan nilai boolean true atau false. Biasanya operator bersyarat digunakan bersama operator perbandingan untuk menghasilkan syarat yang lebih kompleks.

Operator penggunaan Memberikan nilai true jika&& op1 && op2 op1 dan op2 kedua-duanya true|| op1 || op2 op1 atau op2 bernilai true! ! op op bernilai false

Contoh:Bahagian aturcara berikut:

int i, j;boolean bi, bj; bi = true; bj = false; i = 5; j = 10;System.out.println("bi && bj menghasilkan " + (bi && bj));System.out.println("bi || bj menghasilkan "

Page 17: Data Numerik

TA 113 – Bab 5 – Pg.17

+ (bi || bj));System.out.println("!bi menghasilkan " + (!bi));System.out.println("i < 4 && j > 11 menghasilkan " + (i < 4 && j > 11));

Akan menghasilkan output:

bi && bj menghasilkan falsebi || bj menghasilkan true!bi menghasilkan falsei < 4 && j > 11 menghasilkan false

Perhatian:1. Operand-operand bagi opertor bersyarat mestilah suatu nilai

boolean sahaja. Jika tidak, ralat akan dihasilkan.

Operator Umpukan ( assignment operators )

Operator umpukan, = , memerlukan 2 operand seperti op1 = op2.

op1 = op2 akan menyebabkan nilai op2 diumpukkan kepada op1. Hasil operasi op1 = op2 adalah nilai op1 selepas umpukan, dan jenis hasilnya adalah mengikut jenis op1.

Contoh:

i = 3; akan menghasilkan nilai 3

Perhatian:1. Operand kiri bagi operator umpukan mestilah suatu

pembolehubah2. Jenis nilai kanan operator umpukan mestilah sesuai dengan

jenis operand kiri, jika tidak ralat dihasilkan.

Selain dari operator umpukan biasa ini, dalam bahasa pengaturcaraan Java terdapat juga operator umpukan pintas

Page 18: Data Numerik

TA 113 – Bab 5 – Pg.18

Operator penggunaan Setara dengan+= op1 += op2 op1 = op1 + op2-= op1 -= op2 op1 = op1 - op2*= op1 *=< op2 op1 = op1 * op2/= op1 /= op2 op1 = op1 / op2%= op1 %= op2 op1 = op1 % op2

Dalam matematik ungkapan seperti a = a + b adalah ungkapan yang salah. Bagaimanapun, dalam pengaturcaraan ungkapan a = a + b adalah sah dan ia bermaksud menambah nilai a semasa sebanyak b.

Contohnya;

jika a = 3 ,makaselepas operasi a = a + 7 , a akan bernilai 10

Beberapa operator lain

Operator new Operator new akan membolehkan suatu objek dibentuk dari kelas operandnya.

Penggunaan : new op

Contoh:

new JOptionPane();

akan menyebabkan suatu instance bagi kelas JOptionPane dibentuk.

Operator dot .

Page 19: Data Numerik

TA 113 – Bab 5 – Pg.19

Operator dot (.) membolehkan instance suatu objek atau kelas mencapai ahli objek atau kelasnya.

Contoh:untuk menghantar mesej showMessageDialog kepada objek JOptionPane kita gunakan operator dot seperti

JOptionPane.showMessageDialog(null, "….")

Operator cast, (type)Menukar jenis suatu nilai kepada nilai yang dinyatakan oleh type.

Contoh:Jika diberikan pengisytiharan seperti long j = 40L;maka (int)j akan menghasilkan 40 berjenis int. Bagaimanapun, j masih bernilai 40L.

Operator instanceofOperator instanceof menguji samada operand kirinya adalah suatu instance kepada operand kanan.

Penggunaan : op1 instanceof op2

Contoh:Jika kotakDialog adalah instance kepada JOptionPane maka

kotakDialog instanceof JOptionPane akan memberikan nilai true

Perhatian:1. Operand pertama (op1) mestilah nama suatu objek dan operand

kedua (op2) mestilah nama suatu kelas.

Page 20: Data Numerik

TA 113 – Bab 5 – Pg.20

Ungkapan, Pernyataan dan blok

Dalam menulis aturcara, kita gabungkan literal, pembolehubah dan operator untuk membentuk ungkapan -- bahagian-bahagian kod aturcara yang melaksanakan suatu tindakan dan menghasilkan suatu nilai.

Ungkapan-ungkapan tertentu boleh digunakan untuk membentuk pernyataan - suatu unit lengkap arahan perlaksanaan.

Dengan menggabungkan pernyataan-pernyataan di dalam curly braces { dan }, kita boleh bentukkan blok kod aturcara.

Ungkapan (expressions)

Ungkapan ialah suatu siri pembolehubah, operator dan panggilan kepada method (yang dibentuk mengikut sintak bahasa pengaturcaraan) yang akan menghasilkan (evaluate) suatu nilai.

Jadi, tugas ungkapan ada 2 iaitu melaksanakan pengiraan/operasi/ tindakan yang diperlukan dan menghasilkan nilai hasil daripada pengiraan/operasi/tindakan tersebut.

Beberapa contoh ungkapan berikut melaksanakan suatu tindakan dan mengembalikan suatu nilai.

Ungkapan Tindakan Nilai dihasilkanaChar = 'S' Mengumpukkan

aksara 's' kepada pembolehubah aksara aChar

nilai aChar selepas proses umpukan ('S')

"The largest byte value is " + largestByte

Menyambungkan (concatenate) string "The largest byte value is " dan nilai largestByte yang telah ditukar ke jenis string.

Hasil penggabungan string "The largest byte value is 127" (jika largestByte bernilai 127)

Page 21: Data Numerik

TA 113 – Bab 5 – Pg.21

Character.isUpperCase (aChar)

Memanggil (menghantar mesej kepada) method isUpperCase dari objek Character

Nilai yang dikembalikan oleh method: true (jika aChar mengandungi huruf besar)

Jenis data yang dihasilkan oleh suatu ungkapan akan bergantung kepada unsur-unsur yang membentuk ungkapan tersebut.

Contohnya, ungkapan aChar='S' mengembalikan nilai aksara kerana operator umpukan mengembalikan nilai yang jenisnya sama dengan jenis operandnya. Oleh sebab, kedua-dua aChar dan 'S' adalah aksara, maka hasil ungkapan aChar = 'S' juga berjenis aksara.

Dalam bahasa pengaturcaraan Java, ungkapan dengan lebih dari satu operator seperti

x * y * z

adalah dibenarkan. Dan semasa menilai ungkapan ini, turutan menilai ungkapan tidak penting kerana hasil proses pendaraban adalah tidak bersandar kepada turutan penilaian.

Bagaimanapun, ada sesetengah ungkapan yang tidak begini halnya, Contohnya:

x + y / 100

Untuk contoh ini, jika proses 'x + y' dilaksanakan dahulu kemudian diikuti proses '/ 100' hasilnya akan berbeza dengan jika 'y / 100' dilaksanakan dahulu kemudaian diikuti dengan 'x +'.

Untuk mengelak ketidakpastian seperti ini dalam aturcara, anda boleh menggunakan kurungan parenthesis ( ) untuk menentukan proses mana yang perlu dilaksanakan dahulu.

Page 22: Data Numerik

TA 113 – Bab 5 – Pg.22

Contohnya, untuk ungkapan di atas, anda boleh tulis seperti

(x + y) / 100

untuk menjelaskan turutan proses yang perlu dilaksanakan.

Peraturan Keutamaan

Sekiranya kita tidak nyatakan dengan jelas turutan proses menilai ungkapan, turutan proses akan ditentukan oleh peraturan keutamaan (precedence) operator-operator. Mengikut peraturan ini, operator dengan keutamaan tertinggi akan dinilai dahulu, baharulah diikuti oleh operator yang kurang keutamaannya.

Contohnya, operator * lebih tinggi tahap keutamaannya berbanding operator +, maka ungkapan

x + y / 100

akan dinilaikan mengikut turutan : 'y / 100' dahulu, kemudian 'x +'.

Berikut adalah jadual keutamaan operator-operator yang telah ditunjukkan sebelum ini:

( ) op++ op-- . Keutamaan tinggi++op --op +op -op !

(type) new* / %+ -< > <= >= instanceof== !=&&|| keutamaan

rendah= += -= *= /= %=

Page 23: Data Numerik

TA 113 – Bab 5 – Pg.23

Sekiranya dalam suatu ungkapan terdapat operator dengan keutamaan yang sama, peraturan berikut dipatuhi untuk menentukan aturan mendapatkan nilai ungkapan tersebut:

Bagi operator (): Jika kurungan adalah bersarang, sub-ungkapan dalam kurungan yang paling dalam akan diselesaikan dahulu. Jika terdapat lebih dari satu kurungan pada level yang sama, sub-ungkapan yang paling kiri diselesaikan dahulu.

Semua operator binary melainkan operator-operator umpukan diselesaikan dari kiri ke kanan

Semua operator umpukan dan semua operator unary diselesaikan dari kanan ke kiri.

Contoh:

Pernyataan (statements)

Suatu pernyataan membentuk satu unit lengkap arahan perlaksanaan suatu tindakan.

Setiap pernyataan perlu ditamatkan dengan penamat semicolon: ;.

Terdapat 3 jenis pernyataan iaitu pernyataan ungkapan (expression statement), pernyataan pengisytiharan (declaration statement) dan pernyataan kawalan aliran (control flow statement).

Page 24: Data Numerik

TA 113 – Bab 5 – Pg.24

Pernyataan ungkapan terdiri daripada ungkapan-ungkapan berikut: ungkapan umpukan Sebarang ungkapan yang hanya menggunakan ++ atau -- panggilan kepada method ungkapan pembentukan objek

Beberapa contoh pernyataan ungkapan.

aValue = 899.123; // pernyataan umpukanaValue++; // pernyataan peningkatanSystem.out.println(aValue); // pernyataan penggilan methodintegerObject = new Integer(4); // pernyataan pembentukan // objek

Pernyataan pengisytiharan mengisytiharkan pembolehubah. Contohnya:

int a = 10;

Pernyataan kawalan aliran menetapkan tertib perlaksanaan pernyataan-pernyataan. Contohnya seperti pernyataan-pernyataan if, for dan while.

Blok (Blocks)

Suatu blok adalah sekumpulan sifar (zero) atau lebih pernyataan yang dikurung antara braces ({}) yang sepadanan dan ia boleh digunakan dimana-mana satu pernyataan boleh digunakan.

Contohnya

if (a > b) { System.out.println( a + " lebih besar dari " + b);} else { System.out.println (a + " kurang / sama dengan " + b);}

Page 25: Data Numerik

TA 113 – Bab 5 – Pg.25

Semasa menulis aturcara, adalah digalakkan menggunakan blok untuk menulis pernyataan kawalan aliran, seperti contoh di atas, walaupun blok tersebut hanya terdiri dari satu pernyataan sahaja.

Page 26: Data Numerik

TA 113 – Bab 5 – Pg.26

Operasi Input/Output

Suatu program biasanya akan berinteraksi dengan pengguna, iaitu pengguna berikan data kepada program sebagai input, data diproses oleh program (komputer) dan program memberikan hasil pemprosesan data (maklumat) sebagai output kepada pengguna.

Dalam persekitaran Java, terdapat banyak pakej API yang mengkhusus dalam menghasilkan objek-objek antaramuka pengguna (user interface). Antara pakej API popular yang dikeluarkan sendiri oleh Sun seperti pakej java.awt dan javax.swing yang menyediakan kemudahan antaramuka pengguna grafik (GUI).

Untuk antaramuka teks yang lebih mudah, kita boleh gunakan kemudahan dari pakej java.io yang menyediakan kelas dan method yang dapat mengambil input dari keyboard dan memaparkan output di skrin monitor.

Ataupun kita boleh gunakan pakej-pakej API lain yang dibangunkan oleh pihak ketiga (third party) yang boleh diperolehi secara percuma dari Internet, buku dsb. Sebagai contoh pakej javabook yang boleh di download secara percuma dari http://www.drcaffeine.com/student/student.htm

Perhatian:Anda akan pelajari kaedah menggunakan pakej java.awt / javax.swing untuk hasilkan GUI pada subjek TA 213. Untuk TA 113, kita akan gunakan kelas dari pakej java.io.

Kelas java.io.InputStreamReader

Objek InputStreamReader adalah seperti jambatan antara aliran bait kepada aliran aksara - Ia membaca bait-bait dan menterjemah-kannya kepada aksara-aksara mengikut sistem pengkodan yang ditentukan.

Page 27: Data Numerik

TA 113 – Bab 5 – Pg.27

Pengisytiharan untuk hasilkan suatu instance dari InputStreamReader yang akan mengambil input dari keyboard:

InputStreamReader aliranInput;aliranInput = new InputStreamReader(System.in);

Catatan:System.in adalah objek yang mengendali sampukan keyboard.

Untuk mendapatkan bait-bait data, kita boleh hantarkan mesej read() kepada kelas ini. Seperti

char masukan;masukan = (char)(aliranInput.read());

Mesej ini akan mengakibatkan method read() membaca satu aksara dari keyboard, dan mengembalikan suatu nilai integer mengikut kod bagi aksara tersebut. Jadi dengan menggunakan operator cast (char), kita perolehi aksara tersebut.

Bagaimanapun, sekadar mendapat 1 aksara sebagai input adalah amat tidak cekap. Jadi untuk menambah kecekapan, kita boleh bungkuskan (wrap) suatu InputStreamReader didalam suatu objek BufferedReader. Contoh:

InputStreamReader aliranInput;aliranInput = new InputStreamReader(System.in);BufferedReader in;in = new BufferedReader(aliranInput);

Selepas pengisiytiharan ini, kita boleh hantar mesej readLine() kepada objek in (instance bagi kelas BufferedReader) untuk mendapatkan satu baris teks dari keyboard. Contoh:

String masukan;masukan = in.readLine();

Method readLine() akan membaca beberapa aksara dari keyboard, sehingga kekunci enter ditekan. Dan ia akan mengembalikan suatu String. Jika enter ditekan sebelum apa-

Page 28: Data Numerik

TA 113 – Bab 5 – Pg.28

apa aksara diberikan, maka readLine() akan mengembalikan nilai null.

Perlu diingat bahawa semasa readLine() membaca aksara-aksara dari keyboard, jika berlaku kesilapan/ralat, readLine() akan membuang (throw) suatu objek IOException. Sebagai pengaturcara, kita bertanggung jawab untuk bersedia menerima objek IOException tersebut. Contoh:

try{ masukan = in.readLine();}catch (IOException e){ System.out.println("Berlaku error " + e);}

pernyataan try … catch akan mempastikan sekiranya terdapat objek-objek IOException yang dibuang oleh mana-mana objek lain dalam blok try, ia akan disambut oleh catch untuk diberikan kepada pengendali pengecualian (exception handler).

Catatan:IOException adalah juga satu kelas di dalam pakej java.lang

Perhatikan bahawa, readln() hanya boleh mengembalikan nilai String sahaja. Maknanya, jika kita perlukan input integer kita perlu mengubah string yang dikembalikan oleh readLine() kebentuk integernya. Ini boleh dilakukan dengan menggunakan method parseInt dari objek Integer. Contohnya:

String masukan;int nilai;

try{ masukan = in.readLine();}

Page 29: Data Numerik

TA 113 – Bab 5 – Pg.29

catch (IOException e){ System.out.println("Berlaku error " + e);}

nilai = Integer.parseInt(masukan);

System.out.println("Nilai yang diberikan adalah " + nilai);

Jika kita ingin dapatkan input double dari pengguna, kita boleh menukar String yang dikembalikan oleh readLine() dengan menggunakan method-method valueOf() dan doubleValue() dari suatu objek Double. Contohnya:

String masukan;Double objekDouble;int nilai;

try{ masukan = in.readLine();}catch (IOException e){ System.out.println("Berlaku error " + e);}

objekDouble = Double.valueOf(masukan);nilai = objekDouble.doubleValue();

System.out.println("Nilai yang diberikan adalah " + nilai);

CatatanKelas Integer dan Double (juga kelas-kelas seperti Boolean, Float, Byte, Character, String, IOException, NumberFormatException dll) adalah dari pakej java.lang. Untuk menggunakan kelas-kelas dari java.lang, arahan import tak diperlukan kerana kelas java.lang akan diimport secara automatik setiap kali aturcara java dilaksanakan.

Page 30: Data Numerik

TA 113 – Bab 5 – Pg.30

Cuba perhatikan, jika berlaku kesalahan semasa menukar format dari String ke Integer atau dari String ke Double (seperti pengguna berikan nilai aksara atau nilai perpuluhan untuk input integer atau pengguna berikan nilai aksara untuk input no. perpuluhan), mesej ralat akan dipaparkan dan aturcara akan dihentikan serta merta.

Untuk memerangkap kesalahan ini, kita boleh gunakan pernyataan try… catcah sekali lagi, tetapi kali ini catch perlu 'menangkap' objek NumberFormatException yang dibuangkan akibat kesilapan menukar format nilai. Kelas NumberFormatException adalah dari pakej java.lang. Contoh:

String masukan;Double objekDouble;int nilai;

try{ masukan = in.readLine();} catch (IOException e){ System.out.println("Berlaku kesilapan sewaktu " + "input"); System.out.println(e);}

try{ objekDouble = Double.valueOf(masukan); nilai = objekDouble.doubleValue();} catch (NumberFormatException e){ System.out.println("Anda berikan nilai dengan jenis" + " yang salah"); nilai = 0.0;}

System.out.println("Nilai yang diberikan adalah " + nilai);

Page 31: Data Numerik

TA 113 – Bab 5 – Pg.31

Contoh aturcara lengkap:

/* * Tajuk : Tambah2.java * * Penerangan: * Aturcara bertujuan menunjukkan penggunaan kelas * InputStream, BufferedReader dan IOEXception dari * pakej java.io untuk mengendali I/O suatu program. */ import java.io.*; // import semua kelas dalam java.io public class Tambah2 { public static void main(String args[]) { // menyediakan objek in (instance kelas Buffered- // Reader) yang akan menyerap (buffer) bait-bait // dari System.in (keyboard) InputStreamReader aliranInput; aliranInput = new InputStreamReader(System.in); BufferedReader in; in = new BufferedReader(aliranInput); // pengisytiharan pembolehubah tempatan String masukInteger = " ", masukDouble = “ “; int nilaiInteger = 0; double nilaiDouble = 0.0, jumlah = 0.0; // Bahagian pengenalan System.out.println("\nSelamat Datang"); System.out.println("\nProgram ini adalah untuk " + "mendapatkan hasil tambah " + "\nsatu integer dan satu no. " + "perpuluhan yang anda beri\n"); // meminta input dari pengguna try { // minta satu integer System.out.print("\nBerikan integer anda : "); masukInteger = in.readLine();

Page 32: Data Numerik

TA 113 – Bab 5 – Pg.32

// minta satu double System.out.print("\nBerikan no.perpuluhan “ + “anda : "); masukDouble = in.readLine(); } catch (IOException e) { System.out.println("\nTerdapat kesilapan dalam" + " input!"); System.out.println(e); } try { // tukar String masukan kepada nilai Integer // yang setara nilaiInteger = Integer.parseInt(masukIntger); } catch (NumberFormatException e) { // perangkap kesilapan menukar format System.out.println("\nNilai yang anda berikan" + " bukan integer"); nilaiInteger = 0; } try { // tukar String masukan kepada nilai double // yang setara Double objekDouble = Double.valueOf(masukDouble); nilaiDouble = objekDouble.doubleValue(); } catch (NumberFormatException e) { // perangkap kesilapan menukar format System.out.println("\nNilai yang anda berikan" + " bukan no.perpuluhan"); nilaiDouble = 0.0; }

// kira hasil tambah dua nombor tersebut jumlah = nilaiInteger + nilaiDouble;

// paparkan hasil operasi (output)

Page 33: Data Numerik

TA 113 – Bab 5 – Pg.33

System.out.println("\nJumlah " + nilaiInteger + " dan " + nilaiDouble + " ialah " + jumlah); // bahagian penutup System.out.println("\nTerima kasih"); }}

Output 1

Output 2