PENGERTIAN DASAR
Algoritma :
Rangkaian langkah-langkah/alur pikiran untuk menyelesaikan suatu masalah
yang sifatnya logis dan sistimatis
Sifat-sifat Algoritma :
Mudah dibaca/jelas maksudnya (tiap langkah jelas uraiannya)
Berawal dan berakhir
Tidak harus ada data masukan yang dimasukkan dari luar
Paling tidak ada satu keluaran
Tiap instruksi harus efektif
Bahasa pemrograman :
Bahasa komputer yang digunakan dalam penulisan program
Pemrogram/Programmer :
Orang yang membuat program komputer
Pemrograman :
Kegiatan merancang atau menulis program komputer
T-Informatika FT UNPAM
Algoritma dan Pemrograman 3
NOTASI ALGORITMIK
Notasi Algoritmik bukan notasi bahasa pemrograman sehingga siapapun dapat
membuat notasi algoritmik yang berbeda. Namun demikian ketaatan atas notasi
perlu diperhatikan untuk menghindari kekeliruan.
Pseudo : semu, tidak sebenarnya, pura-pura; adalah notasi yang menyerupai notasi
bahasa pemrograman tingkat tinggi
T-Informatika FT UNPAM
Algoritma dan Pemrograman 4
Preparation (Pemberian
Alur proses
nilai awal suatu variabel)
PSEUDO-CODE
Pernyataan Notasi Maksud
algoritmik
write(x) Nilai x dicetak di piranti keluaran
Penulisan write(x,y) Nilai x dan y dicetak di piranti keluaran
write(“Hello”) Text Hello dicetak di piranti keluaran
read(a) Baca nilai a
Pembacaan
read(a,b) Baca nilai a,b
Penugasan bilx Isikan nilai variabel x kedalam variabel bil
T-Informatika FT UNPAM
Algoritma dan Pemrograman 5
CONTOH ALGORITMA
ALGORITMA Euclidean
Diberikan dua buah bilangan bulat positif m dan n (m ≥ n). Algoritma Euclidean
mencari pembagi bersama terbesar dari kedua bilangan tersebut, yaitu bilangan
positip terbesar yang habis membagi m dan n
DESKRIPSI :
1. Jika n = 0 maka
m adalah jawabannya;
Stop.
Tetapi jika n ≠ 0,
Lanjutkan ke langkah 2.
2. Bagilah m dengan n dan misalkan r adalah sisanya
3. Ganti nilai m dengan nilai n, nilai n dengan nilai r, lalu ulang kembali ke langkah 1.
T-Informatika FT UNPAM
Algoritma dan Pemrograman 6
Baca
m,n
YES n=
0
NO
R=m MOD n
M=n
N=r
Cetak
m
END
T-Informatika FT UNPAM
Algoritma dan Pemrograman 7
T-Informatika FT UNPAM
Algoritma dan Pemrograman 8
Fungsi
Ketentuan pemberian nama :
Terdiri dari huruf A sampai Z, atau a sampai z, atau underscore ( _ ), atau 0
sampai 9
Karakter pertama suatu identifier harus huruf atau underscore
Tidak boleh sama dengan kata kunci (keyword) dalam bahasa C++
Tidak boleh ada spasi
Case sensitive : hurup kapital dan hurup kecil diperlakukan beda
Karakter :
Elemen terkecil pada pemrograman C++ adalah karakter. Karakter dapat berupa :
o Huruf (A sampai Z, a sampai z)
o Angka ( 0 sampai 9)
o Simbol (*, !, dll)
o Kode kontrol (misal newline)
Keywords :
asm, auto, break, case, char, class, const, continue, default, delete, do, double,
else, enum, extern, float, for, friends, goto, if, inline, int, long, new, operator,
private, protected, public, register, return, short, signed, sizeof, static, struct,
switch, template, this, typedef, union, unsigned, virtual, void, volatile, while.
Kode escape :
TIPE DATA
T-Informatika FT UNPAM
Algoritma dan Pemrograman 9
Literal Karakter
Literal Karakter digunakan untuk menyatakan sebuah karakter. Karakter ditulis
dalam tanda petik tunggal.
Contoh :
‘a’ : karakter huruf a
‘#’ : karakter simbol #
T-Informatika FT UNPAM
Algoritma dan Pemrograman 10
Literal String
String berarti deretan atau kombinasi sejumlah karakter. Literal String ditulis
dalam tanda petik ganda.
Contoh :
“Rudy Hartono”
“4 x 4 = 16”
“” : string kosong
“abc\ndef” : antara abc dan def terdapat newline
“abc\tdef” : antara abc dan def terdapat tab
Konstanta Bernama
Contoh : const double PI=3.14;
menyatakan bahwa PI adalah literal bertipe double dengan nilai 3,14. kata kunci
const menyatakan bahwa PI tak dapat diubah setelah didefinisikan.
Variabel
Menyatakan suatu lokasi dalam memori komputer yang digunakan untuk menyimpan
suatu nilai dan nilai yang ada didalamnya bisa diubah.
Deklarasi variabel :
int a;
int a, b;
int a=30;
cin>>usia;
Pernyataan
Pernyataan adalah suatu instruksi lengkap yang berdiri sendiri dan ditunjukan
untuk melaksanakan suatu tugas tertentu. Sebuah pernyataan selalu diakhiri oleh
tanda titik koma.
Contoh :
luas=panjang*lebar;
const double PI=3.14;
TIPE DATA dan MEMBACA-MENCETAK NILAI KONSTANTA
T-Informatika FT UNPAM
Algoritma dan Pemrograman 11
T-Informatika FT UNPAM
Algoritma dan Pemrograman 12
2
41 ) kode ASCII 41 adalah karakter )
297 ) kode ASCII 41 (297-256) adalah
karakter )
172 ¼ kode ASCII 172 adalah karakter ¼
171 ½ kode ASCII 171 adalah karakter ½
Catatan :
Yang dimaksud dengan karakter diatas adalah karakter ASCII (American
Standard Code for Information Interchange)
printf(“format”,var);
Format yang dapat digunakan :
Kode format Hasil yang tercetak
%i atau %d Numerik integer bertanda
%u Numerik integer tak bertanda
%li atau %ld Numerik long integer bertanda
T-Informatika FT UNPAM
Algoritma dan Pemrograman 13
Kode program
Hasil
Kode program
Hasil
//cetak_numerik1.cpp
#include<stdio.h>
void main(void)
{
short a,b,c,d;
//-32768 s/d 32767
a=-32768;
b=-32769;
c=32767;
d=32768;
printf("a = %i\n",a);
printf("b = %i\n",b);
printf("c = %i\n",c);
printf("d = %i\n",d);
}
T-Informatika FT UNPAM
Algoritma dan Pemrograman 14
a = -32768
b = 32767
c = 32767
d = -32768
//cetak_numerik2.cpp
#include<stdio.h>
void main(void)
{
unsigned short a,b,c,d;
//0 s/d 65535
a=0;
b=-1;
c=65535;
d=65536;
printf("a = %u\n",a);
printf("b = %u\n",b);
printf("c = %u\n",c);
printf("d = %u\n",d);
}
a=0
b = 65535
c = 65535
T-Informatika FT UNPAM
Algoritma dan Pemrograman 15
d=0
short :
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
=
32767
1
0
0
0
0
0
0
0
T-Informatika FT UNPAM
Algoritma dan Pemrograman 16
0
0
0
0
0
0
0
=
-32768
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
=
-32767
1
1
T-Informatika FT UNPAM
Algoritma dan Pemrograman 17
1
1
1
1
1
1
1
1
1
1
1
1
1
1
=
-1
T-Informatika FT UNPAM
Algoritma dan Pemrograman 18
Kode program
Hasil
Kode program
Hasil
//cetak_float1.cpp
#include<stdio.h>
void main(void)
{
float a,b,c,d;
a=25;
b=25.25;
c=25.123456;
d=25.123456789;
printf("a = %f\n",a);
printf("b = %f\n",b);
printf("c = %f\n",c);
printf("d = %f\n",d);
printf("\n");
printf("a = %7.2f\n",a);
printf("b = %7.3f\n",b);
printf("c = %7.0f\n",c);
printf("d = %7.4f\n",d);
}
T-Informatika FT UNPAM
Algoritma dan Pemrograman 19
25.000000
25.250000
25.123455
25.123457
25.00
25.250
25
25.1235
//cetak_float1.cpp
#include<stdio.h>
void main(void)
{
float a,b,c,d;
a=25;
b=25.25;
c=25.123456;
d=25.123456789;
printf("a = %e\n",a);
printf("b = %E\n",b);
printf("c = %e\n",c);
printf("d = %E\n",d);
printf("\n");
printf("a = %7e\n",a);
printf("b = %5e\n",b);
printf("c = %7.0E\n",c);
printf("d = %10.2E\n",d);
}
2.500000e+001
2.525000E+001
T-Informatika FT UNPAM
Algoritma dan Pemrograman 20
2.512346e+001
2.512346E+001
2.500000e+001
2.525000e+001
3E+001
2.51E+001
//baca_keyboard5.cpp //baca_keyboard6.cpp
#include<stdio.h> #include<stdio.h>
void main(void) void main(void)
{ {
char C,D; int C,D,E;
T-Informatika FT UNPAM
Algoritma dan Pemrograman 21
T-Informatika FT UNPAM
Algoritma dan Pemrograman 22
cout<<(int)d<<endl;
}
2. unsigned char
Bila isinya diperlakukan sebagai nilai numerik,
maka nilai yang dapat ditampung berkisar
antara 0 sampai dengan 255
T-Informatika FT UNPAM
Algoritma dan Pemrograman 23
cout<<(int)b<<endl;
cout<<(int)c<<endl;
cout<<(int)d<<endl;
}
3. short
bit sign :
0 : berarti nilai positif
1 : berarti nilai negatif
Nilai yang dapat
ditampung berkisar dari
T-Informatika FT UNPAM
Algoritma dan Pemrograman 24
4. unsigned short
nilai yang dapat ditampung
berkisar antara 0 sampai
dengan 65.535
5. int
bit sign :
0 : berarti nilai positif
1 : berarti nilai negatif
Nilai yang dapat
ditampung berkisar dari
T-Informatika FT UNPAM
Algoritma dan Pemrograman 25
6. unsigned int
nilai yang dapat ditampung
berkisar antara 0 sampai dengan
4.294.967.295
b=4294967295;
c=-1;
T-Informatika FT UNPAM
Algoritma dan Pemrograman 26
d=4294967296;
cout<<a<<endl;
cout<<b<<endl;
cout<<c<<endl;
cout<<d<<endl;
}
TUGAS
1. Buat algoritma (dalam bentuk flow chart dan pseudo-code) dan program
bahasa C untuk menghitung luas lingkaran
2. Buat algoritma (dalam bentuk flow chart dan pseudo-code) dan program
bahasa C untuk menghitung nilai-nilai x dari persamaan
2
ax + bx+ c=0
−b+ √ b2 −4ac
x1 = 2a
−b− √ b 2− 4ac
x 2=
2a
inputnya a,b,c
3. Jika diketahui nilai A=5, B=2, T=4. Berapa isi A, B, dan T jika dikenai
instruksi sbb :
a. T=A b. T=T+A c. T=T+A*B d. T=A%B e. T=B%A f. T=A-B/2
4. Jika diketahui A=5, B=2, berapa isi A dan B jika dikenai instruksi :
T=A
A=B
B=T
T-Informatika FT UNPAM
Algoritma dan Pemrograman 27
Operator :
Operator Aritmetika
Operator penambahan (increment) dan pengurangan (decrement)
Operator penugasan
Operator pembandingan
Operator logika
Operator bit
Menurut jumlah operand yang dilibatkan, operator diklasifikasikan menjadi
menjadi :
Operator unary, yaitu operator yang hanya melibatkan satu buah
operand
Operator binary, yaitu operator yang melibatkan dua buah operand
Operator tertiary, yaitu operator yang melibatkan tiga buah operand
Operator Aritmetika:
T-Informatika FT UNPAM
Algoritma dan Pemrograman 28
Operator Keterangan
Penjumlahan Kode sumber Hasil
+
Tanda plus
//aritmetika.cpp
Pengurangan
#include<iostream.h>
-
Tanda minus
void main(void)
* Perkalian
{
/ Pembagian
int a=11; int b=3;
% Sisa pembagian(Modulus)
cout<<a+b<<endl; 14
cout<<a*b<<endl; 33
cout<<a-b<<endl; 8
Urutan pelaksanaan
cout<<a/b<<endl; 3
operator aritmetika :
cout<<a%b<<endl; 2
Operator } Urutan
() Dievaluasi pertama. Jika berkalang maka kalang paling dalam
dievaluasi paling pertama. Jika ada beberapa pasangan kurung
dalam satu level maka dievaluasi dari kiri ke kanan
Dievaluasi kedua. Jika ada beberapa maka dievaluasi dari kiri ke
*, /, atau %
kanan
+ atau - Dievaluasi terakhir. Jika ada beberapa maka dievaluasi dari kiri ke
kanan
Contoh : Aljabar : z=pr%q+w/x-y
C: z = p * r % q + w / x - y ;
6 1 2 4 3 5
Tentukan urutan operasi aritmetika dari persamaan berikut :
y=a(b+c)+c(a-b(d+a)(a%b)), jika a=20, b=10, c=7, d=2
Operator Penambahan dan Pengurangan :
x = x + 1 x++ atau ++x
x = x – 1 x-- atau --x
x Pernyataan Hasil y Hasil x
semula
5 y = x++; 5 6
#include
5 <iostream.h>
y = ++x; 6 6
int main()
5 y = x-- 5 4
{ 5 y = --x 4 4
int x,y;
T-Informatika FT UNPAM
Algoritma dan Pemrograman 29
x = 5;
y = 8 – x++; x=6
cout<<x<<endl; y=3
cout<<y<<endl;
x = 5;
y = 8 – ++x; x=6
cout<<x<<endl; y=2
cout<<y<<endl;
x = 5; x=4
y = 8 – x--; y=3
cout<<x<<endl;
cout<<y<<endl;
x = 5;
y = 8 – --x; X=4
cout<<x<<endl; Y=4
cout<<y<<endl;
return 0;
Operator Bit
C++ mendukung 6 buah operator yang beroperasi pada level bit (0 dan 1), yaitu :
& (AND)
| (OR)
^ (XOR)
~ (NOT)
<< (Geser Kiri)
>> (Geser Kanan)
Operator &
Bit 1 Bit 2 Hasil Contoh : 1 0 0 1 9
0 0 0 9 & 10 memberikan 1 0 1 0 10
0 1 0 hasil 8 1 0 0 0 8
T-Informatika FT UNPAM
Algoritma dan Pemrograman 30
1 0 0
1 1 1
Operator |
Bit 1 Bit 2 Hasil Contoh : 1 0 0 1 9
0 0 0 9 | 10 memberikan 1 0 1 0 10
0 1 1 hasil 11 1 0 1 1 11
1 0 1
1 1 1
Operator ^
Bit 1 Bit 2 Hasil Contoh : 1 0 0 1 9
0 0 0 9 ^ 10 memberikan 1 0 1 0 10
0 1 1 hasil 3 0 0 1 1 3
1 0 1
1 1 0
Operator ~
~185 memberikan hasil -186
0 1 0 1 1 1 0 0 1 185
1 0 1 0 0 0 1 1 0 -186
//Operasi Bit
#include<iostream.h>
void main(void)
{
int x=185;
int y=5;
cout<<"~" << x <<" = "<<~x<<endl;
T-Informatika FT UNPAM
Algoritma dan Pemrograman 31
Operator Penugasan
Operator Keterangan Contoh
= Pemberian nilai
+= Penambahan bilangan a += 2 sama dengan a = a + 2
-= Pengurangan bilangan a -= 2 sama dengan a = a - 2
*= Pengalian bilangan a *= 2 sama dengan a = a * 2
/= Pembagian bilangan a /= 2 sama dengan a = a / 2
%= Pemerolehan sisa bagi a %= 2 sama dengan a = a % 2
TYPE CASTING
T-Informatika FT UNPAM
Algoritma dan Pemrograman 32
Operasi perhitungan pada C++ dilakukan dengan menggunakan tipe data yang sama.
Jika dalam suatu ekspresi terdapat operand dengan tipe yang berbeda, C++ akan
mengkonversikan salah satu tipe sehingga kedua tipe menjadi sama dengan aturan :
1. Jika salah satu operand bertipe long double, yg lain dikonversikan menjadi long
double
2. Jika salah satu operand bertipe double, yg lain dikonversikan menjadi double
3. Jika salah satu operand bertipe float, yg lain dikonversikan menjadi float
4. Jika salah satu operand bertipe char, signed char, unsigned char, atau unsigned
short, yg lain dikonversikan menjadi int
5. Tipe enumerasi akan dikonversikan ke int, unsigned int, long, atau unsigned long
dengan mengakomodasikan jangkauan tipe enumerasi
6. Jika salah satu operand bertipe unsigned long, yg lain dikonversikan menjadi
unsigned long
7. Jika salah satu operand bertipe long dan yang lain bertipe unsigned int, kedua
operand dikonversikan menjadi unsigned long
8. Jika salah satu operand bertipe long , yg lain dikonversikan menjadi long
Type casting : proses mengubah suatu tipe ke tipe yang lain. Bentung pengarah tipe
sbb :
(tipe_data)data
tipe_data(data)
static_cast<tipe_data>(data)
T-Informatika FT UNPAM
Algoritma dan Pemrograman 33
cout<<fc<<endl; 10.25
cout<<(int)fa<<endl; 3
cout<<int(fb)<<endl; 5
10
cout<<static_cast<int>(fc)<<e
ndl;
}
FILE I/O
T-Informatika FT UNPAM
Algoritma dan Pemrograman 34
{ Output :
int akun; File yang bernama data1.dat
char nama[30]; akan berisi data :
FILE *fp; 100 Heri
fp=fopen("d:\\kampus\\program\\c++\\data1.dat","w");
printf("Masukan akun, nama\n");
scanf("%d%s",&akun,nama);
fprintf(fp,"%d %s\n",akun,nama);
fclose(fp);
}
Code Program Hasil
#include<stdio.h> Akan tercetak di layar :
void main(void) 100 Heri
{
int akun;
char nama[30];
FILE *fp;
fp=fopen("d:\\kampus\\program\\c++\\data1.dat","r");
fscanf(fp,"%d %s\n",&akun,nama);
fclose(fp);
printf("%d %s\n",akun,nama);
}
T-Informatika FT UNPAM
Algoritma dan Pemrograman 35
T-Informatika FT UNPAM
Algoritma dan Pemrograman 36
cout<<setprecision(7)<<x<<endl; 123.4568
cout<<setprecision(8)<<x<<endl; 123.45679
cout<<setprecision(9)<<x<<endl; 123.456789
cout<<setprecision(10)<<x<<endl; 123.456789
Tanda Format
Untuk mengatur format cetakan diperlukan tanda format yang diset dengan
menggunakan manipulator setiosflags() dan direset dengan menggunakan
manipulator resetiosflags().
T-Informatika FT UNPAM
Algoritma dan Pemrograman 37
Soal :
1. Carilah nilai j dan terangkan bagaimana nilai j diperoleh, jika diketahui :
int m=24, k=21;
a. j=m|k b. j=m%k c. j=m&k d. j=m+ ++k e. j=m- --k
f. j=m- --k g. j=m>>2 h. j=k+=m i. j=--m + k++ j. j=--m*5
T-Informatika FT UNPAM
Algoritma dan Pemrograman 38
3. Pak Budi menyimpan uangnya di BCA sebesar M rupiah dengan bunga B% per
tahun selama 5 tahun. Buatlah program dan simpan hasilnya dalam file bank.dat
untuk menghitung uang Pak Buda pada akhir tahun ke 5. (Inputnya M, B)
Rumus :
U=M(1+B)n
U : uang pada akhir tahun ke-n
M : uang pada awal tahun
B : bunga per tahun
T-Informatika FT UNPAM
Algoritma dan Pemrograman 39
( Runtunan, Pemilihan)
I. RUNTUNAN(SEQUENCE)
Algoritma runtunan (sequence) :
Tiap instruksi dikerjakan satu per satu
Tiap instruksi dilaksanakan tepat sekali, tidak ada instruksi yang diulang
Urutan instruksi yang dilaksanakan pemroses sama dengan urutan instruksi
sebagaimana yang tertulis didalam teks algoritmanya
Akhir dari instruksi terakhir merupakan akhir algoritma
ALGORITMA Bola #include<iostream.h>
{Menghitung Luas, Keliling, void main(void)
Volume Bola} {
DEKLARASI float PI=3.14,R,L,K,V;
R,K,L,V : float cout<<”Masukan harga
DESKRIPSI R :”<<endl;
read(R) cin>>R;
PI3.14 K=2*PI*R;
K2*PI*R L=4*PI*R*R;
L4*PI*R*R V=4*PI*R*R*R/4;
V4*PI*R*R*R/4 cout<<”Keliling : “<<K<<endl;
write(K,L,V) cout<<”Luas : “<<L<<endl;
cout<<”Volume : “<<V<<endl;
}
Buat Algoritma dan program untuk mempertukarkan dua buah nilai variabel A dan
B.
T-Informatika FT UNPAM
Algoritma dan Pemrograman 40
Ekspresi Boolean adalah ekspresi yang menghasilkan nilai yang dapat berupa :
Benar (true) atau salah (false)
Bukan nol atau nol
Kondisi : suatu pernyataan atau ungkapan atau ekspresi yang mengandung nilai
benar (TRUE) atau salah(FALSE).
T-Informatika FT UNPAM
Algoritma dan Pemrograman 41
Contoh :
Buatlah algoritma dan program C++ yang membaca sebuah bilangan bulat dari
keyboard, lalu mencetak pesan “genap” jika bilangan tersebut merupakan bilangan
genap
Jawab :
T-Informatika FT UNPAM
Algoritma dan Pemrograman 42
Untuk mengetahui suatu bilangan itu genap atau bukan dapat dilakukan dengan cara
membagi bilangan tersebut dengan 2. Jika sisa pembagiannya sama dengan 0 maka
bilangan tersebut adalah genap. Algoritma dan code programnya sbb:
Pseudo-code Flow chart Kode C++
T-Informatika FT UNPAM
Algoritma dan Pemrograman 43
T-Informatika FT UNPAM
Algoritma dan Pemrograman 44
4. Pemilihan 2 kasus(IF-THEN-ELSE)
Pseudo-code Flow chart C/C++
if kondisi then if(kondisi)
pernyataan 1 {
else //blok pernyataan
pernyataan yang
2 //dijalankan jika
endif kondisi benar
}
else
{
//blok pernyataan
yang
//dijalankan jika
kondisi salah
}
Contoh :
Buatlah algoritma dan code C++ untuk menentukan kelulusan suatu mata ujian.
Dinyatakan Lulus jika nilai ujian lebih besar atau sama dengan 60.
Jawab :
T-Informatika FT UNPAM
Algoritma dan Pemrograman 45
Nilai Skor
Nilai 90 A
#include<iostream.h>
80 Nilai < B
void main(void)
90
{
60 Nilai < C
double NilaiUjian;
80
char skor;
50 Nilai < D
cout<<”Masukan Nilai Ujian : “;
60
cin>>NilaiUjian;
Nilai < 50 E
T-Informatika FT UNPAM
Algoritma dan Pemrograman 46
if pertama
if kedua
if ketiga
if keempat
T-Informatika FT UNPAM
Algoritma dan Pemrograman 47
T-Informatika FT UNPAM
Algoritma dan Pemrograman 48
{ //awal kond3
TRUE
s4;
} //akhir kond3
TRUE
else
{ //awal kond3
FALSE
s5;
} //akhir kond3
FALSE
s6;
} //akhir kond1
FALSE
T-Informatika FT UNPAM
Algoritma dan Pemrograman 49
T-Informatika FT UNPAM
Algoritma dan Pemrograman 50
if(kond1)
{
//awal kond1 TRUE
if(kond2)
{
//awal kond2 TRUE
if(kond3)
{
//awal kond3 TRUE
if(kond4)
{
//awal kond4 TRUE
s1;
}
//akhir kond4 TRUE
}
//akhir kond3 TRUE
}
//akhir kond2 TRUE
}
//akhir kond1 TRUE
T-Informatika FT UNPAM
Algoritma dan Pemrograman 51
T-Informatika FT UNPAM
Algoritma dan Pemrograman 52
if(kond1)
{
//awal kond1 TRUE
s1;
}
//akhir kond1 TRUE
else
{
//awal kond1 FALSE
if(kond2)
{
//awal kond2 TRUE
s2;
}
//akhir kond2 TRUE
else
{
//awal kond2 FALSE
if(kond3)
{
//awal kond3 TRUE
s3;
}
//akhir kond3 TRUE
else
{
//awal kond3 FALSE
if(kond4)
{
//awal kond4 TRUE
s4;
}
//akhir kond4 TRUE
else
{
//awal kond4 FALSE
s5;
}
//akhir kond4 FALSE
}
//akhir kond3 FALSE
}
//akhir kond2 FALSE
}
//akhir kond1 FALSE
T-Informatika FT UNPAM
Algoritma dan Pemrograman 53
6. Operator berkondisi(?:)
Disebut juga operator ternary karena melibatkan 3 buah argumen.
//Terbesar.cpp
#include<iostream.h>
void main(void)
{
int x,y,maks;
cout<<”Masukan sebuah bilangan
: “;
cin>>x;
cout<<”Masukan lagi sebuah
bilangan : ”;
cin>>y;
maks = x > y ? x : y;
cout<<”Terbesar adalah :
“<<maks;endl;
}
7. Struktur Case
Untuk masalah dengan dua kasus atau lebih, penggunaan CASE dapat lebih
menyederhanakan penulisan.
case ekspresi
nilai_1 : pernyataan_1
nilai_2 : pernyataan_2
..................................
nilai_n : pernyataan_n
otherwise : pernyataan_x
endcase
T-Informatika FT UNPAM
Algoritma dan Pemrograman 54
T-Informatika FT UNPAM
Algoritma dan Pemrograman 55
DESKRIPSI cin>>NomorHari;
read(NomorHari) switch(NomorHari)
case NomorHari {
1 : write(’Minggu’) case 1:
2 : write(’Senin’) cout<<”Minggu”<<endl;
3 : write(’Selasa’) break;
4 : write(’Rabu’) case 2:
5 : write(’Kamis’) cout<<”Senin”<<endl;
6 : write(’Jumat’) break;
7 : write(’Sabtu’) case 3:
otherwisw : write(’Salah Nomor’) cout<<”Selasa”<<endl;
endcase break;
case 4:
cout<<”Rabu”<<endl;
break;
case 5:
cout<<”Kamis”<<endl;
break;
case 6:
cout<<”Jumat”<<endl;
break;
case 7:
cout<<”Sabtu”<<endl;
break;
default :
cout<<”Salah Nomor”<<endl;
}
}
Tugas:
1. Buatlah algoritma dan program C++ untuk mengitung luas, keliling, panjang
diagonal persegi panjang, dengan tampilan sbb (masukan : panjang dan lebar) :
================================
MENU EMPAT PERSEGI PANJANG
1. Hitung Luas
2. Hitung Keliling
T-Informatika FT UNPAM
Algoritma dan Pemrograman 56
2. Buatlah algoritma dan program C++ untuk menghitung upah mingguan karyawan.
Masukan yang dibaca adalah nama karyawan, golongan, dan jumlah jam kerja.
Keluaran program adalah nama karyawan dan upahnya.
Ketentuan :
jam kerja normal = 48 jam
upah per jam :
Golongan A : Rp. 4000
Golongan B : Rp. 5000
Golongan C : Rp. 6000
Golongan D : Rp. 7000
upah lembur : Rp.3000/jam
T-Informatika FT UNPAM
Algoritma dan Pemrograman 57
( Pengulangan )
PENGULANGAN
1. Pernyataan for
Digunakan jika jumlah pengulangan sudah diketahui sebelum eksekusi
Bentuk :
a. for menaik : pencacah harus bertipe integer atau
for pencacah nilai_awal to karakter
nilai_akhir do pernyataan adalah satu atau lebih
Pernyataan instruksi yang diulang
endfor nilai_awal lebih kecil atau sama
dengan nilai_akhir
b. for menurun : jumlah pengulangan = nilai_akhir -
for pencacah nilai_akhir downto nilai_awal + 1
nilai_awal do
Pernyataan
endfor
T-Informatika FT UNPAM
Algoritma dan Pemrograman 58
for(init;kondisi;rubah_kondi
si)
{
pernyataan;
pernyataan;
}
for(init;kondisi;)
{
pernyataan;
pernyataan;
rubah_kondisi;
}
init;
for(;kondisi;)
{
pernyataan;
pernyataan;
rubah_kondisi;
}
rubah_kondisi dapat
diletakan diawal, ditengah,
atau diakhir badan
pengulangan
T-Informatika FT UNPAM
Algoritma dan Pemrograman 59
T-Informatika FT UNPAM
Algoritma dan Pemrograman 60
{ cout<<”*”;
i++; cout<<i+1<<endl; cout<<endl;
cout<<i<<endl; i++; }
} }
} }
#include<iostream.h> #include<iostream.h> #include<iostream.h>
void main(void) void main(void) void main(void)
{ { {
for(int i=1; for(int i=1; i<5;i+=4) for(int i=11; i<=10;i+=2)
i<5;i+=10) cout<<i<<endl; cout<<i<<endl;
cout<<i<<endl; } }
}
Soal : Buat program untuk menghitung rata-rata dari sepuluh buah bilangan, yg
diinput satu per satu dari kb.
2. Pernyataan while
Bentuk : Keterangan :
while kondisi do pernyataan dilaksanakan berulang kali selama
pernyataan kondisi bernilai true
endwhile Pengulangan berhenti jika kondisi bernilai false
Agar kondisi berubah ke false, dalam badan
pengulangan harus ada instruksi yang merubah nilai
kondisi
T-Informatika FT UNPAM
Algoritma dan Pemrograman 61
rubah_kondisi dapat
diletakan diawal, ditengah,
atau diakhir badan
pengulangan
ALGORITMA #include<iostream.h>
while void main(void)
{
DEKLARASI int I=1;
I : integer while(I 5 )
{
DESKRIPSI cout<<I<<endl;
I1 I++;
while I<=5 do }
write(I) }
II+1
endwhile
Apa keluaran dari program
diatas?
T-Informatika FT UNPAM
Algoritma dan Pemrograman 62
Soal : Ada sejumlah bilangan integer nilai ujian mahasiswa. Jumlahnya tidak
diketahui. Yang diketahui adalah bilangan yang nilainya 999, suatu bilangan yang
dipastikan bukan merupakan nilai ujian. Susun program untuk menginput bilangan
tsb dan menghitung serta mencetak nilai rata-rata dari semua nilai ujian.
3. Pernyataan repeat(do-while)
Bentuk : Keterangan:
repeat Pengulangan dilakukan terus menerus jika kondisi
Pernyataan masih true
until kondisi Pengulangan berhenti jika nilai kondisi menjadi false
Agar kondisi berubah ke false, dalam badan
pengulangan harus ada instruksi yang merubah nilai
kondisi
T-Informatika FT UNPAM
Algoritma dan Pemrograman 63
init;
do
{
pernyataan;
pernyataan;
rubah_kondisi;
} while(kondisi)
rubah_kondisi dapat
diletakan diawal, ditengah,
atau diakhir badan
pengulangan
ALGORITMA #include<iostream.h>
repeat void main(void)
{
DEKLARASI int I=1;
I : integer do
{
DESKRIPSI cout<<I<<endl;
I1 I++;
repeat } while(I 5 );
write(I) }
II+1
until (I<=5)
Apa keluaran dari program
diatas?
T-Informatika FT UNPAM
Algoritma dan Pemrograman 64
Pertanyaan : Apa perbedaan dan persamaan penggunaan pernyataan for, while, do-
while?
4. Pernyataan continue
Pernyataan continue dimaksudkan untuk memaksa melanjutkan loop (for,
while, do-while)
cout<<i<<endl;
i++;
}
}
Pada saat i=3 maka i dinaikan 1 dan kondisi while diuji Hasilnya dilayar
lagi , akibatnya pernyataan : akan tercetak :
cout<<i<<endl; 0
i++; 1
tidak dijalankan saat i sama dengan 3 2
4
Contoh untuk pernyataan for :
T-Informatika FT UNPAM
Algoritma dan Pemrograman 65
#include<iostream.h>
void main(void)
{
int i;
for(i=0;i<=5;i++)
{
if(i==3)
continue;
cout<<i<<endl;
}
}
Pada saat i=3 maka i dinaikan 1 dan loop for Hasilnya dilayar akan
diulangi lagi , akibatnya pernyataan : tercetak :
cout<<i<<endl; 0
i++; 1
tidak dijalankan saat i sama dengan 3 2
4
5. Pernyataan break
Pernyataan break dimaksudkan untuk memaksa keluar dari loop (for, while,
do-while)
Contoh :
T-Informatika FT UNPAM
Algoritma dan Pemrograman 66
#include<iostream.h>
void main(void)
{
int i;
for(i=0;i<=5;i++)
{
if(i==3)
break;
cout<<i<<endl;
}
}
Pada saat i=3 maka eksekusi langsung keluar Hasilnya dilayar akan
dari loop , akibatnya pernyataan : tercetak :
cout<<i<<endl; 0
i++; 1
tidak dijalankan saat i sama dengan 3 2
Soal :
1. Susunlah algoritma dan program C++ untuk menginput sebuah bilangan bulat
2. Buat algoritma dan program C++ untuk menghitung dan mencetak 10 suku
algoritma dan program C++ untuk menghitung dan mencetak total bahan bakar yang
T-Informatika FT UNPAM
Algoritma dan Pemrograman 67
STUDI KASUS
Buatlah Program C++ untuk menilai hasil perkuliahan suatu mata kuliah dari seorang
mahasiswa dengan output :
Dengan ketentuan :
Jumlah total perkuliahan : 14 kali Grade :
Nilai angka >80 : A
Bobot Penilaian : 70 <= Nilai angka < 79 : B
Bobot kehadiran : 10% 60 <= Nilai angka < 70 : C
Bobot tugas : 20% 50 <= Nilai angka < 60 : D
Bobot UTS : 30% Nilai angka < 50 : E
Bobot UAS : 40%
Nilai angka = Nilai kehadiran + Nilai
Tugas + Nilai UTS + Nilai UAS
Grade = E jika salah satu unsur penilaian
bernilai 0
Input : NIM, Nama Mhs, Mata Kuliah, SKS,Jumlah Kehadiran, Nilai Tugas, Nilai
UTS, Nilai UAS.
Jumlah mahasiswa tidak dibatasi, Program selesai jika NIM bernilai negatif.
T-Informatika FT UNPAM