• Tidak ada hasil yang ditemukan

MODUL MATA KULIAH PEMROGRAMMAN I (BAHASA VISUAL C++)

N/A
N/A
Protected

Academic year: 2021

Membagikan "MODUL MATA KULIAH PEMROGRAMMAN I (BAHASA VISUAL C++)"

Copied!
49
0
0

Teks penuh

(1)

MODUL MATA KULIAH

PEMROGRAMMAN I

(BAHASA VISUAL C++)

Semester GANJIL Tahun Akademik 2007/ 2008

Penyusun :

Yuyun Yumiarty

PROGRAM DIPLOMA & SARJANA

STMIK BANDUNG

(2)

MODUL 1

PENGENALAN LINGKUNGAN C++

SEJARAH SINGKAT C++

Berbicara tentang bahasa C++ biasanya tidak lepas dari bahasa C, sebagai pendahulunya. Bahasa C dikembangkan oleh Dennis M. Ritchie dan Brian W. Kernighan pada awal tahun 1970. Bahasa C berkembang dilingkungan UNIX (lebih kurang 90% sistem operasi UNIX ditulis dalam bahasa C).

Bahasa C banyak dipakai untuk :

1. Membuat sistem operasi dan program-program sistem

2. Pemrograman yang “dekat” ke perangkat keras (misalnya kontrol peralatan ) 3. Membuat tool kit

4. Membuat program aplikasi (misalnya Dbase, WordStar, Lotus123)

Kelebihan bahasa C, sehingga terpilih untuk aplikasi-aplikasi tersebut adalah kemampuannya untuk membuat kode yang compact, efisien tanpa mengorbankan readability (beda dengan bahasa assembly (bahasa mesin) yang efisien namun susah dibaca, atau bahasa tingkat tinggi lain yang enak dibaca namun tidak efisien. Walaupun tidak dapat diingkari bahwa program dalam bahasa C lebih sulit dibaca (karena compact) dibandingkan dengan bahasa tingkat tinggi yang lain.

Selanjutnya pada tahun 1986, dikembangkan superset C (kompatibel dengan C, namun dilengkapi dengan kemampuan pemrograman berorientasi objek) oleh Bjarne Stroustrup yaitu bahasa C++ (C with Class). Tujuan utama pembuatan C++ adalah untuk meningkatkan produktivitas pemrogram dalam membuat aplikasi, sehingga Greg Perry (1993) sebagai salah satu pelopor industri C++ mengungkapkan bahwa C++ dapat meningkatkan produktivitas pemrogram lebih dari dua kali dibandingkan bahasa prosedural seperti C. Hal ini didasarkan kenyataan bahwa kode yang ditulis dengan C++ lebih mudah untuk digunakan kembali pada program lain (reusability).

(3)

LINGKUNGAN C++ ) Mengaktifkan C++

Program C++ diaktifkan dengan tahapan:

Start | Programs | Visual Studio C++ versi | C++

Selanjutnya akan tampil layar editor seperti pada gambar : Menu Bar Tool Bar

Text Editor

) Meng-Compile dan Me-Link File

Setelah kode program selesai dibuat maka langkah yang harus dilakukan pertama kali adalah meng-Compile dan me-Link file program.

ƒ Proses Compile (Ctrl + F7) adalah mengubah file program anda (.cpp) menjadi file object (.obj). Dalam proses ini program anda akan digabungkan dengan file-file header yang diperlukan.

ƒ Proses Link adalah mengubah file object (.obj) menjadi file eksekusi (.exe). Pada proses ini file-file library serta file object lain akan digabungkan ke dalam program anda.

Dari kedua proses ini apabila pada kode program masih terdapat kesalahan maka, proses selanjutnya yaitu Run, tidak dapat dilakukan.

) Menjalankan Program (Run) -> Ctrl + F5

Program yang selesai di-Compile dan di-Link dengan sukses dapat dijalankan. Dari proses Run akan ditampilkan hasil program yang dibuat.

(4)

STRUKTUR PROGRAM DALAM C++

Berikut ini adalah struktur sebuah program utama dalam bahasa C++. //nama file : ……

//identitas perancang/penulis //deskripsi ringkas dari program <tipe> main()

{

//keterangan program //kamus

//algoritma/ deretan instruksi yang executable return (<retval>);

}

Keterangan :

1. Fungsi main() adalah nama fungsi yang menandai awal dan akhir eksekusi program. Suatu program dalam bahasa C++ harus mempunyai satu fungsi yang bernama main.

2. Return value main akan diberikan ke lingkungan yang menjalankan program (biasanya berupa angka integer). Kebanyakan program tidak mengembalikan nilai sehingga deklarasinya adalah :

void main() { //body …… };

atau program yang mengembalikan nilai integer 0

int main() { //body …… return 0 };

(5)

JENIS KALIMAT (STATEMENT) DALAM C++

Kalimat dalam bahasa C selalu diakhiri dengan tanda titik koma (;). Kalimat dapat digolongkan menjadi dua yaitu kalimat yang tidak eksekusi (komentar) dan yang dieksekusi (instruksi).

) Kalimat (non-executable) :

Komentar dituliskan diantara tanda // dan /*……*/. Disarankan agar setiap komentar dituliskan dalam satu baris, walaupun dalam bahasa C dimungkinkan untuk membuat komentar yang terdiri dari lebih dari satu baris. Komentar tidak akan dieksekusi oleh computer.

Misal :

Komentar dalam satu baris

//Pembuat program : tim programmer stmik bandung

Komentar dalam dua baris

/*Deskripsi : Progam menerima inputan berupa data mahasiswa yang terdiri dari Nim, Nama dan Jurusan */

) Kalimat (executable) :

instruksi yang akan dikerjakan oleh komputer, meliputi pemberian harga, kondisional, pengulangan atau kalimat pencabangan sebagai berikut :

ƒ assignment (dengan operator =) ƒ kondisional if (<kondisi>) { }; if ( ) { } else { }; switch ƒ pengulangan while do while for ƒ pencabangan - goto - break - continue - return

(6)

PROGRAM SEDERHANA DALAM C++ ) Layar editor

(7)

MODUL 2

PERINTAH INPUT/OUTPUT DALAM C++

FUNGSI INPUT

Fungsi input akan meneruskan suatu data agar diproses sebelum dikeluarkan sebagai output. Dalam hal ini kita akan mengenal tiga perintah input dahulu yaitu cin>>, getch() dan getche().

) Format deklarasi fungsi cin>> : Cin>>nama_variabel;

Cin>> seringkali dikombinasikan dengan Cout<< untuk sekedar memberikan keterangan tentang data apakah yang harus dimasukkan dalam Cin>> tersebut. Contoh :

Cin>>Nim; Cin>>Nama;

) Getch() merupakan fungsi input satu karakter tanpa menampilkan karakternya dilayar. Perintah ini sering digunakan untuk menahan layar eksekusi sebelum kembali ke layar editor.

) Getche() merupakan fungsi input satu karakter dengan menampilkan karakternya dilayar.

Menggunakan dua perintah tersebut (getch() dan getche()) harus dengan meng-include file header : #meng-include<conio.h>

FUNGSI OUTPUT

) Format deklarasi fungsi cout<< :

Cout<<“String Control”<<argument;

