Anda di halaman 1dari 41

ALGORITMA

DAN
PEMROGRAMAN I
Yovi
Apridiansyah, S.Kom
BAB I
PENGANTAR ALGORITMA DAN PEMROGRAMAN

A. Pengertian Program dan Bahasa Pemrograman


Program adalah kumpulan instruksi yang digunakan untuk mengatur komputer agar
melakukan suatu tindakan tertentu. Tanpa program, komputer tidak dapat melakukan apa-apa.
Dengan kata lain, program merupakan salah satu bagian penting pada komputer agar melakukan
aksi yang sesuai dengan yang dikehendaki oleh pembuatnya.
Orang yang membuat program biasa disebut pemrogram (programmer). Adapun aktivitas
yang berhubungan dengan pembuatan program dinamakan pemrograman (programming).
Bahasa program ditulis dengan mengikuti kaidah bahasa pemrograman tertentu. Secara
garis besar, bahasa-bahasa pemrograman dapat dikelompokkan menjadi :
1. Bahasa berasas tinggi (high-level language) adalah bahasa pemrograman yang
berorientasi kepada bahasa manuasia sehingga mudah dipahami oleh manusia. Yang
termasuk dalam kelompok ini adalah C, C++, Java, Pascal, dll
2. Bahasa berasas rendah (low-level language) adalah bahasa pemrograman yang
berorientasi kepada mesin. Bahasa ini menggunakan kode biner (hanya mengenal
kode 0 dan 1). Yang tergolong dalam kelompok bahasa ini adalah bahasa mesin dan
bahasa rakitan. Bahasa ini sangat dulit untuk dipahami oleh orang awam. Selain itu
bahasa mesin sangat bergantung pada mesin, artinya bahasa mesin antara satu mesin
dengan mesin yang lain jauh berbeda.

B. Penerjemah Bahasa
Program yang ditulis dalam bahasa pemrograman seperti C++ sebenarnya tidak dimengerti
oleh komputer secara langsung, sebab komputer hanya mengenal bahasa mesin, yakni bahasa
yang hanya mengenal kode 0 dan 1. Supaya program dapat dijalankan (dieksekusi) oleh
komputer, program tersebut harus diterjemahkan terlebih dahulu kedalam bahasa mesin. Proses
penerjemahannya dilakukan oleh program yang disebut translator (penerjemah).

Translator dapat berupa :


1. Interpreter
Kelebihannya :
Mudah dalam mencari kesalahan seandainya program menghasilkan sesuatu
yang dianggap salah ketika program dijalankan, karena kode sumber selalu
tersedia.
Kelemahannya :
Kode sumber harus selalu tersedia
Eksekusi lambat.
2. Kompiler
Kelebihannya :
Pengerjaan instruksi dilakukan dengan sangat cepat, karena setelah kode objek
terbentuk maka tidak perlu lagi adanya penerjemahan, mengingat komputer
dapat memahami kode objek secara langsung
Kode objek dapat didistribusikan ke komputer lain tanpa perlu menyertakan
kode sumber dari kompiler, sehingga kerahasiaan kode sumber tetap terjamin.
Kelemahan :
Seluruh kode sumber harus benar secara sintaks agar program dapat diuji.

C. Penyelesaian Masalah dengan Program


Orang yang membuat program biasanya bertujuan untuk menyelesaikan masalah. Terdapat
tiga langkah penting yang harus dilakukan :
1. Menganalis masalah dan membuat algoritma
Didalam analisis masalah diperlukan tindakan untuk mengidentifikasi informasi yang
menjadi keluaran pemecahan masalah dan data-data yang menjadi masukan. Algoritma
adalah langkah-langkah yang dilakukan untuk menyelesaikan suatu masalah.
Contoh : Algoritma menghitung luas lingkaran
Penyelesaian
Algoritma 1 :
1) Masukkan jari-jari lingkaran
2) Hitung luas lingkaran dengan menggunakan rumus 3.14 x jari-jari x jari-jari
3) Tampilkan nilai luas lingkaran
Algoritma 2 (menggunakan pseudocode) :
1) jari-jari r
2) luas 3.14 x jari-jari x jari-jari
3) write (luas)
Algoritma 3 (menggunakan flowchart) :
Simbol-simbol dalam flowchart

Berikut adalah gambar flowchart dari menghitung luas lingkaran


2. Menuangkan algoritma ke dalam bentuk program
Langkah-langkahnya :
1) Start All Programs Turbo C++
2) File New ketik program dibawah ini
3) Untuk melihat hasilnya klik tanda yang dilingkari
3. Mengeksekusi dan menguji program
Ada beberapa kemungkinan yang terjadi :
1) Kesalahan sintaksis, adanya kesalahan dalam menuliskan program yang tidak
sesuai dengan kaidah bahasa pemrogram. Contoh : dalam C++ menghasruskan
setiap pernyataan diakhiri dengan titik-koma.
2) Kesalahan logika, kesalahan yang terjadi karena ada logika yang salah. Misalnya
phi yang seharusnya 3.14 tetapi ditulis 31.4 atau 3,14
3) Kesalahan runtime, kesalahan yang terjadi karena suatu operasi dalam program
tidak dapat dilakukan oleh komputer. Contoh : jika terdapat operasi pembagian
dengan nol.
BAB II
STRUKTUR DASAR ALGORITMA

A. Pedoman Menyusun Pseudocode


