laporan praktikum bahasa pemrograman c++ 2013

160
LAPORAN PRAKTIKUM KOMPUTASI DASAR & PEMROGRAMAN NAMA : FATHURRAHMAN NIM : F1B111019 KELOMPOK : 8 LABORATORIUM KOMPUTER DAN JARINGAN JURUSAN TEKNIK ELEKTRO FAKULTAS TEKNIK UNIVERSITAS MATARAM 2013

Upload: milanisty-si-tangan-sayaplaki

Post on 20-Oct-2015

3.138 views

Category:

Documents


136 download

DESCRIPTION

JTE-FT UNRAM

TRANSCRIPT

LAPORAN PRAKTIKUM

KOMPUTASI DASAR & PEMROGRAMAN

NAMA : FATHURRAHMAN

NIM : F1B111019

KELOMPOK : 8

LABORATORIUM KOMPUTER DAN JARINGAN

JURUSAN TEKNIK ELEKTRO

FAKULTAS TEKNIK

UNIVERSITAS MATARAM

2013

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 2

DAFTAR PUSTAKA

COVER .......................................................................................................... 1

DAFTAR PUSTAKA ..................................................................................... 2

LEMBAR MONITORING ........................................................................... 4

LEMBAR PENGESAHAN .......................................................................... 5

COVER MODUL 1 PENGETAHUAN DASAR PEMROGRAMAN ...... 6

A. TUJUAN ........................................................................................... 7

B. DASAR TEORI ................................................................................ 7

C. PERMASALAHAN .......................................................................... 17

D. ANALISA DATA ............................................................................. 18

E. KESIMPULAN ................................................................................. 21

F. TUGAS PENDAHULUAN .............................................................. 22

G. TUGAS – TUGAS ............................................................................ 24

DAFTAR PUSTAKA ............................................................................ 25

COVER MODUL 2 STATEMENT CONTROL DAN LOOPING .......... 26

A. TUJUAN ........................................................................................... 27

B. DASAR TEORI ................................................................................ 27

C. PERMASALAHAN .......................................................................... 32

D. ANALISA DATA ............................................................................. 34

E. KESIMPULAN ................................................................................. 37

F. TUGAS PENDAHULUAN .............................................................. 39

G. TUGAS – TUGAS ............................................................................ 41

DAFTAR PUSTAKA ............................................................................ 43

COVER MODUL 3 FUNGSI ...................................................................... 44

A. TUJUAN ........................................................................................... 45

B. DASAR TEORI ................................................................................ 45

C. PERMASALAHAN .......................................................................... 51

D. ANALISA DATA ............................................................................. 54

E. KESIMPULAN ................................................................................. 63

F. TUGAS PENDAHULUAN .............................................................. 64

G. TUGAS – TUGAS ............................................................................ 69

DAFTAR PUSTAKA ........................................................................... 71

COVER MODUL 4 ARRAY ....................................................................... 72

A. TUJUAN ........................................................................................... 73

B. DASAR TEORI ................................................................................ 73

C. PERMASALAHAN .......................................................................... 77

D. ANALISA DATA ............................................................................. 80

E. KESIMPULAN ................................................................................. 85

F. TUGAS PENDAHULUAN .............................................................. 86

G. TUGAS – TUGAS ............................................................................ 88

DAFTAR PUSTAKA ........................................................................... 97

COVER MODUL 5 POINTER .................................................................... 98

A. TUJUAN ........................................................................................... 99

B. DASAR TEORI ................................................................................ 99

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 3

C. PERMASALAHAN .......................................................................... 105

D. ANALISA DATA ............................................................................. 109

E. KESIMPULAN ................................................................................. 113

F. TUGAS PENDAHULUAN .............................................................. 114

G. TUGAS – TUGAS ............................................................................ 115

DAFTAR PUSTAKA ........................................................................... 119

COVER MODUL 6 STRUCT ...................................................................... 120

A. TUJUAN ........................................................................................... 121

B. DASAR TEORI ................................................................................ 121

C. PERMASALAHAN .......................................................................... 126

D. ANALISA DATA ............................................................................. 129

E. KESIMPULAN ................................................................................. 132

F. TUGAS PENDAHULUAN .............................................................. 133

G. TUGAS – TUGAS ............................................................................ 134

DAFTAR PUSTAKA ........................................................................... 138

COVER MODUL 7 FILE/BERKAS ........................................................... 139

A. TUJUAN ........................................................................................... 140

B. DASAR TEORI ................................................................................ 140

C. PERMASALAHAN .......................................................................... 144

D. ANALISA DATA ............................................................................. 147

E. KESIMPULAN ................................................................................. 150

F. TUGAS PENDAHULUAN .............................................................. 151

G. TUGAS – TUGAS ............................................................................ 153

DAFTAR PUSTAKA ........................................................................... 160

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 4

LEMBAR MONITORING PRAKTIKUM

KOMPUTASI DASAR & PEMROGRAMAN

NAMA

NIM

KELOMPOK

: FATHURRAHMAN

: F1B111019

: 8

Percobaan Tanggal Nama Asisten Paraf

Percobaan Terima

Modul 1 21-09-2013 27-09-2013 Radimas Dhawniel P.

Modul 2 28-09-2013 05-10-2013 Radimas Dhawniel P.

Modul 3 05-10-2013 11-10-2013 Radimas Dhawniel P.

Modul 4 12-10-2013 28-10-2013 Radimas Dhawniel P.

Modul 5 02-11-2013 09-11-2013 Radimas Dhawniel P.

Modul 6 09-11-2013 16-11-2013 Radimas Dhawniel P.

Modul 7 16-11-2013 23-11-2013 Radimas Dhawniel P.

Keterangan:

Modul 1 : Pengetahuan Dasar Pemrograman

Modul 2 : Statement Control dan Looping

Modul 3 : Fungsi

Modul 4 : Array

Modul 5 : Pointer

Modul 6 : Struct

Modul 7 : File

Mataram, 21 Desember 2013

Koordiantor Asisten

( AINUL HAMDANI )

F1B010036

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 5

LEMBAR PENGESAHAN

PRAKTIKUM KOMPUTASI DASAR & PEMROGRAMAN

Oleh :

FATHURRAHMAN

F1B111019

Laporan ini disusun untuk memenuhi syarat kredit semester praktikum

Komputasi Dasar dan Pemrograman pada Jurusan Teknik Elektro

Telah diperiksa dan disetujui oleh :

Mataram, 30 Desember 2013

Dosen Pembimbing Praktikum

(Giri Wahyu Wiriasto, ST., MT)

NIP. 19820904 201012 1 001

Mengetahui

Kepala Laboratorium Komputer

dan Jaringan

(Lalu A. Syamsul Irfan Akbar, ST., M.Eng)

NIP. 19830310 200912 1 004

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 6

LAPORAN PRAKTIKUM

KOMPUTASI DASAR & PEMROGRAMAN

MODUL I

PENGETAHUAN DASAR PEMROGRAMAN

NAMA

NIM

KELOMPOK

: FATHURRAHMAN

: F1B111019

: 8

LABORATORIUM KOMPUTER DAN JARINGAN

JURUSAN TEKNIK ELEKTRO

FAKULTAS TEKNIK

UNIVERSITAS MATARAM

2013

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 7

MODUL 1

PENGETAHUAN DASAR PEMROGRAMAN

A. Tujuan

a. Mahasiswa mengetahiu dasar-dasar penulisan program komputer.

b. Mahasiswa memahami struktur bahasa C/C++.

c. Mahasiswa mengetahui dan bisa menggunakan tipe data tertentu dalam

pembuatan program.

d. Mahasiswa bisa memasukkan dan mengambil data dari program.

B. Dasar Teori

1. Struktur bahasa C++

Contoh 1:

// my first program in C++ #include <iostream.h> int main () { cout << "Hello World!"; return 0; }

Source code di atas merupakah contoh program sederhana dari c++, yang

dapat diberi nama hiworld.cpp.

Program diatas merupakan salah satu program paling sederhana dalam C++,

tetapi dalam program tersebut mengandung komponen dasar yang selalu ada

pada setiap pemrograman C++. Jika dilihat satu persatu :

// my first program in C++

Baris ini adalah komentar. semua baris yang diawali dengan dua garis miring

