Modul Pemrograman Antarmuka
Modul Pemrograman Antarmuka
BORLAND
C++
Modul Praktikum
Pengenalan
Bahasa C++
1.1.2.
1.1.3.
Modul Praktikum
Gambar 1.1.
Menu Untuk Mengaktifkan Program Borland C++
Berikut lDE dari Borland C++, seperti gambar dibawah ini:
Gambar 1.2.
Modul Praktikum
Layar Pembuka Borland C++
Menu Bar
Tools Bar
Jendela
Editor
Jendela
Message
Status Bar
Modul Praktikum
#include <file-header>
main()
{
pernyataan;
}
Contoh-1
Penjelasan :
1. #include <file-header> merupakan preprocessor pada C++ untuk
pemanggilan file header yang memuat beberapa perintah-perintah dari C++
(contoh, apabila ingin menggunakan perintah cout maka harus menggunakan
file header iostream.h)
2. main( ) merupakan awal mula dari blok program utama
3. tanda { dan } sebagai punctuator yang awal blok program hingga akhir blok
program
4. cout merupakan perintah keluaran pada C++
5. getch( ); apabila ditempatkan sebelum funtuator }, maka berfungsi sebagai
penahan dari tampilan hasil
Modul Praktikum
b. Model Small
Model memori yang menyediakan jumlah memori untuk masing-masing program
dan data tidak lebih dari 64 Kb.
c. Model Medium
Model memori yang menyediakan jumlah memori untuk program tidak lebih dari
64 Kb dan data tidak lebih dari 64 K.
d. Model Compact
Model memori yang menyediakan jumlah memori untuk program lebih dari 64
Kb dan data tidak lebih dari 64 K.
e. Model Large
Model memori yang menyediakan jumlah memori untuk program dan data lebih
dari 64 K.
d. Model Huge
Model memori yang menyediakan jumlah memori untuk menyimpan satu jenis
data.
Modul Praktikum
Modul Praktikum
Modul Praktikum
Modul Praktikum
10
Modul Praktikum
BORLAND
C++
Ukuran
Memori
Char
Int
Short
1 Byte
2 Byte
2 Byte
Long
4 Byte
Float
4 Byte
57
Double
8 Byte
15 16
Long
Double
10 Byte
19
Jangkauan Nilai
Jumlah
Digit
Jumlah
Memori
Jangkauan Nilai
Unsigned Integer
Unsigned Character
Unsigned Long Integer
2 Byte
1 Byte
4 Byte
0 65535
0 255
0 4,294,967,295
2.2. Konstanta
Konstanta adalah suatu nilai yang sifatnya tetap. Secara garis besar konstanta
dapat dibagi menjadi dua bagian, yaitu:
Konstanta Bilangan
Konstanta Teks
11
Modul Praktikum
A. Konstanta Bilangan
Dalam hal ini konstanta bilangan dibagi menjadi tiga kelompok, antara lain:
1. Konstanta Bilangan Bulat (Integer).
Adalah bilangan yang tidak mengandung nilai desimal. Ini merupakan nilai
default pada konstanta bilangan.
Contoh : 1, 2, 3, 100
2. Konstanta Desimal Berpresisi Tunggal ( Floating Point )
Konstanta Floating Point, mempunyai bentuk penulisan, yaitu :
Bentuk Desimal ( contoh : 5.57 )
Bentuk Eksponensial / Bilangan Berpangkat ( contoh : 4.22e3 4.22 x
103 )s
3. Konstanta Desimal Berpresisi Ganda ( Double Precision )
Konstanta Double Precision, pada prinsipnya sama seperti Konstanta Floating
Point, tetapi Konstanta Double Precision mempunyai daya tampung data
lebih besar.
B. Konstanta Teks
Dalam hal ini konstanta teks dibagi menjadi dua kelompok, antara lain;
1. Data Karakter (Character).
Data karakter hanya terdiri dari sebuah karakter saja yang diapit oleh tanda
kutip tunggal ( ). Data karakter dapat berbentuk abjad ( huruf besar atau
kecil ), angka, notasi atau simbol.
Contoh : Y y 9 & dan lain-lain.
2. Data Teks (String).
Data String merupakan rangkaian dari beberapa karakter yang diapit oleh
tanda kutip ganda ( ).
Contoh : Virusland, Jakarta, AMIK BSI, Y dan lain-lain.
C. Deklarasi Konstanta
Bentuk deklarasi konstanta diawali dengan reserved word const.
Bentuk penulisannya :
const nama_konstanta = nilai konstanta;
atau
const tipe_data nama_konstanta = nilai konstanta;
Contoh:
const x = 89;
const float phi = 3.14;
Pada deklarasi konstanta bilangan desimal (floating point) harus
diikutsertakan model dari tipe datanya.
12
Modul Praktikum
2.3. Variabel
Adalah suatu tempat menampung data atau konstanta dimemori yang
mempunyai nilai atau data yang dapat berubah-ubah selama proses program.
Dalam pemberian nama variabel, mempunyai ketentuan-ketentuan antara lain :
1. Tidak boleh ada spasi ( contoh : gaji bersih ) dan dapat menggunakan tanda garis
bawah ( _ ) sebagai penghubung (contoh : gaji_bersih).
2. Tidak boleh diawali oleh angka dan menggunakan operator aritmatika. Variabel,
dibagi menjadi dua jenis kelompok, yaitu :
Variabel Numerik
Variabel Teks
A. Variabel Numerik
Variabel numerik ini dibagi menjadi menjadi 3 (tiga) macam :
1. Bilangan Bulat atau Integer
2. Bilangan Desimal Berpresisi Tunggal atau Floating Point.
3. Bilangan Desimal Berpresisi Ganda atau Double Precision.
B. Variabel Text
1. Character ( Karakter Tunggal )
2. String ( Untuk Rangkaian Karakter )
C. Deklarasi Variabel
Adalah proses memperkenalkan variabel kepada Borland C++ dan
pendeklarasian tersebut bersifat mutlak karena jika tidak diperkenalkan terlebih
dahulu maka Borland C++ tidak menerima variabel tersebut.
Deklarasi Variabel ini meliputi tipe variabel, seperti integer atau character dan
nama variabel itu sendiri. Setiap kali pendeklarasian variabel harus diakhiri oleh
tanda titik koma ( ; ).
Tabel 2.3. Deklarasi Variabel
TIPE VARIABEL
Integer
Floating Point
Double Precision
Karakter
Unsigned Integer
Unsigned Character
Long Integer
Unsigned Long Integer
SIMBOL DEKLARASI
Int
Float
Double
Char
unsigned int
unsigned char
long int
unsigned long int
Bentuk penulisannya :
Tipe data
nama_variabel;
13
Modul Praktikum
Contoh Deklarasi char nama_mahasiswa[20];
char grade;
float rata_rata ;
int nilai;
2.4.1 printf( )
Fungsi printf( ) merupakan fungsi keluaran yang paling umum digunakan
untuk menampilkan informasi kelayar.
printf("string-kontrol", argumen-1, argumen-2,
);
String-Kontrol dapat berupa keterangan yang akan ditampilkan pada layar
beserta penentu format. Penentu format dipakai untuk memberi tahu kompiler
mengenai jenis data yang dipakai dan akan ditampilkan.
Argumen ini dapat berupa variabel, konstanta dan ungkapan.
Tabel 2.4. Penentu Format Printf( )
TIPE DATA
Integer
Floating Point
Bentuk Desimal
Bentuk Berpangkat
Bentuk Desimal dan Pangkat
Double Precision
Character
String
Unsigned Integer
Long Integer
Long Unsigned Integer
Unsigned Hexadecimal Integer
Unsigned Octal Integer
%d
%f
%e
%g
%lf
%c
%s
%u
%ld
%lu
%x
%o
14
Modul Praktikum
Contoh-1
#include <stdio.h>
#include <conio.h>
#include<iostream.h>
main( ) {
char nama =dita;
int nilai = 100;
clrscr( );
printf(hai %s, Kamu mendapatkan Nilai %i , nama, nilai);
}
Contoh-2
#include<stdio.h>
#include<conio.h>
#include<iostream.h>
main( )
{
float a1=87.5, a2=77.50;
clrscr( );
printf("Nilai Tugas 1: %2f \n",a1);
printf("Nilai Tugas 2: %2f ",a2);
getch( );
}
Output yang akan dihasilkan, jika tidak menggunakan penentu lebar field adalah:
15
Modul Praktikum
#include<stdio.h> #include<conio.h>
#include<iostream.h>
main( )
{
float a1=87.5, a2=77.50;
clrscr();
printf("Nilai Tugas 1: %2.2f \n",a1); printf("Nilai
Tugas 2: %2.2f",a2); getch( );
}
\b
\f
\n
\r
\t
\'
PENGERTIAN
Backspace
Formfeed
Baris Baru
Carriage Return
Tab ( default = 8 karakter )
Tanda kutip tunggal ( ' )
16
Modul Praktikum
\"
\\
\xaa
\aaa
Contoh-4
2.4.2. puts( )
Perintah puts( ) sebenarnya sama dengan printf(), yaitu digunakan untuk
mencetak string ke layar. puts( ) berasal dari kata PUT STRING.
Perbedaan antara printf( ) dengan puts( ) adalah :
Tabel 2.6. Perbedaan fungsi puts( ) dengan printf( ) untuk tipe data string
printf( )
puts( )
17
Modul Praktikum
Contoh-5
#include <stdio.h>
#include <conio.h>
main() {
char nama[5] = "BSI";
clrscr();
2.4.3. putchar( )
Perintah putchar( ) digunakan untuk menampilkan sebuah karakter ke
layar. Penampilan karakter tidak diakhiri dengan pindah baris.
Contoh-5
#include <stdio.h>
#include <conio.h>
main( ) {
clrscr( );
putchar('B');
putchar('S');
putchar('I');
putchar('-');
putchar('2');
putchar('0');
putchar('0');
putchar('9');
getch( );
}
18
Modul Praktikum
2.4.4. cout
Fungsi cout merupakan sebuah objeck didalam Borland C++ digunakan
untuk menampilkan suatu data kelayar. Untuk menggunakan fungsi cout ini, harus
menyertakan file header iostream.h .
Contoh-7
endl
end
flush( )
dec( )
hex( )
oct( )
setbase( )
setw( )
setfill( )
setprecision( )
setosflags( )
19
Modul Praktikum
Berikut akan dibahas beberapa fungsi manipulator, diantaranya:
a. endl
endl merupakan suatu fungsi manipulator yang digunakan untuk menyisipkan
karakter NewLine atau mengatur pindah baris. Fungsi ini sangat berguna untuk
piranti keluaran berupa file di disk. File header yang harus disertakan adalah file
header iostream.h .
Contoh-8
# include<stdio.h> # include<conio.h>
# include<iostream.h>
main( )
{
char
nim[9]="12098890", nama[15]="Andi";
alamat[20]="Jakarta Selatan";
char
clrscr( );
cout<<"Nim :"<<nim<<endl; cout<<"Nama
:"<<nama<<endl; cout<<"Alamat :"<<alamat<<endl; getch( );
}
Output yang akan dihasilkan, dari program contoh-8 diatas adalah :
b. ends
ends merupakan suatu fungsi manipulator yang digunakan untuk menambah
karakter null ( nilai ASCII NOL ) kederetan suatu karakter. Fungsi ini akan
berguna untuk mengirim sejumlah karakter kefile didisk atau modem dan
mangakhirinya dengan karakter NULL.. File header yang harus disertakan adalah
file header iostream.h .
Contoh-9
# include <stdio.h>
# include <conio.h>
# include <iostream.h> main( )
{
int a, b, c, d;
20
Modul Praktikum
clrscr( );
cout<<"Masukan Nilai A : "; cin>>a;
cout<<"Masukan Nilai B : "; cin>>b;
c = a % b;
d = a * b;
cout<<"Hasil dari C = A % B adalah "<<c<<ends;
cout<<"Hasil dari D = A * B adalah "<<d<<ends;
getch( );
}
Output yang akan dihasilkan, dari program contoh-9 diatas adalah :
# include <stdio.h>
# include <conio.h>
# include <iostream.h> # include <iomanip.h> main( )
{
int nilai = 320; clrscr( );
cout<<"Nilai Awal= "<<nilai<<endl;
cout<<"Nilai ke Octal = "<<oct<<nilai<<endl;
cout<<"Nilai ke Hexadesimal = "<<hex<<nilai<<endl;
cout<<"Nilai ke Desimal = "<<dec<<nilai<<endl;
getch( ); }
21
Modul Praktikum
d. setprecision( )
Fungsi setprecision( ) merupakan suatu fungsi manipulator yang digunakan
untuk mengatur jumlah digit desimal yang ingin ditampilkan. Fungsi ini biasa
pada fungsi cout( ), file header yang harus disertakan adalah file header
iomanip.h .
Contoh-11
# include <conio.h>
# include <iostream.h> # include <iomanip.h>
main( ) {
float a,b,c; a = 25.23; b = 12.54; clrscr( );
c = a * b;
cout<<setiosflags(ios::fixed);
cout<<setprecision(1)<<c<<endl;
cout<<setprecision(2)<<c<<endl;
cout<<setprecision(3)<<c<<endl;
cout<<setprecision(4)<<c<<endl;
cout<<setprecision(5)<<c<<endl; getch( );
}
22
Modul Praktikum
e. setbase( )
setbase( ) merupakan suatu fungsi manipulator yang digunakan untuk konversi
bilangan Octal, Decimal dan Hexadecimal. File header yang harus disertakan file
header iomanip.h .
Bentuk penulisannya :
setbase(base bilangan);
Base bilangan merupakan base dari masing-masing bilangan, yaitu :
Octal = basis 8
Decimal = basis 10
Hexadecimal = basis 16
Contoh-12
23
Modul Praktikum
f. setw()
setw() merupakan suatu fungsi manipulator yang digunakan untuk mengatur lebar
tampilan dilayar dari suatu nilai variabel. File header yang harus disertakan file
header iomanip.h .
Bentuk penulisannya :
setw(int n);
n = merupakan nilai lebar tampilan data, integer.
Contoh-13
main( )
{
int a;
clrscr( );
cout<<"Penggunan Manipulator setw()"<<"\n\n";
cout<<"-------------------------------"<<"\n";
for(a=1;a<=15;a++)
{
cout<<setw(a)<<a<<endl;
}
cout<<"-------------------------------"<<"\n";
getche( );
}
Output yang akan dihasilkan, dari program contoh-13 diatas adalah:
24
Modul Praktikum
g. setfill()
setfill() merupakan suatu fungsi manipulator yang digunakan untuk manampilkan
suatu karakter yang ditelakan didepan nilai yang diatur oleh fungsi setw(). File
header yang harus disertakan file header iomanip.h .
Bentuk penulisannya :
setfill(charakter);
Contoh-14
25
Modul Praktikum
h. setiosflags( )
Fungsi setiosflags( ) merupakan suatu fungsi manipulator yang digunakan untuk
mengatur sejumlah format keluaran data.. Fungsi ini biasa pada fungsi cout( ), file
header yang harus disertakan file header iomanip.h .
Ada beberapa format keluaran untuk fungsi setiosflags( ), antara lain.
1. Tanda Format Perataan Kiri dan Kanan
Tedapat dua buah tanda format yang digunakan untuk perataan kiri dan kanan,
pengaturan terhadap lebar variabel untuk perataan kiri dan kanan ini melalui
fungsi setw( ).
ios::left digunakan untuk mengatur perataan sebelah kiri
ios::right digunakan untuk mengatur perataan sebelah kanan
Contoh-15
26
Modul Praktikum
Contoh-16
27
Modul Praktikum
}
Output yang akan dihasilkan, dari program contoh-17 diatas adalah:
28
Modul Praktikum
29
Modul Praktikum
cout<<hex<<a<<endl;
}
for (a=1; a<=15; a++)
{
gotoxy(25,a+5);
cout<<oct<<a<<endl;
}
cout<<"----------------------------\n";
getche( );
}
Output yang akan dihasilkan, dari program contoh-19 diatas adalah:
30
Modul Praktikum
cout<<"Variabel a = "<<a<<"\n\n";
//-> dengan tanda format ios::showpoint
cout<<"Dengan tanda format ios::showpoint"<<endl;
cout<<setiosflags(ios::showpoint);
cout<<"Variabel a = "<<a<<endl;
getche( );
}
Output yang akan dihasilkan, dari program contoh-20 diatas adalah:
31
Modul Praktikum
2.5.1. scanf( )
Fungsi scanf( ) digunakan untuk memasukkan berbagai jenis data. Bentuk Umum
dari fungsi ini adalah:
scanf("penentu format", &nama-variabel);
simbol & merupakan pointer yang digunakan untuk menunjuk kealamat variabel
memori yang dituju.
Tabel 2.7. Penentu Format scanf( )
TIPE DATA
Integer
Floating Point
Bentuk Desimal
Bentuk Berpangkat
Double Precision
Character
String
Unsigned Integer
Long Integer
Long Unsigned Integer
Unsigned Hexadecimal Integer
Unsigned Octal Integer
Contoh-22
#include<stdio.h>
#include<conio.h>
#include<iostream.h>
32
Modul Praktikum
main( )
{
char nama[15],kelas[20],hobby[15];
clrscr( );
printf("\tBIODATA SAYA\n");
printf("Nama : ");scanf("%s",&nama);
printf("Kelas: ");scanf("%s",&kelas);
printf("Hobby: ");scanf("%s",&hobby);
getch( );
}
Output yang akan dihasilkan, dari program contoh-22 diatas adalah:
2.5.2. gets( )
Fungsi gets( ) digunakan untuk memasukkan data string. Bentuk Umum dari
fungsi ini adalah:
gets(nama-variabel-array);
Perbedaan antara scanf( ) dengan gets( ) adalah:
Tabel 2.8. Perbedaan scanf( ) dengan gets( )
scanf( )
gets( )
Tidak dapat menerima string yang Dapat menerima string yang
mengandung spasi atau tab dan mengandung spasi atau tab
dianggap sebagai data terpisah
dan masing dianggap sebagai
satu kesatuan data.
Contoh-23
# include <stdio.h>
# include <conio.h>
main( ) {
char nm1[20];
char nm2[20];
clrscr( );
33
Modul Praktikum
puts("Masukan nama ke - 1 = ");
gets(nm1);
printf("Masukan nama ke - 2 = ");
scanf("%s",&nm2);
printf("\n\n");
puts("Senang Berkenalan Dengan Anda ..");
puts(nm1);
printf("Senang Berkenalan Dengan Anda ..%s", nm1);
printf("\n\n");
puts("Senang Berkenalan Dengan Anda ..");
puts(nm2);
printf("Senang Berkenalan Dengan Anda ..%s", nm2);
getch( );
}
Output yang akan dihasilkan, dari program contoh-23 diatas adalah:
2.5.3. cin
Fungsi cin merupakan sebuah objeck didalam C++ digunakan untuk
memasukkan suatu data. Untuk menggunakan fungsi cin ini, harus menyertakan file
header iostream.h .
Contoh-24
# include <stdio.h>
# include <conio.h>
# include <iostream.h> main( )
{
int nilai1,nilai2, total;
clrscr( );
cout<<"Masukan Nilai 1 : ";
cin>>nilai1;
cout<<"Masukan Nilai 2 : ";
34
Modul Praktikum
cin>>nilai2;
total=nilai1+nilai2;
cout<<"Masukan Total Nilai : "<<total<<endl;
getch( );
}
Output yang akan dihasilkan, dari program contoh-24 diatas adalah:
2.5.4. getch ( )
Fungsi getch( ) (get character and echo) dipakai untuk membaca sebuah
karakter dengan sifat karakter yang dimasukkan tidak perlu diakhiri dengan menekan
tombol ENTER, dan karakter yang dimasukan tidak akan ditampilkan di layar. File
header yang harus disertakan adalah conio.h.
Contoh-25
# include <stdio.h>
# include <conio.h>
main( ) {
char kar;
clrscr( );
printf("Masukan Sebuah Karakter Bebas = ");
kar = getch( );
printf("\nTadi Anda Memasukan karakter %c", kar);
getch( ); }
35
Modul Praktikum
2.5.5. getche()
Fungsi getche()dipakai untuk membaca sebuah karakter dengan sifat karakter
yang dimasukkan tidak perlu diakhiri dengan menekan tombol ENTER, dan karakter
yang dimasukan ditampilkan di layar. File header yang harus disertakan adalah
conio.h.
Contoh-26
36
Modul Praktikum
2.6. Tugas 1
Kerjakan tampilan Berikut : dengan menggunakan deklarasi
sintaks input(gets,scanf,cin) dan output(printf&cout)
variabel dan
37
Modul Praktikum
BORLAND
C++
Operator
Dan Operasi String
Unary
Sifat Unary pada operator adalah hanya melibatkan sebuah operand pada suatu
operasi aritmatik
Contoh : -5
Binary
Sifat Binary pada operator adalah melibatkan dua buah operand pada suatu
operasi aritmatik
Contoh : 4 + 8
Ternary
Sifat Tenary pada operator adalah melibatkan tiga buah operand pada suatu
operasi aritmatik
Contoh :
(10 % 3) + 4 + 2
Keterangan
Perkalian
Pembagian
Sisa
Pembagian
(mod)
Penjumlahan
Pengurangan
Contoh
4*5
8/2
5%2
7+2
62
38
Modul Praktikum
Tabel 3.2. Operator Unary
Operator
+
Contoh-1
Keterangan
Tanda Plus
Tanda Minus
Contoh
4
+6
39
Modul Praktikum
Tanda = , dikenal dengan sebagai Operator Pemberi Nilai (Assignment
Operator).
LValue harus selalu berupa variabel tunggal. Bila LValue bukan
berupa variabel, maka akan tampil pesan kesalahan LValue
required in function
RValue dapat berupa konstanta, variabel lain maupun suatu
ekspresi atau rumus aritmatika.
Contoh
Keterangan
Tingkatan operator sama, penggunaan
nya tergantung letak, yang didepan
didahulukan
Sisa Pembagian
Tingkatan operator sama, penggunaan
nya tergantung letak, yang didepan
didahulukan
A=8+2*3/6
Langkah perhitungannya :
A=8+6/6(6/6=1)
A=8+1
A=9
Tingkatan operator ini dapat diabaikan dengan penggunaan
tanda kurung ( dan ).
Contoh :
A = (8 + 2) * 3 / 6
Langkah perhitungannya :
A = 10 * 3 / 6 A = 30 / 6
A=5
Contoh-2
#include <stdio.h>
#include <conio.h>
#include <iostream.h>
40
Modul Praktikum
main( )
{
int a, b;
clrscr( );
a = 8 + 2 * 3 / 6;
b = (8 + 2) * 3 / 6;
cout<<" A = 8 + 2 * 3 / 6"<<endl;
cout<<" B = (8 + 2) * 3 /6"<<endl;
cout<<endl;
cout<<" Hasil dari A = "<<a<<endl;
printf(" Hasil dari B = %i ",b);
getch( );
}
Output yang akan dihasilkan, dari program contoh-2 diatas adalah :
Keterangan
Perkalian
Pembagian
Sisa Pembagian
Penjumlahan
Pengurangan
41
Modul Praktikum
Keterangan
Penambahan
Pengurangan
A = A + 1 atau A = A - 1; disederhanakan menjadi A ++ atau A-Operator ++ atau -- dapat diletakan didepan atau di belakang
variabel.
Keterangan :
Penambahan:
int x=5;
y = ++x;
(nilai saat ini: y = 6, x=6) int x=5;
y = x++;
(nilai saat ini : y = 5, x=6)
Pengurangan:
int x=5;
y = --x;
(nilai saat ini: y = 4, x=4) int x=5;
y = x--;
(nilai saat ini: y = 5, x=4)
Contoh-3
42
Modul Praktikum
main( )
{
int a = 10, b = 5;
clrscr( );
printf("Nilai A = %d", a);
printf("\nNilai ++A = %d", ++a);
printf("\nNilai B = %d", b);
printf("\nNilai --B = %d", --b);
getch( );
}
Output yang akan dihasilkan, dari program contoh-3 diatas adalah:
43
Modul Praktikum
==
!=
>
<
>=
<=
Contoh-5
cout<<endl;
cout<<"Hasil dari "<<x<<" == "<<y<<" = "<<a<<endl;
cout<<"Hasil dari "<<x<<" != "<<y<<" = "<<b<<endl;
cout<<"Hasil dari "<<x<<" > "<<y<<" = "<<c<<endl;
cout<<"Hasil dari "<<x<<" < "<<y<<" = "<<d<<endl;
cout<<"Hasil dari "<<x<<" >= "<<y<<" = "<<e<<endl;
cout<<"Hasil dari "<<x<<" <= "<<y<<" = "<<f<<endl;
getch( );
}
44
Modul Praktikum
Output yang akan dihasilkan, dari program contoh-5 diatas adalah:
Keterangan
Operator Logika AND
Operator Logika OR
Operator Logika NOT
A
T
T
F
F
Contoh :
45
Modul Praktikum
Jika nilai A = 3; B = 3; C = 7, maka ketiga ekspresi tersebut mempunyai nilai:
Ekspresi Relasi-1 A + 4 < 10 3 + 4 < 10 BENAR
Ekspresi Relasi-2 B>A + 5 3 > 3 + 5 SALAH
Modul Praktikum
A
T
T
F
F
Contoh
Tabel Logika Or
B
A || B
T
T
F
T
T
T
F
F
Ekspresi
Penggabungan ketiga ekspresi relasi diatas menjadi; A+4 < 10 || B>A+5 || C3 > 4
Jika nilai A = 3; B = 3; C = 7, maka ketiga ekspresi tersebut mempunyai nilai:
Ekspresi Relasi-1 A + 4 < 10 3 + 4 < 10 BENAR
Ekspresi Relasi-2 B>A + 5 3 > 3 + 5 SALAH
Ekspresi
Relasi-3 C - 3 > 4 7 3 > 4 SALAH
Dilihat ekspresi diatas salah satu ekspresi tersebut mempunyai nilai BENAR, maka
ekspresi tersebut tetap bernilai BENAR.
A+4 < 10 || B>A+5 || C3 > 4 BENAR = 1
Contoh-7
47
Modul Praktikum
cout<<"Program Ekspresi AND"<<endl<<endl;
cout<<"Hasil dari d = a + 5 > 10 adalah " <<d<<endl;
cout<<"Hasil dari e = b > 5 + a adalah " <<e<<endl;
cout<<"Hasil dari f = c - 4 <= 7 adalah " <<f;
cout<<endl<<endl;
cout<<"Hasil dari g = d || e || f adalah " <<g;
cout<<endl; getch( );
}
Output yang akan dihasilkan, dari program contoh-7 diatas adalah :
48
Modul Praktikum
cout<<"Hasil dari e = b > a + 5 adalah " <<e<<endl;
cout<<"Hasil dari f = c - 3 >= 4 adalah " <<f;
cout<<endl<<endl;
cout<<"Hasil dari g = d || e && f adalah " <<g;
cout<<endl;
getch( );
}
Output yang akan dihasilkan, dari program contoh-8 diatas adalah :
49
Modul Praktikum
main( )
{
int a, b, c;
clrscr( );
cout<<"Masukan Nilai A = ";
cin>>a;
/* Proses */
b = (a + 4 < 10);
c = !(b);
cout<<endl<<"Program Ekspresi NOT "<<endl;
cout<<"Nilai A = "<<a<<endl;
cout<<"Nilai b = (a + 4 < 10) = "<<b<<endl;
cout<<"Nilai c = !(b) = "<<c;
getch( );
}
Output yang akan dihasilkan, dari program contoh-8 diatas adalah :
Keterangan
Bitwise NOT
Bitwise Shift Left
Bitwise Shift Right
Bitwise AND
Bitwise XOR
Bitwise OR
50
Modul Praktikum
#include<iostream.h>
#include<stdio.h>
#include<conio.h>
main() {
int x; clrscr();
cout<<"Masukan Nilai X =
"; cin>>x;
51
Modul Praktikum
Contoh-11
#include<iostream.h>
#include<stdio.h>
#include<conio.h>
void main( )
{
int x;
clrscr( );
cout<<"Masukan Nilai X = ";
cin>>x;
cout<< Nilai Awal : <<x<<endl;
x = x >> 1;
cout<<"Hasil dari Geser 1 Bit Kekiri = "<<x<<endl;
getch( );
}
52
Modul Praktikum
Bit Operand 2
0
1
0
1
Hasil Operand
0
0
0
1
Contoh :
11001001 = 201 01100100 = 100
AND
01000000 = 64
Contoh-12
#include<iostream.h>
#include<stdio.h>
#include<conio.h>
void main( ) {
int a, x, y; clrscr( );
cout<<"Masukan Nilai X = ";
cin>>x;
cout<<"Masukan Nilai Y = ";
cin>>y;
a = x & y;
cout<<\n;
cout<<"Hasil dari "<<x<<" & "<<y<<" = "<<a<<endl;
getch( );
}
Output yang akan dihasilkan, dari program contoh-12 diatas adalah :
Modul Praktikum
Bit Operand 2
0
1
0
1
Hasil Operand
0
1
1
1
Contoh :
11001001 = 201 01100100 = 100
OR
11101101 = 237
Contoh-13
#include<iostream.h>
#include<stdio.h>
#include<conio.h>
void main( ) {
int a, x, y; clrscr( );
cout<<"Masukan Nilai X =
"; cin>>x;
cout<<"Masukan Nilai Y =
"; cin>>y;
a = x | y;
cout<<\n;
cout<<"Hasil dari "<<x<<" | "<<y<<" =
"<<a<<endl; getch( );
}
Output yang akan dihasilkan, dari program contoh-13 diatas adalah :
Modul Praktikum
Bit Operand 2
0
1
0
1
Hasil Operand
0
1
1
0
Contoh :
11001001 = 201 01100100 = 100
XOR
10101101 = 137
Contoh-14
#include<iostream.h>
#include<stdio.h>
#include<conio.h>
void main( ) {
int a, x, y;
clrscr( );
cout<<"Masukan Nilai X = ";
cin>>x;
cout<<"Masukan Nilai Y = ";
cin>>y;
a = x ^ y;
cout<<\n;
Modul Praktikum
Hasil
1
0
Contoh :
00001000 = 8
||||||||
11110111 = 247 = -9
Contoh-15
#include<iostream.h>
#include<stdio.h> #include<conio.h>
void main() {
int a, x, y;
clrscr();
cout<<"Masukan Nilai X = "; cin>>x;
a = ~x;
cout<<\n;
cout<<"Hasil dari ~"<<x<<" = "<<a<<endl; getch();
}
56
Modul Praktikum
a. Fungsi strcat( )
Fungsi ini digunakan untuk menambahkan string sumber kebagian akhir dari
string tujuan. File header yang harus disertakan adalah string.h dan ctype.h
Bentuk Penulisan :
strcat(tujuan, sumber);
Contoh-16
#include <string.h>
#include <ctype.h>
#include <iostream.h>
main() {
char a1[20];
char a2[20];
clrscr();
cout<<"Masukkan Kata - 1= ";
cin>>a1;
cout<<"Masukkan Kata - 2= ";
cin>>a2;
strcat(a1, a2);
cout<<"Hasil Penggabungannya "<<a1;
getch();
}
57
Modul Praktikum
b. Fungsi strcmp( )
Fungsi ini digunakan untuk membandingkan string pertama dengan string
kedua. Hasil dari fungsi ini bertipe data integer (int). File header yang harus
disertakan adalah string.h
Bentuk Penulisan :
var_int = strcmp(str1, str2);
Contoh-17
#include <string.h>
#include <iostream.h>
#include <conio.h>
main( )
{
char a1[ ] = "BSI";
char a2[ ] = "Bsi";
char b1[ ] = "BSI";
clrscr( );
cout<<"Hasil Perbandingan "<<a1<<" dan "<<a2<<"->";
cout<<strcmp(a1,a2)<<endl;
cout<<"Hasil Perbandingan "<<a2<<" dan "<<a2<<"->";
cout<<strcmp(a2,a1) <<endl;
cout<<"Hasil Perbandingan "<<a1<<" dan "<<b1<<"->";
cout<<strcmp(a1,b1) <<endl;
getch( );
}
Output yang akan dihasilkan, dari program contoh-17 diatas adalah:
c. Fungsi strcpy( )
Fungsi ini digunakan untuk menyalin string asal ke-variabel string tujuan,
dengan syarat string tujuan harus mempunyai tipe data dan dan ukuran yang sama
dengan string asal. File header yang harus disertakan adalah string.h.
Bentuk Penulisan :
strcpy(tujuan, asal);
58
Modul Praktikum
Contoh-18
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <iostream.h>
main( ) {
char huruf[20];
char pindah[20];
clrscr( );
d. Fungsi strlen( )
Fungsi ini digunakan untuk memperoleh banyaknya karakter dalam string.
File header yang harus disertakan adalah string.h
Bentuk Penulisan :
strlen(str);
Contoh-19
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <iostream.h>
main( ) {
char huruf[20]; char pindah[20]; clrscr( );
59
Modul Praktikum
cout<<"Masukkan Sembarang Kata = ";
gets(huruf);
cout<<"Panjang Kata Yang Diinputkan = ";
cout<<strlen(huruf);
getch( );
}
Output yang akan dihasilkan, dari program contoh-19 diatas adalah:
e. Fungsi strrev( )
Fungsi ini digunakan untuk membalik letak urutan pada string. String urutan
paling akhir dipindahkan keurutan paling depan dan seterusnya. File header yang
harus disertakan adalah string.h
Bentuk Penulisan :
strrev(str);
Contoh-20
}
Output yang akan dihasilkan, dari program contoh-20 diatas adalah:
60
Modul Praktikum
a. Fungsi atof( )
Fungsi ini digunakan untuk mengubah string (teks) angka menjadi bilangan
numerik float. File header yang harus disertakan adalah math.h
Contoh-21
}
Output yang akan dihasilkan, dari program contoh-21 diatas adalah:
b. Fungsi atoi( )
Fungsi ini digunakan untuk mengubah string (teks) angka menjadi bilangan
numerik integer. File header yang harus disertakan adalah stdlib.h
Contoh-22
61
Modul Praktikum
float angka, a, b;
clrscr( );
cout<<"Masukan Sembarang Kata berupa angka = ";
gets(kata);
angka = atoi(kata);
a = angka + 5;
cout<<"Hasil Perubahan ditambah dengan 5 = "<<a;
getch( );
}
Output yang akan dihasilkan, dari program contoh-22 diatas adalah :
c. Fungsi atol( )
Fungsi ini digunakan untuk mengubah string (teks) angka menjadi bilangan
numerik long integer. File header yang harus disertakan adalah stdlib.h
Contoh-23
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <iostream.h>
main( ) {
char kata[20]; float angka, a, b;
clrscr( );
cout<<"Masukan Sembarang Kata berupa angka = ";
gets(kata);
angka = atol(kata); a = angka + 2500;
cout<<"Hasil Perubahan ditambah dengan 2500 = "<<a;
getch( );
}
62
Modul Praktikum
Output yang akan dihasilkan, dari program contoh-23 diatas adalah:
d. Fungsi strlwr( )
Fungsi ini digunakan untuk mengubah setiap huruf kapital ( huruf besar )
dalam string menjadi huruf kecil. File header yang harus disertakan adalah string.h
Bentuk Penulisan :
strlwr(str);
Contoh-24
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <iostream.h>
main( )
{
char kata[20];
clrscr( );
cout<<"Masukan Sembarang Kata dengan Huruf Besar =";
gets(kata);
strlwr(kata);
cout<<"Hasil Perubahan = "<<kata;
getch( );
}
Output yang akan dihasilkan, dari program contoh-24 diatas adalah:
63
Modul Praktikum
e. Fungsi strupr( )
Fungsi ini digunakan untuk mengubah setiap huruf kecil dalam string
menjadi huruf kapital ( huruf besar ). File header yang harus disertakan adalah
string.h
Bentuk Penulisan :
strupr(str);
Contoh-25
3.8. Tugas 2
1. Tentukan apa hasil numerik dari ekspresi relasi dan logika dibawah ini. Diberikan
nilai A = 3; B = 6 ; C = 2 ; K = 5; L = 4; M = 3
a.
b.
c.
d.
e.
64
Modul Praktikum
2. Dari program dibawah ini, bagaimanakah keluaran yang dihasilkan
#include<stdio.h>
#include<conio.h>
main( )
{
int a = 21;
clrscr( );
printf("\n Nilai a = %d",a);
printf("\n Nilai a++ = %d",a++);
printf("\n Nilai ++a = %d",++a);
printf("\n Nilai --a = %d",--a);
printf("\n Nilai a = %d",a);
a+=3;
printf("\n Nilai a = %d",a);
printf("\n Nilai ++a = %d",++a);
printf("\n Nilai a++ = %d",a++);
printf("\n Nilai --a = %d",--a);
printf("\n Nilai a-- = %d",a--);
getch( );
}
3. Buatlah program untuk menghitung panjang kata berikut ini:
Akademi Manajemen Informatika dan Komputer Bina Sarana Informatika
4. Buatlah program untuk membalik kata berikut ini :
Akademi Manajemen Informatika dan Komputer Bina Sarana Informatika
Menjadi seperti berikut :
akitamrofnI anaraS aniB retupmoK and akitamrofnI nemejanaM imedakA
5. Buatlah program untuk menggabungkan dua buah string
Kalimat1 = Manajemen
Kalimat2 = Informatika
Menjadi seperti berikut:
ManajemenInformatika
6. Diberikan kalimat string berikut :
Kalimat1 = "35.6"
Kalimat2 = "12.5"
Kemudian kedua kalimat diatas dihitung menjadi perhitungan :
a. Perkalian
b. Pembagian
c. Penambahan
d. Pengurangan
e. Mencari sisa hasil pembagian
65
Modul Praktikum
BORLAND
C++
Operasi
Penyeleksian Kondisi
4.1. Pernyataan IF
Pernyataan if mempunyai pengertian, Jika kondisi bernilai benar, maka
perintah akan dikerjakan dan jika tidak memenuhi syarat maka akan diabaikan.
Dari pengertian tersebut dapat dilihat dari diagram alir berikut:
salah
kondisi
benar
perintah
66
Modul Praktikum
Contoh-1
#include<stdio.h>
#include<conio.h>
#include<iostream.h>
main( )
{
float x,y;
clrscr( );
cout<<" Masukkan Nilai Positif atau Negatif "<<endl;
cout<<" Nilai X : ";cin>>x;
cout<<" Nilai Y : ";cin>>y;
if ((x >= 0 ) && (y>=0))
cout<<"X dan Y Bernilai POSITIF "<<endl;
getch( );
}
kondisii
Salah
Benar
Perintah-1
Perintah-2
Modul Praktikum
Perintah-1 dan perintah-2 dapat berupa sebuah pernyataan tunggal, pernyataan
majemuk atau pernyataan kosong. Jika pemakaian if-else diikuti dengan pernyataan
majemuk, bentuk penulisannya sebagai berikut :
if (kondisi)
{
perintah-1;
...
}
else
{
perintah-2;
...
}
Contoh
Menentukan besarnya diskon dan bonus dari jumlah beli, dengan kriteria :
- jika jumlah beli > 15 maka diskon 5% dan bonusnya : payung
- selain itu tidak dapat diskon dan bonus
contoh-2
68
Modul Praktikum
Output yang akan dihasilkan, dari program contoh-2 diatas adalah :
#include<stdio.h>
#include<conio.h>
#include<iostream.h>
main( ) {
char kode,ukuran,merk[15];
long harga=0;
69
Modul Praktikum
clrscr( );
cout<<"Kode Baju : ";cin>>kode;
cout<<"Ukuran : ";cin>>ukuran;
if (kode = ='1')
{
strcpy(merk,"H & R");
if (ukuran= ='S' || ukuran = ='s')
harga=45000;
else if (ukuran= ='M' || ukuran = ='m')
harga=60000;
else
harga = 0;
}
else if (kode=='2')
{
strcpy(merk," Adidas");
if (ukuran=='S' || ukuran == 's')
harga=65000;
else if (ukuran= ='M' || ukuran = ='m')
harga=75000;
else
harga = 0;
}
else
cout<<Salah Kode Baju<<endl;
cout<<"------------------------"<<endl;
cout<<"Merk Baju : "<<merk<<endl;
cout<<"Harga Baju : "<<harga<<endl;
getch();
}
Output yang akan dihasilkan, dari program contoh-3 diatas adalah :
70
Modul Praktikum
Contoh-4
#include<stdio.h> #include<conio.h>
#include<iostream.h>
main( ) {
float pendapatan, jasa=0, komisi=0, total=0;
clrscr( );
cout<<"Pendapatan Hari ini Rp. ";
cin>>pendapatan;
71
Modul Praktikum
if (pendapatan >= 0 && pendapatan <= 200000)
{
jasa=10000;
komisi=0.1*pendapatan;
}
else if(pendaptan<=500000)
{
jasa=20000;
komisi=0.15*pendapatan;
}
else
{
jasa=30000;
komisi=0.2*pendapatan;
}
/* menghitung total */
total = komisi+jasa;
cout<<"Uang Jasa Rp. "<<jasa<<endl;
cout<<"Uang Komisi Rp. "<<komisi<<endl;
cout<<"============================="<<endl;
cout<<"Hasil Total Rp. "<<total<<endl;
getch( );
}
Output yang akan dihasilkan, dari program contoh-4 diatas adalah :
72
Modul Praktikum
Setiap pilihan akan dijalankan jika syarat nilai konstanta tersebut dipenuhi
dan default akan dijalankan jika semua cabang diatasnya tidak terpenuhi.
Pernyataan break menunjukan bahwa perintah siap keluar dari switch. Jika
pernyataan ini tidak ada, maka program akan diteruskan ke pilihan-pilihan yang
lainnya.
Contoh-5
#include<stdio.h>
#include<conio.h>
#include<iostream.h>
main( )
{
int kode;
clrscr( );
cout<<"Masukkan Kode Jurusan [11/12/13] : ";
cin>>kode;
switch(kode)
{
case 11 :
cout<<"Komputerisasi Akuntansi";
break;
case 12 :
cout<<"Manajemen Informatika";
break;
73
Modul Praktikum
case 13 :
cout<<"Tehnik Komputer";
break;
default:
cout<<"Anda Salah Memasukan kode";
break;
}
getch( );
}
Output yang akan dihasilkan, dari program contoh-5 diatas adalah :
#include<stdio.h>
#include<conio.h>
#include<iostream.h>
main( ) {
char kode;
clrscr( );
cout<<"Masukkan Kode Barang [A..C] : ";
cin>>kode;
switch(kode)
{
case 'A' :
case 'a' :
cout<<"Alat Olah Raga";
break;
case 'B' :
case 'b' :
cout<<"Alat Elelktronik";
break;
case 'C' :
case 'c' :
cout<<"Alat Masak";
break;
74
Modul Praktikum
default:
cout<<"Anda Salah Memasukan kode";
break;
}
getch( );
}
Output yang akan dihasilkan, dari program contoh-6 diatas adalah :
4.3. Tugas 3
1. Buatlah program untuk menghitung nilai rata-rata dari seorang siswa, dengan
ketentuan sebagai berikut :
Nama Siswa, Nilai Pertandingan I, Nilai Pertandingan II, Nilai
Pertandingan III diinput.
Nilai Rata-rata merupakan hasil dari Nilai Pertandingan I, II dan III
dibagi dengan 3.
Ketentuan Juara
Jika nilai rata-rata yang dihasilkan lebih besar dari 80, maka menjadi
Juara I
Jika nilai rata-rata yang dihasilkan lebih besar dari 75, maka menjadi
Juara II
Jika nilai rata-rata yang dihasilkan lebih besar dari 65, maka menjadi
Juara III
Selain itu tidak juara
Tampilan yang diinginkan sebagai berikut:
Layar Masukkan
PROGRAM HITUNG NILAI RATA-RATA
Nama Siswa
:
Nilai Pertandingan I
III
:
: Nilai Pertandingan II
: Nilai Pertandingan
75
Modul Praktikum
Layar Keluaran
Siswa yang bernama ...
Memperoleh nilai rata-rata ... dan menjadi juara ke-... dari hasil perlombaan
yang diikutinya.
2.
Buatlah program untuk menghitung nilai akhir seorang siswa dari kursus
yang diikutinya. Dengan ketentuan sebagai berikut :
Nama Siswa, Nilai Keaktifan, Nilai Tugas dan Nilai Ujian diinput.
Proses yang dilakukan untuk mendapatkan nilai murni dari
masing-masing nilai, adalah
Nilai Murni Keaktifan = Nilai Keaktifaan dikalikan dengan 20%.
Nilai Murni Tugas = Nilai Tugas dikalikan dengan 30%
Nilai Murni Ujian = Nilai Ujian dikalikan dengan 50%
Nilai Akhir adalah Nilai Murni Keaktifan + Nilai Murni Tugas + Nilai
Murni Ujian
Ketentuan Nilai Huruf
Jika nilai Akhir yang dihasilkan lebih besar dari 80, maka mendapat
grade A
Jika nilai Akhir yang dihasilkan lebih besar dari 70, maka mendapat
grade B
Jika nilai Akhir yang dihasilkan lebih besar dari 56, maka mendapat
grade C
Jika nilai Akhir yang dihasilkan lebih besar dari 46, maka mendapat
grade D
Selain itu mendapat grade E
Tampilan yang diinginkan sebagai berikut :
Layar Masukkan
PROGRAM HITUNG NILAI AKHIR
Nama Siswa
Nilai Keaktifan
: ...
: ... Nilai Tugas
: ... Nilai Ujian
: ...
Layar Keluaran
Siswa yang bernama
Dengan Nilai Persentasi Yang dihasilkan.
Nilai Keaktifan * 20% : ... Nilai Tugas
: ... Nilai Ujian
: ...
* 30%
* 50%
Jadi Siswa yang bernama ... memperoleh nilai akhir sebesar .... dengan grade ...
76
Modul Praktikum
3. PT. DINGIN DAMAI, memberi gaji pokok kepada karyawan kontraknya
sebesar Rp. 300,000 perbulan, dengan memperoleh tunjangan-tunjangan sebagai
berikut :
Tunjangan Jabatan
Golongan
Persentase 1
5%
2
10%
3
15%
Logikanya : Jika seorang karyawan tersebut dengan golongan 3, maka
mendapatkan tunjangan sebesar 15% * Rp. 300,000
Tunjangan Pendidikan
Tingkat
SMA
Persentase Pendidikan
2.5% D1
5%
D3
20%
S1
30%
Jika seorang karyawan tersebut dengan Tingkat Pendidikan S1, maka
mendapatkan tunjangan pendidikan sebesar 30% * Rp. 300,000
Honor Lembur
Jumlah jam kerja normal sebanyak 8 jam, Honor lembur diberikan jika jumlah
jam kerja lebih dari 8 jam, maka kelebihan jam kerja tersebut dikalikan dengan
Rp. 3500 untuk setiap kelebihan jam kerja karyawan tersebut.
Tampilan yang diinginkan sebagai berikut :
Layar Masukkan
PROGRAM HITUNG GAJI KARYAWAN
Nama Karyawan: ...
Golongan Jabatan : ... Pendidikan
Layar Keluaran
Karyawan yang bernama Honor yang diterima
Tunjangan Jabatan
Rp ... Tunjangan Pendidikan
Lembur
Rp .
Total Gaji
lembur)
Rp ... Honor
+
Rp ... (Gaji pokok + tunjangan +
77
Modul Praktikum
BORLAND
C++
Proses
Perulangan
/* --------------------------- */
/* Program for - bilangan naik */ /* --------------------------- */
#include<stdio.h>
#include<conio.h>
#include<iostream.h>
main( )
{
int a;
clrscr( );
78
Modul Praktikum
for(a = 1; a <= 10; ++a)
cout>>a;
getch( );
}
Output yang akan dihasilkan, dari program contoh-1 diatas adalah :
/* ---------------------------- */
/* Program for - bilangan turun */ /*
---------------------------- */
# include <stdio.h>
# include <conio.h>
#include<iostream.h>
main( )
{
int a;
clrscr( );
for(a = 10; a >= 1; --a)
cout<<a;
getch( ); }
/* ----------------------------- */
/* Program for - bilangan ganjil */ /
* ----------------------------- */
#include <stdio.h>
#include <conio.h>
#include<iostream.h>
main( )
79
Modul Praktikum
{
int a;
clrscr( );
for(a = 1; a <= 10; a+=2)
cout<<a;
getch( );
}
Output yang akan dihasilkan, dari program contoh-3 diatas adalah :
80
Modul Praktikum
Contoh-4
/* ------------------------- */
/* Program for - Nested for */
/* ------------------------- */
#include<stdio.h>
#include<conio.h>
main( )
{
int a, b;
clrscr( );
for(a = 1; a <= 5; a++)
{
printf("\n");
for(b = a; b <= 5; b++)
printf(" %d ",a);
}
getch();
}
/* ------------------------- */
/* Program for Tdk Berhingga */ /* ------------------------- */
#include<stdio.h>
#include<conio.h>
main( )
{
int bil;
clrscr( );
81
Modul Praktikum
for (bil = 60; bil >=10; bil++)
printf("%d", bil);
getch( );
}
Output yang akan dihasilkan, dari program contoh-6 diatas adalah :
/* ------------------------------ */
/* Program dengan pernyataan goto */ /*
------------------------------ */
#include<iostream.h>
#include<stdio.h>
#include<conio.h>
main( )
82
Modul Praktikum
{
int a, b;
char lagi;
atas: // deklarasi label
clrscr( );
cout>>"Masukkan Bilangan = "; cin<<a;
b = a % 2;
printf("Nilai %d %% 2 adalah = %d",a, b);
printf("\n\nIngin Hitung Lagi [Y/T] : ");
lagi = getche() ;
if (lagi == 'Y' || lagi == 'y')
goto atas; // penggunaan label
getch( );
}
Output yang akan dihasilkan, dari program contoh-6 diatas adalah :
83
Modul Praktikum
Contoh-7
/* ------------------- */
/* Program while01.cpp */ /* ------------------- */
#include <stdio.h> #include <conio.h> main( )
{
int bil=1;
clrscr( );
while(bil<=10)
{
printf(" %d ",bil);
++bil;
}
getch( ); }
/* ------------------- */
/* Program while02.cpp */ /* ------------------- */
#include <stdio.h>
#include <conio.h>
main( )
{
int bil=2;
clrscr( );
while(bil<=10)
{
printf(" %d ",bil);
bil+=2;
}
getch( );
}
84
Modul Praktikum
Contoh-9
/* ------------------ */
/* Program do - while */
/* ------------------ */
#include <stdio.h>
#include <conio.h>
main( )
{
int bil=2;
clrscr( );
do
{
printf(" %d ",bil);
bil+=2;
}
while(bil<=10);
getch( );
}
85
Modul Praktikum
/* ------------------------------- */
/* Program do - while dengan break */
/* ------------------------------- */
#include <stdio.h>
#include <conio.h>
main( )
{
int bil = 1;
clrscr( );
do
{
if (bil >= 6)
break;
printf(" %d ",bil);
}
while(bil++);
getch( );
}
86
Modul Praktikum
Contoh-11
/* ----------------------------- */
/* Perulangan FOR dengan break; */
/* ----------------------------- */
#include <stdio.h>
#include <conio.h>
main( )
{
int a=3, b=2, c=1, bil;
clrscr( );
printf("Bil-A | Bil-B | Bil-C\n");
printf("-------------------------");
for(bil=1; bil<=10; ++bil)
{
a+=b; b+=c; c+=2;
printf("\n%d \t| %d \t| %d",a, b, c);
if(c==13)
break;
}
getche( );
}
Output yang akan dihasilkan, dari program contoh-11 diatas adalah :
/* ----------------------------- */
/* Perulangan FOR dengan coninue */ /* ----------------------------*/
#include <stdio.h> #include <conio.h>
main( )
87
Modul Praktikum
{
int bil;
clrscr( );
for(bil=1; bil<=10; ++bil)
{
if(bil==6)
continue;
printf(" %d ",bil);
}
getch( );
}
Output yang akan dihasilkan, dari program contoh-12 diatas adalah :
5.7. Tugas 4
Buatlah beberapa program seperti petunjuk berikut :
1.
2.
3.
4.
Modul Praktikum
BORLAND
C++
Array
Variabel Larik atau lebih dikenal dengan ARRAY adalah Tipe terstruktur
yang terdiri dari sejumlah komponen-komponen yang mempunyai tipe sama. Suatu
Array mempunyai jumlah komponen yang banyaknya tetap. Banyaknya komponen
dalam suatu larik ditunjukan oleh suatu indek untuk membedakan variabel yang satu
dengan variabel yang lainnya.
Variabel array dalam Borland C++, dapat digolongkan menjadi dua buah dimensi:
Array Berdimensi Satu.
Array Berdimensi Dua
89
Modul Praktikum
Elemen Array
elemen
elemen
elemen
elemen
elemen
elemen
Subcript/Index
ARRAY NIL_AKHIR
Subscript atau Index array pada C++, selalu dimulai dari Nol ( 0 )
/* ---------------------------------- */
/* Inisialisasi Array Dimensi 1 */ /* ---------------------------------*/
#include <conio.h>
#include <iostream.h>
main( ) {
char hari[7][10] =
{"Minggu","Senin","Selasa","Rabu","Kamis","jum'at","Sabtu"};
clrscr( );
cout<<"Nama-nama hari:"<<endl;
cout<<hari[0]<<endl<<hari[1]<<endl<<hari[2]<<endl<<hari[3]
<<endl<<hari[4]<<endl;
getch();
}
90
Modul Praktikum
Contoh
Contoh-2
/* ---------------------------- */
/* Program Array Satu Dimensi */ /* ---------------------------*/
#include<conio.h>
#include<stdio.h>
#include<iostream.h>
#include<iomanip.h>
main( ) {
int i;
char nama[5][20]; float nilai1[5]; float nilai2[5]; float
hasil[5]; clrscr( );
for(i=1;i<=2;i++) {
cout<<"Data Ke - "<<i<<endl;
cout<<"Nama Siswa : "; gets(nama[i]);
cout<<"Nilai MidTest : "; cin>>nilai1[i]; cout<<"Nilai
Final : "; cin>>nilai2[i];
hasil[i] = (nilai1[i] * 0.40)+ (nilai2[i] * 0.60);
cout<<endl;
}
cout<<"------------------------------------------"<<endl;
cout<<"No. Nama Siswa Nilai Nilai ";
cout<<"Hasil"<<endl;
cout<<" MidTest Final ";
cout<<"Ujian"<<endl;
cout<<"------------------------------------------"<<endl;
for(i=1;i<=2;i++)
{
cout<<setiosflags(ios::left)<<setw(4)<<i;
cout<<setiosflags(ios::left)<<setw(10)<<nama[i];
cout<<setprecision(2)<<" "<<nilai1[i];
91
Modul Praktikum
cout<<setprecision(2)<<" "<<nilai2[i];
cout<<setprecision(2)<<" "<<hasil[i]<<endl;
}
cout<<"------------------------------------------"<<endl;
getch();
}
Output yang akan dihasilkan, dari program contoh-2 diatas adalah:
Tahun Penjualan
2001
2002
2003
150
159
230
100
125
150
210
125
156
92
Modul Praktikum
Jika anda lihat dari tabel 7.1 diatas maka dapat dituliskan kedalam array dimensi dua
berikut:
int data_jual[3][3];
Jumlah Kolom
Jumlah Baris
Nama Array
Tipe data elemen array
#include <conio.h>
#include <iostream.h>
main() {
char nama[2][3][10]={{"Pak","BU","Mas"},
{"Andi","Budi","Carli"}};
clrscr();
cout<<nama[0][0]<<ends<<nama[1][0]<<endl;
cout<<nama[0][1]<<ends<<nama[1][2]<<endl;
cout<<nama[0][2]<<ends<<nama[1][1]<<endl;
getch(); }
/* -------------------- */
/* Array Dimensi 2 */ /* -------------------- */
93
Modul Praktikum
#include<conio.h>
#include<stdio.h>
#include<iostream.h>
#include<iomanip.h>
main()
{
int i, j;
int data_jual[4][4];
clrscr();
for(i=1;i<=3;i++)
{
for(j=1;j<=3;j++)
{
cout<<"Data Ke - "<<i<<" "<<j<<endl;
cout<<"Jumlah Penjulan : ";
cin>>data_jual[i][j];
}
}
cout<<"Data Penjualan Pertahun"<<endl;
cout<<"-----------------------"<<endl;
cout<<"NO 2007 2008 2093"<<endl;
cout<<"-----------------------"<<endl;
for(i=1;i<=3;i++) {
cout<<setiosflags(ios::left)<<setw(5)<<i;
for(j=1;j<=3;j++)
{
cout<<setiosflags(ios::right)<<setw(4);
cout<<data_jual[i][j];
cout<<" ";
}
cout<<endl;
}
cout<<"-----------------------"<<endl;
getch( );
}
Output yang akan dihasilkan, dari program contoh-4 diatas adalah:
94
Modul Praktikum
/* -------------------------------- */
/* Selection sort dengan C++ */ /* -------------------------------- */
#include<conio.h>
#include<stdio.h>
int main() {
int i, j, iMin;
int n, Urut;
int Tmp, code;
int Arr[100];
95
Modul Praktikum
printf("\nInputkan banyak data yang akan diurutkan : ");
scanf("%i", &n);
Urut = 1;
for(i = 0; i < n; i++) {
printf("Masukan data ke %i : ", i + 1);
scanf("%i", &Arr[i]);
}
for(i = 0; i < n - 1; i++) {
iMin = i;
for(j = Urut; j < n; j++) {
if(Arr[j] < Arr[iMin]) {
iMin = j;
if(Arr[i] != Arr[iMin]) {
Tmp = Arr[i];
if(Arr[i] > Arr[iMin]) {
Arr[i] = Arr[iMin];
Arr[iMin] = Tmp;
}
}
}
}
Urut = Urut + 1;
}
printf("\nSetelah Pengurutan\n");
for(i = 0; i < n; i++) {
printf("Elemen ke %i : %i\n", i + 1, Arr[i]);
}
getch();
}for(i = 0; i < n - 1; i++) {
iMin = i;
for(j = Urut; j < n; j++) {
if(Arr[j] < Arr[iMin]) {
iMin = j;
if(Arr[i] != Arr[iMin]) {
Tmp = Arr[i];
if(Arr[i] > Arr[iMin]) {
Arr[i] = Arr[iMin];
Arr[iMin] = Tmp;
}}
}
}
Urut = Urut + 1;
}
printf("\nSetelah Pengurutan\n");
for(i = 0; i < n; i++) {
printf("Elemen ke %i : %i\n", i + 1, Arr[i]);
}
getch(); }
96
Modul Praktikum
b. Buble Sort
Prinsip Kerja dari Bubble Sort adalah :
1. Pengecekan mulai dari data ke-1 sampai data ke-n
2. Bandingkan data ke-n dengan data sebelumnya (n-1)
3. Jika lebih kecil maka pindahkan bilangan tersebut dengan bilangan yg ada
didepannya ( sebelumnya ) satu persatu (n-1,n-2,n-3,....dst)
4. Jika lebih besar maka tidak terjadi pemindahan
5. Ulangi langkah 2 dan 3 s/d sort optimal.
#include<conio.h>
#include<stdio.h>
int main() {
int i, j, iMin;
int n, Urut;
int Tmp, code;
int Arr[100];
printf("\nInputkan banyak data yang akan diurutkan : "); scanf("%i", &n);
for(i = 0; i < n; i++) {
printf("Masukan data ke %i : ", i + 1);
scanf("%i", &Arr[i]);
}
for(i = 1; i < n; i++) {
for(j = 0; j < n - 1; j++) {
if(Arr[j] > Arr[j + 1]) {
Tmp = Arr[j];
Arr[j] = Arr[j + 1];
Arr[j + 1] = Tmp;
}
}
}
printf("\nSetelah Pengurutan\n");
for(i = 0; i < n; i++) {
printf("Elemen ke %i : %i\n", i + 1, Arr[i]);
}
getch();
}
c.
Insertion Short
97
Modul Praktikum
#include "conio.h"
#include "stdio.h"
int main( ) {
int i, j, iMin;
int n, Urut;
int Tmp, code;
int Arr[100];
printf("\nInputkan banyak data yang akan diurutkan : ");
scanf("%i", &n);
for(i = 0; i < n; i++)
{
printf("Masukan data ke %i : ", i + 1);
scanf("%i", &Arr[i]);
}
for(i = 1; i < n; i++)
{
Tmp = Arr[i];
j = i - 1;
while(Arr[j] >= Tmp && j > 0) {
Arr[j + 1] = Arr[j];
j = j - 1;
}
if(Tmp >= Arr[j]) {
Arr[j + 1] = Tmp;
} else {
Arr[j + 1] = Arr[j];
Arr[j] = Tmp;
}
}
printf("\nSetelah Pengurutan\n");
for(i = 0; i < n; i++) {
printf("Elemen ke %i : %i\n", i + 1, Arr[i]);
}
getch( );
}
98
Modul Praktikum
8.4. TUGAS 5
1. Sebuah perusahaan ayam goreng dengan nama GEROBAK FRIED
CHICKEN yang telah lumayan banyak pelanggannya, ingin dibantu dibuatkan
program untuk membantu kelancaran usahaannya.
GEROBAK FRIED CHICKEN mempunyai daftar harga ayam sebagai
berikut :
Kode JenisPotong Harga
---------------------------------D
Dada Rp. 2500
P
Paha Rp. 2000
S
Sayap Rp. 1500
---------------------------------Buatlah programnya dengan ketentuan:
Setiap pembeli dikenakan pajak sebesar 10% dari pembayaran.
Banyak Jenis, Jenis Potong dan Banyak Beli diinput.
Tampilan yang diinginkan sebagai berikut:
Layar Masukkan
GEROBAK FRIED CHICKEN
-------------------------------------Kode JenisPotong Harga
-------------------------------------D
Dada
Rp. 2500
P
Paha
Rp. 2000
S
Sayap
Rp. 1500
-------------------------------------Banyak Jenis : ... <diinput>
Jenis Ke - ... <proses counter> Kode Potong [D/P/S] : ...
<diinput>
Banyak Potong : ... <diinput>
<<Terus berulang tergantung Banyak Jenis>>
Layar Keluaran
GEROBAK FIRED CHICHEN
------------------------------------------------------------No. Jenis
Harga Bayak Jumlah
Potong
Satuan Beli
Harga
------------------------------------------------------------... .
....
....
Rp ....
... .
....
....
Rp ....
-----------------------------------------------------------Jumlah Bayar Rp .... Pajak 10%
Rp .... Total Bayar Rp ....
99
Modul Praktikum
2. PT. STAY COOL, memberikan Honor tetap kepada karyawan kontraknya
sebesar Rp. 700,000,- per bulan, dengan memperoleh tujangan-tunjangan
sebagai berikut:
Tunjangan Jabatan
Golongan
1
2
3
Persentase
5%
10%
15%
Honor Lembur Jumlah jam kerja normal dalam satu bulan sebanyak 240 Jam
Kerja. Honor lembur diberikan jika jumlah jam kerja sebih dari 240 jam,
maka kelebihkan jam kerja tersebut dikalikan dengan honor lembur perjam
sebesar Rp. 2,500 untuk setiap kelebihan jam kerja dalam satu bulannya.
Pendapatan Bersih = Honor tetap + Tunjangan Jabatan+Honor lembur Pajak
10%
Total Gaji yang dikeluarkan = akumulasi dari pendapatan bersih karyawan
Tampilan yang diinginkan sebagai berikut :
Layar Masukkan dan Keluaran
Program Hitung Honor Karyawan Kontrak PT. STAY COOL
Masukkan Jumlah Karyawan : ... <diinput> Karyawan Ke - ... <proses counter>
Nama Karyawan : ... <di input> Golongan (1/2/3) : ... <di input>
Jumlah Jam Kerja : ... <di input>
<<Terus berulang tergantung Jumlah Karyawan>>
PT. STAY COOL
------------------------------------------------------------------------------------------No. Nama
Tunjangan
Karyawan
Jabatan
Honor
Pendapatan
Lembur Pajak Bersih
------------------------------------------------------------------------------------------... .
.
.....
.....
........
... .
.
.....
.....
........
-----------------------------------------------------------------------------------------Total Gaji yang dikeluarkan Rp. ........
100
Modul Praktikum
Pointer
BORLAND
C++
Merupakan sebuah variabel yang berisi alamat dari variabel lain. Suatu
pointer dimaksudkan untuk menunjukan ke suatu alamat memori sehingga alamat
dari suatu variabel dapat diketahui dengan mudah.
101
Modul Praktikum
Contoh-1
//----------------------------------//
//Pendeklarasian Pointer Konstanta //
//----------------------------------//
#include<stdio.h>
#include<conio.h>
#include<iostream.h>
102
Modul Praktikum
void main( )
{
char *const nama = "Borland C++";
clrscr( );
cout<<"Nama Program = "<<nama<<endl;
nama = "Visual C++";
cout<<"Nama Program = "<<nama<<endl;
getch( );
}
Pada program diatas, terdapat kesalahan dan tidak dapat dijalankan, penyebabnya
pada pernyataan nama = "Borland C++";. Karena variabel nama, merupakan
pointer konstanta, yaitu tidak dapat diubah-ubah. Pesan Kesalahan Yang Tampil
adalah:
Cannot modify a const object
Error Message yang akan dihasilkan, dari program contoh-1 diatas adalah:
Contoh-2
//-------------------------------//
//Penggunaan Pointer Dereference //
//-------------------------------//
#include<stdio.h>
#include<conio.h>
#include<iostream.h>
main( ) {
int ilham, amir, *raka; clrscr( );
ilham = 75;
amir = ilham;
103
Modul Praktikum
raka = &ilham;
cout<<"Nilai ILHAM = "<<ilham<<endl;
cout<<"Nilai AMIR = "<<amir<<endl;
cout<<"Nilai RAKA = "<<raka<<endl;
getch();
}
Output yang akan dihasilkan, dari program contoh-2 diatas adalah:
//-----------------------------//
//Penggunaan Pointer Reference //
//-----------------------------//
#include<stdio.h>
#include<conio.h>
#include<iostream.h>
main( ) {
int ilham, *raka, rafli;
clrscr( );
ilham = 75;
raka = &ilham;
rafli = *raka;
cout<<"Nilai ILHAM = "<<ilham<<endl;
cout<<"Nilai RAKA = "<<raka<<endl;
cout<<"Nilai RAFLI = "<<rafli<<endl; getch( );
}
Modul Praktikum
// -----------------------------//
//Penggunaan Pointer to Pointer //
//------------------------------//
#include<stdio.h>
#include<conio.h>
#include<iostream.h>
main() {
int ilham;
int *raka; //pointer ke variabel int **amir; //pointer
pada pointer clrscr( );
ilham = 75;
cout<<"Nilai ILHAM = "<<ilham<<endl;
//-> Penugasan Ke Alamat Memori
raka = &ilham;
amir = &raka;
cout<<"Nilai RAKA Hasil Mengakses ILHAM = ";
cout<<*raka<<endl;
cout<<"Nilai AMIR Hasil Mengakses ILHAM = ";
cout<<**amir<<endl;
getch( );
}
Output yang akan dihasilkan, dari program contoh-5 diatas adalah:
105
Modul Praktikum
//------------------------------//
//Penggunaan Pointer to Array // //------------------------------//
#include<stdio.h>
#include<conio.h>
#include<iostream.h>
main( )
{
int i;
int nilai[5];
int *ptrnilai; ptrnilai = nilai; for(i=1;i<=5;i++) {
cout<<"Masukan Nilai Pertama = "; cin>>nilai[i];
}
cout<<endl;
cout<<"Hasil Pengaksesan Elemen Array Lewat";
cout<<"Pointer";
cout<<endl<<endl;
for(i=1;i<=5;i++)
{
cout<<"Elemen "<<i<<". Nilai "<<nilai[i]; cout<<",
Menempati Alamat Memori = "; cout<<&ptrnilai[i];
cout<<endl;
}
getche( );
}
Output yang akan dihasilkan, dari program contoh-6 diatas adalah:
106
Modul Praktikum
/* ------------------- */
/* Pointer pada String */ /* ------------------- */
#include <iostream.h>
#include <conio.h>
main( ) {
char band_metal[ ] = "SEPULTURA";
char *band_punk = "RANCID";
cout<<"Nama Band Metal = "<<band_metal<<endl;
cout<<"Nama Band Punk = "<<band_punk;
band_punk+=3; //menambah nilai penunjuk / pointer
cout<<"Nama Band Metal = "<<band_metal<<endl;
cout<<"Nama Band Punk = "<<band_punk;
getche( );
}
107
Modul Praktikum
Output yang akan dihasilkan, dari program contoh-7 diatas adalah:
5 6
108
Modul Praktikum
BORLAND
C++
Macro
Dan File Header
Didalam penyusunan suatu makro ada beberapa hal yang perlu dipelajari
adalah:
8.1.1. # define
Digunakan untuk mendefinisikan suatu nilai tertentu kepada suatu nama
konstanta. Bentuk umum dari preprocessor directive #define ini adalah:
#define nama_konstanta teks
Contoh :
Teks
#define A 6
Nama_Konstanta
Dalam pendeklarasian preprocessor directive #define, Nama_Konstanta
sebaiknya ditulis dengan menggunakan huruf besar, guna untuk membedakannya
dengan nama_variabel. Sedangkan Teks merupakan suatu nilai yang diberikan pada
nama_konstanta. Teks dapat berupa:
Numerik
Karakter
String
Pernyataan
Fungsi Sederhana
109
Modul Praktikum
Setelah #define ditentukan didalam program cukup dituliskan
nama_konstantanya saja. # define akan mengganti semua nama konstanta tadi
dengan teksnya sebelum proses kompilasi dimulai.
Contoh-1
/* ----------------------------------- */
/* Program Penggunaan #define */ /*
------------------------------------ */
#include<stdio.h>
#include<conio.h>
#include<iostream.h>
#define PI 3.141592
#define L(n) PI*n*n
main( ) {
clrscr();
cout<<"Luas Lingkaran dengan : "<<endl; cout<<"Jari-jari =
5 adalah "<<L(5)<<endl; cout<<"Jari-jari = 10 adalah
"<<L(10)<<endl; getche( );
}
Output yang akan dihasilkan, dari program contoh-1 diatas adalah:
/* ----------------------------------- */
/* Program Penggunaan #define */
/* ----------------------------------- */
#include<stdio.h>
#include<conio.h>
#include<iostream.h>
#define awal {
#define akhir }
#define mulai() main()
#define cetak cout
#define masuk cin
#define hapus() clrscr()
#define tahan() getch()
#define LS_KUBUS (sisi*sisi)
mulai( ) awal
110
Modul Praktikum
int sisi, ls_kubus;
hapus( );
cetak<<"Program Penggunaan #define"<<endl;
cetak<<"Masukkan Nilai Sisi Kubus = ";
masuk>>sisi;
ls_kubus = LS_KUBUS;
cetak<<"Luas Kubus adalah : "<<ls_kubus;
tahan( );
akhir
Output yang akan dihasilkan, dari program contoh-2 diatas adalah:
8.1.2. # include
Preprocessor #include telah dibahas pada bab sebelumnya, yaitu berfungsi
untuk memasukkan atau menyertakan file-file header kedalam program yang akan
dibuat. Dalam penulisan #include ada dua bentuk penulisan :
#include "nama_file_header"
atau
#include <nama_file_header>
Pada bentuk penulisan #include mempunyai arti yang berbeda, yaitu:
#include "nama_file_header"
Pertama kali compiler akan mencari file header yang disebutkan pada directori
yang sedang aktif dan apa bila tidak ditemukan akan mencari pada directori
dimana file header tersebut berada .
#include <nama_file_header>
Pertama kali compiler akan mencari file header yang disebutkan pada directori
yang ada file headernya, kecuali pada directori yang sedang aktif.
8.1.3. # if - #endif
Preprocessor #if - #endif digunakan untuk mengkompilasi jika pernyataan
kondisi pada #if bernilai benar, jika tidak maka, diabaikan. Pernyataan kondisi
berupa ekspresi konstanta yang dideklarasikan dengan #define.
Benuk Penulisan #if ekspresi-konstanta
penyataan;
#endif
111
Modul Praktikum
Contoh-3
/***********************
Penggunaan #if - #endif
***********************/ #include <conio.h>
#include <stdio.h>
#define N 4
main( )
{
#if N > 0
printf("Lebih Besar dari Nol"); #endif
getch( );
}
/******************************
Penggunaan #if - #else - #endif
******************************/ #define N -4
main( )
{
#if N > 0
printf("Lebih Besar dari Nol");
#else
printf("Lebih Kecil dari Nol");
#endif }
112
Modul Praktikum
Hasil dari program contoh-4 diatas adalah:
8.1.5. # elif
Preprocessor #elif digunakan untuk mengkompilasi dari pernyataan
bertingkat. Dalam hal ini #elif sama halnya seperti #elseif, merupakan kombinasi
dari #if dan #else. Perintah dijalankan sesuai dengan kondisi yang telah ditentukan,
Hasil hanya dapat dijalankan sesuai dengan ketentuan yang benar. Bentuk #elif
diikuti oleh ekspresi-konstanta.
Benuk Penulisan #if ekspresi-konstanta-1
Penyataan-1;
#elif ekspresi-konstanta-2
Penyataan-2;
# elif ekspresi-konstanta-n
Penyataan-n; #endif
Contoh-5
/*****************
Penggunaan #elif
******************/ #define N 12
main( )
{
#if N > 10
printf("Lebih Besar dari Sepuluh"); #elif N == 10
printf("Sama Dengan Sepuluh ");
#else N < 10
printf("Lebih Kecil dari Sepuluh"); #endif
}
Hasil dari program contoh-5 diatas adalah:
Modul Praktikum
8.1.6. #undef
Preprocessor #undef digunakan untuk menghilangkan nilai yang telah
didefiniskan dari daftar definisi.
Contoh-6
114
Modul Praktikum
Contoh-7
115
Modul Praktikum
Sebagai latihan berikut ini akan dibuatkan suatu file header sendiri yang akan
digunakan pada file editor.
Buatlah program file heder dibawah ini, kemudian simpan dengan nama : atur.h,
pada folder kerja anda folder include.
Contoh-8
/* atur.h
contoh pembuatan file header untuk pengaturan.
*/
#define awal {
#define akhir }
#define mulai( ) main( ) #define cetak cout
#define tampil cprintf
#define masuk scanf
#define hapus( ) clrscr( ) #define jika if
#define warna textcolor #define tahan getche( )
/* ---------------------------------- */
/* program dengan file header sendiri */ /*
---------------------------------- */
#include<stdio.h>
#include<conio.h>
#include<iostream.h>
#include"atur.h"
mulai( )
awal
int a, b, c;
hapus( );
warna(4);
tampil("\nPROGRAM PENJUMLAHAN\n"); cout<<endl;
cout<<"Masukkan Nilai A = ";
cin>>a;
cout<<"Masukkan Nilai B = ";
cin>>b;
c=a+b;
cout<<"Hasil dari "<<a<<" + "<<b<<" = "<<c; tahan;
akhir
Hasil dari program contoh-9 diatas adalah:
116
Modul Praktikum
8.3. Latihan
1. Buatlah program menghitung pangkat dua serta pangkat tiga dari sebuah bilangan
bulat dengan makro. Sebagai input adalah bilangan itu sendiri, sedangkan sebagai
output adalah pangkat dua serta pangkat tiga dari bilangan bulat tersebut.
2. Buatlah program menghitung luas dan keliling lingkaran. Proses berada didalam
file header, nama file header yang diinginkan : lingkaran.h
Tampilan Yang Diinginkan:
Masukkan Nilai Jari-jari : ... <di-input>
Luas Lingkaran : ... < hasil proses >
Keliling Lingkaran : ... < hasil proses >
3. Buatlah program menghitung nilai akhir perkuliahan pada suatu matakuliah,
dengan ketentuan sebagai berikut:
Nilai Absensi * 10 %
Nilai Tugas * 20 %
Nilai U.T.S * 30 %
Nilai U.A.S * 40 %
Untuk proses penilaian dilakukan didalam file header dan simpan nama file
header tersebut hitnilai.h.
Tampilan yang diinginkan:
Program Hitung Nilai Akhir Mata Kuliah
Masukkan Nilai Absensi : <di-input>
Masukkan Nilai Tugas : <di-input>
Masukkan Nilai U.T.S : <di-input>
Masukkan Nilai U.A.S : <di-input>
Nilai Murni Absensi = <data-inputan> * 10% = <hasil-proses>
Nilai Murni Tugas = <data-inputan> * 20% = <hasil-proses>
Nilai Murni U.T.S = <data-inputan> * 30% = <hasil-proses>
Nilai Murni U.A.S = <data-inputan> * 40% = <hasil-proses>
Nilai Akhir yang diperoleh sebesar : .. <hasil-proses>
117
Modul Praktikum
BORLAND
C++
Fungsi
118
Modul Praktikum
/* program utama */
main( )
{
clrscr( );
garis( ); //memanggil fungsi garis
cout<<"AMIK BSI - Pondok Labu"<<endl;
garis( ); //memanggil fungsi garis
getche( );
}
Output yang akan dihasilkan, dari program contoh-1 diatas adalah:
119
Modul Praktikum
Bentuk penulisan Parameter Formal dan Parameter Aktual.
main()
{
..
total(a, b);
..
}
parameter formal
120
Modul Praktikum
Output yang akan dihasilkan, dari program contoh-2 diatas adalah:
/* ------------------------ */
/* Penggunaan Call By Value */ /* Program Tambah Nilai */
/* ------------------------ */
#include<conio.h>
#include<stdio.h>
#include<iostream.h>
tambah(int m, int n);
main( ) {
int a, b;
a = 5;
b = 9;
clrscr( );
cout<<"Nilai Sebelum Fungsi Digunakan "; cout<<"\na =
"<<a<<" b = "<<b;
tambah(a,b);
cout<<"\nNilai Setelah Fungsi Digunakan"; cout<<"\na =
"<<a<<" b = "<<b;
getch( ) ;
}
tambah(int m, int n) {
m+=5;
n+=7;
cout<<"\n\n Nilai di dalam Fungsi Tambah( )";
121
Modul Praktikum
cout<<"\n m = "<<m<<" n = "<<n;
cout<<endl;
}
Output yang akan dihasilkan, dari program contoh-3 diatas adalah :
122
Modul Praktikum
cout<<"\n a = "<<a<<" b = "<<b;
getch( );
}
//blok program fungsi
tambah(int *c, int *d)
{
*c+=7;
*d+=5;
cout<<endl;
cout<<"\n Nilai di Akhir Fungsi Tambah()";
cout<<"\n c = "<<*c<<" d = "<<*d;
}
Output yang akan dihasilkan, dari program contoh-4 diatas adalah:
123
Modul Praktikum
main( )
{
int j;
clrscr( );
cout<<"Masukkan Jari-jari = ";cin>>j;
cout<<"Luas lingkaran = "<<luas(j)<<endl;
cout<<"Keliling lingkaran = "<<kel(j);
getch( );
}
Output yang akan dihasilkan, dari program contoh-5 diatas adalah:
/* -------------- */
/* Variabel Lokal */
/* -------------- */
#include<conio.h>
#include<stdio.h>
#include<iostream.h>
lokal( );
main( )
{
int a = 15;
clrscr( );
124
Modul Praktikum
cout<<"Pemanggilan Variabel Lokal"<<endl;
cout<<"\nNilai didalam funsi main() = : "<<a;
lokal( );
cout<<"\nNilai didalam funsi main() = : "<<a;
getch( );
}
lokal( )
{
int a = 10;
cout<<"\nNilai a didalam fungsi lokal( ) = "<<a;
}
Output yang akan dihasilkan, dari program contoh-6 diatas adalah:
/* ------------------------------ */
/* Variabel Eksternal atau Global */
/* ------------------------------ */
#include<conio.h>
#include<stdio.h>
#include<iostream.h>
int a = 6; //--> deklarasi variabel eksternal
void lokal( );
void main( )
{
clrscr( );
cout<<"Penggunaan Variabel Eksternal"<<endl;
125
Modul Praktikum
cout<<"\nNilai didalam funsi main() = : "<<a;
lokal ( ); //--> pemanggilan fungsi local
cout<<"\nNilai Setelah penggilan fungsi local() = ";
cout<<a;
getch( );
}
void lokal( )
{
a+=10;
}
Output yang akan dihasilkan, dari program contoh-7 diatas adalah:
/* -------------------------- */
/* Penggunaan Variabel Statis */
/* -------------------------- */
#include<conio.h>
#include<stdio.h>
#include<iostream.h>
walah( ); //--> prototipe fungsi walah
126
Modul Praktikum
main( )
{
int k = 5;
clrscr( );
walah( );
walah( );
cout<<"\nNilai K didalam fungsi main() = "<<k;
getch( );
}
walah( )
{
static int k; // --> deklarasi variabel statis
k += 4;
cout<<"\nNilai K didalam fungsi() = "<<k;
}
Hal ini terlihat bahwa :
Pada pada prototipe fungsi walah( ) tidak tedapat nilai awal,
maka secara otomatis variabel k = 0.
Pada pemanggilan fungsi walah( ) pertama, tercetak nilai
variabel k = 4, didapat dari k=0+4.
Pada pemanggilan fungsi walah( ) kedua, tercetak nilai
variabel k = 8, didapat dari k=4+4, karena nilai k yang
terbaru adalah 4.
Pada pencetakan k didalam fungsi main( ), adalah 5, karena
variabel k, didalam fungsi main( ) bersifat lokal.
Output yang akan dihasilkan, dari program contoh-8 diatas adalah :
127
Modul Praktikum
Contoh-9
/* -------------------------- */
/* Penggunaan inlide function */
/* -------------------------- */
#include<conio.h>
#include<stdio.h>
#include<iostream.h>
inline int kali(int i, int j)
{
return(i * j);
}
main( )
{
int k;
clrscr( );
for(k = 1; k < 20; k++)
cout<<kali(k, k*2)<<" ";
getch( );
}
/* -------------------------- */
/* Penggunaan inlide function */
/* -------------------------- */
#include<conio.h>
#include<stdio.h>
#include<iostream.h>
inline static void cplusplus( ) {
cout << "Pemrogramman C++\n";
cout << "C++ Programming, ";
}
int main( ) {
{
cout << "Kami Sedang Belajar, ";
cplusplus( );
128
Modul Praktikum
cout << "Sedang Kami Pelajari.\n\n";
}
{
cout << "Mari Belajar, ";
cplusplus( );
cout << "Mudah Untuk Dipelajari.\n\n";
}
{
cout << "Jika Sudah Mengerti, ";
cplusplus( );
cout << "Berarti Sudah Anda Kuasai";
}
getche( );
}
Output yang akan dihasilkan, dari program contoh-10 diatas adalah :
/* ------------------------------- */
/* Penggunaan function overloading */ /*
------------------------------- */
#include<conio.h>
#include<stdio.h>
#include<iostream.h>
129
Modul Praktikum
int hitung(int b);
long hitung(long c);
float hitung(float d);
void main( )
{
clrscr( );
cout<< "Hasilnya Fungsi overload -1 : ";
cout<<hitung(4)<<endl;
cout<< "Hasilnya Fungsi overload -2 : ";
cout<<hitung(2)<<endl;
cout<< "Hasilnya Fungsi overload -3 : ";
cout<<hitung(3)<<endl;
getch( );
}
int hitung(int b)
{
return(b*b);
}
long hitung(long c)
{
return(c*c);
}
double hitung(double d)
{
return(d*d);
}
Output yang akan dihasilkan, dari program contoh-11 diatas adalah :
130
Modul Praktikum
9.7. Tugas 6
1. Buatlah program untuk menghitung besarnya diskon yang diberikan atas besanya
sejumlah pembelian, dengan ketentuan sebagai berikut :
- Jika belanja dibawah Rp. 1,000,000 , maka tidak mendapat diskon.
- Jika belanja dimulai dari Rp. 1,000,000 , sampai dengan Rp. 5.000.000, maka
mendapat diskon sebesar 20%.
- Jika belanja diatas Rp. 5.000.000, maka mendapat diskon sebesar 35%.
Fungsi yang harus dibuat potong() untuk menghitung besar potongan yang akan
diberikan. Dengan tampilan yang diinginkan sebagai berikut:
Program Hitung Potongan.
Besar pembelian barang Rp. . <di input >
Besar diskon yang diberikan Rp. < hasil proses > Besar harga yang harus
dibayarkan Rp. < hasil proses >
2. Buatlah program untuk menghitung konversi dari derajat fahrenheit ke celcius
Petunjuk :
Gunakan Function Overloading.
Buatlah 3 (tiga) buah fungsi untuk dioverloading, dengan variabel untuk
masing-masing fungsi berbeda-beda.
Untuk fungsi pertama variabel yang digunakan adalah double
Untuk fungsi pertama variabel yang digunakan adalah float
Untuk fungsi pertama variabel yang digunakan adalah integer
Rumus konversi yang digunakan adalah
c = (f - 32.0) * 5 / 9; Contoh :
Jika nilai Fahrenheit = 100 c = (100 - 32) * 5 / 9;
c = (68) * 5 / 9;
c = 37,7778
Hasil keluaran yang diinginkan : Pemanggilan dengan tipe data double
Proses dengan tipe data double
100 sama dengan 37.7778
Pemanggilan dengan tipe data float Proses dengan tipe data float
100 sama dengan 37.7778 Pemanggilan dengan tipe data integer Proses
dengan tipe data integer
100 sama dengan 37
131
Modul Praktikum
3.
Jenis Buku
CerPen ( Kumpulan Cerita Pendek )
Komik
Novel
Tarif Buku
500
700
1000
Petunjuk Proses :
Buatlah Fungsi Tarif untuk menentukan terif penyewaan
Gunakan Pernyataan If Else
Tampilan Masukan yang diinginkan:
Perpustakaan ".Kecil-Kecilan".
---------------------------Nama Penyewa Buku : .... <diinput> Kode Buku [C/K/
N] : .... <diinput> Banyak Pinjam : .... <diinput>
Tampilan Keluaran yang diinginkan:
Tarif Sewa Rp. .... <hasil proses>
Jenis Buku : ......
< hasil proses >
Penyewa dengan Nama .....
<hasil proses>
Jumlah Bayar Penyewaan Sebesar Rp. . ...
<hasil proses>
132
Modul Praktikum
BORLAND C++
10
Structure
struct mahasiswa
{
char nim[5];
char nama[15];
float nilai;
};
struct
{
atau
char nim[5];
char nama[15];
float nilai;
}mahasiswa;
133
Modul Praktikum
Contoh-1a
/* ---------------------------- */
/* Program Penggunaan structure */
/* Nama File : struct1.cpp */
/* ---------------------------- */
#include<stdio.h>
#include<conio.h>
#include<iostream.h>
main( )
{
struct
{
char nim[5];
char nama[15];
int nilai;
} mahasiswa;
clrscr( );
cout<<"masukan NIM = ";
cin>>mahasiswa.nim;
cout<<"masukan Nama = ";
cin>>mahasiswa.nama;
cout<<"masukan Nilai Akhir = ";
cin>>mahasiswa.nilai;
cout<<"\n\nData Yang di Inputkan adalah : \n\n";
cout<<"NIM = "<<mahasiswa.nim<<endl;
cout<<"Nama = "<<mahasiswa.nama<<endl;
cout<<"Nilai Akhir = "<<mahasiswa.nilai<<endl;
getch( );
}
134
Modul Praktikum
Contoh-1b
/* ---------------------------- */
/* Program Penggunaan structure */
/* Nama File : struct2.cpp */
/* ---------------------------- */
#include<conio.h>
#include<stdio.h>
#include<iostream.h>
main( )
{
struct data
{
char nim[10],nama[15];
int nilai;
};
clrscr( );
data mahasiswa;
cout<<"masukan NIM : ";cin>>mahasiswa.nim;
cout<<"masukan NAMA : ";cin>>mahasiswa.nama;
cout<<"masukan NILAI AKHIR : ";cin>>mahasiswa.nilai;
cout<<"\n\n Data yang Anda Inputkan Adalah : "<<endl<<endl;
cout<<"NIM : "<<mahasiswa.nim<<endl;
cout<<"NAMA: "<<mahasiswa.nama<<endl;
cout<<"NILAI AKHIR: "<<mahasiswa.nilai<<endl;
getch( );
}
Output yang akan dihasilkan, dari program contoh-2 diatas adalah :
135
Modul Praktikum
/* ------------------------------------------ */
/* Program Penggunaan structure pada function */
/* Nama File : struct4.cpp */
/* ------------------------------------------ */
#include<stdio.h>
#include<conio.h>
#include<iostream.h>
char ket(float n);
main( )
{
int i;
struct
{
char nim[5];
char nama[15];
float nilai;
} mhs[5];
clrscr( );
for(i=1; i<2; i++)
{
cout<<"Data Ke - "<<i++<<endl;
cout<<"masukan NIM = "; cin>>mhs[i].nim;
cout<<"masukan Nama = "; cin>>mhs[i].nama;
cout<<"masukan Nilai Akhir = "; cin>>mhs[i].nilai;
cout<<endl;
}
clrscr( );
for(i=1; i<2; i++)
{
136
Modul Praktikum
cout<<"Data Ke - "<<i++<<endl;
cout<<"NIM = "<<mhs[i].nim<<endl;
cout<<"Nama = "<<mhs[i].nama<<endl;
cout<<"Nilai Akhir = "<<mhs[i].nilai<<endl;
cout<<"Keterangan yang didapat = ";
cout<<ket(mhs[i].nilai)<<endl;
cout<<endl;
}
getch( );
}
char ket(float n)
{
if(n > 65)
return 'L';
else
return 'G';
}
Output yang akan dihasilkan, dari program contoh-2 diatas adalah :
10.3. Latihan
Kerjakan tugas-tugas dibawah ini sesuai dengan petunjuk dan ketentuan pengerjaan
yang telah diberikan :
1. Buatlah program untuk menghitung nilai Hasil dari nilai UTS, UAS dan
menampilkan nilai huruf yang akan didapat.
Ketentuan :
Masukan banyak data yang diinginkan untuk menentukan banyak data yang
akan diproses.
Buatlah sebuah function untuk menghitung nilai Hasil
Nilai Hasil = (Nilai UAS * 40%) + (Nilai UTS * 60%)
Jika Nilai Huruf = A, maka Nilai Hasil >= 80
Jika Nilai Huruf = B, maka Nilai Hasil >= 70
Jika Nilai Huruf = C, maka Nilai Hasil >= 56
137
Modul Praktikum
Jika Nilai Huruf = D, maka Nilai Hasil >= 47
Jika Nilai Huruf = E, maka Nilai Hasil < 47
Tampilan akhir adalah sebuah tabel, seperti dibawah ini:
2. Buatlah program untuk menghitung honor pegawai honorer dari suatu perusahaan
dengan menghitung kelebihan jumlah jam kerja pegawai tersebut. Honor harian
pegawai honorer sebesar Rp. 15000
Ketentuan :
Masukan banyak data yang diinginkan untuk menentukan banyak data yang
akan diproses.
Buatlah sebuah function untuk menghitung honor lembur
Ketentuan lembur dihitung dari kelebihan jam kerja pegawai tesebut. Jam kerja
normal pegawai sebanyak 8 jam
Jika jumlah jam kerja lebih dari 8 jam, maka kelebihan jam kerja dikalikan
Rp. 5000 + Honor harian
Jika jumlah jam kerja hanya 8 jam tidak mendapat honor lembur, hanya
mendapat honor harian saja.
138
Modul Praktikum
Class untuk
Object Oriented
Programming (OOP)
BORLAND
C++
11
Modul Praktikum
3. Mudah diperbaharui
Dikarenakan sifat jangkauan dari objek memiliki bagian private dan public, maka
jika bagian private ingin digunakan pada objek-objek lain dapat diperbaharui
dengan menempatkan objek lain tersebut di bagian public.
4. Dapat didaur ulang
Suatu objek yang telah didefinisikan baik jenis, bentuk, ciri maupun perilaku
dapat didefinisikan kembali dengan objek yang lain. Misalkan objek rumah yang
memiliki ciri umum ada pintunya, jendelanya, atapnya, temboknya dan lian-lain,
dapat didefinisikan kembali ciri-ciri tersebut dengan menyebutkan cirinya masingmasing seperti temboknya yang memiliki ciri jenisnya, ketebalannya, warna
catnya dan lain-lain.
140
Modul Praktikum
Pendefinisian Objek
Pernyataan diatas digunakan untuk mendefinisikan variabel bernama sport.
Pada C++ variabel seperti sport berkedudukan sebagai variabel kelas yang biasa
disebut dengan objek.
Pada sebuah kelas, item-item di dalamnya bisa bersifat private atau public. Secara
default, semua item di dalam kelas bersifat private. Jadi tanpa menuliskan kata kunci
private, semua item di dalam kelas sudah private.
A. Public pada kelas
Public (public) menyatakan bahwa deklarasi variabel atau item-item yang ada di
dalam kelas dapat diakses dari luar kelas.
Contoh-1
141
Modul Praktikum
Output yang dihasilkan dari program contoh-1 di atas adalah:
142
Modul Praktikum
tabung :: tabung( )
{
cout<<"\n Menghitung Tabung"<<endl
<<" -----------------"<<endl<<endl;
cout<<" Masukan Jari-jari = ";cin>>j;
cout<<" Masukan Tinggi = ";cin>>t;
v=(pi*j*j)*t;
k=(2*(pi*2*j))+t;
}
void tabung :: keluaran( )
{
cout<<endl
<<" Volume Tabung = "<<v<<endl
<<" Keliling Tabung = "<<k<<endl;
}
Output yang dihasilkan dari program contoh-2 di atas adalah:
11.2. Konstruktor
Konstruktor (constructor) merupakan suatu fungsi dari anggota suatu kelas
yang memiliki nama yang sama dengan nama kelas fungsi itu berada.
Konstruktor ini digunakan untuk mengalokasikan ruang untuk suatu objek dan untuk
memberikan nilai awal.
Berikut contoh pendeklarasian suatu konstruktor di dalam sebuah kelas:
class hitung
{
private:
int a;
int b;
public:
int inta( );
int intb( );
hitung(int mudah); //deklarasi constructor
};
143
Modul Praktikum
Contoh-3
//Konstruktor
#include <conio.h>
#include <iostream.h>
class bilangan {
private :
int bulat;
double nyata;
public :
bilangan( ); //konstruktor
void info( ); };
void main( ) {
clrscr( );
bilangan a;
a.info( );
bilangan b;
b.info( );
getch( );
}
bilangan :: bilangan( ) {
144
Modul Praktikum
Gambar 11.4 Hasil Contoh-3
11.3. Destruktor
Destruktor merupakan suatu fungsi anggota yang dijalankan secara otomatis
manakala suatu objek akan terbebas dari memori karena lingkup keberadaannya telah
menyelesaikan tugasnya.
Destruktor harus mempunyai nama yang sama dengan kelas dan diawali
karakter tilde(~) atau karakter tak terhingga.
Destruktor digunakan secara khusus manakala suatu objek menggunakan
memori dinamis selama keberadaannya dan kemudian melepaskan memori itu
setelah tidak menggunakannya lagi.
Contoh-4
//Destruktor
#include <conio.h>
#include <iostream.h> #include <string.h> class motor
{
private :
char *merk;
float cc_mesin; long harga;
public :
motor(char *nama, float cc, long hrg);//konstruktor
~motor();//destruktor
void keterangan( ); };
void main( ) {
clrscr( );
motor sport("Honda CBR",500,30500000);
motor matic("Honda Vario",125,14500000);
sport.keterangan( );
matic.keterangan( );
getch( ); }
motor :: motor(char *nama, float cc, long hrg) {
merk = new char[25];//merubah data karakter menjadi string
strcpy(merk,nama);
cc_mesin=cc;
harga=hrg; }
motor :: ~motor( ) {
delete [ ] merk;//menghapus memori karakter pd merk
145
Modul Praktikum
}
void motor :: keterangan( )
{
cout<<"\n Informasi Motor:"<<endl
<<" Merk = "<<merk<<endl
<<" CC Mesin = "<<cc_mesin<<endl
<<" Harga = "<<harga<<endl<<endl;
}
Output yang dihasilkan dari program contoh-4 di atas adalah:
146
Modul Praktikum
for(x=0;x<y;x++)
{
cout<<endl<<" Data Ke-:"<<a++<<endl;
cout<<" NIK
:";cin>>kary[x].nik;
cout<<" Nama Karyawan :";cin>>kary[x].nm;
cout<<" Jumlah Jam
:";cin>>kary[x].jam;
}
clrscr( );
gotoxy(14,3);cout<<"Daftar Gaji Mingguan\n";
gotoxy(16,4);cout<<"Karyawan Honorer\n";
cout<<" -------------------------------------------------\n"
<<" No. NIK Nama
Jumlah Upah Total\n"
<<"
Karyawan Jam
Lembur Gaji\n"
<<" -------------------------------------------------\n";
for(x=0;x<y;x++)
{
gotoxy(3,wherey());cout<<b++<<".";
gotoxy(7,wherey());cout<<kary[x].nik;
gotoxy(15,wherey());cout<<kary[x].nm;
gotoxy(30,wherey());cout<<kary[x].jam;
gotoxy(36,wherey());cout<<kary[x].lembur(kary[x].jam);
kary[x].total=(40*20000)+kary[x].lembur(kary[x].jam);
gotoxy(44,wherey());cout<<kary[x].total<<endl;
grand=grand+kary[x].total;
}
cout<<" -------------------------------------------------\n";
cout<<" Total Keseluruhan Karyawan :";
gotoxy(44,wherey());cout<<grand<<endl;
getch( );
}
float kerja::lembur(int l)
{
if (l>40)
return(l-40)*30000;
else
return 0;
}
Output yang dihasilkan dari program contoh-5 di atas adalah:
147
Modul Praktikum
11.5.1. Inheritance
Inheritance memungkinkan programmer untuk "menurunkan" sebuah class
menjadi class lain yang lebih spesifik dan memiliki fungsi yang lebih komplit.
Inheritance merepresentasikan hubungan "seperti" atau "sejenis" (a kind of). Sebagai
contoh, sebuah perahu motor adalah seperti perahu namun dengan kemampuan lebih,
yakni memiliki motor. Contoh lain adalah kendaraan jenis mobil (sebagai super
class) dan memiliki tipe sport (sebagai subclass), bila digabung menjadi mobil sport.
Ketika kita menurunkan sebuah class dari class yang lain, class yang baru
akan mewarisi semua attribute dan method dari class yang sudah ada. Class yang
148
Modul Praktikum
sudah ada disebut dengan base class atau super class atau parent class dan class
yang baru disebut dengan derived class atau subclass, atau child class. Dengan
inheritance, kita dapat men daur ulang program kita atau bahkan men daur ulang
program orang lain agar sesuai dengan kebutuhan kita.
Tanpa inheritance, kelas merupakan sebuah unit yang berdiri sendiri.
Inheritance akan membentuk suatu konsep dimana jika konsep yang diatas berubah
maka perubahan akan juga berlaku pada yang ada dibawahnya. Inherate sangat mirip
dengan hubungan orang tua dengan anak. Manakala suatu kelas menerima warisan,
semua anggota data dan fungsi juga akan menerima warisan, walalupun tidak
semuanya akan dapat di akses oleh anggota fungsi dari kelas.
Di dalam C++ penentuan akses pada inheritance ada tiga macam, yaitu :
1. Public
Penentuan akses berbasis public menyebabkan anggota dari public dari sebuah
kelas utama akan menjadi anggota public kelas turunan dan menyebabkan juga
anggota protect kelas utama menjadi anggota protect kelas turunan, namun untuk
anggota kelas private tetap pada private kelas utama.
2. Private
Penentu akses berbasis private menyebabkan anggota dari anggota public dari
kelas utama akan menjadi anggota protect kelas turunan, dan menyebabkan
anggota dari kelas utama menjadi anggota protect kelas turunan, namun untuk
anggota kelas private tetap pada private kelas utama.
3. Protected
Penentu akses berbasis protect menyebabkan anggota dari anggota protect dan
public dari kelas utama akan menjadi anggota private dari kelas turunan.
Anggota private dari kelas utama selalu menjadi anggota private kelas utama.
Pada waktu mendeklarasikan suatu kelas, anda dapat menandai bahwa suatu
kelas berasal dari mana, yaitu dengan tanda titik dua (:) setelah nama kelas, tipe
asalnya bias berupa public atau yang lainnya dan dari kelas mana berasal. Berikut
contoh penulisan sintaksisnya:
Contoh-6
#include <iostream>
#include <conio>
class Values
{
protected: // dapat di gunakan di class turunannya nanti
int P, L;
public:
void Nilai(int a, int b)
{ P=a; L=b; } };
149
Modul Praktikum
// class ini turunan dari class values
class luasPersegiPanjang: public Values
{
public:
int luas( )
{ return (P*L); }
};
// class ini turunan dari class values
class kelilingPersegiPanjang: public Values
{
public:
int keliling( )
{
return((P +L) * 2);
}
};
int main ( )
{
luasPersegiPanjang a; //pembuatan objek luasPersegiPanjang
//pembuatan objek kelilingPersegiPanjang
kelilingPersegiPanjang b;
a.Nilai(4,5); // input nilai ke dalam method Nilai
b.Nilai(4,5);
cout <<"Luas Persegi Panjang = "<<a.luas( )<<endl;
cout <<"Keliling Persegi Panjang = "<<b.keliling( )<<endl;
getch( );
}
Output yang dihasilkan dari program contoh-6 di atas adalah:
11.5.2. Polymorphism
Polymorphisms adalah kemampuan 2 buah object yang berbeda untuk
merespon pesan permintaan yang sama dalam suatu cara yang unik. Contoh, saya
melatih lumba-lumba saya dengan perintah untuk meloncat dan juga saya melatih
burung untuk merespon perintah saya untuk berkicau. Saya lakukan latihan untuk
merespon kepada mereka dengan perintah lisan. Melalui polymorphism saya tahu
bahwa anjing dan burung akan merespon dengan gonggongan atau kicauan.
150
Modul Praktikum
Dengan cara dan kemampuan seperti ini, jenis akses tertentu dapat
diterapakan dengan berbagai cara oleh objek-objek yang memiliki tipe yang berbeda
atau memiliki banyak bentuk. Fungsi virtual merupakan dasar dari polymorphism
yang berkerja hanya dengan pointer-pointer dan referensi dan hanya
mendeklarasikan method sebagai virtual.
Adapun aturan dari virtual function sebagai berikut:
1. Virtual function harus anggota class.
2. Anggota class bukan anggota yang bersifat statis.
3. Anggota class dapat diakses dengan pointer objek.
4. Virtual function tidak dapat memiliki virtual constructor, akan tetapi dapat
berupa virtual destructor.
Contoh-7
//Penggunaan Polymorphism
#include <iostream.h>
#include <conio.h>
class HewanPeliharaan
{
public:
void lucu( )
{
cout<<" Lucunya hewan peliharaan"<<endl;
}
virtual void makan( ) // konsep polymorphisme
{
cout<<" Makan... dibutuhkan hewan peliharaan"<<endl;
}
};
class Jinak : public HewanPeliharaan
{
public:
void lucu( )
{
cout<<" Lucu dan Jinak"<<endl;
}
virtual void makan( ) // konsep polymorphisme
{
cout<<" Diberi makan agar jinak"<<endl;
}
};
class Kucing : public Jinak
{
public:
void lucu( )
{
cout<<" Lucunya kucing"<<endl;
}
151
Modul Praktikum
virtual void makan( ) // konsep polymorphisme
{
cout<<" Makanan dibutuhkan Kucing"<<endl;
}
};
void main( )
{
//definisi Objek Jinak dan Kucing puma
Jinak jinak;
Kucing puma;
//definisi pointer ke objek
HewanPeliharaan *hewan;
hewan=&jinak;
hewan->lucu( );
hewan->makan( );
cout<<" -----------------------------"<<endl;
hewan = &puma;
hewan->lucu( );
hewan->makan( );
getch( );
}
Output yang dihasilkan dari program contoh-7 di atas adalah:
152
Modul Praktikum
11.5.3. Encapsulation
Ciri penting lainnya dari OOP adalah encapsulation. Encapsulation adalah
sebuah proses dimana tidak ada akses langsung ke data yang diberikan, bahkan
hidden. Jika ingin mendapat data, maka harus berinteraksi dengan objek yang
bertanggung jawab atas dara tersebut. Berikut cirri dari encapsulation:
1. Variabel dan method dalam suatu obyek dibungkus agar terlindungi
2. Untuk mengakses, variabel dan method yang sudah dibungkus tadi perlu
interface
3. Setelah variabel dan method dibungkus, hak akses terhadapnya dapat ditentukan.
4. Konsep pembungkusan ini pada dasarnya merupakan perluasan dari tipe data
struktur
Dua hal dalam enkapsulasi :
1. Information hiding
2. Menyediakan perantara (method) untuk mengakses data
Pada intinya, encapsulation adalah pemisahan antara bagian private dan
public pada sebuah objek. Atau, dapat dipandang sebagai pemisahan antara interface
(bagian private) dan implementation (bagian public).
Objek-objek lain yang hendak berinteraksi dengan objek ini akan mengirimkan
sebuah pesan (message) dan objek ini akan mengerjakan sesuatu dan mengirimkan
pesan balik sebagai jawaban jika diperlukan.
Keuntungan utama dari encapsulation tentu saja adalah penyembunyian
implementasi (implementation hiding). Dengan implementation hiding, kita dapat
memperbaiki bagaimana objek kita bekerja tanpa harus khawatir bagaimana
menginformasikan perubahan tersebut ke objek-objek yang lain. Selama kita tidak
merubah interface dari objek kita, objek-objek yang lain akan tetap dapat
menggunkan objek kita.
Contoh-8
//penggunaan encapsulation
#include <conio.h>
#include <iostream.h>
class satu_kandang
{
int kandang;
public:
void atur(int nilai);
int hasil(void);
};
void satu_kandang :: atur(int nilai)
{
kandang = nilai;
}
int satu_kandang :: hasil(void)
{
return kandang;
}
Tim Penyusun Komisi MI
153
Modul Praktikum
void main( )
{
satu_kandang ayam1, ayam2, ayam3;
int bebek;
ayam1.atur(5);
ayam2.atur(7);
ayam3.atur(2);
bebek=20;
cout<<" Nilai dari ayam1 adalah "<<ayam1.hasil( )<<endl;
cout<<" Nilai dari ayam2 adalah "<<ayam2.hasil( )<<endl;
cout<<" Nilai dari ayam3 adalah "<<ayam3.hasil( )<<endl;
cout<<" Nilai dari bebek adalah "<<bebek<<endl;
getch( );
}
Output yang dihasilkan dari program contoh-8 di atas adalah:
154
Modul Praktikum
int main( )
{
enkapsulasi data; // pembuatan objek class
//input datanya
data.Nama = "Bima Chanindra";
data.NIM = "12120001";
data.setNilai(100);
//output datanya
cout << "Nama = " << data.Nama << endl;
cout << "NIM = " << data.NIM << endl;
cout << "Nilai = " << data.getNilai( );
getch( );
}
Output yang dihasilkan dari program contoh-9 di atas adalah:
155
Modul Praktikum
11.6 Latihan
Seorang manager ingin dibuatkan sebuah program perhitungan gaji pegawai
staff honor sederhana. Anda sebagai staff programmer harus membuatkan program
tersebut.
Adapun ketentuan perhitungan gaji pegawai honorer adalah sebagai berikut :
Honorer per hari yang diterima pegawai honorer sebesar Rp. 25.000. Jam kerja
selama 8 Jam setiap harinya
Jam bekerja lebih dari 8 jam, maka kelebihan jam dikalikan dengan honor
lembur perjam sebesar Rp. 1.500.
Petunjuk : Gunakan kelas pegawai.
Desain masukan yang diinginkan adalah sebagai berikut
PT. Meriang Gembira
Jumlah
:..
Tanggal Input :..
---------------------------------------------------------------------------------------Data Ke-1
Nama Pegawai
:..
Jumlah Jam Kerja
:Jam
Data Ke-2
Nama Pegawai
:..
Jumlah Jam Kerja
:Jam
<terus mengulang sesuai jumlah pegawai yang diinputkan>
Desain keluaran yang diingkinkan adalah sebagai berikut :
PT. Meriang Gembira
Tanggal : ..
==========================================================
No.
Nama
Honor
Jumlah
Honor
Total
Pegawai
Jam Kerja
Lembur
Honor
==========================================================
.. .. .. ..
.. .. .. ..
==========================================================
Total Honor Pegawai Sebesar
..
156
Modul Praktikum
Bentuk Input
Bentuk Output
157