Anda di halaman 1dari 66

Struktur Dasar Program Prosedural

(dalam Bahasa Pascal


+ Notasi Algoritmik)
Tim Penyusun Materi PTI-B

KU1072/Pengenalan Teknologi Informasi B


Tahap Tahun Pertama Bersama
Institut Teknologi Bandung
Tujuan
Subtopik
Input Proses Output dalam program
Deklarasi dan penggunaan variabel, type (dasar dan bentukan),
konstanta, ekspresi (aritmatika, relasional, dan logika)
Input/output
Sekuens
Flowchart terkait dan notasi algoritma terkait
Contoh kasus
Outcome
Memahami makna dan penggunaan variable, type, konstanta,
input/output, dan sekuens.
Memahami persoalan yang dapat dikonversi menjadi program
sederhana dengan memanfaatkan variable, type, konstanta, ekspresi
dasar, input/output, dan sekuens

01/09/2015 KU1072/Pengantar Teknologi Informasi B 2


Notasi Algoritmik vs Bahasa
Pemrograman
Notasi Algoritmik
Notasi yang lebih dekat dengan bahasa alami
Ditujukan menuliskan solusi dengan pendekatan
pemrograman prosedural tanpa harus terbentur dengan
sintaks yang ketat
Lebih sederhana dari beberapa bahasa pemrograman
Bahasa pemrograman Pascal
Bahasa yang digunakan dalam source code, dapat di-
compile, dan hasilnya dieksekusi

01/09/2015 KU1072/Pengantar Teknologi Informasi B 3


Pascal
Mengapa Pascal?
Bahasa yang kecil dan efisien yang ditujukan untuk
mendorong practices pemrograman yang baik secara
terstruktur karena itulah cocok untuk belajar
pemrograman pada tahap awal
Dikembangkan oleh Niklaus Wirth pada tahun 1968-
1969 namanya merupakan penghormatan kepada
Blaise Pascal (matematikawan Perancis)
Merupakan salah satu bahasa pemrograman
prosedural yang sangat populer
01/09/2015 KU1072/Pengantar Teknologi Informasi B 4
Masukan Proses Luaran

Input Proses Output

input (A) output (A)


A A + B
input (B) output (B)

Pascal
read(A); write(A);
A := A + B;
readln(B); writeln(B);

01/09/2015 KU1072/Pengantar Teknologi Informasi B 5


Struktur Dasar Program Prosedural
(Notasi Algoritmik)
Program <JudulProgram>
{ Spesifikasi Program }
KAMUS
{ Deklarasi type, variabel, konstanta, fungsi, prosedur }
ALGORITMA
{ Deretan langkah algoritmik untuk penyelesaian
persoalan }
{ Memanfaatkan notasi algoritmik }

01/09/2015 KU1072/Pengantar Teknologi Informasi B 6


Struktur Dasar Program Prosedural
(Pascal)
Program <JudulProgram>;
{ Spesifikasi Program }
{ KAMUS }
{ Deklarasi type, variabel, konstanta, fungsi, prosedur }
{ ALGORITMA }
begin
{ Deretan langkah algoritmik untuk penyelesaian
persoalan }
end.

01/09/2015 KU1072/Pengantar Teknologi Informasi B 7


Contoh Program (Notasi Algoritmik)
Program Test
{ Spesifikasi Program: menghitung A + B }
KAMUS
{ Deklarasi variabel }
A, B : integer
ALGORITMA
input(A)
input(B)
AA+B
output(A)
output(B)
01/09/2015 KU1072/Pengantar Teknologi Informasi B 8
Contoh Program (Pascal)

Program Test;
{ Spesifikasi program: menghitung A + B }
{ KAMUS }
var
A, B : integer;
{ ALGORITMA }
begin
readln(A);
readln(B);
A := A + B;
writeln(A);
writeln(B);
end.
01/09/2015 KU1072/Pengantar Teknologi Informasi B 9
Komentar
Dalam bahasa pemrograman komentar adalah
bagian program yang tidak dieksekusi
Bagian ini hanya digunakan untuk memberikan penjelasan
suatu langkah, rumus, ataupun bisa hanya berupa
keterangan

