DasProg Modul 05 Runtunan
DasProg Modul 05 Runtunan
Modul 05
RUNTUNAN
3.1
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)
3.2
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
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:
-
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:
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);
Writeln(hr, hari);
Writeln(jm, jam);
Writeln(mn, menit);
Writeln(dt, detik);
End.
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
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.
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
NIM
= 4150235262
Absen = 70
Tugas = 85
UTS
= 70
UAS = 50
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