algoritma
TRANSCRIPT
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.
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)
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.
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);
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;
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
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
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.
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.
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.
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’) ;
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.
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; }}
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