(//) akan dianggap sebagai komentar dan tidak akan berpengaruh terhadap

program. Dapat digunakan oleh programmer untuk menyertakan penjelasan

singkat atau observasi yang terkait dengan program tersebut.

#include <iostream.h>

Kalimat yang diawali dengan tanda (#) adalah preprocessor directive. Bukan

merupakan baris kode yang dieksekusi, tetapi indikasi untuk kompiler. Dalam

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 8

kasus ini kalimat #include <iostream.h> memberitahukan preprocessor

kompiler untuk menyertakan header file standard iostream. File spesifik ini

juga termasuk library deklarasi standard I/O pada C++ dan file ini disertakan

karena fungsi-fungsinya akan digunakan nanti dalam program.

int main ()

Baris ini mencocokan pada awal dari deklarasi fungsi main. Fungsi main

merupakan titik awal dimana seluruh program C++ akan mulai dieksekusi.

Diletakan diawal, ditengah atau diakhir program, isi dari fungsi main akan

selalu dieksekusi pertama kali. Pada dasarnya, seluruh program C++ memiliki

fungsi main.

Main diikuti oleh sepasang tanda kurung () karena merupakan fungsi. Pada

C++, semua fungsi diikuti oleh sepasang tanda kurung () dimana, dapat

berisi argumen didalamnya. Isi dari fungsi main selanjutnya akan mengikuti,

berupa deklarasi formal dan dituliskan diantara kurung kurawal ({}), seperti

dalam contoh.

cout << "Hello World";

Intruksi ini merupakan hal yang paling penting dalam program contoh. cout

merupakan standard output stream dalam C++ (biasanya monitor). cout

dideklarasikan dalam header file iostream.h, sehingga agar dapat

digunakan maka file ini harus disertakan.

Perhatikan setiap kalimat diakhiri dengan tanda semicolon (;). Karakter ini

menandakan akhir dari instruksi dan harus disertakan pada setiap akhir

instruksi pada program C++ manapun.

return 0;

Perintah return menyebabkan fungsi main() berakhir dan

mengembalikan kode yang mengikuti perintah tersebut, dalam kasus ini 0. Ini

merupakan cara yang paling sering digunakan untuk mengakhiri program.

Tidak semua baris pada program ini melakukan aksi. Ada baris yang hanya

berisi komentar (diawali //), baris yang berisi instruksi untuk preprocessor

kompiler (Yang diawali #),kemudian baris yang merupakan inisialisasi sebuah

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 9

fungsi (dalam kasus ini, fungsi main) dan baris yang berisi instruksi (seperti,

cout <<), baris yang terakhir ini disertakan dalam blok yang dibatasi oleh

kurung kurawal ({}) dari fungsi main.

Struktur program dapat dituliskan dalam bentuk yang lain agar lebih mudah

dibaca, contoh:

int main (){

cout << " Hello World ";

return 0;

}

Atau dapat juga dituliskan :

int main () { cout << " Hello World "; return 0; }

Dalam satu baris dan memiliki arti yang sama dengan program-program

sebelumnya. pada C++ pembatas antar instruksi ditandai dengan semicolon

(;) pada setiap akhir instruksi.

Contoh 2:

// my second program in C++ #include <iostream.h>

int main (){

cout << "Hallo! ";

cout << "Selamat Datang di C++";

return 0;

}

Tampilan Program :

Komentar

Komentar adalah bagian dari program yang diabaikan oleh kompiler. Tidak

melaksanakan aksi apapun. Mereka berguna untuk memungkinkan para

programmer untuk memasukan catatan atau deskripsi tambahan mengenai

program tersebut. C++ memiliki dua cara untuk menuliskan komentar :

// Komentar baris /* Komentar Blok */

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 10

/* Komentar seperti ini Juga biasa digunakan Di C++

*/

Komentar baris, akan mengabaikan apapun mulai dari tanda (//) sampai

akhir dari baris yang sama. Komentar Blok, akan mengabaikan apapun yang

berada diantara tanda /* dan */.

2. Tipe Data

Nama Bytes* Description Range*

char 1 Abjad/karakter atau untuk bilangan bulat kecil

signed: -128 to 127 unsigned: 0 to 255

short 2 Bilangan bulat dengan jangkauan pendek

Signed : -32768 to 32767 unsigned: 0 to

65535

long 4 Bilangan bulat

signed:-2147483648 to 2147483647

unsigned: 0 to 4294967295

Int 4 Integer dengan jangkauan panjang

signed:-2147483648 to 2147483647

unsigned: 0 to 4294967295

float 4 Angka dengan titik mengambang (bilangan cacah)

3.4e + / - 38 (7 digits)

double 8 Bilangan cacah dengan ketelitian ganda

1.7e + / - 308 (15 digits)

long double

10 Bilangan cacah dengan ketelitian ganda panjang

1.2e + / - 4932 (19 digits)

bool 1 Boolean, dapat bernilai benar atau salah (true or false)

True or false

wchar_t

2 Karakter lebar, biasa dipakai untuk Unicode karakter

1 karakter lebar

3. Operator

Operator-operator yang disediakan C++ berupa keyword atau karakter

khusus. Operator-operator ini cukup penting untuk diketahui karena

merupakan salah satu dasar bahasa C++.

Assignation (=).

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 11

Operator assignation digunakan untuk memberikan nilai ke suatu variable.

a = 5;

Memberikan nilai integer 5 ke variabel a. Sisi kiri dari operator disebut lvalue

(left value) dan sisi kanan disebut rvalue (right value). lvalue harus selalu

berupa variabel dan sisi kanan dapat

berupa konstanta, variabel, hasil dari suatu operasi atau kombinasi dari

semuanya.

Contoh :

int a, b; // a:? b:?

a = 10; // a:10 b:?

b = 4; // a:10 b:4

a = b; // a:4 b:4

b = 7; // a:4 b:7

Hasil dari contoh diatas, a bernilai 4 dan b bernilai 7.

Contoh : a = 2 + (b = 5);

equivalen dengan :

b = 5;

a = 2 + b;

Arithmetic operators ( +, -, *, /, % )

+ addition

- subtraction

* multiplication

/ division

% module

Compound assignation operators

(+=, -=, *=, /=, %=, >>=, <<=, &=, ^=, |=)

contoh :

value += increase; equivalen dengan value = value + increase;

a -= 5; equivalen dengan a = a - 5;

a /= b; equivalen dengan a = a / b;

price *= units + 1; equivalen dengan price = price * (units + 1);

Increament (++) and decreament (--).

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 12

Contoh : a++; a+=1;

a=a+1;

Contoh diatas adalah equivalen secara fungsional. Nilai a dikurangi 1.

Operator Increase dan Decrease dapat digunakan sebagai prefix atau suffix.

Dengan kata lain dapat dituliskan sebelum identifier variabel (++a) atau

sesudahnya (a++). operator increase yang digunakan sebagai prefix (++a),

Perbedaannya terlihat pada tabel dibawah ini :

Example 1 B=3;

A=++B;

// A is 4, B is 4

Example 2 B=3;

A=B++;

// A is 3, B is 4

Pada contoh 1, B ditambahkan sebelum nilainya diberikan ke A. Sedangkan

contoh 2, Nilai B diberikan terlebih dahulu ke A dan B ditambahkan kemudian.

Relational operators ( ==, !=, >, <, >=, <= )

Untuk mengevaluasi antara 2 ekspresi, dapat digunakan operator Relasional.

Hasil dari operator ini adalah nilai bool yaitu hanya berupa true atau false,

atau dapat juga dalam nilai int, 0 untuk mereprensentasikan "false" dan 1

untuk merepresentasikan "true". Operator-operator relasional pada C++ :

== Equal

!= Different

> Greater than

< Less than

>= Greater or equal than

<= Less or equal than

Contoh :

(7 == 5) would return false.

(5 > 4) would return true.

(3 != 2) would return true.

(6 >= 6) would return true.

(5 < 5) would return false.

Contoh, misalkan a=2, b=3 dan c=6 :

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 13

(a == 5) would return false.

(a*b >= c) would return true since (2*3 >= 6) is it.

(b+4 > a*c) would return false since (3+4 > 2*6) is it.

((b=2) == a) would return true.

Logic operators ( !, &&, || ).

Operator ! equivalen dengan operasi boolean NOT, hanya mempunyai 1

operand, berguna untuk membalikkan nilai dari operand yang bersangkutan.

Contoh :

!(5 == 5) returns false because the expression at its

right (5 == 5) would be true.

!(6 <= 4) returns true because (6 <= 4) would be false.

!true returns false.

!false returns true.

Operator Logika && dan || digunakan untuk mengevaluasi 2 ekspresi dan

menghasilkan 1 nilai akhir. mempunyai arti yang sama dengan operator

logika Boolean AND dan OR. Contoh :

First

Operand

a

Second

Operand

b

Result

a && b

Result

a || b

true true true true

true false false true

false true false true

false false false false

Contoh :

( (5 == 5) && (3 > 6) ) returns false ( true && false ).

( (5 == 5) || (3 > 6)) returns true ( true || false ).

Conditional operator ( ? ).

operator kondisional mengevaluasi ekspresi dan memberikan hasil

tergantung dari hasil evaluasi (true atau false). Sintaks :

condition ? result1 : result2

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 14

Jika kondisi true maka akan menghasilkan result1, jika tidak akan

menghasilkan result2.

7==5 ? 4 : 3 returns 3 since 7 is not equal to 5.

7==5+2 ? 4 : 3 returns 4 since 7 is equal to 5+2.

5>3 ? a : b returns a, since 5 is greater than 3.

a>b ? a : b returns the greater one, a or b.

Bitwise Operators ( &, |, ^, ~, <<, >> ).

Operator Bitwise memodifikasi variabel menurut bit yang merepresentasikan

nilai yang disimpan, atau dengan kata lain dalam representasi binary.

op asm Description

& AND Logical AND

| OR Logical OR

^ XOR Logical Exclusive OR

~ NOT Complement to one (bit inversion

<< SHL Shift left

>> SHR Shift Right

Explicit type casting operators

Type casting operators memungkinkan untuk mengkonversikan tipe data

yang sudah diberikan ke tipe data yang lain. Ada beberapa cara yang dapat

dilakukan dalam C++, yang paling popular yaitu tipe baru dituliskan dalam

tanda kurung () contoh:

int i;

float f = 3.14; i = (int) f;

Contoh diatas, mengkonversikan nilai 3.14 menjadi nilai integer (3). Type

casting operator yang digunakan (int). Cara lainnya :

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 15

i = int ( f );

sizeof()

Operator ini menerma 1 parameter, dapat berupa type variabel atau variabel

itu sendiri dan mengembalikan ukurannya type atau object tersebut dalam

bytes :

a = sizeof (char);

Contoh diatas akan memberikan nilai 1ke a karena char adalah tipe data

dengan panjang 1 byte. Nilai yang diberikan oleh sizeof bersifat konstsn

constant.

Prioritas pada operator

Contoh : a = 5 + 7 % 2

Jawaban dari contoh diatas adalah 6. Dibawah ini adalah prioritas operator

dari tinggi ke rendah

Priority Operator Description Associativity

1 :: Scope Left

2 ( )[ ]->. Sizeof Left

3 ++ -- Increment/decrement Right

~ Complement to one

(bitwise)

! Unary NOT

&* Reference and Deference

(pointer)

(type) Type Casting

+ - Unary less sign

4 */% Arithmetical operations Left

5 + - Arithmetical operations Left

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 16

6 << >> Bit shifting (bitwise) Left

7 < <= > >= Relation operators Left

8 == != Relation operators Left

9 & ^ | Bitwise operators Left

10 && | | Logic operators Left

11 ?: Conditional Right

12 = += -= *= /= %=

>>= <<= &= ^= |=

Assignation Right

13 , Comma, separator Left

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 17

C. Permasalahan

1. Membuat kalkulator sederhana yang menggunakan

a. Minimal 3 buah type data

b. Minimal 4 buah operator

Jawaban Permasalahan :

#include <iostream.h>

#include <conio.h>

void main(){

int a;

float b;

double c;

cout<<"Masukkan Nilai Inputan a : ";

cin>>a;

cout<<"Masukkan Nilai Inputan b : ";

cin>>b;

cout<<"Masukkan Nilai Inputan c : ";

cin>>c;

int f1=a+b+c; int f2=a*b*c; int f3=a/b/c; int f4=a-b-c;

cout<<endl<<endl;

cout<<"======()HASILNYA()======"<<endl;

cout<<"Penjumlahan Inputan a + b + c = ["<<f1<<"]"<<endl;

cout<<"Perkalian Inputan a * b * c = ["<<f2<<"]"<<endl;

cout<<"Pembagian Inputan a : b : c = ["<<f3<<"]"<<endl;

cout<<"Pengurangan Inputan a - b - c = ["<<f4<<"]";

getch();

}

Tampilan Program :

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 18

D. Analisa

Dari hasil praktikum percobaan pertama pada modul pengetahuan dasar

pemrograman yaitu membuat kalkulator sederhana dengan minimal 3 buah type

data dan 4 buah operator. Dapat dianalisa beberapa permasalahan pada program

tersebut yaitu :

1. Header

#include <iostream.h>

#include <conio.h>

#include merupakan preprocessor directive yang berfungsi untuk

memberitahukan kepada compiler bahwa program yang kita buat menggunakan

file-file yang fungsi-fungsinya berada pada file header. Sedangkan

<iostream.h> berisi deklarasi yang diperlukan oleh cout dan cin atau

berbagai objek yang berhubungan dengan operasi masukan / keluaran ( input

/output) dan <conio.h> merupakan file header untuk menampilkan program yang

kita jalankan dan diikuti dengan getch(). Apabila getch() tidak ada maka

program yang kita jalankan akan langsung keluar pada saat telah melakukan

operasi aritmatika ataupun operasi yang lainnya. Begitu juga sebaliknya, apabila

<conio.h> tidak disertakan maka getch() tidak akan berfungsi.

2. Fungsi Main

void main()

{

}

Fungsi main merupakan titik awal dimana seluruh program c++ akan mulai

dieksekusi. Fungsi main diikuti oleh sepasang tanda kurung () karena

merupakan fungsi dan tanda kurung kurawal buka { merupakan tanda awal

fungsi main dan tanda kurung kurawal tutup } merupakan tanda akhir dari

program.

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 19

3. Tipe Data

int a;

float b;

double c;

tipe data merupakan jenis data yang digunakan untuk mendeklarasikan suatu

variabel dalam bahasa c++.

- Int merupakan tipe data bilangan bulat dan memiliki jumlah bit sebanyak 32

- Float merupakan tipe data bilangan pecahan ( pecahan persisi tunggal )

dan memiliki jumlah bit sebanyak 32.

- Double merupakan tipe data bilangan pecahan ( pecahan persisi ganda )

dan memiliki jumlah bit sebanyak 64.

4. Inputan dan Keluaran

cout<<"Masukkan Nilai Inputan a : ";

cin>>a;

cout<<"Masukkan Nilai Inputan b : ";

cin>>b;

cout<<"Masukkan Nilai Inputan c : ";

cin>>c;

Kode cout<< diatas untuk menampilkan statement “masukkan nilai inputan a :”

sedangkan cin>>a untuk memasukkan nilai kedalam variabel a . Begitu juga

dengan cout<< selanjutnya yaitu untuk menampilkan statement “Masukkan nilai

inputan b :” dan cin>>b akan memasukkan nilai ke dalam variabel b dan cout<<

selanjutnya akan menampilkan statement “masukkan nilai inputan c :” sedangkan

cin>>c akan memasukkan nilai kedalam variabel c.

Tampilan Program :

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 20

Setelah di inputkan data maka program akan menampilkan hasil dari inputan

data tersebut. Dengan scrip program sebagai berikut :

int f1=a+b+c; int f2=a*b*c; int f3=a/b/c; int f4=a-b-c;

cout<<endl<<endl;

cout<<"======()HASILNYA()======"<<endl;

cout<<"Penjumlahan Inputan a + b + c = ["<<f1<<"]"<<endl;

cout<<"Perkalian Inputan a * b * c = ["<<f2<<"]"<<endl;

cout<<"Pembagian Inputan a : b : c = ["<<f3<<"]"<<endl;

cout<<"Pengurangan Inputan a - b - c = ["<<f4<<"]";

int f1=a+b+c; int f2=a*b*c; int f3=a/b/c; int f4=a-b-c;

adalah sebuah pendeklarasian dari sebuah rumus, f1 untuk penjumlahan, f2

untuk perkalian, f3 untuk pembagian dan f4 untuk pengurangan.

cout<<”Perkalian Inputan a*b*c = “ adalah untuk menampilkan

statemen perkalian “Perkalian Inputan a*b*c”, sedangkan <<a*b*c; adalah

untuk mengalikan nilai dari a*b*c, begitu seterusnya untuk penjumlahan

(<<a+b+c), pembagian (<<a:b:c) dan pengurangan (<<a-b-c). Sedangkan

kode <<endl; adalah untuk menampilkan pernyataan atau hasil selanjutnya

pada baris baru.

Tampilan Program :

5. Getch()

getch();

Perintah ini selalu berada di akhir agar user dapat melihat hasil output dari

program yang dijalankan, karena program yang tidak diberikan perintah

getch() akan langsung keluar dari program ketika output telah dieksekusi.

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 21

E. Kesimpulan

1. Pemrograman C++ memiliki struktur bahasa yang diawali dengan menginclude

header library yang dibutuhkan untuk operasi input & output ataupun operasi-

operasi lainnya.

2. Tipe data merupakan bagian program yang paling penting karena tipe data

merupakan tempat pengalokasian memori bagi variable-variable yang telah

dideklarasikan dalam program.

3. Dalam library C++,iostream mendukung dua operasi dasar yaitu perintah

cout akan menampilkan sesuatu ke layar monitor dan cin akan menerima

masukkan dari keyboard.

4. Pemrograman C/C++ termasuk bahasa pemrograman yang membedakan

huruf besar dan huruf kecil.

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 22

F. TUGAS PENDAHULUAN

Buatlah program seperti tampilan berikut ini.

#include<iostream.h>

#include<conio.h>

void main()

{

char nama[25];

char nim[9];

int tgl;

char bln[15];

int thn;

char klp[5];

cout<<"Masukkan Nama : Nama Saya ";

cin>>nama;

cout<<"Masukkan NIM :";

cin>>nim;

cout<<"TTL : Tanggal :";

cin>>tgl;

cout<<" Bulan :";

cin>>bln;

cout<<" Tahun :";

cin>>thn;

cout<<"Kelompok :";

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 23

cin>>klp;

clrscr();

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

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

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

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

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

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

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

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

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

cout<<"Nama :"<<nama<<endl;

cout<<"Nim :"<<nim<<endl;

cout<<"TTL :"<<tgl<<" "<<bln<<" "<<thn<<endl;

cout<<"Kelompok :"<<klp<<endl;

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

cout<<"+ + By : Man_Sugoi || arigatoo + +"<<endl;

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

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

getch();

}

Tampilan Program :

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 24

G. TUGAS - TUGAS

Menghitung Luas Bola (di inputkan secara dinamis). (+)pernak-pernik. #include <iostream.h>

#include <conio.h>

void main (){

int r;

float luas;

cout<<"======================================================\n";

cout<<"======================================================\n";

cout<<"======================================================\n";

cout<<"****************** *** **** **** ===\n";

cout<<"****************** ** ***** ***** ===\n";

cout<<"****************** * ****** ****** ===\n";

cout<<"*** **** **** ===\n";

cout<<"*** **** **** ===\n";

cout<<"*** MASUKKAN JARI-JARI BOLA = ";cin>>r;

cout<<"*** **** **** ===\n";

cout<<"*** **** **** ===\n";

cout<<"****************** **** **** ===\n";

cout<<"****************** **** **** ===\n";

cout<<"****************** **** **** ===\n";

cout<<"*** **** **** ===\n";

luas=4*3.14*r*r;

cout<<"*** LUAS BOLA ADALAH :["<<luas<<"] ===\n";

cout<<"*** **** **** ===\n";

cout<<"****************** **** **** ===\n";

cout<<"****************** **** **** ===\n";

cout<<"****************** **** **** ===\n";

cout<<"======================================================\n";

cout<<"======================================================\n";

cout<<"========= TERIMA KASIH & SEE YOU LATER =========\n";

cout<<"========= By : Man_Sugoi || arigatoo =========\n";

cout<<"======================================================\n";

cout<<"======================================================\n";

getch();

}

Tampilan Program

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 25

DAFTAR PUSTAKA

Ekasari, Prita. 2013. C++ Lengkap. Pdf.

http://prita.staff.gunadarma.ac.id/Downloads/files/26797/C%2B%2B_Lengkap_.pdf

Diakses tanggal 18 September 2013

Anonim 2013. Modul Praktikum Komputasi Dasar dan Pemrograman. Jurusan Teknik

Elektro. Fakultas Teknik. Universitas Mataram.

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 26

LAPORAN PRAKTIKUM

KOMPUTASI DASAR & PEMROGRAMAN

MODUL II

STATEMENT CONTROL DAN LOOPING

NAMA

NIM

KELOMPOK

: FATHURRAHMAN

: F1B111019

: 8

LABORATORIUM KOMPUTER DAN JARINGAN

JURUSAN TEKNIK ELEKTRO

FAKULTAS TEKNIK

UNIVERSITAS MATARAM

2013

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 27

MODUL 2

STATEMENT CONTROL DAN LOOPING

A. Tujuan

a. Mahasiswa bisa membuat program yang memerlukan perulangan.

b. Mahasiswa bisa memilih / menentukan statement looping yang paling sesuai

dengan permasalahan yang harus dipecahkan.

c. Mahasiswa bisa menentukan statement control yang tepat untuk program yang

dibuat.

B. Dasar Teori

1. Pernyataan Ungkapan

Ekspresi atau pernyataan ungkapan merupakan suatu operator yang dimana

operator ini memberikan suatu sifat atau keadaan apa, yang di berlakukan pada

suatu variabel, dengan kata lain ekspresi memberikan atau menunjukan kondisi

yang ada pada suau variabel,

Contoh :

1 + 2 merupakan contoh ekspresi yang dimana “ + “ merupakan operator

ekspresinya, jadi operator “ + ” menunjukan kondisi apa yang diberlakukan pada

variabel 1 dan 2 yakni dijumlahkan, sedangkan nilai 3 merupakan hasil ekspresi

2. Statement Control

Statement control merupakan sebuah statement yang terdiri dari kondisi-

kondisi yang dimana jika kondisi tersebut terpenuhi program akan melakukan

suatu instruksi tertentu. Jadi dapat di katakan statement control merupakan

penunjuk arah bagi urutan suatu program.

Dalam bahasa C++ ada beberapa jenis statement control sebagai berikut :

1. Konstruksi If

Pada konstruksi if sebuah konstruktur program hanya memiliki

sebuah kondisi, artinya dimana suatu instruksi atau beberapa instruksi akan

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 28

di jalankan apabila sebuah kondisi tersebut di penuhi, namun apabila kondisi

tersebut tidak terpenuhi maka instruksi yang ada tidak akan di jalankan.

Berikut sintaks dari konstruksi if :

if (kondisi)

{

Instruksi/statement;

}

2. Konstruksi if – else

Pada konstruksi if else sedikit berbeda dengan konstruksi if

karena pada konstruksi if else. Jika sebuah kondisi tidak terpenuhi maka

program akan mencari kondisi lain yang ada atau menjalankan instruksi

yang berada di luar bagian dari kondisi yang tidak terpenuhi.

Berikut sintaks dari konstruksi if-else :

if (kondisi)

{

Statement/instruksi;

}

else

{

Statement/instruksi;

}

3. Konstruksi if – else bersarang

Pada konstruksi ini terdapat lebih dari satu buah kondisi jadi

apabila sebuah kondisi tidak terpenuhi maka akan berlanjut ke kondisi

berikutnya tergantung berapa banyak kondisi yang ada.

Berikut sintaks konstruksi if –else bersarang :

if (kondisi)

{

Statement/instruksi;

}

else if (kondisi)

{

Statement/instruksi;

}

else

{

Statement/instruksi;

}

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 29

4. Konstruksi switch – case

Konstruksi switch – case sedikit berbeda dengan konstruksi

if – else, di mana konstruksi switch – case lebih menguntungkan di

gunakan pada program yang memiliki banyak pilihan kondisi dalam satu step

dan jumlah kondisi sudah pasti. Jadi berbeda dengan statement if else

yang hanya memiliki 2 pilihan kondisi pada satu step. Berikut sintaks

konstruksi switch – case :

Switch (variabel)

{

Case konstanta1

{

Statement;

Break;

}

Case konstanta ke-n

{

Statement;

Break;

}

}

3. Statement Looping

Struktur perulangan digunakan untuk mengulang sekumpulan perintah

sesuai dengan kondisi yang diberikan. Proses perulangan biasanya digunakan

untuk mengulang proses pemasukan data, mengulang proses perhitungan dan

mengulang untuk proses penampilan hasil pengolahan data, dengan jumlah

tertentu jika sebuah kondisi belum terpenuhi. Biasanya bila dalam perulangan

tersebut tidak disertakan batasnya maka syntax akan error karena proses itu akan

berulang terus hingga tak terhingga sementara variabel dalam komputer masih

terbatas. Struktur pengulangan terdiri dari dua buah bagian yaitu :

Kondisi pengulangan, yaitu ekspresi Boolean yang harus di penuhi untuk

melakukan pengulangan

Isi atau badan pengulangan, yaitu satu atau lebih pernyataan yang akan

di ulang

Berikut macam konstruksi pengulangan :

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 30

1. Konstruksi for

Konstruksi for adalah perintah pengulangan yang di gunakan

apabila programmer sudah mengetahui berapa kali proses pengulangan

yang akan di lakukan, dan perintah for tidak membutuhkan suatu kondisi

terpenuhi.

Berikut sintaks programnya :

Deklarasipeubah ;

for (peubah=nilaiawal ; peubah=nilaiakhir ; kondisi)

{

Statement;

}

2. Konstruksi while

Konstruksi while merupakan perintah pengulangan yang di

pakai apabila programmer tidak mengetahui berapa kali jumlah

pengulangan di lakukan, dan perintah while ini memungkinkan

statement yang ada pada konstruksinya tidak di lakukan sama sekali jika

kondisi tidak di penuhi. Pernyataan while adalah pernyataan yang

berguna untuk memproses suatu pernyataan atau memproses pernyataan

beberapa kali. Pernyataan atau aksi akan di ulang jika kondisi bernilai

benar dan jika salah maka keluar dari blok perulangan (loop).

Berikut sintaks programnnya :

While (kondisi)

{

Statement;

}

3. Konstruksi do – while

Konstruksi do-while merupakan perintah pengulangan yang di

pakai apabila programmer tidak mengetahui berapa kali jumlah

pengulangan di lakukan. Perintah do-while sedikit berbeda dengan

while karena pada perintah do-while, statement yang berada pada

konstruksinya harus di laksanakan satu kali walaupun kondisi yang ada

tidak terpenuhi. Perulangan akan dilakukan minimal 1x terlebih dahulu,

kemudian baru dilakukan pengecekan terhadap kondisi, jika kondisi benar

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 31

maka perulangan masih akan tetap dilakukan. Perulangan dengan

do…while() akan dilakukan sampai kondisi false.

Perbedaan dengan while statement adalah pada do while kondisi

akan dievaluasi setelah dilakukan statement/proses. Selain itu pada do

while minimal akan dilaksanakan 1 (satu) kali statement/instruksinya.

Berikut sintaks programnya :

Do

{

Statement;

}

While (kondisi);

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 32

C. PERMASALAHAN

Mencari akar persamaan kuadrat dengan metode setengah interval ax2+bx+c. Input a,

b dan c secara dinamis dan gunakan tipe data float.

Jawaban Permasalahan : #include <iostream.h>

#include <conio.h>

#include <math.h>

void main()

{

float a,b,c,x1,x2,fx1,fx2,n, fxt, xt, i,r;

cout<<"==================================\n";

cout<<"=========== KELOMPOK 8 ===========\n";

cout<<"=== By : Man.Sugoi || arigatoo ===\n";

cout<<"==================================\n";

cout<<"Nilai A : ";

cin>>a;

cout<<"Nilai B : ";

cin>>b;

cout<<"Nilai C : ";

cin>>c;

cout<<"Persamaan = "<<a<<"X^2 + "<<b<<"X + "<<c<<endl<<endl;

cout<<"Input Nilai X1 : ";

cin>>x1;

cout<<"Input Nilai X2 : ";

cin>>x2;

cout<<"Nilai Iterasi : ";

cin>>n;

cout<<endl;

cout<<endl;

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

r=i+1;

cout<<"Nilai Iterasi Ke "<<r<<endl;

xt=(x1+x2)/2;

cout<<"Nilai Xt ="<<xt<<endl;

fxt=(a*(xt*xt))+(b*xt)+c;

cout<<"Nilai fxt = "<<fxt<<endl;

fx1=(a*(x1*x1))+(b*x1)+c;

cout<<"Nilai fx1 = "<<fx1<<endl;

fx2=(a*(x2*x2))+(b*x2)+c;

cout<<"nilai fx2 = "<<fx2<<endl;

cout<<endl;

cout<<endl;

if (fxt>0){

x2=xt;

}

else if (fxt<0){

x1=xt;

}

}

getch();

}

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 33

Tampilan Program : Untuk mencari akar persamaan dari ax2+bx+c adalah dimana nilai a=-2, b=3 dan c=2

sehingga persamaannya adalah -2x2+3x+2 dan kita misalkan nilai x1=1 dan nilai

x2=2, dimana kita memasukkan jumlah iterasi yang kita inginkan dan kita akan

membutuhkan fungsi perulangan untuk menghitung jumlah iterasi dari 0 sampai n.

Sehingga semakin besar nilai iterasinya, maka nilai xt akan semakin kecil.

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 34

D. ANALISA

Dari hasil praktikum percobaan kedua pada modul statement control dan

looping yaitu mencari akar persamaan kuadrat dengan metode setengah interval

ax2+bx+c, input a, b dan c secara dinamis dan gunakan tipe data float. Dapat

dianalisa beberapa permasalahan pada program tersebut yaitu :

#inclue <iostream.h>

#include <conio.h>

Listing program diatas merupakan bagian dari header dari program yang kami buat, di

mana header di atas merupakan library program c++ diantaranya adalah :

#include <iostream.h>

Baris ini menginstruksikan kepada kompiler untuk menyisipkan file lain, saat program

dikompilasi dan file iostream.h berisi deklarasi yang diperlukan oleh cout dan

berbagai objek yang berhubungan dengan operasi masukan / keluaran ( input /output

) pada stream. Header ini menerangkan cout, cin dan endl sebagai library-nya

agar pada saat dicompile tidak terdapat warning statement missing yang

menunjukkan bahwa library program belum di-include-kan / dimasukkan dalam

program tersebut.

#include <conio.h>

Baris ini memerintahkan untuk menjalankan dan menampilkan program, bila muncul

statement missing getch(); disebabkan karena conio.h sebagai penerangannya

belum di deklarasikan. Sehingga pada saat dicompile program tesebut akan terjadi

malrunning (tidak dapat berjalan) pada program.

Fungsi Utama

void main(){

}

Kata void yang mendahului main() dipakai untuk menyatakan bahwa fungsi ini

tidak memiliki nilai balik. Baris ini menandai mulainya compiler yang mengeksekusi

program. Tanda { pada fungsi main()menyatakan awal eksekusi program

sedangkan pada akhir program main()ditandai dengan }. Apabila fungsi main

dihilangkan maka program akan mengeluarkan statement declaration terminated

incorrectly.

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 35

Dekelarasi Tipe data float a,b,c,x1,x2,fx1,fx2,n, fxt, xt, i;

Tipe data merupakan bagian program yang paling penting karena tipe data

merupakan tempat pengalokasian memori bagi variabel – variabel yang telah

dideklarasikan dalam program. Pada program di atas menggunakan tipe data float

dan memiliki beberapa variabel

Input/output

cout<<"Nilai A : ";

cin>>a;

cout<<"Nilai B : ";

cin>>b;

cout<<"Nilai C : ";

cin>>c;

cout<<"Persamaan yg anda mau hitung adalah :"<<a<<"X^2 +

"<<b<<"X + "<<c<<endl;

cout<<endl;

cout<<"Input Nilai X1 : ";

cin>>x1;

cout<<"Input Nilai X2 : ";

cin>>x2;

cout<<"Nilai Iterasi : ";

cin>>n;

Output (cout)

Untuk cout menggunakan operator << (insert on operation). Operator

insertion operator << yang memberikan perintah kepada cout kalimat yang akan di

acak di layar di apit oleh tanda petik “ ” .

Input (cin)

Untuk menerima input-an dengan perintah cin, maka operator yang akan digunakan

adalah overload >> dan diikuti oleh variable tempat menyimpan input-an data,pada

program yang di buat ,nilai data akan di-input-kan melalui keyboard dan hasilnya akan

di simpan dalam tipe data tertentu yang telah dideklarasikan terlebih dahulu.

Fungsi Perulangan for

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

{

Perulangan dengan fungsi for ini merupakan fungsi perulangan dimana yang

dijalankan adalah fungsi-fungsi selanjutnya setelah tanda { di mana fungsi tersebut

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 36

adalah fungsi – fungsi logic maupun aritmatika. Dimana i=0 adalah nilai awal, i<n

adalah syarat untuk melakukan eksekusi yaitu nilai awal lebih kecil dari nilai iterasi

(n=iterasi) dan i++ sebagai pengontrol.

Perumusan perogram

r=i+1;

cout<<"Nilai Iterasi Ke "<<r<<endl;

xt=(x1+x2)/2;

cout<<"Nilai Xt ="<<xt<<endl;

fxt=(a*(xt*xt))+(b*xt)+c;

cout<<"Nilai fxt = "<<fxt<<endl;

fx1=(a*(x1*x1))+(b*x1)+c;

cout<<"Nilai fx1 = "<<fx1<<endl;

fx2=(a*(x2*x2))+(b*x2)+c;

cout<<"nilai fx2 = "<<fx2<<endl;

Fungsi ini mencari nilai iterasi sampai nilai iterasi ke-n dengan menggunakan rumus di

atas yaitu untuk mencari nilai xt=(x1+x2)/2; maka akan ditampilkan nilai dari xt itu

sendiri dengan perintah cout<<"Nilai Xt ="<<xt<<endl; dan nilai

fxt=(a*(xt*xt))+(b*xt)+c;, maka akan ditampilkan nilai dari fxt itu sendiri dengan

perintah cout<<"Nilai fxt = "<<fxt<<endl; dan fx1=(a*(x*x))+(b*x)+c;

maka akan ditampilkan nilai dari fx1 itu sendiri dengan perintah cout<<"Nilai fx1 =

"<<fx1<<endl; dan fx2=(a*(x2*x2))+(b*x2)+c; maka akan ditampilkan nilai dari

fx2 itu sendiri dengan perintah cout<<"Nilai fxt = "<<fxt<<endl;. Sedangkan

kode <<endl; adalah supaya tampilan berada pada garis baru (enter).

Tampilkan perogram

if (fxt>0)

{

x2=xt;

}

else if (fxt<0)

{

x1=xt;

}

Dimana fungsi diatas untuk membaca kondisi yang mana apabila fxt lebih besar dari 0

(fxt>0) maka x2=xt dan jika fxt lebih kecil dari 0 (fxt>0) maka x1=xt.

Akhir perogram

getch();

}

Pada akhir program di berikan perintah getch();yaitu sebagai penunda compiler.

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 37

E. KESIMPULAN

1. Statement Control yaitu sebuah statement yang terdiri dari kondisi-kondisi yang

dimana jika kondisi tersebut dipenuhi maka program akan melakukan suatu

intruksi tertentu.

a. If-Else

Pernyataan Percabangan If-Else digunakan untuk memecahkan persoalan

untuk mengambil suatu keputusan diantara sekian pernyataan yang ada. Untuk

keperluan pengambilan keputusan, Borland C++ menyediakan beberapa

perintah antara lain:

Contoh : {

if(a>=80 && a<=100)

cout<<"A"<<a;

else if(a>=75 && a<=80)

cout<<"B"<<a;

else

cout<<"Wah, kagak tahu belum wawancara gitu";

}

b. Statement Control if

Fungsi if digunakan untuk memberikan pernyataan sesuai kondisi

Contoh :

if(x%2==0)

{

cout<<"Nilai yang anda masukkan adalah bilangan

genap"<<endl;

}

2. Struktur Perulangan digunakan untuk mengulang sekumpulan perintah sesuai

dengan kondisi yang diberikan. Proses perulangan biasanya digunakan untuk

mengulang proses pemasukan data, mengulang proses perhitungan dan

mengulang untuk proses penampilan hasil pengolahan data, dengan jumlah

tertentu jika sebuah kondisi belum terpenuhi.

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 38

a. Perulangan For

Digunakan untuk mengulang suatu proses yang telah diketahui jumlah

perulangannya.

Contoh :

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

{

Statemen;

}

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 39

F. Tugas Pendahuluan

#include <iostream.h>

#include <conio.h>

void main()

{

int a,b,i;

cout<<"Masukkan Angka : ";

cin>>a;

cout<<"\n\n";

if(a%2 == 1)

{

cout<<"Angka Yang Anda Masukkan Adalah Ganjil. " <<endl;

cout<<"Menampilkan Gambar :" <<endl;

for(i= a/2; i>=0; i--)

{

cout<<"\n";

for(b=0; b<(a/2-i)+1; b++)

{

cout<<" ";

}

for(b=0; b<2*i+1; b++)

{

cout<<"#";

}

}

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

{

cout<<"\n";

for(b=0; b<(a/2-i)+1;b++)

{

cout<<" ";

}

for(b=0; b<2*i+1; b++)

{

cout<<"#";

}

}

cout<<"\n";

}

else if(a%2 == 0)

{

cout<<"Angka Yang Anda Masukkan adalah genap. " <<endl;

cout<<"Menampilkan Gambar :" <<endl;

cout<<endl;

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

{

for(b=0; b<i + 1; b++)

{

cout<<" ";

}

for(b=0; b<a - i; b++)

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 40

{

cout<<"@";

}

cout<<"\n";

}

}

cout<<"\n\nBy : Man_Sugoi || arigatoo ";

getch();

}

Tampilan Program : 1. Angka Ganjil

2. Angka Genap

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 41

G. TUGAS-TUGAS

Memasukkan penjumlahan bertingkat a=b+c.

Syarat : Jika a ≥ 3, b=a.

Jika c ≥ 5, c=a.

#include <iostream.h>

#include <conio.h>

void main()

{

int a,b,c;

cout<<"====================================\n";

cout<<"=== Nama : Fathurrahman ============\n";

cout<<"=== Nim : F1B111019 ============\n";

cout<<"=== KLP : 8 ============\n";

cout<<"====================================\n";

cout<<"Masukkan Nilai B = ";

cin>>b;

cout<<"Masukkan Nilai C = ";

cin>>c;

cout<<endl;

a=b+c;

cout<<"Nilai A = "<<a<<endl;

for (int i=0; i<=a; i++){

if (a>=3){

b=a;

}

else if (a<=3){

b=a+c;

}

else if(c>=5){

c=a;

}

else if(c<=5){

c=a+b;

}

}

cout<<"====================================\n";

cout<<"====================================\n";

cout<<endl;

cout<<"Nilai B = "<<"["<<b<<"]"<<endl;

cout<<"Nilai C = "<<"["<<c<<"]"<<endl;

cout<<endl;

cout<<"====================================\n";

cout<<"========= TERIMA KASIH =========\n";

cout<<"=== By : Man.Sugoi || arigatoo ===\n";

cout<<"====================================\n";

cout<<"Tekan Sembarang Tombol Untuk Keluar...!";

getch();

}

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 42

Tampilan Program :

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 43

DAFTAR PUSTAKA

Tjhaqiel's . 2010 . Contoh Program C++ Pengunaan do while . html .

http://cakilklaten.blogspot.com/2010/04/contoh-pengunaan-do-while-pada-c.html diakses

pada tanggal 4 Oktober 2013

Ekaswantara . 2010 .Looping dalam C++<<Ekaswantara's Blog. Html .

http://ekaswantara.wordpress.com/looping-dalam-c/ diakses pada tanggal 5 Oktober 2013

Sheilla Rizkia Ferianty . 2012 . Fungsi IF pada Pemrograman C | Semangat Selalu Sobat!

.html.http://49012033sheillarizkia.blogspot.com/2012/03/fungsi-if-pada-pemrograman-

c.html diakses pada tanggal 6 Oktober 2013

Eka Puta . 2009 . For | C++ Programming . html .

http://cprogramming26.blogspot.com/2009/09/for.html. diakses pada tanggal 7 Oktober

2013

Haikal Pratama . 2012 . Contoh Program C++ Menggunakan If Else . html .

http://haikalp.blogspot.com/2012/02/contoh-program-c-menggunakan-if-else.html. diakses

pada tanggal 7 Oktober 2013

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 44

LAPORAN PRAKTIKUM

KOMPUTASI DASAR & PEMROGRAMAN

MODUL III

FUNGSI

NAMA

NIM

KELOMPOK

: FATHURRAHMAN

: F1B111019

: 8

LABORATORIUM KOMPUTER DAN JARINGAN

JURUSAN TEKNIK ELEKTRO

FAKULTAS TEKNIK

UNIVERSITAS MATARAM

2013

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 45

MODUL 3

FUNGSI

A. Tujuan

1. Mahasiswa mengenal function dalam bahasa C / C++.

2. Mahasiswa bisa membuat program procedural dengan bahasa C / C++.

B. Dasar Teori

Fungsi

Pada pemrograman c++ selalu terdapat sebuah fungsi utama atau sub-

program yaitu “void main()” penamaan modul memiliki karakteristik yang sama

dengan penamaan variable, dengan fungsi program akan menjadi lebih efisien

dan fleksibel.

Pada umumnya fungsi memerlukan masukan yang dinamakan argument

atau parameter. Hasil akhir dari fungsi akan berupa sebuah nilai. Berikut bagan

konsep sebuah fungsi :

Berikut sintaks dari suatu fungsi :

Penentuan-tipe nama_fungsi (daftar parameter)

Deklarasi parameter

{

Isi fungsi

}

Fungsi main()

Fungsi a() Fungsi b()

Fungsi c()

Fungsi c1()

Fungsi c2()

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 46

Setiap fungsi yang di panggil di dalam program harus di definisikan.

Letaknya bisa di mana saja. Khusus untuk fungsi yang disediakan di system,

definisinya sebenarnya ada dalam pustaka, yang akan di gabungkan dengan

program sewaktu proses linking.

Deklarasi Fungsi

Deklarasi fungsi atau sering disebut dengan prototype fungsi dimaksudkan

untuk mendeklarasikan fungsi agar dapat di panggil. Deklarasi fungsi berupa :

1. Nama fungsi

2. Tipe nilai balik

3. Jumlah dan tipe argument

Dan diakhiri dengan titik koma, sebagaimana pendeklarasian variabel. Sebagai

contoh :

long kuadrat(long);

pada contoh ini fungsi kuadrat() mempunyai argument bertipe long dan

nilai balik bertipe long.

int maks(int a, int b);

pada contoh ini fungsi maks() mempunyai dua argument bertipe integer

dan nilai balik bertipe integer juga.

void garis();

pada contoh ini fungsi garis() tidak memiliki argument dan nilai baliknya

tida ada (void).

Manfaat dari deklarasi fungsi adalah untuk menjamin tipe argument yang

dilewatkan pada pemanggilan fungsi benar-benar sesuai.

Penggolongan Variabel

Variabel lokal

Variabel lokal merupakan variabel yang dideklarasikan dalam suatu blok

tertentu dan hanya dikenal dalam blok fungsi tersebut. Varibel lokal akan

dihapus dari memori jika proses sudah meninggalkan blok statement letak

variabel lokalnya.

Variabel global

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 47

Variabel global merupakan variabel yang dideklarasikan diluar blok fungsi dan

bersifat dapat dikenal oleh semua bagian dari program.

Variabel statis

Variabel statis merupakan variabel yang menahan nilainya sementara

pemanggilan fungsi berlangsung. Variabel ini dapat dideklarasikan di dalam

fungsi tertentu maupun di luar fungsi yang dideklarasikan di luar blok fungsi

dan bersifat dapat dikenal oleh semua bagian dari program.

Parameter

Parameter adalah sarana komunikasi antar fungsi. Pengertian antar fungsi

adalah antara fungsi dengan fungsi lain termasuk antara fungsi dengan fungsi

utama. Dalam pemograman yang melibatkan fungsi, diusahakan agar fumgsi

bersifat independent artinya tidak tergantung pada fungsi lain. Setiap fungsi hanya

mengerjakan satu tugas tertentu.Antar fungsi saling berkomunikasi menggunakan

parameter.

Terdapat dua macam bentuk parameter dalam hubungannya dengan penggunaan

fungsi dalam program yaitu :

- Parameter Formal : parameter yang diberi nilai. Parameter formal merupakan

parameter yang terdapat dalam daftar parameter fungsi.

- Parameter Aktual : parameter yang memberi nilai. Parameter fungsi dan

digunakanuntuk memberi nilai pada parameter formal.

Dalam contoh program perkalian di atas parameter formal terdapat pada

pendefinisanfungsi :

double hasil(intA, int B) // parameter formal

{

return(A*B);

}

Sedangkan parameter aktual terdapat pada pemanggilan fungsi : void main()

{……………

…………..

z = hasil(x,y); // parameter aktual

…………..

}

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 48

Cara melewatkan suatu parameter dalam Bahasa C++ ada dua cara yaitu :

1. Pemanggilan Secara Nilai (Call by Value)

Secara pengertian pemanggilan secara nilai dapat dijabarkan sebagai berikut :

a) Call by value akan menyalin nilai dari parameter aktual ke parameter formal.

b) Yang dikirimkan ke fungsi adalah nilai dari datanya, bukan alamat memori

letak dari datanya.

c) Fungsi yang menerima kiriman nilai akan menyimpannya di alamat terpisah

dari nilai aslinya yang digunakan oleh bagian program yang memanggil

fungsi.

d) Perubahan nilai di fungsi (parameter formal) tidak akan merubah nilai asli di

bagian program yang memanggilnya.

e) Pengiriman parameter secara nilai adalah pengiriman searah, yaitu dari

bagian program yang memanggil fungsi ke fungsi yang dipanggil.

f) Pengiriman suatu nilai dapat dilakukan untuk suatu ungkapan, tidak hanya

