Anda di halaman 1dari 160

LAPORAN PRAKTIKUM KOMPUTASI 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

DAFTAR PUSTAKA
COVER .......................................................................................................... DAFTAR PUSTAKA ..................................................................................... LEMBAR MONITORING ........................................................................... LEMBAR PENGESAHAN .......................................................................... COVER MODUL 1 PENGETAHUAN DASAR PEMROGRAMAN ...... A. TUJUAN ........................................................................................... B. DASAR TEORI ................................................................................ C. PERMASALAHAN .......................................................................... D. ANALISA DATA ............................................................................. E. KESIMPULAN ................................................................................. F. TUGAS PENDAHULUAN .............................................................. G. TUGAS TUGAS ............................................................................ DAFTAR PUSTAKA ............................................................................ COVER MODUL 2 STATEMENT CONTROL DAN LOOPING .......... A. TUJUAN ........................................................................................... B. DASAR TEORI ................................................................................ C. PERMASALAHAN .......................................................................... D. ANALISA DATA ............................................................................. E. KESIMPULAN ................................................................................. F. TUGAS PENDAHULUAN .............................................................. G. TUGAS TUGAS ............................................................................ DAFTAR PUSTAKA ............................................................................ COVER MODUL 3 FUNGSI ...................................................................... A. TUJUAN ........................................................................................... B. DASAR TEORI ................................................................................ C. PERMASALAHAN .......................................................................... D. ANALISA DATA ............................................................................. E. KESIMPULAN ................................................................................. F. TUGAS PENDAHULUAN .............................................................. G. TUGAS TUGAS ............................................................................ DAFTAR PUSTAKA ........................................................................... COVER MODUL 4 ARRAY ....................................................................... A. TUJUAN ........................................................................................... B. DASAR TEORI ................................................................................ C. PERMASALAHAN .......................................................................... D. ANALISA DATA ............................................................................. E. KESIMPULAN ................................................................................. F. TUGAS PENDAHULUAN .............................................................. G. TUGAS TUGAS ............................................................................ DAFTAR PUSTAKA ........................................................................... COVER MODUL 5 POINTER .................................................................... A. TUJUAN ........................................................................................... B. DASAR TEORI ................................................................................
Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

1 2 4 5 6 7 7 17 18 21 22 24 25 26 27 27 32 34 37 39 41 43 44 45 45 51 54 63 64 69 71 72 73 73 77 80 85 86 88 97 98 99 99 2

Praktikum Komputasi Dasar dan Pemrograman 2013 C. PERMASALAHAN .......................................................................... D. ANALISA DATA ............................................................................. E. KESIMPULAN ................................................................................. F. TUGAS PENDAHULUAN .............................................................. G. TUGAS TUGAS ............................................................................ DAFTAR PUSTAKA ........................................................................... COVER MODUL 6 STRUCT ...................................................................... A. TUJUAN ........................................................................................... B. DASAR TEORI ................................................................................ C. PERMASALAHAN .......................................................................... D. ANALISA DATA ............................................................................. E. KESIMPULAN ................................................................................. F. TUGAS PENDAHULUAN .............................................................. G. TUGAS TUGAS ............................................................................ DAFTAR PUSTAKA ........................................................................... COVER MODUL 7 FILE/BERKAS ........................................................... A. TUJUAN ........................................................................................... B. DASAR TEORI ................................................................................ C. PERMASALAHAN .......................................................................... D. ANALISA DATA ............................................................................. E. KESIMPULAN ................................................................................. F. TUGAS PENDAHULUAN .............................................................. G. TUGAS TUGAS ............................................................................ DAFTAR PUSTAKA ........................................................................... 105 109 113 114 115 119 120 121 121 126 129 132 133 134 138 139 140 140 144 147 150 151 153 160

Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

Praktikum Komputasi Dasar dan Pemrograman 2013

LEMBAR MONITORING PRAKTIKUM

