modul algoritma 2013

38
Institut Teknologi Nasional Malang MODUL ALGORITMA DAN PEMROGRAMAN By: Laboratorium Pemrograman dan RPL

Upload: zona-bprastyo

Post on 23-Oct-2015

33 views

Category:

Documents


0 download

TRANSCRIPT

Institut Teknologi Nasional Malang

MODUL ALGORITMA DAN PEMROGRAMAN By: Laboratorium Pemrograman dan RPL

Laboratorium Pemrograman dan RPL 1

Daftar Isi

Daftar Isi ........................................................................................................................ 1

BAB I .............................................................................................................................. 3

PENGENALAN C++ ..................................................................................................... 3

1.1 Include ....................................................................................................... 3

BAB II ............................................................................................................................. 6

VARIABEL DAN TIPE DATA ......................................................................................... 6

2.1 Variabel ..................................................................................................... 6

2.2 Deklarasi .................................................................................................... 7

2.3 Tipe Data ................................................................................................... 8

BAB III .......................................................................................................................... 13

OPERATOR DAN STATEMENT I/O ............................................................................ 13

3.1 Operator .................................................................................................. 13

3.13 Operator Hubungan ................................................................................ 14

3.2 Statement I/O .......................................................................................... 19

BAB IV .......................................................................................................................... 20

KONDISI ................................................................................................................... 20

4.1 Pernyataan IF .......................................................................................... 20

4.2 Pernyataan Switch................................................................................... 22

BAB V ........................................................................................................................... 26

PENGULANGAN ....................................................................................................... 26

5.1 Pernyataan For ........................................................................................ 26

5.2 Pernyataan While .................................................................................... 27

5.3 Pernyataan do-while ............................................................................... 28

BAB VI .......................................................................................................................... 29

FUNGSI DAN PROSEDUR ......................................................................................... 29

6.1 Fungsi ...................................................................................................... 29

Laboratorium Pemrograman dan RPL 2

BAB VII ......................................................................................................................... 35

ARRAY ...................................................................................................................... 35

7.1 Array ........................................................................................................ 35

Laboratorium Pemrograman dan RPL 3

BAB I

PENGENALAN C++

C++ adalah bahasa pemrograman komputer yang di buat oleh (Bjarne

Stroustrup) merupakan perkembangan dari bahasa C dikembangkan di Bell Labs

(Dennis Ritchie) pada awal tahun 1970-an, Bahasa itu diturunkan dari bahasa

sebelumnya, yaitu BCL, Pada awalnya, bahasa tersebut dirancang sebagai bahasa

pemrograman yang dijalankan pada sistem Unix, Pada perkembangannya, versi ANSI

(American National Standart Institute) Bahasa pemrograman C menjadi versi

dominan, Meskipun versi tersebut sekarang jarang dipakai dalam pengembangan

sistem dan jaringan maupun untuk sistem embedded, Bjarne Stroustrup pada Bel labs

pertama kali mengembangkan C++ pada awal 1980-an

Setiap program C++ mempunyai bentuk umum seperti dibawah ini:

1.1 Include

Adalah salah satu pengarah preprocessor directive yang tersedia pada

C++. Preprocessor selalu dijalankan terlebih dahulu pada saat proses kompilasi

terjadi. Bentuk umumnya:

Script tersebut tidak diakhiri dengan tanda semicolon, karena bentuk

tersebut bukanlah suatu bentuk pernyataan, tetapi merupakan preprocessor

directive. Baris tersebut menginstruksikan kepada kompiler yang menyisipkan

file lain dalam hal ini file yang berakhiran .h (file header) yaitu file yang berisi

sebagai deklarasi, contohnya:

#prepocessor directive

void main()

{

// Batang Tubuh Program Utama

}

#include <nama_file>

Laboratorium Pemrograman dan RPL 4

#include <iostream.h>

Diperlukan pada program yang melibatkan objek cout.

#include <conio.h>

Diperlukan bila melibatkan clrscr(), yaitu perintah untuk

membersihkan layar.

#include <iomanip.h>

Diperlukan bila melibatkan setw() yang bermanfaat untuk mengatur

lebar dari suatu tampilan data.

#include <math.h>

Diperlukan pada program yang menggunakan operasi sqrt() yang

bermanfaat untuk operasi matematika kuadrat.

1.2 Fungsi Main()

Fungsi ini menjadi awal dan akhir eksekusi program C++. Main adalah

nama judul fungsi. Melihat bentuk seperti itu dapat kita ambil kesimpulan

bahwa batang tubuh program utama berada didalam fungsi main().

Pembahasan lebih lanjut mengenai fungsi akan diterangkan kemudian. Yang

sekarang ditekankan adalah kita menuliskan program utama kita didalam

sebuah fungsi main().

1.3 Komentar

Komentar tidak pernah di-compile oleh compiler. Dalam C++ terdapat

2 jenis komentar, yaitu:

/* Komentar anda */

Komentar dapat diletakkan di dalamnya dan dapat mengapit 2 atau

lebih baris.

//Komentar anda

Laboratorium Pemrograman dan RPL 5

Komentar dapat diletakkan setelah tanda //, namun hanya berguna

