PRAKTIKUM KOMSEP PEMROGRAMAN KOMPUTER MODUL II TIPE DATA DASAR & STATEMEN KONTROL

Oleh KELOMPOK XVIII

Putu Rusdi Ariawan (0804405050) I Gusti Agung Gede Mega Perbawa (0804405049)

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 1. 2.

Tujuan Memahami dasar-dasar pemrograman Pascal atau C++. Memahami penggunaan statement kontrol khususnya if...., if...else, switch atau case....of.

3. 4. 5. 6.

Memahami pemilihan tipe data yang digunakan secara efisien. Memahami manipulasi string. Memahami dan bisa membuat program yang berbentuk suatu fungsi. Memahami dan bisa menggunakan passing parameter dalam fungsi ndan prosedur.

4.2

Tinjauan Pustaka

4.2.1 Tipe Data Tipe data dari variabel digunakan untuk mengklasifikasikan informasi atau data berdasarkan jangkauan nilai dan memori yang dibutuhkan program. Data yang dipergunakan dalam bahasa pemrograman memiliki ukuran dan tipe yang berbeda. Setiap tipe data membutuhkan jumlah memori yang berbeda juga untuk menyimpannya. Untuk menentukan jumlah memori yang akan diproses program harus mencamtumkan jenis data yang diperlukan. Tipe data pada Pascal dikelompokkan menjadi bebebrapa bagian seperti tipe sederhana, tipe integer, tipe bolean, tipe char, tipe terbilang, tipe subjangkauan, tipe riil, tipe string, tipe terstruktur, tipe larik, tipe rekaman, tipe himpunan, tipe berkas dan tipe pointer. Dari masing-masing kelompok tipe data tersebut dapat dibagi lagi menurut batas nilainya . Dalam bahasa pascal terdapat bermacam-macam tipe data, namun tipe dasar pada bahasa ini hannya ada 3 jenis yaitu :

PUTU RUSDI ARIAWAN

TIPE DATA DASAR & STATEMEN KONTROL 1. Tipe Data Sederhana 2. Tipe Data Terstruktur 3. Tipe Data Pionter Tipe data dasar yang digunakan dalam pascal dapat dibagi menjadi beberapa bagian. Berikut adalah skema pembagian tipe data dasar.

Shortin t Integer integer Longint Tipe Ordinal Boolean Byte Char Shortin t

enumera si Subrang e

Tipe Data Dasar

Real

Single

Tipe Real

Double

Extented

Comp

PUTU RUSDI ARIAWAN

TIPE DATA DASAR & STATEMEN KONTROL

4.2.1.1

Tipe Data Sederhana Biasanya pemrogram mengartikan tipe data ini adalah berupa sebuah

perubah yang hanya menyimpan nilai data saja.

Tipe data ini dapat diklasifikasikan menjadi:

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.

Yang termasuk kategori tipe data ini adalah:

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.

PUTU RUSDI ARIAWAN

TIPE DATA DASAR & STATEMEN KONTROL

Tabel 4.1 Tipe Byte ShortInt Word Integer LongInt Batas Nilai 0 ... 255 -128 ... 127 0 … 65535 -32768 … 32767 -2147483648 … 2147483647 Ukuran 1 byte 1 byte 2 byte 2 byte 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 Boolean Wordbool Longbool ukuran 1 byte 2 byte 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.

PUTU RUSDI ARIAWAN

TIPE DATA DASAR & STATEMEN KONTROL 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 Real Single Double 1,7x10 Extended Batas Nilai 2,9x10-39 s/d 1,7x1038 1,5x10-45 s/d 3,4x1038 5,0x10-324
308

Ukuran 6 byte 4 byte 8 byte

s/d

1,9x10-4951 1,1x104932

s/d

10 byte

Comp

-9,2x1018 s/d 9,2x1018

8 byte

4.2.1.2

Tipe Data Terstruktur Setiap perubah pada tipe terstruktur bisa menyimpan lebih dari sebuah

nilai data, masing – masing nilai data tersebut disebut sebagai dengan komponen elemen. Ukuran tipe tersrtuktur dalam turbo pascal maksimum 65520 byte yaitu sebesar memori segmen data.

Yang temasuk kategori tipe data ini yaitu: 1. Tipe String Konstanta string didefinisikan menggunakan tanda kutip tunggal diikuti dengan rangkaian karakter, diikuti lagi dengan tanda kutip tunggal. Panjang maksimum konstanta string adalah 255 karakter, panjang minimum adalah 0.

PUTU RUSDI ARIAWAN

TIPE DATA DASAR & STATEMEN KONTROL 2. Tipe Larik (Array) Tipe larik adalah tipe yang mempunyai komponen dalam jumlah tetap dan setiap komponen mempunyai tipe data yang sama. Parameter ini boleh berupa sembarang tipe ordinal kecuali longInt dan subjangkauan dari longInt.

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.

4.2.1.3

Tipe Data Pointer Istilah pointer ini adalah alamat untuk item data. Pointer digunakan

bersamaan dengan dynamic memory allocation. Tipe ini hanya dibatasi dengan jumlah ketersediaan memori, tidak dengan batas atas yang dibebankan pada waktu program dicompile

4.2.1.4 Penggunaan tipe data Penggunaan tipe-tipe data disesuikan dengan kebutuhan dan jenis nilai variabel sehingga penggunann memori komputer oleh program tersebut dapat seefisien mungkin. Sebagian besar tipe data adalah integer yang merupakan tipe data numerik yang mewakili seluruh bilangan. Pada saat dipergunakan dalam

PUTU RUSDI ARIAWAN

TIPE DATA DASAR & STATEMEN KONTROL program maka digunakan deklarasi terlebih dahulu untuk variabel. Berikut beberapa contoh deklarasi integer:
bilangan: integer ; code_bil: integer ; bil,cd: integer ;

Kode Program 4.1 Deklrarasi Integer

