May 07, 2003

COMP3015: CONTOH JAWAPAN BAHAGIAN B

Perubahan terakhir: 04-May-03,1:19 AM

NOTA: Jawapan ini BUKAN diberi oleh pihak OUM. Saya telah usahakan untuk memastikan agar semua jawapan yang diberikan adalah betul. Mohon maaf sekiranya terdapat kesilapan. Disediakan khas oleh Ebenezer Godomon untuk para pelajar kelas COMP3015 sem Januari 2003, OUM sahaja. AMARAN: Tidak dibenarkan digunakan oleh kelas lain dalam apa bentuk/cara sekalipun. Dengan membaca notis ini maka anda dianggap telah bersetuju dengan syarat ini.

Soalan 1
(a)

Sebelum panggilan objek, nilai times ialah 3

n=3

%%%%%%

n=2

%%%%%%

n=1

%%%%%%

Selepas panggilan objek, nilai times ialah 3



(b) (i)

class CariPerdana {

public boolean isPrime(int n) {

for (int factor = 2; factor <= n/2; factor++) {

if ((n % factor) == 0)

return false;

}

return true;

}

}



(ii)

class Aplikasi2 {

public static void main(String[] args) {

CariPerdana perdana = new CariPerdana();

for (int i=2; i<=100; i++)

if (perdana.isPrime(i)) {

System.out.print(i + "\t");

}

}

}

©

import javax.swing.*;

import java.awt.*;



public class B1c extends JApplet {

private JLabel l1,l2,l3;

private JTextField t1,t2,t3;

private JButton btnOK, btnReset;



public void init() {

Container conpane = getContentPane();

JPanel p = new JPanel();

p.setLayout(new FlowLayout());

p.add(l1 = new JLabel("Nama:"));

p.add(conpane.add(l1));

p.add(t1 = new JTextField(10));

p.add(conpane.add(t1));

p.add(l2 = new JLabel("Umur:"));

p.add(conpane.add(l2));

p.add(t2 = new JTextField(10));

p.add(conpane.add(t2));

p.add(l3 = new JLabel("Bangsa:"));

p.add(conpane.add(l3));

p.add(t3 = new JTextField(10));

p.add(conpane.add(t3));

conpane.add(p,"North");



JPanel q = new JPanel();

q.setLayout(new FlowLayout());

q.add(btnOK = new JButton("OK"));

q.add(conpane.add(btnOK));

q.add(btnReset = new JButton("Reset"));

q.add(conpane.add(btnReset));

conpane.add(q,"South");

}

}

[nota: untuk melarikan aplet ini anda perlu mencipta B1c.html terlebih dahulu – ini anda ingat bagaimana menciptanya kan?]



Soalan 2

a)

(i)

class TukarCelcius {

public double kira (double cels) {

double fahr;

fahr = (9.0/5)*cels+32;

return fahr;

}

}



(ii) Dengan menggunakan objek kelas di atas, tuliskan aplikasi Java menggunakan arahan for untuk menghasilkan output seperti diminta adalah seperti berikut:

class ap_TukarCelcius {

public static void main(String[] args) {

double f;

TukarCelcius celcius = new TukarCelcius();

System.out.println("Suhu Celcius Suhu Fahrenheit");

System.out.println("-------------------------------");

for (double i=40.0; i>=35.00; i=i-1.0) {

f = celcius.kira(i);

System.out.println(i + "\t"+ f);

}

}

}

