Algoritma_Pemrograman Terstruktur

20
 Alur Program  Input      Proses      Output Yang paling komplek ALGORITMA DAN PEMROGRAMAN TERSTURKTUR Oleh : Aslam Fatkhudin, S.Kom 3 krtiteria program yang baik : 1. Correct  benar. 2. Clear  jelas. 3.  Efficient  efisien. Agar program memenuhi 3 kriteria di atas), maka kita harus mengetahui Langkah-langkah Pemrograman: 1. Mendefiniskan masalah. 2. Garis besar (outline) pemecahan. 3. Menerjemahkan garis besar tersebut menjadi langkah-langkah yang lebih rinci / algoritma. 4. Menerjemahkan algoritma ke dalam bahasa pemrograman (pengkodean/ coding).  Kode / program = statement-statement yang dituliskan dalam bahasa pemrograman. 5. Pengujian (  debugging)  untuk menemukan bug  /kesalah an, kemu dian meng hilangkan nya. Algoritma : urutan langkah-langkah yang dinyatakan dengan jelas dan tidak rancu untuk memecahkan suatu masalah dalam rentang waktu tertentu. Contohnya : langkah-langkah menelpon. Karakteristik / Syarat Algoritma : 1. Algoritma harus tidak  ambigu (unambiguous)  deskripsi langkah-langkah dalam algoritma harus dan hanya mempunyai tafsiran tunggal. 2. Algoritma langkah-langkahnya harus tepat (  pricise). 3. Algoritma harus pasti (  definite)  jika serangkaian langkah-langkah yang sama dilakukan 2 kali maka hasilnya harus sama. 4. Algoritma harus berhingga (  finite)  selesai dalam rentang waktu tertentu. Cara Penulisan Algoritma : 1. Uraian deskriptif  (bahasa alamiah). 2. Pseudocode . 3. Flowchart  (bagan alir) = bagan yang menggambarkan urutan instruksi untuk proses dengan komputer dan hubungan antara suatu proses dengan proses lainnya dengan menggunakan simbol. SIMBOL-SIMBOL FLOWCHART A. FLOW DIRECTION SYMBOLS SIMBOL KEGUNAAN Simbol Arus (Flow) Untuk menghubungkan antara simbol yang satu dengan simbol yang lainnya. Simbol Communicati on Link  Simbol transmisi untuk informasi dari satu lokasi ke lokasi lainnya.

Transcript of Algoritma_Pemrograman Terstruktur

Page 1: Algoritma_Pemrograman Terstruktur

5/10/2018 Algoritma_Pemrograman Terstruktur - slidepdf.com

http://slidepdf.com/reader/full/algoritmapemrograman-terstruktur 1/19

 

Alur Program

 Input    Proses    OutputYang paling komplek 

ALGORITMA DAN PEMROGRAMAN TERSTURKTUROleh : Aslam Fatkhudin, S.Kom

3 krtiteria program yang baik :

1.  Correct  benar.2.  Clear  jelas.

3.   Efficient  efisien.

Agar program memenuhi 3 kriteria di atas), maka kita harus mengetahui Langkah-langkah

Pemrograman:

1.  Mendefiniskan masalah.

2.  Garis besar (outline) pemecahan.3.  Menerjemahkan garis besar tersebut menjadi langkah-langkah yang lebih rinci / algoritma.

4.  Menerjemahkan algoritma ke dalam bahasa pemrograman (pengkodean/ coding). Kode / program = statement-statement yang dituliskan dalam bahasa pemrograman.

5.  Pengujian ( debugging) untuk menemukan bug /kesalahan, kemudian menghilangkannya.

Algoritma : urutan langkah-langkah yang dinyatakan dengan jelas dan tidak rancu untuk 

memecahkan suatu masalah dalam rentang waktu tertentu.

Contohnya : langkah-langkah menelpon.

Karakteristik / Syarat Algoritma :

1.  Algoritma harus tidak   ambigu (unambiguous) deskripsi langkah-langkah dalamalgoritma harus dan hanya mempunyai tafsiran tunggal.

2.  Algoritma langkah-langkahnya harus tepat ( pricise).

3.  Algoritma harus pasti ( definite) jika serangkaian langkah-langkah yang sama dilakukan 2

kali maka hasilnya harus sama.4.  Algoritma harus berhingga ( finite) selesai dalam rentang waktu tertentu.

Cara Penulisan Algoritma :1.  Uraian deskriptif (bahasa alamiah).

2.  Pseudocode.

3.  Flowchart (bagan alir) = bagan yang menggambarkan urutan instruksi untuk proses dengan

komputer dan hubungan antara suatu proses dengan proses lainnyadengan menggunakan simbol.

SIMBOL-SIMBOL FLOWCHART 

A. FLOW DIRECTION SYMBOLS

SIMBOL KEGUNAAN

Simbol Arus (Flow)

Untuk menghubungkan antara simbol yangsatu dengan simbol yang lainnya.

Simbol Communication Link  

Simbol transmisi untuk informasi dari satulokasi ke lokasi lainnya.