Untuk mendeklarasikan integer digunakan reserved word integer dan tuliskan nama variabel yang akan dipakai . Tipe data jenis ini nilainya tidak memiliki titik desimal dan tanda plus minus dapat mendahului bilangan tersebut. Tipe data kedua bilangan desimal seperti real, singel, doubel dan
extended.

Tidak seperti tipe data integer, jenis data ini dapat memiliki bilangan

fraksional. Bilangan desimal digunakan untuk menyatakan nilai eksak. Oleh karena itu tipe bilangan ini biasanya digunakan untuk perhitungan-perhitungan ilmiah atau menghitung keuangan. Selain memiliki ketelitian yang lebih besar dibandingkan integer tipe data ini juga dapat menyatakan nilai yang lebih besar atau lebih kecil dengan kata lain jangkauannya lebih lebar. Deklarasi tipe data ini dengan menggunakan reserved word pada nama variabel. Seperti jika program menemukan reserved word real, maka akan disediakan ruang memori yang cukup untuk menampung bilangan dan menandai nama variabel untuk menyatakan bilangan tersebut.
saldo_tabungan: real ; principal, interest: real ; miliage: real ; Kode Program 4.2 Deklrarasi Real

Deklarasi yang pertama adalah bentuk yang paling sederhana, yaitu deklarasi variabel tunggal tanpa nilai awal. Deklarasi yang kedua menunjukkan deklarasi untuk dua variabel pada satu baris, dan deklarasi semacam ini kalau terlalu banya dalam satu baris akan menyebabkan program sulit dipelajari. Bentuk

PUTU RUSDI ARIAWAN

TIPE DATA DASAR & STATEMEN KONTROL yang ketiga menunjukkan deklarasi dengan pemberian nilaiawal pada variabel tersebut.

4.2.2 Statement kontrol Dalam konsep pemrograman komputer ada berbagai jenis statement yang digunakan untuk membuat suatu program. Dalam bahasa Pascal salah satu statement yang sering digunakan adalah statement percabangan yang terdiri dari statement if…, if…else, dan case.

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

Gambar 4.1 Flow Chart Statement if ...then

PUTU RUSDI ARIAWAN

TIPE DATA DASAR & STATEMEN KONTROL Bentuk pernyataan untuk menggunakan statement sebagai berikut:
IF kondisi THEN Block_statement Kode Program 4.3 Deklrarasi Statement if...then

if...then adalah

b.

Statement if…else Statement if…else 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

Gambar 4.2 Flow Chart Statement if ...else

Bentuk pernyataan untuk menggunakan statement sebagai berikut:
IF kondisi THEN Block_statement_1 ELSE Block_statement_2 Kode Program 4.3 Deklrarasi Statement if...else

if...else adalah

PUTU RUSDI ARIAWAN

TIPE DATA DASAR & STATEMEN KONTROL

Dimana Block_statement_1 hanya akan dijalankan jika kondisi bernilai True (Yes) dan Block_statement_2 hanya akan dijalankan jika kondisi bernilai False (No). 4.2.2.2 Statement case…of Statement case…of 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. Dalam diagram bagan alir statement ini digambarkan sebagai berikut :

Nilai= Daftar_nilai_1

Block_statement_1

Nilai= Daftar_nilai_2

Block_statement_2

Nilai= Daftar_nilai_m

Block_statement_3

Block_statement_n

Gambar 4.3 Flow Chart Statement case...of

PUTU RUSDI ARIAWAN

TIPE DATA DASAR & STATEMEN KONTROL 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 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

case...of adalah

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.2.3

Program konversi nilai cek Transaksi keuangan yang dilakukan berbagai pihak khususnya

perbankkan menuntuk ketelitian kejelasan dari nilai uang yang tertera pada bukti transaksi. Hal ini dapat ditunjukkan dari nilai uang yang tertera dengan angka dilengkapi juga membilang jumlahn uang dengan tulisan hurup. Misalnya terdapat sejumlah uang sebesar Rp. 1.200.999,00 maka dibawahnya terdapat tulisan “Satu Juta Dua Ratus Ribu Sembilan Ratus Sembilan Puluh Sembilan Rupiah”. Program berikut bertujuan untuk menyelesaikan permasahan tersebut dengan komputer. Nilai mata uang rupiah dalam angka sebagai input program akan dikonversikan ke bentuk terbilang dengan hurup.

PUTU RUSDI ARIAWAN

TIPE DATA DASAR & STATEMEN KONTROL

4.2.4 Program konversi nilai suhu Suhu menyatakan derajat panas dari keadaan suatu benda, ruang, sistem dan lingkungan. Satuan suhu bermacam-macam antara lain Celcius, Farenheith, Kelvin dan Reamur. Masing-masing satuan tersebut memiliki titik beku dan titik didih yang berbeda. Perbedaan ini menyebabkan dalam tingkat panas yang sama maka derajat yang ditunjukkan antara sattuan suhu yang berbeda akan berbeda juga. Mengubah suatu satuan suhu ke satuan suhu yang lain dilakukan dengan memperhatikan perbandingan besaran masing-maisng satuan: 1. Skala Celcius ke Farenheith
F 9 * (C 5 32) ………………………………………………………(4.1)

2.

Skala Celcius ke Kelvin
K C 273.15 ……………………………………………………… (4.2)

3.

Skala Celcius ke Reamur
R 4 * C …………………………………………………………….. (4.3) 5

4.

Skala Farenheith ke Kelvin
K 5 ( * F ) 255 .38 ………………………………………………….(4.4) 9

5

Skala Farenheith ke Celcius.
C 5 * (F 9 32) …………………………………………………….... (4.5)

6

Skala Farenheith ke Reamur
R 4 * (F 9 32) ……………………………………………………… (4.6)

7

Skala Kelvin ke Celcius
C K 273.15 ………………………………………………………. (4.7)

8

Skala Kelvin ke Farenheith
F 9 ( * K ) 459 .67 ………………………………………………… (4.8) 5

9

Skala Kelvin ke Reamur

PUTU RUSDI ARIAWAN

TIPE DATA DASAR & STATEMEN KONTROL

R

4 ( * K ) 273.15 ........................................................................(4.9) 5

