12
Pascal Code 1: program persewaan_perahu; uses crt; var nama, ket3 : string; jam, harga : real; begin clrscr; harga := 2000; ket3 := 'Data Salah'; write ('Nama Penyewa : '); readln (nama); write ('Jumlah Jam : '); readln (jam); if (jam <= 1) then begin harga := harga; writeln ('Harga : Rp ',harga:2:2); end else if (jam = 2) then begin harga := harga*2; writeln ('Harga : Rp ',harga:2:2); end else if (jam = 3) then begin harga := harga*3+500; writeln ('Harga : Rp ',harga:2:2); end else if (jam = 4)then begin harga := harga*4+700; writeln('Harga : Rp ',harga:2:2); end else if (jam = 4)then Hal. 1

Quiz API.docx

Embed Size (px)

Citation preview

Page 1: Quiz API.docx

Pascal Code 1:

program persewaan_perahu; uses crt;

var nama, ket3 : string; jam, harga : real;

begin clrscr;

harga := 2000;ket3 := 'Data Salah';write ('Nama Penyewa : ');readln (nama);write ('Jumlah Jam : ');readln (jam);if (jam <= 1) thenbeginharga := harga;writeln ('Harga : Rp ',harga:2:2);end

elseif (jam = 2) thenbeginharga := harga*2;writeln ('Harga : Rp ',harga:2:2);end

elseif (jam = 3) thenbegin harga := harga*3+500; writeln ('Harga : Rp ',harga:2:2); end

else if (jam = 4)then begin harga := harga*4+700; writeln('Harga : Rp ',harga:2:2); end

else if (jam = 4)then begin harga := harga*4+700; writeln('Harga : Rp ',harga:2:2); end

else begin writeln('TIDAK BOLEH LEBIH DARI 3 JAM'); end;

Hal. 1

Page 2: Quiz API.docx

readln; end.

Pascal Code 2 :

program persewaan_perahu; uses crt;

var nama : string; jam, harga : real;

begin clrscr;

harga := 2000;write ('Nama Penyewa : ');readln (nama);write ('Jumlah Jam : ');readln (jam);if (jam <= 0) then beginwriteln (‘Data Salah’)end

if (jam <= 1) or (jam < 2) thenbeginharga := harga;writeln ('Harga : Rp ',harga:2:2);end

elseif (jam = 2) or (jam < 3) thenbeginharga := harga*2;writeln ('Harga : Rp ',harga:2:2);end

elseif (jam = 3) or (jam < 4) thenbegin harga := harga*3+500; writeln ('Harga : Rp ',harga:2:2); end

else if (jam = 4)then begin harga := harga*4+700; writeln('Harga : Rp ',harga:2:2); end

else

Hal. 2

Page 3: Quiz API.docx

begin writeln('TIDAK BOLEH LEBIH DARI 4 JAM'); end;

readln; end.

Dalam “Pascal Code 1” sebenarnya memiliki kekurangan dan kesalahan dalam penulisan kode programnya yang membutuhkan perbaikan :

Perbaikan yang pertama terletak pada bagian berikut (Teks Berwarna Biru) :

var nama, ket3 : string; jam, harga : real;

dan pada bagian

ket3 := 'Data Salah';

Pada dasarnya bagian kode-kode diatas (Teks Berwarna Biru) tidaklah salah, karena bila dijalankan kode tersebut dapat terproses. Namun sebenarnya dapat ditulis dalam kode yang lebih ringkas dan efisien. Seperti yang terdapat pada “Pascal Code 2”

var nama : string; jam, harga : real;

dan pada bagian

if (jam <= 0) then beginwriteln (‘Data Salah’)end

Kode yang terdapat pada “Pascal Code 1” (Teks Berwarna Biru) telah diubah penulisannya menjadi lebih ringkas pada “Pascal Code 2” yang telah langsung disisipkan dalam baris kode dan ditampilkan sebagai teks.

Kekurangan yang lain ada pada baris kode berikut :

if (jam <= 1) thenbeginharga := harga;writeln ('Harga : Rp ',harga:2:2);end

Hal. 3

Page 4: Quiz API.docx

Dari segi penulisan bahasa pemograman, baris kode diatas tidak bisa dikatakan salah karena bila dijalankan kode diatas dapat berfungsi dengan baik. Namun dalam menjalankannya terdapat kekurangan, yakni bila kita menginput data Negatif atau Nol kode diatas tetap memprosesnya. Sebagai contoh kita coba menginput data “Jumlah Jam : -10”, maka program tetap memprosesnya dan menghitungnya (Gambar 01).

Gambar 01

Sebagai solusinya, maka dapat ditambahkan sebuah baris kode yang dapat mendefinisikan nilai data Negatif atau Nol. Seperti yang ada pada “Pascal Code 2”

if (jam <= 0) then beginwriteln (‘Data Salah’)end

Bila baris kode diatas dijalankan, maka setiap data yang diinput bernilai Negatif atau Nol akan diterjemahkan atau didefinisikan oleh program sebagai data yang salah (Gambar 02).

Gambar 02

Perbaikan berikutnya terdapat pada bagian berikut :

if (jam = 4)then begin harga := harga*4+700; writeln('Harga : Rp ',harga:2:2); end

else