1. Notasi dipakai untuk memberikan nilai ke suatu variabel. Contoh : bil 0
digunakan untuk memberikan nilai nol ke variabel bil.
2. Setiap pernyataan atau suatu perintah yang dapat berdiri sendiri akan ditulis dalam
sebuah baris tersendiri. Contoh : bil 1 + 2 , merupakan contoh pernyataan untuk
menugaskan atau memasukkan hasil penjumlah bilangan 1 dan 2 ke dalam variabel bil.
Pernyataan seperti itu dikenal dengan sebuah pernyataan penugasan.
3. Setiap variabel (nama yang digunakan untuk menyimpan data dan datanya dapat
diubah-ubah) akan ditulis dengan awalan huruf.
4. Tipe data majemuk atau tipe rekaman (tipe data yang dapat mengandung beberapa
data dengan nama yang berbeda-beda) akan dinyatakan dengan notasi seperti berikut :

simpul = REKAMAN
data1
data2
data3
AKHIR-REKAMAN

Untuk menyatakan data1 yang terdapat pada simpul , maka digunakan notasi berupa
simpul data1
5. Indentasi atau penjorokan ke kanan digunakan untuk menuliskan pernyataan-
pernyataan yang berada dalam suatu struktur blok. Contoh :

JIKA x > 1 MAKA


Pernyataan_1
Pernyataan_2
AKHIR-JIKA

Pada contoh di atas, Pernyataan_1, Pernyataan_2 menyatakan dalam sebuah blok


JIKA ... AKHIR-JIKA
6. Simbol // digunakan untuk menyatakan komentar. Komentar adalah keterangan yang
ditujukan untuk pembaca algoritma, tidak ditujukan untuk diproses oleh komputer. Semua
karakter dimulai dari simbol tersebut hingga akhir baris diperlakukan sebagai komentar.
Contoh :

bil bil + 1 // isi bil dinaikan sebesar satu

Pada contoh di atas, bil bil + 1 tetap menyatakan sebuah pernyataan, tetapi sisanya
dalam baris tersebut berkedudukan sebagai komentar.
7. Notasi masukan ( ) dan tampilkan ( ) secara berurutan mewakili perintah untuk
memperoleh masukan dan menyajikan keluaran.
Contoh :

masukan (panjang, lebar)


tampilkan (luas)

Pada contoh pertama, masukan yang diperlukan berupa panjang dan lebar. Pada
contoh kedua, yang ditampilkan adalah nilai luas.
8. Notasi seperti A [i] menyatakan elemen ke-i pada larik A. Nilai terkecil untuk i adalah
nol. Untuk larik berdimensi dua, sebuah elemen akan dinotasikan dengan A[i , j] atau A [i]
[j] dengan i menyatakan indeks untuk baris dan j untuk kolom.
9. Notasi panjang (A) menyatakan ekspresi untuk memperoleh jumlah elemen A

B. Macam-macam Struktur Dasar Algoritma


Terdapat tiga buah struktur dasar, antara lain :
1. Struktur Sekuensial
Langkah-langkah yang dilakukan dalam algoritma diproses secara berurutan.
Contoh : Buatlah algoritma untuk menampilkan isi dua buah variabel. Variabel a = 12, b =
55 menjadi a = 55, b = 12
Solusi : Untuk menukarkan isi dua buah variabel diperlukan sebuah variabel yang
digunakan untuk membantu penukaran data.
Algoritma :
1) Masukan (a , b) 4) bc
2) ca 5) tampilkan (a , b)
3) ab
2. Struktur Seleksi
Struktur seleksi menyatakan pemilihan langkah yang didasarkan oleh suatu kondisi
(pengambilan keputusan) yang dinyatakan dengan belah ketupat.

Pada struktur di atas, langkah 1 hanya akan dijalankan kalau kondisi bernilai BENAR,
sedangkan langkah 2 hanya dijalankan kalau kondisi bernilai SALAH.
Contoh 1 : Buatlah algoritma untuk menentukan bilangan terbesar dari dua buah bilangan
x dan y ??
Solusi : Penyelesaian dalam bentuk Pseudocode
1) masukan (x , y)
2) terbesar x // asumsi bahwa x adalah yang terbesar
3) JIKA terbesar < y MAKA
terbesar y
AKHIR JIKA
4) tampilkan (terbesar)

Penyelesaian dalam bentuk Flowchart


Contoh 2 : Suatu swalayan memberikan diskon sebesar 10% bagi siapa saja yang
berbelanja sebesar 100.000 atau lebih. Buatlah algoritma untuk menghitung nilai uang yang
harus dibayar oleh pembeli ??
Solusi : Penyelesaian dalam bentuk Pseudocode
1) Masukkan (pembelian)
2) JIKA pembelian >= 100000 MAKA
diskon 0.1 x pembelian
SEBALIKNYA
diskon 0
AKHIR-JIKA
3) pembayaran pembelian diskon
4) tampilkan (pembayaran)

Penyelesaian dalam bentuk Flowchart


3. Struktur Pengulangan
Pengulangan menyatakan suatu tindakan atau langkah yang dijalankan beberapa kali.
Sebagai contoh, jika Anda ingin menampilkan tulisan Hello sebanyak 10 kali, Anda dapat
menuliskannya menggunakan Struktur Sekuensial akan tetapi jika ingin menampilkan
dalam jumlah yang besar maka Struktur Sekuensial dianggap tidak praktis lagi. Oleh karena
itu dapat menggunakan Struktur Pengulangan.

Contoh 1 : Buatlah algoritma untuk menampilkan 6 buah tulisan Hello dengan


menggunakan pengulangan.
Solusi : Penyelesaian dalam bentuk Pseudocode
1) pencacah 1
2) ULANG SELAMA pencacah < 7
tampilkan (Hello)
pencacah pencacah + 1
AKHIR-ULANG
Penyelesaian dalam bentuk Flowchart

Contoh 2 : Buatlah algoritma untuk menampilkan bilangan sbb : 1 4 9 16 25 36 49


Solusi : Penyelesaian dalam bentuk Pseudocede
1) bil 1
2) ULANG SELAMA bil < 8
tampilkan (bil, bil x bil)
bil bil + 1
AKHIR-ULANG

Penyelesaian dalam bentuk Flowchart


