Algoritma_Pemrograman Terstruktur

download Algoritma_Pemrograman Terstruktur

of 19

  • date post

    08-Jul-2015
  • Category

    Documents

  • view

    115
  • download

    0

Embed Size (px)

Transcript of Algoritma_Pemrograman Terstruktur

ALGORITMA DAN PEMROGRAMAN TERSTURKTUROleh : Aslam Fatkhudin, S.Kom 3 krtiteria program yang baik : 1. Correct benar. 2. Clear jelas. 3. Efficient efisien.

Alur Program

Input

Proses

OutputYang paling komplek

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 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 SYMBOLSSIMBOL KEGUNAAN Untuk menghubungkan antara simbol yang satu dengan simbol yang lainnya. Simbol Arus (Flow) Simbol transmisi untuk informasi dari satu lokasi ke lokasi lainnya. Simbol Communication Link

Simbol untuk keluar/masuk prosedur atau proses dalam lembar/halaman yang sama. Simbol Connector Simbol untuk keluar/masuk prosedur atau proses dalam lembar/halaman yang lain. Simbol Off-Line Connector

B. PROCESSING SYMBOLSSIMBOL KEGUNAAN Simbol yang menunjukkan pengolahan yang dilakukan oleh komputer. Simbol Process Simbol yang menunjukkkan pengolahan yang tidak dilakukan oleh komputer. Simbol Manual Operation Simbol untuk kondisi yang akan menghasilkan beberapa kemungkinan jawaban/aksi. Simbol Decision Simbol untuk mempersiapkan penyimpanan yang akan digunakan sebagai tempat pengolahan di dalam storage. Simbol Predefined Process Simbol untuk permulaan atau akhir dari suatu program. Simbol Terminal Simbol operasi dengan menggunakan mesin yang mempunyai keyboard. Simbol Keying Operation Simbol untuk menunjukkan bahwa data di dalam simbol ini akan disimpan. Simbol Off-Line Storage Simbol untuk pemsukkan data secara manual on-line keyboard. Simbol Manual Input

C. INPUT-OUTPUT SYMBOLS SIMBOL KEGUNAANSimbol yang menyatakan proses input dan output tanpa tergantung dengan jenis peralatannya. Simbol Input-Output Simbol yang menyatakan input berasal dari kartu atau output ditulis ke kartu. Simbol Punched Card Simbol yang menyatakan input berasal dari pita magnetik atau output disimpan ke pita magnetik. Simbol Magnetic Tape Unit Simbol untuk menyatakan input berasal dari disk atau output disimpan ke disk. Simbol Disk and On-Line Storage Simbol-simbol yang menyatakan input berasal dari dokumen dalam bentuk kertas atau output dicetak ke kertas. Simbol Document Simbol untuk menyatakan input berasal dari mesin jumlah/hitung. Simbol Transmittal Tape Simbol yang menyatakan peralatan output yang digunakan yaitu layar, plotter, printer dan sebagainya. Simbol Display PASCAL Dalam mempelajari algoritma, dipakai bahasa pemrograman Pascal untuk membantu pemahaman. Bahasa Pascal dikembangkan pada awal tahun 1970-an oleh ilmuwan komputer Eropa, Niklaus Wirth (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 menciptakan bahasa yang sederhana.

1 PROSES BERURUTANTUJUAN 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 BEGIN USES CRT; VAR LM HK, JML : BYTE; : REAL; PROGRAM PRAKTEK1; (* PROSES BERURUTAN*)

INPUT LM,HK

JML=LM*HK

PRINT JML

BEGIN CLRSCR; WRITE (LAMA MENGINAP READLN (LM); WRITE (HARGA KAMAR/HARI READLN (HK); JML := LM * HK; WRITELN (JUMLAH BAYAR READLN; END.

: ); : Rp. );

: Rp. ,JML:8:0);

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.

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 Jumlah Bayar 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 BEGIN

INPUT LM,HK

JML=LM*HK

IF JML>= 100000N

Y

BYRAKH := JML-(JML*0.1)

BYRAKH := JML

PRINT JML, BYRAKH

END

PROGRAM PRAKTEK2; (* PENCABANGAN IF_THEN_ELSE_SATU_PERNYATAAN*) USES CRT; VAR LM HK, JML,BYRAKH

: BYTE; : 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) ELSE BYRAKH := 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, maka variabel 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.

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 Jumlah Bayar 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 BEGIN

INPUT LM,HK

JML=LM*HK

IF JML>= 200000N

Y

BYRAKH := JML-(JML*0.2) KET := DPT DISC

BYRAKH := JML KET := TAK DISC

PRINT JML, KET BYRAKH

END

PROGRAM PRAKTEK3; (* PENCABANGAN IF_THEN_ELSE_BLOK_PERNYATAAN*) USES CRT; VAR LM KET HK, JML,BYRAKH

: BYTE; : STRING [8]; : 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 BEGIN BYRAKH := 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 DIKEHENDAKI Masukan : 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.

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 dengan menampilkan pesan yang sesuai di layar. Analisis : berdasar soal diatas terdapat dua kondisi yang mungkin terjadi, yaitu nilai lebih dari atau sama dengan 70. Karena kedua kondisi ini saling melengkapi, maka bagian else dalam statement if digunakan. Langkah-langkah pemecahan masalahnya menjadi : 1. Membaca nilai ujian 2. 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 n