Page 2: Algoritma_Pemrograman Terstruktur

5/10/2018 Algoritma_Pemrograman Terstruktur - slidepdf.com

http://slidepdf.com/reader/full/algoritmapemrograman-terstruktur 2/19

 

 

Simbol Connector  

Simbol untuk keluar/masuk prosedur atau

proses dalam lembar/halaman yang sama.

Simbol Off-Line Connector  

Simbol untuk keluar/masuk prosedur atauproses dalam lembar/halaman yang lain.

B. PROCESSING SYMBOLS

SIMBOL KEGUNAAN

Simbol Process 

Simbol yang menunjukkan pengolahan yang

dilakukan oleh komputer.

Simbol Manual Operation 

Simbol yang menunjukkkan pengolahan yang

tidak dilakukan oleh komputer.

Simbol Decision

Simbol untuk kondisi yang akan menghasilkanbeberapa kemungkinan jawaban/aksi.

Simbol Predefined Process 

Simbol untuk mempersiapkan penyimpananyang akan digunakan sebagai tempat

pengolahan di dalam storage.

Simbol Terminal 

Simbol untuk permulaan atau akhir dari suatu

program.

Simbol Keying Operation 

Simbol operasi dengan menggunakan mesin

yang mempunyai keyboard.

Simbol Off-Line Storage 

Simbol untuk menunjukkan bahwa data di

dalam simbol ini akan disimpan.

Simbol Manual Input  

Simbol untuk pemsukkan data secara manual

on-line keyboard.

Page 3: Algoritma_Pemrograman Terstruktur

5/10/2018 Algoritma_Pemrograman Terstruktur - slidepdf.com

http://slidepdf.com/reader/full/algoritmapemrograman-terstruktur 3/19

 

 

C. INPUT-OUTPUT SYMBOLS

SIMBOL KEGUNAAN

Simbol Input-Output  

Simbol yang menyatakan proses input dan

output tanpa tergantung dengan jenis

peralatannya.

Simbol Punched Card  

Simbol yang menyatakan input berasal dari

kartu atau output ditulis ke kartu.

Simbol Magnetic Tape Unit  

Simbol yang menyatakan input berasal dari

pita magnetik atau output disimpan ke pita

magnetik.

Simbol Disk and On-Line Storage 

Simbol untuk menyatakan input berasal daridisk atau output disimpan ke disk.

Simbol Document  

Simbol-simbol yang menyatakan input berasal

dari dokumen dalam bentuk kertas atau output

dicetak ke kertas.

Simbol Transmittal Tape 

Simbol untuk menyatakan input berasal darimesin jumlah/hitung.

Simbol Display

Simbol yang menyatakan peralatan output

yang digunakan yaitu layar, plotter, printer dan

sebagainya.

PASCAL

Dalam mempelajari algoritma, dipakai bahasa pemrograman Pascal untuk membantu

pemahaman.

Bahasa Pascal dikembangkan pada awal tahun 1970-an oleh ilmuwan komputer Eropa, NiklausWirth (dibaca : Veert ). Nama Pascal diambil dari nama ahli matematika Blaise Pascal yang

menemukan mesin hitung mekanik pertama.

Bahasa pemrograman pada tahun 1960-an sangat rumit, kemudian Wirth ingin menciptakanbahasa yang sederhana.

Page 4: Algoritma_Pemrograman Terstruktur

5/10/2018 Algoritma_Pemrograman Terstruktur - slidepdf.com

http://slidepdf.com/reader/full/algoritmapemrograman-terstruktur 4/19

 

1

PROSES BERURUTAN 

TUJUAN

•  Cara membuat judul program.•  Menggunakan unit layer dengan uses crt.

•  Mendeklarasikan tipe data byte dan real .

•  Cara kerja instruksi write dan readln.

•  Mengerti proses berurutan.

PROSES PROGRAM YANG DIKEHENDAKI

Masukan :

•  Lama Menginap (nama variabelnya LM).

•  Harga Kamar/hari (nama variabelnya HK).Rumus :

Jumlah Bayar (nama variabelnya JML) dihitung dari LM dikali dengan HK.Keluaran :

JML

FLOWCHART PROGRAM PRAKTEK1;(* PROSES BERURUTAN*)

USES CRT;VAR

LM : BYTE;

HK, JML : REAL;

BEGIN

CLRSCR;

WRITE (‘LAMA MENGINAP : ‘);READLN (LM);

WRITE (‘HARGA KAMAR/HARI : Rp. ‘);

READLN (HK);JML := LM * HK;

WRITELN (‘JUMLAH BAYAR : Rp. ‘,JML:8:0);

READLN;END.

TUGAS 1

PROSES PROGRAM YANG DIKEHENDAKI

Masukan :

•  Banyak Barang yang dibeli (nama variabelnya BB).

•  Harga Satuan barang (nama variabelnya HS).Rumus :

Jumlah Bayar (nama variabelnya JB) dihitung dari BB dikali dengan HS.

Keluaran :

JB