KOMPUTASI DASAR & PEMROGRAMAN


NAMA NIM KELOMPOK : FATHURRAHMAN : F1B111019 :8

Percobaan Percobaan Modul 1 Modul 2 Modul 3 Modul 4 Modul 5 Modul 6 Modul 7

Tanggal Terima 27-09-2013 05-10-2013 11-10-2013 28-10-2013 09-11-2013 16-11-2013 23-11-2013

Nama Asisten

Paraf

21-09-2013 28-09-2013 05-10-2013 12-10-2013 02-11-2013 09-11-2013 16-11-2013

Radimas Dhawniel P. Radimas Dhawniel P. Radimas Dhawniel P. Radimas Dhawniel P. Radimas Dhawniel P. Radimas Dhawniel P. Radimas Dhawniel P.

Mataram, 21 Desember 2013 Koordiantor Asisten

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

( AINUL HAMDANI ) F1B010036

Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

Praktikum Komputasi Dasar dan Pemrograman 2013 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 Mengetahui Kepala Laboratorium Komputer dan Jaringan Dosen Pembimbing Praktikum

(Lalu A. Syamsul Irfan Akbar, ST., M.Eng) NIP. 19830310 200912 1 004

(Giri Wahyu Wiriasto, ST., MT) NIP. 19820904 201012 1 001

Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

Praktikum Komputasi Dasar dan Pemrograman 2013

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
Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

Praktikum Komputasi Dasar dan Pemrograman 2013

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
Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

Praktikum Komputasi Dasar dan Pemrograman 2013 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
Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

Praktikum Komputasi Dasar dan Pemrograman 2013 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 */ Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

Praktikum Komputasi Dasar dan Pemrograman 2013


/* 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 char short Bytes* 1 2 Description Range*

to 127 Abjad/karakter atau untuk signed: -128 unsigned: 0 to 255 bilangan bulat kecil Signed : -32768 to Bilangan bulat dengan 32767 unsigned: 0 to jangkauan pendek 65535 Bilangan bulat signed:-2147483648 to 2147483647 unsigned: 0 to 4294967295

long

Int

signed:-2147483648 to Integer dengan jangkauan 2147483647 panjang unsigned: 0 to 4294967295 Angka dengan titik 3.4e + / - 38 (7 digits) mengambang (bilangan cacah) Bilangan cacah dengan 1.7e + / - 308 (15 digits) ketelitian ganda Bilangan cacah dengan 1.2e + / - 4932 (19 digits) ketelitian ganda panjang Boolean, dapat bernilai True or false benar atau salah (true or false) Karakter lebar, biasa dipakai untuk Unicode 1 karakter lebar karakter

float double long double bool wchar_ t 3. Operator

4 8 10 1 2

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 (=).
Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

10

Praktikum Komputasi Dasar dan Pemrograman 2013 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 = 10; b = 4; a = b; b = 7; // // // // // a:? b:? a:10 b:? a:10 b:4 a:4 b:4 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 (--).
Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

11

Praktikum Komputasi Dasar dan Pemrograman 2013 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++ : == != > < >= <= Contoh :
(7 (5 (3 (6 (5 == 5) > 4) != 2) >= 6) < 5) would would would would would return return return return return false. true. true. true. false.

Equal Different Greater than Less than Greater or equal than Less or equal than

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


Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

12

Praktikum Komputasi Dasar dan Pemrograman 2013


(a == 5) would (a*b >= c) would (b+4 > a*c) would ((b=2) == a) return false. return true since (2*3 >= 6) is it. return false since (3+4 > 2*6) is it. 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 true true false false Contoh :
( (5 == 5) && (3 > 6) ) returns false ( true && false ). ( (5 == 5) || (3 > 6)) returns true ( true || false ).

Second Operand b true false true false

Result a && b true false false false

Result a || b true true true false

Conditional operator ( ? ). operator kondisional mengevaluasi ekspresi dan memberikan hasil tergantung dari hasil evaluasi (true atau false). Sintaks :
condition ? result1 : result2

Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

13

Praktikum Komputasi Dasar dan Pemrograman 2013 Jika kondisi true maka akan menghasilkan result1, jika tidak akan menghasilkan result2. 7==5 ? 4 : 3 7==5+2 ? 4 : 3 5>3 ? a : b a>b ? a : b returns 3 since 7 is not equal to 5. returns 4 since 7 is equal to 5+2. returns a, since 5 is greater than 3. 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 AND OR XOR NOT SHL SHR Description Logical AND Logical OR Logical Exclusive OR Complement to one (bit inversion Shift left 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 :
Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

14

Praktikum Komputasi Dasar dan Pemrograman 2013


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 1 2 3 Operator :: ( )[ ]->. Sizeof ++ -~ ! &* (type) +4 5 */% +Increment/decrement Complement to one (bitwise) Unary NOT Reference and Deference (pointer) Type Casting Unary less sign Arithmetical operations Arithmetical operations Left Left Description Scope Associativity Left Left Right

Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

