algoritma

22
BAB I PENDAHULUAN A. LATAR BELAKANG Variabel dan Type Data serta Branching pada Pascal telah kita pelajarari dan praktekkan. Maka kita akan mempelajari operator lain pada pascal yaitu tentang Looping (pengulangan). .Perulangan Merupakan control program yang digunakan untuk suatu proses yang akan berjalan terus menerus. Kondisi perulangan merupakan proses berjalannya program secara terus menerus dan akan berhenti ketika proses mendapatkan kondisi yang sudah ditentukan B. TUJUAN PRAKTIKUM 1. Mahasiswa dapat mengerti dan memahami kegunaan looping. 2. Mahasiswa dapat mengerti dan memahami bentuk dasar looping. 3. Mahasiswa dapat mengerti dan memahami kapan suatu pernyataan looping sebaiknya digunakan. 4. Mahasiswa mampu menggunakan dan membedakan kegunaan masing-masing pernyataan looping.

Upload: muhammad-rikza-nashrulloh

Post on 30-Jun-2015

150 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: algoritma

BAB I

PENDAHULUAN

A. LATAR BELAKANG

Variabel dan Type Data serta Branching pada Pascal telah kita pelajarari dan praktekkan.

Maka kita akan mempelajari operator lain pada pascal yaitu tentang Looping

(pengulangan). .Perulangan Merupakan control program yang digunakan untuk suatu proses

yang akan berjalan terus menerus. Kondisi perulangan merupakan proses berjalannya

program secara terus menerus dan akan berhenti ketika proses mendapatkan kondisi yang

sudah ditentukan

B. TUJUAN PRAKTIKUM

1. Mahasiswa dapat mengerti dan memahami kegunaan looping.

2. Mahasiswa dapat mengerti dan memahami bentuk dasar looping.

3. Mahasiswa dapat mengerti dan memahami kapan suatu pernyataan looping sebaiknya

digunakan.

4. Mahasiswa mampu menggunakan dan membedakan kegunaan masing-masing

pernyataan looping.

Page 2: algoritma

BAB II

PENYELEKSIAN KONDISI DENGAN IF

2.1.Teori

a. Penyeleksian Satu Kasus, dengan menggunakan struktur IF-THEN:

Pada penyeleksian satu kasus, kondisi akan diseleksi oleh statemen if. Bila kondisi

bernilai benar (true), maka aksi sesudah kata then (dapat berupa satu atau lebih aksi)

akan diproses. Bila kondisi bernilai salah (false), maka tidak ada aksi yang akan

dikerjakan. Statemen endif adalah untuk mempertegas bagian awal dan bagian akhir

struktur IF-THEN.

if kondisi then aksi

Gambar 2.1. Struktur Bahasa Pemrograman Untuk Penyeleksian Satu Kasus (IF-THEN)

b. Penyeleksian Dua Kasus, menggunakan struktur IF-THEN-ELSE:

Dalam struktur IF-THEN-ELSE, aksi1 akan dilaksanakan jika kondisi bernilai benar

(true), dan jika kondisi bernilai salah (false) maka aksi2 yang akan dilaksanakan.

Statemen else menyatakan ingkaran (negation) dari kondisi.

if kondisi then aksi1

else aksi2

Gambar 2.2. Struktur Bahasa Pemrograman Untuk Penyeleksian Dua Kasus (IF-THEN-ELSE)

c. Penyeleksian Tiga Kasus atau Lebih (Penyeleksian Tersarang)

Untuk penyeleksian tiga kasus atau lebih juga menggunakan struktur IF-THEN-ELSE

sebagaimana halnya permasalahan dua kasus. struktur penulisan dalam bahasa pascal

dapat dilihat dari Gambar 1.3.

if kondisi1 then aksi1

else if kondisi2 then aksi2 else aksi3

Gambar 2.3. Struktur Bahasa Pemrograman untuk Penyeleksian Tiga Kasus IF-THEN-ELSE (tersarang)

Page 3: algoritma

2.2.Persyaratan penyeleksian kondisi dengan if

a. Bila kondisi bernilai benar (true), maka aksi sesudah kata then (dapat berupa satu atau

lebih aksi) akan diproses. Bila kondisi bernilai salah (false), maka tidak ada aksi yang

akan dikerjakan

