modul algoritma dan pemrograman · bahasa c merupakan bahasa pemrograman prosedural, di mana...

80
1 MODUL ALGORITMA DAN PEMROGRAMAN Disusun oleh : Ai Ilah Warnilah, S.T,M.Kom AKADEMI MANAJEMEN INFORMATIKA & KOMPUTER (AMIK BSI) BINA SARANA INFORMATIKA 2015

Upload: others

Post on 20-Nov-2020

24 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: MODUL ALGORITMA DAN PEMROGRAMAN · Bahasa C merupakan bahasa pemrograman prosedural, di mana penyelesaian atas suatu masalah dilakukan dengan membagi-bagi masalah tersebut ke dalam

1

MODUL

ALGORITMA DAN PEMROGRAMAN

Disusun oleh :

Ai Ilah Warnilah, S.T,M.Kom

AKADEMI MANAJEMEN INFORMATIKA & KOMPUTER (AMIK – BSI)

BINA SARANA INFORMATIKA

2015

Page 2: MODUL ALGORITMA DAN PEMROGRAMAN · Bahasa C merupakan bahasa pemrograman prosedural, di mana penyelesaian atas suatu masalah dilakukan dengan membagi-bagi masalah tersebut ke dalam

2

KATA PENGANTAR

Puji dan syukur kehadirat Allah SWT atas petunjuk rahmat dan hidayah-Nya.

Penyusun dapat menyelesaikan Modul ini tanpa ada halangan apapun sesuai dengan waktu

yang telah ditentukan.

Penyusun menyadari bahwa banyak kekurangan yang terdapat pada penyusunan

modul ini serta masih jauh dari kata sempurna. Oleh karena itu kritik dan saran yang

membangun sangat diharapkan demi kesempurnaan modul ini. Penyusun mohon maaf yang

sebesar-besarnya apabila dalam pembuatan modul ini banyak kesalahannya. Serta semoga

modul ini dapat bermanfaat khususnya bagi penyusun, umumnya bagi kita semua dan bagi

pihak yang membutuhkan.

Tasikmalaya, 16 Juni 2015

Penyusun

Page 3: MODUL ALGORITMA DAN PEMROGRAMAN · Bahasa C merupakan bahasa pemrograman prosedural, di mana penyelesaian atas suatu masalah dilakukan dengan membagi-bagi masalah tersebut ke dalam

3

DAFTAR ISI

KATA PENGANTAR .......................................................................................................... i

DAFTAR ISI......................................................................................................................... ii

BAB I

PENDAHULUAN ................................................................................................................ 1

A. Sekilas Perkembangan Bahasa C ................................................................................ 1

B. Sekilas Tentang C++ ................................................................................................... 1

C. Perbedaan antara C dan C++ ....................................................................................... 1

D. Pengenalan IDE Borland C++ ......................................................................................... 2

BAB II

TIPE DATA .......................................................................................................................... 3

A. Pengertian Tipe Data .................................................................................................... 3

B. Jenis Jenis Tipe Data ................................................................................................... 4

BAB III

OPERATOR STRING......................................................................................................... 13

A. Operator Aritmatika .................................................................................................... 13

B. Ekspresi Aritmatika ..................................................................................................... 13

C. Operator Penambah dan Pengurang ........................................................................... 14

D. Operator Relasi / Perbandingan ....................................................................................... 15

E. Operator Logika ........................................................................................................... 15

F. Operator Bitwise .......................................................................................................... 16

G. Operasi String .............................................................................................................. 18

BAB IV

IF ELSE ................................................................................................................................ 20

A. Pengertian IF ................................................................................................................ 20

BAB V

PERULANGAN ................................................................................................................... 26

A. Statement For .............................................................................................................. 26

B. Pernyataan Nested-for ................................................................................................. 27

C. Perulangan Tak Hingga ................................................................................................ 29

D. Pernyataan While ........................................................................................................... 30

E. Statement Do...While Karakteristik ............................................................................. 30

F. Pernyataan Break ......................................................................................................... 31

BAB VI

ARRAY ................................................................................................................................. 33

A. Array ............................................................................................................................ 33

B. Sorting ......................................................................................................................... 38

BAB VII

POINTER ............................................................................................................................. 49

A. Pengertian Pointer ........................................................................................................ 49

Page 4: MODUL ALGORITMA DAN PEMROGRAMAN · Bahasa C merupakan bahasa pemrograman prosedural, di mana penyelesaian atas suatu masalah dilakukan dengan membagi-bagi masalah tersebut ke dalam

4

B. Deklarasi Variabel Pointer ........................................................................................... 49

C. Pointer dan Array ......................................................................................................... 50

D. Pointer dan String ........................................................................................................... 51

E. Pointer dan Pointer ....................................................................................................... 51

BAB VII

FILE HEADER & MACRO ............................................................................................... 54

A. Preprocessor Directives ................................................................................................ 54

BAB IX

FUNGSI ................................................................................................................................ 63

A. Pengertian Fungsi ......................................................................................................... 63

B. Struktur Fungsi ............................................................................................................. 63

C. Pointer dan Array ......................................................................................................... 50

D. Pointer dan String ........................................................................................................... 51

E. Pointer dan Pointer ....................................................................................................... 51

BAB X

STRUCTURE ....................................................................................................................... 69

DAFTAR PUSTAKA ........................................................................................................... 76

Page 5: MODUL ALGORITMA DAN PEMROGRAMAN · Bahasa C merupakan bahasa pemrograman prosedural, di mana penyelesaian atas suatu masalah dilakukan dengan membagi-bagi masalah tersebut ke dalam

5

BAB 1

SEJARAH

A. Sekilas Perkembangan Bahasa C

Bahasa C dikembangken di Bell lab pada tahun 1972 ditulis pertama kali oleh

Brian W. Kernighan dan Denies M. Ricthie merupakan bahasa turunan atau

pengembangan dari bahasa B yang ditulis oleh Ken Thompson pada tahun 1970 yang

diturunkan oleh bahasa sebelumnya, yaitu BCL. Bahasa C, pada awalnya dirancang

sebagai bahasa pemrograman yang dioperasikan pada sistem operasi UNIX.

Bahasa C merupakan bahasa pemrograman tingkat menengah yaitu diantara

bahasa tinggat rendah dan tingkat tinggi yang biasa disebut dengan Bahasa Tingkat

Menengah. Bahasa C mempunyai banyak kemampuan yang sering digunakan

diantaranya kemampuan untuk membuat perangkat lunak, misalnya dBASE, Word Star

dan lain-lain.

B. Sekilas Tentang C++

Pada tahun 1980 seorang ahli yang bernama Bjarne Stroustrup

mengembangkan beberapa hal dari bahasa C yang dinamakan “C with Classes” yang

pada mulanya disebut “a better C” dan berganti nama pada tahun 1983 menjadi C++

oleh Rick Mascitti, dibuat di Laboratorium Bell, AT&T.

Pada C++ ditambahkan konsep-konsep baru seperti class dengan sifat-sifatnya

yang disebut dengan Object Oriented Programming (OOP), yang mempunyai tujuan

utamanya adalah membantu dan mengelola program yang besar dan kompleks.

C. Perbedaan Antara Bahasa C Dengan C++

Bahasa C merupakan bahasa pemrograman prosedural, di mana penyelesaian

atas suatu masalah dilakukan dengan membagi-bagi masalah tersebut ke dalam sub-sub

masalah yang lebih kecil. Sedangkan C++ merupakan bahasa pemrograman yang

memiliki sifat Object Oriented Programming (OOP). Untuk menyelesaikan masalah,

C++ melakukan langkah pertama dengan mendefinisikan class-class yang merupakan

a.-class yang dibuat sebelumnya sebagai abstraksi dari objek-objek fisik. Class tersebut

berisi keadaan objek, anggota-anggotanya, dan kemampuan dari objeknya. Setelah

beberapa class dibuat, masalah dipecahkan menggunakan class.

Page 6: MODUL ALGORITMA DAN PEMROGRAMAN · Bahasa C merupakan bahasa pemrograman prosedural, di mana penyelesaian atas suatu masalah dilakukan dengan membagi-bagi masalah tersebut ke dalam

6

D. Pengenalan IDE Borland C++

IDE merupakan singkatan dari Integrated Development Environment, merupakan

Lembar kerja terpadu untuk pengembangan program. IDE dari Borland C++, dapat

digunakan untuk:

1. Menulis Naskah Program.

2. Mengkompilasi Program ( Compile )

3. Melakukan Pengujian Program ( Debugging )

4. Mengaitkan Object dan Library ke Program ( Linking )

5. Menjalankan Program ( Running)

Page 7: MODUL ALGORITMA DAN PEMROGRAMAN · Bahasa C merupakan bahasa pemrograman prosedural, di mana penyelesaian atas suatu masalah dilakukan dengan membagi-bagi masalah tersebut ke dalam

7

BAB 2

TIPE DATA

A. Pengertian

Tipe data merupakan tempat untuk menentukan pemberian nilai terhadap suatu

variabel yang diberikan oleh user. Selain itu tipe data juga dapat diartikan sebagai

batasan terhadap fungsi tanda pengenal terhadap semua nilai yang diterima. Tipe data

dalam variable menentukan tipe data yang bisa disimpan didalamnya, format data yang

disimpan, dan berapa banyak memori yang dialokasikan untuk menyimpan data

Fungsi Tipe data antara lain:

Merepresentasikan nilai dari suatu variabel maupun konstanta

Penyimpanan data di memori

Menentukan nilai yang dapat diisikan ke dalam sebuah variable.

Sedangkan jenis tipe data ada dua macam:

Tipe dasar atau primitive

Tipe bentukan atau referensi.

Dalam bahasa C++ terdapat lima tipe data dasar, yaitu: int, char, float, double,

dan void. Tipe data memiliki 3 jenis variabel yaitu variabel Numerik, variabel Text,

dan Boolean.

Variabel Numerik : Memungkinkan kita untuk menyimpan data dalam bentuk bilangan.

Variabel numerik dapat dibagi menjadi beberapa bagian yaitu : Bilangan bulat (Integer

“int”), Bilangan Desimal Berpresisi Tunggal (Floating point “float”), Bilangan Desimal

Berpresisi ganda (Double Precision “double”)

Variabel Text : memungkinkan kita untuk menyimpan datadalam bentuk karakter.

Bahasa pemograman C++ menyediakan beberapa tipe data dasar seperti char

(character / karakter Tunggal ) dan String (kumpulan karakter dan kata)

Boolean : pada bahasa Pemograman c++ ditulis dengan menuliskan “bool” merupakan

jenis yang hanya dapat mewakili satu dari dua pilihan yaitu 1 (true) atau (false).

Page 8: MODUL ALGORITMA DAN PEMROGRAMAN · Bahasa C merupakan bahasa pemrograman prosedural, di mana penyelesaian atas suatu masalah dilakukan dengan membagi-bagi masalah tersebut ke dalam

8

Tipe Data Bentuk Penulisan

Boolean Bool

Character Char

Integer Int

Floating Point Float

Double Floating Point Double

String String

Valueless Void

Dari Tipe data diatas bisa kita modifikasi menggunakan modifiers type untuk

memberikan fungsi lebih kepada variabel.

Modifiers Type

Signed Untuk membuat tipe data numerik menjadi negatif

Unsigned Untuk membuat tipe data numerik menjadi Positif

Short Pemesanan jarak dan ukuran memori lebih kecil

Long Pemesanan jarak dan ukuran menjadi lebih Besar

B. Jenis Jenis Tipe Data

1. Integer (int)

Integer adalah salah satu dasar tipe data yang dapat kita gunaka untuk

menyimpan memori berformat angka / bilangan bulat, yaitu bilangan yang tidak

mengandung angka dibelakang koma. Contoh data bilangan bulat adalah 1, 2, 4, 100

dan sebagainya.

Bentuk Umum Penulisan

Int NamaVariabel;

Page 9: MODUL ALGORITMA DAN PEMROGRAMAN · Bahasa C merupakan bahasa pemrograman prosedural, di mana penyelesaian atas suatu masalah dilakukan dengan membagi-bagi masalah tersebut ke dalam

9

Contoh deklarasi

int nilai = 95;

Contoh 1 :

#include <iostream>

int main()

{

// Deklarasi variabel angka & hasil dengan tipe data int

int angka, hasil;

cout<<"Masukan angka = ";cin>>angka;

hasil = angka * 5;

cout<<"hasil dari "<<angka<<" X 5 adalah "<<hasil;

return 0;

getch();

}

Hasil Output :

Gambar 2.1

2. Float Point (float)

Float adalah salah satu tipe data yang bersifat menyatakan bilangan pecahan /

real / mengandung angka dibelakang koma, maupun eksponensial. Tipe data float dapat

menyatakan bilangan real dengan ketelitian relatif lebih rendah jika dibanding double

(hingga 7 digit di belakang koma).

Bentuk Umum Penulisan

float NamaVariabel;