[Nota: saya berjaya mendapatkan output yang pada asasnya betul, teetapi tidak dapat mendapatkan output yang benar-benar serupa seperti yang diminta, oleh kerana saya tidak sempat mencari bagaimana hendak setkan “decimal point” kepada 2. Sila rujuk http://w3.one.net/~monkey/java/rounding/ untuk mendapat tahu bagaimana membuat “rounding” nombor berjenis “double”, dan http://mindprod.com/jglosscurrency.html untuk mendapat tahu bagaimana hendak set “decorative decimal point”.]



(b) Aplet untuk menghasilkan antara muka seperti dipinta:

import java.awt.*;

import javax.swing.*;



public class MesinKira extends JApplet {

private JButton b0, b1, b2, b3, b4, b5, b6, b7, b8, b9;

private JButton b10, b11, b12, b13, b14, b15;

private JTextField t1;



public void init () {

Container conpane = getContentPane();

JPanel t = new JPanel();

t.setLayout(new FlowLayout());

t.add(t1 = new JTextField(15));

t.add(conpane.add(t1));

conpane.add(t,"North");



JPanel panel = new JPanel();

panel.setLayout(new GridLayout(4,4));

b7 = new JButton("7"); panel.add(b7);

b8 = new JButton("8"); panel.add(b8);

b9 = new JButton("9"); panel.add(b9);

b10 = new JButton("/"); panel.add(b10);

b4 = new JButton("4"); panel.add(b4);

b5 = new JButton("5"); panel.add(b5);

b6 = new JButton("6"); panel.add(b6);

b11 = new JButton("*"); panel.add(b11);

b1 = new JButton("1"); panel.add(b1);

b2 = new JButton("2"); panel.add(b2);

b3 = new JButton("3"); panel.add(b3);

b12 = new JButton("-"); panel.add(b12);

b0 = new JButton("0"); panel.add(b0);

b13 = new JButton(" "); panel.add(b13);

b14 = new JButton("="); panel.add(b14);

b15 = new JButton("+"); panel.add(b15);

conpane.add("Center",panel);

}

}

[nota: untuk melarikan aplet ini anda perlu mencipta MesinKira.html terlebih dahulu – ini anda ingat bagaimana menciptanya kan?]



Soalan 3

(a) (i) :

class Akaun {

private int id;

private double baki=0;

public Akaun(int id, double balance) {

setId(id);

setBalance(balance);

}

public int getId() {

return id;

}

public double getBalance() {

return baki;

}

public void setId(int id_baru) {

id = id_baru;

}

public void setBalance(double balance) {

baki = balance;

}

public void withdraw(double amount) {

baki = baki - amount;

}

public void deposit(double amount) {

baki = baki + amount;

}

}



(a) (ii) :

class ap_akaun {

public static void main(String[] args) {

Akaun ak = new Akaun(1122,20000);

ak.withdraw(2500);

ak.deposit(3000);

System.out.println("No akaun adalah: " + ak.getId());

System.out.println("Baki semasa adalah: $" + ak.getBalance());

}

}



(b) :

import javax.swing.*;

import java.awt.*;



public class q3b extends JApplet {

private JRadioButton rb1, rb2, rb3;

private ButtonGroup bg;

public void init() {

Container conpane = getContentPane();

bg = new ButtonGroup();

conpane.setLayout(new FlowLayout());



rb1 = new JRadioButton("The Adventures of Javaman", true);

bg.add(rb1);

conpane.add(rb1);



rb2 = new JRadioButton("Java by Example", false);

bg.add(rb2);

conpane.add(rb2);



rb3 = new JRadioButton("Java and the Single Guy", false);

bg.add(rb3);

conpane.add(rb3);

}

}

[nota: untuk melarikan aplet ini anda perlu mencipta q3b.html terlebih dahulu, dengan HEIGHT=100 dan WIDTH=200 agar ketiga-tiga baris pilihan berada di tengah-tengah – ini anda ingat bagaimana menciptanya kan? Walaubagaimanapun, jika saiz tetingkap aplet dibesarkan, “layout” juga akan berubah – mungkin ada penyelesaian yang lebih baik daripada yang dicadangkan di atas, mungkin menggunakan pengurus bentangan “grid layout” dan Jpanel]



Soalan 4

(a) :

class ap_kereta {

public static void main(String[] args) {

// (i)

TempatLetakKereta A = new TempatLetakKereta(100);

TempatLetakKereta B = new TempatLetakKereta(200);

// (ii)

Kereta car = new Kereta("JAG 3245");

A.masuk(car."JAG 3245");

Kereta car = new Kereta("BCF 1123");

A.masuk(car."BCF 1123");

Kereta car = new Kereta("WJP 332");

A.masuk(car."WJP 332");

// (iii)

Kereta car = new Kereta("JAG 3245");

B.masuk(car."JEY 345");

Kereta car = new Kereta("WJJ 2543");

B.masuk(car."WJJ 2543");

// (iv)

B.keluar(car."WJJ 2543");

// (v)

A.keluar(car."JAG 3245");

A.keluar(car."BCF 1123");

A.keluar(car."WJP 332");

}

}

[Nota: untuk jawapan untuk bahagian (v) di atas, saya kurang pasti samada ia adalah jawapan yang terbaik. Lagipun, metod lot() dan penuh() dari kelas TempatLetakKereta tak digunakan]



(b):

[Nota: soalan ini sama dengan soalan latihan 20.3 dalam nota modul]

import java.awt.*;

import javax.swing.*;



public class Convert extends JApplet {

public void init(){

Container contain=getContentPane();

contain.setLayout(new FlowLayout(FlowLayout.CENTER));

JPanel panel1=new JPanel();

panel1.setLayout(new GridLayout(4,1,0,6));

JPanel panel2=new JPanel();

panel2.setLayout(new GridLayout(6,1));

JPanel panel3=new JPanel();

panel3.setLayout(new GridLayout(4,1,0,6));



JLabel lbl1 = new JLabel("Convert from:");

panel1.add(lbl1);

ButtonGroup btn=new ButtonGroup();

JRadioButton rb1=new JRadioButton("Fahrenheit", true);

btn.add(rb1);

panel1.add(rb1);

JRadioButton rb2=new JRadioButton("Celcius", false);

btn.add(rb2);

panel1.add(rb2);

JRadioButton rb3=new JRadioButton("Kelvin", false);

btn.add(rb3);

panel1.add(rb3);



JLabel lbl2=new JLabel("Fahrenheit");

panel2.add(lbl2);

JTextField txt1=new JTextField(15);

panel2.add(txt1);

JLabel lbl3=new JLabel("Celcius");

panel2.add(lbl3);

JTextField txt2=new JTextField(15);

panel2.add(txt2);

txt2.setBackground(Color.gray);

JLabel lbl4=new JLabel("Fahrenheit");

panel2.add(lbl4);

JTextField txt3=new JTextField(15);

txt3.setBackground(Color.gray);

panel2.add(txt3);



JLabel lbl5 = new JLabel("Convert to:");

panel3.add(lbl5);

ButtonGroup btn1=new ButtonGroup();

JRadioButton rb4=new JRadioButton("Fahrenheit", false);

btn1.add(rb4);

panel3.add(rb4);

JRadioButton rb5=new JRadioButton("Celcius", true);

btn1.add(rb5);

panel3.add(rb5);

JRadioButton rb6=new JRadioButton("Kelvin", false);

btn1.add(rb6);

panel3.add(rb6);



contain.add(panel1);

contain.add(panel2);

contain.add(panel3);

}

}

[nota: untuk melarikan aplet ini anda perlu mencipta Convert.html terlebih dahulu, dengan WIDTH=420 dan HEIGHT=180 agar output kemas – ini anda ingat bagaimana menciptanya kan?]



Soalan 5

(a):

import java.io.*;



class Markah {

public static void main(String[] args) throws IOException {

Pembaca baca = new Pembaca();

int[] markahPelajar = new int[100];

int jumlahMarkahPelajar = 0;

int bilPelajar = 0;



// awalkan nilai markah bagi semua pelajar kepada 0

for (int h=0; h<=99; h++) {

markahPelajar[h] = 0;

}



while (bilPelajar <= 99) {

System.out.println("Sila masukkan markah bagi pelajar no : " + bilPelajar);

markahPelajar[bilPelajar]=baca.bacaInt();

bilPelajar++;

}



// set nilai awal markah tertinggi dan markah terendah kepada nilai tatasusunan pertama

int markahTertinggi = markahPelajar[0];

int markahTerendah = markahPelajar[0];



// Cari markah purata

for (int h=0; h<=99; h++) {

jumlahMarkahPelajar=jumlahMarkahPelajar+markahPelajar[h];

}

System.out.println("Purata markah : " + jumlahMarkahPelajar/100);



// Cari markah tertinggi

for (int h=1; h<=99; h++) {

if (markahTertinggi < markahPelajar[h]) {

markahTertinggi = markahPelajar[h];

}

}

System.out.println("Markah tertinggi : " + markahTertinggi);



// Cari markah terendah

for (int h=1; h<=99; h++) {

if (markahTerendah > markahPelajar[h]) {

markahTerendah = markahPelajar[h];

}

}

System.out.println("Markah terendah : " + markahTerendah);

}

}



(b):

[nota: Hampir sama dengan contoh aturcara 21.5 di ms 264 dalam nota modul]



import javax.swing.*;

import java.awt.*;

import java.awt.event.*;



public class Huruf extends JApplet implements ItemListener {

private JTextField txtInput;

private JCheckBox chkTebal, chkCondong;



public void init() {

Container conpane = getContentPane();

conpane.setLayout(new FlowLayout());

conpane.setBackground(Color.white);



txtInput = new JTextField("Lihat perubahan teks",20);

chkTebal = new JCheckBox("Bold",true);

chkCondong = new JCheckBox("Italic",true);

chkTebal.setBackground(Color.white);

chkCondong.setBackground(Color.white);



chkTebal.addItemListener(this);

chkCondong.addItemListener(this);



conpane.add(txtInput);

conpane.add(chkTebal);

conpane.add(chkCondong);

}



public void itemStateChanged(ItemEvent e) {

int t=0, c=0;

Font font;



if (chkTebal.isSelected())

t=Font.BOLD;

if (chkCondong.isSelected())

c=Font.ITALIC;

font= new Font("serif",t+c,14);

txtInput.setFont(font);

}

}



[nota: untuk melarikan aplet ini anda perlu mencipta Huruf.html terlebih dahulu, dengan WIDTH=400 dan HEIGHT=50 agar output kemas – ini anda ingat bagaimana menciptanya kan?]



TAMAT

COMP3015: CONTOH JAWAPAN KEPADA BAHAGIAN A

Perubahan terakhir: 29-Apr-03 12:59:01 AM

NOTA: Jawapan ini BUKAN diberi oleh pihak OUM. Saya telah usahakan untuk memastikan agar semua jawapan yang diberikan adalah betul. Mohon maaf sekiranya terdapat kesilapan. Disediakan khas oleh Ebenezer Godomon untuk para pelajar kelas COMP3015 sem Januari 2003, OUM sahaja. AMARAN: Tidak dibenarkan digunakan oleh kelas lain dalam apa bentuk/cara sekalipun. Dengan membaca notis ini maka anda dianggap telah bersetuju dengan syarat ini.

Soalan 1

a) Jika Alpha mewarisi dari kelas Beta, kelas Alpha dikenali sebagai subkelas dan kelas Beta pula dikenali sebagai superkelas.