untuk sebuah variabel, elemen array atau konstanta saja.

Contoh :

#include<iostream.h>

int Tambah (int x);

void main ()

{

int a,hasil;

cout<>a;

cout<<"a awal="<<a<<endl;

hasil=Tambah(a);

cout<<"a akhir="<<a<<endl;

cout<<"Hasil:"<<hasil;

}

int Tambah(int x)

{

cout<<"x awal="<<x<<endl;

x=x+2;

cout<<"x akhir="<<x<<endl;

return x;

}

2. Pemanggilan Secara Referensi (Call by Reference)

Untuk variabel di-passed by reference bukan meng-copy nilainya,

melainkan bahkan meng-copy variabelnya sendiri dan modifikasi yang dilakukan

pada variabel lokal memiliki pengaruh.

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 49

Passing by reference juga merupakan jalan yang baik untuk mengizinkan

fungsi mengembalikan lebih dari satu nilai.

Secara pengertian pemanggilan secara acuan dapat dijabarkan sebagai

berikut :

a) Pemanggilan secara referensi merupakan upaya untuk melewatkan alamat

dari suatu variabel ke dalam fungsi.

b) Yang dikirimkan ke fungsi adalah alamat letak dari nilai datanya, bukan nilai

datanya.

c) Fungsi yang menerima kiriman alamat ini maka menggunakan alamat yang

sama untuk mendapatkan nilai datanya.

d) Perubahan nilai di fungsi akan merubah nilai asli di bagian program yang

memanggil fungsi.

e) Pengiriman parameter secara referensi adalah pengiriman dua arah, yaitu

dari fungsi pemanggil ke fungsi yang dipanggil dan juga sebaliknya.

f) Pengiriman secara acuan tidak dapat dilakukan untuk suatu ungkapan.

Contoh : #include<iostream.h>

Int Tambah (int&x);//x diberi & untuk referensi

//hingga nilai a selalu mengikuti nilai

x

//karena a dan x berada dlm satu alamat

memory

void main(){

int a,hasil;

cout<<”Masukkan Bilangan : “;

cin>>a;

cout<<”nilai a awal= “<<a<<endl;

hasil = Tambah(a);

cout<<”nilai a akhir= “<<a<<endl;

cout<<”Hasil : “<<hasil;

}

Int Tambah (int&x){

cout<<”nilai x awal = “<<x<<endl;

x = x+2;

cout<<”nilai x akhir = “<<x<<endl;

return x;

}

Fungsi tanpa nilai balik

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 50

C++ tidak mengenal prosedur seperti pada saat menggunakan bahasa PASCAL.

Dalam PASCAL, prosedur didefinisikan sebagai suatu proses yang tidak

mengembalikan nilai. Sebagai gantinya di dalam C++ terdapat fungsi dengan tipe

void, yang berarti tidak memiliki nilai balik (return value). Bentuk umumnya

adalah sebagai berikut:

Void nama_fungsi (parameter1, parameter2,...){

statement_yang_akan dilakukan;

...

}

Sedangkan bentuk umum pemanggilan sebuah fungsi yang sebelumnya telah

didefinisikan adalah sebagai berikut:

nama_fungsi (parameter1, parameter2,...);

Fungsi dengan nilai balik

Berbeda dengan fungsi yang bertipe void, fungsi ini berguna untuk melakukan

suatu proses yang dapat mengembalikan sebuah nilai. Dalam membuat fungsi ini

harus didefinisikan tipe data dari nilai yang akan dikembalikan. Berikut ini adalah

bentuk umumnya :

tipe_datanama_fungsi (parameter1, parameter2,...){

statement_yang_akan_dilakukan;

...

returnnilai_yang_akan_dikembalikan;

}

Untuk pemanggilan sama seperti pada fungsi yang tidak mempunyai nilai

balik.

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 51

C. Permasalahan

1. Menghitung luas bangun datar

a. Menghitung keliling & luas persegi

b. Menghitung keliling & luas segitiga

c. Menghitung keliling & luas lingkaran

2. Menghitung luas bangun ruang

a. Menghitung luas & volume balok

b. Menghitung luas & volume kubus

c. Menghitung luas & volume bola

Jawaban Permasalahan :

#include <iostream.h>

#include <conio.h>

int luaspersegi(int sisi){

int luaspr = sisi*sisi;

cout<<"Luas Persegi adalah : "<<luaspr<<endl;

return luaspr;

}

int kelilingpersegi(int sisi){

int kelilingpr = 4*sisi;

cout<<"Keliling Persegi adalah : "<<kelilingpr<<endl;

return kelilingpr;

}

int luaslingkaran (int r){

const float phi = 3.14;

int luasling = phi*r*r;

cout<<"Luas Lingkaran adalah : "<<luasling<<endl;

return luasling;

}

int kelilinglingkaran (int r){

const float phi = 3.14;

int kelilingling = 2*phi*r;

cout<<"Keliling Lingaran adalah : "<<kelilingling<<endl;

return kelilingling;

}

int luassegitiga (int a, int t){

int luassegi = 0.5*a*t;

cout<<"Luas Segitiga Sama Sisi adalah : "<<luassegi<<endl;

return luassegi;

}

int kelilingsegitiga (int a){

int kelilingsegi = 3*a;

cout<<"Keliling Segitiga Sama Sisi Adalah :

"<<kelilingsegi<<endl;

return kelilingsegi;

}

int luasbalok (int p, int l, int t){

int luasbal = 2*((p*l)+(p*t)+(l*t));

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 52

cout<<"Luas Balok Adalah : "<<luasbal<<endl;

return luasbal;

}

int volumebalok (int p, int l, int t){

int volumebal = p*l*t;

cout<<"Volume Balok Adalah : "<<volumebal<<endl;

return volumebal;

}

int luaskubus (int s){

int luaskub = 6*s*s;

cout<<"Luas Kubus Adalah : "<<luaskub<<endl;

return luaskub;

}

int volumekubus (int s){

int volumekub = 3*s;

cout<<"Volume Kubus Adalah : "<<volumekub<<endl;

return volumekub;

}

int luasbola (int r){

const float phi = 3.14;

int luasbol = 4*phi*r*r;

cout<<"Luas Bola Adalah : "<<luasbol<<endl;

return luasbol;

}

int volumebola (int r){

const float phi = 3.14;

int volumebol = (4*phi*r*r*r)/3;

cout<<"Volume Bola Adalah : "<<volumebol<<endl;

return volumebol;

}

void main (){

char ulang;

do {

int pilih;

int sisi, r, p, l, s, a, t;

cout<<"====== M a i n M e n u ====== \n";

cout<<"1. Menghitung Luas Bangun Datar \n";

cout<<"2. Menghitung Luas Bangun Ruang \n";

cout<<"Pilih [1 / 2] : ";

cin>>pilih;

//MENU 1

if (pilih==1){

cout<<endl;

cout<<"1. Menghitung Luas dan Keliling Persegi \n";

cout<<"2. Menghitung Luas dan Keliling Lingkaran \n";

cout<<"3. Menghitung Luas dan Keliling Segitiga \n";

cout<<"Pilih [1-3] : ";

cin>>pilih;

if (pilih==1){

cout<<endl;

cout<<"Masukkan Nilai Sisi Persegi ";

cin>>sisi;

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 53

luaspersegi(sisi);

kelilingpersegi(sisi);

cout<<"\n\nBy : Man_Sugoi || arigatoo ";

}

else if (pilih==2){

cout<<endl;

cout<<"Masukkan Nilai Jari-Jari Lingkaran : ";

cin>>r;

luaslingkaran(r);

kelilinglingkaran(r);

cout<<"\n\nBy : Man_Sugoi || arigatoo ";

}

else if (pilih==3){

cout<<endl;

cout<<"Masukkan Nilai Alas : ";

cin>>a;

cout<<"Masukkan Nilai Tinggi : ";

cin>>t;

luassegitiga(a, t);

kelilingsegitiga(a);

cout<<"\n\nBy : Man_Sugoi || arigatoo ";

}

else {

cout<<"Anda Belum Memilih ";

}

}

else if (pilih==2){

cout<<endl;

cout<<"1. Menghitung Luas & Volume Balok \n";

cout<<"2. Menghitung Luas & Volume Kubus \n";

cout<<"3. Menghitung Luas & Volume Bola \n";

cout<<"Pilihan [1-3] : ";

cin>>pilih;

if (pilih==1){

cout<<endl;

cout<<"Masukkan Nilai Panjang Balok : ";

cin>>p;

cout<<"Masukkan Nilai Lebar Balok : ";

cin>>l;

cout<<"Masukkan Nilai Tinggi Balok : ";

cin>>t;

luasbalok(p, l, t);

volumebalok(p, l, t);

cout<<"\n\nBy : Man_Sugoi || arigatoo ";

}

else if (pilih==2){

cout<<endl;

cout<<"Masukkan Nilai Sisi Kubus : ";

cin>>s;

luaskubus(s);

volumekubus(s);

cout<<"\n\nBy : Man_Sugoi || arigatoo ";

}

else if (pilih==3){

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 54

cout<<endl;

cout<<"Masukkan Nilai Jari-Jari Bola : ";

cin>>r;

luasbola(r);

volumebola(r);

cout<<"\n\nBy : Man_Sugoi || arigatoo ";

}

else {

cout<<"Anda Belum Memilih ";

}

}

else if (pilih==3){

cout<<"Anda Belum memilih";

}

cout<<"\nApakah Anda Akan Mengulang ? [y / t] ";

cin>>ulang;

}

while (ulang == 'y');

if (ulang=='t'){

cout<<"Press Any Key...";

}

getch();

}

Tampilan Program : 1. 2.

3. 4.

5. 6.

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 55

D. Analisa Data

Dari pembuatan program untuk mencari nilai luas dan keliling persegi,

lingkaran dan segitiga dan pembuatan program untuk mencari nilai luas dan volume

kubus, balok dan bola. Maka dapat dianalisa sebagai berikut :

1. File header

#include<iostream.h>

#include<conio.h>

Listing program diatas merupakan bagian dari header dari program yang kami buat, di

mana header di atas merupakan library program c++ diantaranya adalah :

#include<iostream.h>

Baris ini menginstruksikan kepada kompiler untuk menyisipkan file lain, saat

program dikompilasi dan file iostream.h berisi deklarasi yang diperlukan oleh

cout dan berbagai objek yang berhubungan dengan operasi masukan / keluaran (

input / output ) pada stream. Header ini menerangkan cout, cin dan endl

sebagai library-nya agar pada saat dicompile tidak terdapat warning statement

missing yang menunjukkan bahwa library program belum di-include-kan /

dimasukkan dalam program tersebut.

#include<conio.h>

Baris ini menginstruksikan untuk menjalankan dan menampilkan program, bila

muncul statement missing getch(); disebabkan karena conio.h sebagai

penerangannya belum dideklarasikan. Sehingga pada saat dicompile program

tersebut akan terjadi malrunning (tidak dapat berjalan) pada program.

2. Fungsi Luas Persegi

int luaspersegi(int sisi){

int luaspr = sisi*sisi;

cout<<"Luas Persegi adalah : "<<luaspr<<endl;

return luaspr; }

Fungsi diatas adalah fungsi untuk mencari nilai luas persegi yang memiliki nilai

balik, dimana fungsi diatas menggunakan parameter integer sebagai nilai

masukan dan keluarannya. Pada parameter terdapat variabel sisi. Dimana nilai

pengembalian atau return-nya adalah luaspr dan nilai pengembali luaspr

didapat dari luaspr = sisi*sisi;.

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 56

3. Fungsi Keliling Persegi

int kelilingpersegi(int sisi){

int kelilingpr = 4*sisi;

cout<<"Keliling Persegi adalah : "<<kelilingpr<<endl;

return kelilingpr;}

Fungsi diatas adalah fungsi untuk mencari nilai keliling persegi yang memiliki nilai

balik, dimana fungsi diatas menggunakan parameter integer sebagai nilai

masukan dan keluarannya. Pada parameter terdapat variabel sisi. Dimana nilai

pengembalian atau return-nya adalah luaspr dan nilai pengembali

kelilingpr didapat dari luaspr = 4*sisi;.

4. Fungsi Luas Lingkaran

int luaslingkaran (int r){

const float phi = 3.14;

int luasling = phi*r*r;

cout<<"Luas Lingkaran adalah : "<<luasling<<endl;

return luasling;}

Fungsi diatas adalah fungsi untuk mencari nilai luas lingkaran yang memiliki nilai

balik, dimana fungsi diatas menggunakan parameter integer sebagai nilai

masukan dan keluarannya. Pada parameter terdapat variabel r. Pada statement

terdapat script const float phi= 3.14;. Maksudnya phi memiliki nilai

konstanta 3,14. Dimana nilai pengembalian atau return-nya adalah luasling

dan nilai pengembali luasling didapat dari luasling = phi*r*r;

5. Fungsi keliling lingkaran

int kelilinglingkaran (int r){

const float phi = 3.14;

int kelilingling = 2*phi*r;

cout<<"Keliling Lingaran adalah : "<<kelilingling<<endl;

return kelilingling; }

Fungsi diatas adalah fungsi untuk mencari nilai keliling lingkaran yang memiliki nilai

balik, dimana fungsi diatas menggunakan parameter integer sebagai nilai

masukan dan keluarannya. Pada parameter terdapat variabel r. Pada statement

terdapat script const float phi= 3.14;. Maksudnya phi memiliki nilai

konstanta 3,14. Dimana nilai pengembalian atau return-nya adalah

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 57

kelilingling dan nilai pengembali kelilingling didapat dari

kelilingling = 2*phi*r;

6. Fungsi luas segitiga

int luassegitiga (int a, int t){

int luassegi = 0.5*a*t;

cout<<"Luas Segitiga Sama Sisi adalah :

"<<luassegi<<endl;

return luassegi; }

Fungsi diatas adalah fungsi untuk mencari nilai luas segitiga yang memiliki nilai

balik, dimana fungsi diatas menggunakan parameter integer sebagai nilai

masukan dan keluarannya. Pada parameter terdapat variabel a dan t. Dimana

nilai pengembalian atau return-nya adalah luassegi dan nilai pengembali

luassegi didapat dari luassegi = 0.5*a*t;

7. Fungsi keliling segitiga

int kelilingsegitiga (int a){

int kelilingsegi = 3*a;

cout<<"Keliling Segitiga Sama Sisi Adalah :

"<<kelilingsegi<<endl;

return kelilingsegi; }

Fungsi diatas adalah fungsi untuk mencari nilai keliling segitiga yang memiliki nilai

balik, dimana fungsi diatas menggunakan parameter integer sebagai nilai

masukan dan keluarannya. Pada parameter terdapat variabel a. Dimana nilai

pengembalian atau return-nya adalah kelilingsegi dan nilai pengembali

kelilingsegi didapat dari luassegi = 3*a;

8. Fungsi luas balok

int luasbalok (int p, int l, int t){

int luasbal = 2*((p*l)+(p*t)+(l*t));

cout<<"Luas Balok Adalah : "<<luasbal<<endl;

return luasbal;

}

Fungsi diatas adalah fungsi untuk mencari nilai luas balok yang memiliki nilai balik,

dimana fungsi diatas menggunakan parameter integer sebagai nilai masukan dan

keluarannya. Pada parameter terdapat variabel p, l dan t. Dimana nilai

pengembalian atau return-nya adalah luasbal dan nilai pengembali luasbal

didapat dari luasbal = 2*((p*l)+(p*t)+(l*t));

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 58

9. Fungsi volume balok

int volumebalok (int p, int l, int t){

int volumebal = p*l*t;

cout<<"Volume Balok Adalah : "<<volumebal<<endl;

return volumebal;}

Fungsi diatas adalah fungsi untuk mencari nilai volume balok yang memiliki nilai

balik, dimana fungsi diatas menggunakan parameter integer sebagai nilai

masukan dan keluarannya. Pada parameter terdapat variabel p, l dan t.

Dimana nilai pengembalian atau return-nya adalah volumebal dan nilai

pengembali volumebal didapat dari volumebal = p*l*t;

10. Fungsi luas kubus

int luaskubus (int s){

int luaskub = 6*s*s;

cout<<"Luas Kubus Adalah : "<<luaskub<<endl;

return luaskub; }

Fungsi diatas adalah fungsi untuk mencari nilai luas kubus yang memiliki nilai balik,

