Pemrograman terstruktur
Modul PEMROGRAMAN TERSTRUKTUR
Oleh Eko Teguh. S.Si Ubaidillah
Laboratorium Komputasi dan Pemodelan Jurusan Fisika Fakultas Matematika dan Ilmu pengetahuan Alam Universitas Brawijaya Malang 2016
Pemrograman terstruktur
Kata Pengantar
Pemrograman terstruktur
Pada modul ini, dijelaskan mengenai penggunaan bahasa C++ berikut dengan contoh program yang telah diuji sebelumnya. Modul ini diharapkan dapat membantu praktikan untuk memahami pemrograman terutama menggunakan bahasa C++. Penulis menyadari banyaknya kesalahan dalam penulisan modul ini dan menyampaikan permintaan maafnya. Kemudian penulis juga menerima saran berkaitan dengan tulisan ini.
Penulis
2016
i
Pemrograman terstruktur
This Page Intentionally Blank
ii
Daftar Isi
Pemrograman terstruktur
Kata Pengantar..................................................................................................................................... i Daftar Isi ..............................................................................................................................................iii Daftar Gambar .....................................................................................................................................v Daftar Tabel..........................................................................................................................................v Daftar Program.....................................................................................................................................v Bab I Pendahuluan .............................................................................................................................. 1 1.1.
Bahasa pemrograman ......................................................................................................... 1
1.2.
Compiler.............................................................................................................................. 1
1.3.
Program Console ................................................................................................................. 2
1.4.
Tugas ................................................................................................................................... 2
Bab II Struktur, Variabel, Tipe Data..................................................................................................... 3 2.1.
Struktur Program................................................................................................................. 3
2.2.
Variabel ............................................................................................................................... 4
2.3.
Konstanta ............................................................................................................................ 4
2.4.
Tipe data.............................................................................................................................. 5
2.5.
Latihan................................................................................................................................. 6
Bab III Operator................................................................................................................................... 7 3.1.
Aritmatika............................................................................................................................ 7
3.2.
Pengunaan dan Arti Kombinasi (+=,-=,*=,/=,%=,>>=,<<=,&=,^=,|=)................................... 8
3.3.
Latihan................................................................................................................................. 8
Bab IV Basick input output.................................................................................................................. 9 4.1.
Output standart (cout) ........................................................................................................ 9
4.2.
Input standart (cin) ............................................................................................................. 9
4.3.
Stringstream;..................................................................................................................... 10
4.4.
I/O dengan menggunakan File .......................................................................................... 10
4.5.
Latihan............................................................................................................................... 10
Bab V Statement dan flow control.................................................................................................... 11 5.1.
Kondisi If dan else ............................................................................................................. 11
5.2.
Perulangan While.............................................................................................................. 11
5.3.
Do-While ........................................................................................................................... 12 iii
Pemrograman terstruktur 5.4.
Perulangan for................................................................................................................... 12
5.5.
Latihan............................................................................................................................... 13
Bab VI Array dan Pointer ................................................................................................................... 15 6.1.
Array .................................................................................................................................. 15
6.2.
Pointer ............................................................................................................................... 16
6.3.
Latihan............................................................................................................................... 17
Bab VII Fungsi .................................................................................................................................... 19 7.1.
Fungsi................................................................................................................................. 19
7.2.
Latihan............................................................................................................................... 19
Bab VIII Class...................................................................................................................................... 21 8.1.
Class................................................................................................................................... 21
8.2.
Latihan............................................................................................................................... 22
UAP.................................................................................................................................................... 23 Daftar Pustaka ................................................................................................................................... 24
iv
Daftar Gambar
Pemrograman terstruktur
Gambar 2.1. Keluaran program “Hello Word!”................................................................................... 3 Gambar 2.2.Hasil dari program 2.4..................................................................................................... 6
Daftar Tabel Tabel 1.1. Tabel bahasa permograman , platform dan console ......................................................... 2 Tabel 2.1.. Tipe data, size dan Signed/Unsigned ................................................................................ 5
Daftar Program Program 1.1. Contoh pemrograman menggunakan C++ .................................................................... 1 Program 2.1. Program Hello Word...................................................................................................... 3 Program 2.2. Variabel local dan variable formal................................................................................. 4 Program 2.3. Penggunaan tipe data ................................................................................................... 5 Program 3.1. Penggunaan operator.................................................................................................... 8 Program 4.1. Program menuliskan File pada .txt.............................................................................. 10 Program 5.1. Kondisi perulangan while ............................................................................................ 12 Program 5.2. Kondisi perulangan do-while ....................................................................................... 12 Program 5.3. Kondisi perulangan For................................................................................................ 13 Program 6.1. Penulisan array............................................................................................................ 16 Program 6.2. Penulisan array multidimensi...................................................................................... 16 Program 6.3. Pointer......................................................................................................................... 17 Program 6.4. Contoh program pointer ............................................................................................. 17 Program 7.1. Fungsi .......................................................................................................................... 19 program 7.2. Contoh program bilangan ganjil genap dengan menggunakan fungsi........................ 20 Program 8.1 Contoh penggunaan class............................................................................................. 22
v
Pemrograman terstruktur
This Page Intentionally Blank
vi
Bab I Pendahuluan
Pemrograman terstruktur
Komputer merupakan sebuah perangkat elektronik yang bekerja dalam bahasa biner sebagai basisnya. Manipulasi sistem kerja computer untuk menjalankan perintah sesuai dengan yang diinginkan membutuhkan perintah yang ditransformasikan kedalam bahasa yang dimengerti oleh komputer dan kemudian dijalankan dalam bentuk program executable. Berbeda dengan sistem berintelegent tinggi, manipulasi komputer harus dilakukan dengan perintah menggunakan bahasa khusus yang dituliskan berdasarkan struktur tertentu. Perintah yang diberikan juga harus dalam bentuk logika dan runtut sesuai dengan struktur asli dari program.
Manusia
Bahasa Pemrograman
Kompiler
Bahasa Mesin
Gambar 1.1. Skema sebuah program. 1.1.
Bahasa pemrograman
Bahasa manusia tidak dapat dikenali oleh computer secara langsung. Perintah perintah dasar seperti “hitung!, Jalankan!” tidak akan dikenali oleh komputer. Diperlukan perintah dalam bentuk lain yang dapat dikenali oleh komputer Perlu diketahui jika berbeda dengan manusia yang menggunakan rangkaian logika dalam otak, computer tidak akan bisa melakukan sesuatu sebelum perintahnya dijalankan dalam bahasa yang dikenali oleh computer. Untuk menuliskan perintah ke computer, diperlukan bahasa dasar yang nantinya dirubah menjadi bahasa binner yang dikenali sebagai perintah computer. bahasa dasar tersebut memiliki struktur yang berbeda bergantung dengan kebutuhan dan keinginan program dan dalam praktiknya memiliki bermacam macam level dan jenis. sebagai contohnya matlab, C++, java, dll. Setiap bahasa pemrograman akan memiliki struktur dan sifat yang berbeda beda meskipun pada akhirnya sama yakni akan ditransformasikan kedalam bentuk binner. int a, b, sum; cin >> a; cin >> b; sum = a + b; cout << sum << endl;
Program 1.1. Contoh pemrograman menggunakan C++
1.2.
Compiler
Bahasa pemrograman masih memerlukan transformasi lagi sebelum dikenali oleh computer sebagai perintah. seperti yang telah diketahui, pemrograman computer langsung sangat sulit dan memiliki tingkat error yang sangat tinggi. untuk itu program yang telah dituliskan dalam bahasa pemrograman harus ditulis ulang dalam bahasa mesin. Untuk itu diperlukan compiler. Compiler merupakan sebuah program 1
Pemrograman terstruktur
yang menulis ulang perintah menjadi bahasa mesin. Pada dasarnya compiler berfungi sebagai penyusun perintah kedalam bahasa binner. Selain itu compiling program juga dapat digunakan sebagai koreksi dari program yang sudah ditulis. Contoh compiler untuk bahasa ialah Code Block, Visual Studio, dsb. 1.3.
Program Console
Merupakan program yang menggunakan tekx untuk berkomunikasi dengan pengguna dan lingkungan seperti menampilkan pesan di layar atau membaca input dari keyboard. Console sangat mudah untuk digunakan dan secara umum memiliki sifat yang sama setiap platform, mudah digunakan, dan berguna untuk mempelajari basis dari bahasa pemrograman. Tabel 1.1. Tabel bahasa permograman , platform dan console
IDE Code::block Visual Studio Express Dev-C++
1.4.
Platform Win/Linux Win Win
Tugas 1. Apa perbedaan bahasa pemrograman, program dan algoritma? 2. Tuliskan tahapan penggunaan compiler yang anda ketahui! 3. Buat program “hello world!” dengan bahasa yang anda kuasai!
2
Console Code::block VS express Dev-C++ compiler
Pemrograman terstruktur
Bab II Struktur, Variabel, Tipe Data 2.1. Struktur Program
Setiap bahasa memiliki struktur sendiri namun memiliki pola yang sama. Pada bahasa C++, struktur bahasa ditunjukan pada program dibawah; // Tulis keterangan #include
int main(){
std::cout<< ”Hello World”:
}
return 0;
Program 2.1. Program Hello Word
Secara sederhana C++ diawali dengan memanggil setiap library yang mungkin untuk digunakan pada program. Pemanggilan library menggunakan inisial #include dan kemudian diikuti nama library yang diinginkan. Sebagai contoh <math> untuk matematika. Bagian ke 2 ialah subprogram dimana setiap fungsi ditulis sebagai sub-class sistem yang terpisah. Setiap program biasanya mempunyai fungsi masing masing. Menuliskan program sebagai sub-class lebih baik daripada menuliskan program dalam satu kesatuan. hal ini bertujuan untuk mengurangi double parameter, mempermudah mencari error, dan mempermudah penulisan. Bagian terakhir ialah main () dimana menghubungkan menjadi sebuah fungsi utuh dari program yang dituliskan. Bagian ini menghubungkan setiap class menjadi satu kesatuan sehingga program yang dituliskan menjadi jelas dan bekerja. Pada bagian akhir dari perintah yang dituliskan pada bagian ini biasanya di beri return 0; untuk menghapus nilai atau menghentikan perhitungan. Bagian Comment pada C++ menggunakan tanda // untuk menandakan bagian tersebut dibaca sebagai komentar yang akan diabaikan oleh compiler. Penulisan comment yang lain ialah /*…………..*/.
Gambar 2.1. Keluaran program “Hello Word!”
3
Pemrograman terstruktur 2.2. Variabel
Penulisan program tidak lepas dari penggunaan dan pendefinisian variable. Variable ini berfungsi untuk mendeklarasikan parameter dan pengalokasian memorinya. Memory yang dialokasikan dapat berfungsi untuk memodifikasi nilai yang di variabelkan. int; double; variable dideklarasikan pada 3 lokasi dasar yakni di dalam fungsi, definisi dari fungsi parameter dan di luar setiap fungsi. Kemudian dikenal variable lokal, parameter formal dan variable global. // Variabel lokal void func1(void){ int x; x = 10; } // Variabel formal int form_var(char *x, char a){ while(*xs) if(*x==a) return 1; else x++; return 0; }
Program 2.2. Variabel local dan variable formal
Untuk mendeklarasikan variable, dapat dilakukan dengan memberikan nilai. Bentuk umumnya ialah type variable_name = value; Berikut contoh penulisan variable int x = 0; float a = 10.0; char b = 'b';
Deklarasi variable global dan statis hanya dilakukan di awal dari program. variable local dideklarasikan disetiap blok dimana digunakan. Perlu diperhatikan jika variable local yang tidak dideklarasikan akan menggunakan nilai pada pen deklarasian sebelumnya. Jika tidak dilakukan penginisialisasian dari variable, maka nilai variable tersebut akan bernilai 0 secara otomatis.
2.3. Konstanta Konstanta merupakan nilai tetap dai program dan tidak dapat dirubah nilainya. Nilai dari konstanta harus berupa type data. Berikut contoh pendeklarasian konstanta. float a = 10;
4
Pemrograman terstruktur
2.4. Tipe data
Di dalam bahasa C++ terdapat 5 tipe data dasar yakni karakter, integer,floating point doublefloating point dan valules (Char, Int. Float, Double dan void). Perhitungan yang dilakukan bergantung pada tipe data dari nilai yang telah diinsialisasikan. Berikut nilai beberapa tipe data; Tabel 2.1.. Tipe data, size dan Signed/Unsigned
Tipe Data int long int Float Double Long double char bool
size 4 byte 4 byte 4 byte 8 byte 8 byte 1 byte 1 byte
signed
unsigned
-2147483648 to 2147483647
0 to 4294967295
-2147483648 to 2147483647
0 to 4294967295
+/- 3.4e +/- 38 (~7 digits) +/- 1.7e +/- 308 (~15 digits) +/- 1.7e +/- 308 (~15 digits)
-128 to 127 True/False
0 to 255
//Contoh penggunaan type data #include using namespace std; int main () { // declaring variables: int xa, yb; int result; // process: xa = 5; yb = 2; xa = xa + 1; result = xa - yb; // print out the result: cout << result;
}
// terminate the program: return 0;
Program 2.3. Penggunaan tipe data
5
Pemrograman terstruktur
Gambar 2.2. Hasil dari program 2.4
Disaat dilakukan penulisan program, sangat penting untuk mengetahui tentang tipe data tersebut. hal ini berkaitan dengan jumlah memory yang dialokasikan untuk setiap tipe data. kesalahan pengunaan tipe data akan menambah jumlah memori yang digunakan atau penggunaan yang tidak tepat dapat menghentikan perhitungan.
2.5. Latihan 1.
Diketahui x = 2,7 y = 3,4 z = 4.0 R=
2. 3.
6
+
(
)
+
+
Tuliskan persamaan tersebut dalam bahasa komputasi! Tuliskan algoritma untuk menyelesaikan persamaan R! Buat program kalkulator sederhana dengan menggunakan struktur yang benar untuk mencari nilai R!.
Bab III Operator
Pemrograman terstruktur
Pengoperasian konstan dan variable dalam sebuah program sangatlah penting mengingat setiap perhitungan berbasis numeric. Pada bahasa C++, setiap operator merupakan symbol non alfabetik yang telah tersedia di keyboard dan dapat dipergunakan sewaktu waktu. = tanda sama dengan digunakan untuk memberikan nilai pada variable dimana bagian kiri tanda = dikenal dengan sebutan lvalue (left-value) dan kanan rvalue (right-value). lvalue harus berupa variable yang akan didefinisikan nilainya di rvalue. a=1; b=a; bagian atas menuliskan jika nilai a ialah satu. Sedangkan bagian bawah mnyatakan jika nilai b = a sehingga dapat disimpulkan jika b=1;
3.1. Aritmatika Bahasa pemrograman biasanya telah mengetahui symbol daar matemtika semisal +-* dan /. Penggunaan dari aritmatika ini sangat sederhana yakni tinggal mendefinisikan variable dan proses aritmatik yang dikehendaki. misalkan c = 2*a+b; Pada contoh di atas dapat dilihat jika nilai dari c ialah 2 kali dari nilai a ditambah dengan nilai b. Nilai a dan b mengadopsi dari deklarasi variable sebelumnya dimana a=b=1. Perlu dicatat jika pada proses aritmatik, peraturan operasi matematika harus tetap dipergunakan. sebagai contohnya ialah penyelesaian persamaan dalam kurung () terlebih dahulu dan kemudian dilanjutkan dengan operasi lainnya. Kebanyakan masalah perhitungan muncul dkarenakan programmer tidak menuliskan operasi secara benar. Misal diberikan persamaan; d=
∗ ∗
+x
penulisan persamaan yang benar ialah
d = ((2*x)/(a*y)) +x Untuk aritmatika tingkat lanjut misalkan operasi trigonometri, biasanya diberikan library lanjutan disetiap bahasa pemrograman yang harus di inisialisasi di awal program. Untuk C++, dapat menggunakan #include <math>. Cara ke 2 ialah dengan menggunakan pendekatan numeric untuk mendapatkan nilai dari trigonometri tersebut.
7
Pemrograman terstruktur
3.2. Pengunaan dan Arti Kombinasi (+=,-=,*=,/=,%=,>>=,<<=,&=,^=,|=) saat dilakukan modifikasi dari nilai variable dengan menggunakan operasi dar nilai yang telah di tetapkan, dapat digunakan gabungan dari beberapa tanda x += a sama artinya dengan x = x+ a ax -= 3 samaartinya dengan a = a – 5 dan y *= a +5 sama artinya dengan y = y *(a+5) // compound assignment operators #include using namespace std; int main () { int a, b=3; a = b; a+=2; return 0; }
cout << a;
Program 3.1. Penggunaan operator
Beberapa kombinasi tanda lain dan penggunaanya == Equal to != Not equal to > Greater than < Less than >= Greater than or equal to <= Less than or equal to
3.3. Latihan
8
Pemrograman terstruktur
Bab IV Basick input output
Meskipun computer telah berjalan secara otomatis saat programdijalankan, programmer masih memerlukan input dan output dari prosesnya. Hal ini dilakukan untuk mengendalikan jalannya program dan melacak proses dari program tersebut melacak error hingga melihat kebenaran perhitungan dari proses jalanya program.
4.1. Output standart (cout) Cout digunakan untuk menuliskan pesan dari program terhadap pengguna. format penulisan cout ialah cout <<” Output”; sebagai contoh cout << "pesan"; cout << 30; cout << z;
Program 4.1 terebut menuliskan 3 macam keluaran output pada layar. pada contoh pertama, layar akan menuliskan setiap pesan yang diberikan diantara "". Untuk contoh ke 2, akan menuliskan angka 30 dan pada contoh ke 3 akan menuliskan nilai dari z. Operator << akan memasukan data dari apapun yang mengikutinya dan menjadikan parameter olahan bagi computer. Pada contoh, data yang dimasukan berupa string, angka 30 dan nilai dari variable z. Perlu diketahui untuk conto pertama menggunakan "" karena merupakan tipe data string sedangkan untuk data z bukan. Hal inilah yang membedakan contoh 1 dan ke 3. Berikut contoh penulisan dengan menggunakan cout; cout cout cout cout
<< << << <<
"First sentence.\n"; "Second sentence.\nThird sentence."; "First sentence." << endl; "Second sentence." << endl;
Empat contoh diatas menunjukan beberapa model penulisan perintah dengan menggunakan cout. Pemberian \n untuk contoh 1 dan ke 2 merupakan symbol untuk mengganti line setelah kalimat dituliskan di layar computer. Penggunaan endl juga mempunyai fungsi yang sama.
4.2. Input standart (cin) Pada kebanyakan program, input merupakan keyboard dan pada C++ hal tersebut di gunakan cin. Format penulisan cin ialah int a; cin >> a;
Contoh 1 mendeklarasikan a sebagai integer dank e 2 mengekstrak nilai cin kedalamnya. Operasi ini membuat program menunggu nilai dari cin yang secara umum berarti menunggu pengguna untuk memasukan sesuatu input dengan menggunakan keyboard. Ekstraksi dari operasi cin akan menggunakan tipe variable setelah >> untuk memutuskan mengartikan karakter yang terbaca sebagai input. Jika input 9
Pemrograman terstruktur
yang dimasukan berupa integer, format penulisan ialah deret digit dan jika string maka deret karakter dan selanjutnya.
4.3. Stringstream; Standar header mendefinisikan tipe yang disebut. Tipe ini mengijikan string untuk diperlakukan sebagai stream dan mengijinkan ekstraksi atau insert ke dalam atau dari string dengan cara yang sama cin dan cout. Fitur ini akan sangat berguna untuk merubah string kedalam nilai numeric atau sebaliknya. Sebagai contohnya string mystr ("1234"); int mynum; stringstream(mynum) >> myint;
Contoh diatas merupakan deklarasi nilai string "1234" menjadi nilai integer 1234. Baris ke3 digunakan variable untuk merubah dari stringstream dari string. Bagian ini menuliskan nilai dari 1234 kedalam variable mynum.
4.4. I/O dengan menggunakan File Selain menggunakan standart output/input, operasi I/O juga dapat dilakukan dengan menggunakan file. pada contoh dibawah merupakan contoh I/O dengan menggunakan .txt file // writing on a text file #include #include using namespace std; int main () { ofstream myfile ("File contoh.txt"); if (myfile.is_open()){ myfile << "Baris I.\n"; myfile << "Baris II.\n"; myfile.close(); }else cout << "Gagal membuka file"; return 0; }
Program 4.1. Program menuliskan File pada .txt
4.5. Latihan (Latihan menyesuaikan praktikum)
10
Pemrograman terstruktur
Bab V Statement dan flow control 5.1. Kondisi If dan else
Kondisi if digunakan sebagai kondisi pada program. Sebagai contohnya ialah argument “Jika nilai x < 10 maka …., untuk yang lainnya maka ……” Argumen diatas menyatakan jika nilai x bernilai lebih besar daripada 10, maka dilakukan proses selanjutnya. Dan jika nilai yang diketahui ialah nilai lain maka proses berbeda dilakukan pada program. Argument tersebut digunakan sesuai dengan bentuk standart if (condition) statement sebagai contohnya if (x < 10){ //proses yang dilakukan }
Pada bentuk dasar tersebut, codition merupakan ekspresi yang akan di evaluasi dengan statement. Ada 2 macam kondisi yang digunakan dalam If yakni true dan false. Untuk kodisi true, statemen akan di eksekusi dan dijalankan dan sebaliknya untuk kondisi false akan diabaikan. Kondisi if biasanya dapat digunakan untuk mengeluarkan suatu nilai dimana berguna untuk pengujian program dengan kondisi yang telah diketahui. Jika dimiliki lebih dari 1 maka if dapat digunakan secara bertingkat atau ditambahkan else. Hal ini dilakukan jika statemen 1 tidak dipenuhi tetapi membutuhkan statement selanjutnya if (x < 10) //statement I else //statement II
5.2. Perulangan While Perulangan while merupakan jenis perulangan yang paling sederhana dengan sintak standar while (ekspresi) statemen Kondisi while akan mengulang statemen disaat ekspresi benar (true). Jika pada saat program dieksekusi dan ekspresi tidak lagi benar. maka perulangan diakhiri dan program tersebut dilanjutkan setelah perulangan. #include using namespace std; int main () { int x = 0; while (x<10) {
11
Pemrograman terstruktur } }
cout << x << ", "; ++x;
cout << "Finish\n";
Program 5.1. Kondisi perulangan while
Pada program 5.1, ditunjukan program perhitungan dengan kelipatan 1 mulai dari 0. Pada saat statemen terpenuhi, maka di tuliskan “Finish” pada akhir perhitungan.
5.3. Do-While Perulangan do-while memiliki kemiripan dengan perulangan while kecuali kondisi dievaluasi setelah eksekusi dari statement. Menjamin paling tidak satu eksekusi dari statemen meskipun kondisi tidak pernah dipenuhi. Sebagai contohnya; #include #include <string> using namespace std; int main () { string str; do { cout << "masukan: "; getline (cin,str); cout << "keluaran: " << str << '\n'; } while (str != "selesai"); return 0; }
Program 5.2. Kondisi perulangan do-while
Program 5.2 merupakan program pengulangan karakter yang diberikan di kolom masukan. Keluaran dari program merupakan segala sesuatu yang dituliskan di kolom masukan dan program tersebut dianggap selesai saat diberikan tulisan “selesai” pada masukan.
5.4. Perulangan for perulangan for diperuntukan untuk iterasi dengan jumlah teretentu. Sintak untuk perulangan for ialah for (initialization; condition; increase) statement Seperti halnya dengan perulangan while, perulangan ini akan mengulang statement saat kondisi true. Sebagai tambahan, perulangan for memberikan lokasi spesifik yang menganduk initialization dan increase. Cara kerja 1. Initialization di eksekusi 12
2. 3. 4. 5.
Condition di uji statemen di eksekusi increase dieksekusi perulangan di akhiri.
Pemrograman terstruktur
#include using namespace std; int main () { for (int n=10; n>0; n--) { cout << n << ", "; } cout << "Selesai\n"; }
Program 5.3. Kondisi perulangan For
5.5. Latihan (Latihan menyesuaikan praktikum)
13
Pemrograman terstruktur
This Page Intentionally Blank
14
Pemrograman terstruktur
Bab VI Array dan Pointer 6.1. Array
Array merupakan sebuah bentuk data dengan tipe yang sama yang diletakan berdekatan yang secara individual dipetakan berdasarkan indeks. Sebagai contoh,array yang mengandung 5 nilai integer dituliskan data 0
1
2
3
4
dimana setiap angka tersebut mewakilkan nilai dari elemen array. 6.1.1. Inisialisasi array Inisialisasi array dapat dilakukan dengan menuliskan int data [5]={0, 1, 2, 3, 4} Disaat deklarasi array biasa dari bidang local, jika tidak diberikan secara spesifik maka elemen tersebut tidak akan terinisialisasi untuk setiap nilai secara default sehingga nilai tersebut tidak terdetreminkan hingga nilai diberikan. Elemen dari global dan local array dipihak lain secara otomatis diinisialisasi nilai default yang secara fundamental bernilai nol. Kumpulan dari nilai diantara kurung {} harus tidak lebih besar daripada jumlah elemen yang dideklarasikan diantara [ ]. Sebagai contoh array data yang dideklarasikan memiliki 5 elemen dan di dalam {} harus memiliki 5 nilai setiap elemen. Disaat inisialisasi dari nilai diberikan, C++ mengijinkan kurunguntuk tidak diisi [ ]. Pada kasus ini, compiler aan mengasumsikan ukuran dari array yang sesuai dengan jumlah nilai yang didalam kurung. 6.1.2. Mengakses nilai array Pada setiap titik dimana array muncul, setiap elemen array didalamnya dapat diakses secara individual sebagaimana jika normal variable yang membaca dan mengganti nilainya. name [index] mengikuti contoh sebelumnya dimana data emmiliki 5 elemen dan setiap elemen merupakan data integer, maka dapat diakses dengan perintah; data [3] = 2; atau a = data[3]; Contoh diatas menampilkan nilai data 2 pada hasil yang diperoleh dari akses nama data pada nilai ke 3 yakni 2. Nilai ini diperoleh karena setiap deklarasi dari array di mulai dari 0 sebagai awal. // arrays example #include using namespace std;
15
Pemrograman terstruktur
int billy [] = {16, 2, 77, 40, 12071}; int n, result=0; int main () { for ( n=0 ; n<5 ; n++ ) { result += billy[n]; } cout << result; return 0; }
Program 6.1. Penulisan array
6.1.3. Array multidimensi Array multidimensi dapat dideskripsikan sebagai array didalam array. Penulisanya dilakukan dengan int name [2][4];
contoh diatas menunjukan akses data pada array baris ke 2 dan kolom ke 4 #include <stdio.h> int main(void){ int t, i, num[3][4]; for(t=0; t<3; ++t) for(i=0; i<4; ++i) num[t][i] = (t*4)+i+1; //menuliskan hasil for(t=0; t<3; ++t) { for(i=0; i<4; ++i) printf("%3d ", num[t][i]); printf("\n"); } return 0; }
Program 6.2. Penulisan array multidimensi
6.2. Pointer Pointer merupakan variabel yang memiliki alamat memori. alamat ini merupakan lokasi dari objeklain didalam memori. Jika pointer dimiliki oleh sebuah variable, maka variable tersebut harus dideklarasikan sebelumnya pada lokasi tertentu pada memori. memori pada computer dapat diasumsikan sebagai kotak kotak memori dimana setiap memori memiliki ukuran 1 byte. Setiap kotak memori dapat dengan mudah dialokasikan mengingat setiap emori memiliki alamat dan pola yang menurun. sebagai contohnya, jika diperlukan memori untuk 1776 maka posisi memori tersebut tepat berada pada 1775 dan 1777 dan tepat 1000 kotak setelah 776 dan 1000 kotak sebelum 2776. 16
Pemrograman terstruktur
Bentuk umum deklarasi pointer type *name; Berikut contoh penulisan program untuk pointer; #include using namespace std; int main () { int firstvalue = 5, secondvalue = 15; int * p1, * p2;
20
}
p1 = &firstvalue; p2 = &secondvalue; *p1 = 10; *p2 = *p1; p1 = p2;
// // // // //
p1 = alamat nilai ke 1 p2 = alamat nilai ke 2 nilai point p1 = 10 nilai point p2 = value p1 p1 = p2 (value of pointer is *p1 = 20; // value pointed by p1 =
cout << "first value is " << firstvalue << endl; cout << "second value is " << secondvalue << endl; return 0;
Program 6.3. Pointer
Contoh ke 2 #include using namespace std; int main () { int firstvalue = 5, secondvalue = 15; int * p1, * p2; p1 = &firstvalue; p2 = &secondvalue; *p1 = 10; *p2 = *p1; p1 = p2; *p1 = 20;
}
// // // // // //
p1 = address of firstvalue p2 = address of secondvalue value pointed by p1 = 10 value pointed by p2 = value pointed byp1 p1 = p2 (value of pointer is copied) value pointed by p1 = 20
cout << "firstvalue is " << firstvalue << endl; cout << "secondvalue is " << secondvalue << endl; return 0;
Program 6.4. Contoh program pointer
6.3. Latihan (Latihan menyesuaikan praktikum)
17
Pemrograman terstruktur
This Page Intentionally Blank
18
Bab VII Fungsi
Pemrograman terstruktur
7.1. Fungsi Fungsi memungkinkan untuk mengatur atau memanuipulasi program secara individual. Hal ini memungkinkan jika diperlukan program yang panjang dan membutuhkan sub-program yang berbeda. Sebagai contohnya ialah program berikut; #include using namespace std; //Fungsi I int tambah (int a, int b){ int r; r=a+b; return r; cout << "The result is R1" << z; } //Fungsi II int kurang (int a, int b){ int r; r=a-b; return r; cout << "The result is R2" << z; } int main (){ int z; z = tambah (5,3)+ kurang (5,6); cout << "The result is " << z; }
Program 7.1. Fungsi
Fungsi sangat berguna disaat program membutuhkan banyak sekali koreksi. Hal ini dapat dilakukan dengan mengeluarkan hasil perhitungan setiap fungsi untuk mendeteksi dimana error muncul atau kesalahan terjadi. Pemanggilan fungsi dilakukan dengan menginisialisasikan nama fungsi tersebut berikut parameter yang menyertainya. Pada program diatas, fungsi dipanggil dengan menggunakan tambah dan kurang yang diikuti nilai dari a dan b. Fungsi tersebut dapat dipanggil di mana pun dengan syarat pemanggilan terebut sesuai.
7.2. Latihan 1. Buat rangkuman berkaitan dengan VOID, 2. Jalankan dan analisa program dibawah ini; 19
Pemrograman terstruktur
// declaring functions prototypes #include using namespace std; void odd (int x); void even (int x); int main() { int i; do { cout << "Please, enter number (0 to exit): "; cin >> i; odd (i); } while (i!=0); return 0; } void odd (int x) { if ((x%2)!=0) cout << "It is odd.\n"; else even (x); } void even (int x) { if ((x%2)==0) cout << "It is even.\n"; else odd (x); } program 7.2. Contoh program bilangan ganjil genap dengan menggunakan fungsi Source ; http://www.cplusplus.com/doc/tutorial/functions/
3. Buat algoritma untuk pemilihan bilangan prima dengan berdasarkan program 7.2
20
Bab VIII Class
Pemrograman terstruktur
8.1. Class Untuk membentuk sebuah objek, pertama harus didefinisikan bentuk umumnya dengan menggunakan keyword class. Class sama dengan struktur. Sebagai contoh penggunaan kelas Class class-name { Private data dan Fungsi Public; Public data dan Fungsi }Objek name list; Sebuah kelas mungkin terdiri dari private sebagaimana dengan public. Sebagaimana dengan bentuk dasarnya, setiap item didefinisikan pada class adalah private. sebagai contoh variable stack dan tos merupakan private. #include using namespace std; #define SIZE 100 // This creates the class stack. class stack { int stack[SIZE]; int tos; public: void init(); void push(int i); int pop(); }; void stack::init(){ tos = 0; } void stack::push(int i) { if(tos==SIZE) { cout << "Stack is full.\n"; return; } stack[tos] = i; tos++; } int stack::pop(){ if(tos==0) { cout << "Stack underflow.\n"; return 0; } tos--; return stack[tos]; } int main(){ stack stack1, stack2; stack1.init();
// create two stack objects
21
Pemrograman terstruktur
}
stack2.init(); stack1.push(1); stack2.push(2); stack1.push(3); stack2.push(4); cout << stack1.pop() cout << stack1.pop() cout << stack2.pop() cout << stack2.pop() return 0;
<< << << <<
" "; " "; " "; "\n";
Program 8.1 Contoh penggunaan class
8.2. Latihan (Latihan menyesuaikan praktikum)
22
UAP
Pemrograman terstruktur
Essay 1. Berikan Penjelasan Mengenai tipe data dan pengaruhnya terhadap penempatan memori. 2. Jelaskan program dibawah ini
Praktikum Buat algoritma program Buat program
23
Pemrograman terstruktur
Daftar Pustaka
Schildt, Herbert.2003.C++: The Cmplete Reference, 4 th Edition.McGraw-Hill Companies Mueller, J Paul, & Cogswell, Jeff.2009.C++ All - in – One For Dummies; 2 nd Edition. Willey Publishing, Inc, River Street http://www.cplusplus.com/doc/tutorial/functions/ Acces date 05/10/2016 14.00
24