Page 10: MODUL ALGORITMA DAN PEMROGRAMAN · Bahasa C merupakan bahasa pemrograman prosedural, di mana penyelesaian atas suatu masalah dilakukan dengan membagi-bagi masalah tersebut ke dalam

10

Contoh 2

#include <iostream>

int main(){

float jarijari, luas;

const float p = 3.14;

cout<<"Masukan Jari-Jari Lingkaran = ";cin>>jarijari;

luas = p * (jarijari*jarijari);

cout<<"Luas Lingkaran = 3,14 X "<<jarijari<<" X "<<jarijari<<" = "<<luas;

return 0;

getch();

}

Hasil Output :

Gambar 2.2

3. Double Floating Point (double)

Sama seperti float, Double merupakan salah satu tipe data yang bersifat

menyatakan bilangan pecahan / real / mengandung angka dibelakang koma, maupun

eksponensial. Perbedaan double dengan float hanya pada ukuran memori, jangkauan

nilai yang dapat disimpan dan tipe data double dapat menyatakan bilangan real dengan

ketelitian tinggi (hingga 15 digit di belakang koma).

Bentuk Umum Penulisan

double NamaVariabel;

Contoh deklarasi

double nilai = 92,50;

Contoh 3.

Page 11: MODUL ALGORITMA DAN PEMROGRAMAN · Bahasa C merupakan bahasa pemrograman prosedural, di mana penyelesaian atas suatu masalah dilakukan dengan membagi-bagi masalah tersebut ke dalam

11

#include <iostream

int main(){

double jarijari, luas;

const float p = 3.14;

cout<<"Masukan Jari-Jari Lingkaran = ";cin>>jarijari;

luas = p * (jarijari*jarijari);

cout<<"Luas Lingkaran = 3,14 X "<<jarijari<<" X "<<jarijari<<" = "<<luas;

return 0;

}

Hasil Output :

Gambar 2.3

4. Karakter (Char)

Char Adalah salah satu tipe data sembarang huruf, angka dan tanda baca

tunggal. Dalam C++, tipe karakter dinyatakan dalam "char.

Dalam C++, tipe karakter selalu diapit oleh petik tunggal. Sedangkan satu

karakter yang diapit oleh tanda petik ganda akan dianggap sebagai string. Sebagai

contoh 'A' adalah karakter, sedangkan "A" adalah string yang terdiri dari satu karakter.

String sendiri terbentuk dari minimal satu tipe data char dan akan dibahas setelah ini.

Bentuk Umum Penulisan

char NamaVariabel;

Contoh deklarasi

char IndeksNilai = 'A';

Contoh 4

#include <iostream>

int main(){

// Deklarasi variabel IndeksNilai

// Dengan tipe data char

Page 12: MODUL ALGORITMA DAN PEMROGRAMAN · Bahasa C merupakan bahasa pemrograman prosedural, di mana penyelesaian atas suatu masalah dilakukan dengan membagi-bagi masalah tersebut ke dalam

12

// dan mengisinya dengan nilai 'A'

char IndeksNilai = 'A';

cout<<"Indek Nilai = "<<IndeksNilai;

return 0;

}

Hasil Output :

Gambar 2.4

5. String

Tipe ini digunakan untuk merepresentasikan data yang berupa teks (kumpulan

karakter), tipe data string biasa disebut array of character / array dari tipe data char /

kumpulan dari char. Contoh data string adalah "Andi" , "Belajar C++" , dan sebagainya.

Bentuk Umum Penulisan

char NamaVariabel[nilai];

6. Boolean (bool)

Boolean adalah salah satu tipe data pilihan yang hanya memiliki dua nilai

yaitu True (Benar) atau False (Salah). Tipe data ini merepresentasikan data-data yang

hanya mengandung dua buah nilai, yaitu nilai logika (boolean). Nilai logika itu sendiri

hanya terdiri dari nilai benar (biasanya direpresentasikan dengan nilai selain 0 ,

biasanya dengan nilai 1) dan salah (direpresentasikan dengan nilai 0).

Bentuk Umum Penulisan

bool NamaVariabel;

Contoh Deklarasi

bool benar = 0; //yang berarti false

Contoh 5

#include <iostream>

int main(){

// Mendeklarasikan variabel benar

// Variabel benar menggunakan tipe data bool

Page 13: MODUL ALGORITMA DAN PEMROGRAMAN · Bahasa C merupakan bahasa pemrograman prosedural, di mana penyelesaian atas suatu masalah dilakukan dengan membagi-bagi masalah tersebut ke dalam

13

bool benar;

// Meminta input dari user

int a, b;

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

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

// Melakukan assigment terhadap variabel benar

benar = a > b;

if(benar == true){ // Dapat ditulis: if(benar){

cout<<"\na lebih besar dari b";

} else{

cout<<"\na lebih kecil / sama dengan b";

}

return 0;

}

Hasil Output

Gambar 2.5

7. Perintah Keluaran

Perintah standar output yang disediakan oleh Borland C++, diantaranya adalah :

printf( )

puts( )

putchar( )

cout( )

Page 14: MODUL ALGORITMA DAN PEMROGRAMAN · Bahasa C merupakan bahasa pemrograman prosedural, di mana penyelesaian atas suatu masalah dilakukan dengan membagi-bagi masalah tersebut ke dalam

14

printf( ) Fungsi printf( ) merupakan fungsi keluaran yang paling umum digunakan

untuk menampilkan informasi kelayar.

1. Penggunaan Penentu Lebar Field

2. Penggunaan Escape Sequences.

puts( ) Perintah puts( ) sebenarnya sama dengan printf(), yaitu digunakan untuk

mencetak string ke layar. puts( ) berasal dari kata PUT STRING.

1. putchar( )

2. cout

3. Fungsi Manipulator

- endl

- end

- flush( )

- dec( )

- hex( )

- oct( )

- setbase( )

- setw( )

- setfill( )

- setprecision( )

- setosflags( )

8. Perintah Masukan

Diantaranya adalah: scanf( ) gets( ) cout( ) getch( ) getche( )

printf( ) puts( )

Harus menentukan tipe data untuk data

string, yaitu %s

Tidak Perlu penentu tipe data string, karena

fungsi ini khusus untuk tipe data string.

Untuk mencetak pindah baris, memerlukan

notasi ‘ \n ‘

Untuk mencetak pindah baris tidak perlu

notasi ‘ \n ‘ , karena sudah dibeikan secara

otomatis.

Page 15: MODUL ALGORITMA DAN PEMROGRAMAN · Bahasa C merupakan bahasa pemrograman prosedural, di mana penyelesaian atas suatu masalah dilakukan dengan membagi-bagi masalah tersebut ke dalam

15

Tabel 3.4. Tipe Data (16 bit) Dalam C.

TIPE UKURAN

MEMORI

JANGKAUAN NILAI

unsigned char 8 bit 0 ‐ 255

Char 8 bit ‐128 ‐127

Enum 16 bit ‐32768 ‐ 32767

unsigned int 16 bit 0 ‐ 65535

short int 16 bit ‐32768 ‐ 32767

Int 16 bit ‐32768 ‐ 32767

unsigned long 32 bit 0 ‐ 4294967295

Long 32 bit 2147483648 ‐ 2147483647

Float 32 bit 3.4E‐38 ‐ 3.4E+38

Double 64 bit 1.7E‐308 ‐ 1.7E+308

long double 80 bit 3.4E‐4932 ‐ 1.1E+4932

Void 0 bit

neir(pointer) 16 bit

Far(pointer) 32 bit

TIPE

FORMAT

KETERANGAN

Char %c Karakter/string

Int %i, %d Integer/bilangan bulat

Float %f Float/bilangan pecahan presisi

tunggal

Double %lf Bilangan pecahan presisi ganda

Page 16: MODUL ALGORITMA DAN PEMROGRAMAN · Bahasa C merupakan bahasa pemrograman prosedural, di mana penyelesaian atas suatu masalah dilakukan dengan membagi-bagi masalah tersebut ke dalam

16

LATIHAN 2

Kerjakan tampilan Berikut : dengan menggunakan deklarasi variabel dan sintaks input

(gets,scanf,cin) dan output(printf&cout)

Page 17: MODUL ALGORITMA DAN PEMROGRAMAN · Bahasa C merupakan bahasa pemrograman prosedural, di mana penyelesaian atas suatu masalah dilakukan dengan membagi-bagi masalah tersebut ke dalam

17

BAB 3

OPERATOR DAN OPERASI STRING

Operator merupakan simbol yang dilibatkan dalam program untuk melakukan

operasi atau untuk memanipulasi , dalam hal Penjumlahan dua buah nilai, memberikan

nilai ke variable, membandingkan kesamaan dua nilai.

Berdasarkan sifatnya, operator dapat dibedakan menjadi tiga macam, yaitu :

1) Unary

Operator yang melibatkan sebuah operand

Contoh = -7

2) Binary

Operator yang melibatkan dua operand

Contoh = 6+9

3) Ternary

Operator yang melibatkan tiga operand

Contoh = (20 % 4) +4 +6

A. Operator Aritmatika

Operator aritmatika adalah operator yang digunakan untuk melakukan operasi

operasi aritmatika. Digunakan untuk mengoperasikan data-data numerik, seperti

penjumlahan, pengurangan, perkalian, pembagian, dll.

Operator Keterangan Contoh

+ Penjumlahan 2+2=4

- Pengurangan 6-3=3

* Perkalian 5*5=25

/ Pembagian 8/4=2

% Sisa bagi 10%3=1

B. Ekspresi aritmatika

Ekspresi yang baik operand-nya bertipe numerik dan hasilnya juga bertipe

numeric Ekspresi aritmatika memakai operator aritmatika.

Pada ekspresi aritmetik terdapat 2 buah operator yaitu :

Operator biner, yaitu ekspresi yang operatornya membutuhkan 2 buah operand.

Contoh a + b

Operator Uner, yaitu “-” atau operator yang punya 1 operand contoh “-2”

Page 18: MODUL ALGORITMA DAN PEMROGRAMAN · Bahasa C merupakan bahasa pemrograman prosedural, di mana penyelesaian atas suatu masalah dilakukan dengan membagi-bagi masalah tersebut ke dalam

18

Hierarki Operator Aritmatika

Aritmatika harus dimulai dari operator yang memiliki hirarki/tingkatan yang

tertinggi kemudian ke operator berikutnya yang mempunyai tingkatan yang lebih

rendah

Berikut ini urutan/hirarki operator aritmatika dari urutan tertinggi ke urutan terendah:

Operator Keterangan

* atau / atau

%

Tingkat Operator Sama (tertinggi), Penggunaan bergantung

pada posisinya, urutan sebelah kiri didahulukan kemudian

sebelah kanan.

+ atau - Tingkat Operator Sama (terendah), Penggunaan bergantung

pada posisinya, urutan sebelah kiri didahulukan kemudian

sebelah kanan.

Contoh :

X = 8 + 4 * 2 / 4

//Langkah perhitungan C++

X = 8 + 4 * 2 / 4

X = 8 + 8 / 4

X = 8 + 2

X = 10

Operator Pemberi Nilai Aritmatika

Operator Keterangan

*= Perkalian

/= Pembagian

%= Sisa pembagian

+= Penjumlahan

-= Pengurangan

Contoh : nilai A=A+1 maka dapat disederhanakan menjadi A+=1

C. Operator Penambah dan Pengurang

Dari contoh penulisan operator pemberi nilai sebagai penyederhanaannya

dapat digunakan operator penambah dan pengurang.

Operator Keterangan

++ Penambahan

– Pengurangan

Page 19: MODUL ALGORITMA DAN PEMROGRAMAN · Bahasa C merupakan bahasa pemrograman prosedural, di mana penyelesaian atas suatu masalah dilakukan dengan membagi-bagi masalah tersebut ke dalam

19

D. Operator Relasi / Perbandingan

Operator Relasi digunakan untuk menguji hubungan antara nilai dan atau

variabel. Operator ini digunakan dalam suatu statement bersyarat yang selalu

menghasilkan nilai true atau false.

Jenis-jenis operator relasi

Operator Keterangan

== Sama dengan (bukan penugasan)

!= Tidak sama dengan

> Lebih dari

< Kurang dari

>= Lebih dari atau sama dengan

<= Kurang dari atau sama dengan

E. Operator Logika

Operator Logika digunakan untuk membandingkan dua nilai variabel atau

lebih. Hasil dari operasi ini adalah nilai boolean true atau false. Asumsikan variabel a

bernilai true, b bernilai false dan c bernilai true, lalu perhatikan tabel berikut:

Operator Keterangan Contoh

&& Jika semua operand bernilai benar (TRUE)

maka kondisi bernilai benar.

a && b hasilnya false

a && c hasilnya true

|| Jika salah satu dari operand bernilai benar

(TRUE) maka kondisi bernilai benar.

a || b hasilnya true

a || c hasilnya true

! Digunakan untuk membalik kondisi. Jika

kondisi benar (TRUE) maka akan berubah

menjadi salah (FALSE), begitu pula

sebaliknya

!a hasilnya false