untuk 1 baris saja.

1.4 Tanda Semicolon

Tanda semicolon “;” digunakan untuk mengakhiri sebuah pernyataan.

Setiap pernyataan harus diakhiri dengan sebuah tanda semicolon.

1.5 Mengenal cout

Pernyataan cout merupakan sebuah objek di dalam C++, yang

digunakan untuk mengarahkan data ke dalam standar output (cetak pada

layar).

Contoh:

Tanda “<<” merupakan sebuah operator yang disebut operator

“penyisipan/peletakan”.

void main()

{

cout<<"Halo dunia!";

}

Laboratorium Pemrograman dan RPL 6

BAB II

VARIABEL DAN TIPE DATA

2.1 Variabel

Variabel adalah suatu pengenal (identifier) yang digunakan untuk

mewakili suatu nilai tertentu di dalam proses program. Berbeda dengan

konstanta yang nilainya selalu tetap, nilai dari suatu variabel bisa diubah-ubah

sesuai kebutuhan. Untuk memperoleh nilai dari suatu variabel digunakan

pernyataan penugasan (assignment statement), yang mempunyai sintaks

sebagai berikut:

Nama dari suatu variabel dapat ditentukan sendiri oleh program

dengan aturan sebagai berikut:

1. Terdiri dari gabungan huruf dan angka dengan karakter pertama

harus berupa huruf. Bahasa C++ bersifat case-sensitive, yang

artinya huruf besar dan kecil dianggap berbeda. Jadi antara nim,

NIM, dan Nim dianggap berbeda.

2. Tidak boleh mengandung spasi.

3. Tidak boleh mengandung simbol-simbol khusus, kecuali garis

bawah (underscore). Yang termasuk simbol khusus yang tidak

diperbolehkan antara lain:

$, ?, %, #, !, &, *, (, ), -, +, =, dsb.

4. Panjangnya bebas, tetapi hanya 32 karakter pertama yang terpakai.

Contoh penamaan variabel yang benar:

NIM, a, x, nama_mhs, f3098, f4, nilai, budi, dll.

Contoh penamaan variabel yang salah:

%nilai_mahasiswa, 80mahasiswa, rata-rata, ada spasi, penting!,

dll.

variabel = ekspresi;

Laboratorium Pemrograman dan RPL 7

2.2 Deklarasi

Deklarasi diperlukan bila kita akan menggunakan pengenal (identifier)

dalam program. Identifier dapat berupa variabel, konstanta, dan fungsi.

2.2.1 Deklarasi Varabel

Bentuk umumnya:

Contoh:

Contoh:

2.2.2 Deklarasi Konstanta

Ada 2 tipe deklarasi konstanta, yaitu:

1. Menggunakan keyword const

Contoh:

Berbeda dengan variabel, konstanta bernama tidak dapat dirubah jika

telah diinisialisasi.

nama_tipe nama_variabel;

int x; //Deklarasi x bertipe integer

char y, huruf, nim[10]; //Deklarasi variabel char

float nilai; //Deklarasi variabel bertipe float

double beta; //Deklarasi variabel bertipe double

int array[5][4]; //Deklarasi variabel bertipe integer

#include <iostream.h>

void main()

{

int n;

n=66; //sama juga jika ditulis int n=66;

cout<<n<<endll //n sebagai variabel

cout<<"n"<<endl; //n sebagai karakter

}

const float pi=3.14;

Laboratorium Pemrograman dan RPL 8

2. Menggunakan #define

Contoh:

Keuntungan menggunakan #define apabila dibandingkan

dengan const adalah kecepatan kompilasi, karena sebelum

kompilasi dilaksanakan, kompiler pertama kali mencari simbol

#define (oleh sebab itu mengapa # dikatakan preprocessor

directive) dan mengganti semua pi dengan nilai 3.14.

Contoh:

2.3 Tipe Data

2.3.1 Tipe Dasar

Adalah tipe data yang dapat langsung dipakai. Daftarnya dapat dilihat

pada tabel dibawah ini:

Tipe Dasar Ukuran Memory

(byte)

Jangkuan Nilai Jumlah digit

Presisi

Char 1 -128 hingga +127 -

Int 2 -32768 hingga +32767 -

Long 4 -2.147.438.648 hingga

2.147.438.647

-

Float 4 3,4E-38 hingga 3,4E38 6-7

Double 8 1,7E-308 hinnga 1,7E308 15-16

#define pi 3.14

#include <iostream.h>

#define pi 3.14

void main()

{

cout<<pi; //akan muncul 3.14

}

Laboratorium Pemrograman dan RPL 9

Long

Double

10 3.4E-4932 hingga 1.1E4932 19

Perhatikan contoh dibawah ini, tipe data dapat dirubah (type cast)

dengan cara dibawah ini:

Maka nilai P adalah 3 (terjadi truncating).

Tipe data yang berhubungan dengan bilangan bulat adalah char, int,

dan long. Sedangkan lainnya berhubungan dengan bilangan pecahan.

Contoh:

Outputnya adalah:

18125

Darimana angka diperoleh? Jika variabel diinisialisasi, namun nilai

keluarannya diminta, maka kompiler dengan bijak akan menampilkan