Dari segi penulisan kode program, baris kode diatas tidaklah salah karena bila dijalankan, program tetap terproses dengan sempurna. Namun bila dilihat secara utuh struktur kode programnya baris tersebut merupakan baris kode yang terinput secara double. Karena pada bagian lain dari program baris kode tersebut sudah ada, yakni pada bagian :

Hal. 4

Page 5: Quiz API.docx

if (jam = 4)then begin harga := harga*4+700; writeln('Harga : Rp ',harga:2:2); end

else

Jadi untuk efisiensinya, kode baris tersebut sebaiknya dihapus.

Perbaikan berikutnya terdapat pada bagian berikut (Teks Berwarna Hijau) :

begin writeln('TIDAK BOLEH LEBIH DARI 3 JAM'); end;

Pada dasarnya baris kode diatas tidaklah salah, karena bila dijalankan program dapat berfungsi dengan sempurna. Namun kesalahannya terdapat pada definisi keterangannya (Teks Berwarna Hijau). Bila kita perhatikan dan diterjemahkan dalam logika keterangan tersebut adalah salah, dikatakan salah karena dalam bagian baris kode tersebut menerangkan “TIDAK BOLEH LEBIH DARI 3 JAM” sementara dalam baris kode lain dalam program terdapat proses yang bisa mendefinisikan kondisi 4 jam :

if (jam = 4)then begin harga := harga*4+700; writeln('Harga : Rp ',harga:2:2); end

else

Dalam kasus ini, seharusnya definisi keterangannya diubah menjadi seperti pada baris kode “Pascal Code 2” :

begin writeln('TIDAK BOLEH LEBIH DARI 4 JAM'); end;

Agar secara logika, program dapat mendefinisikannya secara benar.

Perbaikan berikutnya terdapat pada bagian berikut :

if (jam <= 1) then

Pada dasarnya baris kode tersebut tidaklah salah, karena bila dijalankan program masih dapat memproses dengan baik. Namun kekurangannya ialah program tidak dapat memproses data yang bernilai diantara 1 dan 2, misalnya nilai 1.2, maka bila kita menginput data tersebut, program tidak dapat mengetahui definisi yang benar untuk nilai tersebut (Gambar 03).

Hal. 5

Page 6: Quiz API.docx

Gambar 03

Maka seharusnya baris kode yang benar adalah sebagai berikut (Pascal Code 2) :

if (jam <= 1) or (jam < 2) then

Kode tambahan (Teks Berwarna Biru) merupakan baris kode untuk mendefiniskan agar program dapat juga membaca data yang bernilai dibawah 2, misalnya nilai 1.2, maka bila baris kode tersebut ditambahkan program sudah dapat memprosesnya (Gambar 04).

Gambar 04

Perbaikan berikutnya terdapat pada bagian berikut :

if (jam = 2) then

Pada dasarnya baris kode tersebut tidaklah salah, karena bila dijalankan program masih dapat memproses dengan baik. Namun kekurangannya ialah program tidak dapat memproses data yang bernilai diantara 2 dan 3, misalnya nilai 2.3, maka bila kita menginput data tersebut, program tidak dapat mengetahui definisi yang benar untuk nilai tersebut (Gambar 05).

Gambar 05

Maka seharusnya baris kode yang benar adalah sebagai berikut (Pascal Code 2) :

if (jam <= 2) or (jam < 3) then

Hal. 6

Page 7: Quiz API.docx

Kode tambahan (Teks Berwarna Biru) merupakan baris kode untuk mendefiniskan agar program dapat juga membaca data yang bernilai dibawah 3, misalnya nilai 2.3, maka bila baris kode tersebut ditambahkan program sudah dapat memprosesnya (Gambar 06).

Gambar 06

Perbaikan berikutnya terdapat pada bagian berikut :

if (jam = 3) then

Pada dasarnya baris kode tersebut tidaklah salah, karena bila dijalankan program masih dapat memproses dengan baik. Namun kekurangannya ialah program tidak dapat memproses data yang bernilai diantara 3 dan 4, misalnya nilai 3.4, maka bila kita menginput data tersebut, program tidak dapat mengetahui definisi yang benar untuk nilai tersebut (Gambar 07).

Gambar 07

Maka seharusnya baris kode yang benar adalah sebagai berikut (Pascal Code 2) :

if (jam <= 3) or (jam < 4) then

Kode tambahan (Teks Berwarna Biru) merupakan baris kode untuk mendefiniskan agar program dapat juga membaca data yang bernilai dibawah 4, misalnya nilai 3.4, maka bila baris kode tersebut ditambahkan program sudah dapat memprosesnya (Gambar 08).

Gambar 08

Hal. 7

Page 8: Quiz API.docx

Setelah melakukan perbaikan dalam penulisan dan penempatan kode pemograman yang terdapat pada “Pascal Code 1” maka telah menghasilkan kode pemograman yang menurut saya sudah dapat berjalan dengan logika yang sempurna, seperti yang terdapat pada “Pascal Code 2”.

Berikut adalah screenshoot dari Pascal Code 2 yang telah terinput dalam Program Turbo Pascal :

Hal. 8

Page 9: Quiz API.docx

Hal. 9

Page 10: Quiz API.docx

FLOWCHART

Hal. 10