10

Skala Reamur ke Celcius
C 5 * R ..................................................................................... 4

(4.10)

11

Skala Reamur ke Farenheith
F 9 * R 32 ............................................................................... 4

(4.11)

12

Skala Reamur ke Kelvin
K 5 ( * 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.

Program Konversi Cek Setelah suatu masalah dipahami dengan jelas yaitu melalui pembatasan masalah, kemudian model sudah dibuat, maka tahap selanjutnya adalah menyusun langkah-langkah untuk penyelesaian masalah, kebenaran langkah langkah tersebut secara logika harus dapat ditelusuri. Walupun langkah langkah yang dibuat dalam rancangan algoritma ini masih merupakan langkah langkah yang tidak terlampau rinci, tetapi secara keseluruhan ia harus dapat mengambarkan tahapan penyelesaian dengan jelas, untuk itulah dikembangkan teknik teknik algoritma yang akan dijelaskan pada bab mendatang.

Penjelasan Procedure dan Fungsi a. Fungsi ratusan

PUTU RUSDI ARIAWAN

TIPE DATA DASAR & STATEMEN KONTROL

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)

PUTU RUSDI ARIAWAN

TIPE DATA DASAR & STATEMEN KONTROL

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 else if puluhan <>1 then begin case puluhan of 0: bilang_puluhan:= ''; 2: bilang_puluhan:= 'Dua Puluh '; 3: bilang_puluhan:= 'Tiga Puluh '; 4: bilang_puluhan:= 'Empat Puluh '; 5: bilang_puluhan:= 'Lima Puluh '; 6: bilang_puluhan:= 'Enam Puluh '; 7: bilang_puluhan:= 'Tujuh Puluh '; 8: bilang_puluhan:= 'Delapan Puluh '; 9: bilang_puluhan:= 'Sembilan Puluh '; 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; Kode Program 4.6 Lanjutan Fungsi Ratusan Program Konversi Cek(b)

Fungsi ratusan mempunyai sifat memberikan nilai ratusan pada saat dipanggil. Nama dari fungsi tersebut adalah hitung_ratusan dan memiliki

PUTU RUSDI ARIAWAN

TIPE DATA DASAR & STATEMEN KONTROL

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 case…of 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 case…of 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.

PUTU RUSDI ARIAWAN

TIPE DATA DASAR & STATEMEN KONTROL b. Fungsi ribuan

function hitung_ribuan(uang: longint): longint; begin ribuan := uang div 1000; sisa_ribuan := uang mod 1000; if ribuan = 1 then write('Seribu ') else if ribuan> 1 then begin hitung_ratusan(ribuan); write('Ribu '); end; hitung_ratusan(sisa_ribuan); end;

Kode Program 4.7 Fungsi Ribuan Program Konversi Cek

Pada fungsi ribuan dilakukan dengan membagi nilai parameter uang dengan bilangan seribu dan kemudian disimpan pada variabel ribuan. Sisa bagi dari parameter uang dengan bilangan seribu juga dilakukan oleh pernyataan
sisa_ribuan := uang mod 1000;.

Statement if digunakan dalm permasalahan

untuk mengbil suatu keputusan terhadap dua alternatif. Bagian statement if...then kondisi berupa ekspresi ribuan = 1. Bentuk ini, kalau kondisi bernilai ribuan bernilai satu akan menjalankan pernyataan write(‘ Seribu’);. Kata ‘seribu’ akan dicetak kelayar dan kalau tidak dilanjukkan dengan else if ribuan> 1
then.

Apabila kondisi ribuan> 1 terpenuhi maka akan memanggil fungsi

ratusan hitung_ratusan(ribuan) yang telah dideklarasikan terlebih dahulu dan dilanjutkan dengan mencetak kata ‘ribu’. Untuk variabel sisa_ribuan juga diproses dengan fungsi ratusan dan berkedudukan sebagai parameter.

PUTU RUSDI ARIAWAN

TIPE DATA DASAR & STATEMEN KONTROL c. Fungsi jutaan

function hitung_jutaan(uang: longint): longint; begin jutaan := uang div 1000000; sisa_jutaan := uang mod 1000000; hitung_ratusan(jutaan); write('Juta '); hitung_ribuan(sisa_jutaan); end; Kode Program 4.8 Fungsi Jutaan Program Konversi Cek

Fungsi ini menggunakan operator-operator yang tidak jauh berbeda dari fungsi sebelumnya seperti div dan operator mod. Variabel jutaan diisi oleh hasil bagi dalam bilangan bulat parameter uang dengan satu juta, variabel
sisa_jutaan

diisi oleh sisa bagi parameter uang dengan bilangan satu juta.

Nilai dari variabel jutaan diproses dengan fungsi hitung_ratusan dan ditambahkan dengan kata ‘juta’. Untuk nilai variabel sisa_jutaan juaga dilakukan dengan pemanggilan fungsi hitung_ribuan. Fungsi hitung_jutaan pernyataanya tergolong pendek dibandingkan dengan fungsi lainnya. Hal ini disebebkan oleh karena proses yang dilakukan sudah dideklarasikan terlebih dahulu sehingga untuk menggunakannya kembali cukup dengan memanggil nama fungsi yang bersangkutan.

PUTU RUSDI ARIAWAN

TIPE DATA DASAR & STATEMEN KONTROL 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; begin {program utama} jawab:='y'; while (jawab='y') or (jawab='Y') do begin repeat {pengulangan input} write ('Masukkan input = '); readln(input); val(input, uang, kode); if kode <>0 then begin writeln ('Masukkan angka yang kurang dari satu milyar!'); writeln; ket:=false; end else if uang < 0 then begin writeln('Masukkan nilai positif!'); writeln; ket:=false; end else if uang >=1000000000 then begin writeln('Masukkan angka yang kurang dari satu milyar!'); writeln; ket:=false; end else ket:= true; until ket=true;

Kode Program 4.9 Program Utama Konversi Cek(a)

PUTU RUSDI ARIAWAN