String Kontrol dapat berupa keterangan yang akan ditampilkan dilayar, argument dapat berupa variabel, Konstanta, bahkan ungkapan

Contoh :

Cout<<”Nim anda : “; Cin>>Nim;

Cout<<”Nim yang diinputkan adalah : “<<Nim<<endl;

(8)

Latihan :

1. Menampilkan data yang diberikan untuk nilai integer.

// Nama file : asign.cpp

// Deskripsi : assigment nilai integer dan ditampilkan #include<iostream.h> void main() { //kamus int i; //program cout<<"Hello"<<endl; i=5;

cout<<"ini nilai i : "<<i<<endl; }

2. Membaca inputan dan menampilkannya

// Nama file : mhs.cpp

// Deskripsi : menginput variabel data mahasiswa dan ditampilkan #include<iostream.h>

#include<conio.h> void main()

{

// kamus

char nim[7]; // deklarasi data string nim char nama[25]; // deklarasi data string nama int umur;

// program

cout<<"data mahasiswa : "<<endl; cout<<“nim anda : “; cin>>nim; cout<<“nama anda : “; cin>>nama; cout<<“umur : “; cin>>umur;

cout<<"data mahasiswa : ”<<nim<<” “<<nama<<” “<<umur<<endl; getch();

(9)

TIPE DATA

Penggunaan tipe data pada bahasa C++ erat kaitannya dengan penggunaan memori, perlu diperhatikan dalam penggunaanya. Terdapat tiga tipe data dalam bahasa C++ yaitu :

1. Tipe Data Dasar terdiri dari :

Tipe Total bit Range Keterangan

Char 8 -128 s/d 127 Karakter

Int 16 -32768 s/d 32767 Integer Float 32 3.4E-38 s/d 3.4e+38 Bilangan

Double 64 1.7e308 s/d

1.7e+308

Bilangan

Void 0 - Tak Bertipe

2. Tipe Bentukan

a. array : sekumpulan elemen bertipe sama

b. struktur komposisi (record) : sebuah tipe yang terdiri dari komponen-komponen bertipe tertentu.

3. Pointer : berisi alamat mesin.

Tipe bentukan dan pointer selanjutnya akan kita pelajari pada modul pemrograman 1 (akhir semester).

ESCAPE SEQUENCES

Disebut escape sequence karena notasi “\” dianggap sebagai karakter escape (menghindar), dalam arti bahwa bukan karakter biasa. Escape sequence biasanya digunakan untuk mengatur tampilan output dilayar. Diantaranya :

Escape sequence Pengertian

\b backspace \n atau endl baris baru (akan sering digunakan) \t tab (default = 8 karakter)

\\ backslash \’ tanda kutip tunggal (‘) \’’ tanda kutip ganda (‘’)

(10)

(aa – menunjukkan angka ASCII ybs)

\aaa Kode ASCII dalam octal

(aaa – menujukkan angka ASCII ybs)

VARIABEL DAN KONSTANTA ) Variabel

Variabel adalah data pada suatu lokasi memori yang nilainya dapat berubah-ubah.

Format Deklarasi veriabel dan tipe data : Tipe Nama_variabel;

Contoh : int Umur;

char Nama[30]; float Nilai_max;

Hal-hal yang perlu diperhatikan dalam pemberian nama variabel yaitu : 1. Terdiri dari abjad, bilangan dan tanda hubung (_)

2. Boleh dimulai oleh tanda hubung(_) atau abjad 3. Tidak boleh dimulai oleh angka

4. Tidak boleh menggunakan operator aritmatika (+ - / * %) dan karakter khusus (; : , # @ $ ^ ! & dan titik (.))

5. Tidak boleh mengandung spasi

6. Jangan menggunakan nama fungsi yang mempunyai arti khusus dalam c++ 7. C++ membedakan huruf besar dan huruf kecil

Contoh :

gaji dan GAJI dan Gaji

merupakan tiga nama variabel yang berbeda

Contoh penulisan nama variabel yang BENAR :

nim nama_mhs _jurusan

(11)

) Konstanta

Konstanta adalah suatu data yang sifatnya tetap.

Format deklarasi konstanta ada dua bentuk yaitu memakai deklarasi const atau memanfaatkan fasilitas makro #define.

const [<tipe>] <nama> = <nilai>

format ini ditulis pada kamus : Contoh :

const double pi = 3.14; const int umur = 40;

#define <nama> <nilai>

format ini ditulis diluar main() : Contoh : #define pi 3.14 #define umur 40 OPERATOR ) Operator Numerik Operator Arti * kali / bagi % modulo (sisa bagi) - kurang ++ increment (plus 1) -- decrement (minus 1)

Catatan : increment dan decrement dapat dilakukan sebelum ekspresi dievaluasi (pre-increment) atau setelah ekspresi dievaluasi (post-decrement)

Contoh :

Pre-increment : x = --i + 1; Post-increment : x = i++ + 1;

(12)

) Operator Bit Operator Arti << shift left >> shift right & and | or ^ xor ~ not

Catatan : operator ini bekerja bit per bit (jadi tergantung kepada representasi bilangan), dibedakan dengan operator logika. Perhatikanlah contoh sebagai berikut : int a,b; /*ekspresi a&b akan berbeda hasilnya dengan a&&b*/

) Operator Relational Operator Arti

> lebih besar

>= lebih besar atau sama dengan

< lebih kecil

<= lebih kecil atau sama dengan

== sama dengan

!= tidak sama dengan

Catatan : Perhatikanlah bahwa test kesamaan dilakukan dengan operator “==” bukan “=”. Operator = dalam bahasa C++ berarti assignment.

Contoh :

Cek kesamaan nilai x dan y, kemudian increment x if (x==y) x++;

untuk kasus ini, x++ akan dilakukan jika x sama dengan y.

) Operator Logika Operator Arti && and || or ! not

(13)

Catatan :

ƒ operator logika adalah operator terhadap nilai boolean (true, false)

ƒ C++ tidak mempunyai tipe data boolean. Dalam pengetasan kondisi untuk if-then, while, do-while, dan for, nilai satu dianggap “true” dan nilai nol dianggap “false” ƒ emulasi data boolean dapat dilakukan dengan beberapa cara :

1. mendefinisikan nilai true dan false lewat #define #define true 1

#define false 0

#define boolean unsigned char 2. menggunakan enumerasi

enum boolean(false,true); atau

enum boolean(true = 1; false = 0); ƒ cara memakai : boolean x; x=true; while(x){ .. .. dst} ) Compound Assigment

Compound assignment hanya dapat dilakukan untuk operator : *, /, % , + , - , << , >> , & , ^ , | Operator Arti X = y Assignment nilai y ke x (x Å y) x *= y x Å x * y x /= y x Å x / y x %= y x Å x % y x += y x Å x + y x -= y x Å x - y dst ………..

(14)

) Operator Kondisional Operator Arti

(k) ?t : f Jika kondisi k benar (berharga != 0), harga ekspresi adalah t, jika tidak harga ekspresi adalah f

Catatan : operator ini biasanya dipakai untuk “menghemat pemakaian kalimat if-then dan/ atau pemanggilan fungsi, dengan maksud agar dihasilkan kode yang lebih kompak dan efisien.

Contoh :