b) Dua (2) perbezaan antara metod pembina dan metod ahli:

- metod pembina mesti sama namanya dengan nama kelas, metod ahli boleh diberikan apa-apa nama.

- metod pembina tidak boleh mengembalikan apa-apa nilai, metod ahli boleh.

[rujuk nota modul ms 127 & 136]



Soalan 2

(i) Suatu metod pembina harus mempunyai nama yang sama dengan Kelas. BENAR

(ii) Suatu Kelas hanya boleh mempuunyai satu metod pembina sahaja SALAH (sila lihat contoh di soalan 3 – mempunyai 2 metod pembina tetapi dibezakan dengan penyaratan metod)

(iii) Suatu metod pembina mesti diistiharkan untuk setiap kelas SALAH



Soalan 3

obj1

attrib1: 4

str: “tiga”



obj2

atrib1: 3

str: “satu”



Soalan 4

Output adalah seperti berikut:

count is 101

time is 0

Nota: mengapa output time bukan 100? Ini adalah disebabkan metod increment merujuk kepada pembolehubah times di dalam aplikasi utama (main) iaitu times=0. Paling tinggi nilai times dapat naik dalam jangkahayat aplikasi ini adalah 1 iaitu ketika ia melalui proses times++ dalam metod increment. Selepas itu aplikasi utama (main) akan merujuk semula kepada nilai times yang diisytiharkan iaitu times=0. Oleh kerana itulah nilai times yang dioutputkan adalah 0. Jika kita inginkan output times=100, apa yang perlu dilakukan adalah menambah baris times++ ke dalam gelung for agar kelihatan seperti berikut:

for (int i=0; i<100;i++) {

increment(myCount, times);

times++;

}

Nilai terakhir times akan menjadi 100 kerana times++ merujuk kepada nilai times awal iaitu 0, yang kemudiannya ditambah satu demi satu sehingga akhir gelung.



Soalan 5

switch (a) {

case 1 : x+=5; break;

case 2 : x+=10; break;

case 3 : x+=16; break;

case 4 : x+=34;

}



Soalan 6

(i) TIDAK SAH

(ii) SAH

(iii) SAH

(iv) TIDAK SAH



Soalan 7

Capaian ke atas metod yang private dihadkan kepada pengisytiharan kelas empunya. Pengisytiharan metod sebagai private dilaksanakan sekiranya penghantaran mesej untuk melaksanakan metod itu dijangka berlaku dalam kelasnya sahaja.

[rujuk nota modul ms149-151]



Soalan 8

(i) anga

(ii) _

(iii) 29

(iv) Saya_sangat_suka__bahasa_JavaHello



Soalan 9

Bahasa pengaturcaraan Java menyediakan dua (2) jenis aturcara Java iaitu Aplet dan Aplikasi. Berikan dua perbezaan antara Aplet dan Aplikasi Java.

(i) Aplet boleh dilaksanakan pada laman web melalui pelayar web yang Java-enabled atau appletviewer. Aplikasi tidak boleh dilaksanakan dengan cara ini.