LATIHAN
1. Buatlah algoritma untuk menampilkan bilangan sbb : 1 2 3 4 5 6 7 8 9 dan sebaliknya ?
2. Buatlah algoritma untuk menampilkan bilangan sbb : 5 4 3 2 1 ?
3. Buatlah algoritma untuk menampilkan bilangan genap dan ganjil kurang dari 20 ?
4. Diketahui tiga buah bilangan x, y, dan z. Buatlah diagram alir untuk mendapat nilai terbesar
diantara keiga bilangan tersebut ??
BAB III
DASAR PEMROGRAMAN C++

A. Mengenal Program C++


Contoh : program sederhana

# include < iostream.h >


main( )
{
cout << Selamat Belajar C++ \n;
}

Berkas header (berekstensi .h) adalah berkas yang berisi prototype fungsi, definisi
konstanta, dan definisi variable. Prototipe fungsi berupa judul suatu fungsi yang
dilengkapi dengan argumen dan tipe argumen serta tipe nilai balik untuk fungsi yang
memberikan nilai balik. Prototipe fungsi harus sudah tersedia sebelum pemanggilan
fungsi. Ini merupakan persyaratan selama kompilasi.
Praprosesor # include adalah suatu perintah yang digunakan untuk mengatur kompiler
agar membaca berkas header yang disertakan di belakang kata include saat
pelaksanaan kompilasi.
main( ) adalah fungsi yang akan dijalankan pertama kali
Pernyataan untuk menampilkan keluaran berupa cout. Setiap pernyataan harus
diakhiri tanda titik koma ( ; )

B. Pengenal (Identifier)
Adalah suatu nama yang digunakan dalam program untuk menyatakan variabel, fungsi, dll.
Aturan umum yang berlaku dalam membuat pengenal (identifier) :
Berawalan huruf kapital, huruf kecil atau karakter garis bawah ( _ ). Huruf kecil dan
huruf kapital dibedakan. Contoh, alamat dan Alamat adalah dua buah pengenal yang
berbeda.
Bagian berikutnya dapat berupa huruf, angka (0 .. 9) atau karakter garis bawah
Tidak boleh terdapat spasi
Absah Salah
N modal*bunga (ada tanda *)
_x 3Bulan (diawali dengan angka)
semester_1 Semester 1 (ada spasi)

C. Tipe Data

Tipe Keterangan
Char Menyatakan sebuah karakter (bisa berupa huruf seperti A dan a, digit
seperti 0 atau 7, atau simbol seperti & dan *)
Double Menyatakan bilangan berkoma
Float Menyatakan bilangan berkoma
Int Menyatakan bilangan bulat antara -32768 sampai 32767
long int Menyatakan bilangan bulat antara -2147483648 sampai 2147483648

D. Variabel
Adalah suatu nama yang menyatakan tempat dalam memori komputer yang digunakan
untuk menyimpan suatu nilai dan nilainya dapat diubah-ubah.
Mendeklarasikan tipe_data nama_variabel ; int n; maksudnya variabel n bertipe
variabel int (untuk menyimpan bilangan bulat)
char c; maksudnya variabel c bertipe
char (dipakai untuk meniympan
contoh : karakter)
int x; long int jum_penduduk; maksudnya
int y; variabel jum_penduduk bertipe long int
int z; (dipakai untuk menyimpan bilangan
bulat dengan nilai sekitar 2 milyar)
dapat disederhanakan mjd double jarak; maksudnya variabel
jarak bertipe double
int x, y, z ;
Memberikan variabel = nilai ; n = 7 ; berarti mengisikan 7 ke variabel n
nilai variabel n = n + 1; berari hasil penjumlahan nilai n
dengan 1 diberikan ke n. Dengan kata lain
isi n dinaikkan sebesar satu

E. Mengenal Komentar
Komentar digunakan untuk memberikan penjelasan kepada pembaca program. Komentar
tidak memberikan efek apa-apa pada keluaran. Isinya dapat saja berupa penjelasan terhadap suatu
pernyataan atau sejumlah pernyataan, dapat pula berisi kegunaan program beserta waktu
pembuatan dan pembuatnya. Sebuah komentar ditulis di dalam pasangan tanda //
Contoh : // ini adalah komentar C++

F. Menampilkan Informasi ke Layar


cout digunakan untuk menampilkan tipe data apa saja dengan bentuk yang sederhana,
cukup dengan melibatkan operator << .

G. Memasukkan Data
cin digunakan untuk membaca data dari keyboard dan berlaku untuk sebarang tipe data
dengan melibatkan operator >>.

Contoh 1

# include <iostream.h>
# include <conio.h>
main ( )
{
char nama [ 35 ] ; // untuk mendeklarasikan variable string bernama nama yang
dapat menyimpan hingga 35 karakter

cout << Nama Anda : ;


cin >> nama;

cout << Hai, << nama << . Selamat belajar C++\n ;


getche ( ) ;
}

Outputnya :
Nama Anda : (masukkan nama anda) (tekan Enter)
Hai, (nama anda). Selamat belajar C++

G. Operator Aritmatika
Digunakan untuk melakukan perhitungan aritmatika. Berkas header math.h menyediakan
prototipe sejumlah fungsi yang berkaitan dengan aritmatika.