nilai acak yang nilainya tergantung dari jenis compilernya.

2.3.11 Karakter & String Literal

String adalah gabungan dari karakter. Perbedaannya dengan tipe data

char adalah mengenai penyimpanannya. Char menyimpan hanya

beberapa karakter saja, sedangkan String dapat menyimpan banyak

karakter, kata, dan kalimat sekaligus.

Contoh:

float x = 3.345;

int p = int(x);

#include <iostream.h>

void main()

{

int n;

cout<<n<<endl; //n sebagai variabel

}

string m="labrpl"; //menyimpan satu kata

char n="l"; //menyimpan satu huruf

Laboratorium Pemrograman dan RPL 10

String Literal dengan fungsi strlen() memiliki fungsi sebagai penghitung

panjang string. Fungsi strlen() dideklarasikan dalam file string.h. Jadi

bila anda ingin menggunakan fungsi strlen(), maka preprocessor

directive #include <string.h> harus dimasukkan dalam program diatas

main().

Contoh:

Outputnya:

14

13

7

1

0

Perhatikan, bahwa disetiap akhir baris pernyataan diakhiri dengan tanda

titik-koma (semicolon) “;”.

Perhatikan juga bahwa:

‘\n’ dihitung satu karakter. \n disebut newline karakter

Endl juga merupakan newline karakter (sama fungsinya seperti

\n). Dalam C++, selain \n terdapat juga beberapa karakter khusus

yang biasa disebut escape sequence characters, yaitu:

2.3.1.2 Keyword & Identifier

Dalam bahasa pemrograman, suatu program dibuat dari elemen-

elemen sintaks individual yang disebut token, yang memuat nama

variable, konstanta, keyword, operator, dan tanda baca.

#include <iostream.h>

#include <string.h>

void main()

{

cout<<strlen("Selamat Pagi.\n")<<endl;

cout<<strlen("Selamat Pagi.")<<endl;

cout<<strlen("Selamat")>>endl;

cout<<strlen("S")<<endl;

cout<<strlen("")<<endl;

}

Laboratorium Pemrograman dan RPL 11

Contoh:

Output :

66

Program diatas memperlihatkan 15 token, yaitu main, (, ), {, int, n, =,

66, ;, cout, <<, endl, return, 0 dan } Token n adalah suatu variable Token

66,0 adalah suatu konstanta Token int, return dan endl adalah suatu

keyword Token = dan << adalah operator Token(, ), {, ;, dan } adalah

tanda baca Baris pertama berisi suatu prepocessor directive yang

bukan bagian sebenarnya dari program

Karakter Keterangan

\0 Karakter ber-ASCII nol (karakter null)

\a Karakter bell

\b Karakter Backspace

\f Karakter ganti halaman (fromfeed)

\n Karakter baris baru (newline)

\r Karakter carriage return ( ke awal baris)

\t Karakter tab horizontal

\v Karakter tab vertikal

\\ Karakter \

\’ Karakter ‘

\” Karakter “

\? Karakter ?

#include <iostream.h>

void main()

{

int n=66;

cout<<n<<endl; //n sebagai variabel

}

Laboratorium Pemrograman dan RPL 12

Latihan

Buatlah program dengan menggunakan define untuk menghitung

volume Tabung (Rumus Volume Tabung : phi x jari-jari x jari-jari x

tinggi) dan Luas Tabung (Rumus Luas tabung : 2 x phi x jari-jari x

tinggi )dimana jari-jari 7 dan tinggi 24.

Laboratorium Pemrograman dan RPL 13

BAB III

OPERATOR DAN STATEMENT I/O

3.1 Operator

Operator adalah simbol yang biasa dilibatkan dalam program untuk

melakukan sesuatu operasi atau manipulasi.

3.1.1 Operator Penugasan

Operator Penugasan (Assignment operator) dalam bahasa C++ berupa

tanda sama dengan (“=”).

Contoh:

Penjelasan:

Variabel “nilai” diisi dengan 80 dan variabel “A” diisi dengan hasil

perkalian x dan y.

3.1.2 Operator Aritmatika

Operator Deskripsi Contoh

+ Penjumlahan C + S

- Pengurangan C – S

* Perkalian C * S

/ Pembagian C / S

% Sisa Pembagian integer ( Modulus) C % S

Tambahan: Operator seperti operasi negasi (~) disebut unary operator,

karena membutuhkan hanya satu buahh operand.

Operator % (modulus) digunakan untuk mencari sisa pembagian antara

dua bilangan. Misalnya: 9%2 = 1

nilai = 80;

a = x*y;

Laboratorium Pemrograman dan RPL 14

Contoh:

Outputnya:

Karena tipe datanya adalah int, maka 82/26=3. Alasannya karena tipe

data int tidak dapat menampung nilai pecahan maupun desimal.

3.13 Operator Hubungan

Operator hubungan digunakan untuk membandingkan hubungan

antara dua buah operand (sebuah nilai atau variabel). Operator

hubungan dalam bahasa C++ yaitu sebagai berikut:

Operator Keterangan Contoh

== Sama dengan (Bukan

assigment)

O == P O sama dengan P

!= Tidak sama dengan O != P O tidak sama dengan P

