Anda di halaman 1dari 8

5

Modul 05
RUNTUNAN

Algoritma merupakan runtunan (sequence) satu atau lebih instruksi, yang


berarti bahwa:
1. Tiap instruksi dikerjakan satu persatu;
2. Tiap instruksi dilaksanakan tepat sekali; tidak ada instruksi yang diulang;
3. Urutan instruksi yang dilaksanakan pemroses sama dengan urutan instruksi
sebagaimana yang tertulis di dalam teks algoritmanya;
4. akhir dari instruksi terakhir merupakan akhir algoritma.
Urutan instruksi di dalam algoritma adalah penting. Urutan instruksi
menunjukkan urutan logik penyelesaian masalah. Bergantung pada masalahnya,
urutan instruksi yang berbeda mungkin tidak ada pengaruhnya terhadap solusi
persoalan, tetapi mungkin juga menghasilkan keluaran yang berbeda pula.

3.1

Urutan instruksi yang tidak berpengaruh terhadap solusi persoalan.

Contoh kasus:
Dibaca dua buah nilai integer, A dan B. Hitung jumlah keduanya dan hasil kali
keduanya, lalu cetak jumlah dan hasil kali tersebut.

Algortima Runtunan_1

Algortima Runtunan_2

Deklarasi:
A, B, C, D : integer

Deklarasi:
A, B, C, D : integer

Deskripsi:
Read(A, B)
C A+ B
D A* B
Write(C,D)

Deskripsi:
Read(A, B)
D A* B
C A+ B
Write(C,D)

Dasar pemrograman/ Modul_05_Runtunan

Kedua algoritma di atas akan menghasilkan keluaran yang sama meskipun


urutan instruksinya diubah.

3.2

Urutan instruksi berpengaruh terhadap solusi persoalan.

Contoh kasus:
Diketahui dua buah nilai integer, masing-masing disimpan di dalam dua buah
peubah (variabel), A dan B. Bagaimana cara mempertukarkan nilai A dan B ?
misalnya, sebelumnya pertukaran A=8 dan B=5, maka setelah pertukaran, nilai A=5
dan B=8.
Dalam mempertukarkan nilai dua buah variabel, perlu digunakan variabel bantu,
misalnya temp.

Algoritma Tukar_1

Algoritma Tukar_2

Deklarasi:
A : integer
{nilai pertama}
B : integer
{nilai kedua}
Temp : integer {variabel bantu}

Deklarasi:
A : integer
{nilai pertama}
B : integer
{nilai kedua}
Temp : integer {variabel bantu}

Deskripsi:
Read(A, B)
Write(A,B)
temp A
A B
B temp
Write(A,B)

Deskripsi:
Read(A, B)
Write(A,B)
temp A
B temp
A B
Write(A,B)

Kedua algoritma di atas akan memberikan hasil yang berbeda. Pada algoritma
pertama akan memberikan hasil yang diinginkan sebaliknya pada algortima kedua nilai
A da nilai b tidak akan bertukar.

Contoh:
1. Tulislah program untuk menampilkan jumlah hari, jam, menit, dan detik dari
masukan berupa lamanya waktu dalam detik. Sebagai contoh, masukan 100.000

Dasar pemrograman/ Modul_05_Runtunan

detik akan menghasilkan keluaran: 1 hari, 3 jam 46 menit dan 40 detik. Keluaran
dari program ini adalah banyaknya hari, jam, menit dan detik dari waktu detik yang
dimasukan.
Jawab:
Misalkan masukan 100.000 detik. Langkah-langkah penghitungan tersebut dapat
diltuliskan sebagai berikut:
-

Banyaknya hari = 100.000 / (60 * 60 * 24) = 100.000 / 86.400 = 1 hari.

Banyaknya jam = (100.000 1 * 86.400)/ (60 * 60) = 13.600 / 3600 = 3 jam

Banyaknya menit = (13.600 3 * 3.600) / 60 = 2.800 / 60 = 46 menit

Banyaknya detik = (2.800 46 * 60) = 2.800 2.760 = 40 detik.

Berdasarkan contoh penghitungan di atas, maka dapat dituliskan algoritma


pencarian hari, jam, menit dan detik adalah sebagai berikut:

Algortima Konversi_detik
Deklarasi
Detik : longint;
Hr, jm, mn, dt : integer;
Deskripsi
Read(detik)
hr detik / 86400
detik detik hr * 86400
jm detik / 3600
detik detik jm * 3600
mn detik / 60
detik detik mn * 60
dt detik.
Write(hr, jm, mn, dt)

Jika algoritma di atas ditranslasikan ke bahasa Pascal, digunakan tipe data longint
untuk variabel detik karena range(ranah nilai) tipe integer terbatas, sedangkan tipe
longint mempunyai range yang lebih besar dari integer.
Berikut ini Program Konversi Detik dalam bahasa Pascal:

Dasar pemrograman/ Modul_05_Runtunan

Program Konversi_Detik
Const
Satuhari = 60 * 60 * 24;
Var
Detik: longit;
hr, jm, mn, dt: integer;