b. Dalam menuliskan pernyataan IF ELSE adalah tidak diperkenankannya pemakaian

tanda titik koma dibelakang pernyataan sebelum ELSE.

c. Pada pernyataan IF ELSE yang mana ”ELSE” artinya ”kalau tidak” maka bila kondisi

bernilai benar, aksi 1akan dikerjakan, tetapi kalau tidak, aksi 2 yang akan dikerjakan.

d. Kondisi IF harus bernilai boolean

e. Dalam penulisan algoritma, identasi haruslah diperhatikan, karena tanpa identasi,

algoritma menjadi lebih sulit dibaca.

2.3. Contoh program IF dalam bahasa Pascal dan C

Contoh program IF dalam bahasa pascal

program MAKSIMAL;uses crt;var a,b,c,maks : real;

beginclrscr;write('masukan nilai A : ');readln(A);write('masukan nilai B : ');readln(B);write('masukan nilai C : ');readln(C); if a > b then maks := a else maks := b; if c > maks then maks := c else maks := maks;writeln('nilai terbesar adalah : ',maks :1:2); if maks > 0 then writeln('nilai tersebut adalah bilangan positif') else writeln('nilai tersebut adalah bilangan negatif') ;readln;end.

Page 4: algoritma

Contoh program IF dalam bahasa C

2.4. Hal-hal yang membuktikan persyaratan

1. Pembuktian persyaratan A

Pada contoh diatas, penyelesaian dimulai dari kondisi a>b. Jika kondisi ini bernilai True

(benar), maka proses akan dilanjutkan hingga menghasilkan pernyataan:

#include <stdio.h>#include <conio.h>main(){ long int jam, menit,detik,sisa,totaldetik;printf("masukan total detik "); scanf("%ld\n", &totaldetik);{ if (totaldetik > 3600) jam = totaldetik / 3600 ; else jam = 0; sisa = totaldetik % 3600 ;if (sisa > 60 ) menit = sisa / 60; else menit = 0;if (menit >= 1) detik=sisa % 60; else detik = 0;

}

}

if a > b then maks := a else maks := b; if c > maks then maks := c else maks := maks;writeln('nilai terbesar adalah : ',maks :1:2); if maks > 0 then writeln('nilai tersebut adalah bilangan positif') else writeln('nilai tersebut adalah bilangan negatif') ;

writeln('nilai terbesar adalah : ',maks :1:2);

Page 5: algoritma

Sekiranya kondisi tersebut bernilai false (salah), IF berikutnya akan diperiksa. Demikian seterusnya. Kalau semua kondisi if tak ada yang bernilai true dalam artian menurut program diatas bernilai kurang dari 0, maka pernyataan:

Keterangan diatas membuktikan persyaratan A yaitu:

”Bila kondisi bernilai benar (true), maka aksi sesudah kata then (dapat berupa satu atau

lebih aksi) akan diproses. Bila kondisi bernilai salah (false), maka tidak ada aksi yang

akan dikerjakan”

2. Pembuktian persyaratan B

Satu hal penting yang perlu diperhatikan dalam menuliskan pernyataan IF ELSE adalah

tidak diperkenankannya pemakaian tanda titik koma di belakang pernyataan sebelum ELSE.

Contoh penulisan yang salah:

Kesalahannya yaitu pada pada tanda titik koma yang terletak sesudah ”maks:=a”.

Tanda koma pada posisi tersebut tidak diperbolehkan , pesan kesalahan yang muncul pada

persoalan diatas berupa: ”Error 113: Error in statments”.

Keterangan diatas membuktikan persyaratan B yaitu:

”Dalam menuliskan pernyataan IF ELSE pada pascal adalah tidak diperkenankannya

pemakaian tanda titik koma dibelakang pernyataan sebelum ELSE”.

3. Pembuktian persyaratan C

ELSE” artinya ”kalau tidak” maka bila kondisi bernilai benar, aksi 1 akan dikerjakan,

tetapi kalau tidak, aksi 2 yang akan dikerjakan.

Misalnya pada pernyataan berikut:

Jika a lebih besar daripada b maka nilai maksimum adalah a, sebaliknya b lebih besar

daripada a maka nilai maksimum adalah b.

Writeln ('nilai tersebut adalah bilangan negatif') ;

if a > b then maks := a;

else maks := b;

if a > b then maks := a else maks := b;