dimana fungsi diatas menggunakan parameter integer sebagai nilai masukan dan

keluarannya. Pada parameter terdapat variabel s. Dimana nilai pengembalian atau

return-nya adalah luaskub dan nilai pengembali luaskub didapat dari

luaskub = 6*s*s;

11. Fungsi volume kubus

int volumekubus (int s){

int volumekub = 3*s;

cout<<"Volume Kubus Adalah : "<<volumekub<<endl;

return volumekub; }

Fungsi diatas adalah fungsi untuk mencari nilai volume kubus yang memiliki nilai

balik, dimana fungsi diatas menggunakan parameter integer sebagai nilai

masukan dan keluarannya. Pada parameter terdapat variabel s. Dimana nilai

pengembalian atau return-nya adalah volumekub dan nilai pengembali

volumekub didapat dari volumekub = 3*s;

12. Fungsi luas bola

int luasbola (int r){

const float phi = 3.14;

int luasbol = 4*phi*r*r;

cout<<"Luas Bola Adalah : "<<luasbol<<endl;

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 59

return luasbol;}

Fungsi diatas adalah fungsi untuk mencari nilai luas balok yang memiliki nilai balik,

dimana fungsi diatas menggunakan parameter integer sebagai nilai masukan dan

keluarannya. Pada parameter terdapat variabel s. Pada statement terdapat script

const float phi= 3.14;. Maksudnya phi memiliki nilai konstanta 3,14.

Dimana nilai pengembalian atau return-nya adalah luasbol dan nilai

pengembali luasbol didapat dari luasbol = 4*phi*r*r;

13. Fungsi volume bola

int volumebola (int r){

const float phi = 3.14;

int volumebol = (4*phi*r*r*r)/3;

cout<<"Volume Bola Adalah : "<<volumebol<<endl;

return volumebol; }

Fungsi diatas adalah fungsi untuk mencari nilai volume bola yang memiliki nilai

balik, dimana fungsi diatas menggunakan parameter integer sebagai nilai

masukan dan keluarannya. Pada parameter terdapat variabel r. Pada statement

terdapat script const float phi= 3.14;. Maksudnya phi memiliki nilai

konstanta 3,14. Dimana nilai pengembalian atau return-nya adalah volumebol

dan nilai pengembali volumebol didapat dari volumebol =

(4*phi*r*r*r)/3;

14. Fungsi utama

void main ()