> Lebih besar O > P O Lebih besar dari pada P

< Lebih kecil O < P O Lebih kecil dari pada P

>= Lebih besar atau sama

dengan

O >=P O lebih besar atau sama

dengan P

<= Lebih kecil atau sama

dengan

O <=P O lebih kecil atau sama

dengan P

#include <iostream.h>

#include <conio.h>

void main()

{

int m=82,n=26;

cout<<m<<" + "<<n<<" = "<<(m+n)<<endl;

cout<<m<<" - "<<n<<" = "<<(m-n)<<endl;

cout<<m<<" * "<<n<<" = "<<m*n<<endl;

cout<<m<<" / "<<n<<" = "<<m/n<<endl;

getch();

}

Laboratorium Pemrograman dan RPL 15

Contoh:

3.1.4 Operator Naik dan Turun (Increment dan Decrement)

Operator Increment merupakan sebuah operator yang dapat

menambahkan angka terus menerus dengan bantuan fungsi For, yang

akan dibahas pada bagian perulangan.

Sedangkan Operator Decrement merupakan sebuah operator yang

dapat mengurangkan angka. Operator Increment ditandai dengan

tanda “++” dan decrement dengan tanda “—“.

Contoh:

#include <iostream.h>

#include <conio.h>

void main()

{

int m=5,n=7;

if(m==n)

{

cout<<m<<" sama dengan "<<n<<endl;

}

else if(m!=n)

{

cout<<m<<" tidak sama dengan "<<n<<endl;

}

else if(m>n)

{

cout<<" lebih besar dari "<<n<<endl;

}

else if(m<n)

{

cout<<" lebih kecil dari "<<n<<endl;

}

getch();

}

#include <iostream.h>

#include <conio.h>

void main()

{

int m=44,n=66;

cout<<"m = "<<m<<", n = "<<n<<endl;

++m; --n;

cout<<"m = "<<m<<", n = "<<n<<endl;

m++; n--;

cout<<"m = "<<m<<", n = "<<n<<endl;

getch();

}

Laboratorium Pemrograman dan RPL 16

Output:

m=44, n=66

m=45, n=65

m=46, n=64

Terlihat bahwa operator pre-increment dan post-increment memiliki

akibat yang sama, yaitu manambah nilai satu pada m dan memasukkan

nilai tersebut kembali ke m (m=m+1). Hal yang sama juga terjadi pada

operator pre-decrement dan post-decrement yang memberikan akibat

yang sama, yaitu mengurangi nilai satu dari n (n = n - 1).

Tetapi bila digunakan sebagai sub-ekspresi, operator post-increment

dan preincrement menunjukkan hasil yang berbeda.

Contoh:

Outputnya:

Penjelasan :

Dalam penugasan yang pertama, m adalah pre-increment, menaikkan

nilainya menjadi 67, yang selanjutnya dimasukkan ke n. Dalam

penugasan kedua, m adalah post-increment, sehingga 67 dimasukkan

#include <iostream.h>

#include <conio.h>

void main()

{

int m=44,n;

n=++m;

cout<<"m = "<<m<<", n = "<<n<<endl;

n=m++;

cout<<"m = "<<m<<", n = "<<n<<endl;

cout<<"m = "<<m++<<endl;

cout<<"m = "<<m<<endl;

cout<<"m = "<<++m<<endl;

getch();

}

Laboratorium Pemrograman dan RPL 17

dahulu ke n baru kemudian nilai m-nya dinaikkan, itu sebabnya

mengapa nilai m = 68 dan n = 67. Dalam penugasan ketiga, m adalah

post-increment, sehingga nilai m (= 68) ditampilkan dahulu ( ke layar )

baru kemudian nilai m dinaikkan menjadi 69. Dalam penugasan

keempat, m adalah pre-increment, sehingga nilai m dinaikkan dahulu

menjadi 70 baru kemudian ditampilkan ke layar. Supaya lebih paham,

perhatikan pula contoh dibawah.

Contoh:

Outputnya:

Penjelasan :

Dalam penugasan untuk n, pertama kali m dinaikkan (++m) menjadi 6,

kemudian m diturunkan kembali menjadi 5, karena adanya --m.

Sehingga nilai m sekarang adalah 5 dan nilai m = 5 inilah yang dievaluasi

pada saat penugasanperkalian dilakukan. Pada baris terakhir, ketiga

sub-ekspresi dievaluasi dari kanan ke kiri.

#include <iostream.h>

#include <conio.h>

void main()

{

int m=5, n;

n=++m * --m;

cout<<"m="<<m<<"n="<<n<<endl;

cout<<++m<<" "<<++m<<" "<<++m<<endl;

getch();

}

Laboratorium Pemrograman dan RPL 18

3.1.5 Operator Bitwise (Logika)

Operator Keterangan Contoh

<< Geser n bit ke kiri (left shift) C<<M

>> Geser n bit ke kanan( right shift) C>>M

&& AND C && M

|| OR C || M

^ XOR C ^ M

~ NOT ~C

Operator Bitwise hanya bisa digunakan pada operand bertipe data int

atau char. Berikut ini diberikan tabel kebenaran untuk operator logika.