menentukan nilai terbesar dari dua bilangan x dan y (a > b) ? a : b);

Latihan

1. penggunaan operator aritmatika // Nama file : hitung.cpp

// Deklarasi : penggunaan operator aritmatika #include <iostream.h> void main() { // kamus int x,y; // program

cout<<"perhitungan aritmatika : “<<endl; cout<<"nilai x : "; cin>>x; cout<<"nilai y : "; cin>>y; cout<<"x*y = "<<x*y<<endl; cout<<"x/y = "<<(float)x/(float)y)<<endl; cout<<"x+y = "<<x+y<<endl; cout<<"x-y = "<<x-y<<endl; } Catatan :

(float) x dan (float) y, berarti meng-casting tipe data integer menjadi float sebaliknya,

float z;

(15)

2. Menghitung luas lingkaran dengan pemakaian konstanta

// Nama file : luaslingk.cpp

// Deskripsi : menghitung luas lingkaran dari jari-jari yang dibaca // latihan pemakaian konstanta dengan define

#include<iostream.h> #include<conio.h> #define pi 3.14 void main() { // kamus float r; float luas; // program // baca data cout<<"jari-jari lingkaran : "; cin>>r;

// hitung dengan rumus luas = pi*r*r;

// tampil hasil

cout<<"luas lingkaran : "<<luas<<endl; cout<<"akhir program"<<endl; }

Tugas :

Buat program untuk menghitung :

1. luas segi empat (luas = panjang * lebar) dan segi tiga (luas = ½ alas * tinggi) 2. menghitung nilai akhir mahasiswa (NA = 30%UTS + 30%UAS + 40%

Tugas)/3)

3. menghitung total pembayaran belanja dengan ketentuan : ƒ pajak = 15%total_belanja

ƒ diskon = 25%total_belanja

ƒ total_bayar = total_belanja+pajak-diskon

Perhatikan penggunaan tipe data. Setiap no soal dibuat dalam satu file program. Anda harus dapat menentukan mana variabel yang digunakan untuk input, proses dan output. Ingat konsep ALGORITMIK dalam hal SEKUENSIAL yaitu program dieksekusi sesuai urutannya!

(16)

MODUL 3

PENYELEKSIAN DALAM C++

Terdapat dua bentuk penyeleksian dalam bahasa C++ yaitu IF dan SWITCH.

) IF

Pernyataan if membagi suatu alur menjadi dua cabang, berdasarkan persyaratan yang diberikan. Cabang yang pertama dijalankan bila persyaratan dipenuhi, sedangkan cabang yang kedua akan dipilih bila persyaratan tidak dipenuhi.

Diagram alir if()…else…

IF Statement…; Statement…; Statement…; Statement…; Ya Tidak

format deklarasi kondisional if :

if(<ekspresi>)<statement>;

if(<ekspresi>)<statement> else <statement>;

Latihan

1. Menyeleksi inputan berupa bilangan positif atau negatif // Nama file : if1.cpp

// Deskripsi :contoh pemakain if dua kasus komplementer // Membaca sebuah nilai,

// Menuliskan,' nilai a positif, nilai a', jika a>=0 // ' nilai a negatif, nilai a', jika a<0 #include <iostream.h>

(17)

void main() {

//kamus

int a;

//program

cout<<"contoh if dua kasus “;

cout<<"ketikkan suatu nilai integer : "; cin>>a; if(a>=0) { cout<<"nilai a positif”<<a<<endl; } else // a<0 { cout<<"nilai a negatif"<<a<<endl; }

}

2. Menyeleksi temperatur air // Nama file : tempair.cpp

// Deskripsi : contoh pemakain if tiga kasus : wujud air #include<iostream.h> void main() { // kamus int T; // program

cout<<"contoh if tiga kasus "; cout<<"temperatur (derajat,C) : "; cin>>T;

if(T<0) {

cout<<"wujud air = beku pada suhu"<<T<<”derajat”<<endl; }

else if ((T>=0) && (T<=100)) {

cout<<"wujud air = cair pada suhu”<<T<<”derajat”<<endl; }

else /* T>100 */ {

printf("wujud air = gas/uap pada suhu”<<T<<”derajat"<<endl; }

(18)

3. Membandingkan nilai maksimum dua bilangan // Nama file : max.cpp

// Deskripsi : Mencari nilai maksimum dua bilangan yang dibaca #include <iostream.h> void main() { // kamus int a,b; // program

cout<<"masukkan dua bilangan : “<<endl; cout<<”Bilangan 1 : "; cin>>a;

cout<<”Bilangan 2 : "; cin>>b; if(a>=b)

{

cout<<"Nilai yang maksimum adalah "<<a<<endl; }

else /*a<b)*/ {

cout<<"Nilai yang maksimum adalah “<<b<<endl; }

}

Tugas :

Dengan mempelajari contoh program diatas, buatlah program untuk : 1. Menentukan bilangan ganjil dan bilangan genap

2. Menentukan nilai minimum dari 3 bilangan yang diinputkan

3. Dari contoh 3 diatas, gunakan operator kondisional (k)?t : f untuk mengganti perintah if-else

) SWITCH

Perintah switch memiliki sifat yang hampir sama dengan if – else, namun penggunaanya lebih sempit, karena perintah ini hanya khusus untuk memeriksa data yang bertipe karakter atau integer. Yang harus anda ingat format penulisan data berikut :

1 , penulisan data integer (int) ‘1’ , penulisan data character (char) 1.0 , penulisan data decimal (float)

(19)

nah, untuk switch ini yang digunakan format char dan int saja. Perintah switch ini juga digunakan untuk menyelesaikan program dengan banyak cabang atau alternatif.

format deklarasi kondisional switch : switch(<ekspresi>){

case<ekspresi-konstan-1> : <statement-1>; break; case<ekspresi-konstan-2> : <statement-2>; break; case<ekspresi-konstan-3> : <statement-3>; break;

.. .. default : <statement>; } keterangan :

ƒ break artinya akan keluar dari kondisional switch apabila ekspresi benar sudah ditemukan

ƒ default merupakan perintah apabila tidak ada ekspesi benar yang ditemukan maka statement default yang akan dijalankan.

Latihan

1. menentukan harga barang sesuai kode barangnya [S,M,L], dengan parameter acuan berupa karakter (char)

// Nama file : harga.cpp

// contoh kasus dengan switch #include <iostream.h>

void main() {

// kamus

int kode; long int harga; // program

cout<<"ketikkan kode barang : "; cin>>kode;

switch (kode) {

case ‘S’ :

(20)

case ‘M’ : { harga = 100000; break; } case ‘L’ : { harga = 150000; break; } default : {

cout<<"kode barang tidak ada...!!"<<endl; harga = 0;

}

}

cout<<"harga barang dengan kode :”<<kode<<”Rp.”<<harga<<endl;

}

2. Menyeleksi huruf vocal atau konsonan

// Nama file : kon_vokal.cpp

// Deskripsi : contoh kasus dengan switch menentukan huruf vocal atau // konsonan #include <iostream.h> void main() { // kamus char cc; // program

cout<<"ketikkan sebuah huruf : "; cin>>cc; switch (cc)

{ case 'a' : {

cout<<cc<<”adalah huruf vocal"<<endl; break;

} case 'u' : {

cout<<cc<<”adalah huruf vocal"<<endl; break;

}

case 'i' : {

cout<<cc<<”adalah huruf vocal"<<endl; break;

}

case 'e' : {

cout<<cc<<”adalah huruf vocal”<<endl; break;

}

case 'o' : {

(21)

break;

}

default :

cout<<"yang anda ketikkan adalah huruf konsonan"<<endl; }

}

Tugas :

1. Ubah program pada contoh 2 diatas ke dalam format if-else, selanjutnya apa pendapat anda?

2. Buatlah program menggunakan switch untuk menentukan nama hari dari bilangan hari yang dinput, output berupa :

Masukkan bilangan hari : 2

SELASA

3. Buatlah program untuk menentukan nama bulan dari bilangan bulan yang diinput, output berupa :

Masukkan bilangan bulan : 4 MARET

(22)

MODUL 4

PENGULANGAN DALAM C++

Format pengulangan (loop) bertujuan untuk menuliskan beberapa instruksi yang sama kedalam format yang lebih simple. Terdapat tiga bentuk pengulangan (loop) dalam bahasa C++ yaitu FOR, DO…WHILE dan WHILE

) FOR