!b hasilnya true

!( b && a ) hasilnya

true

Operator Logika AND (&&)

Operator logika AND digunakan untuk menggabungkan dua atau lebih

ekspresi relasi untuk mendapatkan hasil rasional tunggal, operator / operasi AND

dilambangkan dengan menggunakan simbol "&&", operasi AND hanya akan

menghasilkan nilai 1 (benar) jika semua ekspresi relasi yang dihubungkan bernilai

benar, namun jika tidak, maka operasi tersebut akan menghasilkan nilai 0 (salah).

Berikut ini tabel operator AND.

X Y X || Y

1 1 1

1 0 0

0 0 0

0 1 0

Page 20: MODUL ALGORITMA DAN PEMROGRAMAN · Bahasa C merupakan bahasa pemrograman prosedural, di mana penyelesaian atas suatu masalah dilakukan dengan membagi-bagi masalah tersebut ke dalam

20

Operator Logika OR

Operator logika OR digunakan untuk menggabungkan dua atau lebih ekspresi

relasi untuk mendapatkan hasil rasional tunggal, operator / operasi OR dilambangkan

dengan menggunakan simbol "||", operasi OR hanya akan menghasilkan nilai 0 (salah)

jika semua ekspresi relasi yang dihubungkan bernilai salah, namun jika tidak, maka

operasi tersebut akan menghasilkan nilai 1 (benar). Berikut ini tabel yang menunjukkan

hasil dari operator OR.

X Y X || Y

1 1 1

1 0 1

0 0 0

0 1 1

Operator Logika NOT (!)

Nilai yang dihasilkan dari operasi NOT adalah kebalikan dari nilai yang

dikandung dari ekspresi yang dituliskan. Jika nilai awal adalah 1 (benar), maka setelah

operasi NOT maka nilainya menjadi 0 (salah), begitu juga sebaliknya jika nilai awal

adalah 0 (salah), maka setelah operasi NOT maka nilainya menjadi 1 (benar).

Contoh:

Ekspresi Relasi A + 8 < 12

Jika menggunakan Operator Logika NOT, maka relasi diatas menjadi:

!(A+8 < 12)

Jika nilai A = 5, maka ekspresi tersebut memiliki nilai:

A + 8 < 12 → 5 + 8 < 12 → 13 < 12 → SALAH

Jika dilihat dari ekspresi diatas, karena hasil ekspresi mempunyai nilai SALAH, maka

jika digunakan operator logika NOT, ekspresi tersebut akan bernilai BENAR

!(A+8 < 12) → !(SALAH) → BENAR → 1

F. Operator Bitwise

Operator Bitwise adalah operator yang digunakan untuk memanipulasi data

dalam bentuk bit yang mewakili nilai-nilai yang mereka simpan. atau Operator Bitwise

juga dikenal sebagai operator yang berguna untuk melakukan operasi-operasi yang

berhubungan dengan manipulasi bit.

Yang termasuk dalam operator bitwise dalam C++ adalah seperti yang tampak

pada tabel dibawah ini:

Operator Jenis Operasi Contoh

| OR 1 | 0 = 1

& AND 1 & 0 = 0

^ Exclusive OR (XOR) 1 ^ 1 = 0

~ NOT ~ 1 = 0

>> Shift Right 16 >> 2 = 4

<< Shift Left 1 << 2 = 4

Page 21: MODUL ALGORITMA DAN PEMROGRAMAN · Bahasa C merupakan bahasa pemrograman prosedural, di mana penyelesaian atas suatu masalah dilakukan dengan membagi-bagi masalah tersebut ke dalam

21

Operator Bitwise | (OR)

Operator Bitwise OR dilambangkan dengan menggunakan simbol "|",

Operator ini digunakan untuk membandingkan bit dari dua operand.

X Y X || Y

1 1 1

1 0 1

0 0 0

0 1 1

Operator Bitwise & (AND)

Operator Bitwise AND dilambangkan dengan menggunakan simbol "&",

Operator ini digunakan untuk membandingkan bit dari dua operand.

X Y X || Y

1 1 1

1 0 0

0 0 0

0 1 0

Operator Bitwise ^ (Exclusive OR / XOR)

Operator Bitwise Exclusive OR dilambangkan dengan menggunakan simbol

"^", Operator ini digunakan untuk melakukan operasi Exclusive OR (XOR).

X Y X || Y

1 1 0

1 0 1

0 0 0

0 1 1

Operator Bitwise ~ (NOT)

Operator Bitwise NOT dilambangkan dengan menggunakan simbol "~",

Operator ini digunakan untuk membalik nilai bit dari suatu operand.

Bit Operand / X ~X

1 0

0 1

Page 22: MODUL ALGORITMA DAN PEMROGRAMAN · Bahasa C merupakan bahasa pemrograman prosedural, di mana penyelesaian atas suatu masalah dilakukan dengan membagi-bagi masalah tersebut ke dalam

22

Operator Bitwise >> (Shift Right)

Operator Bitwise Shift Right dilambangkan dengan menggunakan simbol

">>", Operator ini digunakan untuk menggeser sejumlah bit ke kanan / melakukan

perpindahan bit ke arah kanan.

Operator Bitwise << (Shift Left)

Operator Bitwise Shift Left dilambangkan dengan menggunakan simbol "<<",

Operator ini digunakan untuk menggeser sejumlah bit ke kiri / melakukan perpindahan

bit ke arah kiri.

G. Operasi String

String adalah untaian karekter dengan panjang tertentu. Merupakan susunan

dari elemen-elemaen tipe karakter. Karena sering dipakai dalam pemrograman, maka

string termasuk dalam tipe dasar. Semua konstanta string harus diapit tanda petik

tunggal. Misal : ‘Matematika’

Fungsi pengolahan string

- Fungsi Strcat

Fungsi strcat digunakan untuk menggabungkan dua string menjadi satu.

- Fungsi Strcmp

Fungsi ini digunakan untuk membandingkan string pertama dengan string kedua. Hasil

dari fungsi ini bertipe data integer (int).

- Fungsi Strlen

Fungsi strlen digunakan untuk menghitung panjang karakter pada suatu string. Strlen

adalah fungsi yang bertipe data integer.

- Fungsi Strcpy

Fungsi strcpy digunakan untuk menyalin isi string ke suatu variabel.

- Fungsi Strupr

Fungsi strupr digunakan untuk mengubah semua karakter huruf yang terdapat pada

suatu variabel menjadi huruf besar semua (Uppercase).

- Fungsi Strlwr

Fungsi strlwr digunakan untuk mengubah semua karakter huruf yang terdapat pada

suatu variable menjadi huruf kecil semua (Lowercase).

Fungsi Konversi String

Page 23: MODUL ALGORITMA DAN PEMROGRAMAN · Bahasa C merupakan bahasa pemrograman prosedural, di mana penyelesaian atas suatu masalah dilakukan dengan membagi-bagi masalah tersebut ke dalam

23

- Fungsi atof

Digunakan untuk mengubah string(teks) angka menjadi sebuah bilangan numerik float.

Biasanya header yang digunakan untuk fungsi atof ini adalah : math.h.

- Fungsi atoi

Digunakan untuk mengubah string, angka menjadi sebuah bilangan numerik integer.

Header yang digunakan dalam menggunakan fungsi atoi ini adalah : stdlib.h.

- Fungsi atol

Digunakan untuk mengubah string(teks) angka menjadi sebuah bilangan numerik long

integer. Adapun header yang yang digunakan dalam fungsi atol adalah: stdlib.h.

- Fungsi strlwr

Fungsi strlwr ini biasanya digunakan untuk mengubah huruf kapital(huruf besar) dalam

string menjadi huruf kecil. Header yang harus anda tambahkan dalam menggunakan

fungsi strlwr adalah: string.h

- Fungsi strupr

Merupakan sebuah fungsi yang digunakan untuk mengubah setiap huruf kecil dalam

string menjadi huruf kapital. Header digunakan dalam menggunakan fungsi strupr

adalah string.h.

LATIHAN 3

Tentukan apa hasil numerik dari ekspresi relasi dan logika dibawah ini. Diberikan nilai

A = 4; B = 7 ; C = 3 ; K = 6; L = 5; M = 4

a. D = (5+ 3 > A && B – 3 > 4 + 3 || B + 3 <= 7 + 3)

b. D=K + 6 < M || (C * M < L && 3 * M – L > 0)

c. D=L + 6 < * 4 <= 3 * M + B

d. D=K + M || C * K < L && 3 * K – L > 0

e. D=A * 5<= 4 * M + B

f. D=K + 11 > A && L – 3 > 5* C

Page 24: MODUL ALGORITMA DAN PEMROGRAMAN · Bahasa C merupakan bahasa pemrograman prosedural, di mana penyelesaian atas suatu masalah dilakukan dengan membagi-bagi masalah tersebut ke dalam

24

BAB 4

Operasi Penyeleksian Kondisi

Pernyataan Percabangan digunakan untuk memecahkan persoalan untuk

mengambil suatu keputusan diantara sekian pernyataan yang ada. Untuk keperluan

pengambilan keputusan, Borland

A. Pengertian IF

Fungsi if dalam bahasa pemograman bahasa c++ adalah untuk menjalankan

(mengeksekusi suatu program) yang apabila syaratnya atau syarat tertentu telah

terpenuhi yang mana bias terdiri atas satu keadaan (syarat) atau banyak keadaan

tergantung dari program tersebut.

1. Contoh Program Perintah IF Pada C++

Sebagai contoh, kita ambil kasus yang kemarin kita bahas , yaitu bagaimana

caranya agar suatu program dapat mengidentifikasi angka , dimana jika angka itu genap

maka program akan meng-output-kan "Angka genap ".

Berikut Listing Programnya

#include <iostream>

using namespace std;

int main()

{

int angka1;

cout <<"Masukkan angka = ";cin >> angka1;

if(angka1%2 ==0)

{cout<<angka1 << " adalah angka genap";}

cout <<"\nSelesai\n";

}

Berikut Penampakan Programnya:

Output program IF

Gambar 4.1

Page 25: MODUL ALGORITMA DAN PEMROGRAMAN · Bahasa C merupakan bahasa pemrograman prosedural, di mana penyelesaian atas suatu masalah dilakukan dengan membagi-bagi masalah tersebut ke dalam

25

Penjelasan :

Cara kerja dari program tersebut, adalah JIKA setiap angka yang dimasukkan dibagi 2

dan mempunyai sisa pembagian 0, maka angka tersebut adalah angka genap. dan

setelah itu program akan meng-output-kan "Selesai", alur ini berjalan ketika kondisi

dalam perintah IF bernilai Benar (Gambar kiri). Namun jika kondisi bernilai salah atau

sisa pembagian tidak bernilai 0, maka program akan langsung meng-output-kan

"Selesai" (Gambar yang kanan). tanda "%" pada program, adalah tanda untuk operator

"mod" atau operator untuk mencari sisa hasil pembagian.

2. Contoh Program Perintah IF-ELSE Pada C++

Masih melanjutkan kasus sebelumnya, karena sebelumnya hanya untuk

mengidentifikasi angka genap saja, maka kali ini kita tambahkan untuk mencari angka

ganjil juga.

Berikut Listing programnya :

#include <iostream>

int main()

{

int angka1;

cout <<"Masukkan angka = ";cin >> angka1;

if(angka1%2 ==0)

{cout<<angka1 << " adalah angka genap";}

else

{cout <<angka1 << " adalah angka ganjil";}

cout <<"\nSelesai\n";

getch();}

Berikut Penampakan Programnya :

Output Program IF-ELSE

Gambar 4.

Page 26: MODUL ALGORITMA DAN PEMROGRAMAN · Bahasa C merupakan bahasa pemrograman prosedural, di mana penyelesaian atas suatu masalah dilakukan dengan membagi-bagi masalah tersebut ke dalam

26

Penjelasan :

Dengan menggunakan program sebelumnya, kita tinggal menambahkan perintah "else"

dibawahnya, kemudian menambahkan setiap angka yang bukan genap, maka dia adalah

angka ganjil.

3. Contoh Program Perintah IF Bertingkat Pada C++

Untuk Perintah IF bertingkat, masih menggunakan kasus diatas, namun kita

tambahkan logika untuk mengidentifikasi apakah angka tersebut positif atau negatif.

Berikut Listing Programnya :

#include <iostream>

int main()

{

int angka1;

cout <<"Masukkan angka = ";cin >> angka1;

if(angka1<0)

{ if(angka1%2 ==0)

{ cout<<angka1 << " adalah angka negatif dan juga genap";}

else

{cout <<angka1 << " adalah angka negatif dan juga ganjil";}

}

else

{ if(angka1%2 ==0)

{cout<<angka1 << " adalah angka positif dan juga genap";}

else

{cout <<angka1 << " adalah angka positif dan juga ganjil";}

}

cout <<"\nSelesai\n";

getch();}

Berikut Penampakan Programnya :

Output Program IF bertingkat