Notasi Algoritmik Pascal


{ ini komentar } { ini komentar }
Atau
(* ini komentar *)

01/09/2015 KU1072/Pengantar Teknologi Informasi B 10


Kamus:
Variabel, Tipe Data, Konstanta

01/09/2015 KU1072/Pengantar Teknologi Informasi B 11


Kamus
Kamus dipakai untuk mendeklarasi nama-nama yang
digunakan dalam program
Deklarasi nama yang didefinisikan pemrogram
type
variabel
konstanta
Deklarasi BUKAN instruksi
Contoh deklarasi [variabel]:
Notasi Algoritmik Pascal
i : integer i : integer;
JumlahUang : real JumlahUang : real;
Titik : Point Titik : Point;

01/09/2015 KU1072/Pengantar Teknologi Informasi B 12


Variabel (1)
Variabel adigunakan menyimpan suatu nilai yang ber-tipe
data tertentu sesuai dengan deklarasi
Merepresentasikan suatu makna di dunia nyata yang ingin
diolah dalam program, misalnya:
Sum : jumlah beberapa angka
Max : nilai maksimum
Variabel :
deklarasi (supaya nama dikenal dan diketahui tipe datanya),
inisialisasi nilai (siap dimanipulasi)

01/09/2015 KU1072/Pengantar Teknologi Informasi B 13


Variabel (2) Notasi Algoritmik Pascal
Contoh deklarasi KAMUS { KAMUS }
i : integer var
dan inisialisasi A : real i : integer;
variabel: A : real;
ALGORITMA { ALGORITMA }
.... begin
i 100 ....
A i * 50 i := 100;
.... A := i * 50;
...
end.

01/09/2015 KU1072/Pengantar Teknologi Informasi B 14


Membuat Nama Variabel yang Benar dan Baik

Nama variabel harus dimulai dengan huruf dan dapat


diikuti dengan huruf lagi dan angka
Karakter lain yang boleh hanya underscore
Tidak boleh dipisahkan oleh spasi
Cari nama variabel yang bisa dimengerti
merepresentasikan hal yang ingin disimpan
Pascal adalah bahasa yang case insensitive
Namun selalu gunakan huruf besar/kecil pada nama secara
konsisten di seluruh bagian program

01/09/2015 KU1072/Pengantar Teknologi Informasi B 15