TAMPILAN DI SCREEN

BANYAK BARANG =

HARGA SATUAN =JUMLAH BAYAR =

Catatan : Data Banyak Barang, Harga Satuan diinput, sedangkan Jumlah Bayar otomatis.

BEGIN

INPUT

LM,HK

JML=LM*HK

PRINT

JML

END

Page 5: Algoritma_Pemrograman Terstruktur

5/10/2018 Algoritma_Pemrograman Terstruktur - slidepdf.com

http://slidepdf.com/reader/full/algoritmapemrograman-terstruktur 5/19

 

2

PROSES PENCABANGAN IF_THEN_ELSE

(SATU PERNYATAAN)

TUJUAN•  Mengerti proses pencabangan satu pernyataan.

•  Mengerti penggunaan IF_THEN_ELSE

PROSES PROGRAM YANG DIKEHENDAKI

Masukan :

•  Lama Menginap (nama variabelnya LM).

•  Harga Kamar/hari (nama variabelnya HK).

Rumus :

Jumlah Bayar (nama variabelnya JML) dihitung dari LM dikali dengan HK. Jika JumlahBayar lebih besar sama dengan 100000, maka mendapat potongan 10%, jika kurang dari

100000 maka tidak mendapat potongan. Total Bayar Akhir (nama variabelnya

BYRAKH) dihitung dari JML dikurangi Potongan.

Keluaran :

BYRAKH

FLOWCHART

N

Y

BEGIN

INPUT

LM,HK

JML=LM*HK

PRINT

JML,

BYRAKH

END

IF

JML>=100000

BYRAKH := JML-(JML*0.1)

BYRAKH := JML

Page 6: Algoritma_Pemrograman Terstruktur

5/10/2018 Algoritma_Pemrograman Terstruktur - slidepdf.com

http://slidepdf.com/reader/full/algoritmapemrograman-terstruktur 6/19

 

 

PROGRAM PRAKTEK2;

(* PENCABANGAN IF_THEN_ELSE_SATU_PERNYATAAN*)

USES CRT;VARLM : BYTE;

HK, JML,BYRAKH : REAL;

BEGIN

CLRSCR;

WRITE (‘LAMA MENGINAP = ‘);

READLN (LM);WRITE (‘HARGA KAMAR/HARI = Rp. ‘);

READLN (HK);

JML := LM * HK;IF JML >= 100000 THEN

BYRAKH := JML – (JML * 0.1)

ELSEBYRAKH := JML;

WRITELN (‘JUMLAH BAYAR : Rp. ‘,JML:8:0);

WRITELN;

WRITELN (‘TOTAL BAYAR AKHIR = Rp. ‘,BYRAKH:12:0);READLN;

END.

TUGAS 2

PROSES PROGRAM YANG DIKEHENDAKI

Masukan :

•  Nama Siswa (nama variabelnya NS).

•  Nilai Pascal (nama variabelnya NP).

Rumus :

Keterangan Nilai (nama varaibelnya KN) ditentukan dari Nilai ujian Pascal, jika NP lebih

besar sama dengan 56, maka variabel KN berisi ‘LULUS’, jika NP kurang dari 56, makavariabel KN berisi ‘GAGAL.

Keluaran :

KN

TAMPILAN DI SCREEN

NAMA SISWA =

NILAI PASCAL =

KETERANGAN NILAI =

Catatan : Nama Siswa dan Nilai Pascal diinput, sedangkan Keterangan Nilai otomatis.

Page 7: Algoritma_Pemrograman Terstruktur

5/10/2018 Algoritma_Pemrograman Terstruktur - slidepdf.com

http://slidepdf.com/reader/full/algoritmapemrograman-terstruktur 7/19

 

3

PROSES PENCABANGAN IF_THEN_ELSE

(BLOK PERNYATAAN)

TUJUAN•  Mengerti cara mendeklarasikan jenis data string.

•  Mengerti cara kerja IF_THEN_ELSE blok pernyataan.

PROSES PROGRAM YANG DIKEHENDAKI

Masukan :

•  Lama Menginap (nama variabelnya LM).

•  Harga Kamar/hari (nama variabelnya HK).

Rumus :

Jumlah Bayar (nama variabelnya JML) dihitung dari LM dikali dengan HK. Jika JumlahBayar lebih besar sama dengan 200000, maka mendapat Discount 20% dan Keterangan

(nama variabelnya KET) ‘DPT DISC’, jika kurang dari 200000 maka tidak mendapat

Discount dan Keterangan ‘TAK DISC’. Total Bayar Akhir (nama variabelnya BYRAKH)

dihitung dari JML dikurangi Discount.

Keluaran :

BYRAKH

FLOWCHART

N

Y

BEGIN

INPUT

LM,HK

JML=LM*HK

PRINT

JML, KET

BYRAKH

END

IF

JML>=200000

BYRAKH := JML-(JML*0.2)

KET := ‘DPT DISC’

BYRAKH := JMLKET := ‘TAK DISC’

Page 8: Algoritma_Pemrograman Terstruktur