{

char ulang;

do {

int pilih;

int sisi, r, p, l, s, a, t;

cout<<"====== M a i n M e n u ====== \n";

cout<<"1. Menghitung Luas Bangun Datar \n";

cout<<"2. Menghitung Luas Bangun Ruang \n";

cout<<"Pilih [1 / 2] : ";

cin>>pilih;

Pada fungsi utama beriisi fungsi tampil, variabel input-an karakter dari fungsi

dan statement looping. Untuk statement looping disini kami menggunakan

konstruksi do–while. Dimana pada konstruksi do – while, kondisi akan

dieksekusi atau dievaluasi setelah dilakukan statement atau proses.

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 60

Pada statement do–while berisi variabel input nilai yakni : int pilih; int

sisi, r, p, l, s, a, t;. Untuk varibel pilih dideklarasikan untuk

memasukkan nilai secara dinamis yang nantinya akan menjadi input untuk menu

utama yakni untuk memilih menu menghitung bangun datar atau menghitung

bangun ruang. Setelah itu, terlebih dahulu kita tampilkan pilihan untuk melakukan

perhitungan apakah kita akan melakukan perhitungan untuk bangun datar atau

bangun ruang.

if (pilih==1){

cout<<endl;

cout<<"1. Menghitung Luas dan Keliling Persegi \n";

cout<<"2. Menghitung Luas dan Keliling Lingkaran \n";

cout<<"3. Menghitung Luas dan Keliling Segitiga \n";

cout<<"Pilih [1-3] : ";

cin>>pilih;

Pada script diatas berisi kondisi dimana jika kita meng-input-kan nilai 1 pada

variabel pilih maka kita telah memlilih menu menghitung bangun datar dan pada

bangun datar itu sendiri terdapat opsi : menghitung luas dan keliling

persegi, menghitung luas dan keliling lingkaran dan

menghitung luas dan keliling segitiga.

Berikutnya terdapat variabel input-an pilih;, disini kita diminta untuk meng-

input-kan nilai untuk memilih perhitungan mana yang akan kita laukukan.

if (pilih==1){

cout<<endl;

cout<<"Masukkan Nilai Sisi Persegi ";

cin>>sisi;

luaspersegi(sisi);

kelilingpersegi(sisi);

cout<<"\nPresented By : Man.Sugoi ";

}

else if (pilih==2){

cout<<endl;

cout<<"Masukkan Nilai Jari-Jari Lingkaran : ";

cin>>r;

luaslingkaran(r);

kelilinglingkaran(r);

cout<<"\nPresented By : Man.Sugoi ";

}

else if (pilih==3){

cout<<endl;

cout<<"Masukkan Nilai Alas : ";

cin>>a;

cout<<"Masukkan Nilai Tinggi : ";

cin>>t;

luassegitiga(a, t);

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 61

kelilingsegitiga(a);

cout<<"\nPresented By : Man.Sugoi ";

}

Jika kita meng-input-kan nilai 1 anda akan menghitung luas dan keliling persegi

dan anda akan diminta untuk memasukkan nilai sisi. Secara otomatis nilai luas dan

keliling persegi akan tampil karena sudah dideklarasikan pada fungsi luas persegi “

Luaspersegi; “ dan keliling persegi “Kelilingpersegi;” dan menyesuaikan

parameter ”(sisi)“ yang ada pada fungsi utama. Begitupun dengan dengan

pilihan yang lainnya.

else if (pilih==2){

cout<<endl;

cout<<"1. Menghitung Luas & Volume Balok \n";

cout<<"2. Menghitung Luas & Volume Kubus \n";

cout<<"3. Menghitung Luas & Volume Bola \n";

cout<<"Pilihan [1-3] : ";

cin>>pilih;

Pada script diatas berisi kondisi dimana jika kita meng-input-kan nilai 2 pada

variabel pilih maka kita telah memlilih menghitung luas dan keliling bangun

ruang dan pada bangun ruang itu sendiri terdapat opsi : menghitung luas dan

volume Kubus, menghitung luas dan volume Balok dan menghitung

luas dan volume Bola.

Berikutnya terdapat variabel input-an pilih;, disini kita diminta untuk meng-

input-kan nilai untuk memilih perhitungan mana yang akan kita laukukan.

if (pilih==1){

cout<<endl;

cout<<"Masukkan Nilai Panjang Balok : ";

cin>>p;

cout<<"Masukkan Nilai Lebar Balok : ";

cin>>l;

cout<<"Masukkan Nilai Tinggi Balok : ";

cin>>t;

luasbalok(p, l, t);

volumebalok(p, l, t);

cout<<"\nPresented By : Man.Sugoi ";

}

else if (pilih==2){

cout<<endl;

cout<<"Masukkan Nilai Sisi Kubus : ";

cin>>s;

luaskubus(s);

volumekubus(s);

cout<<"\nPresented By : Man.Sugoi ";

}

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 62

else if (pilih==3){

cout<<endl;

cout<<"Masukkan Nilai Jari-Jari Bola : ";

cin>>r;

luasbola(r);

volumebola(r);

cout<<"\nPresented By : Man.Sugoi ";

}

Jika kita meng-input-kan nilai 1, anda akan menghitung luas dan keliling balok

dan anda akan diminta untuk memasukkan nilai panjang, lebar dan tinggi. Secara

otomatis nilai panjang, lebar dan tinggi luas dan keliling balok akan tampil karena

sudah dideklarasikan pada fungsi luas balok “ Luasbal; “ dan volume balok

“volumebal;” dan menyesuaikan parameter ”(p, l, t)“ yang ada pada fungsi

utama. Begitupun dengan pilihan yang lainnya.

cout<<"\nApakah Anda Akan Mengulang ? [y / t] ";

cin>>ulang;

}

while (ulang == 'y');

if (ulang=='t'){

cout<<"Press Any Key...";

}

Seperti yang telah kita ketahui pada konstruksi do – while, kondisi akan

dieksekusi atau dievaluasi setelah dilakukan statement atau proses.

Do { Statement;}

while (kondisi);

Setalah statement atau proses sudah selesai dijalankan atau diproses kita

diminta untuk menentukan kondisi yang ingin kita inginkan.

Pada script diatas berisi kondisi jika kita memasukkan karakter “ y “ maka kita

akan kembali ke menu utama untuk memilih bangun datar atau bangun ruang.

Namun jika kita memasukkan karakter “ t “ maka akan tampil pada layar “ Press

any key....” atau dengan kata lain kita tidak ingin mengulainginya dan program

akan keluar otomatis setelah kita menekan sembarang tombol.

getch();

}

Pada akhir program diberikan perintah getch();yaitu sebagai penunda

compiler. perintah getch() juga berfungsi sebagai penahan agar tampilan

program pada layar dapat ditunda sebelum di exit atau menekan sembarang tombol

pada keyboard.

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 63

E. Kesimpulan

1. Fungsi merupakan bagian dari kode program yang terpisah dari program utama

(fungsi main).

1. Fungsi dapat dipanggil oleh fungsi yang lain maupun dirinya sendiri (rekursif).

2. Penggolongan variabel ada 3 macam yaitu : Variabel Lokal, Variabel Global, dan

Variabel Statis.

3. Parameter adalah sarana komunikasi antar fungsi. Terdapat 2 jenis parameter

terkait penggunaannya sebagai saran komunikasi antar fungsi yaitu Parameter

Formal dan Parameter Aktual.

4. Parameter Formal adalah parameter yang diberi nilai. Parameter formal

merupakan parameter yang terdapat dalam daftar parameter fungsi.

5. Parameter Aktual adalah parameter yang memberi nilai. Parameter fungsi dan

digunakanuntuk memberi nilai pada parameter formal.

6. Cara melewatkan parameter dalam C++ ada 2 yaitu :

a. Pemanggilan Secara Nilai (Call by Value)

b. Pemanggilan Secara Acuan (Call by Refferance).

7. Pemanggilan Secara Nilai (call by value) adalah pemanggilan yang akan menyalin

nilai dari parameter aktual ke parameter formal.

8. Pemanggilan secara acuan (call by refference) adalah pemanggilan yang meng-

copy variabelnya sendiri dan modifikasi yang dilakukan pada variabel lokal yang

memiliki pengaruh.

9. Ada 2 jenis fungsi :

Fungsi Tanpa Nilai Balik

Fungsi dengan tipe void dan tidak memiliki return value.

Fungsi Dengan Nilai Balik

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 64

F. Tugas Pendahuluan

Buat program seperti tampilan berikut.

Gunakan fungsi untuk setiap pilihannya. Saldo akan bertambah jika setor tunai, dan

akan berkurang jika tarik tunai dan transfer. Program hanya berhenti jika memilih

pilihan keluar.

#include <conio.h>

#include <iostream.h>

#include <string>

void main()

{

string pswd;

char salahpin;

do

{

cout<<"===============================\n";

cout<<" ATM BCA\n";

cout<<"===============================\n";

cout<<" PIN : ";

cin>>pswd;

if(pswd!="123abc")

{

cout<<endl;

cout<<"PIN yang anda masukkan salah\n\n";

salahpin='1';

getch();

}

else

{

int saldo=500000;

char ulang='Y';

int pilihan=0;

int nabung=0;

int tarik=0;

int transfer=0;

cout<<endl;

cout<<"PIN ANDA BENER\n\n";

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 65

do

{

nabung=0;

tarik =0;

salahpin='0';

cout<<" SELAMAT DATANG\n";

cout<<" ATM BCA\n";

cout<<"===============================\n";

cout<<" 1. cek saldo\n";

cout<<" 2. tarik tunai\n";

cout<<" 3. setor tunai\n";

cout<<" 4. transfer\n";

cout<<" 5. keluar\n";

cout<<"===============================\n";

cout<<" Pilihan : ";cin>>pilihan;

cout<<endl;

switch (pilihan)

{

case 1:

{

cout<<"=====================================\n";

cout<<" ATM BCA\n";

cout<<"=====================================\n";

cout<<" Jumlah Saldo Akhir Rp

"<<saldo<<endl<<endl;

cout<<" Ada Transaksi Lain [Y/N] : ";

cin>>ulang;

clrscr();

break;

}

case 2:

{

cout<<"=====================================\n";

cout<<" ATM BCA\n";

cout<<"=====================================\n";

cout<<" Masukkan Nominal Penarikan : ";

cin>>tarik;

cout<<endl;

if(saldo < 50000)

{

cout<<"Saldo tidak mencukupi untuk

melakukan penarikan"<<endl<<endl;

cout<<"Ada Transaksi Lain [Y/N] : ";

cin>>ulang;

}

else if(tarik>saldo)

{

cout<<"Saldo anda tidak

mencukupi"<<endl<<endl;

cout<<"Sisa Saldo Anda Rp

"<<saldo<<endl;

cout<<"Ada Transaksi Lain [Y/N] : ";

cin>>ulang;

}

else if((saldo-tarik)<10000)

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 66

{

cout<<"Jumlah penarikan tidak bisa

dilakukan"<<endl<<endl;

cout<<"Saldo anda tidak mencukupi

"<<saldo<<endl;

cout<<"Ada Transaksi Lain [Y/N] :

";cin>>ulang;

break;

}

else if((tarik % 50000) != 0 )

{

cout<<"Jumlah penarikan tidak bisa

dilakukan "<<endl<<endl;

cout<<"Keliptan Rp 50.000,- atau Rp

100.000,-"<<endl<<endl;

cout<<"Ada Transaksi Lain [Y/N] : ";

cin>>ulang;

}

else if(tarik >5000000 )

{

cout<<"Jumlah penarikan tidak bisa

dilakukan maksimum Rp 5.000.000,- /hari"<<endl<<endl;

cout<<"Ada Transaksi Lain [Y/N] : ";

cin>>ulang;

}

else

{

cout<<"Proses Penarikan Berhasil "<<endl;

saldo-=tarik;

cout<<"Sisa Saldo Anda Rp "<<saldo<<endl;

cout<<"Ada Transaksi Lain [Y/N] : ";

cin>>ulang;

}

clrscr();

break;

}

case 3:

{

cout<<"=====================================\n";

cout<<" ATM BCA\n";

cout<<"=====================================\n";

cout<<" Masukkan Jumlah setoran : ";

cin>>nabung;

cout<<endl<<endl;

cout<<"Jumlah Setoran : Rp "<<nabung<<endl;

cout<<"Proses Berhasil"<<endl;

cout<<endl;

int st=saldo+nabung;

cout<<"Saldo : "<<st<<endl;

saldo+=nabung;

cout<<" Ada Transaksi Lain [Y/N] : ";

cin>>ulang;

clrscr();

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 67

break;

}

case 4:

{

int rek;

cout<<"=====================================\n";

cout<<" ATM BCA\n";

cout<<"=====================================\n";

cout<<" No. Rekening Tujuan : " ;

cin>>rek;

cout<<" Masukkan Nominal Transfer : ";

cin>>transfer;

cout<<endl;

if(saldo < 50000)

{

cout<<" Saldo tidak mencukupi untuk melakukan

Transfer "<<endl<<endl;

cout<<" Ada Transaksi Lain [Y/N] : ";

cin>>ulang;

}

else if(transfer>saldo)

{

cout<<" Saldo anda tidak

mencukupi"<<endl<<endl;

cout<<" Sisa Saldo Anda Rp

"<<saldo<<endl;

cout<<" Ada Transaksi Lain [Y/N] : ";

cin>>ulang;

}

else if((saldo-transfer)<10000)

{

cout<<" Jumlah transfer tidak bisa

dilakukan"<<endl<<endl;

cout<<" Saldo anda tidak mencukupi

"<<saldo<<endl;

cout<<" Ada Transaksi Lain [Y/N] : ";

cin>>ulang;

clrscr();

break;

}

else

{

cout<<" Jumlah Transfer : "<<transfer<<endl;

cout<<" No. Rek Tujuan : "<<rek<<endl;

cout<<" Proses Transfer Berhasil "<<endl<<endl;

saldo-=transfer;

cout<<" Sisa Saldo Anda Rp : "<<saldo<<endl;

cout<<" Ada Transaksi Lain [Y/N] : ";

cin>>ulang;

}

clrscr();

break;

}

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 68

case 5:

{

ulang = '5';

break;

}

default :

{

clrscr();

cout<<" Pilihan tidak ada"<<endl<<endl;

cout<<" Ada Transaksi Lain [Y/N] : ";

cin>>ulang;

clrscr();

break;

}

}

if(ulang == '5') ulang= '5';

}while ((ulang!='5')) ;

}

}while(salahpin!='0');

}

Tampilan Program :

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 69

G. TUGAS-TUGAS

1. Pass By Reference

#include <iostream.h>

#include <conio.h>

//pass by refference

int tukar (int &x, int &y);

int tukar (int &x,int &y) {

int z;

z=x;

x=y;

y=z;

}

void main(){

int x=0;

int y=9;

cout<<"Nilai Sebelum Fungsi Tukar \n";

cout<<x<<" Lebih Dulu dari "<<y<<endl;

tukar (x,y);

cout<<endl;

cout<<"Nilai Setelah Fungsi Tukar \n";

cout<<x<<" Lebih Dulu Dari "<<y<<endl;

cout<<"\n\nBy : Man_Sugoi || arigatoo ";

getch();

}

Tampilan Program :

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 70

2. Pass By Value #include <iostream.h>

#include <conio.h>

//call by value

int kali (int &x);

int kali (int &z){

cout<<"Nilai z awal : "<<z<<endl;

z=z*z;

cout<<"Nilai z akhir : "<<z<<endl;

return z;

}

void main(){

int x, y;

cout<<"Masukkan Nilai Bilangan ";

cin>>x;

cout<<"Nilai x awal "<<x<<endl;

y = kali(x);

cout<<"Nilai x akhir adalah : "<<x<<endl;

cout<<endl;

cout<<"Hasilnya adalah : "<<y;

cout<<"\n\nBy : Man_Sugoi || arigatoo ";

getch();

}

Tampilan Program :

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 71

DAFTAR PUSTAKA Kadir, Abdul. Pemrograman C++. Andi Offset – Jogja, 2004

Tarjianto . 2010 . Fungsi dan Prosedur pada c++ << belajar . html ,

http://tarjianto.wordpress.com/2010/03/12/fungsi-dan-prosedur-pada-c/ diakses pada

tanggal 5 Oktober 2013

NonoHeryana . 2009 . Makalah on Function C++ . html ,

http://www.scribd.com/doc/24584122/makalah-function-on-C#download diakses pada

tanggal 5 Oktober 2013

Zyzah . 2011 .Parameter dalam bahasa c++ . html .

http://zyzah.wordpress.com/2011/04/23/parameter-dalam-bahasa-c/ diakses pada tanggal

7 Oktober 2013

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 72

LAPORAN PRAKTIKUM

KOMPUTASI DASAR & PEMROGRAMAN

MODUL IV

ARRAY

NAMA

NIM

KELOMPOK

: FATHURRAHMAN

: F1B111019

: 8

LABORATORIUM KOMPUTER DAN JARINGAN

JURUSAN TEKNIK ELEKTRO

FAKULTAS TEKNIK

UNIVERSITAS MATARAM

2013

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 73

MODUL IV

ARRAY (LARIK)

A. TUJUAN

4. Mahasiswa dapat memahami definisi dan kegunaan array.

5. Mahasiswa dapat mengetahui bagaimana mengimplementasikan array dalam

program.

B. DASAR TEORI

PENGERTIAN ARRAY.

Array adalah sebuah deretan elemen yang mempunyai tipe data yang sama

dan diletakkan di lokasi memori yang berurutan, setiap elemen dapat diakses secara

individual dengan menambahkan indeks kepada indentifier-nya.

DEKLARASI ARRAY

Seperti variabel pada umumnya, sebuah array harus dideklarasikan terlebih

dahulu sebelum digunakan. Deklarasi umum sebuah array pada bahasa C++ adalah:

type name [element];

di mana :

type adalah tipe data dari array.

name adalah identifier yang valid.

elemen adalah jumlah elemen atau variabel yang dapat diisikan pada array dan

selalu ditutup oleh kurung kotak [].

MENGISIKAN NILAI KE DALAM ELEMEN ARRAY

Data dapat diinputkan untuk setiap emelen array. Tetapi jika jumlah elemen

array banyak, tentunya cara ini tidak efisien. Oleh karena itu dapat digunakan bantuan

instruksi perulangan untuk input datanya.

Contoh 1 :

#include <iostream.h>

#include <conio.h>

main() {

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 74

int a[5];

cout<<”Data ke 0 = “;cin>>a[0];

cout<<”Data ke 1 = “;cin>>a[1];

cout<<”Data ke 2 = “;cin>>a[2];

cout<<”Data ke 3 = “;cin>>a[3];

cout<<”Data ke 4 = “;cin>>a[4];

int jumlah;

jumlah=a[0]+a[1]+a[2]+a[3]+a[4];

cout<<”\n\nJumlahnya = “<<jumlah;

getch();

}

Pada contoh di atas, user menginputkan data pada array satu-persatu sehingga

tidak efisien. Agar lebih efisien, kita dapat menggunakan perulangan untuk

menginputkan data pada sebuah array. Perhatikan contoh berikut ini.

Contoh 2:

#include <iostream.h>

#include <conio.h>

main() {

int a[5];

int jumlah=0;

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

{ cout<<”Data ke “<<i<<” = “;cin>>a[i];

jumlah+=a[i];

}

cout<<”\n\nJumlahnya = “<<jumlah;

getch();

}

MENAMPILKAN NILAI YANG TERDAPAT PADA ARRAY

Untuk menamnpilkan nilai yang terdapat pada array, kita juga dapat

menggunakan berbagai cara. Kita dapat menampilkan satu persatu nilai dari array

dengan menggunakan indeks nya atau kita dapat menampilkan langsung semua nilai

pada array dengan menggunakan perulangan.

1. Array Satu Dimensi

Array satu dimensi berarti array tersebut hanya memiliki satu buah dimensi, yaitu

panjangnya.

a. Deklarasi array

Deklarasi array satu dimensi sama dengan yang di contohkan pada deklarasi

umum di atas.

b. Inisialisasi Array

Inisialisasi array dapat dilihat pada contoh berikut :

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 75

int array[5]={1,20,12,7,2};

Perlu diperhatikan bahwa jumlah nilai yang terdapat pada kurung kurawal tidak

boleh melebihi jumlah elemen pada array.

Dengan menginisialisai array, kita dapat mengosongkan nilai elemen. Contoh :

int array[]={1,20,12,7,2,6,2};

Dengan demikian, isi elemen array otomatis akan terisi 7.

c. Mengakses nilai array

Nilai pada array dapat diakses secara individual dengan menggunakan

indeksnya. Perhatikan contoh berikut :

int array[5]={1,2,1,5,6};

cout<<array[3];

cout<<array[1];

Pengindeksan pada array dimulai dari 0 sampai dengan elemen-1. Perlu

diperhatikan bahwa indeks pada array berbeda dengan jumlah elemen pada

saat pendeklarasian array.

array[0] array[1] array[2] array[3] array[4]

array 3 2 1 5 6

2. Array Dua Dimensi

Array dua dimensi dapat dibayangkan sebagai sebuah table yang memiliki kolom

dan baris.

Perhatikan ilustrasi berikut untuk array[a][b]:

0 1 2 3 4 … b

0

1

2

3

a

3. Array Multi-Dimensi

Dimensi pada array tidak terbatas hanya 2 dimensi saja, tetapi bisa 3, 4 5, ataupun

sebanyak yang diinginkan. Akan tetapi perlu diperhatikan bahwa semakin banyak

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 76

dimensi yang digunakan, maka memori yang diperlukan untuk menyimpan data

pada array tersebut juga akan semakin besar.

a. Array statis

Array pada contoh-contoh sebelumnya adalah array statis, yang berarti jumlah

elemen pada array tidak dapat diubah setelah dideklarasi.

b. Array dinamis

Untuk array dinamis, kita menggunakan memori dinamis sehingga

memungkinkan kita untuk mengubah besar array yang digunakan sesuai

kebutuhan.

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 77

C. PERMASALAHAN

Membuat program untuk menentukan nilai mean, median dan modus dari nilai bahasa

pemrograman dan rangkaian logika dengan menginputkan nim dan nilainya minimal

10 mahasiswa.

Scrip Program :

#include <iostream.h>

#include <conio.h>

#include <iomanip.h>

void input(int data[3][10]){

for(int i=0;i<10;i++) {

for(int j=0;j<3;j++) {

if(j==0) {

cout<<"NIM :";

cin>>data[j][i];

}

else if(j == 1) {

cout<<setw(21)<<"Nilai Bahasa Pemrograman :";

cin>>data[j][i];

}

else if (j==2) {

cout<<setw(21)<<"Nilai Rangkaian Logika :";

cin>>data[j][i];

}

}

cout<<endl;

}

}

void SortirData(int data[3][10],int temporer[10],int c){

for(int i=c;i<3;i++) {

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

temporer[j]=data[i][j];

break;

}

int temp;

for(int i=0;i<10;i++) {

for(int j=0;j<9;j++) {

if (temporer[j]>temporer[j+1]) {

temp=temporer[j];

temporer[j]=temporer[j+1];

temporer[j+1]=temp;

}

}

}

}

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 78

void tampil(int data[3][10]){

cout<<"\n----------------------------------------"<<endl;

cout<<"Data Nilai Mahasiswa Teknik Elektro 2011"<<endl;

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

cout<<"NIM\t Bahasa Pemrograman\t Rangkaian

Logika"<<endl;

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

{

for(int j=0;j<3;j++)

cout<<data[j][i]<<"\t\t\t";

cout<<endl;

}

}

double Mean(int data[10]){

double mean=0;

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

mean+=data[i];

mean=mean/10;

return mean;

}

double Median(int data[10]){

double median;

median=(data[4]+data[5])/2;

return median;

}

double Modus(int data[10]){

double modus;

int Byk_sementara=1;

int a;

int byk[10];

for(int i=0;i<10;i++) {

byk[i]=0;

for(int j=0;j<10;j++) {

if(data[i]==data[j]) {

byk[i]++;

}

}

}

for(int i=0;i<10;i++) {

if(byk[i]>Byk_sementara) {

Byk_sementara=byk[i];

a=i;

}

}

modus=data[a];

return modus;

}

void Tampil_Data_Hasil(int data[3][10]){

int Bhasprog[10];

int Rlog[10];

cout<<"\n\n---------------------------------------"<<endl;

cout<<"Data Mean, Median, dan Modus "<<endl;

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

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 79

cout<<"\nMata kuliah Bahasa pemrograman " <<endl;

cout<<"************************************" <<endl;

SortirData(data,Bhasprog,1);

cout<<"Mean data = "<<Mean(Bhasprog)<<endl;

cout<<"Median data = "<<Median(Bhasprog)<<endl;

cout<<"Modus data = "<<Modus(Bhasprog)<<endl;

cout<<"\nMata kuliah Rangkaian Logika" <<endl;

cout<<"**********************************" <<endl;

SortirData(data,Rlog,2);

cout<<"Mean data = "<<Mean(Rlog)<<endl;

cout<<"Median data = "<<Median(Rlog)<<endl;

cout<<"Modus data = "<<Modus(Rlog)<<endl;

}

void main(){

int data[3][10];

input(data);

tampil(data);

Tampil_Data_Hasil(data);

cout<<"\n\n==== By : Man_Sugoi || arigatoo ====";

getch();

}

Tampilan Program :

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 80

D. ANALISA

#include <iostream.h>

Script di atas menunjukkan bahwa iostream.h merupakan sebuah file header yang

berfungsi untuk memanggil perintah cin dan cout pada program sebagai input dan

output. Tanpa kehadiran file header ini akan terjadi kesalahan setelah program di

compile.

#include <conio.h>

Script di atas menunjukkan bahwa File header conio.h digunakan untuk

mengaktifkan fungsi getch() digunakan untuk mengambil inputan dari keyboard dan

langsung mengeksekusinya tanpa menekan tombol enter terlebih dahulu.

#include <iomanip.h>

Script diatas menunjukkan bahwa iomanip.h merupakan sebuah file header yang

berfungsi untuk memanggil perintah setw pada program untuk mengatur lebar dari

tampilan suatu data.

void input(int data[3][10])

{

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

{

for(int j=0;j<3;j++)

{

if(j==0)

{

cout<<"). NIM :";

cin>>data[j][i];

}

else if(j == 1)

{

cout<<setw(21)<<"Nilai Bahasa Pemrograman :";

cin>>data[j][i];

}

else if (j==2)

{

cout<<setw(21)<<"Nilai Rangkaian Logika :";

cin>>data[j][i];

}

}

cout<<endl;

}

}

Pada script sebelumnya adalah sebuah fungsi yang digunakan untuk memasukkan

input pada suatu array. Fungsi tersebut menggunakan satu parameter yaitu array dua

dimensi. Pada tubuh fungsi ini digunakan perulangan for bertingkat untuk

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 81

melakukan penginputan. Jumlah tingkat perulangan sesuai dengan banyaknya

dimensi pada array. Pada fungsi tersebut, indeks kolom 0 akan diisi dengan NIM, dan

indeks kolom 1 akan di isi dengan Nilai Bahasa Pemrograman dan indeks kolom 2 di

isi dengan Nilai Rangkaian Logika.

void SortirData(int data[3][10],int temporer[10],int c)

{

for(int i=c;i<3;i++)

{

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

temporer[j]=data[i][j];

break;

}

int temp;

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

{

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

{

if (temporer[j]>temporer[j+1])

{

temp=temporer[j];

temporer[j]=temporer[j+1];

temporer[j+1]=temp;

}

}

}

}

Script di atas merupakan sebuah fungsi untuk mengurutkan nilai yang terdapat dalam

array dari yang paling kecil ke paling besar. Fungsi tersebut memiliki 3 parameter

yaitu array dua dimensi, array satu dimensi, dan bilangan integer. Pada blok for

yang pertama, fungsi menyalin nilai pada array dua dimensi ke dalam array satu

dimensi. Kemudian pada blok for yang kedua, fungsi mengurutkan nilai array satu

dimensi dari yang paling kecil ke yang paling besar. Menggunakan perulangan for

dan pengondisian if, jika nilai array pada indeks j lebih besar daripada nilai array

pada indeks j+1, maka kedua nilai tersebut akan ditukar. Begitu seterusnya sampai

semua nilai berurutan.

void tampil(int data[3][10])

{

cout<<"\n-----------------------------------------"<<endl;

cout<<"Data Nilai Mahasiswa Teknik Elektro 2011 "<<endl;

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

cout<<"NIM\t Bahasa Pemrograman\t Rangkaian

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 82

Logika"<<endl;

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

{

for(int j=0;j<3;j++)

cout<<data[j][i]<<"\t\t\t";

cout<<endl;

}

}

Script di atas adalah fungsi bernama tampil untuk menampilkan seluruh isi dari array

dua dimensi. Fungsi tersebut mengunakan satu parameter yaitu array dua dimensi.

Dengan perulangan for bertingkat, isi dari array akan dikeluarkan ke layar

menggunakan cout.

double Mean(int data[10])

{

double mean=0;

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

mean+=data[i];

mean=mean/10;

return mean;

}

Script di atas merupakan fungsi bernama Mean yang digunakan untuk mencari nilai

mean dari sederetan nilai array. Fungsi tersebut bertipe double dan memiliki satu

parameter yaitu array satu dimensi. Setelah didapatkan nilai mean nya, fungsi akan

mengembalikan nilai mean kepada fungsi pemanggilnya.

double Median(int data[10])

{

double median;

median=(data[4]+data[5])/2;

return median;

}

Script di atas merupakan fungsi bernama Median yang digunakan untuk mencari

nilai median dari sederetan nilai array. Fungsi tersebut bertipe double dan

memiliki satu parameter yaitu array satu dimensi. Setelah didapatkan nilai median

nya, fungsi akan mengembalikan nilai median kepada fungsi pemanggilnya.

double Modus(int data[10])

{

double modus;

int Byk_sementara=1;

int a;

int byk[10];

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

{

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 83

byk[i]=0;

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

{

if(data[i]==data[j])

{

byk[i]++;

}

}

}

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

{

if(byk[i]>Byk_sementara)

{

Byk_sementara=byk[i];

a=i;

}

}

modus=data[a];

return modus;

}

Script di atas merupakan fungsi bernama Modus yang digunakan untuk mencari nilai

modus dari sederetan nilai array. Fungsi tersebut bertipe double dan memiliki satu

parameter yaitu array satu dimensi. Setelah didapatkan nilai modus nya, fungsi akan

mengembalikan nilai modus kepada fungsi pemanggilnya.

void Tampil_Data_Hasil(int data[3][10])

{

int Bhasprog[10];

int Rlog[10];

cout<<"\n\n-------------------------------------"<<endl;

cout<<"Data Mean, Median, dan Modus "<<endl;

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

cout<<"\nMata kuliah Bahasa pemrograman " <<endl;

cout<<"************************************" <<endl;

SortirData(data,Bhasprog,1);

cout<<"Mean data = "<<Mean(Bhasprog)<<endl;

cout<<"Median data = "<<Median(Bhasprog)<<endl;

cout<<"Modus data = "<<Modus(Bhasprog)<<endl;

cout<<"\nMata kuliah Rangkaian Logika" <<endl;

cout<<"**********************************" <<endl;

SortirData(data,Rlog,2);

cout<<"Mean data = "<<Mean(Rlog)<<endl;

cout<<"Median data = "<<Median(Rlog)<<endl;

cout<<"Modus data = "<<Modus(Rlog)<<endl;

}

Script di atas merupakan fungsi yang di gunakan bernama Tampil_Data_Hasil

untuk memanggil fungsi Mean, Median, Modus dan fungsi SortirData.Fungsi

tersebut memanggil fungsi SortirData terlabih dahulu untuk mengurutkan niai

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 84

Bahasa Pemrograman dan nilai Rangkaian Logika. Baru kemudian di panggil fungsi

Mean, Median, Modus untuk menghitung ketiga nilai tersebut.

void main()

Script di atas merupakan sebuah fungsi , yaitu fungsi main(). Fungsi ini menjadi

awal dan akhir eksekusi program pada C++, mainadalah nama judul fungsi, tanda

() digunakan untuk mengapit argumen fungsi. Pada fungsi main seperti di atas , tidak

ada argumen di dalam tanda (). Oleh karena itu tidak ada entri di dalam (). Kata

void yang mendahului main() di pakai untuk menunjukkan bahwa fungsi ini tidak

memiliki nilai balik (return value).

int data[3][10];

Script di atas menunjukkan bahwa data merupakan nama variable dari sebuah array

dua dimensi bertipe int. Perintah di atas juga untuk menampilkan elemen data

dengan subscript pertama(baris) berupa 3 dan subscript ke dua(kolom) bernilai 10.

input(data);

Script di atas berfungsi untuk memanggil fungsi yang ada pada luar fungsi utama dan

di eksekusi di dalam fungsi utama (fungsi main) dan input merupakan nama fungsi

yang memiliki satu argument.

tampil(data);

Script di atas berfungsi untuk memanggil fungsi yang ada pada luar fungsi utama dan

di eksekusi di dalam fungsi utama (fungsi main) dan tampil merupakan nama

fungsi yang memiliki satu argument.

Tampil_Data_Hasil(data);

Script di atas berfungsi untuk memanggil fungsi yang ada pada luar fungsi utama dan

di eksekusi di dalam fungsi utama (fungsi main) dan Tampil_Data_Hasil

merupakan nama fungsi yang memiliki satu argument.

getch();

Script getch() digunakan untuk mengambil inputan dari keyboard dan langsung

mengeksekusinya tanpa menekan tombol enter terlebih dahulu.

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 85

E. KESIMPULAN

1. Array adalah sebuah deretan elemen yang mempunyai tipe data yang sama dan

diletakkan di lokasi memori yang berurutan.

2. Deklarasi umum sebuah array pada bahasa C++ :

type name [element];

3. Array satu dimensi berarti array tersebut hanya memiliki satu buah dimensi, yaitu

panjangnya.

4. Array dua dimensi dapat dibayangkan sebagai sebuah table yang memiliki kolom

dan baris.

5. Dimensi pada array tidak terbatas hanya 2 dimensi saja, tetapi bisa 3, 4 5, ataupun

sebanyak yang diinginkan.

6. Array statis, yang berarti jumlah elemen pada array tidak dapat diubah setelah

dideklarasi.

7. Array dinamis, kita menggunakan memori dinamis sehingga memungkinkan kita

untuk mengubah besar array yang digunakan sesuai kebutuhan.

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 86

F. TUGAS PENDAHULUAN

Source code

#include <iostream.h>

#include <conio.h>

void main()

{

cout<<"By : Man_Sugoi || arigatoo "<<endl;

do

{

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

cout<<" TUGAS PENDAHULUAN PERCOBAAN IV "<<endl;

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

cout<<"1).Lihat isi Array " <<endl;

cout<<"2).Jumlah dari seluruh isi array " <<endl;

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

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

int data[5][7] =

{

{1,2,3,4,5,6,7},

{1,2,3,4,5,6,7},

{1,2,3,4,5,6,7},

{1,2,3,4,5,6,7},

{1,2,3,4,5,6,7}

};

int jumlah = 0;

int pilihan;

cout<<"Masukkan pilihan anda : ";

cin>>pilihan;

if(pilihan == 1)

{

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

cout<<"ISI ARRAY " <<endl;

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

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

{

cout<<"[";

for(int j=0; j<7; j++)

{

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

}

cout<<"]"<<endl;

}

cout<<endl;

}

else if(pilihan == 2)

{

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

{

for(int j=0; j<7; j++)

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 87

{

jumlah += data[i][j];

}

}

cout<<"\nJumlah Isi Array = " <<jumlah <<endl;

}

else

{

cout<<"\nanda tidak memilih menu manapun " <<endl;

break;

}

}

while(1);

getch();

}

Tampilan Program :

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 88

G. TUGAS-TUGAS

1. Mencari nilai tertinggi dan terendah dalam array 2 x n (n>5).

#include <iostream>

#include <conio.h>

void main() {

int x,y;

int a['x']['y'];

int maks=0,min;

cout<<"===== Tugas Array [2][n] =====\n\n";

cout<<"Masukkan Jumlah Kolom ";

cin>>x;

cout<<"Masukkan Jumlah Baris ";

cin>>y;

cout<<endl;

for(int i=0;i<x;i++){

for(int j=0;j<y;j++){

cout<<"Inputkan Data Ke ["<<(i)<<"] ["<<(j)<<"] = ";

cin>>a[i][j];

if(a[i][j]>maks){

maks=a[i][j];

}

if(a[i][j]<min){

min=a[i][j];

}

}

}

cout<<"\n\n======================================\n";

cout<<"Nilai Maksimum = "<<maks<<endl;

cout<<"Nilai Minimum = "<<min<<endl;

cout<<"\n=============By : man019=============";

getch();

}

Tampilan program :

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 89

Array Pada C++

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 :

1. Array satu dimensi

Setiap elemen array dapat diakses melalui index. Index array secara default

dimulai dari 0

Deklarasi array :

Tipe_array nama_array[ukuran]

2. Array dua dimensi

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

buah kolom bentuknya dapat berupa matriks atau tabel.

Deklarasi array :

Tipe_array nama_array [baris][kolom]

3. Array multidimensi

Array multidimensi merupakan array yang mempunyai ukuran lebih dari dua.

Bentuk pendeklarasian array multidimensi sama saja dengan deklarasi array

dimensi satu maupun dimensi dua.

Deklarasi array :

Tipe_array nama_array [ukuran 1][ukuran 2] . . . [ukuran

N]

Perbedaan array dengan tipe data lain :

Array dapat mempunyai sejumlah nilai, sedangkan tipe data lain hanya

dihubungkan dengan sebuah nilai saja. Array dapat digunakan untuk menyimpan

beberapa nilai tipe data lain data (char, int, float, double, long, dll) yang sama dengan

satu nama saja. Selain itu, array dapat berupa satu dimensi atau lebih, sedangkan

tipe data lain hanya berupa satu dimensi.

Array juga dapat digunakan sebagai parameter. Jenisnya :

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 90

a. Array dimensi satu sebagai parameter :

Pengiriman parameter berupa array dimensi satu merupakan pengiriman secara

acuan/referensi, karena yang dikirimkan adalah alamat dari elemen pertama

arraynya, bukan seluruh nilai-nilai elemenya. Alamat elemen pertama dari array dapat

ditunjukkan oleh nama lariknya yang tidak ditulis dengan indeknya.

b. Array dua dimensi sebagai parameter :

Pengiriman parameter berupa array dua dimensi hampir sama dengan pengiriman

parameter array satu dimensi, hanya saja perbedaannya adalah dalam array dua

dimensi harus menyebutkan baris dan kolom array dimensi dua tersebut,

mendeklarasikan MAX_ROWS dan MAX_COLS yang digunakan untuk pengiriman

parameter array dua dimensi dan pada saat pengiriman parameter formal array dua

dimensi, kita harus menyebutkan banyaknya dimensi array untuk kolom, sehingga

ukuran kolom dapat diketahui, hal ini berkaitan dengan pemesanan variabel array di

memori.

Contoh 1. Penggunaan array dalam C++:

Program di bawah ini untuk membaca data kemudian menampilkannya.

#include

#include

void main()

{

int data[10]; // array dengan 10 elemen bertipe integer

int elemen;

clrscr();

// entri 10 data

for (elemen=0;elemen <= 9;elemen++)

{

cout << “Data ke – “ << elemen << “: “;

cin >> data[elemen];

}

// tampilkan data setelah entri

for (elemen=0;elemen <= 9;elemen++)

{

cout << “Data ke – “ << elemen << “: “ << data[elemen];

}

}

NB: Dalam C/C++ elemen array dimulai dari 0.

Contoh 2. Program untuk menampilkan data array dari hasil inisialisasi:

#include

#include

void main(){

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 91

int data[5] = {4, 1, 0, -9, 8};

int elemen;

clrscr();

// tampilkan data

for (elemen=0;elemen <= 4;elemen++)

{

cout << “Data ke – “ << elemen << “: “ << data[elemen];

}

}

Contoh 3. Program untuk mencari data dari array, dan menampilkan nomor

elemennya:

#include

#include

void main()

{

int data[10] = {4, 1, 0, -9, 8, 5, -1, 2, 3, -7};

int elemen, ketemu;

cout << “Data yang dicari : “;

cin >> x;

ketemu = 0;

for(elemen=0; elemen<= 9; elemen++)

{

if (data[elemen] == x)

{ ketemu =

!

ketemu;

break;

}

}

if (ketemu == 0) cout << “Data tidak ditemukan “;

else cout << “Data ada di elemen : “ << elemen;

}

Contoh 4. Program untuk menampilkan data terbesar (maks) dari suatu array :

#include

#include

void main()

{

int data[10] = {4, 1, 0, -9, 8, 5, -1, 2, 3, -7};

int elemen, max;

max = data[0];

for(elemen=0; elemen<= 9; elemen++)

{

if (data[elemen]>max) max = data[elemen];

else max = max;

}

cout << “Nilai maksimum adalah : “ << max;

}

Array di atas adalah array dimensi satu. Bagaimana dengan array dimensi dua ?

Berikut ini contoh penggunaan array dua dimensi:

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 92

#include <iostream.h>

#include <conio.h>

void main(){

int j, k;

int data[5][3] ={

{3, 4, -1},{2, 3, 0},{1, 1, 2},{5, 9, -4},{6, 6, 2}

};

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

{

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

cout << “data[“ << j << “][“<< k << “] = “ << data[j][k] <<

endl;

}

}

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 93

2. Buatlah program untuk memasukkan nilai pada array dinamis jika diberi nilai

tertentu diganti bintang (*).

#include <iostream>

#include <conio>

#include <iomanip>

void main ()

{

int array [10];

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

{

cout<<"Nilai ke "<<i<<" : ";

cin>>array[i];

}

cout<<endl;

cout<<"Indeks"<<setw(10)<<"Nilai"<<setw(13)<<"Karakter"<<en

dl;

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

if (array[i]==6 || array[i]==8 || array[i]==10 ){

{

cout<<" "<<setw(3)<<i<<" "<<setw(10)<<array[i]<<setw(10);

for (int j=1; j<=array[i]; j++)

cout<<" *";

cout<<"\n";

}

}

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

cout<<"\nBy : man019 ";

getch();

}

Tampilan program :

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 94

3. Membuat program sederhana untuk merubah semua huruf vocal dalam satu

kalimat menjadi tanda “*”.

#include <iostream.h>

#include <conio.h>

void main(){

char nama[40];

cout<<"Masukkan Nama Anda : ";

cin>>nama;

cout<<endl;

cout<<"Sebelum Di Rubah = "<<nama<<endl;

cout<<"Setelah Di Rubah = ";

for ( int i=0; i<nama[i]; i++){

if (nama[i]=='a' || nama[i]=='i' || nama[i]=='u' ||

nama[i]=='e' || nama[i]=='o' || nama[i]=='A' ||

nama[i]=='I' || nama[i]=='U' || nama[i]=='E' ||

nama[i]=='O'){

nama[i]='*';

}

cout<<nama[i];

}

cout<<"\n\nBy : man019";

getch();

}

Tampilan program :

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 95

4. Membuat kode sandi

A B C D E F G H I J K L M

N O P Q R S T U V W X Y Z

#include <iostream.h>

#include <conio.h>

void main(){

char nama[100];

cout<<"Masukkan Sebuah Kata : ";

cin>>nama;

cout<<endl;

cout<<"Inputan Kata = "<<nama<<endl;

cout<<"Kode Sandinya = ";

for ( int i=0; i<nama[i]; i++){

if (nama[i]=='a'){ nama[i]='n';

}

else if (nama[i]=='b'){ nama[i]='o';

}

else if (nama[i]=='c'){ nama[i]='p';

}

else if (nama[i]=='d'){ nama[i]='q';

}

else if (nama[i]=='e'){ nama[i]='r';

}

else if (nama[i]=='f'){ nama[i]='s';

}

else if (nama[i]=='g'){ nama[i]='t';

}

else if (nama[i]=='h'){ nama[i]='u';

}

else if (nama[i]=='i'){ nama[i]='v';

}

else if (nama[i]=='j'){ nama[i]='w';

}

else if (nama[i]=='k'){ nama[i]='x';

}

else if (nama[i]=='l'){ nama[i]='y';

}

else if (nama[i]=='m'){ nama[i]='z';

}

else if (nama[i]=='n'){ nama[i]='a';

}

else if (nama[i]=='o'){ nama[i]='b';

}

else if (nama[i]=='p'){ nama[i]='c';

}

else if (nama[i]=='q'){ nama[i]='d';

}

else if (nama[i]=='r'){ nama[i]='e';

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 96

}

else if (nama[i]=='s'){ nama[i]='f';

}

else if (nama[i]=='t'){ nama[i]='g';

}

else if (nama[i]=='u'){ nama[i]='h';

}

else if (nama[i]=='v'){ nama[i]='i';

}

else if (nama[i]=='w'){ nama[i]='j';

}

else if (nama[i]=='x'){ nama[i]='k';

}

else if (nama[i]=='y'){ nama[i]='l';

}

else if (nama[i]=='z'){ nama[i]='m';

}

cout<<nama[i];

}

getch();

}

Tampilan Program :

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 97

DAFTAR PUSTAKA

Anonim,2013. Modul Praktikum Pemrograman dan Komputasi Dasar.Laboratorium

Komputer dan jaringan.Jurusan teknik elektro. Universitas Mataram

Juan Soulié, 2007, C++ Language Tutorial, [pdf],

(http://www.cplusplus.com/files/tutorial.pdf, diakses pada tanggal 5 Oktober 2013

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 98

LAPORAN PRAKTIKUM

KOMPUTASI DASAR & PEMROGRAMAN

MODUL V

POINTER

NAMA

NIM

KELOMPOK

: FATHURRAHMAN

: F1B111019

: 8

LABORATORIUM KOMPUTER DAN JARINGAN

JURUSAN TEKNIK ELEKTRO

FAKULTAS TEKNIK

UNIVERSITAS MATARAM

2013

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 99

MODUL V

POINTER

A. Tujuan

1. Mahasiswa dapat memahami definisi dan kegunaan pointer

2. Mahasiswa dapat mengetahui bagaimana mengimplentasikan pointer dalam

program.

B. Dasar Teori

1. Pengertian pointer

pointer bisa dikatakan suatu variable yang dapat menyimpan alamat memori , jika

kita ingin mendapatkan sebuah alamat dari suatu variable, operator yang di

gunakan adalah &. alamat tersebut akan disimpan ke dalam variable yang bertipe

pointer.Untuk mendeklarasikan variable sebagai pointer kita menambahkan tanda

(*) di depan nama variable.

2. Perbedaan Variabel biasa dan Pointer.

Variable Biasa Pointer

Berisi data/nilai Berisi alamat memory dari suatu variable tertentu

Operasi yang bisa dilakukan seperti layaknya operasi biasa: +, -, *, /

Membutuhkan operator khusus: “&” yang menunjuk alamat dari suatu variable tertentu. Operator “&” hanya dapat dilakukan kepada variable dan akan mengahasilkan alamat dari variable itu. Contoh: p = &n Yang kedua : Operator “*”. Operator ini bersifat menggunakan nilai dari alamat variable yang ditunjuk oleh pointer tersebut. Contoh: int *p;

Bersifat statis Bersifat dinamis

Deklarasi : int a; Deklarasi : int *a

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 100

3. Bentuk umum pointer dalam bahasa C++

Seperti halnya variabel lain, variabel pointer juga harus dideklarasikan terlebih

dahulu sebelum digunakan. Bentuk umum deklarasi pointer adalah :

Tipe_data *nama_pointer;

Dimana Tipe_data merupakan tipe dari data yang ditunjuk, bukan tipe dari

pointer-nya. Contoh :

a. Mensubstitusikan address sebuah variabel ke pointer dengan memakai address

operator &

int x;

int *ptr;

ptr = &x;

b. Mensubstitusikan address awal sebuah array ke pointer

char t[5];

char *ptr;

ptr = t;

c. Mensubstitusikan address salah satu elemen array dengan address operator

char t[5] ;

char *ptr;

ptr = &t[3];

d. Mensubstitusikan address awal character string ke pointer char

char *ptr;

ptr = ”jakarta”

e. Mensubstitusikan NULL pada pointer. NULL ada pointer kosong, menunjukkan

suatu status dimana pointer itu belum diinisialisasikan dengan sebuah address

tertentu.

f. Memakai fungsi MALLOC.

4. Operator yang digunakan pada pointer

Ada 2 operator pointer yang dikenal secara luas, yaitu operator & dan operator *.

Operator &

Operator & bersifat Unary (hanya memerlukan satu operand saja)

Operator & menghasilkan alamat dari operandnya

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 101

Operator & merupakan operator alamat. Pada saat pendeklarasian variable, user

tidak diharuskan menentukan lokasi sesungguhnya pada memory, hal ini akan

dilakukan secara otomatis oleh kompiler dan operating system pada saat run-

time. Jika ingin mengetahui dimana suatu variable akan disimpan, dapat

dilakukan dengan memberikan tanda ampersand (&) didepan variable , yang

berarti "address of". Contoh :

ted = &andy;

Penulisan tersebut berarti akan memberikan variable ted alamat dari variable

andy. Karena variabel andy diberi awalan karakter ampersand (&), maka yang

menjadi pokok disini adalah alamat dalam memory, bukan isi variable. Misalkan

andy diletakkan pada alamat 1776 kemudian dituliskan instruksi sbb :

andy = 25;

fred = andy;

ted = &andy;

Maka hasilnya :

Operator *

Operator * merupakan operator reference. Dengan menggunakan pointer, kita

dapat mengakses nilai yang tersimpan secara langsung dengan mem­berikan

awalan operator asterisk (*) pada identifier pointer, yang ber­arti "value pointed

by". Contoh :

beth = *ted;

(dapat dikatakan:"beth sama dengan nilai yang ditunjuk oleh ted") beth = 25,

karena ted dialamat 1776, dan nilai yang berada pada alamat 1776 adalah 25.

Operator & bersifat Unary (hanya memerlukan satu operand saja) Operator & menghasilkan nilai yang berbeda pada sebuah alamat

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 102

Ekspresi dibawah ini semuanya benar, perhatikan :

andy = 25;

&andy = 1776;

ted = 1776;

*ted = 25;

Ekspresi pertama merupakan assignation bahwa andy = 25;. Kedua,

menggunakan operator alamat (address/derefence operator (&)), sehingga akan

mengembalikan alamat dari variabel andy. Ketiga bernilai benar karena as-

signation untuk ted adalah ted = &andy;. Keempat menggunakan reference

operator (*) yang berarti nilai yang ada pada alamat yang ditunjuk oleh ted, yaitu

25. Maka ekspresi dibawah ini pun akan bernilai benar :

*ted = andy;

5. Pemanfaatan pointer

a. Operasi pointer untuk array

Pemanfaatan pointer dalam array dapat digunakan untuk menciptakan

array yang dinamis, untuk menunjukkan alamat elemen-elemen pada array,

serta sebagai input-an untuk array tersebut.

Memberi nilai array dengan pointer

#include <iostream.h>

#include <conio.h>

void main()

{

int x[5], *p, k;

p = x;

x[0] = 5;

x[1] = x[0];

x[2] = *p + 2;

x[3] = *(p+1) - 3;

x[4] = *(x + 2);

for(k=0; k<5; k++){

cout<<"x["<<k<<"] = "<< x[k]<<"\n";}

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 103

getch();

}

Pointer menunjuk suatu array

#include <iostream.h>

#include <conio.h>

void main()

{

static int tgl_lahir[] = { 13,9,1982 };

int *ptgl;

ptgl = tgl_lahir; /* ptgl berisi alamat array */

cout<<"Diakses dengan pointer\n";

cout<<"Tanggal = "<< *ptgl<<"\n";

cout<<"Bulan = "<< *(ptgl + 1) <<"\n";

cout<<"Tahun = "<<*(ptgl + 2) <<"\n";

cout<<"\nDiakses dengan array biasa\n";

cout<<"Tanggal = "<< tgl_lahir[0] <<"\n";

cout<<"Bulan = "<< tgl_lahir[1] <<"\n";

cout<<"Tahun = "<< tgl_lahir[2] <<"\n";

getch();

}

b. Pointer aritmatika

Contoh, char memerlukan 1 byte, short memerlukan 2 bytes dan long

memerlukan 4. Terdapat 3 buah pointer :

char *mychar; short *myshort; long *mylong;

ekspresi diatas akan menunjuk pada lokasi dimemory masing-masing 1000,

2000 and 3000, sehingga jika dituliskan :

mychar++; myshort++; mylong++;

mychar, akan bernilai 1001, myshort bernilai 2002, dan mylong bernilai

3004. Alasannya adalah ketika terjadi pertambahan maka akan

ditambahkan dengan tipe yang sama seperti yang didefinisikan berupa

ukuran dalam bytes.

Perhatikan ekspresi dibawah ini :

*p++;

*p++ = *q++;

Ekspresi pertama equivalen dengan *(p++) dan yang dilakukan adalah

menambahkan p (yaitu alamat yang ditunjuk, bukan nilai yang

dikandungnya).

Ekspresi kedua, yang dilakukan pertama adalah memberikan nilai *q ke *p

dan kemudian keduanya ditambahkan 1 atau dengan kata lain :

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 104

*p = *q;

p++;

q++;

c. Pointer dan String

String merupakan bentuk khusus dari array. Oleh karena itu operasi pointer-

array tidak jauh berbeda dengan operasi pointer-string.

#include <iostream>

#include <conio>

void main()

{

char nama[5] = "Andi";

cout<<"Nama awal : "<<nama<<endl;

char *ptr;

ptr = nama;

*(ptr+3) = 'y';

cout<<"Nama menjadi : "<<nama<<endl;

getch();

}

Jadi, string adalah array (susunan) dari karakter-karakter. String dapat

diakses dan dimanipulasi lewat pointer. Alamat awal dari string dapat

diperoleh dari namanya.

d. Penghapusan pointer

Operator delete yang memampukan anda untuk mengembalikan atau

membebsakan memori tersebut. Ini adalah langkah yang sangat penting

menuju manajemen memori yang efektif. Memori yang dibebaskan dapat

digunakan kembali.

e. Pointer void

Tipe pointer void merupakan tipe khusus. void pointers dapat menunjuk

pada tipe data apapun, nilai integer value atau float, maupun string atau

karakter. Keterbatasannya adalah tidak dapat menggunakan operator

asterisk (*), karena panjang pointer tidak diketahui, sehingga diperlukan

operator type casting atau assignations untuk mengembalikan nilai void

pointer ketipe data sebenarnya.

Contoh :

// integer increaser

#include <iostream.h>

void increase (void* data, int type)

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 105

{

switch (type)

{

case sizeof(char) : (*((char*)data))++; break; case

sizeof(short): (*((short*)data))++; break; case

sizeof(long) : (*((long*)data))++; break;

}

}

int main ()

{

char a = 5; short b = 9; long c = 12;

increase (&a,sizeof(a)); increase (&b,sizeof(b));

increase (&c,sizeof(c));

cout << (int) a << “, ” << b << “, ” << c;

return 0;

}

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 106

C. Permasalahan

Buat program operasi matrix 2x2 : perkalian , penjumlahan , pengurangan dan invers.

Jawaban Permasalahan :

#include <iostream.h>

#include <conio.h>

void inputData(float *x)

{

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

cin>>*(x+i);

}

void outputData(float *x)

{

cout<<*(x+0) <<"\t" <<*(x+1)<<endl;

cout<<endl;

cout<<*(x+2) <<"\t" <<*(x+3) <<endl;

}

void TambahData(float *A, float *B, float *C)

{

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

*(C+i) = *(A + i) + *(B + i);

}

void KurangData(float *A, float *B, float *C)

{

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

{

*(C+i) = *(A + i) - *(B + i);

}

}

void kaliData(float *A, float *B, float *C)

{

*(C+0) = (*(A + 0) * *(B+0)) + (*(A + 1) * *(B + 2));

*(C+1) = (*(A + 0) * *(B+1)) + (*(A + 1) * *(B + 3));

*(C+2) = (*(A + 2) * *(B+0)) + (*(A + 3) * *(B + 2));

*(C+3) = (*(A + 2) * *(B+1)) + (*(A + 3) * *(B + 3));

}

void inversData(float *A, float *C)

{

float det = (*(A + 0) * *(A + 3)) - (*(A + 2) * *(A + 1));

float a = 1.0;

float hasil_bagi = a/det;

*(C+0)= *(A+3);

*(C+1) = *(A+1) * -1;

*(C+2) = *(A+2) * -1;

*(C+3) = *(A+0);

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

{

*(C+i) = *(C+i) * (hasil_bagi);

}

}

void TampilData(float *X, float *Y, float *Z)

{

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 107

cout<<"Input Data X :" <<endl;

inputData(X);

cout<<endl;

cout<<"Input Data Y :" <<endl;

inputData(Y);

cout<<endl;

cout<<"===========================\n";

cout<<"Output Data X " <<endl;

outputData(X);

cout<<"Output Data Y " <<endl;

outputData(Y);

cout<<"===========================\n";

TambahData(X,Y,Z);

cout<<"\nHasil penjumlahan : " <<endl;

outputData(Z);

KurangData(X,Y,Z);

cout<<"\nHasil pengurangan : " <<endl;

outputData(Z);

kaliData(X,Y,Z);

cout<<"\Hasil perkalian : " <<endl;

outputData(Z);

inversData(X,Z);

cout<<"\nHasil invers X: " <<endl;

outputData(Z);

inversData(Y,Z);

cout<<"\nHasil invers Y: " <<endl;

outputData(Z);

}

void main()

{

cout<<"===================================\n";

cout<<"| Presented By []KELOMPOK 8[] |\n";

cout<<"===================================\n" ;

float DataA[4];

float DataB[4];

float DataC[4];

float *E = DataA;

float *F = DataB;

float *G = DataC;

TampilData(E,F,G);

cout<<endl;

cout<<"-----> PRODUKSI@BASPORG2013 <-----";

getch();

}

Tampilan Program :

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 108

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 109

D. Analisa Data

1. Header

#include <iostream.h>

Script di atas menunjukkan bahwa iostream.h merupakan sebuah file header

yang berfungsi untuk memanggil perintah cin dan cout pada program sebagai

input dan output. Tanpa kehadiran file header ini akan terjadi kesalahan setelah

program di compile.

#include <conio.h>

Script di atas menunjukkan bahwa File header conio.h digunakan untuk

mengaktifkan fungsi getch() digunakan untuk mengambil inputan dari keyboard

dan langsung mengeksekusinya tanpa menekan tombol enter terlebih dahulu.

2. Fungsi Input Data

void inputData(float *x)

{

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

cin>>*(x+i);

}

Coding di atas berfungsi untuk melakukan input data sebanyak 4 kali inputan

sehingga menggunakan perulangan bentuk for dengan variabel pointer (*x) sebagai

inputannya dan i menandakan berapa banyak data yang akan di inputkan

3. Fungsi Output Data

void outputData(float *x)

{

cout<<*(x+0) <<"\t" <<*(x+1)<<endl;

cout<<endl;

cout<<*(x+2) <<"\t" <<*(x+3) <<endl;

}

Coding diatas berfungsi untuk menampilkan isi pointer data yang telah di inputkan.

Code “/t” berfungsi supaya membuat tabular.

4. Fungsi Tambah Data

void TambahData(float *A, float *B, float *C)

{

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

*(C+i) = *(A + i) + *(B + i);

}

Coding diatas berfungsi untuk menampilkan penjumlahan matriks. Dimana kita

menggunakan perulangan for untuk mengulang fungsi penjumlahan pada setiap

indeks data dan *(C+i) berfungsi untuk menjumlahkan matriks A dan Matriks B.

Dengan i sebagai indeks dari masing-masing inputan data.

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 110

5. Fungsi Kurang Data

void KurangData(float *A, float *B, float *C)

{

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

{

*(C+i) = *(A + i) - *(B + i);

}

}

Coding diatas berfungsi untuk menampilkan pengurangan matriks. Dimana kita

menggunakan perulangan for untuk mengulang fungsi pengurangan pada setiap

indeks data dan *(C+i) berfungsi sebagai pengurangan matriks A dan Matriks B.

Dengan i sebagai indeks dari masing-masing inputan data.

6. Fungsi Kali Data

void kaliData(float *A, float *B, float *C)

{

*(C+0) = (*(A + 0) * *(B+0)) + (*(A + 1) * *(B + 2));

*(C+1) = (*(A + 0) * *(B+1)) + (*(A + 1) * *(B + 3));

*(C+2) = (*(A + 2) * *(B+0)) + (*(A + 3) * *(B + 2));

*(C+3) = (*(A + 2) * *(B+1)) + (*(A + 3) * *(B + 3));

}

Fungsi diatas untuk mengalikan 2 buah matriks yaitu matriks A dengan matriks B

dengan pointer C (*C) sebagai hasil dari perkalian matriks A dengan matriks B.

7. Fungsi Invers Data

void inversData(float *A, float *C)

{

float det = (*(A + 0) * *(A + 3)) - (*(A + 2) * *(A + 1));

float a = 1.0;

float hasil_bagi = a/det;

*(C+0)= *(A+3);

*(C+1) = *(A+1) * -1;

*(C+2) = *(A+2) * -1;

*(C+3) = *(A+0);

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

{

*(C+i) = *(C+i) * (hasil_bagi);

}

}

Coding diatas berfungsi untuk mencari nilai dari invers matriks.

8. Fungsi Tampil Data

void TampilData(float *X, float *Y, float *Z)

{

cout<<"Input Data X :" <<endl;

inputData(X);

cout<<endl;

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 111

cout<<"Input Data Y :" <<endl;

inputData(Y);

cout<<endl;

cout<<"===========================\n";

cout<<"Output Data X " <<endl;

outputData(X);

cout<<"Output Data Y " <<endl;

outputData(Y);

cout<<"===========================\n";

TambahData(X,Y,Z);

cout<<"\nHasil penjumlahan : " <<endl;

outputData(Z);

KurangData(X,Y,Z);

cout<<"\nHasil pengurangan : " <<endl;

outputData(Z);

kaliData(X,Y,Z);

cout<<"\Hasil perkalian : " <<endl;

outputData(Z);

inversData(X,Z);

cout<<"\nHasil invers X: " <<endl;

outputData(Z);

inversData(Y,Z);

cout<<"\nHasil invers Y: " <<endl;

outputData(Z);

}

Coding diatas berfungsi untuk mendeklarasikan fungsi-fungsi yang telah dibuat

seperti fungsi perkalian, penjumlahan, pengurangan dan lain-lain dengan 3 buah

parameter pointer yaitu *x, *y dan *z dengan type data float.

9. Fungsi Utama

void main()

{

cout<<"===================================\n";

cout<<"| Presented By []KELOMPOK 8[] |\n";

cout<<"===================================\n" ;

float DataA[4];

float DataB[4];

float DataC[4];

float *E = DataA;

float *F = DataB;

float *G = DataC;

TampilData(E,F,G);

cout<<endl;

cout<<"-----> PRODUKSI@BASPORG2013 <-----";

getch();

}

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 112

Coding diatas berfungsi untuk memanggil fungsi-fungsi yang telah di buat dan untuk

menampilkan hasil operasi yang telah dilakukan oleh program (float DataA[4],

float DataB[4] dan float DataA[4]) dengan [4] sebagai indeks dari array.

Pointer *E, *F dan *G sebagai penunjuk dari DataA, Data B dan DataC.

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 113

E. Kesimpulan

1. Pointer digunakan untuk menyimpan alamat memori dari variabel lain.

2. Terdapat dua operator yang digunakan pada pointer yaitu : operator deference dan

operator reference

3. Pointer dapat dimanfaatkan sebagai array , operator aritmatika, dan pemanfaatan

pointer sebagai string

4. Memori yang digunakan pointer akan selalu tersimpan pada memori sampai

dilakukannya proses pembersihan pada memori tersebut.

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 114

F. TUGAS PENDAHULUAN

1. Jelaskan secara terperinci maksud dari program berikut.

2. Dengan program tersebut, apakah bisa menganti nilai dari firstvalue tanpa

mengakses variabel "firstvalue"? jika bisa, bagaimana. jika tidak bisa mengapa?

Jawab :

1. Maksudnya adalah :

int firstvalue=5, secondvalue=15;

Pendeklarasian type variabel dari firstvalue dan secondvalue dengan nilai

awal dari firstvalue=5 dan nilai awal dari secondvalue=15

int *p1, *p2;

Coding diatas menunjukkan bahwa type data yang di tunjukkan oleh pointer p1

(*p1) dan pointer p2 (*p2).

p1=&firstvalue;

p2=&secondvalue;

Coding diatas menunjukkan bahwa alamat dari variabel firstvalue ditunjukkan

kepada variabel pointer p1. Begitu juga dengan alamat dari variabel

secondvalue ditunjukkan kepada variabel pointer p2.

*p1=10;

*p2=*p1;

p1=p2;

*p1=20;

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 115

Coding diatas menunjukkan bahwa pointer p1 bernilai 10 (*p1=10) dan *p2=*p1

menunjukkan bahwa nilai dari pointer p2 sama dengan nilai pointer dari p1 yaitu

10 karena menempati alamat yang sama. Dan pada saat variabel pointer *p1=20

maka variabel p2 akan bernilai sama dengan variabel p1 karena variabel p1 dan

p2 menempati alamat yang sama.

cout<<"first value = "<<firstvalue<<endl;

cout<<"Second value = "<<secondvalue<<endl;

Coding diatas berfungsi untuk menampilkan nilai dari first value dan nilai dari

second value.

2. Kita tidak bisa mengganti nilai dari firstvalue tanpa mengakses variabel

*firstvalue karena apabila kita tidak mengakses variabel *firstvalue maka

nilai dari firstvalue akan tetap bernilai sama dengan nilai awal yaitu 5. Begitu juga

untuk variabel secondvalue, kita tidak bisa mengganti nilai dari variabel second

value tanpa mengakses variabel *secondvalue karena tanpa kita mengakses

variabel *secondvalue maka nilai dari variabel secondvalue akan tetap

bernilai sama dengan nilai awal yaitu 15.

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 116

G. TUGAS-TUGAS

#include <iostream.h>

#include <conio.h>

void ubahdata(int **data)

{

int nim;

int pil;

for (int i=0; i<3; i++){

cout<<"Masukkan nim yang akan diganti : ";

cin>>nim;

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

if(nim==*(*(data+0)+i)){

nim=i;

}

}

cout<<"Matakuliah yang ingin diganti : \n";

cout<<"1. Rangkaian Logika\n";

cout<<"2. Bahasa Pemrograman\n";

cout<<"Dipilih dipilih :";

cin>>pil;

cout<<"Masukkan Nilai Baru : ";

cin>>*(*(data+pil)+nim);

cout<<endl<<endl;

}

cout<<endl;

}

void input(int **data){

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

{

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

{

cout<<"NIM : ";

cin>>*(*(data+0)+j);

cout<<"Nilai R.Log : ";

cin>>*(*(data+1)+j);

cout<<"Nilai Basprog : ";

cin>>*(*(data+2)+j);

cout<<"\n\n";

}

cout<<"\n\n";

}

}

void output(int **data)

{

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

{

cout<<"|";

for(int j=0;j<3;j++)

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 117

{

cout<<" "<<*(*(data+j)+i)<<"\t\t|";

}

cout<<endl;

}

}

float Total(int **data)

{

float jumlah;

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

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

jumlah=*(*(data+1)+0)+*(*(data+1)+1)+*(*(data+1)+2)+*(*(data+1

)+3)+*(*(data+1)+4);

return jumlah;

}

void TampilData(int **data)

{

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

cout<<" MATA KULIAH R.Log "<<endl;

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

cout<<"Jumlah nilai R.Log : "<<Total(data)<<endl;

//cout<<"Rerata nilai : "<<Rerata(data)<<endl;

//cout<<"Median nilai : "<<median(data)<<endl;

cout<<endl<<endl;

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

cout<<"MATA KULIAH BHS. PEMROGRAMAN"<<endl;

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

cout<<"Jumlah nilai Basprog : "<<Total(data)<<endl;

//cout<<"Rerata nilai : "<<Rerata(data)<<endl;

//cout<<"Median nilai : "<<median(data)<<endl;

cout<<endl;

}

void main()

{

int **data;

data = new int *[3];

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

{

data[i]=new int [5];

}

input(data);

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

cout<<"|\t DAFTAR NILAI MAHASISWA \t|"<<endl;

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

cout<<"| NIM\t\tR.Log \t\t Basprog\t|"<<endl;

output(data);

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

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

TampilData(data);

ubahdata(data);

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 118

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

cout<<"|\t DAFTAR NILAI MAHASISWA \t|"<<endl;

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

cout<<"| NIM\t\tR.Log \t\t Basprog\t|"<<endl;

output(data);

TampilData(data);

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

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

getch();

}

Tampilan program :

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 119

Daftar pustaka

Wisma. 2009. Pointer pada C++. HTML. http://wismanpermana3.blog.com/pointer-pada-c/

diakses pada tanggal 01 November 2013.

Ananda Dwici Darmawan.2013. Pointer C++. HTML. http://dwici.blogspot.com/2013/01/pointer-c.html. diakses pada tanggal 01 November 2013 Andri . 2010 . Pointer dalam bahasa c++ . html

.http://andrigowell.blogspot.com/2010/09/pointer-dalam-bahasa-c.html diakses pada

tanggal 01 November 2013

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 120

LAPORAN PRAKTIKUM

KOMPUTASI DASAR & PEMROGRAMAN

MODUL VI

STRUCT

NAMA

NIM

KELOMPOK

: FATHURRAHMAN

: F1B111019

: 8

LABORATORIUM KOMPUTER DAN JARINGAN

JURUSAN TEKNIK ELEKTRO

FAKULTAS TEKNIK

UNIVERSITAS MATARAM

2013

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 121

MODUL VI

STRUCT

A. Tujuan

1. Mahasiswa dapat memahami definisi dan kegunaan struct

2. Mahasiswa dapat mengetahui bagaimana mengimplentasikan struct dalam

program.

B. Dasar Teori

Struktur data adalah cara penyimpanan, pengorganisasian dan pengaturan

data di dalam media penyimpanan komputer sehingga data tersebut dapat

digunakan secara efisien. Atau struktur data berarti tata letak data yang berisi

kolom-kolom data, baik itu kolom yang tampak oleh pengguna (user) ataupun kolom

yang hanya digunakan untuk keperluan pemrograman yang tiadak tampak oleh

pengguna. Setiap baris dari kumpulan kolom-kolom tersebut dinamakan catatan

(record). Lebar kolom untuk data dapat berubah dan bervariasi. Ada kolom yang

lebarnya berubah secara dinamis sesuai masukan dari pengguna, dan juga ada

kolom yang lebarnya tetap. Dengan sifatnya ini, sebuah struktur data dapat

diterapkan untuk pengolahan database (misalnya untuk keperluan data keuangan)

atau untuk pengolahan kata (word processor) yang kolomnya berubah secara

dinamis. Contoh struktur data dapat dilihat pada file-file spreadsheet, database,

pengolahan kata, gambar yang dikompres, juga pemampatan (kompres) file dengan

teknik tertentu yang memanfaatkan struktur data.

Dalam struktur data terdapat beberapa type data, yaitu

Array atau biasa disebut larik, dimana terdapat koleksi data yang

mempunyai elemen yang sama dan tipe yang sama, dan mengaksesnya dengan

cara memanggil indeksnya.

Contoh:

int x [3]

Secara otomatis didalam C++ akan menyediakan lokasi memori sesuai

dengan yang dideklarasinkan, dan indeks dimulai dari 0 (nol).

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 122

int x[5]=[0]

Deklarasi diatas ialah dimana setiap lokasi memori mempunyai nilai 0.

Record, seperti halnya array, didalam record juga terdapat koleksi data,

namun didalamnya tidak harus mempunyai tipe data yang sama. Atau record adalah

tipe data terstuktur yang dapat menampung data field bertipe berbeda.

Deklarasi Struktur

Struktur dideklarasikan dengan menggunakan kata kunci struct. Bentuk umum

deklarasi struct adalah:

structnama_struktur{

tipe variabel_1;

tipe variabel_2;

tipe variabel_3;

.

.

tipevariabel_n;

};

Struct dapat dipandang sebagai sebuah tipe data, sehingga dapat dideklarasikan

sebagai sebuah variable biasa, variabel pointer, pointer sebagai array, dsb.

Cara Mengakses Anggota Struktur

Bila struct dideklarasikan sebagai sebuah variable biasa, maka cara. pengaksesan

anggota struct menggunakan tanda titik (.).

Bila struct dideklarasikan sebagai sebuah variabel pointer, maka cara pengaksesan

anggota struct menggunakan tanda (->).

Bila struct dideklarasikan sebagai pointer sebagai array, maka cara pengaksesan

anggota structmenggunakan tanda titik (.)

Contoh 1:

Program berikut adalah struct sebagai sebuah variable biasa.

#include <iostream.h>

#include <string.h>

#include <conio.h>

void main(){

//deklarasistruktur

Personal person;

//mengisianggotastruktur

strcpy(person.nama,"Zafrullah");

strcpy(person.alamat,"Jl. Tapon No. 62");

person.telepon=123456;

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 123

strcpy(person.kota,"Praya");

person.kodepos=83562;

cout<<"nama : "<<person.nama<<endl;

cout<<"alamat : "<<person.alamat<<endl;

cout<<"telepon : "<<person.telepon<<endl;

cout<<"kota : "<<person.kota<<endl;

cout<<"kodepos : "<<person.kodepos;

getch();

}

struct Personal{

char nama[20];

char alamat[40];

long int telepon;

char kota[40];

long int kodepos;

};

Contoh 2:

Program berikut adalah struct sebagai sebuah variabel pointer.

#include <iostream.h>

#include <string.h>

void main(){

//deklarasi struktur personal sebagai pointer

Personal* person=new Personal;

//mengisianggotastruktur

strcpy(person->nama,"Zafrullah");

strcpy(person->alamat,"Jl. Tapon No. 62");

person->telepon=123456;

cout<<"nama : "<<person->nama<<endl;

cout<<"alamat : "<<person->alamat<<endl;

cout<<"telepon : "<<person->telepon<<endl;

cout<<"kota : "<<person->kota<<endl;

cout<<"kodepos : "<<person->kodepos;

getch();

}

struct Personal{

char nama[20];

char alamat[40];

long int telepon;

char kota[40];

long int kodepos;

};

Contoh 3:

Program berikut adalah pengisian nilai mahasiswa dengan menggunakan struct pointer

sebagai array.

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 124

#include <iostream.h>

#include <conio.h>

void Input(Mahasiswa *mhs, int jumData);

void ProsesData(Mahasiswa *mhs, int jumData);

void main(){

int jumData;

Mahasiswa* mhs;

cout<<"Masukkanjumlah data : ";

cin>>jumData;

mhs=new Mahasiswa[jumData];

Input(mhs, jumData);

ProsesData(mhs, jumData);

Cetak(mhs, jumData);

}

struct Mahasiswa{

int No;

char Nama[20], Nim[15], Nilai;

float Tugas, UTS, UAS;

};

void Input(Mahasiswa *mhs, int jumData){

cout<<endl;

for(int i=0; i<jumData; i++){

cout<<"No\t\t: "<<(i+1)<<endl;

mhs[i].No=i+1;

cout<<"Nama\t\t: ";

cin>>mhs[i].Nama;

cout<<"Nim\t\t: ";

cin>>mhs[i].Nim;

cout<<"Nilai Tugas\t: ";

cin>>mhs[i].Tugas;

cout<<"Nilai UTS\t: ";

cin>>mhs[i].UTS;

cout<<"Nilai UAS\t: ";

cin>>mhs[i].UAS;

mhs[i].Nilai='\0';

cout<<endl;

}

}

void ProsesData(Mahasiswa *mhs, int jumData){

float nilai;

for(int i=0; i<jumData; i++){

nilai=(mhs[i].Tugas*0.3)+(mhs[i].UTS*0.3)+(mhs[i].UAS*0.

4);

if(nilai>85){

mhs[i].Nilai='\A';

} else if (nilai<85 && nilai>=75){

mhs[i].Nilai='\B';

} else if (nilai<75 && nilai>=60){

mhs[i].Nilai='\C';

} else if (nilai<60 && nilai>=50){

mhs[i].Nilai='\D';

} else if (nilai<50){

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 125

mhs[i].Nilai='\E';

} }

}

void Cetak(Mahasiswa *mhs, int jumData){

clrscr();

cout<<"------------------------------------------------

\n";

cout<<"No Nim Nama Tugas UTS UAS Nilai\n";

cout<<"------------------------------------------------

\n";

int y=4;

for(int i=0; i<jumData; i++){

cout<<mhs[i].No;

gotoxy(5,y);

cout<<mhs[i].Nim;

gotoxy(15,y);

cout<<mhs[i].Nama;

gotoxy(30,y);

cout<<mhs[i].Tugas;

gotoxy(38,y);

cout<<mhs[i].UTS;

gotoxy(46,y);

cout<<mhs[i].UAS;

gotoxy(54,y);

cout<<mhs[i].Nilai<<endl;

y++;

}

cout<<"---------------------------------------------\n";

}

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 126

C. Permasalahan

Buatlah program untuk swalayan, struct pelanggan, struct barang, struct diskon.

Untuk member dapat diskon (diskon 20-100%).

Jawaban Permasalahan :

#include <conio.h>

#include <iostream.h>

void input();

void output();

void main(){

input();

output();

getch();

}

struct pelanggan{

char nama_pel[10];

char jenis_pel;

} plg;

struct barang{

int kode_barang;

char nama[10];

int harga;

}

brg[10];

void input(){

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

cout<<"Kode Barang = ";

cin>>brg[i].kode_barang;

cout<<"nama barang = ";

cin>>brg[i].nama;

cout<<"harga barang = ";

cin>>brg[i].harga;

cout<<endl;

}

cout<<"Nama Pembeli : ";

cin>>plg .nama_pel;

cout<<"Apakah Anda Member [Y/T] : ";

cin>>plg.jenis_pel;

}

void output(){

int b=1;

clrscr();

int total=0;

cout<<"=======================================\n";

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 127

cout<<" KELOMPOK 8 \n";

cout<<"=======================================\n";

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

{

cout<<"Data Ke - "<<b++<<endl;

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

cout<<"Kode Barang =

"<<brg[i].kode_barang<<endl;

cout<<"Harga Barang = "<<brg[i].harga<<endl;

total=total + brg[i].harga;

cout<<endl;

}

cout<<"Nama Pembeli : "<<plg.nama_pel;

cout<<"\nTotal Belanjaan : "<<total;

cout<<"\nMember : "<<plg.jenis_pel;

cout<<endl;

if(plg.jenis_pel=='y'||plg.jenis_pel=='Y')

{

if (total>400000&&total<500000){

float diskon=total*20/100;

cout<<"Anda Mendapat Diskon 20%"<<endl;

cout<<"Total Bayar : "<<diskon<<endl;

}

else if (total>500000&&total<600000){

float diskon=total*30/100;

cout<<"Anda Mendapat Diskon 30%"<<endl;

cout<<"Total Bayar : "<<diskon<<endl;

}

else if (total>600000&&total<700000){

float diskon=total*40/100;

cout<<"Anda Mendapat Diskon 40%"<<endl;

cout<<"Total Bayar : "<<diskon<<endl;

}

else if (total>700000&&total<800000){

float diskon=total*50/100;

cout<<"Anda Mendapat Diskon 50%"<<endl;

cout<<"Total Bayar : "<<diskon<<endl;

}

else if (total>800000&&total<900000){

float diskon=total*60/100;

cout<<"Anda Mendapat Diskon 60%"<<endl;

cout<<"Total Bayar : "<<diskon<<endl;

}

else if (total>900000&&total<1000000){

float diskon=total*70/100;

cout<<"Anda Mendapat Diskon 70%"<<endl;

cout<<"Total Bayar : "<<diskon<<endl;

}

else if (total>1000000&&total<150000){

float diskon=total*80/100;

cout<<"Anda Mendapat Diskon 80%"<<endl;

cout<<"Total Bayar : "<<diskon<<endl;

}

else if (total>15000000){

float diskon=total*90/100;

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 128

cout<<"Anda Mendapat Diskon 00%"<<endl;

cout<<"Total Bayar : "<<diskon<<endl;

}

}

else if(plg.jenis_pel=='t'||plg.jenis_pel=='T')

{

cout<<"\n\nMa'af Tidak Ada Diskon Untuk Anda";

cout<<"\nTotal Bayar : "<<total<<endl;

}

cout<<"=======================================\n";

cout<<" PERCOBAAN 6 : STRUCT \n";

cout<<"=======================================";

}

Tampilan Program :

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 129

D. Analisa Data

1. File Header

#include <iostream.h>

Script di atas menunjukkan bahwa iostream.h merupakan sebuah file header

yang berfungsi untuk memanggil perintah cin dan cout pada program sebagai

input dan output. Tanpa kehadiran file header ini akan terjadi kesalahan setelah

program di compile.

#include <conio.h>

Script di atas menunjukkan bahwa File header conio.h digunakan untuk

mengaktifkan fungsi getch() digunakan untuk mengambil inputan dari keyboard

dan langsung mengeksekusinya tanpa menekan tombol enter terlebih dahulu.

2. Fungsi Utama

void main(){

input();

output();

getch();

}

Fungsi ini adalah fungsi yang dilihat pertama kali oleh sistem dimana di dalam

fungsi utama ini kita memanggil fungsi yang sudah dibuat sebelumnya.

3. Deklarasi Fungsi Struct

struct pelanggan{

char nama_pel[10];

char jenis_pel;

} plg;

struct barang{

int kode_barang;

char nama[10];

int harga;

}

brg[10];

Fungsi ini digunakan untuk mendeklarasikan struct dimana yang yang pertama

untuk pelanggan, barang dan untuk secara keseluruhan, setiap struct diakhiri oleh

tanda ; agar program tersebut dapat berjalan.

4. Fungsi Input

void input(){

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

cout<<"Kode Barang = ";

cin>>brg[i].kode_barang;

cout<<"nama barang = ";

cin>>brg[i].nama;

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 130

cout<<"harga barang = ";

cin>>brg[i].harga;

cout<<endl;

}

cout<<"Nama Pembeli : ";

cin>>plg .nama_pel;

cout<<"Apakah Anda Member [Y/T] : ";

cin>>plg.jenis_pel;

}