Page 6: algoritma

Penjelasan diatas sesuai dengan persyaratan C yaitu:

“Pada pernyataan IF ELSE yang mana ”ELSE” artinya ”kalau tidak” maka bila kondisi

bernilai benar, aksi 1akan dikerjakan, tetapi kalau tidak, aksi 2 yang akan dikerjakan”.

4. Pembuktian persyaratan D

Menganalisis kasus dari suatu masalah adalah menentukan kondisi boolean (bernilai true

atau false) untuk setiap kasus dan menentukan aksi yang dilakukan jika kondisi tersebut

berlaku (memenuhi).

Kondisi boolean adalah ekspresi boolean yang bernilai true atau false bergantung pada

nilai masing-msing oprand yang terlibat didalamnya. Ekspresi boolean dibentuk dengan

mengkombinasikan operand yang bertipe sama dengan salah satu dari operator relasional:

=,<, <, >, >, dan operator uner not.

Contoh dalam program:

Aksi yang dikerjakan bila kondisi boolean dipenuhi dapat berupa pengisian nilai

(assignment), kalkulasi, baca, tulis, dan sebagainya, bergantung pada masalahnya.

Penentuan kondisi boolean dan aksi yang dilakukan bergantung pada jumlah kasus yang

terdapat pada masalah tersebut: satu kasus, dua kasus, atau lebih dari dua kasus.

Pernyataan diatas sesuai dengan persyaratan D yaitu:

“Kondisi IF harus bernilai boolean”

Dalam penulisan algoritma, identasi haruslah diperhatikan, karena tanpa identasi,

algoritma menjadi lebih sulit dibaca.

if a > b then

Page 7: algoritma

BAB III

PENYELEKSIAN KONDISI DENGAN CASE

3.1. Teori

Struktur CASE. Struktur ini dapat digunakan untuk menganalisa penyeleksian dua

kasus atau lebih dan bentuknya adalah lebih sederhana daripada struktur IF-THEN-ELSE

yang memiliki bentuk bertingkat-tingkat. Gambar 2.7 memperlihatkan Struktur CASE.

case (nama)kondisi1 : aksi1kondisi2 : aksi2...kondisiN : aksiN[otherwise aksiX]

Gambar 3.1. Struktur Bahasa Pemrograman Untuk Seleksi CASE

Kondisi1, kondisi2, … kondisiN dapat bernilai benar atau salah. Tiap kondisi diperiksa

nilai kebenarannya mulai dari kondisi pertama sampai ditemukan kondisi yang benar. Jika

kondisi ke-k benar, maka aksi ke-k dilaksanakan, selanjutnya keluar dari struktur CASE. Aksi

yang dipasangkan dengan kondisi ke-k dapat lebih dari satu, karena itu ia berupa runtunan.

Jika tidak ada satupun kondisi yang benar, maka aksi sesudah otherwise (optional)

dikerjakan.

2.2.Persyaratan penyeleksian kondisi dengan CASE

I. Pada CASE terdapat tanda subjangkauan (berupa..) juga dapat digunakan untuk

menyatakan jangkauan nilai.

II. Bagian ELSE pada CASE bersifat opsional.

III. CASE lebih memberikan kejelasan daripada IF maka semua persoalan yang dapat

ditangani oleh CASE bisa ditangani oleh IF namun tidak sebaliknya.

IV. Pada bentuk CASE, daftar_nilai dapat berupa sederetan nilai yang dipisahkan oleh

koma.

V. Pernyataan CASE merupakan alternatif dari pernyataan IF untuk masalah dengan

pilihan berganda

Page 8: algoritma

2.3. Contoh program IF dalam bahasa Pascal dan C

Contoh Program Case Dalam Bahasa C

Contoh Program Case Dalam Bahasa Pascal

#include <stdio.h>#include <conio.h>#include <math.h>main (){ float n ; float hitung1, hitung2, hitung3; int pilihan; printf ("masukan pilihan (1/2/3):"); scanf ("%d",&pilihan); printf("masukan n : "); scanf("%f", &n); hitung1 = (n / 6) * 4 / 3 ; hitung2 = n * n + hitung1; hitung3 = sqrt(hitung2) + (n-hitung1); switch(pilihan) { case 1 : printf("hasilnya adalah :%1.2f",hitung1); break; case 2 : printf("hasilnya adalah :%1.2f",hitung2); break; case 3 : printf("hasilnya adalah :%1.2f",hitung3); break; }}

