Professional Documents
Culture Documents
MODUL II
TIPE DATA DASAR & STATEMEN KONTROL
Oleh
KELOMPOK XVIII
LABORATORIUM KOMPUTER
JURUSAN TEKNIK ELEKTRO
FAKULTAS TEKNIK UNIVERSITAS UDAYANA
Desember 2008
TIPE DATA DASAR & STATEMEN KONTROL
BAB IV
TIPE DATA DASAR DAN STATEMENT KONTROL
4.1 Tujuan
1. Memahami dasar-dasar pemrograman Pascal atau C++.
2. Memahami penggunaan statement kontrol khususnya if...., if...else, switch
atau case....of.
3. Memahami pemilihan tipe data yang digunakan secara efisien.
4. Memahami manipulasi string.
5. Memahami dan bisa membuat program yang berbentuk suatu fungsi.
6. Memahami dan bisa menggunakan passing parameter dalam fungsi ndan
prosedur.
Shortin
t
Integer
integer
Longint
Boolean
Tipe
Ordinal Byte
Char
Shortin
enumera t
si
Subrang
Tipe e
Data
Dasar
Real
Single
Tipe Double
Real
Extented
Comp
1. Tipe Ordinal
Karakteristik tipe data ordinal adalah:
a) Nilai dari suatu tipe ordinal merupakan himpunan berurutan(ordered set), dan
setiap nilai mempunyai nilai ordinalitas, yaitu nilai integral. Kecuali tipe
integer, pada tipe data ordinal, nilai pertama mempunyai nilai ordinalitas 0,
berikutnya 1 dan seterusnya. Sedangkan tipe data integer nilai ordinalitasnya
adalah nilai integer itu sendiri. Semua nilai tipe data ordinal, kecuali yang
pertama mempunyai nilai pendahulunya (predesesor) dan semua nilai kecuali
yang terakhir mempunyai nilai yang mengikuti (suksesor).
b) Fungsi standard Ord dapat diterapkan terhadap tipe data ordinal untuk
mengetahui nilai ordinalitasnya.
c) Fungsi standard Pred dapat digunakan untuk mengetahui nilai pendahulunya.
Jika fungsi ini diterapkan pada nilai yang pertama akan menyebabkan
kesalahan.
d) Fungsi standard Succ dapat diterapkan untuk mengetahui nilai yang
mengikutinya. Jika fungsi ini diterapkan pada nilai terakhir akan
menyebabkan kesalahan.
a. Tipe Integer
Tipe integer adalah bilangan bulat atau tipe data yang nilainya tidak
mempunyai titik desimal. Ada 5 tipe data yang termasuk dalam kelompok ini,.
Batas nilai masing masing tipe tersebut terlihat pada tabel berikut.
Tabel 4.1
Tipe Batas Nilai Ukuran
Byte 0 ... 255 1 byte
ShortInt -128 ... 127 1 byte
Word 0 65535 2 byte
Integer -32768 32767 2 byte
LongInt -2147483648 2147483647 4 byte
b. Tipe Boolean
Tipe ini merupakan tipe data logika yang berisi dua kemungkinan nilai
yaitu true dan false. TPW memiliki 3 macam jenis, yaitu boolean, wordbool, dan
longbool. Batas nilai masing masing tipe terlihat dalam tabel berikut.
Tabel 4.2
tipe ukuran
Boolean 1 byte
Wordbool 2 byte
Longbool 3 byte
c. Tipe Char
Tipe data ini menyimpan karakter yang diketikkan dari keyboard,
memiliki 266 macam yang terdapat dalam tabel ASC II. Contoh: a, b , c
yaitu harus diberikan tanda kutip tunggal. Jenis data ini memerlukan alokasi
memori sebesar 1 byte untuk masing masing data.
d. Tipe Enumerasi
Enumerasi merupakan salah satu tipe yang dapat dibuat sendiri oleh
pemrogram. Tipe ini biasa digunakan pada variable yang nilai kemungkinannya
terbatas (tidak begitu banyak). Nilainya dinyatakan dengan nama nama
pengenal.
e. Tipe Subjangkauan
Subjangkauan merupakan suatu tipe yang menyatakan suatu jangkauan
nilai dari suatutipe yang sudah ada. Jangkauan nilai ditentukan oleh nilai terkecil
dan nilai terbesar. Antara nilai terkecil dan nilai terbesar dipisahkan oleh tanda
subjangkauan ().
2. Tipe Real
Dalam turbo pascal terdapat lima macam tipe real, yaitu: real, single,
double, extended, dam comp. Batas nilai masing masing tipe terlihat pada tabel
di bawah ini.
Tabel 4. 3
Tipe Batas Nilai Ukuran
Real 2,9x10-39 s/d 1,7x1038 6 byte
Single 1,5x10-45 s/d 3,4x1038 4 byte
Double 5,0x10-324 s/d 8 byte
308
1,7x10
Extended 1,9x10-4951 s/d 10 byte
1,1x104932
Comp -9,2x1018 s/d 9,2x1018 8 byte
3. Tipe Rekaman
Rekaman juga adalah kumpulan data. Perbedaan antara larik dengan
rekaman adalah bahwa dalam larik semua elemennya harus bertipe sama, tetapi
dalam rekaman setiap elemen dapat mempunyai tipe data yang berbeda satu sama
lainnya.
4. Tipe Himpunan
Himpunan adalah kumpulan obyek yang mempunyai tipe data yang sama
dan urutan penulisannya tidak diperhatikan. Turbo pascal dalam membuat
himpunan membatasi jumlah elemen maksimum adalah256 dan nilai ordinal
setiap elemen harus dalam jangkauan 0 sampai 255. Sebab batasan ini adalah nilai
maksimum dari integer dalam suatu byte memori adalah 255, dan tidak dapat
membuat himpunan yang mengandung integer negatif.
bilangan: integer ;
code_bil: integer ;
bil,cd: integer ;
saldo_tabungan: real ;
principal, interest: real ;
miliage: real ;
4.2.2.1 Statement if
Statement if digunakan dalm permasalahan untuk mengbil suatu
keputusan terhadap dua alternatif. Pengambilan keputusan didasarkan oleh suatu
kondisi yang kita evaluasi apakah bernilai True atau False.
a. Statement if ...then
Bentuk ini, statement akan hanya akan dijalankan kalau kondisi
bernilai True. Bagian kondisi berupa ekspresi. Apabila kondisi bernilai salah
maka proses akan tidak mengeksekusi statement. Digunakan untuk
mengindikasikan adanya pemilihan suatu statement. Statement if ...then dalam
bagan alir digambarkan sebagai berikut:
False
(No)
Kondisi
True
(Yes)
Block_statement
IF kondisi THEN
Block_statement
b. Statement ifelse
Statement ifelse digunakan untuk menyatakan adanya pemilihan
dimana jika kondisi benar maka mengerjakan block_statement_1 dan jika kondisi
salah maka mengerjakan block_statement_2. Statement ini dapat digambarkan
dengan flow chart sebagai berikut :
False
(No)
Kondisi
True
(Yes)
Block_statement_1 Block_statement_2
IF kondisi THEN
Block_statement_1
ELSE
Block_statement_2
Nilai= Block_statement_1
Daftar_nilai_1
Nilai= Block_statement_2
Daftar_nilai_2
Nilai= Block_statement_3
Daftar_nilai_m
Block_statement_n
Pada bentuk diatas nilai dapat berupa ekspresi yang bertipe ordinal
misalnya char, byte dan boolean. Daftar_nilai dapat berupa suatu atau
beberapa konstanta bertipe ordinal, yang sesuai dengan tipe nilai.
Bentuk pernyataan untuk menggunakan statement case...of adalah
sebagai berikut:
CASE nilai OF
daftar_nilai_1: statement_1;
daftar_nilai_2: statement_2;
...
daftar_nilai_m: statement_m;
ELSE
statement_n
END
Kode Program 4.4 Deklrarasi Statement case...of
Pengujian dilakukan dengan mencocokkan nilai dan daftar_nilai,
dimulai dari yang teratas. Kalau suatu pengujian tidak ada yang cocok,
daftar_nilai berikutnya akan diperiksa. Kalau ada yang cocok, statement
yang terletak sesudah tanda baca : akan dijalankan dan kemudian dieksekusi
dilanjutkan ke END. Bagian ELSE hanya akan dijalanka kalau tak ada satupun
daftar_nilai yang cocok.
4
R ( * K ) 273.15 ........................................................................(4.9)
5
10 Skala Reamur ke Celcius
5
C * R ..................................................................................... (4.10)
4
11 Skala Reamur ke Farenheith
9
F * R 32 ............................................................................... (4.11)
4
12 Skala Reamur ke Kelvin
5
K ( * K ) 273 .15 ..........................................................................(4.12)
4
4.3 Pembahasan dan Analisa
Pada percobaan Modul II ditekankan pada penggunaan statement
kontrol khususnya if...then, if...else... dan case...of. Statement tersebut berguna
jika kita dihadapkan pada permasalahan untuk mengmbil suatu keputusan
terhadap alternatif dari konsisi permasalahan. Disamping itu juga kita diharapkan
mapu menggunakan tipe data yang sesuai dengan keperluan variabel sehingga
diperoleh penggunaan memori yang efisien.
function hitung_ratusan(uang:longint):longint;
begin
ratusan:= uang div 100;
sisa_ratusan := uang mod 100;
case ratusan of
0: bilang_ratusan:= '';
1: bilang_ratusan:= 'Seratus ';
2: bilang_ratusan:='Dua Ratus ';
3: bilang_ratusan:='Tiga Ratus ';
4: bilang_ratusan:='Empat Ratus ';
5: bilang_ratusan:='Lima Ratus ';
6: bilang_ratusan:='Enam Ratus ';
7: bilang_ratusan:='Tujuh Ratus ';
8: bilang_ratusan:='Delapan Ratus ';
9: bilang_ratusan:='Sembilan Ratus ';
end;
write (bilang_ratusan);
Kode Program 4.5 Fungsi Ratusan Program Konversi Cek(a)
parameter yang dilengkapi dengan tipe data yang digunakan yaitu uang:longint
serta hasil dari fungsi ratusan bertipe data longint. Bagian pernyataan diawali
dengan ratusan:= uang div 100; mengandung pengertian ratusan diisi
dengan hasil bagi dalam bilangan bulat parameter uang dengan seratus.
Dilanjutkan dengan memberi nilai variabel sisa_ratusan dari hasil sisa bagi
parameter uang dengan bilangan seratus dari pernyataan sisa_ratusan := uang
mod 100;. Statement caseof digunakan untuk menetukan pemilihan lebih dari
satu keadaan dimana didalamnya terdapat banyak kondisi yang harus dikerjakan,
seperti apabila ratusan bernilai satu maka bilang_ratusan terisi dengan
seratus.Untuk menampilkan hasil tersebut maka write (bilang_ratusan);
akan mencetaknya kelayar sesuai dengan kondisi.
Untuk mengerjkan nilai puluhan pada prinsifnya sama dengan
pengerjaan ratusan yaitu puluhan:= uang div 10; mengandung pengertian
puluhan diisi dengan hasil bagi dalam bilangan bulat parameter uang dengan
sepuluh. Dilanjutkan dengan memberi nilai variabel sisa_puluhan dari hasil sisa
bagi parameter uang dengan bilangan sepuluh dari pernyataan sisa_puluhan :=
uang mod 100;. Statement caseof digunakan juga untuk menetukan
pemilihan lebih dari satu keadaan dimana didalamnya terdapat banyak kondisi
yang harus dikerjakan, seperti apabila puluhan bernilai lima maka
bilang_puluhan terisi dengan lima puluh.Untuk menampilkan hasil tersebut
maka write (bilang_puluhan); akan mencetaknya kelayar sesuai dengan
kondisi. Begitu juga untuk penerjaan bilangan satuan dari nilai angka cek untuk
dikonversi menjadi dalam bentuk hurup.
b. Fungsi ribuan
c. Fungsi jutaan
d. Program utama
e.program bilang_uang;
uses
winCrt;
var
input: string;
uang : longint;
kode : integer;
ket : boolean;
bilang_ratusan: string;
bilang_puluhan: string;
bilang_satuan : string;
jutaan, sisa_jutaan : longint;
ratusan, sisa_ratusan: longint;
ribuan, sisa_ribuan : longint;
puluhan, sisa_puluhan: longint;
satuan: longint;
jawab:char;
if length(input)<= 3 then
hitung_ratusan (uang)
else if length(input)<= 6 then
hitung_ribuan(uang)
else if length(input)<= 12 then
hitung_jutaan(uang)
else if (uang)=0 then
write ('Nol');
writeln ('Rupiah');
write('Menggunakan lagi?(Y/N): ');
readln(jawab);
end;
end.
dimunculkan 'Masukkan angka yang kurang dari satu milyar!. Jika yang
dimasukkan bilangan negatif maka akan dieksekusi oleh else if uang < 0
dilanjutkan dengan menampilkan('Masukkan nilai positif!') dan juga bila
musukan melebihi batas yang ditentukan else if uang >=1000000000 pesan
akan ditampilkan adalah 'Masukkan angka yang kurang dari satu milyar!.
Perulangan memasukkan nilai input akan berakhir apabila until ket=true.
Statement if digunakan dalam permasalahan untuk mengabil suatu
keputusan terhadap dari masukan yang disimpan pada variabel uang dan length
berfungsi untuk menghitung panjang string input. Apabila pangjang string input
lebing dari atau sama dengan tiga maka dieksekusi oleh fungsi hitung_ratusan.
Kalau length mempunyai karakter lebih dari atau sama dengan enam maka
fungsi hitung_ribuan dipsnggil untuk memproses input. Input yang memiliki
karakter lebih dari atau sama dengan dua belas diselesaikan oleh fungsi
hitung_jutaan. Jika bernilai nol akan dicetak nol rupiah. Program ini akan
memberikan pilihan untuk menentukan apakah kita akan menggunakan lagi atau
tidak yang dinyatakan oleh write('Menggunakan lagi?(Y/N): '). Jawaban
dari pilihan disimpan pada variabel jawab. Jika yang dimaksukkan karakter y
maka program akan malakukan perulangn memalui while (jawab='y') or
(jawab='Y') do . Pemasuukan nilai input yang baru dapat dilakukan kembali.
Algoritma
Berikut ini algoritma program konversi cek dari nilai angka dalam
mata uang rupiah yang menjadi input.
0. Mulai
1. Masukkan angka
2. Jika length angka lebih dari dan atau sama dengan 3:hitung_ratusan (uang)
3. Jika length angka lebih dari dan atau sama dengan 6:hitung_ribuan (uang)
4. Jika length angka lebih dari dan atau sama dengan 12:hitung_jutaan (uang)
5. Jika angka sama dengan 0:cetaknol rupiah
6. Menggunakan lagi? Go to 1
Selesai
Flowchart
a. Flow chart fungsi_ratusan
Start
Input (uang)
Yes
ratusan=0 bilang_ratusan
No
Yes
ratusan=1 bilang_ratusan Seratus
No
Yes
ratusan=2 bilang_ratusan Dua Ratus
No
Yes
ratusan=3 bilang_ratusan Tiga Ratus
No
Yes
ratusan=4 bilang_ratusan Empat Ratus
No
Yes
ratusan=5 bilang_ratusan Lima Ratus
No
Yes
ratusan=6 bilang_ratusan Enam Ratus
No
Yes
ratusan=7 bilang_ratusan Tujuh Ratus
No
Yes
ratusan=8 bilang_ratusan Delapan Ratus
No
B
A
A B
Yes
ratusan=9 bilang_ratusan Sembilan Ratus
No
Input
(bilang_ratusan)
Yes
puluhan=1
No 2
Yes
sisa_puluhan=0 bilang_satuan Sepuluh
No
Yes
sisa_puluhan=1 bilang_satuan Sebelas
No
Yes
sisa_puluhan=2 bilang_satuan Dua Belas
No
Yes
sisa_puluhan=3 bilang_saruan Tiga Belas
No
Yes
sisa_puluhan=4 bilang_satuan Empat Belas
No
Yes
sisa_puluhan=5 bilang_satuan Lima Belas
No
Yes
sisa_puluhan=6 bilang_satuan Enam Belas
No
C D E
C D E
No
Yes
sisa_puluhan=7 bilang_satuan Tujuh Belas
No
Yes
sisa_puluhan=8 bilang_satuan Delapan Belas
No
Yes
sisa_puluhan=9 bilang_satuan Sembilan Belas
No
Input
(bilang_satuan)
Yes
puluhan=0 bilang_puluhan
No
Yes
puluhan=2 bilang_puluhan Dua Puluh
No
Yes
puluhan=3 bilang_puluhan Tiga Puluh
No
Yes
puluhan=4 bilang_puluhan Empat Puluh
No
Yes
puluhan=5 bilang_puluhan Lima Belas
No
Yes
puluhan=6 bilang_puluhan Enam Puluh
No
Yes
puluhan=7 bilang_puluhan Tujuh Puluh
No
Yes
puluhan=8 bilang_puluhan Delapan Puluh
No
F G
F G
Yes
puluhan=9 bilang_puluhan Sembilan Puluh
No
Input
(bilang_puluhan)
Yes
satuan =0 bilang_satuan
No
Yes
satuan =1 bilang_satuan Satu
No
Yes
satuan =2 bilang_satuan Dua
No
Yes
satuan =3 bilang_satuan Tiga
No
Yes
satuan =4 bilang_satuan Empat
No
Yes
satuan =5 bilang_satuan Lima
No
Yes
satuan =6 bilang_satuan Enam
No
Yes
satuan =7 bilang_satuan Tujuh
No
Yes
satuan =8 bilang_satuan Delapan
No
H I
H I
Yes
satuan =9 bilang_satuan Sembilan
No
Input
(bilang_satuan)
End.
Start
Input (uang)
Yes
ribuan=1
No
ribuan >1
hitung_ratusan (ribuan)
hitung_ratusan (sisa_ribuan)
End.
Start
Input (uang)
hitung_ratusan (jutaan)
Output Juta
hitung_ratusan (sisa_jutaan)
End.
Gambar 4.10 Chart Fungsi Jutaan Program Konversi Cek
d. Flow chart program utama
Start
Input
Masukkan
input: (angk)
Yes
length angk<= 3
hitung_ratusan (uang)
No
J K
K K
Yes
length angk<= 6
hitung_ribuan (uang)
No
Yes
length angk<= 12
hitung_jutaan (uang)
No
Yes
(uang) = 0
Menggunakan
lagi?(y/n):
End.
Kode Program
program bilang_uang;
uses
winCrt;
var
input: string;
uang : longint;
kode : integer;
ket : boolean;
bilang_ratusan: string;
bilang_puluhan: string;
bilang_satuan : string;
jutaan, sisa_jutaan : longint;
ratusan, sisa_ratusan: longint;
ribuan, sisa_ribuan : longint;
puluhan, sisa_puluhan: longint;
satuan: longint;
jawab:char;
function hitung_ratusan(uang:longint):longint;
begin
ratusan:= uang div 100;
sisa_ratusan := uang mod 100;
case ratusan of
0: bilang_ratusan:= '';
1: bilang_ratusan:= 'Seratus ';
2: bilang_ratusan:='Dua Ratus ';
3: bilang_ratusan:='Tiga Ratus ';
4: bilang_ratusan:='Empat Ratus ';
5: bilang_ratusan:='Lima Ratus ';
6: bilang_ratusan:='Enam Ratus ';
7: bilang_ratusan:='Tujuh Ratus ';
8: bilang_ratusan:='Delapan Ratus ';
9: bilang_ratusan:='Sembilan Ratus ';
end;
write (bilang_ratusan);
puluhan:= sisa_ratusan div 10;
sisa_puluhan:= sisa_ratusan mod 10;
if puluhan= 1 then
begin
case sisa_puluhan of
0: bilang_satuan:= 'Sepuluh ';
1: bilang_satuan:= 'Sebelas ';
2: bilang_satuan:= 'Dua Belas ';
3: bilang_satuan:= 'Tiga Belas ';
4: bilang_satuan:= 'Empat Belas ';
5: bilang_satuan:= 'Lima Belas ';
6: bilang_satuan:= 'Enam Belas ';
7: bilang_satuan:= 'Tujuh Belas ';
8: bilang_satuan:= 'Delapan Belas ';
9: bilang_satuan:= 'Sembilan Belas ';
end;
write(bilang_satuan);
end
write (bilang_puluhan);
satuan:=sisa_puluhan mod 10;
case satuan of
0:bilang_satuan:='';
1:bilang_satuan:='Satu ';
2:bilang_satuan:='Dua ';
3:bilang_satuan:='Tiga ';
4:bilang_satuan:='Empat ';
5:bilang_satuan:='Lima ';
6:bilang_satuan:='Enam ';
7:bilang_satuan:='Tujuh ';
8:bilang_satuan:='Delapan ';
9:bilang_satuan:='Sembilan ';
end;
write(bilang_satuan);
end;
end;
if length(input)<= 3 then
hitung_ratusan (uang)
else if length(input)<= 6 then
hitung_ribuan(uang)
else if length(input)<= 12 then
hitung_jutaan(uang)
else if (uang)=0 then
write ('Nol');
writeln ('Rupiah');
write('Menggunakan lagi?(Y/N): ');
readln(jawab);
{readln;
donewinCrt;}
end;
end.
function c2f(suhu:real):real;
var
ket:boolean;
c,f:real;
code:integer;
str:string;
begin
x:=23;
repeat
Write('Masukkan nilai suhu dalam derajat Celcius: ');
readln(str);
val(str,suhu,code);
if(code<>0) then
begin
writeln('Masukkan angka!');
ket:=false;
end
else
ket:=true;
until ket=true;
f:=((5/9)*suhu)+32;
gotoxy(20,25);
writeln('Hasil konversi: ',suhu:3:2,' derajat Celcius =
',f:3:2,' derajat Farenheith');
end;
variabel bil terisi oleh nilai 2, diproses dengan statement kendali dan memanggil
fungsi c2k. Berarti dilakukan konversi satuan Celcius ke satuan Kelvin.
Program ini akan memberikan pilihan untuk menentukan apakah kita
akan menggunakan lagi atau tidak yang dinyatakan oleh write('Menggunakan
lagi?(Y/N): '). Jawaban dari pilihan disimpan pada variabel jawab. Jika yang
dimaksukkan karakter y maka program akan malakukan perulangn memalui
while (jawab='y') or (jawab='Y') do . Pemasuukan nilai input yang baru
dapat dilakukan kembali.
Algoritma
Berikut ini algoritma program konversi suhu dari salah satu nilai
satuan suhu ke salah satuan yang lainnya.
0. Mulai
1. Pilihan konversi satuan suhu (bil)
2. Jika bil=1: Celcius to Farenheith (num)
3. Jika bil=2: Celcius to Kelvin (num)
4. Jika bil=3: Celcius to Reamur (num)
5. Jika bil=4: Farenheith to Kelvin (num)
6. Jika bil=5: Farenheith to Celcius (num)
7. Jika bil=6: Farenheith to Reamur (num)
8. Jika bil=7: Kelvin to Celcius (num)
9. Jika bil=8: Kelvin to Farenheith (num)
10. Jika bil=9: Kelvin to Reamur (num)
11. Jika bil=10: Reamur to Celcius (num)
12. Jika bil=11: Reamur to Farenheith (num)
13. Jika tidak : Reamur to Kelvin (num)
14. Selesai
Flowchart
a. Flow chart fungsi c2f
Start
Input
Masukkan
suhu: (num)
f (9/5)*c + 32
Output Hasil
konversi (f)
Start
Start
Input
Masukkan
suhu: (c)
k c + 273.15
Output Hasil
konversi (k)
Start
Start
Input
Masukkan
suhu: (f)
r (4/5)*c
Output Hasil
konversi (r)
Start
Start
Input
Masukkan
suhu: (f)
k (5/9*f)+255.38
Output Hasil
konversi (k)
Start
Start
Input
Masukkan
suhu: (f)
c 4/9*(f-32)
Output Hasil
konversi (c)
Start
Start
Input
Masukkan
suhu: (f)
r 4/9*(f-32)
Output Hasil
konversi (r)
Start
Start
Input
Masukkan
suhu: (k)
c k - 273.15
Output Hasil
konversi (c)
Start
Start
Input
Masukkan
suhu: (k)
f (9/5*k) 459.67
Output Hasil
konversi (r)
Start
Start
Input
Masukkan
suhu: (k)
r (4/5*k) - 273.15
Output Hasil
konversi (c)
Start
Start
Input
Masukkan
suhu: (r)
c 4/5*r
Output Hasil
konversi (r)
Start
Start
Input
Masukkan
suhu: (r)
f 4/9*r+32
Output Hasil
konversi (c)
Start
Start
Input
Masukkan
suhu: (r)
k (5/4*r) 273.15
Output Hasil
konversi (k)
Start
Start
Z
Input
Nomor pilihan
konversi: (bil)
Yes
bil=1
No c2f
Sepuluh
X Y
X Y
Yes
bil=2 c2k
No
Yes
bil=3 c2r
No
Yes
bil=4 f2c
No
Yes
bil=5 f2k
No
Yes
bil=6 f2r
No
Yes
bil=7 k2c
No
Yes
bil=8 k2f
Yes
bil=9 k2r
No
X Y
X Y
Yes
bil=10 r2c
No
Yes
bil=11 r2f
No
Yes
bil=12 r2k
No
No
Z coba lagi ?
Yes
End.
Kode Program
program Konversi_suhu;
uses
winCrt;
var
pilihan :string;
jawab:char;
bil,cd:integer;
suhu:real;
function c2f(suhu:real):real;
var
ket:boolean;
c,f:real;
code,x:integer;
str:string;
begin
x:=23;
repeat
gotoxy(20,x);
Write('Masukkan nilai suhu dalam derajat
Celcius: ');
readln(str);
val(str,suhu,code);
if(code<>0) then
begin
gotoxy(20,(x+1));
writeln('Masukkan angka!');
ket:=false;
end
else
ket:=true;
x:=x+2
until ket=true;
f:=(9/5)*suhu+32;
gotoxy(20,25);
writeln('Hasil konversi: ',suhu:3:2,' derajat
Celcius = ',f:3:2,' derajat Farenheith');
end;
function c2k(suhu:real):real;
var
ket:boolean;
c,k:real;
code,x :integer;
str:string;
begin
x:=23;
repeat
gotoxy(20,x);
Write('Masukkan nilai suhu dalam derajat
Celcius: ');
readln(str);
val(str,suhu,code);
if(code<>0) then
begin
gotoxy(20,(x+1));
writeln('Masukkan angka!');
ket:=false;
end
else
ket:=true;
x:=x+2
until ket=true;
k:=suhu+273.15;
gotoxy(20,25);
function c2r(suhu:real):real;
var
ket:boolean;
c,r:real;
code,x :integer;
str:string;
begin
x:=23;
repeat
gotoxy(20,x);
Write('Masukkan nilai suhu dalam derajat
Celcius: ');
readln(str);
val(str,suhu,code);
if(code<>0) then
begin
gotoxy(20,(x+1));
writeln('Masukkan angka!');
ket:=false;
end
else
ket:=true;
x:=x+2
until ket=true;
r:=((4/5)*suhu);
gotoxy(20,25);
writeln('Hasil konversi: ',suhu,' derajat
Celcius = ',r:3:2,' derajat Reamur');
end;
function f2k(suhu:real):real;
var
ket:boolean;
f,k:real;
code,x :integer;
str:string;
begin
x:=23;
repeat
gotoxy(20,x);
Write('Masukkan nilai suhu dalam derajat
Farenheith: ');
readln(str);
val(str,suhu,code);
if(code<>0) then
begin
gotoxy(20,(x+1));
writeln('Masukkan angka!');
ket:=false;
end
else
ket:=true;
x:=x+2
until ket=true;
k:=((5/9)*suhu)+255.38;
gotoxy(20,25);
writeln('Hasil konversi: ',suhu:3:2,' derajat
Farenheith = ',k:3:2,' derajat Kelvin');
end;
function f2c(suhu:real):real;
var
ket:boolean;
f,c:real;
code,x :integer;
str:string;
begin
x:=23;
repeat
gotoxy(20,x);
Write('Masukkan nilai suhu dalam derajat
Farenheith: ');
readln(str);
val(str,suhu,code);
if(code<>0) then
begin
gotoxy(20,(x+1));
writeln('Masukkan angka!');
ket:=false;
end
else
ket:=true;
x:=x+2
until ket=true;
c:=((5/9)*suhu)-32;
gotoxy(20,25);
writeln('Hasil konversi: ',suhu:3:2,'derajat
Farenheith = ',c:3:2,' derajat Celcius');
end;
function f2r(suhu:real):real;
var
ket:boolean;
f,r:real;
code,x :integer;
str:string;
begin
x:=23;
repeat
gotoxy(20,x);
Write('Masukkan nilai suhu dalam derajat
Farenheith: ');
readln(str);
val(str,suhu,code);
if(code<>0) then
begin
gotoxy(20,(x+1));
writeln('Masukkan angka!');
ket:=false;
end
else
ket:=true;
x:=x+2
until ket=true;
r:=(4/9)*(suhu-32);
gotoxy(20,25);
writeln('Hasil konversi: ',suhu:3:2,' derajat
Farenheith = ',r:3:2,' derajat Reamur');
end;
function k2c(suhu:real):real;
var
ket:boolean;
k,c:real;
code,x :integer;
str:string;
begin
x:=23;
repeat
gotoxy(20,x);
Write('Masukkan nilai suhu dalam derajat
Kelvin: ');
readln(str);
val(str,suhu,code);
if(code<>0) then
begin
gotoxy(20,(x+1));
writeln('Masukkan angka!');
ket:=false;
end
else
ket:=true;
x:=x+2
until ket=true;
c:=suhu-273.15;
gotoxy(20,25);
writeln('Hasil konversi: ',suhu:3:2,' derajat
Kelvin = ',c:3:2,' derajat Celcius');
end;
function k2f(suhu:real):real;
var
ket:boolean;
k,f:real;
code,x :integer;
str:string;
begin
x:=23;
repeat
gotoxy(20,x);
Write('Masukkan nilai suhu dalam derajat
Kelvin: ');
readln(str);
val(str,suhu,code);
if(code<>0) then
begin
gotoxy(20,(x+1));
writeln('Masukkan angka!');
ket:=false;
end
else
ket:=true;
x:=x+2
until ket=true;
f:=((9/5)*suhu)-459.67;
gotoxy(20,25);
writeln('Hasil konversi: ',suhu:3:2,'derajat
Kelvin = ',f:3:2,' derajat Farenheith');
end;
function k2r(suhu:real):real;
var
ket:boolean;
k,r:real;
code,x :integer;
str:string;
begin
x:=23;
repeat
gotoxy(20,x);
Write('Masukkan nilai suhu dalam derajat
Kelvin: ');
readln(str);
val(str,suhu,code);
if(code<>0) then
begin
gotoxy(20,(x+1));
writeln('Masukkan angka!');
ket:=false;
end
else
ket:=true;
x:=x+2
until ket=true;
r:=((4/5)*suhu)-273.15;
gotoxy(20,25);
writeln('Hasil konversi: ',suhu:3:2,' derajat
Kelvin = ',r:3:2,' derajat Reamur');
end;
function r2c(suhu:real):real;
var
ket:boolean;
r,c:real;
code,x :integer;
str:string;
begin
x:=23;
repeat
gotoxy(20,x);
Write('Masukkan nilai suhu dalam derajat
Reamur: ');
readln(str);
val(str,suhu,code);
if(code<>0) then
begin
gotoxy(20,(x+1));
writeln('Masukkan angka!');
ket:=false;
end
else
ket:=true;
x:=x+2
until ket=true;
c:=((5/4)*suhu);
gotoxy(20,25);
writeln('Hasil konversi: ',suhu:3:2,' derajat
Reamur = ',c,' derajat Celcius');
end;
function r2f(suhu:real):real;
var
ket:boolean;
num,r,f:real;
code,x :integer;
str:string;
begin
x:=23;
repeat
gotoxy(20,x);
Write('Masukkan nilai suhu dalam derajat
Reamur: ');
readln(str);
val(str,suhu,code);
if(code<>0) then
begin
gotoxy(20,(x+1));
writeln('Masukkan angka!');
ket:=false;
end
else
ket:=true;
x:=x+2
until ket=true;
f:=((9/4)*suhu+32);
gotoxy(20,25);
writeln('Hasil konversi: ',suhu:3:2,' derajat
Reamur = ',f:3:2,' derajat Farenheith');
end;
function r2k(suhu:real):real;
var
ket:boolean;
r,k:real;
code,x :integer;
str:string;
begin
x:=23;
repeat
gotoxy(20,x);
Write('Masukkan nilai suhu dalam derajat
Reamur: ');
readln(str);
val(str,suhu,code);
if(code<>0) then
begin
gotoxy(20,(x+1));
writeln('Masukkan angka!');
ket:=false;
end
else
ket:=true;
x:=x+2
until ket=true;
k:=(5/4*suhu)-273.15;
gotoxy(20,25);
writeln('Hasil konversi: ',suhu:3:2,' derajat
Reamur = ', k:3:2,' derajat Kelvin');
end;
begin
jawab:='y';
while (jawab='y') or (jawab='Y')do
begin
clrscr;
gotoxy(20,2);
writeln('+================================================+');
gotoxy(20,3);
writeln('+======== PROGRAM KONVERSI SUHU =========+');
gotoxy(20,4);
writeln('+======== KELOMPOK : XVIII =========+');
gotoxy(20,5);
writeln('+================================================+');
gotoxy(20,7);
writeln('Silahkan pilih salah satu pilihan di bawah
ini');
gotoxy(20,8);
writeln ('Jenis konversi');
gotoxy(20,9);
writeln ('1. Celcius ke Farenheit');
gotoxy(20,10);
writeln ('2. Celcius ke Kelvin');
gotoxy(20,11);
writeln ('3. Celcius ke Reamur');
gotoxy(20,12);
writeln ('4. Farenheit ke Celcius');
gotoxy(20,13);
writeln ('5. Farenheit ke Kelvin');
gotoxy(20,14);
writeln ('6. Farenheit ke Reamur');
gotoxy(20,15);
writeln ('7. Kelvin ke Celcius');
gotoxy(20,16);
writeln ('8. Kelvin ke Farenheit');
gotoxy(20,17);
writeln ('9. Kelvin ke Reamur');
gotoxy(20,18);
writeln ('10.Reamur ke Celcius');
gotoxy(20,19);
writeln ('11.Reamur ke Farenheit');
gotoxy(20,20);
writeln ('12.Reamur ke Kelvin');
gotoxy(20,22);
write('Nomor pilihan: ');
readln(pilihan);
val(pilihan,bil,cd);
if (cd<>0) then
begin
gotoxy(20,24);
writeln('Tolong masukkan angka!!');
end
else
begin
if ((bil >0) and (bil<13)) then
begin
if bil = 1 then
c2f (suhu)
end;
end.
Setelah itu kita masukkan inputnya yang berupa angka yang nantinya akan
dikonversi
Setelah kita enter maka akan keluar hasil dari konversi cek tersebut dan
perintah untuk mencoba lagi atau tidak. Seperrti pada gambar dibawah.
Tekan enter dan hasilnya akan keluar dan perintahuntuk mencoba lagi atau
tidak, seperti terlihat pada gambar dibawah
Simpulan
Dari pembahasan dan analisis dapat ditarik kesimpulan sebagai berikut ini:
a. Penggunaan tipe-tipe data disesuikan dengan kebutuhan dan jenis nilai
variabel sehingga penggunann memori komputer oleh program tersebut
dapat seefisien mungkin.
b. Penggunaan statement kontrol khususnya if...then, if...else... dan case...of
berguna jika kita dihadapkan pada permasalahan untuk mengmbil suatu
keputusan terhadap alternatif dari konsisi permasalahan dimana kondisi
dalam berada dalam bentuk ekspresi.
c. Statement if digunakan dalm permasalahan untuk mengbil suatu keputusan
terhadap dua alternatif. Pengambilan keputusan didasarkan oleh suatu
kondisi yang kita evaluasi apakah bernilai True atau False.
d. Statement caseof digunakan untuk menggambarkan adanya pemilihan
lebih dari satu dimana didalamnya terdapat banyak kondisi yang harus
dikerjakan. Statemant ini juga dapat dikatakan sebagai statement if
bertingkat.
e. Kekurangan dari program konversi cek ini adalah user tidak dapat
memproses nilai angka desimal. Jika hal ini dilakukan akan mendapat
pesan Masukkan angka yang kurang dari satu miyar!.
f. Kekurangan dari program konversi suhu ini adalah user tidak dapat
memproses jika nilai satuan suhu dalam bentuk angka mengandung dua
koma. Jika hal ini dilakukan akan mendapat pesan Masukkan angka.
BIODATA PENULIS
Agama : Hindu
Email : turusdi.info@gmail.com
www.facebook.com/turusdi