5/10/2018 Algoritma_Pemrograman Terstruktur - slidepdf.com

http://slidepdf.com/reader/full/algoritmapemrograman-terstruktur 8/19

 

  PROGRAM PRAKTEK3;

(* PENCABANGAN IF_THEN_ELSE_BLOK_PERNYATAAN*)

USES CRT;

VAR LM : BYTE;KET : STRING [8];

HK, JML,BYRAKH : REAL;

BEGIN

CLRSCR;

WRITE (‘LAMA MENGINAP = ‘);

READLN (LM);WRITE (‘HARGA KAMAR/HARI = Rp. ‘);

READLN (HK);

JML := LM * HK;IF JML >= 200000 THEN

BEGIN

BYRAKH := JML – (JML * 0.2);KET := ‘DPT DISC’;

END

ELSE

BEGINBYRAKH := JML;

KET := ‘TAK DISC’;

END;

WRITELN (‘JUMLAH BAYAR = Rp. ‘,JML:8:0);WRITELN (‘KETERANGAN = ‘,KET);

WRITELN;

WRITELN (‘TOTAL BAYAR AKHIR = Rp. ‘,BYRAKH:12:0);READLN;

END.

TUGAS 3

PROSES PROGRAM YANG DIKEHENDAKIMasukan :

•  Nama Karyawan (nama variabelnya NK).

• Gaji Pokok (nama variabelnya GP).

•  Jumlah Jam Kerja (nama variabelnya JJK).

Rumus :

Gaji Kotor (nama variabelnya GK) dihitung dari GP dikali JJK. Jika GK lebih besar sama dengan 500000

dikenakan pajak (nama variabelnya TAX) 5% dan pada variabel Keterangan (nama varaibelnya KET) diisi

‘PAJAK’, sebaliknya jika GK dibawah 500000, tidak dikenakan pajak dan variabel Keterangan diisi ‘TAK

PAJAK’, Gaji Bersih yang diterima (nama variabelnya GB) dihitung dari GK dikurangi TAX.

Keluaran :

GB

TAMPILAN DI SCREEN

NAMA KARYAWAN =

GAJI POKOK =

JUMLAH JAM KERJA =

GAJI KOTOR =

PAJAK =

GAJI BERSIH =

KETERANGAN =

Catatan : NK, GP dan JJK diinput, sedangkan GK, TAX, GB dan KET otomatis. 

Page 9: Algoritma_Pemrograman Terstruktur

5/10/2018 Algoritma_Pemrograman Terstruktur - slidepdf.com

http://slidepdf.com/reader/full/algoritmapemrograman-terstruktur 9/19

 

Soal 1: Kelulusan mahasiswa ditentukan berdasar nilai ujian yang didapatkan. Jika nilai ujian

lebih dari atau sama dengan 70, mahasiswa dinyatakan lulus dan jika tidak, dinyataan tidak lulus.

Buatlah program yang membaca nilai ujian dan menentukan status kelulusan denganmenampilkan pesan yang sesuai di layar.

Analisis : berdasar soal diatas terdapat dua kondisi yang mungkin terjadi, yaitu nilai lebih dariatau sama dengan 70. Karena kedua kondisi ini saling melengkapi, maka bagian else dalam

statement if digunakan. Langkah-langkah pemecahan masalahnya menjadi :

1.  Membaca nilai ujian2.  Memeriksa nilai ujian dan menampilkan pesan.

Solusi :

Program kelulusan;{menampilkan status kelulusan berdasar nilai yang dibaca}

Var Nilai : integer;

Begin

{membaca nilai ujian}

Write (‘Nilai ujian :’);

Readln (nilai);

{memeriksa nilai dan menampilkan pesan}

If nilai >= 70 then Writeln (‘Lulus’)

Else

Writeln (‘Tidak Lulus’);

End.

Tampilan di screen :

Nilai ujian : 65Tidak lulus

Buatlah Flowchart untuk soal di atas

Soal 2: Sebuah perusahaan ingin menambah kesejahteraan karyawannya dengan memberlakukan

upah yang berbeda jika terdapat karyawan yang kerja lembur. Jam kerja karyawan selama satuminggu diluar jam lembur adalah 40 jam. Jika seorang karyawan bekerja lebih dari 40 jam

seminggu, maka sisanya dihitung sebagai lembur. Upah lembur perjam adalah dua kali upah per

  jam biasa. Buatlah program yang membaca jumlah jam kerja dalam satu minggu dan upah per jam yang berlaku, menghitung upah per minggu yang diterima, serta menampilkannya di layar.

Analisis : berdasar soal diatas dapat ditarik sebuah simpulan, bahwa terdapat karyawan yang

bekerja kurang dari atau sama dengan 40 jam seminggu dan karyawan yang bekerja lebih dari 40 jam seminggu. Masalah ini dapat dipecahkan dengan dua cara :

1.  Menggunakan statement if tanpa bagian else, dan

2.  Statement if dengan bagian else.Secara umum, langkah-langkah pemecahan masalahnya adalah :