Format deklarasi looping for :

for (<ekspresi1>;<ekspresi2>;<ekspresi3>)<statement>

dengan penjelasan :

ƒ ekspresi1 : inisialisasi (nilai awal loop) ƒ ekspresi2 : kondisi keluar dari loop

ƒ ekspresi3 : sebagai pengatur kenaikan variable pengendali loop

namun, tidak aneh apabila nanti ditemukan ketiga ekspresi ini berada diluar format deklarasi loop for, sehingga ditemukan bentuk seperti :

for (; ; )<statement>, hal ini akan dijelaskan lebih lanjut.

Latihan

1. Menampilkan nilai integer sebanyak n, dengan nilai n static : n = 10

// Nama file : prifor.cpp

// Deskripsi : baca n, print i s/d n dengan for #include<iostream.h> void main() { // kamus int i; int n; // program

for(i=1; i<=10; i++) {

cout<<i<<; }

cout<<"akhir program “<<endl; }

(23)

2. Menampilkan nilai integer sebanyak n, dengan nilai n ditentukan oleh user.

// Nama file : prifor.cpp

// Deskripsi : baca n, print i s/d n dengan for #include<iostream.h> void main() { // kamus int i; int n; // program cout<<"baca n, tampilkan 1 s/d n"; cout<<"N : "; cin>>n;

for(i=1; i<=n; i++) {

cout<<i<<; }

cout<<"akhir program "<<endl; }

Tugas :

1. Lakukan modifikasi kedua program diatas untuk menampilkan bilangan genap atau bilangan ganjil dalam range nilai n yang ditentukan oleh user 2. Menampilkan kalimat “Hello World…!” sebanyak n kali ke layar

) DO…WHILE

Format deklarasi looping do…while : do<statement>while<ekspresi>

Latihan

1. Menampilkan nilai integer sebanyak n, dengan nilai n ditentukan oleh user

// Nama file : prirep.cpp

// Deskripsi : loop dengan do..while #include<iostream.h> void main() { // kamus int n; int i; // program

(24)

// inisialisasi cin>>n;

i=1;

cout<<"tampilkan I dengan REPEAT : ”; do

{

cout<<i<<; //proses

i++; //elemen berikutnya }

while (i<=n); //kondisi pengulangan cout<<"akhir program "<<endl;

}

2. Menjumlahkan seluruh bilangan yang diinputkan oleh user dengan diakhiri oleh bilangan = 99

// Nama file : prxrep.cpp

// Deskripsi : contoh baca nilai x

// jumlahkan nilai yang dibaca dengan iterate #include<iostream.h> void main() { // kamus int sum; int x; // program

cout<<"masukkan nilai x (int), akhiri dengan 99 : "; cin>>x; if (x==99) { cout<<"kasus kosong “; } else

{ //minimal ada satu data yang dijumlahkan sum=0;

do {

sum = sum+x; //proses

cout<<"masukkan nilai x (int), akhiri dengan 99 : "; cin>>x; //elemen berikutnya

}

while (x!=99); //kondisi pengulangan

cout<<"hasil penjumlahan = “<<sum<<endl; //terminasi* }

cout<<"akhir program "; }

(25)

Tugas :

Lakukan modifikasi pada latihan no 2, untuk menghitung nilai rata-rata yang diinputkan oleh user. Kasus ini bisa dimanfaatkan untuk mencari nilai akhir rata-rata mahasiswa untuk matakuliah pemrograman 1 ini.

) WHILE

format deklarasi while :

while(<ekspresi>)<statement>

statement akan dijalankan apabila ekspresi bernilai benar <true> looping akan terus dijalankan jika kondisi ini terus dipenuhi

Latihan

1. Menampilkan nilai integer sebanyak n, dengan nilai n ditentukan oleh user

// Nama file : priwhile1.cpp

// Deskripsi : baca n, print i = 1 s/d n dengan WHILE (ringkas) #include<iostream.h> void main() { // kamus int n; int i = 1; // program cout<<”nilai n > 0 = "; cin>>n;

cout<<"print i dengan WHILE (ringkas) : “;

while (i<=n) { cout<<i<<; i++; }//i==n }

2. menjumlahkan seluruh bilangan yang diinputkan oleh user dengan diakhiri oleh bilangan = 999

// Nama file : prxwhile.cpp // Deskripsi : contoh baca nilai x

(26)

void main() { // kamus int sum; int x; // program sum = 0;

cout<<"masukkan nilai x (int), akhiri dengan 999 : ";

cin>>x;

while (x!=999) //kondisi berhenti {

sum = sum + x; //proses

cout<<"masukkan nilai x (int), akhiri dengan 999 : "; cin<<x;

}

cout<<"Hasil penjumlahan = "<<sum<<endl; //terminasi }

Tugas :

Menghitung besar honor karyawan yang harus dikeluarkan oleh perusahaan sesuaii dengan jumlah karyawan.

(27)

MODUL 5

ARRAY

PENGERTIAN

Array adalah sekumpulan elemen bertype sama, yang mempunyai sebuah nama (nama array) dan setiap elemen mengacu pada indeksnya.

Array dengan satu indeks disebut array berdimensi satu, vector, larik, atau tabel. Array dengan dua indeks disebut array dua dimensi atau matriks. Array dapat mempunyai dimensi lebih dari dua. Yang harus diperhatikan adalah :

ƒ nama array ƒ dimensi array ƒ ukuran array,

Dalam bahasa C batas minimum nilai indeks selalu 0

Macam array

ƒ Array static, array dengan ukurannya ditentukan saat kompilasi

ƒ Array dinamik, array yang ukurannya didefinisikan pada saat run time dengan perintah alokasi memori.

Untuk selanjutnya akan dibahas mengenai array static

ARRAY STATIC Definisi static :

<type> <nama> [<uk-1][<uk-2>], … contoh definisi array static:

float TabX[10];

int MatriksA[3][3];

<uk-n> menyatakan ukuran array di dimensi ke n dengan indeks selalu mulai dari 0 hingga <uk-n>-1 contoh deklarasi, inisialisasi dan cara mengacu :

deklarasi : cara mengacu :

float TabX[10]; Æ TabX[2]