Contoh:

Outputnya:

#include <iostream.h>

#include <conio.h>

void main()

{

int m=10,n=2;

cout<<(m<<2)<<endl;

cout<<(m>>2)<<endl;

cout<<(m&n)<<endl;

cout<<(m|n)<<endl;

cout<<(m^n)<<endl;

cout<<~m<<endl;

getch();

}

Laboratorium Pemrograman dan RPL 19

3.1.6 Operator Kondisi

Operator kondisi digunakan untuk memperoleh nilai dari dua

kemungkinan ungkapan1 ? ungkapan2 : ungkapan3 Bila nilai

ungkapan1 benar, maka nilainya sama dengan ungkapan2, bila tidak

maka nilainya sama dengan ungkapan3.

Contoh:

Penjelasan:

Cara menggunakan operator kondisi adalah menentukan kondisi

dengan bantuan operator hubungan. Pada contoh diatas adalah pada

“m<n”. Kemudian tambahkan simbol “?”. Kemudian aksi yang akan

muncul pada m:n. Sehingga membentuk:

3.2 Statement I/O

Pada C++ terdapat 2 jenis I/O dasar, yaitu:

a. Statemen Input adalah Statemen / fungsi yang digunakan untuk

membaca data dari inputing device (keyboard/mouse), contoh

: cout (character out)

b. Statemen Output adalah Statemen yang digunakan untuk

menuliskan data ke layar monitor, contoh : cin (character in).

#include <iostream.h>

#include <conio.h>

void main()

{

int m=26,n=82;

int min=m<n?m:n;

cout<<"Bilangan terkecil adalah "<<min<<endl;

getch();

}

min=operand1<operand2?jika_benar:jikasalah;

Laboratorium Pemrograman dan RPL 20

BAB IV

KONDISI

Suatu Struktur dasar algoritma yang memiliki satu atau lebih kondisi tertentu

dimana sebuah instruksi dilaksanakan jika sebuah kondisi/persyaratan terpenuhi. Ada

beberapa bentuk struktur dasar pemilihan ini:

4.1 Pernyataan IF

Sebuah pernyataan yang dapat dipakai untuk mengambil keputusan

berdasarkan suatu kondisi. Bentuk pernyataan ini ada dua macam:

IF saja, dan

ELSE

Bentuk umumnya dari satu kasus dapat dilihat pada script berikut ini:

Pernyataan dilaksanakan jika dan hanya jika kondisi yang diinginkan terpenuhi,

jika tidak program tidak memberikan hasil apa-apa.

Contoh:

Penjelasan:

Tampak bahwa kalau usia yang dimasukkan lebih dari atau sama dengan 17,

program tidak menghasilkan apa-apa.

Bentuk umumnya dari dua kasus dapat dilihat pada script dibawah ini:

if (kondisi)

Pernyataan;

#include <iostream.h>

#include <conio.h>

void main()

{

int usia;

cout<<"Berapa usia anda: ";

cin>>usia;

if (usia<17)

{

cout<<"Anda tidak diperkenankan menonton"<<endl;

}

getch();

}

Laboratorium Pemrograman dan RPL 21

Contoh:

Pernyataan1 dilaksanakan jika dan hanya jika kondisi yang diinginkan

terpenuhi, jika tidak, lakukan pernyataan2. Jika Anda tidak mempergunakan

pernyataan else program tidak akan error, namun jika anda mempergunakan

pernyataan else tanpa didahului pernyataan if, maka program akan error. Jika

pernyataan1 atau pernyataan2 hanya terdiri dari satu baris, maka tanda { }

tidak diperlukan, namun jika lebih maka diperlukan.

Bentuk umumnya dari banyak kasus dapat dilihat dibawah ini:

#include <iostream.h>

#include <conio.h>

void main()

{

int usia;

cout<<"Berapa usia anda: ";

cin>>usia;

if (usia<17)

{

cout<<"Anda tidak diperkenankan menonton"<<endl;

}

else

{

cout<<"Anda diperkenankan untuk menonton"<<endl;

}

getch();

}

if(kondisi)

{

pernyataan1;

pernyataan2;

pernyataan3;

}

else

{

pernyataan4;

pernyataan5;

pernyataan6;

}

Laboratorium Pemrograman dan RPL 22

Contoh:

4.2 Pernyataan Switch

Pernyataan swich adalah pernyataan yang digunakan untuk

menjalankan salah satu pernyataan dari beberapa kemungkinan pernyataan,

berdasarkan nilai dari sebuah ungkapan dan nilai penyeleksian. Pernyataan

if…else if jamak dapat dibangun dengan pernyataan switch.

#include <iostream.h>

#include <conio.h>

void main()

{

int m=166;

if(m>1000)

{

cout<<m<<" lebih besar dari 1000\n";

}

else

{

if(m>100)

{

cout<<m<<" lebih besar dari 100\n";

}

else if(m>10)

{

cout<<m<<" lebih besar dari 10\n";

}

}

getch();

}

Laboratorium Pemrograman dan RPL 23

Contoh:

Hal – hal yang perlu diperhatikan adalah :

1. Dibelakang keyword case harus diikuti oleh sebuah konstanta, tidak boleh