15

Praktikum Komputasi Dasar dan Pemrograman 2013 6 7 8 9 10 11 12 13 << >> < <= > >= == != &^| && | | ?: = += -= *= /= %= >>= <<= &= ^= |= , Comma, separator Left Bit shifting (bitwise) Relation operators Relation operators Bitwise operators Logic operators Conditional Assignation Left Left Left Left Left Right Right

Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

16

Praktikum Komputasi Dasar dan Pemrograman 2013 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 :

Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

17

Praktikum Komputasi Dasar dan Pemrograman 2013

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 berada

directive pada

yang file

berfungsi

untuk

memberitahukan kepada compiler bahwa program yang kita buat menggunakan file-file yang fungsi-fungsinya header. Sedangkan berisi deklarasi yang diperlukan oleh cout dan cin atau

<iostream.h>

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.

Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

18

Praktikum Komputasi Dasar dan Pemrograman 2013 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 :

Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

19

Praktikum Komputasi Dasar dan Pemrograman 2013 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
a*b*c =

dan

f4

untuk

pengurangan.

cout<<Perkalian

Inputan

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.

Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

20

Praktikum Komputasi Dasar dan Pemrograman 2013 E. Kesimpulan 1. Pemrograman C++ memiliki struktur bahasa yang diawali dengan menginclude header library yang dibutuhkan untuk operasi input & output ataupun operasioperasi 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.

Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

21

Praktikum Komputasi Dasar dan Pemrograman 2013 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 cin>>nama; cout<<"Masukkan NIM cin>>nim; cout<<"TTL cin>>tgl; cout<<" cin>>bln; cout<<" cin>>thn; cout<<"Kelompok : Nama Saya "; :"; : Tanggal :"; Bulan Tahun :"; :"; :";

Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

22

Praktikum Komputasi Dasar dan Pemrograman 2013


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 :

Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

23

Praktikum Komputasi Dasar dan Pemrograman 2013 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

Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

24

Praktikum Komputasi Dasar dan Pemrograman 2013 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.

Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

25

Praktikum Komputasi Dasar dan Pemrograman 2013

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
Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

26

Praktikum Komputasi Dasar dan Pemrograman 2013

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 kondisikondisi 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

Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

27

Praktikum Komputasi Dasar dan Pemrograman 2013 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 { else { Statement/instruksi; } (kondisi) 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; }

Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

28

Praktikum Komputasi Dasar dan Pemrograman 2013 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 :

Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

29

Praktikum Komputasi Dasar dan Pemrograman 2013 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
Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

30

Praktikum Komputasi Dasar dan Pemrograman 2013 maka perulangan masih akan tetap dilakukan. Perulangan dengan
dowhile() 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);

Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

31