Fungsi ini digunakan untuk menginputkan data barang dan untuk pelanggan,

dengan perulangan untuk bagian untuk menginputkan barang sebanyak 2 kali dan 1

kali untuk pelanggan.

5. Fungsi Output

void output(){

int b=1;

clrscr();

int total=0;

cout<<"=======================================\n";

cout<<" KELOMPOK 8 \n";

cout<<"=======================================\n";

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

{

cout<<"Data Ke - "<<b++<<endl;

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

cout<<"Kode Barang =

"<<brg[i].kode_barang<<endl;

cout<<"Harga Barang = "<<brg[i].harga<<endl;

total=total + brg[i].harga;

cout<<endl;

}

cout<<"Nama Pembeli : "<<plg.nama_pel;

cout<<"\nTotal Belanjaan : "<<total;

cout<<"\nMember : "<<plg.jenis_pel;

cout<<endl;

if(plg.jenis_pel=='y'||plg.jenis_pel=='Y')

{

if (total>400000&&total<500000){

float diskon=total*20/100;

cout<<"Anda Mendapat Diskon 20%"<<endl;

cout<<"Total Bayar : "<<diskon<<endl;

}

else if (total>500000&&total<600000){

float diskon=total*30/100;

cout<<"Anda Mendapat Diskon 30%"<<endl;

cout<<"Total Bayar : "<<diskon<<endl;

}

else if (total>600000&&total<700000){

float diskon=total*40/100;

cout<<"Anda Mendapat Diskon 40%"<<endl;

cout<<"Total Bayar : "<<diskon<<endl;

}

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 131

else if (total>700000&&total<800000){

float diskon=total*50/100;

cout<<"Anda Mendapat Diskon 50%"<<endl;

cout<<"Total Bayar : "<<diskon<<endl;

}

else if (total>800000&&total<900000){

float diskon=total*60/100;

cout<<"Anda Mendapat Diskon 60%"<<endl;

cout<<"Total Bayar : "<<diskon<<endl;

}

else if (total>900000&&total<1000000){

float diskon=total*70/100;

cout<<"Anda Mendapat Diskon 70%"<<endl;

cout<<"Total Bayar : "<<diskon<<endl;

}

}

else if(plg.jenis_pel=='t'||plg.jenis_pel=='T')

{

cout<<"\n\nMa'af Tidak Ada Diskon Untuk Anda";

cout<<"\nTotal Bayar : "<<total<<endl;

}

cout<<"=======================================\n";

cout<<" PERCOBAAN 6 : STRUCT \n";

cout<<"=======================================";

}

