laporan praktikum bahasa pemrograman c++ 2013
DESCRIPTION
JTE-FT UNRAMTRANSCRIPT
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 memberikan
awalan operator asterisk (*) pada identifier pointer, yang berarti "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