TIPE DATA DASAR & STATEMEN KONTROL

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. Kode Program 4.10 Program Utama Konversi Cek(b)

Program utama terdiri dari bagian-magian. Bagian kepala program adalah nama dari program diawali dengan reserved word program kemudian dilengkapi dengan penamaan dan tanda titik koma program bilang_uang;. Penamaan harus sesuai dengan syarat-syarat aturan penamaan variabel. Nama program boleh berbeda dengan nama file program. Kepala program yang dinyatakan oleh nama program hanya bersifat opsional berarti dalam suatu program dapat saja tidak mencantumkan nama program. Sebelum suatu variabel dapat digunakan pada bagian pernyataan, variabel haruslah dideklarasikan terlebih dahulu. Seperti input merupakan nama variabel berupa pengenal, string merupakan jenis tipe data yang digunakan untuk menyimpan nilai yang terdapat pada variabel input dan untuk deklarasi variabel yang lain berlaku hal yang sama. Pendeklarasian variabel merupakan upaya untuk memesan tempat didalam memori bagi variabel danjuga menentukan tipe datanya. Program utama diawali dengan memasukkan input uang cek dalam bentuk angka write ('Masukkan input = '). Nilai yang dimasukkan akan ditempatkan pada variabel input yang ditunjukkan dengan readln(input);. Pernyataan val(input, uang, kode); berfungsi untuk mengkonversi tipe data input yang dismpan dalam bentuk string menjadi bentuk longint pada variabel uang dan kode berbentuk integer. Hal ini bertujuan untuk mengecek apakah input yang dimasukkan berupa angka melalui statement if diikuti ekspresi kode <>0 apabila bernilai benar berarti yang dimasukkan berupa karakter. Pesan akan

PUTU RUSDI ARIAWAN

TIPE DATA DASAR & STATEMEN KONTROL

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. 1. 2. 3. 4. 5. 6. Mulai Masukkan angka Jika length angka lebih dari dan atau sama dengan 3:hitung_ratusan (uang) Jika length angka lebih dari dan atau sama dengan 6:hitung_ribuan (uang) Jika length angka lebih dari dan atau sama dengan 12:hitung_jutaan (uang) Jika angka sama dengan 0:cetak‟nol rupiah‟ Menggunakan lagi? Go to 1

Selesai

PUTU RUSDI ARIAWAN

TIPE DATA DASAR & STATEMEN KONTROL

Flowchart a. Flow chart fungsi_ratusan
Start

Input (uang)

ratusan

uang div 100

sisa_ratusan

uang mod 100 Yes

ratusan=0 No Yes ratusan=1 No Yes ratusan=2 No Yes ratusan=3 No Yes ratusan=4 No Yes ratusan=5 No Yes ratusan=6 No Yes ratusan=7 No Yes ratusan=8 No A

bilang_ratusan

„„

bilang_ratusan

„ Seratus „

bilang_ratusan

„ Dua Ratus„

bilang_ratusan

„ Tiga Ratus„

bilang_ratusan

„ Empat Ratus„

bilang_ratusan

„ Lima Ratus„

bilang_ratusan

„ Enam Ratus„

bilang_ratusan

„ Tujuh Ratus„

bilang_ratusan

„ Delapan Ratus„

B

Gambar 4.4 Flow Chart Fungsi Ratusan Program Konversi Cek(a)

PUTU RUSDI ARIAWAN

TIPE DATA DASAR & STATEMEN KONTROL

A

B

Yes ratusan=9 No Input (bilang_ratusan) bilang_ratusan „ Sembilan Ratus„

puluhan

susa_ratusan div 10

sisa_puluhan

sisa_ratusan mod 10 Yes

No

puluhan=1 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

Gambar 4.5 Flow Chart Fungsi Ratusan Program Konversi Cek(b)

PUTU RUSDI ARIAWAN

TIPE DATA DASAR & STATEMEN KONTROL

C No

D

E

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 No Yes puluhan=2 No Yes puluhan=3 No Yes puluhan=4 No Yes puluhan=5 No Yes puluhan=6 No Yes puluhan=7 No Yes puluhan=8 No F bilang_puluhan bilang_puluhan bilang_puluhan bilang_puluhan bilang_puluhan bilang_puluhan bilang_puluhan bilang_puluhan

„ „

„ Dua Puluh„

„ Tiga Puluh„

„ Empat Puluh„

„ Lima Belas„

„ Enam Puluh„

„ Tujuh Puluh„

„ Delapan Puluh„

G

Gambar 4.6 Flow Chart Fungsi Ratusan Program Konversi Cek(c)

PUTU RUSDI ARIAWAN

TIPE DATA DASAR & STATEMEN KONTROL

F

G

Yes puluhan=9 No Input (bilang_puluhan) bilang_puluhan

„ Sembilan Puluh„

satuan

sisa_puluhan mod 10 Yes satuan =0 No Yes satuan =1 No Yes satuan =2 No Yes satuan =3 No Yes satuan =4 No Yes satuan =5 No Yes satuan =6 No Yes satuan =7 No Yes satuan =8 No H I bilang_satuan „ Delapan „ bilang_satuan „ Tujuh „ bilang_satuan „ Enam „ bilang_satuan „ Lima „ bilang_satuan „ Empat „ bilang_satuan „ Tiga „ bilang_satuan „ Dua „ bilang_satuan „ Satu„ bilang_satuan

„„

Gambar 4.7 Flow Chart Fungsi Ratusan Program Konversi Cek(d)

PUTU RUSDI ARIAWAN

TIPE DATA DASAR & STATEMEN KONTROL

H

I

Yes satuan =9 No Input (bilang_satuan) bilang_satuan

„ Sembilan „

End.
Gambar 4.8 Flow Chart Fungsi Ratusan Program Konversi Cek(e)

b.

Flow Chart fungsi hitung_ribuan
Start

Input (uang)

ribuan

uang div 1000

sisa_ribuan

uang mod 1000 Yes

ribuan=1 No ribuan >1

hitung_ratusan (ribuan)

Output „ Ribu‟