Di dalam fungsi ini akan di tampilkan Kode Barang, Nama Barang, Harga Barang

dan Juga Nama Customer. Dimana program ini akan melakukan penyeleksian

customer, apabila customer tersebut merupakan member, maka akan

mendapatkan diskon 20% apabila total belanja lebih dari Rp.400.000, 30% apabila

total belanja lebih dari Rp.500.000, 40% apabila total belanja lebih dari

Rp.600.000, 50% apabila total belanja lebih dari Rp.700.000, 60% apabila total

belanja lebih dari Rp.800.000, 70% apabila total belanja lebih dari Rp.900.000.

Dan jika tidak termasuk member maka tidak mendapatkan diskon.

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 132

E. Kesimpulan

1. Struct data adalah adalah untuk menyimpan paket (sekumpulan) data ke dalam

satu buah nama variabel saja. Kumpulan data tersebut diikat sedemikian rupa

menjadi satu. Kumpulan data di dalam sebuah struct bisa mempunyai tipe data

dasar yang beraneka ragam.

2. Variabel-variabel pada struct disebut anggota struct (struct members).

3. Setiap baris dari kumpulan kolom-kolom tersebut dinamakan catatan (record).

4. Struktur dideklarasikan dengan menggunakan kata kunci struct.

5. Pemanggilan struct dilakukan dengan mendeklarasikan nama variable yang akan

diberikan sifat struct diikuti dengan nama anggota struct yang memberikan

sifatnya. Bila Struct di deklarasikan sebagai variable biasa, maka cara

pengaksesan aggota struct menggunakan tanda titik (.).Bila struct dideklarasikan

sebagai sebuah variabel pointer, maka cara pengaksesan anggota struct

menggunakan tanda (->). Dan Bila struct dideklarasikan sebagai pointer sebagai

array, maka cara pengaksesan anggota struct menggunakan tanda titik (.)

6. Tipe data dalam struct adalah tipe data primitive, array dan pointer.

7. Pembentukan object struc tdilakukan dengan cara menuliskan nama struct yang

telah dideklarasikan diikuti dengan nama variabel yang akan diberikan sifat struct.

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 133

F. TUGAS PENDAHULUAN

Buat struct mahasiswa dengan anggota nim, nama, nilai basprog, dan nilai prak.

Basprog.

Jawaban permasalahan :

#include <iostream.h>

#include <conio.h>

#include <string>

void main(){

struct{

string nim;

string nama;

int nrlog;

int nbasprog;

} mhs ;

cout<<"Masukan NIM Anda = ";

cin>>mhs.nim;

cout<<"Masukan Nama Anda = ";

cin>>mhs.nama;

cout<<"Masukkan Nilai R.Log = ";

cin>>mhs.nrlog;

cout<<"Masukkan Nilai Basprog = ";

cin>>mhs.nbasprog;

cout<<endl<<endl;

cout<<"============================================\n";

cout<<"=========== TUGAS PENDAHULUAN P6 ===========\n";

cout<<"============================================\n";

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

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

cout<<"Nilai R.Log = "<<mhs.nrlog<<endl;

cout<<"Nilai Basprog = "<<mhs.nbasprog<<endl;

cout<<"============================================\n";

cout<<"============== BY : man_sugoi ==============\n";

cout<<"============================================\n";

getch();

}

Tampilan Program :

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 134

G. TUGAS-TUGAS

Buatlah contoh struct sederhana

#include <iostream.h>

#include <conio.h>

#include <string>

void main(){

struct{

string nim;

string nama;

string jur;

string smstr;

} mhs ;

cout<<"Masukan NIM Anda = ";

cin>>mhs.nim;

cout<<"Masukan Nama Anda = ";

cin>>mhs.nama;

cout<<"Masukan Jurusan Anda = ";

cin>>mhs.jur;

cout<<"Anda Semester Berapa = ";

cin>>mhs.smstr;

cout<<endl<<endl;

cout<<"================================================\n";

cout<<"=========== DATA MAHASISWA TEKNIK ELEKTRO ======\n";

cout<<"================================================\n";

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

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

cout<<"Jurusan = "<<mhs.jur<<endl;

cout<<"Semester = "<<mhs.smstr<<endl;

getch();

}

Tampilan Program :

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 135

Membuat program untuk menginputkan NIM, NILAI RANGKAIAN LOGIKA dan NILAI

BASPROG. Mencari nilai Mean, Median dan Jumlah dari nilai tersebut. Kemudian

mengganti nilai dari salah satu nim tersebut (1x).

#include <iostream.h>

#include <conio.h>

struct mahasiswa{

int nim;

}mhs;

struct jumlah{

float jumlah;

}jm;

struct cari{

int median;

int rerata;

}cr;

void ubahdata(int **data)

{

int pil;

cout<<"Masukkan nim yang akan diganti : ";

cin>>mhs.nim;

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

if(mhs.nim==*(*(data+0)+i)){

mhs.nim=i;

}

}

cout<<"Matakuliah yang ingin diganti : \n";

cout<<"1. Rangkaian Logika\n";

cout<<"2. Bahasa Pemrograman\n";

cout<<"Dipilih dipilih :";

cin>>pil;

cout<<"Masukkan Nilai Baru : ";

cin>>*(*(data+pil)+mhs.nim);

}

int median(int **data)

{

for(int i=0; i<3; i++){

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

jm.jumlah=*(*(data+1)+3)+*(*(data+1)+4);

cr.median= jm.jumlah/2;

}

}

return cr.median;

}

void input(int **data){

for(int i=0;i<1;i++) {

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

cout<<"NIM : ";

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 136

cin>>*(*(data+0)+j);

cout<<"Nilai R.Log : ";

cin>>*(*(data+1)+j);

cout<<"Nilai Basprog : ";

cin>>*(*(data+2)+j);

cout<<endl;

}

}

}

void output(int **data){

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

cout<<"|";

for(int j=0;j<3;j++){

cout<<" "<<*(*(data+j)+i)<<"\t\t|";

}

cout<<endl;

}

}

float Total(int **data){

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

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

jm.jumlah=*(*(data+1)+0)+*(*(data+1)+1)+*(*(data+1)+2)+*(*(data+

1)+3)+*(*(data+1)+4);

return jm.jumlah;

}

float Rerata(int **data){

for(int i=0; i<3; i++){

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

jm.jumlah=*(*(data+1)+0)+*(*(data+1)+1)+*(*(data+1)+2)+*(*(data+

1)+3)+*(*(data+1)+4);

cr.rerata= jm.jumlah/5;

}

}

return cr.rerata;

}

void TampilData(int **data){

cout<<"MATA KULIAH RANG. LOGIKA"<<endl;

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

cout<<"Jumlah nilai : "<<Total(data)<<endl;

cout<<"Rerata nilai : "<<Rerata(data)<<endl;

cout<<"Median nilai : "<<median(data)<<endl;

cout<<endl;

cout<<"MATA KULIAH BHS. PEMROGRAMAN"<<endl;

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

cout<<"Jumlah nilai : "<<Total(data)<<endl;

cout<<"Rerata nilai : "<<Rerata(data)<<endl;

cout<<"Median nilai : "<<median(data)<<endl;

cout<<endl;

}