int MatriksA[3][3]; Æ MatriksA[0][0]

melalui deklarasi : float TabX[10] = {5,3,4,6,2,1,7,9,10,8}; TabX[]

5 3 4 6 2 1 7 9 10 8

(28)

IMPLEMENTASI TIPE DATA ARRAY

1. Deklarasi tipe data array dengan nama TabX, bertipe integer, berdimensi satu dengan ukuran 10 elemen. Selanjutnya data diinputkan dan ditampilkan menggunakan looping for.

//file : array1.cpp

//array static : menginput dan menampilkan data array #include<iostream.h> #include<conio.h> void main() { int i; int TabX[10];

cout<<”input data array : “<<endl; for (i=0; i<10; i++)

{

cout<<“elemen ke “<<i+1<<”:”; cin>>TabX[i]; }

cout<<endl;

cout<<”tampil data array : “<<endl; for (i=0; i<10; i++)

{

cout<<“elemen ke “<<i+1<<”:”<<TabX[i]<<endl; }

getch(); }

2. Array dengan nama TabY, datanya telah terisi pada saat deklarasi yaitu : 2, 5, 3, 7 dan 4. Berikut mengolah data array berdasarkan indeksnya.

//file : array2.cpp

//array static : manipulasi data array #include<iostream.h> #include<conio.h> void main() { int i; int TabY[5] = {2,5,3,7,4}; int a, b, c, d;

cout<<”tampil data array : “<<endl; for (i=0; i<5; i++)

{

cout<<“elemen ke “<<i+1<<”:”<<TabY[i]<<endl; }

(29)

/*penjumlahan data array berdasarkan indeks*/ a=1; b=4; c=TabY[a] + TabY[b]; d=TabY[a-1] + TabY[b-2]; cout<<“nilai c : “<<c<<endl; cout<<“nilai d : “<<d<<endl; getch(); }

Coba anda tebak berapa data yang ditampilkan di layar…???

3. Mendeklarasikan tipe data array berdimensi dua (disebut juga matriks) dengan ukuran 2 X 3. Data matriks telah terisi pada saat deklarasi yaitu [ 2 4 6] dan [7 9 11]

//file : matriks.cpp

//array static multidimensi : menampilkan data matriks #include<iostream.h> #include<conio.h> void main() { //kamus int i, j; int MatriksA[2][3]= { {2,4,6}, {7,9,11}};

cou<<”tampil data matriks : “<<endl; for (i=0; i<2; i++)

{ for(j=0; j<3; j++) { cout<<“Matriks A “<<”[“<<i<<”,”<<j<<”]”<<”=”<<MatriksA[i][j]<<endl; } cout<<endl; } getch(); }

Dapat dilihat bahwa data akan tampil dilayar : MatriksA [0,0] = 2

2 4 6

7 9 11

MatriksA [0,1] = 4 MatriksA [0,2] = 6 MatriksA [1,0] = 7 MatriksA [1,1] = 9 MatriksA [1,2] = 11

(30)

STUDI KASUS TIPE DATA ARRAY

Studi kasus ini akan ditekankan pada penerapan tipe data array pada kasus tertentu yaitu pencarian data (searching) dan pengurutan (sorting) data.

ƒ Pencarian data diimplementasikan untuk mencari data array bertipe integer yang maksimum dan minimum. Serta mencari nilai tertentu pada array.

ƒ Pengurutan data diimplementasikan untuk mengurutkan data array bertipe integer yang diiurutkan secara terurut membesar (ascending) dan terurut mengecil (descending)

PENCARIAN DATA (SEARCHING)

Pencarain data akan diimplemetasikan dalam dua bentuk. Pertama dengan menyimpan data yang dicari ke dalam suatu variabel. Kedua menggunakan mekanisme ketemu (find)

1. Mencari nilai maksimum data array

Menyimpan data yang dicari ke dalam suatu variabel Diagram alir : Maksimum = x[0] For (i=0;i<banyak;i++) x[i]>maksimum Maksimum = x[i] Ya Tidak Misal : int TabX[10] = {5,3,4,6,2} TabX[] 5 3 4 6 2 Indeks ke- 0 1 2 3 4 Berapa nilai maksimum ??

(31)

// file : arraymaks1.cpp

// mencari nilai maksimum data array #include<iostream.h> #include<conio.h> void main() { int bil[10]; int jml_bil,nilai_maks; int i;

//input jumlah bilangan

cout<<"input jumlah bilangan kurang dari 10 : ";cin>>jml_bil;

//input data

for (i=0;i<jml_bil;i++) {

cout<<bilangan ke"<<i+1<<”:”; cin>>bil[i]; }

//menentukan nilai maks nilai_maks=bil[0]; for (i=0;i<jml_bil;i++) { if (bil[i]>nilai_maks) { nilai_maks=bil[i]; } }

//mencetak nilai maks

cout<<"nilai maksimum : "<<nilai_maks<<endl; cout<<endl;

getch(); }

Latihan :

Anda dapat menerapkan bentuk program diatas untuk mencari data minimumnya

2. Mencari nilai tertentu pada array

Mencari data tertentu dengan mekanisme ketemu (find) // file : arrayfind.cpp

// mencari nilai tertentu data array #include<iostream.h> #include<conio.h> void main() { int bil[10]; int jml_bil,nilai_maks;

(32)

//input jumlah bilangan

cout<<"input jumlah bilangan kurang dari 10: ";cin>>jml_bil;

//input data