Fungsi Keterangan
sqrt(x) Memberikan nilai balik berupa akar x. Nilai balik bertipe double dan
argumen juga bertipe double.
pow(x,y) Memberikan nilai balik berupa xy . Nilai balik bertipe double dan
argumen yang juga bertipe double.
tan(x) Memberikan nilai balik berupa tangent x. Argumen x berupa nilai
dalam satuan radians. Nilai balik berupa double dan argumen juga
bertipe double
sin(x) Memberikan nilai balik berupa sinus x. Argumen x berupa nilai dalam
satuan radians. Nilai balik bertipe double dan argumen juga bertipe
double
cos(x) Memberikan nilai balik berupa cosinus x. Argumen x berupa nilai
dalam satuan radians. Nilai balik bertipe double dan argumen juga
bertipe double
log(x) Memberikan nilai balik berupa loge. nilai balik bertipe double dan
argumen juga bertipe double
log10(x) Memberikan nilai balik berupa log10 x . nilai bertipe double dan
argumen juga bertipe double
cabs(x) Memberikan nilai balik berupa nilai absolut x. Nilai balik bertipe int
dan argumen juga bertipe int.
fabs(x) Memberikan nilai balik berupa nilai absolut x. Nilai balik bertipe
double dan argumen juga bertipe double

Contoh :

Notasi Matematika Ekspresi C++


ax2 + bx + c a* x* x + b* x + c
b sqrt(b)
3
b pow(b, 1.0/3)
a+b (a + b) / (c + d)
c+d
b2 + 4ac sqrt(b* b 4* a* c)
a x+y exp(x+y)/ (x + y)
x+y
a +
b a+ b / fabs (m-n)
x+y
log10 m log 10(m)
loge (m + n) log (m+n)

H. Mengenal Tipe Struct


Di dalam C++ terdapat tipe struct yang dapat dipakai unruk menghimpun sejumlah data
dengan tipe yang berbeda-beda. Data yang diletakkan dalam sebuah struct adalah data yang
terkait. Sebagai contoh mungkin untuk membuat tipe struct yang mengandung data nomor
pegawai (NIP), nama pegawai, dan gaji.
Pendefinisiannya adalah sebagai berikut :

struct data_pegawai
{
int nip;
char nama [25] ;
long int gaji;
};

Pada contoh diatas, tipe struct data_pegawai terdiri atas data nip, nama, dan gaji yang
secara berturut-turut bertipe int, char [25], dan long int. Dalam hal ini nip, nama, dan gaji
disebut sebagai elemen struct atau field.

Contoh 2

# include < iostream.h>


# include <conio.h>
#include <string.h>

struct data_pegawai
{
int nip;
char nama [25];
long int gaji;
};

main ( )
{
struct data_pegawai peg;
peg.nip = 4567 ;
strcpy(peg.nama, Audi Febrianti) ; // penugasan literal string ke variable string
peg. Gaji = 1200000 ;

cout << NIP : << peg . nip << \n;


cout << Nama : << peg . Nama << \n;
cout << Gaji : << peg . Gaji << \n;
getche ( ) ;
}

Outputnya :
NIP : 4567
Nama : Audi Febrianti
Gaji : 1200000
I. Operator Pembanding

Operator Keterangan Operator Keterangan


> Lebih dari * Perkalian
>= Lebih dari atau sama dengan / Pembagian
< Kurang dari % Sisa pembagian (modulus)
<= Kurang dari atau sama dengan << Geser bit ke kiri
!= Tidak sama dengan >> Geser bit ke kanan
== Sama dengan & Operator dan
++ Penaikan ke belakang ^ Operator xor
-- Penurunan di belakang | Operator bukan
() Pemanggilan fungsi && Logika dan
[] Elemen array || Logika atau
! Operator bukan ?: Operator kondisi

LATIHAN

1. Buatlah program lengkap untuk menampilkan NAMA dan NPM Anda ??


2. Buatlah program C++ untuk membaca dua buah bilangan bulat dan kemudian menampilkan
jumlah kedua bilangan tersebut ??
BAB IV
OPERASI SELEKSI

A. IF ... ELSE
Kondisi pada pernyataan if harus ditulis dalam tanda kurung. Dengan kata lain, kata kurung
harus disertakan untuk melingkupi kondisi pada pernyataan if. Dalam bahasa C++, jika di dalam
{ } hanya terdapat sebuah pernyataan, tanda tersebut bisa dibuang.

Pseudocode Kode C++ If..bersarang


JIKA kondisi benar MAKA if (kondisi) if (kondisi)
pernyataan_1 { {
....... pernyataan_1 ; pernyataan_1 ;
SEBALIKNYA ...... ......
pernyataan_2 } }
........ else else
AKHIR-JIKA pernyataan_2 ; if (kondisi)
....... {
} pernyataan_1 ;
......
else
pernyataan_2 ;
.......
}

JIKA kondisi benar MAKA if (kondisi)


pernyataan {
....... pernyataan ;
AKHIR-JIKA ......
}

Contoh 1 : Menentukan bilangan genap dan bilangan ganjil. Sebuah bilangan dapat
ditentukan sebagai bilangan genap jika bilangan tersebut habis dibagi dengan 2. Jika tidak habs
dibagi dengan 2 maka bilangan tersebut dianggap bilangan ganjil. Buatlah algoritma dan
programnya ??
Solusi :
Algoritma :
1) masukkan (bilangan)
2) JIKA sisa_pembagian (bilangan,2) = 0 MAKA
Tampilkan (Bilangan genap)
SEBALIKNYA
Tampilkan (Bilangan ganjil)
AKHIR-JIKA

Program :
# include <iostream.h>
# include <conio.h>
main ( )
{
int bilangan ;

cout << Masukkan sebuah bilangan bulat : ;


cin >> bilangan;

if (bilangan % 2 = = 0)
cout << Bilangan genap << \n ;
else
cout << Bilangan ganjil << \n ;
getche ( ) ;
}
# include <iostream.h>
Outputnya :
# include <conio.h>
Masukkan sebuah bilangan bulat : 54 (tekan Enter)
main ( )
Bilangan genap
{
double x , y, terbesar ;
Masukkan sebuah bilangan bulat : 55 (tekan Enter )
Bilangan ganjil
cout << Masukkan x : ;
cin >> x ;
Contoh 2 : Menentukan bilangan terbesar diantara dua buah bilangan. Buatlah algoritma dan
program untuk cout << Masukkan
menampilkan dua ybuah
: ;bilangan bulat dimasukkan dari keyboard ??
cin >> y ;
Solusi : Cara 1
// mengasumsikan
Algoritma : yang terbesar adalah x
1) masukan (x <
if (terbesar , y)
y)
2) terbesar
terbesar =//yasumsi
x ; bahwa x adalah yang terbesar
JIKA terbesar < y MAKA
cout <<terbesar y terbesar = << terbesar << \n;
Bilangan
AKHIR JIKA
getche ( ) ;
3) }tampilkan (terbesar)