1.  Membaca jam kerja.

2.  Membaca upah per jam.3.  Menghitung upah.

4.  Menampilkan upah.

Solusi 1:

Program hitung_upah;

{menghitung upah per minggu berdasar jam kerja dan upah per jam }

uses wincrt;

Page 10: Algoritma_Pemrograman Terstruktur

5/10/2018 Algoritma_Pemrograman Terstruktur - slidepdf.com

http://slidepdf.com/reader/full/algoritmapemrograman-terstruktur 10/19

 

Var

Jamkerja : integer;

upahperjam, upah : real;

Begin

clrscr;{membaca jam kerja}

Write ('Jam kerja :');

Readln (jamkerja);

{membaca upah per jam}

Write ('Upah per jam :');

Readln (upahperjam);

{menghitung upah}

Upah := 40 * upahperjam;

If jamkerja > 40 thenUpah := upah + ((jamkerja - 40) * (2 * upahperjam));

{menampilkan upah}

Write ('Upah yang diterima sebesar Rp. ' , upah:12:0);

End.

Tampilan di screen :Jam kerja : 35

Upah per jam : 1000

Upah yang diterima sebesar Rp. 35000

Solusi 2:

Program hitung_upah;{menghitung upah per minggu berdasar jam kerja dan upah per jam }  uses wincrt ;

Var

Jamkerja : integer;upahperjam, upah : real;

Begin

clrscr;{membaca jam kerja}

Write ('Jam kerja :');

Readln (jamkerja);{membaca upah per jam}

Write ('Upah per jam :');

Readln (upahperjam);

{menghitung upah}If jamkerja <= 40 then

Upah := jamkerja * upahperjam

Else {jamkerja > 40}Upah := (40 * upahperjam) + ((jamkerja - 40) * (2 * upahperjam));

{menampilkan upah}

Write ('Upah yang diterima sebesar Rp. ' , upah:12:0);End.

Tampilan di screen :

Jam kerja : 50Upah per jam : 1000

Upah yang diterima sebesar Rp. 60000

Buatlah Flowchart untuk soal di atas

Page 11: Algoritma_Pemrograman Terstruktur

5/10/2018 Algoritma_Pemrograman Terstruktur - slidepdf.com

http://slidepdf.com/reader/full/algoritmapemrograman-terstruktur 11/19

 

 

4

BEBERAPA IF

TUJUAN

•  Mengerti menyusun beberapa IF secara terstruktur.

•  Mengerti format tampiilan jenis data real .

PROSES PROGRAM YANG DIKEHENDAKI

Masukan :

•  Lama Menginap (nama variabelnya LM).

•  Harga Kamar/hari (nama variabelnya HK).

Rumus :Jumlah Bayar (nama variabelnya JML) dihitung dari LM dikali dengan HK. Ketentuan

discount dapat dilihat pada tabel di bawah ini.

JUMLAH BAYAR DISCOUNT

JML > 300000

200000 < JML <= 300000

100000 < JML <= 200000100000 <= JML

30%

20%

10%0

Untuk discount 10%, 20% dan 30% disertai keterangan (nama variabelnya KET)“DAPAT DISC”, jika discount 0 keterangan “TAK DISC”. Total Bayar Akhir (nama

variabelnya BYRAKH) dihituung dari JML – discount.

Keluaran :

BYRAKH

FLOWCHART

N

Y

BEGIN

INPUT

LM,HK

JML=LM*HK

IF

JML >

300000

BYRAKH := JML-(JML*0.3)

Y

BYRAKH := JML-(JML*0.2)IF

JML >200000

A B

Page 12: Algoritma_Pemrograman Terstruktur

5/10/2018 Algoritma_Pemrograman Terstruktur - slidepdf.com

http://slidepdf.com/reader/full/algoritmapemrograman-terstruktur 12/19

 

 

END

JML,

KET

BYRAKH

N

Y

BYRAKH=JML

IF

JML >

100000

KET = ‘DAPAT DISC’

A B

N

YBYRAKH := JML-(JML*0.1)

IF

JML >

100000

N

KET = ‘TAK DISC’

Page 13: Algoritma_Pemrograman Terstruktur

5/10/2018 Algoritma_Pemrograman Terstruktur - slidepdf.com

http://slidepdf.com/reader/full/algoritmapemrograman-terstruktur 13/19

 

  PROGRAM PRAKTEK4;

(* PENCABANGAN_BEBERAPA_IF *)

USES CRT;

VAR

LM : BYTE;

KET : STRING [10];HK, JML,BYRAKH : REAL;

BEGIN

CLRSCR;

WRITE (‘LAMA MENGINAP = ‘);

READLN (LM);

WRITE (‘HARGA KAMAR/HARI = Rp. ‘);

READLN (HK);

JML := LM * HK;

IF JML > 300000 THEN

BYRAKH := JML – (JML * 0.3)

ELSE

IF JML > 200000 THEN

BYRAKH := JML – (JML * 0.2)

ELSE

IF JML > 100000 THEN

BYRAKH := JML – (JML * 0.1)