Praktikum Komputasi Dasar dan Pemrograman 2013 C. PERMASALAHAN Mencari akar persamaan kuadrat dengan metode setengah interval ax 2+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(); } Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

32

Praktikum Komputasi Dasar dan Pemrograman 2013 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.

Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

33

Praktikum Komputasi Dasar dan Pemrograman 2013 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.
Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

34

Praktikum Komputasi Dasar dan Pemrograman 2013 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


Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

35

Praktikum Komputasi Dasar dan Pemrograman 2013 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.


Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

36

Praktikum Komputasi Dasar dan Pemrograman 2013 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.

Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

37

Praktikum Komputasi Dasar dan Pemrograman 2013 a. Perulangan For Digunakan untuk mengulang suatu proses yang telah diketahui jumlah perulangannya. Contoh :
for(int i=0; i<10; i++) { Statemen; }

Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

38

Praktikum Komputasi Dasar dan Pemrograman 2013 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++) Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

39

Praktikum Komputasi Dasar dan Pemrograman 2013


{ cout<<"@"; } cout<<"\n"; } } cout<<"\n\nBy : Man_Sugoi || arigatoo "; getch(); }

Tampilan Program : 1. Angka Ganjil

2. Angka Genap

Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

40

Praktikum Komputasi Dasar dan Pemrograman 2013 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(); }

Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

41

Praktikum Komputasi Dasar dan Pemrograman 2013 Tampilan Program :

Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

42

Praktikum Komputasi Dasar dan Pemrograman 2013 DAFTAR PUSTAKA Tjhaqiel's . 2010 . Contoh Program C++ Pengunaan do while . http://cakilklaten.blogspot.com/2010/04/contoh-pengunaan-do-while-pada-c.html pada tanggal 4 Oktober 2013 Ekaswantara . 2010 .Looping dalam C++<<Ekaswantara's Blog. Html . html . diakses

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-pemrogramanc.html diakses pada tanggal 6 Oktober 2013 Eka 2013 Haikal Pratama . 2012 . Contoh Program C++ Menggunakan If Else pada tanggal 7 Oktober 2013 . html . Puta . 2009 . For | C++ Programming . html .

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

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

Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

43

Praktikum Komputasi Dasar dan Pemrograman 2013

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
Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

44

Praktikum Komputasi Dasar dan Pemrograman 2013

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 subprogram 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 : Fungsi main()

Fungsi a()

Fungsi b()

Fungsi c()

Fungsi c1() Berikut sintaks dari suatu fungsi :


Penentuan-tipe nama_fungsi (daftar parameter) Deklarasi parameter { Isi fungsi }

Fungsi c2()

Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

45

Praktikum Komputasi Dasar dan Pemrograman 2013 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
Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

46

Praktikum Komputasi Dasar dan Pemrograman 2013 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 .. }

Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

47

Praktikum Komputasi Dasar dan Pemrograman 2013 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.
Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

48

Praktikum Komputasi Dasar dan Pemrograman 2013 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

Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

49

Praktikum Komputasi Dasar dan Pemrograman 2013 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.

Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

50

Praktikum Komputasi Dasar dan Pemrograman 2013 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)); Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

51

Praktikum Komputasi Dasar dan Pemrograman 2013


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 cout<<"2. Menghitung cout<<"3. Menghitung cout<<"Pilih [1-3] : cin>>pilih; Luas dan Keliling Persegi \n"; Luas dan Keliling Lingkaran \n"; Luas dan Keliling Segitiga \n"; ";

if (pilih==1){ cout<<endl; cout<<"Masukkan Nilai Sisi Persegi "; cin>>sisi; Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

52

Praktikum Komputasi Dasar dan Pemrograman 2013


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){ Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

53

Praktikum Komputasi Dasar dan Pemrograman 2013


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.

Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

54

Praktikum Komputasi Dasar dan Pemrograman 2013 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 return luaspr; } : "<<luaspr<<endl;

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;.
Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

55

Praktikum Komputasi Dasar dan Pemrograman 2013 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 return luasling;}