Page 27: MODUL ALGORITMA DAN PEMROGRAMAN · Bahasa C merupakan bahasa pemrograman prosedural, di mana penyelesaian atas suatu masalah dilakukan dengan membagi-bagi masalah tersebut ke dalam

27

Gambar 4. 4

Penjelasan :

Pada program di atas, untuk mengidentifikasi angka itu positif atau negatif, cukup

mudah yaitu kita tambahkan perinta IF dengan kondisi jika angka kurang dari 0 maka

angka itu pasti negatif, dan selain itu pasti angka positif. Maka untuk menggabungkan

antara identifikasi positif/negatif dengan identifikasi genap/ganjil, Kita tambahkan if

bertingkat, Pada Listing di atas, kode yang berwana hijau adalah perintah IF untuk

mengidentifikasi positif atau negatif, sedangkan yang berwarna kuning dan coklat

adalah perintah IF untuk mengidentifikasi genap atau ganjil.

4. Contoh Program Perintah swicth case C++

Switch case merupakan salah satu bentuk percabangan ,yang digunakan untuk

pilihan berjumlah banyak.tidak di anjurkan pada pilihan yang melibatkan jangkauan

(range) tetapi di anjurkan pada pilihan berupa konstanta.

Berikut ini adalah contoh program yang mengimplementasikan konsep

percabangan dengan menggunakann Pernyataan (statemen) Switch-Case. Dalam contoh

ini, kita akan membuat program yang dapat menentukan nama hari dari nilai bilangan

(nomor hari) yang di inputkan. Kode programnya dapat dilihat di bawah ini.

Contoh Program dengan Struktur Switch-Case

#include <iostream>

int main(){

int nrhari;

cout<<"Masukkan nomor hari (1 -> 7) : ";

cin>>nrhari;

switch(nrhari){

case 1:

cout<<"\nHari ke-"<<nrhari<<" adalah SENIN";

cout<<"\nMeskipun SENIN Tetap Semangat Ya";

Page 28: MODUL ALGORITMA DAN PEMROGRAMAN · Bahasa C merupakan bahasa pemrograman prosedural, di mana penyelesaian atas suatu masalah dilakukan dengan membagi-bagi masalah tersebut ke dalam

28

break;

case 2:

cout<<"\nHari ke-"<<nrhari<<" adalah SELASA";

cout<<"\nSemangat Untuk Hari SELASA";

break;

case 3:

cout<<"\nHari ke-"<<nrhari<<" adalah RABU";

cout<<"\nUdah Hari RABU, Tetep Produktif Ya";

break;

case 4:

cout<<"\n Hari ke-"<<nrhari<<" adalah KAMIS";

cout<<"\nOrang Manis Terlahir Dihari KAMIS";

break;

case 5:

cout<<"\nHari ke-"<<nrhari<<" adalah JUMAT";

cout<<"\nUdah Hari JUMAT, Siap Mudik ?";

break;

case 6:

cout<<"\nHari ke-"<<nrhari<<" adalah SAPTU";

cout<<"\nHari SAPTU Mau Liburan Kemana ?";

break;

case 7:

cout<<"\nHari ke-"<<nrhari<<" adalah MINGGU";

cout<<"\nMari Tidur Seharian di Hari MINGGU";

break;

default:

cout<<"\nTidak terdapat nama hari ke-"<<nrhari;

cout<<"\nMungkin Kamu Kurang Piknik";

}

return 0;

getch();

}

Berikut Penampakan Programnya :

Page 29: MODUL ALGORITMA DAN PEMROGRAMAN · Bahasa C merupakan bahasa pemrograman prosedural, di mana penyelesaian atas suatu masalah dilakukan dengan membagi-bagi masalah tersebut ke dalam

29

Output Program IF bertingkat

Gambar 4.5

Penjelasan: tipe data dari pernyataan harus karakter atau intenger.default

mengekspresikan statement alternatife yaitu jika nilai yang di masukan tidak sesuai

dengan nilai-nilai konstan yang telah didefinisikan.

LATIHAN 4

1. Buatlah program untuk menghitung nilai rata-rata dari seorang peserta, dengan

ketentuan sebagai berikut :

Nama Peserta, Nilai I, Nilai II, diinput.

Nilai Rata-rata merupakan hasil dari Nilai I, dan II dibagi dengan 2

Ketentuan Juara

a) Jika nilai rata-rata yang dihasilkan lebih besar dari 80, maka menjadi Juara Umum

b) Jika nilai rata-rata yang dihasilkan lebih besar dari 75, maka menjadi Juara Kelas

c) Jika nilai rata-rata yang dihasilkan lebih besar dari 65, maka menjadi Juara

Harapan

d) Selain itu tidak juara

Tampilan yang diinginkan sebagai berikut:

Layar Masukkan

PROGRAM HITUNG NILAI RATA-RATA

Nama Peserta :

Nilai I :

Nilai II :

Layar Keluaran

Siswa yang bernama ...

Memperoleh nilai rata-rata ... dan menjadi juara -... dari hasil pertandingan yang

diikutinya.

Page 30: MODUL ALGORITMA DAN PEMROGRAMAN · Bahasa C merupakan bahasa pemrograman prosedural, di mana penyelesaian atas suatu masalah dilakukan dengan membagi-bagi masalah tersebut ke dalam

30

BAB 5

PROSES PERULANGAN

A. Statement FOR

Statement FOR digunakan untuk menyatakan perulangan pernyataan FOR:

Jika FOR lebih dari satu maka harus di letakan di dalam tanda kurung pernyataan:

for ( inisialisasi; syarat pengulangan; pengubah nilai pencacah )

{

pernyataan / perintah;

pernyataan / perintah;

pernyataan / perintah;

}

Inisialisas : Merupakan bagian untuk memberikan nilai awal untuk variable

variabel tertentu.

Syarat Pengulangan : Memegang kontrol terhadap pengulangan, karena bagian ini

yang akan menentukan suatu perulangan diteruskan atau dihentikan.

Pengubah Nilai Pencacah : Mengatur kenaikan atau penurunan nilai pencacah.

Contoh-1

#include<stdio.h>

#include<conio.h>

#include<iostream.h>

main( )

{

int a;

clrscr( );

for(a = 1; a <= 5; ++a)

cout<<"RISSA YUNISTIA MAULIDA"<<endl;

Page 31: MODUL ALGORITMA DAN PEMROGRAMAN · Bahasa C merupakan bahasa pemrograman prosedural, di mana penyelesaian atas suatu masalah dilakukan dengan membagi-bagi masalah tersebut ke dalam

31

getch( );

}

Maka tampilan nya akan seperti ini :

Gambar 5.1

Contoh-2

#include<stdio.h>

#include<conio.h>

#include<iostream.h>

main( )

{

int a;

clrscr( );

for(a = 1; a <= 30; ++a)

cout<<a;

getch( ); }

Hasil Outputnya :

Gambar 5.2

B. Pernyataan Nested - For

Pernyataaan Nested for adalah suatu perulangan for didalam perulangan for

yang lainnya. Bentuk umum pernyataan Nested for sebagai berikut :

for ( inisialisasi; syarat pengulangan; pengubah nilai pencacah )

{

for ( inisialisasi; syarat pengulangan; pengubah nilai pencacah)

Page 32: MODUL ALGORITMA DAN PEMROGRAMAN · Bahasa C merupakan bahasa pemrograman prosedural, di mana penyelesaian atas suatu masalah dilakukan dengan membagi-bagi masalah tersebut ke dalam

32

{

pernyataan / perintah;

}

}

Contoh-3

#include<stdio.h>

#include<conio.h>

main( )

{

int a, b;

clrscr( );

for(a = 1; a <= 10; a++)

{

printf("\n");

for(b = a; b <= 10; b++)

printf(" %d ",a);

}

getch(); }

Maka tampilanya akan seperti ini

Gambar 5.3

Page 33: MODUL ALGORITMA DAN PEMROGRAMAN · Bahasa C merupakan bahasa pemrograman prosedural, di mana penyelesaian atas suatu masalah dilakukan dengan membagi-bagi masalah tersebut ke dalam

33

C. Perulangan Tak Berhingga

Perulangan tak berhingga merupakan perulangan ( loop ) yang tak pernah

berhenti atau mengulang terus, hal ini sering terjadi disebabkan adanya kesalahan

penanganan kondisi yang dipakai untuk keluar dari loop.

Contoh -4

#include<stdio.h>

#include<conio.h>

main( )

{

int bil;

clrscr( );

for (bil = 100; bil >=10; bil--)

printf("%d", bil);

getch( );

}

Maka yang akan di tampilkan nya :

Gambar 5.4

Pada pernyataan ini tidak akan berhenti untuk menampilkan bilangan

menurun, kesalahan terjadi pada pengubah nilai pencacah, seharusnya penulisan yang

benar berupa

bil - -

Akan tetapi yang ditulis adalah :

bil ++

Page 34: MODUL ALGORITMA DAN PEMROGRAMAN · Bahasa C merupakan bahasa pemrograman prosedural, di mana penyelesaian atas suatu masalah dilakukan dengan membagi-bagi masalah tersebut ke dalam

34

D. 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

while ( syarat )

{

Pernyataan / perintah ;

Pernyataan / perintah ;

}

Contoh-5

#include <stdio.h>

#include <conio.h>

main( )

{

int bil=5;

clrscr( );

while(bil<=30)

{

printf(" %d ",bil);

bil+=5; }

getch( ); }

Maka akan di tampilkan nya :

Gambar 5.5

E. Statement Do...While Karakteristik

a. Perulangan akan dilakukan minimal 1x terlebih dahulu, kemudian baru dilakukan

pengecekan terhadap kondisi, jika kondisi benar maka perulangan masih akan tetap

dilakukan.

b. Perulangan dengan do...while() akan dilakukan sampai kondisi false

Contoh-6

Page 35: MODUL ALGORITMA DAN PEMROGRAMAN · Bahasa C merupakan bahasa pemrograman prosedural, di mana penyelesaian atas suatu masalah dilakukan dengan membagi-bagi masalah tersebut ke dalam

35

#include <stdio.h>

#include <conio.h>

main( )

{

int bil=1;

clrscr( );

while(bil<=20)

{

printf(" %d ",bil);

++bil; }

getch( ); }

Output yang akan dihasilkan :

Gambar 5.6

F. Pernyataan Break

Pernyataan break ini berfungsi untuk keluar dari struktur switch. Dan

pernyataan break juga berfungsi keluar dari perulangan ( for, while dan do-while ).

Contoh-7

#include <stdio.h>

#include <conio.h>

main( )

{

int bil = 1;

clrscr( );

do

{

if (bil >= 6)

break;

printf(" %d ",bil);

}

Page 36: MODUL ALGORITMA DAN PEMROGRAMAN · Bahasa C merupakan bahasa pemrograman prosedural, di mana penyelesaian atas suatu masalah dilakukan dengan membagi-bagi masalah tersebut ke dalam

36

while(bil++);

getch( );

}

Output yang akan dihasilkan :

Gambar 5.7

LATIHAN 5

1. Buatlah program untuk menampilkan bilangan ganjil dari kecil ke besar sampai batas

tertentu sampai menemukan break, program selesai.

2. Bulatlah program untuk menghitung 20 deret bilangan genap dengan hasilnya :

2 + 4 + 6 + 8 + 10 + 12 + 14 + 16 + 18 + 20+22+24+26+28+30+32+34+36+38+40 =

420

Page 37: MODUL ALGORITMA DAN PEMROGRAMAN · Bahasa C merupakan bahasa pemrograman prosedural, di mana penyelesaian atas suatu masalah dilakukan dengan membagi-bagi masalah tersebut ke dalam

37

BAB 6

ARRAY & SORTING

A. ARRAY

Variabel Larik atau lebih dikenal dengan ARRAY adalah Tipe terstruktur yang

terdiri dari sejumlah komponen-komponen yang mempunyai tipe yang sama. Suatu

Array mempunyai jumlah komponen yang banyaknya tetap. Banyaknya komponen

dalam suatu larik ditunjukan oleh suatu indek untuk membedakan variabel yang satu

dengan variabel yang lainnya.

Array adalah kumpulan dari nilai-nilai data bertipe sama dalam urutan

tertentu yang menggunakan sebuah nama yang sama. Nilai-nilai data di suatu larik

disebut dengan elemen-elemen larik.

Letak urutan dari suatu elemen larik ditunjukkan oleh suatu subscript atau suatu index.

Menurut dimensinya, array dapat dibedakan menjadi 2, yaitu:

1. Array satu dimensi

Sebelum digunakan, variabel array perlu dideklarasikan terlebih dahulu.

Cara mendeklarasikan variabel array sama seperti deklarasi variabel yang lainnya,

hanya saja diikuti oleh suatu indek yang menunjukan jumlah maksimum data yang

disediakan.

Bentuk Umum pendeklarasian array:

Index array secara default dimulai dari 0

Deklarasi array :

Tipe_array nama_array[ukuran]