ELSE

BYRAKH := JML;

IF JML > 100000 THEN

KET := ‘DAPAT DISC’

ELSE

KET := TAK DISC’;

WRITELN (‘JUMLAH BAYAR = Rp. ‘,JML:14:0);

WRITELN (‘KETERANGAN = ‘,KET);

WRITELN (‘TOTAL BAYAR AKHIR = Rp. ‘,BYRAKH:14:0);

READLN;

END.

TUGAS 4

PROSES PROGRAM YANG DIKEHENDAKIMasukan :

•  Nama Induk Mahasiswa (nama variabelnya NIM).

•  Nama Mahasiswa (nama variabelnya NAMA).

•  Nilai Pascal (nama variabelnya NILPAS).

Rumus :

Nilai Mutu Huruf (nama variabelnya INDEK) ditemtukan dari tabel di bawah ini :

NILAI MUTU

HURUFNILPAS >= 85

70 <= NILPAS < 85

55 <= NILPAS < 70

40 <= NILPAS < 55

39 <= NILPAS

A

B

C

D

E

Keterangan : untuk Mutu Huruf A, B, C, D diberi Keterangan (nama variabelnya KET) ‘LULUS’, jiika

selain Mutu Huruf di atas diberi Keterangan ‘GAGAL’

Keluaran :

INDEK

TAMPILAN DI SCREEN

NOMOR INDUK MAHASISWA =

NAMA MAHASISWA =

NILAI PASCAL =

MUTU HURUF =

KETERANGAN =

Catatan : NIM, NAMA dan NILPAS diinput, sedangkan INDEK dan KET otomatis. 

Page 14: Algoritma_Pemrograman Terstruktur

5/10/2018 Algoritma_Pemrograman Terstruktur - slidepdf.com

http://slidepdf.com/reader/full/algoritmapemrograman-terstruktur 14/19

 

N

N

N

N

Y

B

BYRAKH := JML-(JML*0.2)

BEGIN

INPUT

LM,HK

JML=LM*HK

A

PRINT

JML

PRINT

HEADER

INPUT

PILIH

CASEPILIH=1

A

B

CASEPILIH=2

CASEPILIH=3

CASEPILIH=4

Y

Y

Y

BYRAKH := JML-(JML*0.3)

BYRAKH := JML-(JML*0.1)

BYRAKH := JML

PILIHN

SALAH

PRINT

BYRAKH

END

6

PROSES PENCABANGAN CASE

TUJUAN

•  Mengetahui perbedaan instruksi pencabangan IF dibandingkan dengan instruksi CASE.•  Memahami instruksi menuju ke posisi tertentu dengan instruksi GOTOXY.

PROSES PROGRAM YANG DIKEHENDAKI

Masukan :

•  Lama Menginap (nama variabelnya LM).

•  Harga Kamar/hari (nama variabelnya HK).

Rumus :Jumlah Bayar (nama variabelnya JML) dihitung dari LM dikali dengan HK. Jika JML

diatas 300000 dapat discount 30%, jika JML diatas 200000 dapat discount 20%, jika JMLdiatas 100000 dapat discount 10%. Total Bayar Akhir (nama variabelnya BYRAKH)dihitung dari JML dikurangi discount.

Keluaran :BYRAKH

FLOWCHART

Page 15: Algoritma_Pemrograman Terstruktur

5/10/2018 Algoritma_Pemrograman Terstruktur - slidepdf.com

http://slidepdf.com/reader/full/algoritmapemrograman-terstruktur 15/19

 

PROGRAM PRAKTEK6;

(*PENCABANGAN CASE*)

USES CRT;

VAR

LM,PILIH : BYTE;

HK, JML,BYRAKH : REAL;BEGIN

CLRSCR;

GOTOXY(10,2); WRITE (‘LAMA MENGINAP = ‘);

READLN (LM);

GOTOXY(10,3); WRITE (‘HARGA KAMAR/HARI = Rp. ‘);

READLN (HK);

JML := LM * HK;

GOTOXY(10,4); WRITELN (‘JUMLAH BELI =’,JML:8:0); WRITELN;

GOTOXY(10,6); WRITELN (‘ <<< PILIHAN >>> ’);

GOTOXY(10,7); WRITELN (‘1. 300000 – KEATAS ‘);

GOTOXY(10,8); WRITELN (‘2. 200000 < JML <= 300000 ‘);

GOTOXY(10,9); WRITELN (‘3. 100000 < JML <= 200000 ‘);

GOTOXY(10,10);WRITELN (‘4. KEBAWAH - 100000 ‘);