diikuti oleh ekspresi ataupun variable.

2. Konstanta yang digunakan bertipe int atau char

3. Jika bentuknya seperti diatas maka apabila ekspresi sesuai dengan

konstanta2 maka pernyataan2, pernyataan3 sampai dengan

pernyataanlain dieksekusi. Untuk mencegah hal tersebut, gunakan

keyword break;. Jika keyword break digunakan maka setelah pernyataan2

dieksekusi program langsung keluar dari pernyataan switch. Selain

digunakan dalam switch, keyword break banyak digunakan untuk keluar

dari pernyataan yang berulang ( looping ).

4. Pernyataan lain dieksekusi jika konstanta1 sampai konstantaN tidak ada

yang memenuhi ekspresi.

switch (ekspresi)

{

case konstanta1:

pernyataan1;

break;

case konstanta2:

pernyataan2;

break;

case konstanta3:

pernyataan3;

break;

case konstantaN:

pernyataanN;

break;

default:

pernyataanlain;

}

Laboratorium Pemrograman dan RPL 24

Contoh untuk switch dapat dilihat dibawah ini:

Latihan:

1. Buatlah program untuk mencari apakah bilangan tersebut ganjil atau genap,

dimana bilangan merupakan piranti masukkan

2. Buatlah program untuk menseleksi suatu bilangan dengan ketentuan sebagai

berikut : 0<=nilai <30 : Nilai rendah

30<=nilai < 60 : Nilai sedang

60<=nilai<=100 : Nilai tinggi

#include <iostream.h>

#include <conio.h>

void main()

{

int nilai;

cout<<"Masukkan nilai test: ";

cin>>nilai;

switch (nilai/10)

{

case 10:

case 9:

case 8:

cout<<"A"<<endl;break;

case 7:

cout<<"B"<<endl;break;

case 6:

case 5:

cout<<"C"<<endl;break;

case 4:

case 3:

cout<<"D"<<endl;break;

case 2:

case 1:

case 0:

cout<<"E"<<endl;break;

default:

cout<<"Salah, nilai diluar jangakauan."<<endl;

}

getch();

}

Laboratorium Pemrograman dan RPL 25

3. Buatlah program dalam bentuk menu yang mampu menghitung :

a. Luas dan Keliling Bujur sangkar

b. Luas dan Keliling persegi panjang

c. Luas dan keliling lingkaran

Laboratorium Pemrograman dan RPL 26

BAB V

PENGULANGAN

Sebuah / kelompok instruksi diulang untuk jumlah pengulangan tertentu. Baik

yang terdifinisikan sebelumnya ataupun tidak.

Struktur pengulangan terdiri atas dua bagian :

1. Kondisi pengulangan yaitu ekspresi boolean yang harus dipenuhi untuk

melaksanakan pengulangan

2. Isi atau badan pengulangan yaitu satu atau lebih pernyataan (aksi) yang akan

diulang.

Perintah atau notasi dalam struktur pengulangan adalah :

1. Pernyataan for

2. Pernyataan while

3. Pernyataan do..while

5.1 Pernyataan For

Pernyataan for digunakan untuk menghasilkan pengulangan(looping)

beberapa kali tanpa penggunaan kondisi apapun. Pada umumnya looping yang

dilakukan oleh for telah diketahui batas awal, syarat looping dan

perubahannya.

Pernyataan for digunakan untuk melakukan looping. Pada umumnya

looping yang dilakukan oleh for telah diketahui batas awal, syarat looping dan

perubahannya. Selama kondisi terpenuhi, maka pernyataan akan terus

dieksekusi.

Bentuk umumnya dapat dilihat pada script dibawah ini:

for (inisialisasi ; kondisi ; perubahan)

{

statement;

}

Laboratorium Pemrograman dan RPL 27

Contoh:

5.2 Pernyataan While

Pernyataan while merupakan salah satu pernyataan yang berguna

untuk memproses suatu pernyataan atau beberapa pernyataan beberapa kali.

Pernyataan while memungkinkan statemen-statemen yang ada didalamnya

tidak diakukan sama sekali.

Bentuk Umumnya :

Contoh:

Penjelasan:

Program diatas digunakan untuk melakukan pengulangan tulisan sebanyak 10

kali.

#include <iostream.h>

#include <conio.h>

void main()

{

int i;

for (i=1;i<=100;i++)

{

cout<<i<<" "<<endl;

}

getch();

}

while (kondisi)

{

pernyataan;

}

#include <iostream.h>

#include <conio.h>

void main()

{

int i=0;

while (i<10)

{

cout<<"C++"<<endl;

i++;

}

getch();

}

Laboratorium Pemrograman dan RPL 28

5.3 Pernyataan do-while

Pernyataan do…while mirip seperti pernyataan while, hanya saja pada

do…while pernyataan yang terdapat didalamnya minimal akan sekali

dieksekusi.

Contoh:

Latihan:

1. Buatlah program untuk mencetak deret 10 9 8 7 6 5 4 3 2 1

2. Buatlah program untuk mencetak (gunakan perulangan while dan for)

* * * *

* * *

* *

*

do

{

pernyataan;

}

while (kondisi);

#include <iostream.h>