Page 38: MODUL ALGORITMA DAN PEMROGRAMAN · Bahasa C merupakan bahasa pemrograman prosedural, di mana penyelesaian atas suatu masalah dilakukan dengan membagi-bagi masalah tersebut ke dalam

38

Contoh-1 :

#include <iostream.h>

#include <conio.h>

main()

{

int angka[4]={94,61,25,14};

for(int a=0;a<4;a++)

{

cout<<" Indeks Angka [ "<<a<<" ] = "<<angka[a];

cout<<endl;

}

getch();

}

Hasilnya :

Gambar 6.1

Page 39: MODUL ALGORITMA DAN PEMROGRAMAN · Bahasa C merupakan bahasa pemrograman prosedural, di mana penyelesaian atas suatu masalah dilakukan dengan membagi-bagi masalah tersebut ke dalam

39

Contoh-2 :

#include <iostream.h>

#include <conio.h>

main()

{

char

mem[9][20]={"Xiumin","Lay","Suho","Baekhyun","Chen","Chanyeol","D.o","Kai","S

ehun"};

cout<<" Nama Personel "<<endl<<endl;

for(int m=0;m<9;m++)

{

cout<<m<<". "<<mem[m]<<endl;

}

getch();

}

Hasilnya

Gambar 6.2

Page 40: MODUL ALGORITMA DAN PEMROGRAMAN · Bahasa C merupakan bahasa pemrograman prosedural, di mana penyelesaian atas suatu masalah dilakukan dengan membagi-bagi masalah tersebut ke dalam

40

2. Array dua dimensi

Array dimensi dua tersusun dalam bentuk baris dan kolom, dimana indeks

pertama menunjukan baris dan indeks kedua menunjukan kolom. Array dimensi dua

dapat digunakan seperti pendatan penjualan, pendataan nilai dan lain sebagainya.

Array dua dimensi merupakan array yang terdiri dari m buah baris dan n buah

buah kolom bentuknya dapat berupa matriks atau tabel.

Deklarasi array : Bentuk Umum pendeklarasian array

Tipe_array nama_array [baris][kolom]

Contoh-1 :

#include <iostream.h>

#include <conio.h>

main()

{

int a,b;

int angka[3][3]={ {24,25,94},

{12,14,61},

{ 4, 7,88}, };

for(a=0;a<3;a++)

{

for(b=0;b<3;b++)

{

cout<<" Indeks Angka [ "<<a<<" ][ "<<b<<" ] = "<<angka[a][b]<<endl;

}

}

getch();}

Hasilnya :

Page 41: MODUL ALGORITMA DAN PEMROGRAMAN · Bahasa C merupakan bahasa pemrograman prosedural, di mana penyelesaian atas suatu masalah dilakukan dengan membagi-bagi masalah tersebut ke dalam

41

Gambar 6.3

Contoh-2 :

#include <iostream.h>

#include <conio.h>

main()

{

char nama[2][3][20]={ {"Park","Ooh","Kim"},

{"Chanyeol","Sehun","JongIn"}, };

cout<<endl<<nama[0][0]<<" "<<nama[1][0]<<endl;

cout<<nama[0][1]<<" "<<nama[1][1]<<endl;

cout<<nama[0][2]<<" "<<nama[1][2]<<endl;

getch();}

Hasilnya :

Gambar 6.4

Page 42: MODUL ALGORITMA DAN PEMROGRAMAN · Bahasa C merupakan bahasa pemrograman prosedural, di mana penyelesaian atas suatu masalah dilakukan dengan membagi-bagi masalah tersebut ke dalam

42

B. SORTING

Sorting adalah suatu proses pengurutan data yang sebelumnya disusun secara

acak atau tidak teratur menjadi urut dan teratur menurut suatu aturan tertentu.

Biasanya pengurutan terbagi menjadi dua yaitu :

1. Ascending (pengurutan dari karakter/angka kecil ke karakter/angka besar)

2. Descending (pengurutan dari karakter/angka besar ke karakter/angka kecil)

Contoh Ascending :

#include <iostream.h>

#include <conio.h>

#include <iomanip.h>

int main(){

int A[5];

int j,k,i,temp;

int jmax,u=4;

cout<<"Masukkan nilai pada elemen array : "<<endl;

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

{

cout<<" A [ "<<i<<" ] = ";cin>>A[i];

}

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

{

jmax=0;

for(k=1;k<=u;k++)

if (A[k]>A[jmax])

jmax=k;

temp=A[u];

Page 43: MODUL ALGORITMA DAN PEMROGRAMAN · Bahasa C merupakan bahasa pemrograman prosedural, di mana penyelesaian atas suatu masalah dilakukan dengan membagi-bagi masalah tersebut ke dalam

43

A[u]=A[jmax];

A[jmax]=temp;

u--;

}

cout<<"\n Nilai setelah diurutkan = ";

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

cout<<A[i]<<" ";

getch();

}

Hasilnya :

Gambar 6.5

Contoh Descending :

#include <iostream.h>

#include <conio.h>

#include <iomanip.h>

int main(){

Page 44: MODUL ALGORITMA DAN PEMROGRAMAN · Bahasa C merupakan bahasa pemrograman prosedural, di mana penyelesaian atas suatu masalah dilakukan dengan membagi-bagi masalah tersebut ke dalam

44

int A[5];

int j,k,i,temp;

int jmin,u=4;

cout<<"Masukkan nilai pada elemen array : "<<endl;

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

{

cout<<" A [ "<<i<<" ] = ";cin>>A[i];

}

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

{

jmin=0;

for(k=1;k<=u;k++)

if (A[k]<A[jmin])

jmin=k;

temp=A[u];

A[u]=A[jmin];

A[jmin]=temp;

u--;

}

cout<<"\n Nilai setelah diurutkan = ";

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

cout<<A[i]<<" ";

getch();

}

Page 45: MODUL ALGORITMA DAN PEMROGRAMAN · Bahasa C merupakan bahasa pemrograman prosedural, di mana penyelesaian atas suatu masalah dilakukan dengan membagi-bagi masalah tersebut ke dalam

45

Hasilnya :

Gambar 6.6

Jenis-jenis Sorting

a. Selection Sort

Tehnik pengurutan dengan cara pemilihan elemen atau proses kerja dengan

memilih elemen data terkecil untuk kemudian dibandingkan & ditukarkan dengan

elemen pada data awal, dan seterusnya sampai seluruh elemen shg akan menghasilkan

pola data yg telah disort.

Prinsip kerja dari teknik ini adalah :

1. Pengecekan dimulai data ke-1 sampai dengan data ke-n

2. Tentukan bilangan dengan Index terkecil dari data bilangan tersebut

3. Tukar bilangan dengan Index terkecil tersebut dengan bilangan pertama ( I = 1

) dari data bilangan tersebut

4. Lakukan langkah 2 dan 3 untuk bilangan berikutnya ( I= I+1 ) sampai

didapatkan urutan yg optimal.

Page 46: MODUL ALGORITMA DAN PEMROGRAMAN · Bahasa C merupakan bahasa pemrograman prosedural, di mana penyelesaian atas suatu masalah dilakukan dengan membagi-bagi masalah tersebut ke dalam

46

Contoh :

#include <iostream.h>

#include <conio.h>

#include <stdio.h>

#include <iomanip.h>

main()

{

int a[10],i,tmp,minindex,j;

cout<<"Selection Sort"<<endl<<endl;

cout<<" Masukkan data A :\n";

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

{

cout<<" A [ "<<i<<" ] = ";cin>>a[i];

}

cout<<"\n Data yang akan disorting : ";

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

{

cout<<setw(4)<<a[i];

}

for(i=0;i<5-1;i++) //perulangan iterasi

{

minindex=i;

for(j=i+1;j<5;j++) //perulangan membandingkan data

{

if(a[minindex]>a[j])

{

minindex=j;

}

}

tmp=a[i];

Page 47: MODUL ALGORITMA DAN PEMROGRAMAN · Bahasa C merupakan bahasa pemrograman prosedural, di mana penyelesaian atas suatu masalah dilakukan dengan membagi-bagi masalah tersebut ke dalam

47

a[i]=a[minindex];

a[minindex]=tmp;

}

cout<<"\n\n Hasil Sorting : ";

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

{

cout<<setw(4)<<a[i];

}

getch();

}

Hasilnya :

Gambar 6.7

b. Bubble Sort

Prinsip Kerja dari Bubble Sort adalah :

1. Pengecekan mulai dari data ke-1 sampai data ke-n

2. Bandingkan data ke-n dengan data sebelumnya (n-1)

3. Jika lebih kecil maka pindahkan bilangan tersebut dengan bilangan yg ada didepannya (

sebelumnya ) satu persatu (n-1,n-2,n-3,....dst)

4. Jika lebih besar maka tidak terjadi pemindahan

5. Ulangi langkah 2 dan 3 s/d sort optimal.

Page 48: MODUL ALGORITMA DAN PEMROGRAMAN · Bahasa C merupakan bahasa pemrograman prosedural, di mana penyelesaian atas suatu masalah dilakukan dengan membagi-bagi masalah tersebut ke dalam

48

Contoh :

#include <iostream>

#include <conio.h>

int data[10],data2[10];

int d;

void tukar(int a,int b)

{

int t;

t=data[b];

data[b]=data[a];

data[a]=t;

}

void Input()

{

cout<<"Masukkan jumlah data = ";cin>>d;

cout<<endl;

for(int i=0;i<d;i++)

{

cout<<"Masukkan data ke - "<<(i+1)<<" = ";cin>>data[i];

data2[i]=data[i];

}

cout<<endl;

}

void Tampil()

{

for(int i=0;i<d;i++)

{

cout<<data[i]<<" ";

}

Page 49: MODUL ALGORITMA DAN PEMROGRAMAN · Bahasa C merupakan bahasa pemrograman prosedural, di mana penyelesaian atas suatu masalah dilakukan dengan membagi-bagi masalah tersebut ke dalam

49

cout<<endl<<endl;

}

void bubble_sort()

{

for(int i=1;i<d;i++)

{ for(int j=d-1;j>=i;j--)

{

if(data[j]<data[j-1]) tukar(j,j-1); }

Tampil();

}

cout<<endl; }

main()

{

cout<<" Bubble Sort"<<endl<<endl;

Input();

cout<<"Proses"<<endl<<endl;

Tampil();

bubble_sort();

getch(); }

Hasilnya :

Gambar 6.8

Page 50: MODUL ALGORITMA DAN PEMROGRAMAN · Bahasa C merupakan bahasa pemrograman prosedural, di mana penyelesaian atas suatu masalah dilakukan dengan membagi-bagi masalah tersebut ke dalam

50

c. Insertion Sort

Prinsip Kerja Insertion Sort adalah

1. Pengecekan mulai dari data ke-1 sampai data ke-n

2. Bandingkan data ke-I ( I = data ke-2 s/d data ke-n )

3. Bandingkan data ke-I tersebut dengan data sebelumnya (I-1), Jika lebih kecil maka data

tersebut dapat disisipkan ke data awal sesuai dgn posisisi yg seharusnya

4. Lakukan langkah 2 dan 3 untuk bilangan berikutnya ( I= I+1 ) sampai didapatkan

urutan yg optimal.

Contoh :

#include <iostream.h>

#include <conio.h>

int data[10],data2[10];

int n;

void tukar(int a, int b)

{

int t;

t = data[b];

data[b] = data[a];

data[a] = t;

}

void insertion_sort()

{

int temp,i,j;

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

{

temp = data[i];

j = i -1;

while(data[j]>temp && j>=0)

{

data[j+1] = data[j];

j--;

Page 51: MODUL ALGORITMA DAN PEMROGRAMAN · Bahasa C merupakan bahasa pemrograman prosedural, di mana penyelesaian atas suatu masalah dilakukan dengan membagi-bagi masalah tersebut ke dalam

51

}

data[j+1] = temp;

}

}

void main()

{

cout<<"INSERTION SORT"<<endl;

cout<<endl;

cout<<" Masukkan Jumlah Data : ";cin>>n;

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

{

cout<<" Masukkan data ke "<<i<<" : ";

cin>>data[i];

data2[i]=data[i];}

insertion_sort();

cout<<endl<<endl;

cout<<" Data Setelah di Sort : ";

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

{

cout<<" "<<data[i];}

getch();}

Hasilnya :

Gambar 6.9

Page 52: MODUL ALGORITMA DAN PEMROGRAMAN · Bahasa C merupakan bahasa pemrograman prosedural, di mana penyelesaian atas suatu masalah dilakukan dengan membagi-bagi masalah tersebut ke dalam

52

LATIHAN 6

Buatlah sebuah program berupa memasukkan nilai dari 10 orang mahasiswa dengan

menggunakan array.

Masukkan jumlah Mahasiswa : < input >

Masukkan Nama Mahasiswa : < input >

Masukkan Nilai Mahasiswa : < input >

Nama Mahasiwa : < output >

Nilai : < output >

Nama Mahasiwa : < output >

Nilai : < output >

Nama Mahasiwa : < output >

Nilai : < output >

Page 53: MODUL ALGORITMA DAN PEMROGRAMAN · Bahasa C merupakan bahasa pemrograman prosedural, di mana penyelesaian atas suatu masalah dilakukan dengan membagi-bagi masalah tersebut ke dalam

53

BAB 7

POINTER

A. PENGERTIAN POINTER

Suatu pointer (variable penunjuk) adalah suatu variable yang berisi dengan alamat

lokasi, yaitu suatu memori tertentu.

Dalam pointer, terdapat 2 jenis operator yang biasa digunakan.

1. Operator Alamat / Dereference Operator(&)

Setiap variabel yang dideklarasikan, disimpan dalam sebuah lokasi memori dan

pengguna biasanya tidak mengetahui di alamat mana data tersebut disimpan.

Dalam C++, untuk mengetahui alamat tempat penyimpanan data, dapat digunakan

tanda ampersand (&) yang dapat diartikan “alamat”.

Contoh :

Ayu = &Wulan;

Dibaca: isi variabel Ayu sama dengan alamat Wulan

2. Operator Reference (*)

Penggunaan operator ini, berarti mengakses nilai sebuah alamat yang ditunjuk

oleh variabel pointer.

Contoh :

Ayu=*Wulan;

Dibaca: Ayu sama dengan nilai yang ditunjuk oleh Wulan.

B. Deklarasi Variabel Pointer

Tipe merupakan tipe data yang akan ditunjuk oleh variabel, bukan tipe data dari pointer

tersebut.

tipe * nama_variabel_pointer;

Page 54: MODUL ALGORITMA DAN PEMROGRAMAN · Bahasa C merupakan bahasa pemrograman prosedural, di mana penyelesaian atas suatu masalah dilakukan dengan membagi-bagi masalah tersebut ke dalam

54

Contoh 7.1

Hasil Output :

Gambar 7.1

C. Pointer dan Array (pointer to array)

Hubungan antara pointer dan array pada C++ sangatlah erat. Sebab

sesungguhnya array secara internal akan diterjemahkan dalam bentuk pointer.

Contoh 7.2

#include <iostream.h>

#include <conio.h>

main ()

{

int value1 = 5, value2 = 15;

int *mypointer;

mypointer = &value1;

*mypointer = 10;

mypointer = &value2; *mypointer = 20; cout << "value1==" << value1 << "\n value2==" << value2; getch(); }

#include <conio.h> #include <iostream.h> main() { int numbers[5]; int *p; p = numbers; *p = 10; p++; *p =20; p = &numbers[2]; *p = 30; p = numbers + 3; *p = 40; p = numbers; *(p+4) = 50; for (int n=0; n<5; n++) cout << numbers[n] << ", "; getch(); }

Page 55: MODUL ALGORITMA DAN PEMROGRAMAN · Bahasa C merupakan bahasa pemrograman prosedural, di mana penyelesaian atas suatu masalah dilakukan dengan membagi-bagi masalah tersebut ke dalam

55

Hasil Output :

Gambar 7.2

D. Pointer dan String (pointer to string)

Hubungan pointer dan string ditunjukkan pada program berikut.

Contoh 7.3

Hasil Output:

Gambar 7.3

E. Pointer menunjuk Pointer (Pointer to Pointer)

Suatu pointer bisa saja menunjuk ke pointer lain. Gambar berikut memberikan

contoh mengenai pointer menunjuk pointer.

#include <iostream.h>

#include <conio.h>

main( )

{

char *kantor = "Sedang Rapat";

cout<<endl;

cout<<" String yang muncul di ruangan adalah : "<<kantor<<endl;

getch();

}

Page 56: MODUL ALGORITMA DAN PEMROGRAMAN · Bahasa C merupakan bahasa pemrograman prosedural, di mana penyelesaian atas suatu masalah dilakukan dengan membagi-bagi masalah tersebut ke dalam

56

Pointer Variabel

Gambar 7.4 Single Indrection

Pointer Pointer Variabel

Gambar 7.5 Multi Indrection

Pada Single Inderection, pointer langsung menunjukkan ke alamat dari suatu variabel.

Pada Multi Inderction, terdapat pointer yang menunjukkan ke pointer yang sedang

menunjukkan ke alamat dari suatu variabel. Untuk mendeklarasikan pointer ke pointer,

digunakan tanda asterisk sebanyak dua kali (“ “).

Contoh 7.4

Contoh program untuk pointer yang menunjuk pointer */ #include <iostream.h> #include <conio.h> main() { int X = 40; int *n1; int **n2; n1 = &X; n2 = &n1; cout<<" Nilai X : "<<X<<endl; cout<<" Nilai *n1 : "<<*n1<<endl; cout<<" Nilai *n2 : "<<*n2<<endl; cout<<" Nilai **n2 : "<<**n2<<endl; cout<<" Nilai &X : "<<&X<<endl; cout<<" Nilai N1 : "<<n1<<endl; cout<<" Nilai N2 : "<<n2<<endl;

getch(); } ƒ