Contoh yang benar Contoh yang salah
Total 3Roda
Jumlah Jumlah,total
A 8
Benar atau salah?
Kar2string
Total45
-angka
zzzz
SuperDayaGuna
Lum4588abc
01/09/2015 KU1072/Pengantar Teknologi Informasi B 16
Tipe Data (1)
Setiap data memiliki jenis yang berbeda-beda
Data umur seseorang berbeda dengan data nama
Data umur dibentuk dari bilangan bulat positif atau 0
Data nama dibentuk dari rangkaian huruf
Setiap jenis data dapat memiliki rentang (range) yang
berbeda
Data umur rentangnya antara 1 sampai 100 (bila diasumsikan
bahwa umur seseorang tidak lebih dari 100).
Data nama rentangnya mulai dari 1 huruf sampai 50 huruf (bila di
anggap nama tidak ada yang melebihi 50 huruf

01/09/2015 KU1072/Pengantar Teknologi Informasi B 17


Tipe Data (2)
Nilai yang diperbolehkan untuk variabel tergantung
pada tipe data-nya
Tipe data mendefinisikan himpunan nilai-nilai
tertentu, misalnya:
Tipe data integer : himpunan nilai yang terdiri atas
bilangan bulat (negatif, 0, positif)
Tipe data boolean: himpunan nilai yang terdiri atas nilai
true dan false

01/09/2015 KU1072/Pengantar Teknologi Informasi B 18


Contoh Penentuan Tipe Data Variabel
Umur integer contoh: 25, 44, 35
Kota string, contoh: Jakarta, Bandung
Nama string, contoh: Budi, Ali
Suhu integer atau real, contoh: 37.5 , 100
Luas integer atau real, contoh: 400, 43.5
BeratBadan integer atau real, contoh: 60.5, 75
NIM integer atau string?, contoh: 15812001

01/09/2015 KU1072/Pengantar Teknologi Informasi B 19


Jenis Tipe Data (1)
Tipe data primitif atau tipe dasar
Disediakan oleh bahasa pemrograman
Notasi Pascal Domain Nilai
Algoritmik
boolean boolean true; false
integer integer bilangan bulat negatif, 0, bilangan bulat positif
Contoh: 1; -144; 999; 0
real real bilangan riil, contoh: 3.14; 4.01E+1
character char karakter/huruf, ditandai dengan kutip tunggal;
Contoh: A; #; b
string string kumpulan karakter/huruf, ditandai dengan kutip
tunggal (dalam Pascal)
Contoh: xcxcx;
01/09/2015 KU1072/Pengantar Teknologi Informasi B 20
Jenis Tipe Data (2)
Tipe data bentukan / komposit / record
Tidak tersedia secara otomatis, harus dibuat oleh programmer
Dibentuk dari gabungan tipe dasar
Contoh:
Notasi Algoritmik Pascal
Deklarasi type type Point : type
(KAMUS) < x : integer; Point = record
y : integer > x : integer;
y : integer;
type Mahasiswa : end;
< NIM : string; Mahasiswa = record
Nama : string > NIM : string;
Nama : string;
end;
Deklarasi variabel P : Point var
(KAMUS) M : Mahasiswa P : Point;
M : Mahasiswa;
01/09/2015 KU1072/Pengantar Teknologi Informasi B 21
Jenis Tipe Data (3)
Tipe data bentukan / komposit / record
Notasi Algoritmik Pascal
Deklarasi type type Point : type
(KAMUS) < x : integer; Point = record
y : integer > x : integer;
y : integer;
end;
Deklarasi variabel P : Point var
(KAMUS) a, b : integer P : Point;
a, b : integer;
Akses elemen P.x 0 P.x := 0;
(ALGORITMA) P.y 1 P.y := 1;
a P.x a := P.x;
b P.y + 1 b := P.y + 1;

01/09/2015 KU1072/Pengantar Teknologi Informasi B 22


Konstanta (1)
Berbeda dengan variable, suatu konstanta
tidak boleh diubah nilainya dalam algoritma
Contoh deklarasi di KAMUS:
Notasi Algoritmik Pascal
constant PI : real = 3.14159 const
constant Nilai : integer = 1000 PI : real = 3.14159;
constant NMax : integer = 100 Nilai : integer = 1000;
NMax = 100

Di Pascal, type
data konstanta
bisa diabaikan

01/09/2015 KU1072/Pengantar Teknologi Informasi B 23


ALGORITMA:
Assignment, Ekspresi,
Input/Output,
Aksi Sekuensial

01/09/2015 KU1072/Pengantar Teknologi Informasi B 24


Algoritma
Adalah bagian program dalam bentuk teks algoritmik
yang berisi instruksi atau pemanggilan aksi
Teks algoritmik tsb. dapat berupa:
Perintah dasar: input/output, assignment, ekspresi
Perintah-perintah yang berurutan (sekuens)
Analisis kasus (jika-maka)
Pengulangan dll.
Dalam Bahasa Pascal, setiap instruksi ditandai
dengan ; (semicolon/titik koma) di akhir instruksi
Contoh: readln(A);

01/09/2015 KU1072/Pengantar Teknologi Informasi B 25


Pemberian Nilai
Suatu besaran (dengan tipe tertentu),
misalnya variabel, yang telah dikenal dapat
diberi nilai/harga
Pemberian Nilai
Pemberian nilai langsung atau disebut sebagai
assignment
Dibaca dari piranti masukan (perintah input)

01/09/2015 KU1072/Pengantar Teknologi Informasi B 26


Assignment
Assignment: Pemberian nilai suatu variabel
Ruas kiri harus variable
Ruas kanan harus ekspresi/nilai/variabel yang sudah
jelas nilainya
Notasi Algoritmik Pascal
<RuasKiri> <RuasKanan> <RuasKiri> := <RuasKanan>;
Contoh: Contoh:
i 10 i := 10;
Nama Maya Nama := Maya; Nilai X di-assign
X i + 10 X := i + 10; dengan ekspresi

01/09/2015 KU1072/Pengantar Teknologi Informasi B 27


Ekspresi
Operasi yang bisa diberlakukan tergantung pada tipe
data
Struktur umum (operasi biner):
<operan1> <operator> <operan2>
Tipe data hasil operasi tergantung pada tipe data operan
Operan tidak hanya berupa nilai/variable, bisa berupa
ekspresi
Jenis:
Ekspresi biner : 2 operan, contoh operator: * - / and
Ekspresi uner : 1 operan, contoh operator: not
01/09/2015 KU1072/Pengantar Teknologi Informasi B 28
Jenis Ekspresi
Notasi Algoritmik Pascal
Ekspresi Aritmatika: A + B A + B
operan numerik x + 2 * y x + 2 * y
(integer/real), hasil: P 2 * Q + R/S P 2 * Q + R/S
numerik (integer/real)
Ekspresi Relasional: A < B A < B
operan numerik X = Y X = Y
(integer/real), hasil: Total nilai Total >= nilai
boolean
Ekspresi Logika: operan: A and B A and B
boolean, hasil : boolean C or B C or B
not(true) not(true)

01/09/2015 KU1072/Pengantar Teknologi Informasi B 29


Operasi pada Nilai Suatu Tipe Data
Operasi perhitungan akan memerlukan operator
seperti +, -, * dan / (tambah, kurang, kali
dan bagi) untuk melakukan kalkulasi
Operasi + pada tipe data bukan numerik memiliki
arti yang berbeda
Contoh: Halo + Apa kabar Halo Apa kabar
Tidak semua operator dapat digunakan untuk tipe
data numerik.
Contoh: Halo * Apa kabar

01/09/2015 KU1072/Pengantar Teknologi Informasi B 30


Operator Tipe Dasar
Tipe Data Notasi Algoritmik Pascal
Integer * / + - div mod * / + - div mod
< > = < > <= >= = <>
Boolean and or not = and or not =
Real * / + - < > * / + - < > <=
>= <>
Character = = <>
String = + = <> +

01/09/2015 KU1072/Pengantar Teknologi Informasi B 31


Input/Output (1)
Perintah input: pemberian nilai variabel dari piranti
masukan, misal: keyboard dibaca atas masukan
dari pengguna

Notasi Algoritmik Pascal


input read/readln
Contoh: Contoh:

input(A) read(A);
input(B) readln(B);

01/09/2015 KU1072/Pengantar Teknologi Informasi B 32


Input/Output (2)
Perintah output: penulisan nilai
(variabel/konstanta/hasil ekspresi) ke piranti
keluaran, misal: monitor/layar
Notasi Algoritmik Pascal
output write/writeln
Contoh: Contoh:

output(A) writeln(A); {menulis isi variabel A, diakhiri


enter}
output(Hello) write(Hello); {menulis Hello ke layar}
output(A*4) write(A * 4); {menulis hasil perkalian A*4}
output(PI) writeln(PI); {menulis nilai konstanta PI}

01/09/2015 KU1072/Pengantar Teknologi Informasi B 33


Latihan-1
Buatlah program yang menampilkan hasil
perhitungan luas lingkaran berdasarkan masukan
nilai jari-jari

01/09/2015 KU1072/Pengantar Teknologi Informasi B 34


Menghitung Luas Lingkaran
(Notasi Algoritmik)
Program HitungLuasLingkaran;
{ Menghitung luas lingkaran berdasarkan masukan jari-jari }

KAMUS
jarijari : real
luas : real

ALGORITMA
input(jarijari)
luas 3.14 * jarijari * jarijari
output(luas)

{ Atau : Lihat contoh flowchart }

01/09/2015 KU1072/Pengantar Teknologi Informasi B 35


Menghitung Luas Mulai
Lingkaran
(Flowchart) input(jarijari)

Program HitungLuasLingkaran
{ Menghitung luas lingkaran
berdasarkan masukan jari-jari }
luas 3.14 * jarijari * jarijari
KAMUS
jarijari : real
luas : real
ALGORITMA output(luas)
{ Lihat flowchart }

Selesai
01/09/2015 KU1072/Pengantar Teknologi Informasi B 36
Menghitung Luas Lingkaran
Program HitungLuasLingkaran; (Pascal)
{ Menghitung luas lingkaran berdasarkan masukan
jari-jari }
{ Kamus } Pendefinisian atau
var pendeklarasian
JariJari: real; variabel
Luas : real;
{ Algoritma } Algoritma
begin
readln(JariJari);
Luas := 3.14 * JariJari * JariJari;
writeln(Luas);
readln;
end.

01/09/2015 KU1072/Pengantar Teknologi Informasi B 37


Alternatif: Menghitung Luas Lingkaran
(Notasi Algoritmik)
Program HitungLuasLingkaran;
{ Menghitung luas lingkaran berdasarkan masukan jari-jari }
KAMUS
constant PI : real = 3.14
jarijari : real
luas : real

ALGORITMA
input(jarijari)
luas PI * jarijari * jarijari
output(luas)

01/09/2015 KU1072/Pengantar Teknologi Informasi B 38


Menghitung Luas Lingkaran (Pascal)
Program HitungLuasLingkaran;
{ Menghitung luas lingkaran berdasarkan masukan
jari-jari } Pendefinisian
{ Kamus }
const konstanta
PI : real = 3.1415;
var
jarijari : real; Penggunaan
luas : real; konstanta
{ Algoritma }
begin
readln(jarijari);
luas := PI * jarijari * jarijari;
writeln(luas);
readln;
end.
01/09/2015 KU1072/Pengantar Teknologi Informasi B 39
Latihan-2
Buatlah program untuk menghitung luas lingkaran
berdasarkan masukan alas dan tinggi
Program HitungLuasSegitiga
{ Menghitung luas segitiga berdasarkan
masukan alas dan tinggi }
KAMUS
alas, tinggi : real
luas : real
ALGORITMA
input(alas)
input(tinggi)
luas 0.5 * alas * tinggi
output(luas)
01/09/2015 KU1072/Pengantar Teknologi Informasi B 40
Menghitung Luas Segitiga (Pascal)
Program HitungLuasSegitiga;
{ Menghitung luas segitiga berdasarkan masukan alas
dan tinggi }
{ Kamus }
var
alas, tinggi : real;
luas : real;
{ Algoritma }
begin
readln(alas);
readln(tinggi);
luas := 0,5 * alas * tinggi;
writeln(Luas);
end.
01/09/2015 KU1072/Pengantar Teknologi Informasi B 41
Latihan-3
Buat program menghitung rata-rata dari tinggi badan
5 anak
Program akan menerima masukan data tinggi badan untuk
5 orang anak
Kemudian program akan menghitung tinggi rata-rata dari
ke lima anak tersebut

01/09/2015 KU1072/Pengantar Teknologi Informasi B 42


Menghitung Tinggi Rata-Rata
(Notasi Algoritmik)
Program TinggiRataRata
{ Menghitung tinggi rata-rata 5 anak }
KAMUS
t1, t2, t3, t4, t5 : integer
ratarata : real
ALGORITMA
input(t1)
input(t2)
input(t3)
input(t4)
input(t5)
ratarata (t1+t2+t3+t4+t5)/5
output(ratarata)

01/09/2015 KU1072/Pengantar Teknologi Informasi B 43


Menghitung Tinggi Rata-Rata (Pascal)
Program TinggiRataRata;
{ Menghitung tinggi rata-rata 5 anak }
{ Kamus }
var
t1, t2, t3, t4, t5 : integer;
ratarata : real;
{ Algoritma }
begin
readln(t1);
readln(t2);
readln(t3);
readln(t4);
readln(t5);
ratarata := (t1 + t2 + t3 + t4 + t5)/5;
writeln(ratarata);
end.
01/09/2015 KU1072/Pengantar Teknologi Informasi B 44
Aksi Sekuensial
Aksi sekuensial:
sederetan instruksi primitif dan/atau aksi yang
akan dilaksanakan (dieksekusi) oleh komputer
berdasarkan urutan penulisannya
Setiap aksi akan mengubah status dari program
Jadi setiap aksi sekuensial harus ada awal dan akhir.
atau dengan kata lain suatu program harus dimulai dan
suatu ketika harus berakhir
Program yang tidak pernah berhenti adalah program yang
salah atau error

01/09/2015 KU1072/Pengantar Teknologi Informasi B 45


Penulisan untuk Instruksi Sekuensial
Instruksi ditulis terurut sesuai penulisan per baris
Setiap instruksi selalu diakhiri dengan tanda titik
koma
Jadi dalam satu baru dapat terdiri dari lebih dari instruksi.

01/09/2015 KU1072/Pengantar Teknologi Informasi B 46


Contoh Aksi Sekuensial
{ contoh aksi sekuensial per { contoh aksi sekuensial dipisahkan
baris } titik koma }

Program test3;
Program test3;
var
i : integer; var
x : real; i : integer;
x : real;
begin
readln(i); begin
x := 100.75;
readln(i); x := 100.75;
writeln(x);
writeln(i * 2); writeln(x); writeln(i * 2);
end.
end.

01/09/2015 KU1072/Pengantar Teknologi Informasi B 47


Contoh aksi sekuensial
{ contoh aksi sekuensial per { contoh aksi sekuensial dipisahkan
baris } titik koma }

Program test3;
Program test3;
var
i : integer; var
x : real; i : integer;
x : real;
begin
readln(i); begin
x := 100.75;
readln(i); x := 100.75;
writeln(x); Perhatikan bahwa keduanya memliki
writeln(i * 2);urutan eksekusi yang writeln(x);
sama dan juga hasil writeln(i * 2);
eksekusi yang identik.
end.
Perbedaannya hanyalah di cara
end.
penulisannya. Mana yang lebih baik
01/09/2015 penulisannya?
KU1072/Pengantar Teknologi Informasi B 48
Perhatikan bahwa:
ada program yang akan berubah jika urutan
baris instruksinya berubah
dan ada juga program yang tidak berubah
jika urutan baris instruksinya berubah

01/09/2015 KU1072/Pengantar Teknologi Informasi B 49


Pengubahan urutan eksekusi yang
tidak mengubah hasil eksekusi
{contoh aksi sekuensial per {contoh aksi sekuensial per
baris } baris }

Program test3; Program test3;


var var
i : integer; i : integer;
x : real; x : real;

begin begin
readln(i); x := 100.75;
x := 100.75; readln(i);

writeln(x); writeln(x);
writeln(i * 2); writeln(i * 2);

end. end.
01/09/2015 KU1072/Pengantar Teknologi Informasi B 50
Pengubahan urutan eksekusi yang
mengubah hasil eksekusi
{contoh aksi sekuensial per {contoh aksi sekuensial per
baris } baris }

Program test3; Program test3;


var var
i : integer; i : integer;
x : real; x : real;

begin begin
readln(i); readln(i);
x := 100.75; x := 100.75;

writeln(x); writeln(i * 2);


writeln(i * 2); writeln(x);

end. end.
01/09/2015 KU1072/Pengantar Teknologi Informasi B 51
Latihan-4:
Menghitung Jarak
Buatlah program untuk menghitung jarak
berdasarkan masukan kecepatan dan waktu
Dekomposisi masalah:
Program menerima masukan kecepatan
Kemudian program menerima masukan waktu
Lalu program akan melakukan perhitungan jarak
Kemudian menampilkan hasil perhitungan

01/09/2015 KU1072/Pengantar Teknologi Informasi B 52


Menghitung Jarak
(Notasi Algoritmik)
Program HitungJarak
{ Menghitung jarak berdasarkan masukan kecepatan dan waktu}
KAMUS
v : real { kecepatan }
t : real { waktu }
s : real { jarak }
ALGORITMA
input(v)
input(t)

s v * t

output(s)

01/09/2015 KU1072/Pengantar Teknologi Informasi B 53


Menghitung Jarak
(Pascal) v1
Program HitungJarak;
{ Menghitung jarak berdasarkan masukan kecepatan (v)
dan waktu (t) }

{ Kamus }
var
v, t, s : real;

{ Algoritma }
begin
readln(v);
readln(t);
s := v * t;
writeln(s);
end.

01/09/2015 KU1072/Pengantar Teknologi Informasi B 54


Menghitung Jarak
(Pascal) v2
Program HitungJarak;
{ Menghitung jarak berdasarkan masukan kecepatan (v)
dan waktu (t) }

{ Kamus }
var
v, t, s : real;

{ Algoritma }
begin
write(Masukkan kecepatan = ); readln(v);
write(Masukkan waktu = ); readln(t);
s := v * t;
writeln(Jarak = , s);
end.

01/09/2015 KU1072/Pengantar Teknologi Informasi B 55


Latihan-5:
Jumlah 2 Pecahan
Buat program yang menerima masukan 2 pecahan
dan menghitung penjumlahannya
Spesifikasi program
Program menerima masukan pecahan pertama berupa
pembilang dan penyebut
Kemudian program menerima pecahan kedua
Lalu program akan melakukan penjumlahan
Kemudian menampilkan hasilnya berupa pembilang dan
penyebut hasil penjumlahan

01/09/2015 KU1072/Pengantar Teknologi Informasi B 56


Langkah Solusi (1)

Program menerima masukan pecahan pertama


berupa pembilang dan penyebut
input(pembilang1);
input(penyebut1)
Kemudian program menerima pecahan kedua
input(pembilang2);
input(penyebut2);

01/09/2015 KU1072/Pengantar Teknologi Informasi B 57


Langkah Solusi (2)
Lalu program akan melakukan penjumlahan
+
+ =

pembilang3
pembilang1 * penyebut2 + pembilang2 * penyebut1;
penyebut3 penyebut1 * penyebut2;
Kemudian menampilkan hasilnya berupa pembilang dan
penyebut hasil penjumlahan
output(pembilang3);
output(penyebut3);

01/09/2015 KU1072/Pengantar Teknologi Informasi B 58


Jumlah 2 Pecahan (N. Algoritmik)
Program Jumlah2Pecahan
{Menghitung pembilang dan penyebut pecahan dari penjumlahan dua
buah pecahan yang diketahui pembilang dan penyebutnya}
KAMUS
pembilang1, pembilang2, pembilang3 : integer
penyebut1, penyebut2, penyebut3 : integer
ALGORITMA
input(pembilang1)
input(penyebut1)
input(pembilang2)
input(penyebut2)

pembilang3 pembilang1 * penyebut2 + pembilang2 * penyebut1


penyebut3 penyebut1 * penyebut2

output(pembilang3)
output(penyebut3)
01/09/2015 KU1072/Pengantar Teknologi Informasi B 59
Program JumlahPecahan;
{ Menghitung pembilang dan penyebut pecahan dari penjumlahan dua
buah pecahan yang diketahui pembilang dan penyebutnya }
{ KAMUS }
var
pembilang1, pembilang2, pembilang3 : integer;
penyebut1, penyebut2, penyebut3 : integer;
{ ALGORITMA }
begin
readln(pembilang1);
readln(penyebut1); Jumlah 2 Pecahan
readln(pembilang2); (Pascal)
readln(penyebut2);

pembilang3 := pembilang1 * penyebut2 + pembilang2 * penyebut1;


penyebut3 := penyebut2 * penyebut1;

writeln(pembilang3);
writeln(penyebut3);
end.
01/09/2015 KU1072/Pengantar Teknologi Informasi B 60
Alternatif: Jumlah 2 Pecahan
(Notasi Algoritmik)
Program Jumlah2Pecahan
{Menghitung pembilang dan penyebut pecahan dari penjumlahan dua
buah pecahan yang diketahui pembilang dan penyebutnya}
KAMUS
type Pecahan : < pembilang : integer; penyebut : integer >
P1, P2, P3 : Pecahan
ALGORITMA
input(P1.pembilang)
input(P1.penyebut)
input(P2.pembilang)
input(P2.penyebut)

P3.pembilang P1.pembilang * P2.penyebut +


P2.pembilang * P1.penyebut
P3.penyebut P1.penyebut * P2.penyebut

output(P3.pembilang)
output(P3.penyebut)
01/09/2015 KU1072/Pengantar Teknologi Informasi B 61
Program JumlahPecahan;
{ Menghitung pembilang dan penyebut pecahan dari penjumlahan dua
buah pecahan yang diketahui pembilang dan penyebutnya }
{ KAMUS }
type
Pecahan = record
pembilang, penyebut : integer
end;
var
P1, P2, P3 : Pecahan;
Alternatif:
{ ALGORITMA }
begin
Jumlah 2 Pecahan
readln(P1.pembilang);
readln(P1.penyebut);
(Pascal)
readln(P2.pembilang);
readln(P2.penyebut);

P3.pembilang := P1.pembilang * P2.penyebut +


P2.pembilang * P1.penyebut;
P3.penyebut3 := P1.penyebut * P2.penyebut;

writeln(pembilang3);
writeln(penyebut3);
end.
01/09/2015 KU1072/Pengantar Teknologi Informasi B 62
LATIHAN

Untuk semua soal berikut, buatlah dalam notasi


algoritmik dan program dalam Bahasa Pascal

01/09/2015 KU1072/Pengantar Teknologi Informasi B 63


Soal-1
Buatlah sebuah program yang membaca dari
keyboard
Panjang dari suatu persegi empat, misalnya p,
Lebar dari suatu persegi empat, misalnya l
Asumsikan masukan panjang dan lebar selalu > 0
Panjang dan lebar adalah bilangan real
Selanjutnya program menuliskan ke layar luas persegi
empat, misalnya LPS, yang dihitung dengan rumus :
LPS = p * l

01/09/2015 KU1072/Pengantar Teknologi Informasi B 64


Soal-2
Sebuah program yang mengelola type bentukan point
sebagai berikut:
type point : < X : integer; { absis }
Y : integer { ordinat } >
Buatlah program yang membaca dua buah point,
misalnya P1 dan P2 dan tuliskan jarak antara kedua point
tersebut
Rumus perhitungan jarak 2 point:
2 2
( x1 x2 ) ( y1 y2 )
Gunakan instruksi sqrt (X) untuk perhitungan akar
kuadrat dan X * X untuk perhitungan kuadrat

01/09/2015 KU1072/Pengantar Teknologi Informasi B 65


Soal-3
Buatlah sebuah program yang menerima masukan 2
buah Jam (dalam jam, menit, dan detik), misalnya J1
dan J2 dan menghitung selisih di antara keduanya
(dalam jam, menit, detik)
Asumsikan J1 lebih awal atau sama dengan J2
Misalnya: J1 = 12:0:0 dan J2 = 13:0:1 maka selisihnya
adalah 1:0:1 (1 jam 0 menit 1 detik)
Petunjuk: Untuk mengubah jam menjadi jumlah
detik gunakan rumus: jam * 3600 + menit * 60 +
detik

01/09/2015 KU1072/Pengantar Teknologi Informasi B 66

Anda mungkin juga menyukai