Bab 3
description
Transcript of Bab 3
1
Bab 3
Prinsip-prinsip Spesifikasi Rekabentuk
2
3.1. Peniskalaan (Abstraction) Peniskalaan adalah suatu perwakilan kepada suatu objek yang
mengecualikan (tidak menghiraukan) elemen-elemen yang dianggap sebagai perincian yang tidak relevan kepada objek tersebut penggunaan objek ini lebih mudah s
Peniskalaan berprosedur membolehan pengaturcara menumpukan perhatian kepada satu bahagian sahaja daripada suatu aturcara pada suatu masa
Peniskalaan bermodul ditakrifkan sebagai satu koleksi pengisytiharan objek-objek data yang berkaitan
Suatu modul mungkin mengandungi pengisytiharan jenis, pembolehubah, dan prosedur
3
3.1. Peniskalaan (Abstraction) Secara umumnya, peniskalaan bahasa pengaturcaraan
boleh dikategorikan kepada 2 yang umum: Peniskalaan data Peniskalaan kawalan
Setiap peniskalaan ini boleh dipecahkan lagi kepada 3 paras: Asas - mengumpulkan maklumat paling asas tentang
perlaksanaan dalam persekitaran mesin Berstruktur - mengumpulkan maklumat global tentang
struktur suatu aturcara Unit - mengumpulkan maklumat tentang keseluruhan
aturcara
4
3.1.1. Peniskalaan Data
Menguruskan komponen-komponen aturcara yang terlibat di dalam pengiraan, seperti rentetan aksara dan nombor
Berkait dengan atribut suatu objek data dan operasi ke atas objek tersebut
5
Peniskalaan Data Asas
Merujuk kepada perwakilan dalaman bagi atribut objek data dalam sistem komputer: Pembolehubah – merupakan perwakilan kepada
lokasi-lokasi ingatan yang mengandungi nilai-nilai data
Jenis data – menakrifkan suatu set nilai yang boleh diwakilkan oleh suatu pembolehubah
6
Peniskalaan Data Berstruktur Suatu kaedah asas untuk mewakilkan secara abstrak suatu
koleksi data-data yang berkait di antara satu sama lain Contohnya, rekod seorang pekerja mengandungi nama, alamat,
nombor telefon dan gaji setiap satunya terdiri dari jenis data yang berbeza, tetapi secara keseluruhannya mewakilkan suatu rekod
Jenis rekod adalah suatu peniskalaan paras-rendah
Peniskalaan paras-rendah berguna apabila anda hendak mengumpukkan suatu rekod kepada suatu rekod yang lain atau
menghantarnya sebagai satu parameter
7
Peniskalaan Data Berstruktur Salah satu implementasi peniskalaan data berstruktur adalah
Jenis Data Niskala (Abstract Data Types - ADT) Jenis data niskala ditakrifkan sebagai suatu koleksi struktur
data dan operasi yang diabstrakkan menjadi satu jenis data yang mudah
Contoh jenis data niskala adalah senarai, timbunan, giliran dan pokok
Satu lagi bentuk peniskalaan data berstruktur adalah penggunaan pengisytiharan semula suatu jenis data
8
Peniskalaan Data Berstruktur Contoh dalam C
typedef struct rekod_pelajar pelajar
Dalam kes ini, suatu rekod yang bernama rekod_pelajar berjenis struct ditakrifkan semula sebagai pelajar
Ini membolehkan penggunaan pelajar sebagai mewakilkan struct rekod_pelajar di dalam pernyataan-pernyataan yang berikutnya
9
Peniskalaan Data Unit Suatu kaedah untuk mengumpulkan semua maklumat yang
diperlukan untuk mencipta dan menggunakan suatu jenis data tertentu di dalam suatu unit lokasi
Modul – suatu set pernyataan yang dibentuk sebagai blok untuk melaksanakan suatu proses tertentu
Blok biasanya mengandungi prosedur atau fungsi, dan berguna untuk mengimplimenkan rekabentuk atas-bawah, dan menyokong guna-semula (reusability) modul-modul
Pengkapsulan seperti ini mengekang capaian kepada perincian jenis data. Ini memastikan bahawa perubahan kepada sturuktur data tidak akan mengubah bahagian lain dalam aturcara
10
Peniskalaan Data Unit
Kelebihan peniskalaan data unit adalah: Aturcara menjadi lebih mudah untuk dibaca, ditulis dan
diedit Guna-semula unit-unit aturcara membolehkan suatu blok
digunbakan dalam banyak persekitaran aturcara Aturcara yang mengimplimenkan peniskalaan ini tidak
akan dipengaruhi oleh perubahan yang berlaku pada perincian dalam blok
Dua contoh bahasa pengaturcaraan yang menyokong peniskalaan ini adalah Ada dan Modula-2
11
3.1.2. Peniskalaan Kawalan
12
3.1.2. Peniskalaan Kawalan Menerangkan tentang jujukan pernyataan atau
kumpulan pernyataan (Blok aturcara) Ia menguruskan komponen-komponen
aturcara yang saling memindah kawalan perlaksanaan seperti gelung, pernyataan bersyarat, dan panggilan prosedur
Peniskalaan kawalan boleh diklasifikasikan kepada asas, berstruktur, dan unit
13
Peniskalaan Kawalan Asas Satu peniskalaan kawalan asas yang tipikal adalah sebuah
pernyataan umpukan yang mewakilkan secara abstrak pengiraan dan penyimpanan suatu nilai kepada lokasi yang diwakilkan oleh suatu pembolehubah
Contoh:
x = x+ 5; Nilai asal x ditambah dengan 5 untuk menghasilkan satu nilai
baru kepada pembolehubah x Secara asasnya, terdapat 2 mekanisma yang boleh digunakan
untuk menentukan aliran kawalan ke atas suatu arahan Jujukan Cabangan
14
Peniskalaan Kawalan Asas Kebiasaannya, arahan dilaksanakan satu persatu mengikut
susunan ianya ditulis dalam aturcara secara jujukan, atau perlaksanaan berjujukan
Jujukan dilakukan dengan menambah pembilang (suatu register dalam perkakasan) secara automatik selepas setiap arahan dilaksanakan arahan yang disimpan di dalam lokasi ingatan yang berturutan dapat dicapai dan dilaksanakan satu demi satu
Percabangan boleh digunakan untuk melaksanakan arahan yang tidak mengikut susunan dalam aturcara juga dipanggil sebagai pemindahan kawalan (transfer of control)
15
Peniskalaan Kawalan Asas Oleh itu pembilang aturcara boleh diubah supaya
kawalan dipindahkan kepada suatu lokasi yang spesifik
Dalam bahasa pengaturcaraan, percabangan boleh diwakilkan dengan arahan jump atau goto
Arahan-arahan ini juga dikenali sebagai percabangan tanpa-syarat
16
Percabangan Tanpa Syarat Contoh dalam C:
#include <stdio.h>main(){
int count = 1; start:
if (count > 10)goto end;
printf(“ %d “, count);count = count + 1;goto start;
end:printf(“ \n End of the program “);
}
Start: dan end: adalah label yang menandakan lokasi di mana kawalan perlaksanaan dipindahkan
17
Peniskalaan Kawalan Berstruktur Andaikan suatu blok aturcara Fortran seperti berikut:
. . .Z1 = X1 – Y1IF ( Z1 .LE. 0 ) Z1 = -Z1. . .. . .. . .C1 = A1 – B1IF ( C1 .LE. 0 ) C1 = -C1
Blok ini boleh diwakilkan secara abstrak sebagai: Z = X – YIF ( Z .LE. 0 ) Z = -Z
Yang mana Z mewakili Z1 dan C1, X mewakili X1 dan A1, dan y mewakili Y1 dan B1
18
Peniskalaan Kawalan Berstruktur Tanpa perlu menulis segmen yang sama dua kali, kita boleh
menakrifkan segmen ini sebagai suatu peniskalaan kawalan berstruktur dan hanya memanggilnya setiap kali diperlukan
Peniskalaan ini juga dirujuk sebagai subprogram, subrutin atau fungsi
Subrutin untuk peniskalaan di atas boleh ditulis sebagai Subroutine CALC (X, Y, Z)
Z = X – Y
IF ( Z .LE. 0 ) Z = -Z
Return
End
19
Peniskalaan Kawalan Berstruktur Blok aturcara di atas boleh ditulis semula sebagai:
. . .
CALL CALC( X1, Y1, Z1 )
. . .
. . .
CALL CALC( A1, B1, C1) Apabila dilaksanakan, arahan CALL akan menghantar
kawalan aturcara kepada subrutin yang dipanggil Pernyataan Return pula akan menghantar semula kawalan
aturcara kepada pemanggil yang akan menyambung perlaksanaan aturcara dengan pernyataan selepas pernyataan CALL
20
Peniskalaan Kawalan Berstruktur Mekanisma kawalan berstruktur juga terdapat dalam beberapa
bentuk yang lain: termasuk gelung while dan for dalam C, gelung repeat dalam Pascal, dan mekanisma loop-exit dalam Modula-2
Panggilan subrutin atau fungsi adalah lebih kompleks berbanding dengan pemilihan atau gelung kerana ia memerlukan penyimpanan maklumat tentang keadaan aturcara pada setiap kali panggilan dibuat dan bagaimana subrutin dilaksanakan
Satu kelebihan peniskalaan kawalan berstruktur adalah ianya membolehkan struktur kawalan dilakukan secara tersarang tidak kira kedalamannya
21
Peniskalaan Kawalan Unit Mewakili suatu koleksi prosedur yang
menyediakan perkhidmatan logikal yang berkaitan kepada bahagian lain dalam aturcara yang sama
Sebagai contoh, prosedur yang mengira purata, median, dan sisihan piawai yang boleh dikumpulkan sebagai satu unit program yang mengira nilai-nilai statistik tertentu
22
3.1. Parameter dan Penghantaran Parameter