(ii) Aplet bukan aturcara kendiri iaitu ia tidak mempunyai metod main() di dalam blok aturcaranya. Aplikasi mesti mempunyai metod main().

[rujuk nota modul ms 205-206]



Soalan 10

class Aplikasi {

public static void main(String [ ] args ) {

Kira myKira = new Kira(5, 7, 28);

}

}

ICTS 2015 - Sem Ogos 2002

Jawapan kepada soalan-soalan peperiksaan akhir semester/tahun lepas

Nota: jawapan ini bukanlah diberikan oleh OUM.

Perubahan terakhir: 27-Apr-03 11:38 PM

Semester Ogos 2002

Bahagian A

1-A 11-C 21-B 31-B
2-A 12-B 22-C 32-A
3-B 13-B 23-A 33-B
4-D 14-C 24-C 34-B
5-B 15-B 25-D 35-B
6-A 16-A 26-C 36-D
7-B 17-B 27-B 37-C
8-A 18-A 28-B 38-A
9-C 19-C 29-B 39-B
10-C 20-A 30-D 40-D

Bahagian B

Soalan 1

(a)

(i)

Kerajaan Elektronik (Electronic Government)
Kad serbaguna (multipurpose card)
Sekolah pintar (smart schools)
Telekesihatan (telehealth)
[untuk huraian, rujuk laman web http://www.mdc.com.my]

(ii)

R&D Clusters
E-dagang (e-business) (World Wide Manufacturing Web & Borderless Marketing)
Pembangunan “techopreneur” (technopreneur development)
[untuk huraian, rujuk laman web http://www.mdc.com.my]

(b)

- Sesiri

- Selari

- AGP

- USB

- Wayar api

[untuk penerangannya, rujuk ms 28 dalam nota modul]

©

RAM – memerlukan bekalan kuasa elektrik yang berterusan, untuk memastikan kandungan ingatannya tidak hilang

ROM – tidak bergantung kepada bekalan kuasa elektrik; data di dalamnya adalah kekal dan dimasukkan semasa proses pengilangan



Soalan 2

(a)

(i) FQDN = Fully Qualified Domain Name

(ii) SMTP = Simple Mail Transfer Protocol

(iii) RTFM = Read The Fine Manual [ms 116 dlm modul]

(b)

[rujuk kepada nota ms 76 dalam nota modul]

©

- Menggunakan enjin gelintar; contoh: www.google.com

- Menggunakan portal, contoh: www.yahoo.com

(d)

Perisian sumber terbuka merupakan perisian yang kod sumbernya boleh dicapai dengan percuma oleh sesiapa pun dan boleh diubahsuai mengikut keperluan masing masing. Walaubagaimanapun, pengguna diminta untuk berkongsi perubahan tersebut dengan pengguna-pengguna lain melalui Internet. Dengan cara ini, diharapkan perisian tersebut akan terus diperbaiki agar menjadi perisian yang bermutu tinggi.

3 faedah : [ms 108 dalam nota modul]

- Pengguna boleh membuat pengubahsuaian sendiri terhadap perisian dan tidak terikat dengan mana-mana syarikat komersil;

- Pengguna berpeluang membetulkan sebarang ralat yang mungkin terdapat dalam kod sumber perisian;

- Pengguna juga boleh mempelajari bagaimana satu-satu perisian tersebut dibina berasakan kod sumber itu



Soalan 3

(a)

5 generasi bahasa pengatucaraan

[rujuk nota m.s. 176 dalam nota modul]

(b)

Sistem pengendalian akan menggunakan sebahagian dari ruang dalam cakera keras sebagai ingatan utama, apabila ingatan utama tidak mencukupi untuk melarikan sesuatu aplikasi. Dalam kaedah ini, sistem pengendalian memasukkan sebahagian perisian aplikasi ke dalam ingatan dan sebahagian ke dalam ingatan maya.

[rujuk nota ms 160 dalam nota modul]

©

Perisian pelengkapan kelompok (groupware) – perisian yang digunakan dalam rangkaian oleh sekumpulan pengguna yang bekerja dalam satu projek.

Perisian set – gabungan perisian-perisian yang dijual secara kelompok dengan harga yang murah jika dibandingkan membeli setiap perisian secara berasingan.

[rujuk nota ms 232 dalam nota modul]

(d)

Kelemahan-kelemahan DOS

- tidak menggunakan GUI; perlu ingat arahan (CLI)

- tidak berupaya menggunakan ingatan maya

- mempunyai had ingatan 1MB sahaja

- tidak mempunyai kemudahan multitugasan dan multiprosesan

[rujuk nota ms 163 dalam nota modul]



Soalan 4

(a)

Teknologi radio bersel – anda telah buat dalam Tugasan 2

(b)

Peranan Lapisan pengangkutan – memastikan semua mesej atau data dapat dihantar dan diterima tanpa sebarang kehilangan, duplikasi atau ralat data.

[rujuk nota ms 282 dalam nota modul]



©

3 jenis topologi LAN

[rujuk nota ms 302 dalam nota modul]

(d)

(i) Modem [rujuk nota ms 289 dalam nota modul]

(ii) Titi [rujuk nota ms 294 dalam nota modul]

(iii) Get laluan [rujuk nota ms 297 dalam nota modul]

(iv) Pengulang [rujuk nota ms 293 dalam nota modul]



Soalan 5

(a)

Metodologi SDLC

[rujuk nota ms 363 dalam nota modul]

(b)

Dalam rancangan Peralihan Berperingkat, sistem baru dilaksanakan mengikut fasa atau berperingkat. Hanya subsistem tertentu dilaksanakan dahulu. Apabila subsistem ini tiada masalah, barulah keseluruhan sistem baru digunakan.

Dalam Rancangan Peralihan Selari, kedua-dua sistem beroperasi secara serentak sehingga jangkamasa tertentu. Data diinputkan ke dalam kedua-dua sistem dan hasil output dari sistem baru dibandingkan dengan sistem semasa. Apabila pihak pengurusan berpuas hati dengan sistem baru, sistem semasa dihentikan.

[rujuk nota ms 368 dalam nota modul]

©

4 contoh:

- kad ID

- kata laluan

- tandatangan

- cap jari

[rujuk nota ms 382 dalam nota modul]