Program : :
Outputnya
Masukkan x : 34 (tekan Enter)
Masukkan y : 67 (tekan Enter)
Bilangan terbesar 67

Masukkan x : 55 (tekan Enter)


Masukkan y : 12 (tekan Enter)
Bilangan terbesar 55
# include <iostream.h>
# include <conio.h>
Cara
main2 : (dilakukan
) tanpa melibatkan variabel lain
{
Algoritma :
double x , y ;
1) masukkan (x , y)
cout <<
2) JIKA x >Masukkan
y MAKA x : ;
cin >> x ;
Tampilkan (terbesar yaitu , x)
cout << Masukkan y : ;
SEBALIKNYA
cin >> y ;
Tampilkan (terbesar yaitu, y)
if (x < y)
AKHIR-JIKA
cout << Bilangan terbesar = << x << \n;
Program
else :
cout << Bilangan terbesar = << y << \n;
getche ( );
}

Outputnya :
Masukkan x : 5 (tekan Enter)
Masukkan y : 6 (tekan Enter)
Bilangan terbesar = 6
Contoh 3 : Memvalidasi nilai ujian. Buatlah algoritma dan program yang meminta sebuah nilai
ujian dimasukkan dari keyboard dan memvalidasi nilai tersebut. Berikan komentar Absah jika
nilai tersebut berada antara 0 100 dan berikan komentar Tidak absah untuk keadaan
sebaliknya ??
Solusi :
Algoritma :
1) masukkan (nilai)
2) JIKA (nilai > = 0 dan nilai < = 100 MAKA
Tampilkan (Absah)
SEBALIKNYA
Tampilkan (Tidak absah)
AKHIR-JIKA
Program :
# include <iostream.h>
# include <conio.h>
main ( )
{
double nilai ;

cout << Masukkan nilai ujian: ;


cin >> nilai ;

if (nilai >=0 && nilai >= 100)


cout << Absah \n;
else
cout << Tidak absah \n;
getche ( ) ;
}

Outputnya :
Masukkan nilai ujian : -5 (tekan Enter)
Tidak absah

Masukkan nilai ujian : 89 (tekan Enter)


Absah

Contoh 4 : Menentukan predikat kelulusan. Tabel berikut memperlihatkan daftar predikat


kelulusan seorang sarjana berdasarkan indeks prestasi kumulatifnya. Buatlah algoritma dan
program untuk menentukan predikat kelulusan seperti di bawah ini :
IP Kumulatif Predikat Kelulusan
2.00 IP 2.75 Lulus Memuaskan
2.75 IP 3.50 Lulus Sangat Memuaskan
3.50 IP 4.00 Lulus dengan Pujian

Solusi : Menggunakan if bersarang


Algoritma :
1) masukkan (ip)
2) JIKA ip 2 dan ip 2.75 MAKA
Tampilkan (Lulus Memuaskan)
SEBALIKNYA
JIKA ip > 2.75 dan ip 3.50 MAKA
Tampilkan (Lulus Sangat Memuaskan)
SEBALIKNYA
JIKA ip > 3,50 dan ip 4.00 MAKA
Tampilkan (Lulus dengan Pujian)
SEBALINKNYA
Tampilkan (Data IP tidak valid)
AKHIR-JIKA
AKHIR-JIKA
AKHIR-JIKA

Program :
# include <iostream.h>
# include <conio.h>
main ( )
{
double ip ;

cout << IP Kumulatif : ;


cin >> ip;

if (ip >= 2.00 && ip <= 2.75)


cout << Lulus Memuaskan \n ;
else
if (ip > 2.75 && ip <= 3.50)
cout << Lulus Sangat Memuaskan \n ;
else
if (ip > 3.50 && ip <= 4.00)
cout << Lulus Dengan Pujian \n ;
else
cout << Data IP tidak valid;

getche ( );
}

Outputnya :
IP Kumulatif : 3.00 (tekan Enter)
Lulus Sangat Memuaskan

IP Kumulif : 1.50 (tekan Enter)


Data IP tidak valid

Contoh 5 : Menentukan nama bulan menurut angka. Buatlah algoritma dan program yang
membaca data kode bulan dari keyboard dan kemudian menampilkan nama bulan ??
Solusi : Algoritma
1) Masukkan (kode_bulan)
2) JIKA kode_bulan =1 MAKA
Tampilkan (Janauari)
SEBALIKNYA
JIKA kode_bulan = 2 MAKA
Tampilkan (Februari)
SEBALIKNYA
JIKA kode_bulan = 3 MAKA
Tampilkan (Maret)
SEBALIKNYA
JIKA kode_bulan = 4 MAKA
Tampilkan (April)
SEBALIKNYA
JIKA kode_bulan = 5 MAKA
Tampilkan (Mei)
SEBALIKNYA
JIKA kode_bulan = 6 MAKA
Tampilkan (Juni)
SEBALIKNYA
JIKA kode_bulan = 7 MAKA
Tampilkan (Juli)
SEBALIKNYA
JIKA kode_bulan = 8 MAKA
Tampilkan (Agustus)
SEBALIKNYA
JIKA kode_bulan = 9 MAKA
Tampilkan (September)
SEBALIKNYA
JIKA kode_bulan = 10 MAKA
Tampilkan (Oktober)
SEBALIKNYA
JIKA kode_bulan = 11 MAKA
Tampilkan (November)
SEBALIKNYA
JIKA kode_bulan = 12 MAKA
Tampilkan (Desember)
SEBALIKNYA
Tampilkan (Salah kode bulan)
AKHIR-JIKA
AKHIR-JIKA
AKHIR-JIKA
AKHIR-JIKA
AKHIR-JIKA
AKHIR-JIKA
AKHIR-JIKA
AKHIR-JIKA
AKHIR-JIKA
AKHIR-JIKA
AKHIR-JIKA