Alamat Nilai

Alamat Nilai Alamat

Page 57: MODUL ALGORITMA DAN PEMROGRAMAN · Bahasa C merupakan bahasa pemrograman prosedural, di mana penyelesaian atas suatu masalah dilakukan dengan membagi-bagi masalah tersebut ke dalam

57

Output :

Gambar 7.6

LATIHAN 7

1. Buat program untuk menampilkan sebaris string seperti contoh berikut ;

“Selamat LIBURAN“ menggunakan variable pointer (pointer to string).

2. Buat program untuk mencetak banyaknya karakter dari kalimat:

“Saya Cantik dari Lahir” dengan menggunakan variabel pointer .

Page 58: MODUL ALGORITMA DAN PEMROGRAMAN · Bahasa C merupakan bahasa pemrograman prosedural, di mana penyelesaian atas suatu masalah dilakukan dengan membagi-bagi masalah tersebut ke dalam

58

BAB 8

Macro Dan File Header

A. Preprocessor Directives

Preprocessor Directivies adalah perintah-perintah khusus yang ditujukan untuk

preprocessor. Semua penggunaan preprocessor directivies dimulai dengan tanda #.

Karena preprocessor adalah perintah untuk preprocessornya C++ maka preprocessor

directivities tidak diakhiri dengan titik koma (;) seperti yang biasanya.

Preprocessor directivies ini akan mengubah program pada saat di compile saja,

jadi perubahannnya hanya bersifat sementara. Setelah selesai maka program akan

kembali seperti semula. Beberapa perintah preprocessor akan dibahas dibagian ini :

8.1.1. #define

Digunakan untuk mendefinisikan suatu identifier atau nilai tertentu kepada suatu

karakter konstanta. Bentuk umum dari preprocessor ini adalah :

#define nama_konstanta teks

Contoh :

#define NILAI 80

Ket : NILAI merupakan nama_konstanta

80 merupakan Teks

Dalam penulisan nama_konstanta sebaiknya ditulis dengan huruf besar untuk

membedakannya dengan nama_variabel dan Teks merupakan nilai dari nama_konstanta

tersebut. Teks dapat berupa numerik, karakter, string, pernyataan, fungsi sederhana.

Dalam contoh diatas diketahui untuk nama_konstanta adalah NILAI dan teks

adalah 80 dan itu merupakan nilai tetap. Artinya, di dalam program jika kita

memasukkan kata NILAI, maka akan otomatis keluar angka 80.

Contoh Program C++ menggunakan #define :

CONTOH 1 /*Program Penggunaan #define*/

#include<conio.>

#include<iostream.>

#define NILAI 80

Page 59: MODUL ALGORITMA DAN PEMROGRAMAN · Bahasa C merupakan bahasa pemrograman prosedural, di mana penyelesaian atas suatu masalah dilakukan dengan membagi-bagi masalah tersebut ke dalam

59

main()

{

clrscr();

int nilai;

nilai=NILAI;

cout<<”Nilai Taehyung adalah “<<nilai<<endl;

getch();

}

Dan tampilan output programnya :

Gambar 8.1

CONTOH 2 /* Program Penggunaan #define */

#include<stdio.h>

#include<conio.h>

#include<iostream.h>

#define awal {

#define akhir }

#define mulai() main()

#define cetak cout

#define isi cin

#define hapus() clrscr()

#define tahan() getch()

#define HITUNG_LABA (penr-peng)

mulai()

awal

int penr,peng,hitung_laba;

hapus();

cetak<<"Program Penggunaan #define"<<endl;

cetak<<"Masukkan Total Penerimaan = ";isi>>penr;

Page 60: MODUL ALGORITMA DAN PEMROGRAMAN · Bahasa C merupakan bahasa pemrograman prosedural, di mana penyelesaian atas suatu masalah dilakukan dengan membagi-bagi masalah tersebut ke dalam

60

cetak<<"Masukkan Total Pengeluaran = ";isi>>peng;

hitung_laba = HITUNG_LABA;

cetak<<"Hasil Laba adalah : "<<hitung_laba;

tahan();

akhir

Hasil output programnya :

Gambar 8.2

8.1.2. #include

Digunakan untuk memasukkan/menyertakan file-file header ke dalam program

yang akan dibuat. Penulisan #include ada 2 macam yaitu :

1. #include “file_header”

Jika meng compile, maka pertama kali si compiler akan mencari file header yang telah

disebutkan pada directori yang aktif dan jika tidak ditemukan akan mencari lagi pada

directori file header tersebut berada. Contoh #include“iostream.h” #include“conio.h”

2. #include <file_header>

Compiler akan mencari file header yang disebutkan pada directori yang ada file

headernya, kecuali pada directori yang sedang aktif. Contoh #include<conio.h>

#include<stdio.h>

8.1.3. #if - #endif

Digunakan untuk meng compile jika pernyataan kondisi pada #if bernilai

benar, jika salah maka diabaikan. Pernyataan kondisi berupa konstanta yang

dideklarasikan dengan #define. Bentuk penulisan

#if ekspresi-konstanta

penyataan;

#endif

CONTOH 3 /*Penggunaan #if - #endif */

#include <conio.h>

#include <stdio.h>

Page 61: MODUL ALGORITMA DAN PEMROGRAMAN · Bahasa C merupakan bahasa pemrograman prosedural, di mana penyelesaian atas suatu masalah dilakukan dengan membagi-bagi masalah tersebut ke dalam

61

#define L 10

main()

{

#if L != 5

printf ("Jika tidak sama dengan Lima");

#endif

getch();}

Hasil output programnya :

Gambar 8.3

8.1.4. #if - #else - #endif

Digunakan untuk meng kompilasi jika pernyataan kondisi pada #if bernilai

benar, jika #if bernilai salah maka pernyataan #else dikompilasi. Penggunaan

preprocessor ini sama hal nya dengan pnggunaan if-else pada program biasa.

Pernyataan kondisinya berupa ekspresi konstanta yang di deklarasikan menggunakan

#define.

Bentuk Penulisan #if ekspresi-konstanta

Penyataan1;

#else

Penyataan2;

#endif

CONTOH 4 /*Penggunaan #if - #else - #endif*/

#include <iostream.h>

#include <conio.h>

#define NILAI 80

main()

{

#if NILAI > 75

Page 62: MODUL ALGORITMA DAN PEMROGRAMAN · Bahasa C merupakan bahasa pemrograman prosedural, di mana penyelesaian atas suatu masalah dilakukan dengan membagi-bagi masalah tersebut ke dalam

62

cout <<"Selamat Anda LULUS"<<endl;

#else

cout <<"Maaf, Anda Tidak LULUS"<<endl;

#endif

getch(); }

Hasil output programnya :

Gambar 8.4

8.1.5. #elif

Digunakan untuk mengkompilasi dari pernyataan bertingkat. Dalam hal ini

#elif sama halnya seperti #elseif yang merupakan kombinasi dari #if dan #else. Perintah

dijalankan sesuai dengan kondisi yang telah ditentukan, Hasil hanya dapat dijalankan

sesuai dengan ketentuan yang benar. Bentuk #elif diikuti oleh ekspresi-konstanta.

Bentuk Penulisan #if ekspresi-konstanta-1

penyataan-1;

#elif ekspresi-konstanta-2

penyataan-2;

# elif ekspresi-konstanta-n

penyataan-n;

#endif

CONTOH 5 /*Penggunaan #elif*/ #include <iostream.h>

#include <conio.h>

#define B 7

main( )

{

#if B > 12

cout<<"Lebih Besar dari Dua Belas"<<endl;

#elif B == 12

cout<<"Sama Dengan Dua Belas"<<endl;

Page 63: MODUL ALGORITMA DAN PEMROGRAMAN · Bahasa C merupakan bahasa pemrograman prosedural, di mana penyelesaian atas suatu masalah dilakukan dengan membagi-bagi masalah tersebut ke dalam

63

#else B < 12

cout<<"Lebih Kecil dari Dua Belas"<<endl;

#endif

getch(); }

Hasil output programnya :

Gambar 8.5

8.1.6. #undef

Digunakan untuk menghilangkan nilai yang telah didefiniskan dari daftar suatu definisi.