Output „ Seribu‟

hitung_ratusan (sisa_ribuan)

End.
Gambar 4.9 Flow Chart Fungsi Ribuan Program Konversi Cek

PUTU RUSDI ARIAWAN

TIPE DATA DASAR & STATEMEN KONTROL c. Flow Chart fungsi hitung_jutaan Start

Input (uang)

jutaan

uang div 1000000

sisa_jutaan

uang mod 1000000

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

Gambar 4.11 Flow Chart Program Utama Konversi Cek(a)

PUTU RUSDI ARIAWAN

TIPE DATA DASAR & STATEMEN KONTROL

K

K

length angk<= 6 No

Yes hitung_ribuan (uang)

Yes length angk<= 12 No hitung_jutaan (uang)

(uang) = 0 No

Yes Output „nol rupiah‟

„Menggunakan lagi?(y/n): ‟

End.
Gambar 4.12 Flow Chart Program Utama Konversi Cek(b)

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; Kode Program 4.11 Program Konversi Cek (a)

PUTU RUSDI ARIAWAN

TIPE DATA DASAR & STATEMEN KONTROL
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 else if puluhan <>1 then begin case puluhan of 0: bilang_puluhan:= 2: bilang_puluhan:= 3: bilang_puluhan:= 4: bilang_puluhan:= 5: bilang_puluhan:= 6: bilang_puluhan:= 7: bilang_puluhan:= 8: bilang_puluhan:= 9: bilang_puluhan:= end;

''; 'Dua Puluh '; 'Tiga Puluh '; 'Empat Puluh '; 'Lima Puluh '; 'Enam Puluh '; 'Tujuh Puluh '; 'Delapan Puluh '; 'Sembilan Puluh ';

write (bilang_puluhan); satuan:=sisa_puluhan mod 10; Kode Program 4.12 Program Konversi Cek(b)

PUTU RUSDI ARIAWAN

TIPE DATA DASAR & STATEMEN KONTROL

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; function hitung_ribuan(uang: longint): longint; begin ribuan := uang div 1000; sisa_ribuan := uang mod 1000; if ribuan = 1 then write('Seribu ') else if ribuan> 1 then begin hitung_ratusan(ribuan); write('Ribu '); end; hitung_ratusan(sisa_ribuan); end; function hitung_jutaan(uang: longint): longint; begin jutaan := uang div 1000000; sisa_jutaan := uang mod 1000000; hitung_ratusan(jutaan); write('Juta '); hitung_ribuan(sisa_jutaan); end;

begin

{program utama} jawab:='y'; while (jawab='y') or (jawab='Y') do begin writeln ('=========================================='); writeln ('PROGRAM KONVERSI ANGKA KE HURUP KLP. XVIII'); writeln ('=========================================='); repeat {pengulangan input} write ('Masukkan input = '); readln(input); Kode Program 4.13 Program Konversi Cek (c)

PUTU RUSDI ARIAWAN

TIPE DATA DASAR & STATEMEN KONTROL

val(input, uang, kode); if kode <>0 then begin writeln ('Masukkan angka yang kurang dari satu milyar!'); writeln; ket:=false; end else if uang < 0 then begin writeln('Masukkan nilai positif!'); writeln; ket:=false; end else if uang >=1000000000 then begin writeln('Masukkan angka yang kurang dari satu milyar!'); writeln; ket:=false; end else ket:= true; until ket=true; 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.

Kode Program 4.14 Program Konversi Cek (d)

Program Konversi Suhu Setelah suatu masalah dipahami dengan jelas yaitu melalui pembatasan masalah, kemudian model sudah dibuat, maka tahap selanjutnya adalah menyusun langkah-langkah untuk penyelesaian masalah, kebenaran langkah langkah tersebut secara logika harus dapat ditelusuri. Walupun langkah langkah yang dibuat dalam rancangan algoritma ini masih merupakan langkah langkah yang tidak terlampau

PUTU RUSDI ARIAWAN

TIPE DATA DASAR & STATEMEN KONTROL rinci, tetapi secara keseluruhan ia harus dapat mengambarkan tahapan penyelesaian dengan jelas, untuk itulah dikembangkan teknik teknik algoritma yang akan dijelaskan pada bab mendatang.

Penjelasan Procedure dan Fungsi

a.

Fungsi konversi suhu

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; Kode Program 4.15 Fungsi c2f Program Konversi Suhu

Fungsi ini mempunyai sifat memberikan suhu konversi yang diinginkan pada saat dipanggil. Nama dari fungsi tersebut adalah c2k dan memiliki parameter yang dilengkapi dengan tipe data yang digunakan yaitu
suhu:real;

serta hasil dari fungsi ratusan bertipe data real.

Variabel lokal digunakan pada fungsi ini dimana varialbel yang dideklarasikan hanya berlaku pada fungsi yang bersangkutan. Variabel

PUTU RUSDI ARIAWAN

TIPE DATA DASAR & STATEMEN KONTROL

dideklarasikan terlebih dahulu. Seperti c merupakan nama variabel berupa pengenal, real merupakan jenis tipe data yang digunakan untuk menyimpan nilai yang terdapat pada variabel input dan untuk deklarasi variabel yang lain berlaku hal yang sama. Pendeklarasian variabel merupakan upaya untuk memesan tempat didalam memori bagi variabel danjuga menentukan tipe datanya. Pernyataan fungsi diawali dengan memasukkan input suhu

Write('Masukkan nilai suhu dalam derajat Celcius: ');.

Nilai yang

dimasukkan akan ditempatkan pada variabel str yang ditunjukkan dengan
readln(str);.

Pernyataan

val(str,

num,

code);

berfungsi

untuk