: "<<luasling<<endl;

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

Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

56

Praktikum Komputasi Dasar dan Pemrograman 2013


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));
Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

57

Praktikum Komputasi Dasar dan Pemrograman 2013 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; Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

58

Praktikum Komputasi Dasar dan Pemrograman 2013


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.


return-nya

Dimana nilai pengembalian atau

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 cout<<"1. Menghitung cout<<"2. Menghitung cout<<"Pilih [1 / 2] cin>>pilih; i n M e n u ====== \n"; Luas Bangun Datar \n"; Luas Bangun Ruang \n"; : ";

Pada fungsi utama beriisi fungsi tampil, variabel input-an karakter dari fungsi dan statement looping. Untuk statement looping disini kami menggunakan konstruksi dowhile. Dimana pada konstruksi do while, kondisi akan dieksekusi atau dievaluasi setelah dilakukan statement atau proses.
Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

59

Praktikum Komputasi Dasar dan Pemrograman 2013 Pada statement dowhile 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 cout<<"2. Menghitung cout<<"3. Menghitung cout<<"Pilih [1-3] : cin>>pilih; Luas dan Keliling Persegi \n"; Luas dan Keliling Lingkaran \n"; Luas dan Keliling Segitiga \n"; ";

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 menginput-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); Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

60

Praktikum Komputasi Dasar dan Pemrograman 2013


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 cout<<"2. Menghitung cout<<"3. Menghitung cout<<"Pilihan [1-3] cin>>pilih; Luas & Volume Balok \n"; Luas & Volume Kubus \n"; Luas & Volume Bola \n"; : ";

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 luas dan volume Bola.

dan menghitung

Berikutnya terdapat variabel input-an pilih;, disini kita diminta untuk menginput-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 "; } Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

61

Praktikum Komputasi Dasar dan Pemrograman 2013


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.
Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

62

Praktikum Komputasi Dasar dan Pemrograman 2013 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. b. Pemanggilan Secara Nilai (Call by Value) 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 mengcopy 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

Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

63

Praktikum Komputasi Dasar dan Pemrograman 2013 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"; Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

64

Praktikum Komputasi Dasar dan Pemrograman 2013


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) Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

65

Praktikum Komputasi Dasar dan Pemrograman 2013


{ 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(); Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

66

Praktikum Komputasi Dasar dan Pemrograman 2013


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; }

Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

67

Praktikum Komputasi Dasar dan Pemrograman 2013


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 :

Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

68

Praktikum Komputasi Dasar dan Pemrograman 2013 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 :

Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

69

Praktikum Komputasi Dasar dan Pemrograman 2013 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 :

Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

70

Praktikum Komputasi Dasar dan Pemrograman 2013 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

Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

71

Praktikum Komputasi Dasar dan Pemrograman 2013

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
Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

72

Praktikum Komputasi Dasar dan Pemrograman 2013

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() { Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

73

Praktikum Komputasi Dasar dan Pemrograman 2013


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 :
Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

74

Praktikum Komputasi Dasar dan Pemrograman 2013


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 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 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
Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

array[1] 2

array[2] 1

array[3] 5

array[4] 6

75

Praktikum Komputasi Dasar dan Pemrograman 2013 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.

Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

76

Praktikum Komputasi Dasar dan Pemrograman 2013 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; } } } } Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

77

Praktikum Komputasi Dasar dan Pemrograman 2013

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; Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

78

Praktikum Komputasi Dasar dan Pemrograman 2013


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 :

Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

79

Praktikum Komputasi Dasar dan Pemrograman 2013 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
Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

80

Praktikum Komputasi Dasar dan Pemrograman 2013 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 Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

81

Praktikum Komputasi Dasar dan Pemrograman 2013


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++) { Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

82

Praktikum Komputasi Dasar dan Pemrograman 2013


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

Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

83

Praktikum Komputasi Dasar dan Pemrograman 2013 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.

Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

84

Praktikum Komputasi Dasar dan Pemrograman 2013 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.

Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

85

Praktikum Komputasi Dasar dan Pemrograman 2013 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++) Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