program nilai_mutu;uses crt;var nilai : integer;

beginwrite('masukan nilai : '); readln(nilai);case nilai of 90..100 : writeln('Grade A'); 70..89 : writeln('Grade B'); 50..69 : writeln('Grade C'); 40..49 : writeln('Grade D'); 0..39 : writeln('Grade E'); end; readln; end.

Page 9: algoritma

2.4. Hal-hal yang membuktikan persyaratan

A. Pembuktian persyaratan CASE bagian I

Pada CASE terdapat tanda subjangkauan (berupa..) juga dapat digunakan untuk

menyatakan jangkauan nilai, misalnya:

Pada contoh diatas :

90..100 menyatakan 90, 91, 92, dan seterusnya hingga 100.

70..89 menyatakan 70, 71, 72, dan seterusnya hingga 89.

50..69 menyatakan 50, 51, 52, dan seterusnya hingga 69.

40..49 menyatakan 40, 41, 42, dan seterusnya hingga 49.

0..39 menyatakan 0, 1, 2, dan seterusnya hingga 39.

Pernyataan diatas membuktikan persyaratan A yaitu:

“Pada CASE terdapat tanda subjangkauan (berupa..) juga dapat digunakan untuk

menyatakan jangkauan nilai.”

B. Pembuktian persyaratan CASE bagian II

Sampai sejauh ini semua bentuk CASE melibatkan bagian ELSE. Sesungguhnya bagian

ELSE ini bersifat opsional. Bagian ELSE bisa saja tidak disertakan, contoh:

case nilai of 90..100 : writeln('Grade A'); 70..89 : writeln('Grade B'); 50..69 : writeln('Grade C'); 40..49 : writeln('Grade D'); 0..39 : writeln('Grade E');

program nilai_mutu;uses crt;var nilai : integer;

beginwrite('masukan nilai : '); readln(nilai);case nilai of 90..100 : writeln('Grade A'); 70..89 : writeln('Grade B'); 50..69 : writeln('Grade C'); 40..49 : writeln('Grade D'); 0..39 : writeln('Grade E'); end; readln; end.

Page 10: algoritma

Contoh CASE menggunakan ELSE dapat dilihat dalam contoh sebagai berikut:

Pernyataan diatas membuktikan persyaratan B yaitu:

“Bagian ELSE pada CASE bersifat opsional”

C. Pembuktian persyaratan CASE bagian III

Uses crt;

Var

Kode_bulan : integer;

BEGIN

Clrscr;Write ( ‘Kode bulan (1..12) :’ );Readln (Kode_bulan);

Case Kode_bulan of1, 3, 5, 7, 8, 10, 12 :Writeln ( ‘Jumlah hari = 31’ );4, 6, 9, 11 :Writeln ( ‘Jumlah hari = 30’ );2 :Writeln ( ‘Jumlah hari = 28 atau 29’ );

Else

Writeln ( ‘salah memasukkan kode bulan’ )

End;End.

Program Case;Uses crt;Var Pil : integer;BEGIN Clrscr; Write ( ‘Pilihan (1,2 atau 3):’ ); Readln (Pil); CASE Pil OF

1: Writeln (‘Pilihan anda adalah 1’) ;2: Writeln (‘Pilihan anda adalah 2’) ;3: Writeln (‘Pilihan anda adalah 3’) ;

ELSE

Writeln (‘Salah Pilih !’);

End;

Writeln (‘selesai…..’);

End.

Page 11: algoritma

Pilihan (1, 2, atau 3) : 2 Pilihan anda adalah 2Selesai…….

Pilihan (1, 2, atau 3) : 3 Pilihan anda adalah 3Selesai…….

Pilihan (1, 2, atau 3) : 4 Pilihan Salah !Selesai…….

Marilah kita lihat hasil eksekusi program diatas, sebelum menganalisisnya.

Pengeksekusian 1:

Pengeksekusian 2 :

Pengeksekusian 3:

Pengeksekusian 4:

Tampak bahwa bila nilai yang dimasukkan berupa 1,2 atau 3 maka akan muncul tulisan :

Pilihan anda adalah ...... (dengan ..... berupa nomor pilihan ). Sedangkan kalau nilai Pil

