PEMROGRAMAN TERSTRUKTUR C++
1.
Pemrograman Modular
Arti
: metode untuk mendesign perangkat lunak atau software dengan cara memecah
kompunen - komponen suatu program yang besar menjadi bagian - bagian yang lebih
kecil.
Ciri-ciri
:
a.
modul yang di bentuk mempunyai kesatuan atau tugas fungsi maupun kesatuan
proses.
b.
setiap module harus memiliki single entry dan single exit secara berurutan dari
atas ke bawah atau dari awal hingga akhir.
c.
memiliki main program dan sub program atau modal.
d .
lebih sering menggunakan Strukture Chart.
Keunggulan
:
a.
mudah penggunaan.
b.mudah memodifikasi
c.mengendalikan kompleksitas program dan
meningkatkan modifiabilitas.
d.penyembunyian informasi baik variabel
maupun metoda.
2.
Perbedaan bahasa C dengan C++
C
merupakan bahasa pemrograma prosedural, di mana penyelesaian atas suatu masalah
di lakukan dengan membagi - bagi masalah tersebut ke dalam sub - sub masalah
yang lebih kecil.
C++
merupakan bahasa pemrogaman yang memiliki sifat Object Oriented Programing
(OOP). Untuk menyelesaikan suatu masalah, C++ melakukan langkah pertama dengan
mendefinisikan class - class yang meruakan a.class yang di buat sebelumnya
sebagai abstraksi dari objek-objek fisik. Class tersebut berisi keadaan objek,
anggota - anggotanya, dan kemampuan dari objeknya. Setelah beberapa Class di
buat masalah di pecahkan menggunakan class.
Contoh
Program :
#include
void
main()
{
cout<<"program pertama\n";
}
Keterangan
Line
1 : #include
Sebagian dari proses compile, compiler dari
C++ menjalankan program yang di namakan preprosesor. Preposesor memiliki
kemampuan menambah dan mengapus kode dari file sumber. Pada contoh ini,
directive #include memberitahu preposesor untuk menyertakan
kode dari file iostream. File iostream tersebut berisi deklarasi untuk berbagai
fungsi yang di butuhkan oleh program, atau class-class yang di butuhkan.
Line
2 : void main()
Pernyataan itu mendeklarasikan fungsi utama,
bahwa suatu program C++ dapat berisi banyak fungsi, tetapi harus memiliki
sebuah fungsi utama (main function). Fungsi adalah modul yang berisi kode-kode
untuk meyelesaikan masalah - masalah tertentu. Kata "void" menandakan
fungsi main tidak bertipe. Tipe - tipe fungsi ataupun variable akan di bahas
kemudian.
Line
3 : {
Kurung kurawal buka menandakan awal program
Line
4 : cout<<"program pertama\n";
Cout adalah objek dari sebuah library standar
C++ yang di gunakan untuk mencetak string ke peranti output standar, yang
biasanya adalah layar komputer kita. Compuler menghubungkan kode dari library
standar itu dengan kode yang telah kita tuliskan untuk mendapatkan hasil yang
executable. Tanda "\n" adalah formal modifiler yang di gunakan untuk
berganti baris setelah menampilkan string. Jika ada cout lain pada program
tersebut, maka string yang menyertainya akan di tuiskan pada baris dibawahnya.
Line
5 : }
Kurung kurawal tutup menandakan akhir program.
3.
Jelaskan
a. Bag komentar pada bahasa C++
Komentar
merupakan bagian penting dalam suatu program.
Komentar
dapat berupa :
A.
Tujuan / fungsi program
B.
Saat program dibuat atau direvisi
C.
Keterangan-keterangan lain tentang kegunaan
sejumlah pernyataan dalam program.
D.
Pada C++ komentar diawali dengan dua tanda
garis miring (//). Ini digunakan untuk komentar pada satu baris. Selain itu,
komentar dapat juga diawali dengan tanda /* dan diakhiri dengan tanda */. Ini
digunakan untuk komentar yang terdiri dari beberapa baris.
B. Bag paragraph compile dalam bahasa C++ / Preprosessor
Bahasa
C++ mencakup beberapa instruksi preprocessor yang digunakan untuk memberikan
suatu perintah pada compiler. Instruksi-instruksi preprocessor tersebut adalah
:
#define
#elif
#else
#endif
#error
#if
#ifdef
#ifndef
#include
#inline
#pragma
#undef
Masin-masing
fungsi tersebut di atas akan dijelaskan secara singkat di dalam bab ini.
(Instruksi yang berhubungan dengan #elif, #else, #endif, #ifdef dan #ifndef
semuanya dijelaskan dalam #if)
#define
“#define”
digunakn untuk melaksanakan subtitusi makro dari satu lembar teks ke lembar
teks yang lainmelalui suatu file dimana teks tersebut digunakan. Berikut ini
bentuk yang biasa dipakai :
#define
name character-sequence
Perhatikan
bahwa dalam perintah ini, tidak ada tanda titik koma. Selanjutnya diawal bila
karakter awal telah berhasil maka dia akan berhenti hanya pada akhir baris.
Contoh, jika ingin memakai “TRUE” untuk angka 1 dan “FALSE” untuk angka 0, maka
kita buat dua #define makro :
#define
TRUE 1
#define
FALSE 0
Pada
contoh tersebut, compiler akan mengganti 1 dan 0 setiap menjumpai TRUE dan
FALSE.
Instruksi
#define mempunyai feature kuat yang lain : suatu makro dapat mempunyai
argument. Makro yang mempunyai argument akan bekerja hampir sama dengan fungsi.
Satiap ditemukan makro, maka argument akan bergabung dangan makro yang
ditempatkan oleh argument actual tersebut yang berada pada program.
Contoh
:
#include
#define
ABS(a) (a)<0 ? – (a) : (a)
main(void)
{
printf("abs
of -1 and 1: %d %d", ABS(-1), ABS(1));
return
0;
}
Ketika
program tersebut decompile, “a” pada defenisi makro akan diganti dengan angka
-1 dan 1, tanda kurung yang ada di “a” sangat diperlukan untuk meyakinkan
subtitusi pada semua hal yang semestinya.
Contoh,
jika tanda kurung pada “a” dihilangkan maka ekspresi :
ABS(10-20)
akan
dikembalikan pada :
10-20<0
? -10-20 :10-20
Dan
akan mempunyai hasil yang salah.
Penggunaan
subtitusi makro pada tempat yang riil, mempunyai satu keuntungan utama : yaitu
akan mempercepat kode karena tidak ada “overhead” untuk panggilan fungsi yang
didatangkan.
Namun
demikian, percepatan tersebut akan membuat program semakin besar. Hal ini
desebabkan karena adanya duplikat kode.
#error
Instruksi
#error akan memaksa compiler untuk menghentikan suatu Kompilasi. Pada dasarnya
#error ini digunakan pada “debugging”. Berikut ini bentuk yang biasa dipakai.
#error
message
Jika
dijumpai #error, maka akan terlihat suatu pesan dan angka baris.
#if,
#ifdef, #ifndef, #else, #elif, #endif
Instruksi-instruksi
processor tersebut digunakan pada beberapa porsi variasi compile program secara
selektif. Logika yang umum adalah bahwa jika suatu ekspresi setelah #if, #if
def atau #ifndef adalah benar, maka kode yang berada diantara salah satu dari
meraka dan #endif, akan tersusun, tapi jika yang terjadi sebaliknya, maka akan
terlewati. #endif digunakan untuk menandai akhir suatu blok. Instruksi #else
dapat digunakan dengan salah satu dari mereka denga cara yang sama, yaitu
dengan “else” pada perintah C.
Beerikut
ini bentuk yang biasa dipakai pada #if :
#if
constant-ekspresion
Jika
ekspresi konstanta tersebut benar, mka blok kode akan tersusun.
Berikut
ini bentuk yang biasa dipakai pada #ifdef :
#ifdef
macro-name
Jika
nama makro (macro-name) telah ditentukan dengan perintah #define, maka blok
kode berikutnya akan tersusun.
Contoh
berikut ini adal;ah tentang cara beberapa instruksi preprocessor yang bekerja
dengan code :
#include
#define
ted 10
main(void)
{
#ifdef
ted
printf
(“Hi Tex\n”);
#endif
printf
(“bye-bye\n”);
#of
10<9
printf
(“Hi George\n”);
#endif
}
Program
tersebut akan mencetak “Hi Ted” dan “bye-bye” pada layar, tapi bukan “Hi
George”. Instruksi #elif digunakan untuk membuat suatu perintah “if-else-if”.
Berikut ini bentuk yang seering dipakai :
#elif
constant-expression
#elif
dapat digunakan dengan #if, tapi tidak dengan #ifdef atau ifndef.
Kita
juga dapat menggunakan #if atau #elif untuk menentukan jika macro name telah
didefinisikan dengan menggunakan operator “defined” preprocessing.
Bentuk
yang biasa dipakai adalah :
#if
defined macro-name
statement
sequence
#endif
Jika
nama makro telah didefinisikan, maka perintah yang benar akan tersusun, jika
sebaliknya maka akan terlompati. Misalnya, program ini akan menyusun
conditional code, karena “DEBUG” telah didefinisikan oleh program :
#include
#define
DEBUG
main()
{
int
i=100;
/*…*/
#if
defined DEBUG
printf
(“value of i is : %d/n”, i);
#endif
/*…*/
}
Kita
juga dapat mendahulukan “defined” dengan operator ! untuk menjadikan compilasi
conditional jika macro tidak didefinisikan.
#include
Instruksi
preprocessor #include akan memerintah compiler untuk membaca dan menyusun file
sumber yang lain.
Bentuk
yang biasa dipakai adalah :
#include
“filename”
#include
File
sumber yang akan dibaca harus ditutup antara dua tanda petik atau dua tanda
kurung lancip. Jika nama file ditutup dengan tand a kurung lancip, maka file
akan dicari dengan cara yang telah ditentukan oleh kreasi dari compiler.
Sering
kali hal ini berarti suatu pencarian beberapa directory khusus yang didalamnya
terdapat file.
Jika
nama file ditutup dengan tanda kurung, maka file akan dicari dengan cara lain
yang telah ditentukan implementasinya. Pada beberapa implementasi hal ini
berarti pencarian directory yang sedang aktif. Jika file tidak ditemukan mala
pencarian akan diulang seolah nama file ditutp dengan tanda kurung lancip.
#include
dapat diletakkan pada file-file yang ada lainnya. Contoh :
#include
“stdio.h”
Akan
memerintah compiler C untuk membaca dan menyusun header untuk file disk library
rutin.
#line
Instruksi
#line , diguanakn untuk mengubah isi dari “_LINE_” dan “_FILE_”, yang telah
ditentukan pada compiler. Berikut ini bentuk utama dari command tersebut.
#line
number “filename”
Dimana
number adalah suatu integer positif, dan “filename” adalah file identifier yang
valid. number akan menjadi angka baris sumber dan “filename” akan menjadi nama
file sumber. Nama dari file dalah optional. #line pada dasarnya digunakan untuk
debugging suatu tujuan dan aplikassi khusus.
Identifier
“_LINE_” adalah suatu integer, dan “_FILE_” adalah suatu string yang diakhiri
nol.
Contoh
berikut akan menset counter baris pada IO dan file pada “test”.
#line
IO “test”
#pragma
Instruksi
#pragma adalah suatu instruksi yang telah didefiniskan implementasinya, yang
memungkinkan suatu variasi instruksi yang diberikan pada compiler. Contoh suatu
compiler mungkin mempunyai suatu pilihan mendukung pembuatan penggandaan
program. Pilihan penggandaan (trace), kemudian akan ditentukan oleh perintah
#pragma.
#undef
Instruksi
#undef digunakan untuk memindah definisi yang telah ditentukan sebelumnya dari
nama makro yang mengikutinya. Berikut ini bentuk yang biasa dipakai.
#undef
macro-name
Contoh
pada program berikut ini :
#define
LEN 100
#define
WIDTH 100
char
array [LEN] [WIDTH];
#under
LEN
#under
WIDTH
/*
at this point both LEN and WIDTH are undefined */
“LEN”
dan “WIDTH” ditentukan hingga dijumpai perintah #undef. Prinsip penggunaan
#undef adalah untuk memungkinkan nama makro ditempatkan hanya pada
bagian-bagian code yang memerlukannya.
Operator
Processor # dan ##
ANSI
C menyediakan dua operator processor, yaitu : # dan ##. Operator ini digunakan
pada makro #define. Operator # akan menyebabkan argument yang didahului untuk
dikembalikan pada string kutipan.
Contoh
, perhatikan program berikut ;
#include
“stdio.h”
#define
mkstr(s) #s
main(void)
{
printf(mkstr(I
like C++));
return
0;
}
Processor
C akan mengembalikan baris :
printf(mkstr(I
like C++));
pada
printf(“I
like C++”);
Operator
## digunakan untuk menghubungkan dua tanda secara bersama-sama.
Contoh,
perhatikan program berikut :
#include
“stdio.h”
#define
concat(a, b) a ##b
main(void)
{
int
xy=10;
printf(“%d”,
concat(x, y));
return
0;
}
Processor
akan berubah bentuk dari
printf(“%d”,
concat(x, y));
menjadi
printf(“%d”,
xy);
jika
operator ini terasa aneh bagi kita, ingatlah bahwa operator-operator tersebut
jarang digunakan pada hampir semua program C. Operator-operator tersebut hanya
terdapat pada program dengan fungsi untuk memungkinkan hal-hal tertentu yang
ditangani oleh processor.
Nama-nama
Predefined Makro
Standar
ANSI C membedakan lima nama-nama makro built-in yang didefinisikan sebelumnya.
Yaitu
:
_LINE_
_FILE_
_DATE_
_TIME_
_STDC_
Jika
compiler kita non standar, maka sebagian atau seluruhnya akan hilang. Compiler
juga menyediakan banyak makro yang didefinisikan sebelumnya untuk kita gunakan.
Makro
_DATE_ adalah suatu string dengan bentuk, bulan/hari/tahun yang merupakan
tanggal translasi file sumber dalam obyek code.
Waktu
transaksi code sumber ke dalam code obyek, terdiri atas string pada _TIME_,
bentuk string tersebut adalah hour,minute,second (jam,menit,detik).
Makro
_STDC_ berisi konstanta desilmal 1, artinya bahwa implementasi penyesuaian
standar. Jika konstanta tersebut selain angka 1, maka implementasinya tentu akan
berbeda dari standar.
Tidak ada komentar:
Posting Komentar