86

Praktikum Komputasi Dasar dan Pemrograman 2013


{ jumlah += data[i][j]; } } cout<<"\nJumlah Isi Array = " <<jumlah <<endl; } else { cout<<"\nanda tidak memilih menu manapun " <<endl; break; } } while(1); getch(); }

Tampilan Program :

Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

87

Praktikum Komputasi Dasar dan Pemrograman 2013 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 :

Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

88

Praktikum Komputasi Dasar dan Pemrograman 2013 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 :
Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

89

Praktikum Komputasi Dasar dan Pemrograman 2013 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(){ Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

90

Praktikum Komputasi Dasar dan Pemrograman 2013


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:
Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

91

Praktikum Komputasi Dasar dan Pemrograman 2013


#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; } }

Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

92

Praktikum Komputasi Dasar dan Pemrograman 2013 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 :

Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

93

Praktikum Komputasi Dasar dan Pemrograman 2013 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 :

Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

94

Praktikum Komputasi Dasar dan Pemrograman 2013 4. Membuat kode sandi ABCDEFGHI J KLM NOPQRSTUVWXYZ

#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'; Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

95

Praktikum Komputasi Dasar dan Pemrograman 2013


} else if (nama[i]=='s'){ } else if (nama[i]=='t'){ } else if (nama[i]=='u'){ } else if (nama[i]=='v'){ } else if (nama[i]=='w'){ } else if (nama[i]=='x'){ } else if (nama[i]=='y'){ } else if (nama[i]=='z'){ } cout<<nama[i]; } getch(); }

nama[i]='f'; nama[i]='g'; nama[i]='h'; nama[i]='i'; nama[i]='j'; nama[i]='k'; nama[i]='l'; nama[i]='m';

Tampilan Program :

Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

96

Praktikum Komputasi Dasar dan Pemrograman 2013 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

Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

97

Praktikum Komputasi Dasar dan Pemrograman 2013

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
Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

98

Praktikum Komputasi Dasar dan Pemrograman 2013 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 Berisi data/nilai Operasi yang bisa dilakukan seperti layaknya operasi biasa: +, -, *, / Pointer Berisi alamat memory dari suatu variable tertentu 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 dinamis Deklarasi : int *a

Bersifat statis Deklarasi : int a;

Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

99

Praktikum Komputasi Dasar dan Pemrograman 2013 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

Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

100

Praktikum Komputasi Dasar dan Pemrograman 2013 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 runtime. 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 & bersifat Unary (hanya memerlukan satu operand saja) Operator & menghasilkan nilai yang berbeda pada sebuah alamat Operator * merupakan operator reference. Dengan menggunakan pointer, kita dapat mengakses nilai yang tersimpan secara langsung dengan mem-berikan awalan operator asterisk (*) pada identifier pointer, yang ber-arti "value pointed by". Contoh :
beth = *ted;

(dapat dikatakan:"beth sama dengan nilai yang ditunjuk oleh ted") beth = 25, karena ted dialamat 1776, dan nilai yang berada pada alamat 1776 adalah 25.

Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

101

Praktikum Komputasi Dasar dan Pemrograman 2013

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 assignation 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";} Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

102

Praktikum Komputasi Dasar dan Pemrograman 2013


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 :
Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

103

Praktikum Komputasi Dasar dan Pemrograman 2013


*p = *q; p++; q++;

c. Pointer dan String String merupakan bentuk khusus dari array. Oleh karena itu operasi pointerarray 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) Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

104

Praktikum Komputasi Dasar dan Pemrograman 2013


{ 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; }

Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

105