Program :

# include <iostream.h>
# include <conio.h>
main ( )
{
int kode_bulan;

cout << Masukkan kode bulan (1..12) : ) ;


cin >> kode_bulan ;

if (kode_bulan = = 1)
cout << Januari \ n ;
else
if (kode_bulan = = 2)
cout << Februari \ n ;
else
if (kode_bulan = = 3)
cout << Maret\ n ;
else
if (kode_bulan = = 4)
cout << April \ n ;
else
if (kode_bulan = = 5)
cout << Mei \ n ;
else
if (kode_bulan = = 6)
coutelse<< Juni \ n ;
else if (kode_bulan = = 10)
if (kode_bulan = = 7)
cout << Oktober \ n ;
cout
else<< Juli \ n ;
else if (kode_bulan = = 11)
if (kode_bulan = = 8)
cout << November \ n ;
cout <<
else Agustus \ n ;
else if (kode_bulan = = 12)
if (kode_bulan
cout <<= Desember
= 9) \ n ;
coutelse
<< September \ n ;
cout << Salah kode bulan \ n ;
getche ( );
}

Outputnya :
Masukkan kode bulan (1..12) : 12 (tekan Enter)
Desember

Masukkan kode bulan (1..12) : 14 (tekan Enter)


Salah kode bulan
Contoh 6 : Menentukan jumlah hari. Buatlah algoritma dan program yang meminta data bulan
(1..12) dimasukkan dari keyboard dan kemudian menentukan jumlah hari dalam bulan tersebut ?
Solusi : Algoritma
1) Masukkan (kode_bulan)
2) JIKA kode_bulan = 2 MAKA
Tampilkan (Jumlah hari 28 atau 29)
SEBALIKNYA
JIKA kode_bulan = 1 atau 3 atau 5 atau 7 atau 8 atau 10 atau 12 MAKA
Tampilkan (Jumlah hari 31)
SEBALIKNYA
JIKA kode_bulan = 4 atau 6 atau 9 atau 11 MAKA
Tampilkan (Jumlah hari 30)
SEBALIKNYA
Tampilkan (Salah kode bulan)
AKHIR-JIKA
AKHIR-JIKA
AKHIR-JIKA

Program :
# include <iostream.h>
# include <conio.h>
main( )
{
int kode_bulan;
cout << Masukkan kode bulan (1..12 : ) ) ;
cin >> kode_bulan ;

if (kode_bulan = = 2)
cout << Jumlah hari 28 atau 29 \n ;
else
if (kode_bulan = = 1 || kode_bulan = = 3 || kode_bulan = = 5 ||
kode_bulan = = 7 || kode_bulan = = 8 || kode_bulan = = 10 ||
kode_bulan = = 12 )
cout << Jumlah hari 31 \n ;
else
if (kode_bulan = = 4 || kode_bulan = = 6 ||
kode_bulan = = 9 || kode_bulan = = 11 )
cout << Jumlah hari 30 \n ;
else
cout <<Salah kode bulan \ n ;
getche ( ) ;
}

Outputnya :
Masukkan kode bulan (1..12) : 4 (tekan Enter)
Jumlah hari 30

Masukkan kode bulan (1..12) : 15 (tekan Enter)


Salah kode bulan

B. SWITCH
Penyataan break pada pernyataan switch digunakan agar ekesekusi dilanjutkan ke
pernyataan yang terletak sesudah pernyataan switch. Bagian default pada switch bersifat
opsional. Bagian ini hanya dijalankan kalau tak ada satupun bagian case yang cocok dengan nilai
yang ada pada switch. Pernyataan break pada bagian default bisa ditiadakan tanpa mengubah
hasil.

Pseudocode Kode C++


COCOK nilai switch (nilai)
DENGAN nilai1 MAKA {
Pernyataan_11 ; case nilai1 :
Pernyataan_12 ; pernyataan_11 ;
DENGAN nilai1 MAKA pernyataan_12 ;
Pernyataan_21 ; break;
Pernyataan_22 ; case nilai2 :
LAINNYA pernyataan_21 ;
Pernyataan_31 ; pernyataan_22 ;
Pernyataan_32 ; break;
AKHIR-COCOK default :
pernyataan_n1 ;
pernyataan_n2 ;
break;
}
COCOK nilai switch (nilai)
DENGAN nilai1 MAKA {
Pernyataan_11 ; case nilai1 :
Pernyataan_12 ; pernyataan_11 ;
DENGAN nilai1 MAKA pernyataan_12 ;
Pernyataan_21 ; break;
Pernyataan_22 ; case nilai2 :
LAINNYA pernyataan_21 ;
Pernyataan_31 ; pernyataan_22 ;
Pernyataan_32 ; break;
AKHIR-COCOK case nilai3 :
pernyataan_31 ;
pernyataan_32 ;
break;
}