for (i=0;i<jml_bil;i++) {

cout<<bilangan ke"<<i+1<<”:”; cin>>bil[i]; }

//input data yang dicari

cout<<”masukkan bilangan yang akan dicari : "; cin>>x;

//mencari data

ketemu = 0; i = 0;

while ((i<jml_bil) & (!ketemu) { if(bil[i]==x) { ketemu = 1; } else { i=i+1; } } if (ketemu) {

cout<<x<<”ditemukan pada indeks ke"<<i<<endl; } else { cout<<x<<”tidak ditemukan"<<endl; } getch(); }

(33)

PENGURUTAN DATA (SORTING)

Ada beberapa teknik untuk mengurutkan data, salah satu diantaranya adalah metode

bubble sort. Metode ini sangat terkenal karena kesederhanaannya. pengurutan

dilakukan dengan membandingkan setiap elemen dengan seluruh elemen yang terletak sesudah posisinya.

// file : arraysort.cpp

// mengurutkan nilai secara ascending #include<iostream.h>

#include<conio.h> void main()

{

int bil[10]; int jml_bil, temp;

int i,j;

//input jumlah bilangan

cout<<"input jumlah bilangan kurang dari 10: ";cin>>jml_bil;

//input data

for (i=0;i<jml_bil;i++) {

cout<<bilangan ke"<<i+1<<”:”; cin>>bil[i]; } //urut data for (i=0;i<jml_bil-1;i++) { for(j=i+1;j<jml_bil;j++) { if (bil[i]>bil[j]) { temp=bil[i]; bil[i]=bil[j]; bil[j]=temp; } } } //tampil data

cout<<

"bilangan yang sudah terurut : "<<endl;

for

(i=0;i<jml_bil;i++)

{

cout<<"bilangan ke “<<i+1<<” : ”<<bil[i];

}

getch();

}

(34)

MODUL 6

STRUKTUR KOMPOSISI (RECORD)

PENGERTIAN

Struktur adalah koleksi variabel yang dinyatakan dengan sebuah nama, setiap variabel dapat memiliki tipe yang berlainan.

Definisi struktur komposisi (record) : struct Nama_Struktur { tipe_1 anggota_1; tipe_2 anggota_2; … tipe_n anggota_n; }Variabel_struktur; Cara pengaksesan : Variabel_struktur.Nama_Anggota;

ƒ Contoh definisi variabel berstruktur komposisi : Nama struktur adalah Jam.

struct jam { int hh; int mm; int ss; }Jam_kerja;

ƒ Pengaksesan struktur jam : Jam_kerja.hh = 8;

Jam_kerja.mm = 15; Jam_kerja.ss = 30;

IMPLEMENTASI TIPE DATA STRUKTUR

1. Tipe data struktur didefinisikan dengan nama jam, yang anggotanya terdiri dari hour (hh), minute (mm), second (ss) yang semuanya bertipe integer.

//file : jam.cpp

//input dan tampil data struktur jam #include<iostream.h> #include<conio.h> void main() { struct jam { int hh; int mm; int ss; }Jam_kerja;

(35)

cout<<"input data jam : “;

cout<<”jam : "; cin>>Jam_kerja.hh;

cout<<”menit : "; cin>>Jam_kerja.mm; cout<<”detik : "; cin>>Jam_kerja.ss;

cout<<"tampil data jam : “;

cout<<”jam kerja sekarang : "<< Jam_kerja.hh << ”:” << Jam_kerja.mm << ”:” << Jam_kerja.ss;

getch(); }

2. Tipe data struktur didefinisikan dengan nama data mhs, yang anggotanya terdiri dari nim, nama, dan umur. Data struktur akan diinputkan secara statis

//file : mhs.cpp

//input dan tampil data struktur mhs #include<iostream.h> #include<conio.h> #include<string.h> void main() { struct data_mhs { char nim[7]; char nama[30]; int umur; }info;

//input data mhs secara statis strcpy(info.nim,”1234567”); strcpy(info.nama,”Rocky”); Umur = 20;

cout<<"data mahasiswa : “;

cout<<info.nim<<” “<<info.nama<<” “<<info.umur<<endl; getch();

}

Latihan :

1. Implementasikan tipe data struktur komposisi (record) untuk data : a. Tanggal anggotanya : tanggal, bulan, tahun

b. Titik (point) anggotanya : absis (x), ordinat (y) Lengkapi dengan input dan tampil data.

2. Implementasikan tipe data struktur komposisi (record) untuk data pegawai. Anggotanya terdiri dari nip, nama, dan jabatan.

(36)

MODUL 7

STRUKTUR ARRAY

Pada bahasan ini, akan dijelaskan bagaimana mengkombinasikan tipe data struktur komposisi (record) dengan tipe data array dapat disebut dengan istilah struktur array. Berikut program untuk mengolah data jam kerja yang terdiri dari 5 data jam. Diimplementasikan menggunakan struktur array.

//file : jam_kerja.cpp

//input dan tampil data struktur array jam #include<iostream.h> #include<conio.h> void main() { int i; struct jam { int hh; int mm; int ss; }Jam_kerja[5];

cout<<"input data jam : “; for (i=0;i<5;i++) { cout<<”jam : "; cin>>Jam_kerja[i].hh; cout<<”menit : "; cin>>Jam_kerja[i].mm; cout<<”detik : "; cin>>Jam_kerja[i].ss; }

cout<<"tampil data jam : “; for (i=0;i<5;i++)

{

cout<<”jam kerja sekarang ke "<< i+1 << ”:” << Jam_kerja[i].hh << ”:” << Jam_kerja[i].mm << ”:” << Jam_kerja[i].ss;

getch(); }

Latihan :

Implementasikan tipe data struktur array untuk data : a. Tanggal anggotanya : tanggal, bulan, tahun b. Titik (point) anggotanya : absis (x), ordinat (y) Lengkapi dengan input dan tampil data.

(37)

Berikut program struktur array yang dilengkapi dengan data struktur di dalam struktur. Terdapat :

ƒ Struktur data_tanggal terdiri dari : tanggal, bulan dan tahun.

ƒ Struktur data_mahasiswa terdiri dari : nama dan tanggal lahir. Struktur data_tanggal digunakan untuk format tanggal lahir mahasiswa.

ƒ Program diimplementasikan untuk 3 orang mahasiswa //file : info_mhs.cpp

//input data struktur array mhs #include<iostream.h> #include<conio.h> void main() { int i; struct data_tanggal { int tgl; int bln; int thn; }; struct data_mahasiswa { char nama[30];

struct data_tanggal tgl_lahir; };

struct data_mahasiswa info_mhs[3]; cout<<"input data mahsiswa : “; for (i=0;i<3;i++) { cout<<”nama : "; cin>>info_mhs[i].nama; cout<<”tanggal lahir : "; cout<<”tanggal : "; cin>>info_mhs[i].tgl_lahir.tgl; cout<<”bulan : "; cin>>info_mhs[i].tgl_lahir.bln; cout<<”tahun : "; cin>>info_mhs[i].tgl_lahir.thn; } getch(); } Latihan :

1. Lengkapi program info_mhs.cpp diatas dengan tampil data mahasiswa. 2. Implementasikan untuk data titik (point), sebanyak 5 titik.

(38)

MODUL 8

STRING

PENGERTIAN

String digunakan untuk menangani data yang bertipe teks, dalam bahasa C++ dianggap sebagai array dari karakter. Assigment secara langsung pada objek bertipe string tidak boleh dilakukan.

Konstanta string dituliskan di antara tanda petik ganda. Contoh : “ Ini sebuah string”

Definisi String

Deklarasi string sama seperti mendeklarasikan array bertipe char Bentuk :

Char nama_var[ukuran]; Misal :

Char nama[20];

ƒ artinya string nama akan mampu menampung karakter maksimum sebanyak 19 char karena, string adalah suatu rangkaian karakter yang diakhiri oleh karakter null (‘\0’), karakter NULL secara otomatis akan ditambahkan ke dalam string nama.

Mengakses data string : Misal :

strcpy(nama,”Rocky”); // ini merupakan assignment data string (strcpy) R o c k y \0

Indeks 0 1 2 … 19

Untuk menggunakan fungsi-fungsi string dapat menuliskan : #include<string.h> Memasukkan data string dari keyboard

//file : info_mhs.cpp

//input data struktur array mhs #include<iostream.h>

#include<conio.h> void main()