tidak berisi 1, 2, atau 3, pesan yang muncul adalah adalah :

Pilihan Salah !

Dari sifat diatas dapat kita ketahui bahwa sebenarnya CASE merupakan alternatif lain

dari IF. Tetapi pada kasus seperti diatas, CASE lebih disukai daripada IF, karena lebih

memberikan kejelasan. Sebagai gambaran, berikut ini merupakan bentuk IF yang serupa

dengan CASE diatas.

Pilihan (1, 2, atau 3) : 1 Pilihan anda adalah 1Selesai…….

IF Pil = 1 THENWriteln (‘Pilihan Anda adalah 1’)

ELSE IF Pil = 2 THEN

Writeln (‘Pilihan Anda adalah 2’) ELSEIF Pil = 3 THEN

Writeln (‘Pilihan Anda adalah 3’) ELSE

Writeln (‘Salah Pilih’) ;

Page 12: algoritma

Penjelasan diatas menjelaskan persyaratan C yaitu:

“CASE lebih memberikan kejelasan daripada IF maka semua persoalan yang dapat

ditangani oleh CASE bisa ditangani oleh IF namun tidak sebaliknya”.

D. Pembuktian persyaratan CASE bagian IV

Pada bentuk CASE, daftar_nilai dapat berupa sederetan nilai yang dipisahkan oleh koma.

Lihat contoh program dibawah ini :

Contoh program diatas membuktikan persyaratan CASE bagian D yaitu:

“Pada bentuk CASE, daftar_nilai dapat berupa sederetan nilai yang dipisahkan oleh

koma.”

Uses crt;

Var

Kode_bulan : integer;

BEGIN

Clrscr;Write ( ‘Kode bulan (1..12) :’ );Readln (Kode_bulan);

Case Kode_bulan of1, 3, 5, 7, 8, 10, 12 :Writeln ( ‘Jumlah hari = 31’ );4, 6, 9, 11 :Writeln ( ‘Jumlah hari = 30’ );2 :Writeln ( ‘Jumlah hari = 28 atau 29’ );

Else

Writeln ( ‘salah memasukkan kode bulan’ )

End;End.

Page 13: algoritma

E. Pembuktian persyaratan CASE bagian V

Pernyataan CASE merupakan alternatif dari pernyataan IF untuk masalah dengan pilihan

berganda. Lihatlah contoh program C dibawah ini:

Program tersebut menyatakan persyaratan CASE bagian E yaitu:

“Pernyataan CASE merupakan alternatif dari pernyataan IF untuk masalah dengan

pilihan berganda “.

2.5. Kesimpulan.

Pernyataan case (case statement) berisi ungkapan pemilih (selector) dan sederetan pernyataan yang masing-masing diawali dengan satu atau lebih tetapan (case constant) atau dengan kata kunci else. Semua tetapan case harus khas dan tipe berurutan yang digunakan harus sesuai dengan tipe pemilih. Sama halnya dengan pernyataan if, pada pernyataan case jika pernyataan yang akan dijalankan lebih dari satu pernyataan maka sebelum pernyataan-pernyataan tersebut harus diawali dengan begin dan diakhiri dengan end.

#include <stdio.h>#include <conio.h>#include <math.h>main (){ float n ; float hitung1, hitung2, hitung3; int pilihan; printf ("masukan pilihan (1/2/3):"); scanf ("%d",&pilihan); printf("masukan n : "); scanf("%f", &n); hitung1 = (n / 6) * 4 / 3 ; hitung2 = n * n + hitung1; hitung3 = sqrt(hitung2) + (n-hitung1); switch(pilihan) { case 1 : printf("hasilnya adalah :%1.2f",hitung1); break; case 2 : printf("hasilnya adalah :%1.2f",hitung2); break; case 3 : printf("hasilnya adalah :%1.2f",hitung3); break; }}

Page 14: algoritma

Fungsi, kelebihan dan kekurangan

Fungsi, kelebihan dan kekurangan CASE antara lain:

CASE merupakan alternatif dari pernyataan IF untuk masalah dengan pilihan

berganda.

Bagian ELSE pada CASE bersifat opsional.

Pada CASE terdapat tanda subjangkauan (berupa..) juga dapat digunakan

untuk menyatakan jangkauan nilai.”

CASE lebih memberikan kejelasan daripada IF