Begin
Write (masukkan waktu (dalam detik): );
Readln(detik);
Writeln(detik, detik terdiri dari);

hr := detik div satuhari;


detik := detik hr * satuhari;

jm := detik div 3600;


detik := detik jm * 3600;

mn := detik div 60;


dt := detik mn * 60;

Writeln(hr, hari);
Writeln(jm, jam);
Writeln(mn, menit);
Writeln(dt, detik);
End.

Keluaran program di atas adalah sebagai berikut:

Dasar pemrograman/ Modul_05_Runtunan

Masukkan waktu (dalam detik) : 100000


100000 detik terdiri dari:
1 hari
3 jam
46 menit
40 detik

2. Dibaca nama karyawan dan gaji pokok bulanannya. Gaji bersih yang diterima
pegawai adalah:
gaji bersih = gaji pokok + tunjangan pajak
Tunjangan karyawan dihitung 20% dari gaji pokok, sedangkan pajak adalah 15%
dari gaji pokok ditambah tunjangan. Nama karyawan dan gaji bersihnya dicetak ke
piranti keluaran. Tuliskan algoritmanya.
Jawab:
Tunjangan = 0.2 * gaji pokok
Pajak = 0.15 * (gaji pokok + tunjangan)
Gaji bersih = gaji pokok + tunjangan pajak
Dari ketentuan di atas kita dapat tuliskan algoritma sebagai berikut:

Algoritma Gaji_Karyawan
Deklarasi
Nama : string
GaPok, Tunjangan, GaBer : real
Deskripsi
Read (Nama, GaPok)
Tunjangan 0.2 * GaPok
Pajak 0.15 * (GaPok + Tunjangan)
GaBer GaPok + Tunjangan Pajak
Write(nama, GaBer)
Berikut ini program menghitung Gaji Karyawan yang dituliskan dalam bahasa
Pascal:
Program Mengitung_Gaji_Karyawan;
Var

Dasar pemrograman/ Modul_05_Runtunan

Nama : string[25];
Gapok, tunjangan, gaber : real;

Begin
Write(Masukkan Nama Karyawan : );
Readln(nama);
Write(Masukkan Gaji Pokok

: );

Readln (gapok);
Tunjangan := 0.2 * gapok;
Pajak := 0.15 (gapok + tunjangan);
Gaber := gapok + tunjangan pajak;
Writeln(Gaji Bersih

: , gaber:7:2);

End.

Jika Program dijalankan maka keluaran dari program adalah sebagai berikut:
Masukkan Nama Karyawan : Yahya
Masukkan Gaji Pokok
Gaji Bersih

: 1000000

: 1020000.00

3. Buatlah program untuk mencari nilai jam, menit, detik dari total detik yang
dimasukkan
Tampilan program sbb:
Masukkan Total detik: 4000
Algoritma mendapatkan Jam Menit dan Detik
Deklarasi
1 jam 6 menit 40 detik
jj, mm, dd: integer
Detik, sisa: long Integer
Deskripsi
Read (Detik)
jj detik div 3600
sisa detik mod 3600
mm sisa div 60
dd sisa modModul_05_Runtunan
60
Dasar pemrograman/
Write(jj, mm, dd)

Latihan:
1.

Buatlah Algoritma dalam bentuk pseudocode dan tuliskan kode programnya


dalam bahasa PAscal untuk menukar dua buah bilangan. Pada algoritma tersebut
tidak diperkenankan menukar nama variabel saja tetapi nilai kedua variabel
tersebut yang dipertukarkan. Jika program tersebut dijalankan maka hasil
tampilan adalah sebagi berikut:
Masukkan Nilai 1= 10
Masukkan Nilai 2= 35

Penukaran nilai....
Nilai 1= 35
Nilai 2= 10

2.

Buatlah algoritma dan program dalam bahasa Pascal untuk meminta masukan
berupa nama, nim, absen, nilai tugas, nilai uts dan nilai uas. Berdasarkan ,
absen, nilai tugas, nilai uts dan nilai uas tersebut hitunglah nilai akhir mahasiswa
tersebut dengan menggunakan formula sebagai berikut:
Nilai akhir = 10% absen + 20% tugas + 30% uts + 40% uas
Hasil keluaran yang diharapkan adalah sbb:
Nama = Yulia

Dasar pemrograman/ Modul_05_Runtunan

NIM

= 4150235262

Absen = 70
Tugas = 85
UTS

= 70

UAS = 50

Yulia 4150235262 mendapatkan Nilai akhir = 65

Referensi:
Cheltenham Computer Training, C Programming, www.cctglobal.com, United Kingdom,
1997
Deitel & Deitel, C How to Program 3rd Edition, Prentice Hall, New Jersey, 2001
Jogiyanto, Konsep Dasar Pemrograman Bahasa PASCAL, Andi Offset, Yogyakarta,
1993
Thompson Susabda Ngoen, Pengantar Algoritma dengan Bahasa C, Salemba Teknika,
Jakarta, 2004

Dasar pemrograman/ Modul_05_Runtunan

Anda mungkin juga menyukai