mengkonversi tipe data str yang dismpan dalam bentuk string menjadi bentuk real pada variabel num dan code berbentuk integer. Hal ini bertujuan untuk mengecek apakah input yang dimasukkan berupa angka melalui statement if diikuti ekspresi code <>0 apabila bernilai benar berarti yang dimasukkan berupa karakter dan bukan angka. Pesan akan dimunculkan writeln('Masukkan
angka!');. ket=true.

Perulangan memasukkan nilai input akan berakhir apabila until

Nilai input suhu Celcius yang disimpan pada variabel num dikonversi

menjadi suhu dengan satuan Farenhith oleh pernyataan f:=((5/9)*suhu)+32;. Hasilnya dicetak ke monitor oleh pernyataan writeln('Hasil konversi:
',suhu:3:2,' derajat Celcius = ',f:3:2,' derajat Farenheith');.

Konversi ke satuan Farenheith ditampilkan dengan menyertakan dua angka di belakang koma dan dimulai dari digit ke tiga ,f:3:2,. Untuk fungsi-fungsi berikutnya berprinsip yang sama dengan diatas. Rumus konversi yang digunakan menyesuikan dengan satuan suhu yang diketahui dan tujuan konversi satuan yang diinginkan.

PUTU RUSDI ARIAWAN

TIPE DATA DASAR & STATEMEN KONTROL b. Program utama konversi suhu

program Konversi_suhu; uses winCrt; var pilihan :string; jawab:char; bil,cd:integer; suhu:real; begin jawab:='y'; while (jawab='y') or (jawab='Y')do begin clrscr; writeln('Silahkan pilih salah satu pilihan di bawah ini'); writeln ('Jenis konversi'); writeln ('1. Celcius ke Farenheit'); writeln ('2. Celcius ke Kelvin'); writeln ('3. Celcius ke Reamur'); writeln ('4. Farenheit ke Celcius'); writeln ('5. Farenheit ke Kelvin'); writeln ('6. Farenheit ke Reamur'); writeln ('7. Kelvin ke Celcius'); writeln ('8. Kelvin ke Farenheit'); writeln ('9. Kelvin ke Reamur'); writeln ('10.Reamur ke Celcius'); writeln ('11.Reamur ke Farenheit'); writeln ('12.Reamur ke Kelvin'); write('Nomor pilihan: '); readln(pilihan); val(pilihan,bil,cd); if (cd<>0) then begin writeln('Tolong masukkan angka!!'); end else begin if ((bil >0) and (bil<13)) then begin if bil = 1 then c2f (suhu) else if bil = 2 then c2k(suhu) else if bil = 3 then c2r(suhu) Kode Program 4.16 Program Utama Konversi Suhu (a)

PUTU RUSDI ARIAWAN

TIPE DATA DASAR & STATEMEN KONTROL

else if bil = 4 then f2k(suhu) else if bil = 5 then f2c(suhu) else if bil = 6 then f2r(suhu) else if bil = 7 then k2c(suhu) else if bil = 8 then k2f(suhu) else if bil = 9 then k2r(suhu) else if bil = 10 then r2c(suhu) else if bil = 11then r2f(suhu) else r2k(suhu); end else begin writeln('Masukkan pilihan antara 1 - 12'); end; end; writeln; write('Coba lagi(Y/N): '); readln(jawab); end; end. Kode Program 4.14 Lanjutan Program Utama Konversi Suhu Kode Program 4.17 Program Utama Konversi Suhu (b)

Program utama akan menampilkan pilihan satuan konversi suhu. Seperti contoh writeln ('2. Celcius ke Kelvin');. Melalui write('Nomor
pilihan: ');readln(pilihan);user val(pilihan , bil, cd);

dapat menentukan pilihannya. Pernyataan

berfungsi untuk mengkonversi tipe data pilihan

yang dismpan dalam bentuk string menjadi bentuk real pada variabel bil dan cd berbentuk integer. Hal ini bertujuan untuk mengecek apakah input yang dimasukkan berupa angka melalui statement if diikuti ekspresi code <>0 apabila bernilai benar berarti yang dimasukkan berupa karakter dan bukan angka. Statement if digunakan dalam permasalahan untuk mengabil suatu keputusan terhadap dari masukan yang disimpan pada variabel bil. Dengan statemen ini bilangan yang dimasukkan sebagai pemilihan options akan memanggil fungsi sesuai dengan angka pilihan. Seperti jika pilihan 2 maka

PUTU RUSDI ARIAWAN

TIPE DATA DASAR & STATEMEN KONTROL 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. 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Mulai Pilihan konversi satuan suhu (bil) Jika bil=1: Celcius to Farenheith (num) Jika bil=2: Celcius to Kelvin (num) Jika bil=3: Celcius to Reamur (num) Jika bil=4: Farenheith to Kelvin (num) Jika bil=5: Farenheith to Celcius (num) Jika bil=6: Farenheith to Reamur (num) Jika bil=7: Kelvin to Celcius (num) Jika bil=8: Kelvin to Farenheith (num) Jika bil=9: Kelvin to Reamur (num) Jika bil=10: Reamur to Celcius (num) Jika bil=11: Reamur to Farenheith (num) Jika tidak : Reamur to Kelvin (num) Selesai

PUTU RUSDI ARIAWAN

TIPE DATA DASAR & STATEMEN KONTROL

Flowchart a. Flow chart fungsi c2f Start

Input „Masukkan suhu: ‟ (num)

f (9/5)*c + 32
Output „ Hasil konversi‟ (f)

Start
Gambar 4.13 Flow Chart Fungsi c2f Program Konversi Suhu

b.

Flow chart fungsi c2k Start

Input „Masukkan suhu: ‟ (c)

k c + 273.15
Output „ Hasil konversi‟ (k)

Start

Gambar 4.14 Flow Chart Fungsi c2k Program Konversi Suhu

PUTU RUSDI ARIAWAN

TIPE DATA DASAR & STATEMEN KONTROL c. Flow chart fungsi c2r

Start

Input „Masukkan suhu: ‟ (f)

r (4/5)*c
Output „ Hasil konversi‟ (r)

Start
Gambar 4.15 Flow Chart Fungsi c2r Program Konversi Suhu

d.

Flowchart fungsi f2k

Start

Input „Masukkan suhu: ‟ (f)

k (5/9*f)+255.38
Output „ Hasil konversi‟ (k)

Start
Gambar 4.16 Flow Chart Fungsi f2k Program Konversi Suhu

PUTU RUSDI ARIAWAN

TIPE DATA DASAR & STATEMEN KONTROL e. Flowchart fungsi f2c

Start

Input „Masukkan suhu: ‟ (f)

c 4/9*(f-32)
Output „ Hasil konversi‟ (c)

Start
Gambar 4.17Flow Chart Fungsi f2c Program Konversi Suhu

f.

Flow chart fungsi f2r

Start

Input „Masukkan suhu: ‟ (f)

r 4/9*(f-32)
Output „ Hasil konversi‟ (r)

Start
Gambar 4.18 Flow Chart Fungsi f2r Program Konversi Suhu

PUTU RUSDI ARIAWAN

TIPE DATA DASAR & STATEMEN KONTROL h Flow chart fungsi k2c

Start

Input „Masukkan suhu: ‟ (k)

c k - 273.15
Output „ Hasil konversi‟ (c)

Start
Gambar 4.19 Flow Chart Fungsi k2c Program Konversi Suhu

h.

Flow chart fungsi k2f

Start

Input „Masukkan suhu: ‟ (k)

f (9/5*k) – 459.67
Output „ Hasil konversi‟ (r)

Start
Gambar 4.20 Flow Chart Fungsi k2f Program Konversi Suhu

PUTU RUSDI ARIAWAN

TIPE DATA DASAR & STATEMEN KONTROL

i.

Flow chart fungsi k2r

Start

Input „Masukkan suhu: ‟ (k)

r (4/5*k) - 273.15
Output „ Hasil konversi‟ (c)

Start
Gambar 4.21 Flow Chart Fungsi k2r Program Konversi Suhu

j.

Flow chart fungsi r2c

Start

Input „Masukkan suhu: ‟ (r)

c 4/5*r
Output „ Hasil konversi‟ (r)

Start
Gambar 4.22 Flow Chart Fungsi r2c Program Konversi Suhu

PUTU RUSDI ARIAWAN

TIPE DATA DASAR & STATEMEN KONTROL k. Flow chart fungsi r2f

Start

Input „Masukkan suhu: ‟ (r)

f 4/9*r+32
Output „ Hasil konversi‟ (c)

Start

Gambar 4.23 Flow Chart Fungsi r2f Program Konversi Suhu

l.

Flow chart fungsi r2k

Start

Input „Masukkan suhu: ‟ (r)

k (5/4*r) – 273.15
Output „ Hasil konversi‟ (k)

Start
Gambar 4.24 Flow Chart Fungsi r2k Program Konversi Suhu

PUTU RUSDI ARIAWAN

TIPE DATA DASAR & STATEMEN KONTROL Flowchart utama program konversi suhu

Start Z
Input „Nomor pilihan konversi: ‟(bil) Yes bil=1 No c2f Sepuluh„ X Y

Gambar 4.25 Flow Chart t program utama Konversi Suhu (a)

PUTU RUSDI ARIAWAN

TIPE DATA DASAR & STATEMEN KONTROL

X

Y

Yes bil=2 No Yes bil=3 No Yes bil=4 No Yes bil=5 No Yes bil=6 No Yes bil=7 No Yes bil=8 k2f k2c f2r f2k f2c c2r c2k

Yes bil=9 No k2r

X

Y

Gambar 4.26 Flow Chart t program utama Konversi Suhu (b)

PUTU RUSDI ARIAWAN

TIPE DATA DASAR & STATEMEN KONTROL

X

Y

Yes bil=10 No Yes bil=11 No Yes bil=12 No No r2k r2f r2c

Z

coba lagi ? Yes

End.

Gambar 4.27 Flow Chart t program utama Konversi Suhu (c)

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; Kode Program 4.18 Program Konversi Suhu (a)

PUTU RUSDI ARIAWAN

TIPE DATA DASAR & STATEMEN KONTROL
begin x:=23; repeat gotoxy(20,x); Write('Masukkan 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,' 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 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); Kode Program 4.19 Program Konversi Suhu (b)

nilai

suhu

dalam

derajat

derajat

nilai

suhu

dalam

derajat

PUTU RUSDI ARIAWAN

TIPE DATA DASAR & STATEMEN KONTROL
writeln('Hasil konversi: Celcius = ',k:3:2,' derajat Kelvin'); end; 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 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,' 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 Farenheith: '); readln(str); val(str,suhu,code); if(code<>0) then begin gotoxy(20,(x+1)); Kode Program 4.20 Program Konversi Suhu (c) ',suhu:3:2,' derajat

nilai

suhu

dalam

derajat

derajat

nilai

suhu

dalam

derajat

PUTU RUSDI ARIAWAN

TIPE DATA DASAR & STATEMEN KONTROL

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,' 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 Farenheith: ');

derajat

nilai

suhu

dalam

derajat

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; Kode Program 4.21 Program Konversi Suhu (d)

PUTU RUSDI ARIAWAN

TIPE DATA DASAR & STATEMEN KONTROL
repeat gotoxy(20,x); Write('Masukkan 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,' 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 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,' Kelvin = ',c:3:2,' derajat Celcius'); end;

nilai

suhu

dalam

derajat

derajat

nilai

suhu

dalam

derajat

derajat

Kode Program 4.22 Program Konversi Suhu (e)

PUTU RUSDI ARIAWAN

TIPE DATA DASAR & STATEMEN KONTROL
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 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 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; Kode Program 4.23 Program Konversi Suhu (f)

nilai

suhu

dalam

derajat

nilai

suhu

dalam

derajat

PUTU RUSDI ARIAWAN

TIPE DATA DASAR & STATEMEN KONTROL
x:=x+2 until ket=true; r:=((4/5)*suhu)-273.15; gotoxy(20,25); writeln('Hasil konversi: 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 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,' 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 Reamur: '); readln(str); val(str,suhu,code); Kode Program 4.24 Program Konversi Suhu (g)

',suhu:3:2,'

derajat

nilai

suhu

dalam

derajat

derajat

nilai

suhu

dalam

derajat

PUTU RUSDI ARIAWAN

TIPE DATA DASAR & STATEMEN KONTROL
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,' 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 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,' Reamur = ', k:3:2,' derajat Kelvin'); end; begin jawab:='y'; while (jawab='y') or (jawab='Y')do begin clrscr; gotoxy(20,2); Kode Program 4.25 Program Konversi Suhu (h)

derajat

nilai

suhu

dalam

derajat

derajat

PUTU RUSDI ARIAWAN

TIPE DATA DASAR & STATEMEN KONTROL

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) Kode Program 4.26 Program Konversi Suhu (i)

PUTU RUSDI ARIAWAN

TIPE DATA DASAR & STATEMEN KONTROL
else if bil = 2 then c2k(suhu) else if bil = 3 then c2r(suhu) else if bil = 4 then f2k(suhu) else if bil = 5 then f2c(suhu) else if bil = 6 then f2r(suhu) else if bil = 7 then k2c(suhu) else if bil = 8 then k2f(suhu) else if bil = 9 then k2r(suhu) else if bil = 10 then r2c(suhu) else if bil = 11then r2f(suhu) else r2k(suhu); end else begin gotoxy(20,23); writeln('Masukkan pilihan antara 1 - 12'); end; end; writeln; gotoxy(20,25); write('Coba lagi(Y/N): '); readln(jawab); end; end. Kode Program 4.27 Program Konversi Suhu (j)

User Interface dan Uji Coba

4.4.1 Uji coba program konversi cek Pada saat kita run program itu, maka akan keluar gambar seperti gambar dibawah. Pada saat itu kita disuruh untuk memasukkan input.

PUTU RUSDI ARIAWAN

TIPE DATA DASAR & STATEMEN KONTROL

Gambar 4.28 Output Program Konversi Cek Sebelum Input

Setelah itu kita masukkan inputnya yang berupa angka yang nantinya akan dikonversi

Gambar 4.29 Output Program Konversi Cek Pada Pemberian Input

Setelah kita enter maka akan keluar hasil dari konversi cek tersebut dan perintah untuk mencoba lagi atau tidak. Seperrti pada gambar dibawah.

Gambar 4.30 Output Hasil Konversi Cek

Dari ilustrasi diatas program memerlukan masukan untuk diproses dan ini dilakukan dengan memasukkan input angka. User mamasukkan input „127500100‟. Program akan mengeksekusi input setelah user menekan „enter‟. Hasil yang diperoleh yaitu membilang cek uang angka dengan membilang dalam bentuk hurup „Seratus Dua Puluh Juta Lima Ratus Ribu Seratus Rupih‟. Apabila user mencoba lagi dapat dilakukan dengan menekan „y‟ pada keyboard.

PUTU RUSDI ARIAWAN

TIPE DATA DASAR & STATEMEN KONTROL

Gambar 4.31 Output Program Konversi Cek Input Salah

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!”. Hal ini dapat diatasi dengan memasukkan kembali input yang kurang dari satu milyar dan bukan desimal karena variabel inputnya bertipe longint yaitu tipe data yang tidak menggandung angka dibelakang koma. 4.4.2 Uji coba program konversi suhu Pada saat kita run program itu, maka akan keluar gambar seperti gambar dibawah. Pada saat itu kita disuruh untuk memasukkan pilihan. Pilihan itu dapat dipilih sesuai dengan pilihan yang ada.

Gambar 4.32 Output Program Konversi Suhu Sebelum Input

PUTU RUSDI ARIAWAN

TIPE DATA DASAR & STATEMEN KONTROL Masukkan pilihan, pilihan adalah 12 . Tekan enter lalu masukkan nilai dari suhu yang di ubah, karena pilihannya 12 maka nilai tersebut berupa derajat reamur yang nantinya akan diubah kedalam derajat kelvin, seperti terlihat pada gambar dibawah.

Gambar 4.33Output Program Konversi Suhu Pada Pemberian Input

Tekan enter dan hasilnya akan keluar dan perintahuntuk mencoba lagi atau tidak, seperti terlihat pada gambar dibawah

PUTU RUSDI ARIAWAN

TIPE DATA DASAR & STATEMEN KONTROL

Gambar 4.34 Output Program Konversi Suhu

Program memerlukan masukan untuk diproses dan ini dilakukan dengan memasukkan input pilihan konversi dan nilai satuan suhu yang akn dikonversi. User mamasukkan input „12‟. Program akan mengeksekusi input setelah user menekan „enter‟. Pilihan user menginginkan konversi saturn suhu Reamur menjadi Kelvin. Dengan memasukkan nilai suhu eamur sebesar „23‟ maka setelah menekan „enter‟ maka dapat diperoleh hasil konversi yang dimaksud yaitu “Hasil konversi: 23 derajat Reamur = - 244,40 derajat Kelvin”. Apabila user mencoba lagi dapat dilakukan dengan menekan „y‟ pada keyboard.

PUTU RUSDI ARIAWAN

TIPE DATA DASAR & STATEMEN KONTROL

Gambar 4.35 Output Program Konversi Cek Input Salah

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”. Hal ini dapat diatasi dengan memasukkan kembali input melalui “Masukkan nilai suhu dalam derajat Reamur”.

PUTU RUSDI ARIAWAN

TIPE DATA DASAR & STATEMEN KONTROL

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 case…of 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”.

PUTU RUSDI ARIAWAN

TIPE DATA DASAR & STATEMEN KONTROL

BIODATA PENULIS

Nama TTL Agama

: Putu Rusdi Ariawan : Denpasar. 19 April 1990 : Hindu

Mahasiswa Teknik Elektro Unv. Udayana Email : turusdi.info@gmail.com www.facebook.com/turusdi

PUTU RUSDI ARIAWAN

Sign up to vote on this title
UsefulNot useful

Master Your Semester with Scribd & The New York Times

Special offer: Get 4 months of Scribd and The New York Times for just $1.87 per week!

Master Your Semester with a Special Offer from Scribd & The New York Times