#include <conio.h>

void main()

{

int i=0;

do

{

cout<<"C++"<<endl;

i++;

}

while (i<10);

getch();

}

Laboratorium Pemrograman dan RPL 29

BAB VI

FUNGSI DAN PROSEDUR

6.1 Fungsi

Function/fungsi adalah satu blok kode yang melakukan tugas tertentu

atau satu blok instruksi yang di eksekusi ketika dipanggil dari bagian lain dalam

suatu program.

Keuntungan modularisasi program :

1. Menghindari penulisan teks program yang sama secara berulangkali

2. Kemudahan menulis dan menemukan kesalahan (debug) program

Bentuk umum deklarasi fungsi:

Keterangan :

- tipenilaibalik =

Tipe nilai yang dikembalikan dengan statemen ‘return’. Tipe default

nya : ‘int’. Untuk menyatakan fungsi yang tidak mengembalikan nilai balik,

dideklarasikan sebagai : ‘void’

- fungsi =

nama fungsi tersebut

- tipeparameter =

Tipe parameter, bila parameter lebih dari satu (1), masing-masing

dipisahkan dengan tanda koma ( , ) untuk menyatakan fungsi tanpa parameter

dispesifikasikan : ‘void’. Bila tipe parameter tidak dispesifikasikan, defaultnya

: ‘void’ Fungsi harus dideklarasikan terlebih dahulu sebelum didefinisikan.

Maksudnya adalah memberitahu compiler jumlah dan tipe parameter yang

diterima dan nilai balik fungsi (bila ada) agar compiler dapat memeriksa

ketepatannya. Definisi fungsi itu sendiri adalah menspesifikasikan tugas fungsi

tersebut.

Tipenilaibalik fungsi (tipepara, … ) ;

Laboratorium Pemrograman dan RPL 30

Contoh:

Jenis-jenis Fungsi:

1. Fungsi dengan Nilai Balik

Bentuk umumnya:

Dari bentuk umum tersebut, ada 3 poin penting yang perlu dijelaskan,

yaitu:

i. tipe_nilai_balik

Menentukan tipe nilai yang diberikan oleh fungsi ketika fungsi

dipanggil. Nilai balik ditentukan melalui pernyataan return.

ii. nama_fungsi

#include <iostream.h>

#include <conio.h>

int tambah (int a, int b )

{

int r;

r = a + b;

return 0;

}

int main ( )

{

int z ;

z = tambah ( 5,3 ) ;

cout << "Hasilnya = "<< z ;

return 0 ;

}

tipe_nilai_balik nama_fungsi(tipe_parameterA,

tipe_parameterB,...)

{

pernyataan_1;

...

pernytaan_n;

return nilai_balik;

}

tipe_nilai_balik nama_fungsi(tipe_parameterA,

tipe_parameterB, ...)

Laboratorium Pemrograman dan RPL 31

iii. parameter

Digunakan untuk melewatkan nilai ke fungsi. Antar parameter

dipisahkan oleh tanda koma (,). Jika tak ada parameter, judul

fungsi berupa:

Contoh:

Manfaat yang bisa kita gunakan dalam fungsi dengan nilai balik

adalah kita dapat melakukan cout terhadap hasil kerja dari fungsi

tersebut dengan memanfaatkan nilai balik tersebut. Contohnya

adalah pada program dibawah ini:

tipe_nilai_balik nama_fungsi()

long kuadrat(long x)

{

long hasil=x*x;

return hasil;

}

Laboratorium Pemrograman dan RPL 32

Jika anda menulis program tersebut, hasilnya akan sama dengan

program sebelumnya. Namun yang membedakan adalah cara penulisan

program. Di program ini, tiap rumus memiliki tubuh/bagian tersendiri dan

terpisah. Sehingga untuk merubahnya sangat mudah, jika kita memiliki

rumus penghitungan yang banyak.

Perlu diingat, bahwa program C++ membaca program selalu dimulai

dari main. Inisialisasi fungsi di awal diperlukan, karena sebagai

#include <iostream.h>

#include <conio.h>

int tambah(int a1, int a2); //inisialisasi fungsi

tambah

int kurang(int b1, int b2); //inisialisasi fungsi

kurang

main()

{

int a,b,t,k;

clrscr();

cout<<"Masukkan angka pertama : ";cin>>a;

cout<<"Masukkan angka kedua : ";cin>>b;

t=tambah(a,b); //memasukkan angka ke fungsi t

k=kurang(a,b); //memasukkan angka ke fungsi k

cout<<"Hasil tambah = "<<t<<"\n"; //akan muncul

hasilnya

cout<<"Hasil kurang = "<<k<<"\n"; //dari nilai

yang dibalikkan

getch();

}

int tambah(int a1, int a2) //angka yang dimasukkan

diproses

{

int tempT;

tempT=a1+a2;

return tempT; //hasil rumus akan dibalikkan ke

fungsi

}

int kurang(int b1, int b2)

{

int tempk;

tempk=b1-b2;

return tempk;

}

Laboratorium Pemrograman dan RPL 33

pemberitahuan bahwa ada fungsi diluar dari main. Sehingga, saat eksekusi