void main(){

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 137

int **data;

data = new int *[3];

for (int i=0; i<3; i++) {

data[i]=new int [5];

}

input(data);

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

cout<<"|\t DAFTAR NILAI MAHASISWA \t|"<<endl;

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

cout<<"| NIM\t|\tR.Log \t|\t Basprog\t|"<<endl;

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

output(data);

TampilData(data);

ubahdata(data);

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

cout<<"|\t DAFTAR NILAI MAHASISWA \t|"<<endl;

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

cout<<"| NIM\t|\tR.Log \t|\t Basprog\t|"<<endl;

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

output(data);

getch();

}

Tampilan Program :

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 138

Daftar pustaka

fandi junianto Pratama . 2012 . tipe data struct dalam c++ . html .

http://fandijuniantopratama.blogspot.com/2012/03/tipe-data-struct-structe-dalam-c.html

diakses pada tanggal 10 November 2013

Irul. 2009. Struct Dalam C++. Html. http://gakpaketelor.wordpress.com/2009/03/06/struct-

dalam-c/ diakses tanggal 10 November 2013.

Utama ,Didit N. & Widayanti, Riya , Algoritma &Pemrograman dengan Borland C++,Graha

Ilmu - Yogya ,2005

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 139

LAPORAN PRAKTIKUM

KOMPUTASI DASAR & PEMROGRAMAN

MODUL VII

FILE

NAMA

NIM

KELOMPOK

: FATHURRAHMAN

: F1B111019

: 8

LABORATORIUM KOMPUTER DAN JARINGAN

JURUSAN TEKNIK ELEKTRO

FAKULTAS TEKNIK

UNIVERSITAS MATARAM

2013

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 140

MODUL VII

FILE (BERKAS)

A. Tujuan Praktikum

1. Mahasiswa dapat memahami konsep file

2. Mahasiswa dapat mengetahui dan mengimplemtasikan file dalam program.

B. Dasar Teori

1. Pengertian File

File adalah sebuah organisasi dari sejumlah record. Masing-masing record bisa

terdiri dari satu atau beberapa field. Setiap field terdiri dari satu atau beberapa byte.

Jenis file terdiri dari dua macam yaitu file teks dan file biner :

File Teks

File teks adalah file yang berisikan kumpulan karakter ASCII yang disusun

menjadi beberapa baris.

File Biner

File biner adalah file yang berisikan data yang masing-masing elemen berupa

data 8 bit (1byte).

2. Operasi File

Jenis-jenis operasi file :

Operasi file adalah proses input/baca dari file dan proses output/tulis ke file.

Jenis-jenis operasi file :

r : menyarakan file hanya dapat dibaca (file harus sudah ada)

w : menyatakan file baru akan dibuat/diciptakan (file yang sudah ada akan

dihapus)

a : untuk membuka file yang sudah ada dan akan dilakukan proses

penambahan data (jika file belum ada, otomatis akan dibuat)

r+ : untuk membuka file yang sudah ada dan akan dilakukan proses

pembacaan dan penulisan.

w+ untuk membuka file dengan tujuan untuk pembacaan atau penulisan.

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 141

Untuk melakukan operasi input file digunakan objek ifstream dan untuk operasi

output file digunakan objek ofstream. Kedua objek tersebut berada pada header

file fstream.h. Operasi dasar pada file pada dasarnya terbagi menjadi tiga tahap

yaitu :

Membuka atau mengaktifkan File

Melaksanakan proses File

Menutup File

a. Membuka File

Sebelum suatu file dapat diproses, file harus dibuka terlebih dahulu. Untuk itu kita

perlu mendefinisikan obyek file. Salah satu bentuk pernyataan yang diperlukan :

ofstream nama_obyek ;

Ofstream adalah nama kelas yang disediakan C++ untuk menangani operasi

keluaran file.

berikut penulisan pada program :

ofstream simpan;

Setelah suatu objek file diciptakan, untuk membuka file dapat dilakukan dengan

cara berikut ini :

Nama_object.open (nama_file);

Berikut penulisan pada program :

simpan.open (“file.txt”);

keterangan :

- File keluaran adalah nama objek file.

- file.txt adalah nama file yang akan disimpan pada disk.

b. Menulis File

Salah satu jenis pemprosesan pada file adalah menulis atau merekam data ke file.

Nama object<<”statement”<<endl;

contoh penulisan pada program :

simpan<<” belajar file C++ ”<<endl;

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 142

c. Menutup File

Setelah pemrosesan file berakhir, file perlu ditutup. Langkah ini dilakukan dengan

memanggil fungsi anggota bernama close()

Nama_object.close();

Merupakan pernyataaan untuk menutupfile.

Contoh penulisan pada program :

simpan.close();

Berikut ini merupakan contoh lengkap dari opersi file diatas :

#include <iostream.h>

#include <fstream.h>

void main()

{

ofstream simpan;

simpan.open(”file.TXT”);

simpan<<”belajar file pada C++”<<endl;

simpan.close();

}

Modus keluaran

simpan.open(”file.TXT”);

Merupakan operasi untuk membuka file dengan modus keluaran. Artinya, bila

pernyataan ini dieksekusi maka :

- isi file akan dihapus jika file sudah ada

- file akan diciptakan jika belum ada

Parameter mode dari fungsi open mempunyai beberapa mode yaitu :

Mode Keterangan

ios::app Menyambung data diakhir file sehingga penulisan data dilakukan setelah akhir file.

ios::ate Meletakkan penunjuk (pointer) di akhir file. ios::binary Membuka file dalam bentuk biner. ios::in Membuka file untuk operasi input ios::nocreate Membuka file tanpa menciptakan file baru,

artinya jika file yang dibuka tidak ada operasi gagal.

ios::noreplace Membuka file tanpa mengganti file yang sudah ada, artinya jika file ada operasi open gagal kecuali mode ate atau app diset.

ios::out Membuka file untuk operasi output ios::truct Membuang isi file.

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 143

d. Penunjuk File

Setiap obyek file memiliki penunjuk file tersendiri. Penunjuk file bertindak

sebagai penunjuk pososi di dalam file terhadap perekaman ataupun pebacaan.

Dalam hal ini setipa obyek file memiliki dua buah penunjuk file, yaitu penunjuk file

untuk keperluan pembacaan data dan penunjuk file untuk keperluan perekaman

data.

Penunjuk file, baik untuk keperluan perekaman ataupun pembacaan, dapat

dipindahkan dengan menggunakan fungsi anggota seekg() dan seekp().

seekg() berguna untuk memindahkan penunjuk file yang digunakkan

sebagai penunjuk operasi pembacaan.

seekp() berguna untuk memindahkan penunjuk file yang digunakan sebagai

penunjuk operasi perekaman.

Format dari kedua fungsi di atas:

seekp(offset,posisi_acuan);

seekg(offset,posisi_acuan);

offset menyatakan offset dalam satuan byte berdasarkan posisi_acuan.

posisimkj_acuan dapat berubah salah satu nilai yang tertera pada table

dibawah ini:

Nilai Keterangan ios::beg Posisi dari awal file ios::cur Posisi berdasarkan letak penunjuk file sekarang Ios::end Posisi dari akhir file

Sebagai contoh:

file_masukan.seekp(0, ios::end)

Meletakkan penunjuk file perekaman ke akhir file. Sedangkan:

file_masukan.seekg(0, ios::beg)

Menempatkan penunjuk file pembacaan ke awal file.

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 144

C. Permasalahan

Buatlah program untuk swalayan, struct pelanggan, struct barang, struct diskon.

Untuk member dapat diskon (diskon 20-100%) dan simpan ke dalam file (*.txt)

#include <conio.h>

#include <iostream.h>

#include <fstream.h>

void input();

void output();

void main(){

input();

output();

getch();

}

struct pelanggan{

char nama_pel[10];

char jenis_pel;

} plg;

struct barang{

int kode_barang;

char nama[10];

int harga;

}

brg[10];

void input(){

for(int i=0; i<3; i++){

cout<<"Kode Barang = ";

cin>>brg[i].kode_barang;

cout<<"nama barang = ";

cin>>brg[i].nama;

cout<<"harga barang = ";

cin>>brg[i].harga;

cout<<endl;

}

cout<<"Nama Pembeli : ";

cin>>plg .nama_pel;

cout<<"Apakah Anda Member [Y/T] : ";

cin>>plg.jenis_pel;

}

void output(){

int b=1;

clrscr();

char p7[30];

ofstream simpan(p7,ios::out);

simpan.open("P7_klp8_basprog.txt");

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 145

int total=0;

simpan <<"=======================================\n";

simpan <<" KELOMPOK 8 \n";

simpan <<"=======================================\n";

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

{

simpan <<"Data Ke - "<<b++<<endl;

simpan <<"Nama Barang = "<<brg[i].nama<<endl;

simpan <<"Kode Barang = "<<brg[i].kode_barang<<endl;

simpan <<"Harga Barang = "<<brg[i].harga<<endl;

total=total+brg[i].harga;

cout<<endl;

}

simpan<<endl<<endl;

simpan<<"Nama Pembeli : "<<plg.nama_pel;

simpan<<"\nTotal Belanjaan : "<<total;

simpan<<endl<<endl;

if(plg.jenis_pel=='y'||plg.jenis_pel=='Y') {

float diskon, jml;

if (total>400000&&total<600000){

diskon=total*20/100;

jml=total-diskon;

simpan <<"Diskon : 20%"<<endl;

simpan <<"Total Bayar : "<<jml<<endl;

}

else if (total>600000&&total<800000){

diskon=total*30/100;

jml=total-diskon;

simpan <<"Diskon : 30%"<<endl;

simpan <<"Total Bayar : "<<jml<<endl;

}

else if (total>800000&&total<1000000){

diskon=total*40/100;

jml=total-diskon;

simpan <<"Diskon : 40%"<<endl;

simpan <<"Total Bayar : "<<jml<<endl;

}

else if (total>1000000){

diskon=total*50/100;

jml=total-diskon;

simpan <<"Diskon : 50 %"<<endl;

simpan <<"Total Bayar : "<<jml<<endl;

}

}

else

{

simpan <<"\n\Diskon : 0% ";

simpan <<"\nTotal Bayar : "<<total<<endl;

}

simpan <<"=======================================\n";

simpan <<" PERCOBAAN 7 : FILE \n";

simpan <<"=======================================\n";

simpan.close();

getch();

}

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 146

Tampilan Program

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 147

D. Analisa Data

1. File Header

#include <iostream.h>

Script di atas menunjukkan bahwa iostream.h merupakan sebuah file header

yang berfungsi untuk memanggil perintah cin dan cout pada program sebagai

input dan output. Tanpa kehadiran file header ini akan terjadi kesalahan setelah

program di compile.

#include <conio.h>

Script di atas menunjukkan bahwa File header conio.h digunakan untuk

mengaktifkan fungsi getch() digunakan untuk mengambil inputan dari keyboard

dan langsung mengeksekusinya tanpa menekan tombol enter terlebih dahulu.

#include <fstream.h>

Scrip di atas menunjukkan bahwa file header fstream.h digunakan untuk

memodifikasi file, menulis file maupun membuat file baru.

2. Fungsi Utama

void main(){

input();

output();

getch();

}

Fungsi ini adalah fungsi yang dilihat pertama kali oleh sistem dimana di dalam

fungsi utama ini kita memanggil fungsi yang sudah dibuat sebelumnya.

3. Fungsi Struct

struct pelanggan{

char nama_pel[10];

char jenis_pel;

} plg;

struct barang{

int kode_barang;

char nama[10];

int harga;

}

brg[10];

Fungsi ini digunakan untuk mendeklarasikan struct dimana yang yang pertama

untuk pelanggan, barang dan untuk secara keseluruhan, setiap struct diakhiri oleh

tanda ; agar program tersebut dapat berjalan.

4. Fungsi Input

void input(){

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 148

for(int i=0; i<3; i++){

cout<<"Kode Barang = ";

cin>>brg[i].kode_barang;

cout<<"nama barang = ";

cin>>brg[i].nama;

cout<<"harga barang = ";

cin>>brg[i].harga;

cout<<endl;

}

cout<<"Nama Pembeli : ";

cin>>plg .nama_pel;

cout<<"Apakah Anda Member [Y/T] : ";

cin>>plg.jenis_pel;

}

Fungsi ini digunakan untuk menginputkan data barang dan data pelanggan,

dengan perulangan sebanyak 3 kali untuk menginputkan bagian barang dan 1 kali

untuk menginputkan nama pelanggan.

5. Fungsi Output

void output(){

int b=1;

clrscr();

char p7[30];

ofstream simpan(p7,ios::out);

simpan.open("P7_klp8_basprog.txt");

int total=0;

simpan <<"=======================================\n";

simpan <<" KELOMPOK 8 \n";

simpan <<"=======================================\n";

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

{

simpan <<"Data Ke - "<<b++<<endl;

simpan <<"Nama Barang = "<<brg[i].nama<<endl;

simpan <<"Kode Barang = "<<brg[i].kode_barang<<endl;

simpan <<"Harga Barang = "<<brg[i].harga<<endl;

total=total+brg[i].harga;

cout<<endl;

}

simpan <<"Nama Pembeli : "<<plg.nama_pel;

simpan <<"\nTotal Belanjaan : "<<total;

simpan <<endl;

if(plg.jenis_pel=='y'||plg.jenis_pel=='Y') {

float diskon, jml;

if (total>400000&&total<600000){

diskon=total*20/100;

jml=total-diskon;

simpan <<"Diskon : 20%"<<endl;

simpan <<"Total Bayar : "<<jml<<endl;

}

else if (total>600000&&total<800000){

diskon=total*30/100;

jml=total-diskon;

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 149

simpan <<"Diskon : 30%"<<endl;

simpan <<"Total Bayar : "<<jml<<endl;

}

else if (total>800000&&total<1000000){

diskon=total*40/100;

jml=total-diskon;

simpan <<"Diskon : 40%"<<endl;

simpan <<"Total Bayar : "<<jml<<endl;

}

else if (total>1000000){

diskon=total*50/100;

jml=total-diskon;

simpan <<"Diskon : 50 %"<<endl;

simpan <<"Total Bayar : "<<jml<<endl;

}

}

else

{

simpan <<"\n\Diskon : 0% ";

simpan <<"\nTotal Bayar : "<<total<<endl;

}

simpan <<"=======================================\n";

simpan <<" PERCOBAAN 7 : FILE \n";

simpan <<"=======================================\n";

cout.close();

getch();

}

Di dalam fungsi ini akan di tampilkan Kode Barang, Nama Barang, Harga Barang

dan Juga Nama Customer. Dimana program ini akan melakukan penyeleksian

customer, apabila customer tersebut merupakan member, maka akan

mendapatkan diskon. Jumlah diskon tergantung dari total belanja, apabila total

belanja lebih dari 400000 ribu dan kurang dari 600000 maka akan mendapatkan

diskon 20%. Jika total belanja lebih dari 600000 ribu dan kurang dari 800000 maka

akan mendapatkan diskon 30%. Jika total belanja lebih dari 800000 ribu dan

kurang dari 1000000 maka akan mendapatkan diskon 40%. Dan jika total belanja

lebih dari 1000000 ribu maka akan mendapatkan diskon 50%. Fungsi char

p7[30]; ofstream simpan(p7,ios::out); simpan.open

(“P7_klp8_basprog.txt”); ini berfungsi untuk menyimpan file ke dalam

bentuk text yang berekstensi .txt. Dan semua fungsi cout di ganti dengan nama

object yaitu simpan dan fungsi simpan.close(); ini untuk menutup file yang

sudah dibuat.

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 150

E. Kesimpulan

1. File adalah sebuah organisasi dari sejumlah record. Masing-masing record bisa

terdiri dari satu atau beberapa field. Setiap field terdiri dari satu atau beberapa

byte.

2. File terdiri dari dua macam yaitu file teks dan file biner

3. File teks adalah file yang berisikan kumpulan karakter ASCII yang disusun menjadi

beberapa baris.

4. File biner adalah file yang berisikan data yang masing-masing elemen berupa data

8 bit (1 byte).

5. Operasi dasar pada file pada dasarnya terbagi menjadi empat tahap :

Pendeklarasian object

Ofstream nama_object;

Membuka atau mengaktifkan file

nama_object.open(nama_file)

Menulis / menyimpan ke file

Nama object<<”statemen”<<endl;

Menutup file

Nama_object.close();

6. Untuk melakukan operasi input file digunakan objek ifstream dan untuk operasi

output file digunakan objek ofstream. Kedua objek tersebut berada pada header

file fstream.h.

7. Pada saat menyimpan file dalam format apapun, maka letak penyimpanan filenya

sama dengan folder tempat program tersebut disimpan.

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 151

F. TUGAS PENDAHULUAN

buat struct dengan anggota : NIM, Nama, Angkatan (minimal 5 mahasiswa) kemudian

keluarkan dalam bentuk file (.txt)

#include <iostream.h>

#include <conio.h>

#include <fstream>

#include <stdio.h>

struct anggota {

char nim[9];

char nama[30];

int angkat;

}angk[5];

void main(){

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

cout<<"Masukkan Nim Anda ";

cin>>angk[i].nim;

cout<<"Masukkan Nama Anda ";

cin>>angk[i].nama;

cout<<"Angkatan Anda ??? ";

cin>>angk[i].angkat;

cout<<endl;

}

cout<<endl<<endl<<endl;

char TP7[30];

ofstream simpan(TP7, ios::out);

simpan.open("TP7_019_klp8.txt");

simpan<<"--------------------------------------\n";

simpan<<"----------- KLP 8 --------------------\n";

simpan<<"--------------------------------------\n";

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

simpan<<"NIM : "<<angk[i].nim<<endl;

simpan<<"Nama : "<<angk[i].nama<<endl;

simpan<<"Angkatan : "<<angk[i].angkat<<endl;

cout<<endl<<endl;

}

simpan<<"--------------------------------------\n";

simpan<<"--------------------------------------\n";

simpan.close();

getch();

}

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 152

Tampilan Program :

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 153

G. TUGAS-TUGAS

Fungsi fstream dalam Bahasa C++

Di dalam bahasa C++, kita bisa membuat program yang memberikan input atau

output pada sebuah file. Ada 3 macam kelas yang dapat digunakan untuk melakukan

hal tersebut : ofstream memberikan input kepada file , ifstream memberikan output

dengan membaca isi file, lalu ada fstream yang bisa melakukan keduanya. Oleh

karena itu penulis kali ini akan membahas mengenai fstream.

Menggunakan fstream, program bisa membaca isi file sekaligus memberikan output

ke dalam file tersebut. Contoh yang paling dekat adalah penulisan pada file teks yang

biasanya berformat (.txt).

Berikut ini adalah contoh program yang menggunakan fstream :

// menulis pada file teks

#include <iostream>

#include <fstream>

using namespace std;

int main ()

{

//masukkan nama file teks

ofstream myfile ("contoh.txt");

if (myfile.is_open())

{

//masukkan tulisan yang ingin di tulis ke dalam file teks

cout<<"Ini adalah sebuah file teks"<<endl;

}

myfile.close();

}

else cout << "Unable to open file";

return 0;

}

Outputnya nantinya dapat dilihat pada file teks di folder di tempat program disimpan.

Teks yang dapat dituliskan tidak hanya satu baris, bisa banyak bahkan sebuah

perulangan bisa dibuat sehingga yang tertulis di dalam teks file adalah hasil perulangan

dari teks yang anda masukkan.

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 154

1. Program swalayan keluarkan dalam file (.txt)

#include <iostream.h>

#include <conio.h>

#include <fstream>

#include <iomanip>

struct toko {

char nb[30];

float harga;

}tk[10];

main(){

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

cout<<"No "<<(i+1)<<endl;

cout<<"Nama Barang ";

cin>>tk[i].nb;

cout<<"Harga ";

cin>>tk[i].harga;

cout<<endl;

}

cout<<endl<<endl;

char p7[30];

ofstream simpan(p7,ios::out);

simpan.open("Tugas1_klp8_p7.txt");

simpan<<"=====================================\n";

simpan<<"========= TOKO BAHASA C++ ===========\n";

simpan<<"=====================================\n";

simpan<<"No \t Nama Barang\t\tHarga \n";

simpan<<"=====================================\n";

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

simpan<<(i+1)<<"\t"<<tk[i].nb<<"

\t\t\t"<<tk[i].harga<<endl;

}

simpan<<"=====================================\n";

float jumlah, diskon,tb;

jumlah=tk[1].harga+tk[2].harga+tk[3].harga+tk[4].harga+tk[

5].harga;

simpan<<"Total = "<<jumlah<<endl;

if (jumlah>150000&&jumlah<250000){

diskon=jumlah*30/100;

simpan<<"Diskon 30% \n";

}

else if (jumlah>250000){

diskon=jumlah*40/100;

simpan<<"Diskon 40% \n";

}

else {

simpan<<"Diskon 0% ";

}

tb=jumlah-diskon;

simpan<<"Total Bayar = "<<tb;

getch();

}

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 155

Tampilan program :

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 156

2. Membuat program sederhana kemudian keluarkan kedalam file .doc

#include <iostream.h>

#include <conio.h>

#include <fstream>

#include <stdio.h>

struct anggota {

char nim[9];

char nama[30];

int angkat;

}angk[5];

void main(){

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

cout<<"Masukkan Nim Anda ";

cin>>angk[i].nim;

cout<<"Masukkan Nama Anda ";

cin>>angk[i].nama;

cout<<"Angkatan Anda ??? ";

cin>>angk[i].angkat;

cout<<endl;

}

cout<<endl<<endl<<endl;

char TP7[30];

ofstream simpan(TP7, ios::out);

simpan.open("TP7_019_klp8.doc");

simpan<<"--------------------------------------\n";

simpan<<"----------- KLP 8 --------------------\n";

simpan<<"--------------------------------------\n";

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

simpan<<"NIM : "<<angk[i].nim<<endl;

simpan<<"Nama : "<<angk[i].nama<<endl;

simpan<<"Angkatan : "<<angk[i].angkat<<endl;

cout<<endl<<endl;

}

simpan<<"--------------------------------------\n";

simpan<<"--------------------------------------\n";

simpan.close();

getch();

}

Inputan :

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 157

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 158

3. Buatlah file “p7.txt”. kemudian isilah dengan angka 1 2 3 4 5, kemudian

munculkan isinya dan jumlahkan masing-masing angka dengan 1 sehingga

outputnya = 2 3 4 5 6

#include <iostream.h>

#include <conio.h>

#include <fstream.h>

void main(){

char p7[30];

int a;

int b[6];

struct data

{

int a;

}z[6];

ifstream file7;

file7.open("P7.txt");

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

file7>>z[i].a;

}

cout<<"isi = ";

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

cout<<z[i].a<<" ";

}

cout<<endl;

ofstream simpan(p7,ios::out);

simpan.open("P7_t.txt");

cout<<"Hasil + = ";

simpan<<"Hasil + = ";

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

b[i]=z[i].a+1;

cout<<b[i]<<" ";

simpan<<b[i]<<" ";

}

simpan.close();

getch();

}

Tampilan program :

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 159

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro – Fakultas Teknik – Universitas Mataram 160

Daftar pustaka

Kadir, Abdul.2004.Pemrograman C++. Andi Offset. Yogyakarta

Misbahuddin,.2006.Diktat bahasa pemrograman. Mataram

Utama ,Didit N. & Widayanti, Riya .2005. Algoritma &Pemrograman dengan Borland

C++,Graha Ilmu . Yogyakarta