CONTOH 6 /*Penggunaan #undef*/

#include<iostream.h>

#include<conio.h>

#include<stdio.h>

#define HUTANG_PENJ 10000000

#if HUTANG_PENJ>20000000

#undef HUTANG_PENJ //--> menghilangkan HUTANG_PENJ

#define HUTANG_PENJ 20000000

#elsif HUTANG_PENJ <50000

#undef HUTANG_PENJ //--> menghilangkan HUTANG_PENJ

#define HUTANG_PENJ 50000

#else

#undef HUTANG_PENJ //--> menghilangkan HUTANG_PENJ

#define HUTANG_PENJ 50000

#endif

main( )

{

char str[HUTANG_PENJ];

cout<<HUTANG_PENJ;

Page 64: MODUL ALGORITMA DAN PEMROGRAMAN · Bahasa C merupakan bahasa pemrograman prosedural, di mana penyelesaian atas suatu masalah dilakukan dengan membagi-bagi masalah tersebut ke dalam

64

getch();}

Hasil output programnya :

Gambar 8.6

8.1.7. #ifdef - # ifndef

Preprocessor ini memberikan bagian dari program yang akan di compile, hal

ini dapat dilakukan jika sudah konstanta didefiniskan pada bagian #define, hal ini

merupakan suatu parameter (ukuran yang harus diperkirakan) yang khusus yang harus

terdefinisi. Bentuk umum penulisan sebagai berikut:

#ifdef

nama-konstanta pernyataan;

#endif

Ket: nama-konstanta harus terdefinisi, jika tidak pernyataan akan diabaikan.

CONTOH 7 //*Penggunaan #ifdef dan #ifndef *//

#include<iostream.h>

#include<conio.h>

#define BTS1 "TAEHYUNG"

#define BTS2 "JIMIN"

main( )

{

#ifdef BTS1

cout<<"Lelaki bernama "<<BTS1<<" visual di Bangtan Boys";

#else

#ifndef BTS2

cout<<"Lelaki bernama "<<BTS1<<" "<<BTS2;

cout<<" member Bangtan Boys";

#else

cout<<"Lelaki bernama "<<BTS2<<" dancer di Bangtan Boys";

#endif

Page 65: MODUL ALGORITMA DAN PEMROGRAMAN · Bahasa C merupakan bahasa pemrograman prosedural, di mana penyelesaian atas suatu masalah dilakukan dengan membagi-bagi masalah tersebut ke dalam

65

#endif

getch();

}

Contoh output programnya :

Gambar 8.7

8.1.8. Pembuatan File Header

File header adalah suatu file yang berisikan deklarasi fungsi dan definisi

konstanta, dan file yang berakhiran .h . Walaupun C++ menyediakan file-file header, kita

juga bisa membuat file header sendiri, dengan cara yang sama seperti saat kita membuat

file editor. Saat kita membuat file header, jangan lupa menyimpan file header tersebut

menggunakan akhiran .h .

Cara membuat file header sendiri adalah :

1. Buat program file header terlebih dahulu, kemudia simpan dengan nama coba.h, pada

folder kerja, folder include. Contohnya :

CONTOH 8 /* coba.h contoh pembuatan file header untuk pengaturan */

#define first {

#define last }

#define go( ) main( )

#define cetak cout

#define tampil cprintf

#define masuk scanf

#define isi cin

#define lain else

#define hapus( ) clrscr( )

#define jika if

#define warna textcolor

#define tahan getche( )

2. Setelah disimpan pada direktori C:\BC5\INCLUDE\... , selanjutnya compile file coba.h

Page 66: MODUL ALGORITMA DAN PEMROGRAMAN · Bahasa C merupakan bahasa pemrograman prosedural, di mana penyelesaian atas suatu masalah dilakukan dengan membagi-bagi masalah tersebut ke dalam

66

3. Lalu buatlah program, kemudian gunakan file header yang sudah anda buat dan simpan

dengan nama hasil.cpp

Contoh-9 /* program dengan file header sendiri */

#include<stdio.h>

#include<conio.h>

#include<iostream.h>

#include"coba.h"

go( )

first

int angka;

hapus( );

warna(8);

tampil("\nPROGRAM MEMBER BTS\n");

cetak<<endl;

cetak<<"1. Kim Taehyung"<<endl;

cetak<<"2. Park Jimin"<<endl;

cetak<<"\nMasukkan Pilihan Anda : ";isi>>angka;

jika(angka==1)

{cetak<<"\nAnda memilih Kim Taehyung";}

lain jika(angka==2)

{cetak<<"\nAnda memilih Park Jimin";}

lain

{cetak<<"\nPilihan yang anda masukan salah";}

tahan;

last

Hasil output programnya :

Gambar 8.9

Page 67: MODUL ALGORITMA DAN PEMROGRAMAN · Bahasa C merupakan bahasa pemrograman prosedural, di mana penyelesaian atas suatu masalah dilakukan dengan membagi-bagi masalah tersebut ke dalam

67

BAB 9

FUNGSI ( Function )

A. Pengertian Fungsi

Fungsi (Function) merupakan blok dari kode yang dirancang untuk

melaksanakan tugas khusus. Kegunaan dari fungsi ini adalah untuk:

- Mengurangi pengulangan penulisan program yang berulangan atau sama.

- Program menjadi lebih terstruktur, sehingga mudah dipahami dan dapat lebih

dikembangkan.

Fungsi-fungsi yang sudah kita kenal sebelumnya adalah fungsi main(), yang

bersifat mutlak, karena fungsi ini program akan dimulai, sebagai contoh yang lainnya

fungsi printf(), cout() yang mempunyai tugas untuk menampilkan informasi atau data

kelayar dan masih banyak lainnya

B. Stuktur Fungsi

Sebuah fungsi sederhana mempunyai bentuk tulisan berikut :

nama_fungsi(argumen)

{

..... pernyataan/perintah;

..... pernyataan/perintah;

..... pernyataan/perintah;

}

Keterangan: - Nama fungsi, boleh dituliskan secara bebas dengan ketentuan, tidak

menggunakan spasi dan nama-nama fungsi yang mempunyai arti sendiri.

- Argumen, diletakan diantara tanda kurung “( )” yang terletak dibelakang nama

fungsi. Argumen boleh diisi dengan suatu data atau dibiarkan kosong.

- Pernyataan / perintah, diletakan diantara tanda kurung ‘{ }’.

Sejauh ini kamu telah berlatih dengan membuat program dalam fungsi utama

alias fungsi main(). Bagaimana jika program yang kamu buat merupakan program yang

kompleks? Apakah kamu akan menggunakan fungsi main saja untuk semua tugas?

tentu saja ini akan membuat kamu mengalami kesulitan dalam melakukan

pengembangan serta pada saat membaca struktur program di tahap debugging.

Untuk mengatasi masalah tersebut, dalam pemrograman C++ menggunakan

pendekatan fungsi, dimana fungsi digunakan untuk membagi program berdasarkan

bagian-bagian tertentu yang memiliki tugasnya masing-masing. Tentu saja semua

fungsi yang bakalan kamu buat tidak akan berjalan sendiri-sendiri namun bekerja atas

dasar panggilan atau koordinasi fungsi utama atau fungsi main().

Nah, fungsi dalam pemrograman C++ dapat kamu deklarasikan dengan menggunakan sintaks

berikut ini:

Page 68: MODUL ALGORITMA DAN PEMROGRAMAN · Bahasa C merupakan bahasa pemrograman prosedural, di mana penyelesaian atas suatu masalah dilakukan dengan membagi-bagi masalah tersebut ke dalam

68

Komponen dalam sebuah fungsi itu:

1. Suatu fungsi jelas memiliki tipe. Tipe suatu fungsi menentukan nilai kembalian dari

fungsi tersebut. Suatu fungsi dengan tipe int (integer) akan memberikan kembalian/

return berupa nilai bertipe integer dari pemrosesan yang sudah dilakukannya. Berbeda

dengan tipe void, dimana tipe fungsi ini tidak memiliki nilai kembalian atau dapat

dikatakan fungsi void hanya menjalankan rutin program saja.

2. Nama_fungsi merupakan pengenal suatu fungsi. Nama_fungsi akan sangat berguna

dan wajib disertakan karena sebagai basis pemanggilan.

3. Parameter merupakan variabel penampung input suatu fungsi. Dapat dikatakan bahwa

parameter merupakan satu-satunya gerbang input dan pertukaran nilai antara suatu

fungsi dengan dunia luar (fungsi main).

4. Return merupakan instruksi yang berguna mengembalikan hasil kerja suatu fungsi,

untuk dapat digunakan di dunia luar (fungsi main).

Agar kamu semakin paham dengan apa yang sudah di jelaskan di atas, maka perhatikan

contoh berikut ini:

//Contoh Fungsi Luas & Lebar Lingkaran

#include <conio.h>

#include <iostream.h>

int hitung_luas (int panjang, int lebar){

int luas = panjang*lebar;

return luas;

}

int main()

{

int a,b,hasil;

cout<<endl;

cout<<" Program Hitung Luas Persegi Panjang"<<endl;

cout<<" --------------------------------------"<<endl;

cout<<" Masukan Nilai Panjang : ";cin>>a;

cout<<" Masukan Nilai Lebar : ";cin>>b;

hasil = hitung_luas(a,b);

cout<<" Luas Persegi Panjang Adalah : "<<hasil<<endl;

getch(); }

Page 69: MODUL ALGORITMA DAN PEMROGRAMAN · Bahasa C merupakan bahasa pemrograman prosedural, di mana penyelesaian atas suatu masalah dilakukan dengan membagi-bagi masalah tersebut ke dalam

69

Program di atas merupakan program yang berfungsi menghitung luas persegi

panjang, dengan memanfaatkan sebuah fungsi. Kita buat fungsi hitung_luas dengan tipe

int (integer). Parameter yang terdapat pada fungsi hutung_luas adalah panjang, dan

lebar dengan masing-masing bertipe data integer. Variabel luas kita deklarasikan di

dalam fungsi dan memiliki nilai berupa perkalian panjang dan lebar. Nilai luas

kemudian diumpan sebagai nilai akhir pemrosesan dengan menggunakan instruksi

return pada baris ke-enam.

Pada baris ke-17 yaitu di dalam fungsi main(), kita panggil fungsi hitung_luas

dan diberikan nilai parameter berupa variabel a, dan b. Nilai variabel a dan b pada baris

sebelumnya menampung nilai panjang dan lebar yang diinputkan user. Pada baris 17

pula, hasil umpan balik (return) fungsi hitung_luas, mimin tampung pada variabel hasil

untuk kemudian dicetak pada baris ke-18 untuk melihat hasilnya.

Berikut adalah hasil output program:

Gambar 9.1

Fungsi Void

Seperti yang sudah Kita jelaskan di atas, terdapat fungsi dengan tipe void,

Fungsi dengan tipe void tidak akan mengembalikan nilai apapun seperti fungsi yang

sudah kita contohkan di atas. Fungsi void biasanya digunakan untuk menjalankan rutin

program tertentu saja.

Berikut contoh kode programnya:

#include <iostream>

#include <stdio.h>

#include <string>

#include <conio.h>

int cetak (string kata){

cout<<kata<<endl;

}

main()

{

string input;

cout<<endl;

cout<<"Masukkan kata : ";cin>>input;

cetak(input);

Page 70: MODUL ALGORITMA DAN PEMROGRAMAN · Bahasa C merupakan bahasa pemrograman prosedural, di mana penyelesaian atas suatu masalah dilakukan dengan membagi-bagi masalah tersebut ke dalam

70

getch();

}

Program di atas, merupakan program yang memanfaatkan fungsi void untuk mencetak data

yang kamu masukkan. Kamu bisa lihat tidak ada instruksi return dalam fungsi cetak tersebut.

Berikut hasil output programnya:

Gambar 9.2

Fungsi Overload

Suatu fungsi dalam program yang kamu buat bisa memiliki nama yang sama.

Terus bagaimana cara manggilnya ?, kalau namanya aja sama? Apa nanti fungsi utama

tidak bingung dalam melakukan pemanggilan? Oke, gini jadi yang membedakan suatu

fungsi adalah parameternya, sehingga program utama atau main() tidak akan salah

panggil dan mendapatkan nilai yang salah walaupun namanya sama. Nih buat lebih

memperjelas,

Berikut contohkan kode programnya:

#include <stdio.h>

#include <conio.h>

#include <iostream>

void fungsiOverload (void){

cout<<endl;

cout<<" Ini Merupakan fungsi overload"<<endl;}

int fungsiOverload (int bil1, int bil2){

int operasi;

operasi = bil1*bil2;

return operasi;}

int main()

{ fungsiOverload();

cout<<" Hasil : "<<fungsiOverload(3,5)<<endl;

getch();

}

Pada program di atas, kita membuat dua buah fungsi dengan nama yang sama yaitu

“fungsiOverload”. Fungsi pertama berfungsi mencetak kata “Ini Merupakan fungsi overload“,