Contoh 1 : Menentukan nama bulan menurut angka. Buatlah algoritma dan program yang
membaca data kode bulan dari keyboard dan kemudian menampilkan nama bulan ??
Solusi : Algoritma
1) Masukkan (kode_bulan)
2) COCOK kode_bulan
DENGAN 1 MAKA
Tampilkan (Januari)
DENGAN 2 MAKA
Tampilkan (JFebruari)
DENGAN 3 MAKA
Tampilkan (Maret)
DENGAN 4 MAKA
Tampilkan (April)
DENGAN 5 MAKA
Tampilkan (Mei)
DENGAN 6 MAKA
Tampilkan (Juni)
DENGAN 7 MAKA
Tampilkan (Juli)
DENGAN 8 MAKA
Tampilkan (Agustus)
DENGAN 9 MAKA
Tampilkan (September)
DENGAN 10 MAKA
Tampilkan (Oktober)
DENGAN 11 MAKA
Tampilkan (November)
DENGAN 12 MAKA
Tampilkan (Desember)
LAINNYA
Tampilkan (Salah kode bulan)
AKHIR-COCOK

Program :
# include <iostream.h>
# include<conio.h>
main ( )
{
int kode_bulan ;
cout << Masukkan kode bulan (1..12) : ;
cin >> kode_bulan;

switch (kode_bulan)
{
case 1 :
cout << Januari \n ;
break;
case 2 :
cout << Februari \n ;
break;
case 3 :
cout << Maret \n ;
break;
case 4 :
cout << April \n ;
break;
case 5 :
cout << Mei \n ;
break;
case 6 :
cout << Juni \n ;
break;
case 7 :
cout << Juli \n ;
break;
case 8 :
cout << Agustus \n ;
break;
case 9 :
cout << September \n ;
break;
case 10:
cout << Oktober \n ;
break;
case 11:
cout << November \n ;
break;
case 12:
cout << Desember \n ;
break;
default :
cout << Salah kode bulan \n ;
}
getche ( ) ;
}

Contoh 2 : Menentukan jumlah hari. Buatlah algoritma dan program yang meminta data bulan
(1..12) dimasukkan dari keyboard dan kemudian menentukan jumlah hari dalam bulan tersebut ?
Solusi : Algoritma
1) masukkan (kode_bulan)
2) COCOK kode_bulan
DENGAN 2 MAKA
Tampilkan (Jumlah hari 28 atau 29)
DENGAN 1 MAKA
Tampilkan (Jumlah hari 31)
DENGAN 3 MAKA
Tampilkan (Jumlah hari 31)
DENGAN 5 MAKA
Tampilkan (Jumlah hari 31)
DENGAN 7 MAKA
Tampilkan (Jumlah hari 31)
DENGAN 8 MAKA
Tampilkan (Jumlah hari 31)
DENGAN 10 MAKA
Tampilkan (Jumlah hari 31)
DENGAN 12 MAKA
Tampilkan (Jumlah hari 31)
DENGAN 4 MAKA
Tampilkan (Jumlah hari 30)
DENGAN 6 MAKA
Tampilkan (Jumlah hari 30)
DENGAN 9 MAKA
Tampilkan (Jumlah hari 30)
DENGAN 11 MAKA
Tampilkan (Jumlah hari 30)
LAINNYA
Tampilkan (Salah kode bulan)
AKHIR-COCOK

Program :

# include <iostream.h>
# include<conio.h>
main ( )
{
int kode_bulan ;
cout << Masukkan kode bulan (1..12) : ;
cin >> kode_bulan;

switch (kode_bulan)
{
case 2 :
cout << Jumlah hari 28 atau 29 \n ;
break;
case 1 :
case 3 :
case 5 :
case 7 :
case 8 :
case 10 :
case 12 :
cout << Jumlah hari 31 \n ;
break ;
case 4 :
case 6 :
case 9 :
case 11 :
cout << Jumlah hari 30 \n ;
break ;
default :
cout << Salah kode bulan \n ;
}
getche ( ) ;
}

LATIHAN
1. Buatlah algoritma dan program yang meminta sebuah nilai ujian dimasukkan dari keyboard.
Hasilnya berupa keterangan Lulus kalau nilainya lebih besar atau sama dengan 60 dan
Tidak Lulus kalau nilainya kurang dari 60 ??
2. Buatlah algoritma dan program yang meminta sebuah bilangan bulat dimasukkan dari
keyboard dan kemudian menghasilkan informasi sebagai berikut :
Negatif kalau nilainya kurang dari nol. Nol kalau nilainya sama dengan nol. Positif
kalau nilainya lebih dari nol ??
3. Berdasarkan data berikut : 1 = ANTV 2 = RCTI 3 = SCTV 4 = INDOSIAR. Buatlah
algoritma dan program yang mula-mula meminta nomor saluran dimasukkan dari keyboard
dan kemudian menampilkan nama stasiun TV. Jika tidak terdapat nomor saluran maka akan
ditampilkan Tidak ada siaran coyyy. Penyelesaian menggunakan JIKA .. AKHIR-JIKA
dan COCOK-AKHIR COCOK ??
4. Data berikut mencatumkan nama-nama lapisan udara berdasarkan letak ketinggian dari
permukaan bumi :
0 tinggi < 10 km : Troposfer , 10 tinggi < 40 km : Statosfer,
40 tinggi < 70 km : Mesosfer, 70 tinggi < 400 km : Termosfer,
tinggi 400 km : Eksosfer. Buatlah algoritma dan program yang mula-mula meminta
masukan data ketinggian dan kemudian menentukkan nama lapisan udaranya ??
BAB V
OPERASI PENGULANGAN

A. WHILE
Pseudocode C++
ULANG SELAMA kondisi while (kondisi)
Pernyataan_1 {
........... Pernyataan_1 ;
Pernyataan_n .........
AKHIR-ULANG Pernyataan_n ;
}

Dalam hal ini, bagian Pernyataan_1 hingga Pernyataan_n akan dijalankan secara terus
menerus selama kondisi bernilai BENAR. Seandainya dalam tanda kurung { dan }
hanya terdapat satu pernyataan, pasangan tanda tersebut dapat dihilangkan. Contoh :

while (kondisi)
Pernyataan ;