{

char teks[13]; //string dengan panjang maksimal 12 karakter

cout<<”masukkan sebuah kata : “; cin>>teks; cout<<”kata yang anda masukkan : “<<teks<<endl; getch();

(39)

Cin hanya membaca sebuah kata

Hal ini dikarenakan karakter-karakter yang terletak sesudah spasi tidak bisa ditampung oleh variabel teks seperti pada contoh diatas. Ini disebabkan operator << pada cin hanya bisa membaca masukkan hingga terdapat spasi, tab atau enter. Fungsi cin.get()

Agar tidak hanya sebuah kata yang terbaca, solusinya penggunaan fungsi anggota get() pada objek cin (cin.get()).

Penggunaan fungsi cin.get() //file : string1.cpp //input data string kata #include<iostream.h> #include<conio.h> void main()

{

char teks[30]; //string dengan panjang maksimal 30 karakter

cout<<”masukkan sebuah atau beberapa kata: “; cin.get(teks,30);

cout<<”kata yang anda masukkan : “<<teks<<endl; getch();

} Bentuk :

cin.get(teks,30) dapat juga ditulis menjadi :

cin.get(teks, sizeof(teks));

Fungsi cin.getline()

Penggunaan cin.get() lebih dari satu kali menyebabkan fungsi ini tidak bekerja sebagaimana mestinya. Hal ini disebabkan karena fungsi cin.get() yang pertama kali digunakan tidak membuang sisa data yang tidak dibaca oleh karena itu fungsi cin.get() untuk kasus ini dapat diganti dengan fungsi cin.getline().

Penggunaan fungsi cin.getline() //file : string2.cpp

//input data string nama dan alamat #include<iostream.h> #include<conio.h> void main() { char nama[20]; char alamat[30];

(40)

cout<<”nama anda : “; cin.getline(nama,sizeof(nama)); cout<<”alamat anda : “; cin.getline(alamat,sizeof(alamat));

cout<<”data yang anda masukkan : “<<endl;

cout<<”nama : “<<nama<<”dengan alamat : “<<alamat<<endl; getch();

}

Menghitung panjang string

Menghitung panjang string yang diinput oleh user dapat menggunakan fungsi strlen(). Misalnya didefinisikan :

char bunga[15] = “mawar”;

int panjang;

maka :

panjang = strlen(bunga);

akan memberikan panjang string yang tersimpan pada variabel bunga ke panjang yaitu 5.

Atau menghitung sendiri menggunakan panjang string mulai posisi pertama hingga string[i] bernilai NULL (“\0”)

// file : string3.cpp

//deskripsi : menghitung panjang string #include<iosteam.h> #include<stdlib.h> #include<string.h> void main() { char nm[30]; int i=0;

cout<<"masukkan nama : "; cin.get(nm,sizeof(nm)); while (nm[i]!='\0')

{

cout<<"nama ke "<<i<<”adalah”<<nm[i]<<endl;

i++;

}

printf<<"panjang string : "<<nm<<”adalah”<<i<<endl; getch();

}

Latihan :

(41)

Membandingkan dua buah string

Membandingkan isi varibel string menggunakan fungsi strcmp(). Misal, s1 dan s2 berupa variabel string maka :

strcmp(s1,s2)

akan bernilai integer : - negatif, apabila s1 < s2 - nol, apabila s1 == s2 - positif, apabila s1 > s2 Penggunaan fungsi strcmp()

//file : string4.cpp

//membandingkan isi variabel string #include<iostream.h> #include<conio.h> #include<string.h> void main() { char teks[30];

cout<<”masukkan sebuah kata: “; cin.get(teks,30);

if(!(strcmp(teks,”hello”)) {

cout<<”Benar, itu kata hello”<<endl; }

else {

cout<<”Salah, itu bukan kata hello”<<endl; }

getch(); }

(42)

MODUL 9

POINTER

ILUSTRASI

Terdapat 3 kotak yaitu merah, kuning dan hijau. Kotak merah terdapat di urutan pertama, selanjutnya kuning dan hijau.

1 2 3

Merah Kuning Hijau

Misalkan ada dua orang bertanya yang pertama menanyakan “apakah isi kotak merah ?”, orang kedua bertanya “apakah isi kotak pertama ?”.

y Pertanyaan pertama mengacu ke nama variabelnya.

y Pertanyaan kedua mengacu pada letak atau alamat kotak tadi, cara berfikir ini sama dengan cara berfikir pointer.

Jadi bekerja dengan pointer adalah bekerja dengan alamat. PENGERTIAN

Pointer atau lengkapnya variabel pointer adalah :

Variabel yang nilainya berupa alamat atau lokasi memori dari data atau variabel lain. Isi pointer berupa alamat.

Definisi variabel pointer :

Tipe * Nama_Variabel_Pointer Misalnya :

int *ptr_x;

artinya variabel pointer ptr_x akan menunjuk pada variabel lain yang bertipe int. jadi disini bukan ptr_x yang bertipe integer, melainkan variabel lain yang ditunjuk yang bertipe integer.

Inisialisasi pointer : int x;

int *ptr_x;

ptr_x=&x; /* inisialisasi pointer*/ atau

int *ptr_x=&x; Penjelasan :

(43)

Antara nilai dan alamat float x = 10;

float *ptr_x; ptr_x=&x;

disini x diberi nilai 10, sedangkan variabel pointer ptr_x diberi nilai alamat dari x. Jika x disimpan pada lokasi memori 2300, maka nilai ptr_x juga 2300. Sedangkan penulisan nama variabel pointer didahului oleh tanda (*), menandakan NILAI dari variabel yang sedan ditunjuk.

2300 2400 *ptr_x

12

10

2300

10

ptr_x

Mengakses nilai dan alamat variabel melalui pointer Dideklarasikan dua variabel yaitu :

ƒ Vint // variabel bukan pointer ƒ Pint // variabel pointer

//file : pointer1.cpp

//mengakses nilai dan alamat variabel melalui pointer #include<iostream.h> #include<conio.h> void main() { int Vint = 55; int *Pint;

Pint = &Vint; //pointer menunjuk ke Vint

// mengakses nilai variabel Vint cout<<”nilai Vint : “<<Vint<<endl;

cout<<”nilai yang ditunjuk oleh Pint : “<<*Pint<<endl; //mengakses alamat variabel Vint

cout<<”alamat Vint : “<<&Vint<<endl;

cout<<”alamat yang ditunjuk oleh Pint : “<<Pint<<endl; getch();

}

Latihan :

Lakukan pengujian program diatas, bagaimana pemahaman anda terhadap tipe data pointer.

(44)

MODUL 10

FUNGSI DAN PROSEDUR

PENGERTIAN

Fungsi dan prosedur adalah blok dari kode yang dirancang untuk melaksanakan tugas khusus, dengan tujuan :

ƒ Program menjadi terstruktur, sehingga mudah dipahami dan mudah dikembangkan.

ƒ Dapat mengurangi pengulangan kode (duplikasi kode)

Bahasa C tidak mempunyai bentuk khusus untuk prosedur. Prosedur didefinisikan sebagai fungsi yang tidak mempunyai return value (return value bertipe void)

Bentuk umum fungsi :

ƒ Penentu tipe tidak disebutkan maka keluaran fungsi berupa int.

ƒ Fungsi yang dipanggil sebaiknya dideklarsikan terlebih dahulu (dengan menggunakan prototipe). Selanjutnya pada kuliah ini semua fungsi dan prosedur harus dideklarasikan prototipenya.

Contoh :

int luas(int pj, int lb); //fungsi void tukar(int *a, int *b); //prosedur ILUSTRASI void main() { a; //panggil fungsi a b; //panggil prosedur b c; // panggil fungsi c } Fungsi a; Prosedur b; Fungsi c; Tipe_data nama_fungsi(daftar parameter/variabel) {

/*Deklarasi Parameter*/ tubuh fungsi;

… }

(45)