Praktikum Komputasi Dasar dan Pemrograman 2013 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) * *(C+1) = (*(A + 0) * *(B+1)) + (*(A + 1) * *(C+2) = (*(A + 2) * *(B+0)) + (*(A + 3) * *(C+3) = (*(A + 2) * *(B+1)) + (*(A + 3) * } void inversData(float *A, float *C) {

*(B *(B *(B *(B

+ + + +

2)); 3)); 2)); 3));

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) { Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

106

Praktikum Komputasi Dasar dan Pemrograman 2013

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 : 107

Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

108

Praktikum Komputasi Dasar dan Pemrograman 2013 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.
Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

109

Praktikum Komputasi Dasar dan Pemrograman 2013 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, { *(C+0) = (*(A + 0) * *(C+1) = (*(A + 0) * *(C+2) = (*(A + 2) * *(C+3) = (*(A + 2) * } float *B, float *C) *(B+0)) *(B+1)) *(B+0)) *(B+1)) + + + + (*(A (*(A (*(A (*(A + + + + 1) 1) 3) 3) * * * * *(B *(B *(B *(B + + + + 2)); 3)); 2)); 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; Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

110

Praktikum Komputasi Dasar dan Pemrograman 2013


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(); }

Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

111

Praktikum Komputasi Dasar dan Pemrograman 2013 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.

Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

112

Praktikum Komputasi Dasar dan Pemrograman 2013 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.

Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

113

Praktikum Komputasi Dasar dan Pemrograman 2013 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;

Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

114

Praktikum Komputasi Dasar dan Pemrograman 2013 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.

Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

115

Praktikum Komputasi Dasar dan Pemrograman 2013 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++) Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

116

Praktikum Komputasi Dasar dan Pemrograman 2013


{ 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); Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

117

Praktikum Komputasi Dasar dan Pemrograman 2013


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 :

Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

118

Praktikum Komputasi Dasar dan Pemrograman 2013 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 pada

.http://andrigowell.blogspot.com/2010/09/pointer-dalam-bahasa-c.html tanggal 01 November 2013

diakses

Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

119

Praktikum Komputasi Dasar dan Pemrograman 2013

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
Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

120

Praktikum Komputasi Dasar dan Pemrograman 2013 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). 121

Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

Praktikum Komputasi Dasar dan Pemrograman 2013


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; Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

122

Praktikum Komputasi Dasar dan Pemrograman 2013


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.

Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

123

Praktikum Komputasi Dasar dan Pemrograman 2013


#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){ Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

124

Praktikum Komputasi Dasar dan Pemrograman 2013


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"; }

Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

125

Praktikum Komputasi Dasar dan Pemrograman 2013 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"; Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

126

Praktikum Komputasi Dasar dan Pemrograman 2013


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; Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

127

Praktikum Komputasi Dasar dan Pemrograman 2013


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 :

Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

128

Praktikum Komputasi Dasar dan Pemrograman 2013 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; Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

129

Praktikum Komputasi Dasar dan Pemrograman 2013


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; } Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

130

Praktikum Komputasi Dasar dan Pemrograman 2013


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.

Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

131

Praktikum Komputasi Dasar dan Pemrograman 2013 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.

Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

132

Praktikum Komputasi Dasar dan Pemrograman 2013 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 :

Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

133

Praktikum Komputasi Dasar dan Pemrograman 2013 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 cout<<"Nama cout<<"Jurusan cout<<"Semester getch(); } = = = = "<<mhs.nim<<endl; "<<mhs.nama<<endl; "<<mhs.jur<<endl; "<<mhs.smstr<<endl;

Tampilan Program :

Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

134

Praktikum Komputasi Dasar dan Pemrograman 2013 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 : "; Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

135