main, fungsi yang tertera di main akan dieksekusi, walaupun fungsi tersebut

diluar dari main.

2. Fungsi tanpa Nilai Balik

Fungsi dengan tipe void berarti tidak memiliki nilai balik.

Contoh:

Pada contoh diatas, kita memiliki sebuah fungsi void pada

tulisSepuluhKali(). Disana, tidak ada statement return. Contoh lainnya

supaya dapat lebih mengerti, dapat disimak pada Program A ini:

#include <iostream.h>

#include <conio.h>

void tulisSepuluhKali()

{

for (int x=0;x<10;x++)

{

cout<<"contoh penggunaan fungsi tanpa

parameter";

}

}

int main()

{

clrscr();

tulisSepuluhKali();

return 0;

}

#include <iostream.h>

#include <conio.h>

void garis(int n); //void dengan paramater

main()

{

clrscr();

garis(25);

getch();

}

void garis(int n)

{

int a;

for (a=1; a<=n; a++) //batas ditentukan dari para

cout<<'*';

cout<<'\n';

}

Laboratorium Pemrograman dan RPL 34

Program B:

Kedua program tersebut akan menghasilkan hasil yang sama.

Perbedaan dari kedua program tersebut adalah program A memiliki

parameter pada fungsi tanpa nilai baliknya. Parameter tersebut

digunakan sebagai pembantu dari looping for. Sedangkan pada

Program B, program tersebut tidak memiliki parameter (void).

Sehingga, untuk membantu program looping for, user harus

memasukkannya ke program.

#include <iostream.h>

#include <conio.h>

void garis(void); //void tanpa parameter

main()

{

clrscr();

garis(25);

getch();

}

void garis(void)

{

int a;

for (a=1; a<=25; a++) //batas dengan ketentuan

cout<<'*';

cout<<'\n';

}

Laboratorium Pemrograman dan RPL 35

BAB VII

ARRAY

7.1 Array

Dalam beberapa istilah, array sering disebut sebagai larik. Array adalah

kumpulan dari nilai-nilai data bertipe sama dalam urutan tertentu yang

menggunakan sebuah nama yang sama. Nilai-nilai data di suatu array disebut

dengan elemen-elemen array. Letak urutan dari elemen-elemen array

ditunjukkan oleh suatu indeks.

Bentuk umum dari variabel array dapat ditulis seperti dibawah ini:

Pada contoh diatas, data yang dapat ditampung yaitu 10 data. Indeks

array selalu dimulai dari angka 0. Sehingga pada kasus diatas, data yang

tersimpan dimulai dari angka 0 hingga 9.

7.1.1 Array 1 Dimensi

Contoh sebelumnya yang kita praktekkan sebelumnya yaitu

merupakan array 1 dimensi. Cara diatas merupakan cara untuk

melakukan inisialisasi. Jika ingin mengisi data, lakukan seperti dibawah

ini:

nama_variabel[indeks]; //ketentuan

int a[5]; //contoh

int numbers[10];

int numbers[10] = {34, 27, 16};

int numbers[] = {2, -3, 45, 79, -14, 5, 9, 28, -1, 0};

char text[] = "Welcome to New Zealand.";

float radix[12] = {134.362, 1913.248};

double radians[1000];

Laboratorium Pemrograman dan RPL 36

Contoh:

Outputnya:

7.1.2 Array 2 Dimensi

Hampir sama dengan array 1 dimensi, yang membuat array 2 dimensi

berbeda adalah daya tampung datanya. Jika di array 1 dimensi, kita

perlu inisialisasi 1 angka untuk menunjukkan berapa data yang bisa

dimasukkan. Di array 2 dimensi, kita bisa menginisialisasikan 2 angka.

Bentuk umum dari array 2 dimensi adalah sebagai berikut:

Contoh diatas menunjukkan bahwa kita dapat mengisi data dari array

00, 01, 02, 03, 04, 10, 11 dan seterusnya. Sehingga, data yang diisi

totalnya menjadi 5 x 5 = 25 data.

#include <iostream.h>

#include <conio.h>

main()

{

int a[5]={10,15,20,25,30};

int b[5]={10,20};

int c[5]={15,0,30};

int j;

// Menampilkan nilai dari element array

cout<<endl;

for(j=0;j<5;j++)

{

cout<<"A ["<<j<<"] = "<<a[j]<<" , B

["<<j<<"] = "<<b[j]<<" , C ["<<j<<"] = "<<c[j]<<endl;

}

getch();

}

tipedata nama_array[jmlh baris][jmlah kolom];

float bil[5][5];

Laboratorium Pemrograman dan RPL 37

Contoh:

Outputnya:

#include <iostream.h>

#include <conio.h>

main()

{

int matrix[3][3]; //inisialisasi awal

int i,j;

for(i=0;i<=2;i++)

{

for(j=0;j<=2;j++)

{

cout<<"Masukkan angka pada baris ke

"<<i<<" kolom ke "<<j<<" : ";

cin>>matrix[i][j];

}

cout<<endl;

}

for(i=0;i<=2;i++)

{

for(j=0;j<=2;j++)

{

cout<<matrix[i][j]<<" ";

}

cout<<endl;

}

getch();

}