JENIS PARAMETER PADA FUNGSI DAN PROSEDUR Parameter Formal dan parameter actual

ƒ Parameter formal :

Parameter/ variabel yang ada pada daftar parameter definisi fungsi. ƒ Parameter actual :

Parameter/ variabel (tidak selamanya menyatakan variabel) yang digunakan dalam pemanggilan fungsi.

Parameter Lokal dan Parameter Global ƒ Parameter lokal :

Parameter/ variabel yang dideklarasikan dalam fungsi (hanya dikenal oleh fungsi tempat variabel dideklarasikan)

ƒ Parameter global :

Parameter/ variabel yang dideklarasikan di luar fungsi (dapat dikenal oleh semua fungsi yang terdapat dibawahnya).

Ada 2 cara untuk melewatkan parameter ke dalam fungsi yaitu : 1. Pemanggilan dengan nilai (call by value) :

Pemanggilan fungsi dengan mengirimkan nilai. Nilai parameter actual akan disalin ke parameter formal.

Dalam hal ini parameter actual tidak dapat berubah sekalipun nilai parameter formal berubah.

2. Pemanggilan dengan referensi (call by reference)

Pemanggilan fungsi dengan mengirimkan alamat. alamat parameter formal akan mengacu ke alamat parameter formal.

Perubahan nilai yang terjadi pada parameter formal akan mengubah nilai parameter actual.

Return

Digunakan untuk mengirimkan hasil atau nilai dari suatu fungsi kepada fungsi lain yang memanggilnya, return diikuti oleh argumen yang berupa nilai yang akan dikirim. Contoh :

return (luas); return (*a,*b);

IMPLEMENTASI FUNGSI DAN PROSEDUR ƒ PROSEDUR

//file : prosesur1.cpp

//program mengandung prosedur #include<iostream.h> #include<conio.h> //prototype prosedur void judul(); void main() {

Judul(); /*pemanggilan prosedur*/ getch();

(46)

/*implementasi prosedur*/ void judul()

{

printf(“The C++ Programming Language\n”); }

Prosedur tidak mengembalikan nilai apa pun return valuenya bertipe void

ƒ FUNGSI

Program dibawah ini diimplementasikan menggunakan pemanggilan fungsi call

by value

//file : fungsi1.cpp

//Program Mengandung Fungsi Hitung Luas Segi Empat #include<iostream.h>

#include<conio.h> //prototype fungsi int luas(int pj, int lb); void main()

{

int luas_se;

cout<<"Program menghitung luas segi empat"<<endl;

luas_se = luas(2,3); /*pemanggilan dengan konstanta/ argumen*/ cout<<”Luas segi empat = "<<luas_se<<endl;

getch(); }

int luas(int pj, int lb) {

cout<<"panjang : “<<pj<<endl; cout<<”lebar : “<<lb<<endl; return(pj*lb);

}

) Selanjutnya akan banyak modifikasi penulisan fungsi dan prosedur, perhatikan penjelasan yang akan diberikan !!

) Anda diharapkan mampu memilah kasus-kasus lain yang diberikan, mana yang harus menggunakan fungsi atau prosedur

Latihan :

Anda dapat mengimplementasikan program yang didalamnya terdapat fungsi : ƒ hitung luas Segitiga

(47)

Program dibawah ini diimplementasikan menggunakan pemanggilan fungsi call

by reference

//file : fungsi2.cpp

//Program Mengandung prosedur tukar 2 bilangan dengan pointer #include<iostream.h>

#include<conio.h> //prototype prosedur void tukar(int *x, int *y); void main()

{

int a,b;

cout<<"nilai a : "; cin>>a; cout<<"nilai b : "; cin>>b;

cout<<"nilai a dan b sebelum ditukar : "<<a<<” “<<b<<endl; tukar(&a,&b); //pemanggilan fungsi tukar

cout<<"nilai a dan b setelah ditukar : "<<a<<” “<<b<<endl; getch();

}

void tukar(int *x, int *y) { int z; z=*x; *x=*y; *y=z; } Latihan :

1. Implementasikan program fungsi2.cpp tanpa menggunakan pointer. Bagaimana hasilnya.

2. Buat program untuk mengolah data mahasiswa terdiri dari nim, nama, UTS, UAS dan Tugas. yang didalamnya terdapat fungsi :

- input data, untuk menginput data nim, nama, UTS,UAS dan Tugas - nilai akhir, untuk menghitung nilai akhir = (UTS + UAS + Tugas)/3 - tampil data, untuk menampilkan data nim, nama dan nilai akhir

untuk menyelesaikan latihan ini kenali lagi jenis-jenis parameter yang digunakan didalam fungsi dan prosedur.

(48)

Rekursif

Adalah kemampuan fungsi memanggil dirinya sendiri. Untuk ini akan diterapkan kasus perhitungan faktorial dari suatu bilangan.

Misal :

3! = 3 x 2 x 1 = 6 4! = 4 x 3 x 2 x 1 = 24 dst…

//file : factorial.cpp

//menghitung nilai factorial dari suatu bilangan #include<iostream.h> #include<conio.h> //protype fungsi int fak(int n); void main() { int m; cout<<"bilangan : ";cin>>m;

cout<<"faktorial dari : “<<m<<” adalah "<<fak(m)<<endl; getch(); } int fak(int n) { if (n==0) return (1); else return (n * fak(n-1)); }

(49)

Selamat mempelajari modul ini, ingat jangan pernah bosan untuk mencoba hal-hal baru.

Gambar

Diagram alir if()…else…
ILUSTRASI  void main()  {       a;       //panggil fungsi a       b;        //panggil prosedur b       c;      // panggil fungsi c  }   Fungsi  a; Prosedur b; Fungsi c;

Referensi

Garis besar

Dokumen terkait

Hal ini diduga karena tanaman kakao memerlukan waktu yang relatif lama untuk meningkatkan diameter batang, sehingga umur yang singkat pada pengamatan tidak

Pada mencit diabetes yang diinduksi aloksan menunjukkan penurunan kadar glukosa serum setelah hari ke-4 pemberian ekstrak dengan dosis 500 dan 1000 mg/kg BB, masing-masing

Penelitian ini dilakukan dengan melakukan survai di Pelabuhan Penyeberangan Lembar untuk mendapatkan data waktu menaikkan dan menurunkan kendaraan roda empat (bongkar muat)

Fungsi kalimat perintah yang dipakai pada bahasa Mandailing di Kabupaten Mandailing Natal yaitu sebagai penyampaian maksud suruhan untuk memperoleh tanggapan dari orang yang

Karya genius dapat dilakukan dengan mengembangkan konsep dasar sains dalam sebuah percobaan sederhana meskipun produk yang dihasilkan dalam percobaan sederhana tersebut

Data penelitian yang dikumpulkan dibagi menjadi 2 yaitu data primer ( data fasilitas yang dimiliki, data gambar tata letak fasilitas tersebut, dan data luas lahan

Puji dan syukur kami panjatkan kehadirat Tuhan Yang Maha Esa, karena berkat rahmat dan hidayahNya serta kerja keras tim penyusun telah berhasil menyusun

Beberapa penelitian yang telah dilakukan yang berhubungan dengan PD dan perkiraan usia dari isolasi lilitan stator yang telah dilakukan dengan cara pengukuran PD