GOTOXY(10,11;WRITELN (‘PILIHAN ANDA : ‘);

GOTOXY(25,11);READLN (PILIH);

CASE PILIH OF

1 : BEGIN

BYRAKH := JML – (JML*0.3);

END;

2 : BEGIN

BYRAKH := JML – (JML*0.2);

END;

3 : BEGIN

BYRAKH := JML – (JML*0.1);

END;

4 : BEGIN

BYRAKH := JML;END

ELSE

BEGIN

CLRSCR;

WRITELN (‘PILIHAN ANDA SALAH !’);

WRITELN (‘ULANGI SEKALI LAGI?’);

END;

END;

WRITELN;

WRITELN (‘TOTAL BAYAR AKHIR = Rp.’,BYRAKH:14:0);

READLN;

END.

TUGAS 6

PROSES PROGRAM YANG DIKEHENDAKIMasukan :

•  Banyak Barang yang dibeli (nama variabelnya QTY).

•  Harga Satuan Barang (nama variabelnya HRGBRG).

Runus :

Jumlah Bayar (nama variabelnya JMLBYR) dihitung dari QTY dikali dengan HRGBRG. Jika JML diatas

600000 dapat discount 20%, jika JML diatas 400000 dapat discount 15%, jika JML diatas 200000 dapat

discount 10%. Total Bayar Akhir (nama varaiabelnya BYRAKH) dihitung dari JML dikurangi discount.

Keluaran :

BYRAKH

TAMPILAN DI SCREEN 

BANYAK BARANG =HARGA SATUAN =

JUMLAH BAYAR =

<<< MENU >>>

3.  600000 – KEATAS

4.  400000<JML<=600000

5.  100000<JML<=200000

6.  KEBAWAH – 100000

PILIHAN ANDA :

TOTAL BAYAR AKHIR =

Page 16: Algoritma_Pemrograman Terstruktur

5/10/2018 Algoritma_Pemrograman Terstruktur - slidepdf.com

http://slidepdf.com/reader/full/algoritmapemrograman-terstruktur 16/19

 

STATEMEN WHILEJika banyak perulangan yang akan dilakukan sudah diketahui, maka statemen for yang

digunakan. Bagaimana jika banyak perulangan tidak diketahui? Salah satunya dapat

menggunakan statemen while. Statemen while mirip dengan statemen if  yang melakukan

pemeriksaan ekspresi boolean sebelum sebuah atau serangkaian statemen dilakukan.

Skema umum statemen while adalah :

While kondisi do Statemen

Kondisi adalah sebuah ekspresi boolean. Jika ekspresi boolean bernilai true, statemen dijalankandan ekspresi boolean tersebut diperiksa kembali, dan keluar dari perulangan jika ekspresi

boolean bernilai false. Dengan demikian, banyak perulangan yang dilakukan sama dengan

banyak pmeriksaan ekspresi boolean yang mengirimkan harga true.

Contoh :

program jumlahinteger;

{menjumlahkan integer, 1 sampai dengan batas,menggunakan statemen while}

uses crt;

vari : integer;

batas : integer;

hasil : integer;

beginclrscr;

write ('Masukkan integer positif : ');readln (batas);

hasil := 0;

i := 0;while i<batas do 

begin

i := i + 1;hasil := hasil + i;

end;

{kondisi berhenti : i>=batas}write ('Jumlah 1 sampai ', batas, ' = ');

write (hasil);

readln;

end.

Masukkan/Keluaran

Masukkan integer positif : 10Jumlah 1 sampai 10 = 55

Perhatikan bagian program di atas

hasil := 0;

i := 0;

while i<batas do 

begin

i := i + 1;

hasil := hasil + i;

end;

Page 17: Algoritma_Pemrograman Terstruktur

5/10/2018 Algoritma_Pemrograman Terstruktur - slidepdf.com

http://slidepdf.com/reader/full/algoritmapemrograman-terstruktur 17/19

 

 

sebelum statemen while, hasil dan i masing-masing diberi nilai awal 0. while dan do adalahreserved word  pada Pascal. Jika statemen di bawah statemen while lebih dari satu, makaserangkaian statemen tersebut harus diawali dengan begin dan diakhiri dengan end.

Jika ekspresi boolean

i<batas

bernilai true, maka serangkaian statemen di bawah statemen while,

i := i + 1;

hasil := hasil + i;

dijalankan. Pertama i ditambah dengan 1, dan kemudian nilai i yang baru ditambahkan kepada

hasil. Pada perulangan pertama, nilai i menjadi 1 dan hasil menjadi 1. Kemudian ekspresi

boolean diperiksa lagi, apakah i<batas? Jika nilainya true, maka serangkaian statemen di bawah

statemen while dijalankan lagi, sehingga pada perulangan yang kedua nilai i ditambah menjadi 2dan nilai hasil menjadi 3. Proses pemeriksaan ekspresi boolean dilakukan lagi dan seterusnya.

Jika hasil pemeriksaan ekspresi boolean mengirimkan nilai false, serangkaian statemen di bawah

statemen while tidak dijalankan dan keluar dari perulangan.

Latihan :

1.  Buatlah program yang dapat membaca sebuah integer positif n, menghitung n2

+ (n-1)2

+ ..

+22

+ 12

dan menampilkan hasilnya di layar.

2. 

2. Buatlah program yang membaca sebuah karakter, ‘a’ ... ‘z’ dan menuliskan deretankarakter mulai dari ‘a’ sampai dengan karakter yang dibaca dari keyboard tersebut.

Jawaban

program jumlahderetkuadrat;{menjulahkan deret kuadrat, mulai n sampai

dengan 1, menggunakan statemen while}

varn : integer;

hasil: integer;

beginwrite ('Masukkan integer positif : ');

readln (n);

hasil := 0;

while n>0 dobegin

hasil := hasil + sqr(n);

n := n - 1;end;

{kondisi berhenti : n <= 0}

write ('Jumlah = ', hasil);

readln;

end.program derethuruf;

{menuliskan angka mulai 'a' sampai dengan

batas}var

cc, batas : char;

begin

write ('Masukkan huruf, a..z : ');

readln (batas);

cc := 'a';while cc <= batas dobegin

write (cc);cc := succ(cc);

end;

readln;

end. 

Page 18: Algoritma_Pemrograman Terstruktur

5/10/2018 Algoritma_Pemrograman Terstruktur - slidepdf.com

http://slidepdf.com/reader/full/algoritmapemrograman-terstruktur 18/19

 

STATEMEN REPEATPada statemen while pemeriksaan kondisi atau ekspresi boolean dilakukan pada awal

perulangan. Hal ini memungkinkan statemen di bawah statemen while tidak pernah dilakukan,

yaitu jika pada pemeriksaan pertama, ekspresi booolean bernilai false. Berbeda dengan statemen

while, pada statemen statemen repeat pemeriksaan ekspresi boolean dilakukan pada akhirperulangan, sehingga statemen dalam perulangan minimal dilakukan sekali.

Skema umum statemen repeat adalah :

Repeat

Statemen

Until kondisi

Dimana kondisi adalah sebuah ekspresi boolean. Jika kondisi berharga true perulangan selesai

dan statemen tidak dijalankan lagi, dan sebaliknya, jika kondisi berharga false statemen

dijalankan lagi. repeat dan until adalah reserved word Pascal.

Contoh :

program derethuruf;

{menuliskan angka mulai 'a' sampai dengan batas}

uses crt;

varcc, batas : char;

beginclrscr;

write ('Masukkan huruf, a .. z : ');

readln (batas);

cc := 'a';

repeatwrite (cc);

cc := succ(cc);

until (cc>batas);

readln;

end.

Perhatikan potongan program di atas

cc := 'a';

repeat

write (cc);

cc := succ(cc);until (cc>batas);

terlihat bahwa statemen

write (cc);

cc := succ(cc);

minimal dilakukan sekali, yaitu jika karakter yang dibaca dari keyboard (batas) adalah ‘a’, yang

berarti program hanya akan menuliskan satu karakter. Setelah nilai cc atau ‘a’ ditulis, nilai cc

diganti dengan suksesor ‘a’, yaitu ‘b’. Kemudian pemeriksaan ekspresi boolean dilakukan, dan

menghasilkan nilai true, karena cc atau ‘b’ “lebih besar” daripada nilai batas, yaitu ‘a’.Jika dalam di bawah statemen while, terdapat lebih dari satu statemen harus digunakan

begin dan end, pada statemen repeat hal tersebut tidak diperlukan lagi.

Latihan : buatlah program yang menerima sebuah respon atau jawaban ‘s’ untuk ‘sudah’ dan ‘b’

untuk ‘belum’ terhadap sebuah pertanyaan ‘Anda sudah berdo’a?’. Program akan terusmenanyakan jawaban sampai jawaban yang diberikan adalah ‘s’ atau ‘b’. Jika jawaban yang

diberikan adalah ‘s’, tampilan pesan di layar ‘Bagus’, dan jika jawaban yang diberikan ‘b’,

tampilan pesan di layar, ‘Berdoa mendekatkan diri dengan Tuhan’.

Page 19: Algoritma_Pemrograman Terstruktur

5/10/2018 Algoritma_Pemrograman Terstruktur - slidepdf.com

http://slidepdf.com/reader/full/algoritmapemrograman-terstruktur 19/19

 

program sudah_berdoa;

var jawab : char;

begin

repeatwrite ('Anda sudah berdoa? (s/b)');readln (jawab);

until (jawab = 's') or (jawab = 'b');

if jawab = 's' thenwrite ('Bagus')

else

write ('Berdoa mendeekatkan diri dengan Tuhan.');readln;

end.

program jumlahderetkuadrat;{menjulahkan deret kuadrat, mulai n sampai dengan 1, menggunakan statemen while}

varn : integer;

hasil: integer;

beginwrite ('Masukkan integer positif : ');

readln (n);

hasil := 0;

while n>0 dobegin

hasil := hasil + sqr(n);n := n - 1;

end;

{kondisi berhenti : n <= 0}

write ('Jumlah = ', hasil);readln;

end.

program derethuruf;{menuliskan angka mulai 'a' sampai dengan batas}

var

cc, batas : char;

beginwrite ('Masukkan huruf, a..z : ');

readln (batas);

cc := 'a';

while cc <= batas dobegin

write (cc);

cc := succ(cc);end;

readln;end.