Contoh 1 : Buatlah algoritma untuk menampilkan 6 buah tulisan Hello dengan


menggunakan pengulangan ??
Solusi : Program
# include <iostream.h>
# include <conio.h>
main ( )
{
int bil ;
bil = 1 ;
while ( bil < =6 )
{
cout << Hello \n ;
bil = bil + 1 ;
}
getche ( ) ;
}

Contoh 2 : Buatlah program untuk menampilkan bilangan sbb : 1 2 3 4 5 6 7 8 9 ??


Solusi : Program
# include<iostream.h>
# include<conio.h>
main ( )
{
int bil ;
bil = 1 ;
while (bil < = 9)
{
cout << bil ;
bil = bil + 1 ; // tambahkan cout << \n ; untuk pindah baris
}
}

Contoh 3 : Buatlah program untuk menampilkan bilangan sbb : 5 4 3 2 1 ??


Solusi : Program

# include<iostream.h>
# include<conio.h>
main ( )
{
int bil ;
bil = 5 ;
while (bil < = 1)
{
cout << bil ;
bil = bil + 1 ; // tambahkan cout << \n ; untuk pindah baris
}
}
Contoh 4 : Buatlah program untuk menampilkan bilangan ganjil kurang dari 20 ??
Solusi : Program
# include<iostream.h>
# include<conio.h>
main ( )
{
int bil ;
bil = 1 ;
while (bil < 20)
{
cout << bil ;
bil = bil + 2 ; // tambahkan cout << \n ; untuk pindah baris
}
}
Contoh 5 : Buatlah program untuk menampilkan bilangan genap kurang dari 20 ??
Solusi : Program
# include<iostream.h>
# include<conio.h>
main ( )
{
int bil ;
bil = 1 ; while (bil < 20)
{
cout << bil ;
bil = bil + 2 ; // tambahkan cout << \n ; untuk pindah baris
}
}

Contoh 6 : Buatlah algoritma dan program untuk menghitung jumlah sepeerti berikut
dengan n adalah bilangan yang dimasukkan dari keyboard :
1 + 2 + 3 + 4 + ... + (n-2) + (n-1) + n
Solusi : Algoritma
1) masukkan (n)
2) jum 0
3) pencacah 0
4) ULANG SELAMA pencacah n
jum jum + pencacah
pencacah pencacah + 1
AKHIR-ULANG
5) tampilkan (jum)

Program
# include <iostream.h>
# include <conio.h>
main ( )
{
int n, pencacah, jum ;

cout << n= ;
cin >> n ;
jum = 0 ;
pencacah = 1;
while (pencacah < = n)
{
jum = jum + pencacah ;
pencacah = pencacah + 1;
}
cout << Jumlah= << jum << \n ;
getche ( ) ;
}
Contoh 7 : Buatlah algoritma dan program yang meminta n buah bilangan bukat
dimasukkan dari keyboard dan kemudian menampilkan nilai rata-rata dari keseluruhan
bilangantersebut??
Solusi : Algoritma
1) masukkan (n)
2) jum 0
3) pencacah 0
4) ULANG SELAMA pencacah n
masukkan (bil)
jum jum + bil
pencacah pencacah + 1
AKHIR-ULANG
5) rata_rata jum / n
6) tampilkan (rata_rata)

Program
# include<iostream.h>
# include<conio.h>
main ( )
{
int n, pencacah ;
double bil, jum, rata_rata ;
cout << Jumlah data = ;
cin >> n ;

jum = 0 ;
pencacah = 1;
while (pencacah < = n)
{
cout << Bilangan << pencacah << = ;
cin >> bil ;
jum = jum + bil ;
pencacah = pencacah + 1 ;
}
rata_rata = jum / n ;
cout << Rata-rata= << rata_rata << \n ;
getche ( ) ;
}

Contoh 8 : Buatlah algoritma dan program yang pertama-tama meminta suatu string
dimasukkan dari keyboard dan kemudian menghitung jumlah karakter yang terdapat pada
string tersebut ??
Solusi : Algoritma
1) masukkan (string)
2) indeks 0
3) ULANG SELAMA string [indeks] NULL
Indeks indeks + 1
AKHIR-ULANG
4) tampilkan (Jumlah karakter = , indeks)

Program :

# include <iostream.h>
# include <conio.h>
main ( ) ;
{
char string [80] ;
int indeks ;

cout << Masukkan suatu string : ;


cin >> string ;

indeks = 0;
while (string [indeks] != \0 )
{
indeks = indeks + 1 ;
}

cout << Jumlah karakter = << indeks << \n ;


getche ( ) ;
}

Outputnya :
Masukkan suatu string : Bengkulu (tekan Enter)
Jumlah karakter = 8
Contoh : Buatlah algoritma dan program untuk menampilkan suatu string yang dimasukkan
dari keyboard menjadi terbalik ??
Solusi : Algoritma
1) masukkan (string)
2) indeks panjang (string) 1
3) ULANG SELAMA indeks > = 0
tampilkan (string [indeks])
indeks = indeks 1
AKHIR-ULANG

Program :

# include <iostream.h>
# include <conio.h>
# include <string.h> // prototype strlen ( )
main ( ) ;
{
char string [80] ;
int indeks ;

cout << Masukkan suatu string : ;


cin >> string ;

indeks = strlen (string) 1 ;


while (indeks > = 0 )
{
cout << string [indeks] ;
indeks = indeks 1 ;
}

cout << \n ;
getche ( ) ;
}

Outputnya :
Masukkan suatu string : Bengkulu (tekan Enter)
ulukbneB

LATIHAN
1. Buatlah algoritma dan program untuk menampilkan bilangan genap kurang dari 20 ?
2. Buatlah program untuk menampilkan bilangan 1 4 9 16 25 36 49 ??

Anda mungkin juga menyukai