sedangkan fungsi kedua bertugas melakukan perkalian dua buah bilangan. Kamu bisa lihat pada

baris 14 dan 15 bagaimana kedua fungsi yang memiliki nama beda namun dipanggil dengan

cara yang berbeda yaitu dari parameternya.

Page 71: MODUL ALGORITMA DAN PEMROGRAMAN · Bahasa C merupakan bahasa pemrograman prosedural, di mana penyelesaian atas suatu masalah dilakukan dengan membagi-bagi masalah tersebut ke dalam

71

Berikut adalah hasil output programnya:

Gambar 9.3

Fungsi Prototype

Fungsi prototype atau prototype function sebenarnya merupakan sebuah

variasi gaya dalam mendeklarasikan sebuah fungsi. Nah coba kamu perhatikan semua

fungsi yang sudah kita jabarkan dan jelaskan panjang kali lebar di atas, hehehe. Semua

fungsi tersebut dideklarasikan sebelum fungsi main(). Nah kenapa kok harus

dideklarasikan di awal atau sebelum fungsi main()? Suatu sub fungsi dideklarasikan

diawal suatu fungsi main() dengan tujuan agar fungsi main dapat mengenali fungsi-

fungsi yang ada. Bagaimana kalau suatu fungsi berada sesudah fungsi main()? jelas

bahwa error akan terjadi karena fungsi main tidak mengenali suatu fungsi yang hendak

dipanggil dalam fungsi utama.

Untuk menanggulangi hal tersebut, dalam pemrograman C++ dikenal

istilah prototype fungction, dimana kamu wajib mendelarasikan nama fungsi, jenis

fungsi, dan parameternya saja sebelum fungsi main agar dikenali oleh program utama.

Untuk selanjutnya kamu bebas menyusun isi suatu fungsi mengenai apa saja yang

hendak dilakukan dengan fungsi tersebut serta meletakanya setelah fungsi main().

Berikut contohnya kita gunakan fungsi yang sudah ada di atas:

#include <iostream.h>

#include <conio.h>

#include <stdio.h>

int hitung_luas (int panjang, int lebar); // Prototype Funcion

int hitung_luas (int panjang, int lebar){

int luas = panjang*lebar;

return luas; }

int main()

{

int a,b,hasil;

cout<<endl;

cout<<" Program Hitung Luas Persegi Panjang"<<endl;

cout<<" -----------------------------------"<<endl;

cout<<" Masukkan nilai panjang : "; cin>>a;

cout<<" Masukkan nilai lebar : "; cin>>b;

hasil = hitung_luas(a,b);

cout<<" Luas persegi panjang adalah : "<<hasil<<endl;

getch();

}

Page 72: MODUL ALGORITMA DAN PEMROGRAMAN · Bahasa C merupakan bahasa pemrograman prosedural, di mana penyelesaian atas suatu masalah dilakukan dengan membagi-bagi masalah tersebut ke dalam

72

Hasil Output :

Gambar 9.5

Fungsi Inline

Fungsi inline merupakan metode yang digunakan untuk mempercepat

pemanggilan suatu fungsi. Biasanya fungsi yang diberikan atribut inline merupakan

fungsi yang berada di dalam loop atau dipanggil secara berulang kali. Dengan

metode inline, suatu fungsi akan aktif dalam memori sehingga mempercepat

pemanggilan blok fungsi untuk diproses. Untuk mengaplikasikan fungsi inline cukup

mudah yaitu dengan menambahkan atribut inline sebelum tipe fungsi. Berikut adalah

sintaksnya:

LATIHAN 9

1. Buatlah program untuk menghitung besarnya Diskon yang diberikan atas besanya

sejumlah pembelian, dengan ketentuan sebagai berikut :

i. Jika belanja dibawah Rp. 2,000,000 , maka tidak mendapat diskon.

ii. Jika belanja dimulai dari Rp. 2,000,000 , sampai dengan Rp. 10.000.000, maka

mendapat diskon sebesar 15%.

iii. Jika belanja diatas Rp. 4.000.000, maka mendapat diskon sebesar 30%.

Fungsi yang harus dibuat potong() untuk menghitung besar potongan yang akan

diberikan. Dengan tampilan yang diinginkan sebagai berikut:

Program Hitung Potongan.

Besar pembelian barang Rp. ………. <di input >

Besar diskon yang diberikan Rp. ………< hasil proses >

Besar harga yang harus dibayarkan Rp. ………< hasil proses >

Page 73: MODUL ALGORITMA DAN PEMROGRAMAN · Bahasa C merupakan bahasa pemrograman prosedural, di mana penyelesaian atas suatu masalah dilakukan dengan membagi-bagi masalah tersebut ke dalam

73

BAB 10

STRUKTUR

Struktur (struct) sendiri adalah kumpulan dari variabel yang dinyatakan

dengan sebuah nama , dengan sifat setiap variabel dapat memiliki tipe yang berlainan,

strukutur merupakan suatu program yang memerlukan berbagai tipe data dengan nama

variabel yang banyak pula.

MENDEKLARASIKAN STRUCT

CONTOH

struct

nama_tipe_struktur

{

elemen_struktur;

.....

.....

};

atau

struct

{

elemen_struktur;

.....

.....

} nama_tipe_struktur;

#include<stdio.h>

#include<conio.h>

#include<iostream.h>

main()

{

struct

{

char nik[10];

char nama[15];

float nilai;

} karyawan;

clrscr();

cout<<"masukan NIK = ";cin>>karyawan.nik;

cout<<"masukan Nama = ";cin>>karyawan.nama;

cout<<"masukan Nilai Test = ";cin>>karyawan.nilai;

cout<<”\n\nData Yang di Inputkan adalah : \n\n”;

cout<<"NIK = "<<karyawan.nik<<endl;

cout<<"Nama = "<<karyawan.nama<<endl;

cout<<"Nilai Test = "<<karyawan.nilai<<endl;

getch();

}

Page 74: MODUL ALGORITMA DAN PEMROGRAMAN · Bahasa C merupakan bahasa pemrograman prosedural, di mana penyelesaian atas suatu masalah dilakukan dengan membagi-bagi masalah tersebut ke dalam

74

Output yang akan dihasilkan, dari program contoh diatas adalah :

Gambar 10.1

CONTOH

Output yang akan dihasilkan, dari program contoh diatas adalah :

Gambar 10.2

#include<conio.h>

#include<stdio.h>

#include<iostream.h>

main( )

{

struct data

{

char nik[10],nama[15];

char prestasi[20];

};

clrscr( );

data karyawan;

cout<<"masukan NIK : ";cin>>karyawan.nik;

cout<<"masukan NAMA : ";cin>>karyawan.nama;

cout<<"masukan PRESTASI : ";cin>>karyawan.prestasi;

cout<<"\n\n Data yang Anda Inputkan Adalah : "<<endl<<endl;

cout<<"NIK : "<<karyawan.nik<<endl;

cout<<"NAMA: "<<karyawan.nama<<endl;

cout<<"PRESTASI: "<<karyawan.prestasi<<endl;

getch( ); }

Page 75: MODUL ALGORITMA DAN PEMROGRAMAN · Bahasa C merupakan bahasa pemrograman prosedural, di mana penyelesaian atas suatu masalah dilakukan dengan membagi-bagi masalah tersebut ke dalam

75

NESTED STRUCTURE Nested Structure merupakan suatu Structure dapat digunakan didalam

structure yang lainnya, atau biasa disebut dengan structure di dalam structure.

CONTOH

#include<stdio.h>

#include<conio.h>

#include<iostream.h>

main()

{

struct dtmhs

{

char nim[5],nama[15];

};

struct dtnil

{

float nil1;

float nil2;

};

struct

{

struct dtmhs mhs;

struct dtnil nil;

} nilai;

clrscr();

cout<<"masukan NIM = "; cin>>nilai.mhs.nim;

cout<<"masukan Nama = "; cin>>nilai.mhs.nama;

cout<<"masukan Nilai UTS = "; cin>>nilai.nil.nil1;

cout<<"masukan Nilai UAS = "; cin>>nilai.nil.nil2;

cout<<”\n\nData yang di Inputkan adalah : \n\n”;

cout<<"NIM = "<<nilai.mhs.nim<<endl;

cout<<"Nama = "<<nilai.mhs.nama<<endl;

cout<<"Nilai UTS = "<<nilai.nil.nil1<<endl;

cout<<"Nilai UAS = "<<nilai.nil.nil2<<endl;

cout<<endl;

getch();

return(0);

}

Page 76: MODUL ALGORITMA DAN PEMROGRAMAN · Bahasa C merupakan bahasa pemrograman prosedural, di mana penyelesaian atas suatu masalah dilakukan dengan membagi-bagi masalah tersebut ke dalam

76

Output yang akan dihasilkan, dari program contoh diatas adalah :

Gambar 10.3

STRUCTURE DENGAN ARRAY

Sebuah struct yang di dalamnya tedapat variable dengan tipe data array.

CONTOH

struct

{

elemen_struktur ;

…………………. ;

} nama_tipe_struktur[jml_index];

#include<stdio.h>

#include<conio.h>

#include<iostream.h>

main()

{

int i;

struct

{

char nim[5];

char nama[15];

float nilai;

} mhs[5];

Page 77: MODUL ALGORITMA DAN PEMROGRAMAN · Bahasa C merupakan bahasa pemrograman prosedural, di mana penyelesaian atas suatu masalah dilakukan dengan membagi-bagi masalah tersebut ke dalam

77

Output yang akan dihasilkan, dari program contoh diatas adalah :

Gambar 10.4

clrscr();

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

{

cout<<"masukan NIM = "; cin>>mhs[i].nim;

cout<<"masukan Nama = "; cin>>mhs[i].nama;

cout<<"masukan Nilai Akhir = "; cin>>mhs[i].nilai;

}

cout<<endl;

cout<<"data Mahasiswa"<<endl;

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

{

cout<<"Data Ke - "<<i<<endl;

cout<<"NIM = "<<mhs[i].nim<<endl;

cout<<"Nama = "<<mhs[i].nama<<endl;

cout<<"Nilai Akhir = "<<mhs[i].nilai<<endl;

cout<<endl;

}

getch();

}

Page 78: MODUL ALGORITMA DAN PEMROGRAMAN · Bahasa C merupakan bahasa pemrograman prosedural, di mana penyelesaian atas suatu masalah dilakukan dengan membagi-bagi masalah tersebut ke dalam

78

STRUCTURE DENGAN FUNGTION

#include<stdio.h>

#include<conio.h>

#include<iostream.h>

char* ket(float n);

main()

{

int i, j=1, k=1;

struct

{

char nim[5];

char nama[15];

float nilai;

} mhs[5];

clrscr();

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

{ cout<<"Data Ke - "<<j++<<endl;

cout<<"masukan NIM = ";

cin>>mhs[i].nim;

cout<<"masukan Nama = ";

cin>>mhs[i].nama;

cout<<"masukan Nilai Akhir = ";

cin>>mhs[i].nilai;

cout<<endl; }

clrscr();

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

{ cout<<"Data Ke - "<<k++<<endl;

cout<<"NIM = "<<mhs[i].nim<<endl;

cout<<"Nama = "<<mhs[i].nama<<endl;

cout<<"Nilai Akhir =

"<<mhs[i].nilai<<endl;

cout<<"Keterangan yang didapat = ";

cout<<ket(mhs[i].nilai)<<endl;

cout<<endl;

}

getch();

}

char* ket(float n)

{

if(n > 65)

cout<< "Lulus";

else

cout<< "Gagal";

}

Page 79: MODUL ALGORITMA DAN PEMROGRAMAN · Bahasa C merupakan bahasa pemrograman prosedural, di mana penyelesaian atas suatu masalah dilakukan dengan membagi-bagi masalah tersebut ke dalam

79

Output yang akan dihasilkan, dari program contoh diatas adalah :

Gambar 10.5 Gambar 10.6

LATIHAN 10

1. Buatlah program menggunakan function untuk menentukan selisih antara dua waktu

(jam). Misalkan selisih antara pukul 4.30 dengan 6.00 adalah 90 menit.

Terdapat 2 argumen function yaitu jam pertama dan jam kedua (lebih besar dari jam

pertama).

hint: buat struktur jam (dengan unit jam, dan menit).

Page 80: MODUL ALGORITMA DAN PEMROGRAMAN · Bahasa C merupakan bahasa pemrograman prosedural, di mana penyelesaian atas suatu masalah dilakukan dengan membagi-bagi masalah tersebut ke dalam

80

DAFTAR PUSTAKA

Al Fatta, Hanif, S.k om. 2006. Dasar Pemrograman C++. Andi Offset. Yogyakarta

Frieyadie. 2006. Panduan Pemrograman C++. Andi Offset. Yogyakarta

Kadir, Abdul. 2001. Pemrograman C++ menggunakan turbo C++ dan borland C++.

Andi Offset. Yogyakarta.

Nugroho, Adi, ST., MMSI. Pemrograman Berorientasi Objek. Informatika. Bandung