Praktikum Komputasi Dasar dan Pemrograman 2013


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(){ Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

136

Praktikum Komputasi Dasar dan Pemrograman 2013


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 :

Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

137

Praktikum Komputasi Dasar dan Pemrograman 2013 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/structdalam-c/ diakses tanggal 10 November 2013. Utama ,Didit N. & Widayanti, Riya , Algoritma &Pemrograman dengan Borland C++,Graha Ilmu - Yogya ,2005

Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

138

Praktikum Komputasi Dasar dan Pemrograman 2013

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
Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

139

Praktikum Komputasi Dasar dan Pemrograman 2013

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 : w: a : r+ : w+ menyarakan file hanya dapat dibaca (file harus sudah ada) menyatakan file baru akan dibuat/diciptakan (file yang sudah ada akan dihapus) untuk membuka file yang sudah ada dan akan dilakukan proses penambahan data (jika file belum ada, otomatis akan dibuat) untuk membuka file yang sudah ada dan akan dilakukan proses pembacaan dan penulisan. untuk membuka file dengan tujuan untuk pembacaan atau penulisan. 140

Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

Praktikum Komputasi Dasar dan Pemrograman 2013 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;

Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

141

Praktikum Komputasi Dasar dan Pemrograman 2013 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
ios::app ios::ate ios::binary ios::in ios::nocreate

Keterangan Menyambung data diakhir file sehingga penulisan data dilakukan setelah akhir file. Meletakkan penunjuk (pointer) di akhir file. Membuka file dalam bentuk biner. Membuka file untuk operasi input Membuka file tanpa menciptakan file baru, artinya jika file yang dibuka tidak ada operasi gagal. Membuka file tanpa mengganti file yang sudah ada, artinya jika file ada operasi open gagal kecuali mode ate atau app diset. Membuka file untuk operasi output Membuang isi file.

ios::noreplace

ios::out ios::truct

Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

142

Praktikum Komputasi Dasar dan Pemrograman 2013 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
ios::beg ios::cur Ios::end

Keterangan Posisi dari awal file Posisi berdasarkan letak penunjuk file sekarang 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.

Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

143

Praktikum Komputasi Dasar dan Pemrograman 2013 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");

Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

144

Praktikum Komputasi Dasar dan Pemrograman 2013


int simpan simpan simpan total=0; <<"=======================================\n"; <<" KELOMPOK 8 \n"; <<"=======================================\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(); } Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

145

Praktikum Komputasi Dasar dan Pemrograman 2013 Tampilan Program

Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

146

Praktikum Komputasi Dasar dan Pemrograman 2013 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(){ Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

147

Praktikum Komputasi Dasar dan Pemrograman 2013


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; Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

148

Praktikum Komputasi Dasar dan Pemrograman 2013


simpan <<"Diskon simpan <<"Total Bayar : 30%"<<endl; : "<<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.

Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

149

Praktikum Komputasi Dasar dan Pemrograman 2013 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.

Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

150

Praktikum Komputasi Dasar dan Pemrograman 2013 F. TUGAS PENDAHULUAN buat struct dengan anggota : NIM, Nama, Angkatan (minimal 5 mahasiswa) kemudian keluarkan dalam bentuk file (.txt)
#include #include #include #include <iostream.h> <conio.h> <fstream> <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(); }

Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

151

Praktikum Komputasi Dasar dan Pemrograman 2013 Tampilan Program :

Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

152

Praktikum Komputasi Dasar dan Pemrograman 2013 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.

Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

153

Praktikum Komputasi Dasar dan Pemrograman 2013

1. Program swalayan keluarkan dalam file (.txt)


#include #include #include #include <iostream.h> <conio.h> <fstream> <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(); }

Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

154

Praktikum Komputasi Dasar dan Pemrograman 2013 Tampilan program :

Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

155

Praktikum Komputasi Dasar dan Pemrograman 2013

2. Membuat program sederhana kemudian keluarkan kedalam file .doc


#include #include #include #include <iostream.h> <conio.h> <fstream> <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 :

Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

156

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

157

Praktikum Komputasi Dasar dan Pemrograman 2013

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 :

Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

158

Praktikum Komputasi Dasar dan Pemrograman 2013

Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

159

Praktikum Komputasi Dasar dan Pemrograman 2013 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

Jurusan Teknik Elektro Fakultas Teknik Universitas Mataram

160