SlideShare a Scribd company logo
BAB 3
PEMILIHAN / KONTROL PROGRAM
A. Pendahuluan
Salah satu kemampuan komputer adalah dapat melakukan proses pemilihan dari
beberapa alternatif sesuai dengan kondisi yang diberikan. Dalam persoalan sehari-
haripun, hampir selalu ada kondisi dimana kita harus memilih, diantara alternatif –
alternatif yang ada. Sebagai contoh, seorang mahasiswa memperoleh nilai 75. apakah
dengan nilai tersebut mahasiswa tersebut itu lulus ? Jika batas kelulusan minimal 60
maka mahasiswa tersebut lulus ujian. Jika kurang dari 60 maka mahasiswa tersebut
tidak lulus ujian.
B. Pemograman
Bahasa pemograman seperti Pascal maupun C juga mendukung pernyataan
bersyarat . Tata cara penulisannya tersaji berikut ini :
Algoritmik Pascal C
if (kondisi) then
aksi
if (kondisi) then aksi; if (kondisi) aksi;
end if
if (kondisi) then
aksi I
if (kondisi) then
aksi I
if (kondisi)
aksi I;
else else Else
aksi 2 aksi 2 aksi 2
end if
pernyataan majemuk begin ….. end { …….. }
Baik aksi, aksi I, maupun aksi2 bisa merupakan pernyataan tunggal maupun
pernyataan majemuk. Selain itu, bila kondisi bertipe ordinal, seperti integer, byte atau
yang lain (kecuali real atau string), bisa digunakan pernyataan di bawah ini :
Algeritmik Pascal C
case (nama) case (nama) of switch (nama) {
<label1> : aksi I label 1 : aksi I; case label I : aksi1 ; break
<label2> : aksi 2 label 2 : aksi 2; case label 2 : aksi2 ; break
<label3> : aksi 3 label 3 : aksi 3; case label 3 : aksi3 ; break
…. …. ….
<labelN> : aksiN label N : aksiN; case labelN : aksiN ; break
else : aksiX else aksiX ; default : aksiX
endcase end : }
dimana konstantaI sampai dengan konstantaN dapat pula berupa range suatu nilai,
misalnya untuk menyatakan 60 < nilai ≤ 80 dapat ditulis sebagai 61..80 (dengan
menggunakan operator range..)
C. Operator Relasional
Biasanya suati kondisi dinyatakan dengan membandingkan suatu keadaan
dengan suatu nilai. Untuk itu diperlukan suatu operator perbandingan yaitu :
Algoritmik Arti Pascal C
< Lebih kecil < <
> Lebih besar > >
<= Lebih kecil sama dengan <= <=
>= Lebih besar sama dengan >= >=
≠ Tidak sama dengan <> !=
= Sama dengan = = =
or atau or ║
and dan and & &
D. Tabel Kebenaran Operator Or dan And
Operator or dan and termasuk termasuk operator binari, yaitu operator yang
memerlukan dua operan, dimana setiap operan bisa bernilai benar atau salah. Untuk
itu masing – masing mempunyai 4 kemungkin an nilai, yaitu :
p q p or q
benar benar benar
benar salah benar
salah benar benar
salah salah salah
Kasus 3.1
Tentukan bilangan tersebesar antara dua bilangan bulat.
Algoritma 3.1.
Alogaritma Maksimum
{ Menentukan nilai terbesar antara dua bilangan bulat }
Deklarasi
A , B : intiger
p q p or q
bena
r
bena
r
benar
bena
r
salah salah
salah bena
r
salah
salah salah salah
Dekripsi
Read (A,B)
If (A,B) then write (‘bilangan terbesar adalah = ‘ A)
Else write (‘bilangan terbesar adalah = ‘ B)
endif
Flow Chart 3.1
Tranlasi 3.1
Bahasa Pascal Bahasa C
program maksimum :
uses wincrt :
var A.B : real
begin
write (‘bilangan pertama = ‘)
readln (A)
write (‘bilangan kedua = ‘)
readln (B)
if (A > B) then
writeln (‘Bilangan Terbesar A :’,A:4:0)
else
writeln (‘Bilangan Terbesar B’,B:4:0)
end.
#include <stdio.h>
main () {
int A, B
printf (bilangan pertama = “)
scanf (“%d”,&A):
printf (“bilangan kedua = “)
scanf (“%d”,&B):
if (a>b)
printf (“bilangan terbesar : %d”,A):
else
printf (“bilangan terbesar : %d”,B):
retrun 0:
Kasus 3.2
Tentukan bilangan terbesar antara bilangan bulat.
Alogaritma 3.2.a
Alogaritma Nilai _Maksimum
{Membaca tiga buah bilangan bulat, menentukan bilangan terbesar diantara tiga buah
bilangan tersebut dan menampilkannya ke layar}
Deklarasi
X,y,z : integer
Mulai
A ,
B
A>
B?
Max=B
selesai
Max=A
Dekripsi
Read (x,y,z)
read (x>y)and (x<z) then write (‘bilangan terbesar adalah = ,x)
else if (x>y)and (x<z) then write (‘bilangan terbesar adalah = ,y)
else write (‘bilangan terbesar adalah = ,z)
end if
Flow Chart 3.2
Tidak
Tidak
Tranlasi 3.2
Bahasa Pascal Bahasa C
program maksimum :
uses wincrt :
var x, y, z : integer
begin
write (‘bilangan pertama = ‘)
readln (x)
write (‘bilangan kedua = ‘)
readln (y)
write (‘bilangan ketiga = ‘)
readln (z)
if (x>y)and (x<z) then
write (‘bilangan terbesar adalah =’,x)
else if (y>x)and (y<z) then
writeln (bilangan terbesar : y)
else
write (bilangan terbesar : z)
#include <stdio.h>
main () {
int x, y, z
printf (bilangan pertama = “)
scanf (“%d”,&x):
printf (“bilangan kedua = “)
scanf (“%d”,&y):
printf (“bilangan ketiga = “)
scanf (“%d”,&z):
if (x>y) &&(x>z)
printf (“bilangan terbesar : %d”,x):
else if (y>x) &&(y>z)
printf (“bilangan terbesar : %d”,y):
else
printf (“bilangan terbesar : %d”,z):
retrun 0:
mulai
x>y
and x>z ?
x, y, z
x>y
and
x>z ?
max = z
mak = y
max = x
selesai
end.
Pembandingan ini tentu saja menjadi sangat kompleks bila bilangan yang di bandingkan
lebih dari 3. sebagai alternatif, alogaritma di bawah ini memberikan penyelesaian lebih baik.
Idenya : bila kita punya satu bilangan maka bilangan tersebut pastilah terbesar (atau terkecil ),
karena memang hanya sebuah bilangan saja. Bilangan berikutnya tinggal di bandingkan
dengan nilai terbesar yang saat ini diperoleh.
Alogaritma 3.2.b
Alogaritma Nilai Maksimum
{Membaca tiga buah bilangan bulat, menentukan bilangan terbesar diantara tiga buah
Bilangan tersebut dan menampilkannya ke layar}
Deklarasi
X,y,z : integer
Max : integer
Dekripsi
Read (x,y,z)
Max ← x
If (y> maks) then maks ← y end if
If (z> maks) then maks ← z end if
Write (‘Bilangan terbesar adalah = ‘ maks)
Kasus
Carilah akar – akar kuadrat
Analisis
Persamaan kuadrat adalah persamaan dengan bentuk umum Ax2
+ Bx + c = 0 , dan
tentu saja dengan A # 0. akar persamaan kuadrat di peroleh dari rumus :
Bila b2
– 4ac < 0 akan di peroleh akar imajiner
Algoritma
Algoritma Persamaan Kuadrat
{Menghitung akar – akar persamaan kuadrat Ax^2+Bx+C = 0 }
Deklarasi
A,B,C : integer {koefisien – koefisien persamaan}
disk : longint {nilai diskriminan}
x1, x2 : real {nilai – nilai akar untuk disk > = 0}
Deskripsi
Read (A,B,C)
Disk ← B*B-4*C
If ( A = 0 ) then write (bukan persamaan kuadrat)
Else if disk >0then
x1← -B+sqrt(disk)/2*A
x2← -B-sqrt(disk)/2*A
else if disk = 0 then
x1← -B/2*A
x2← x1
else write (Akar imajiner)
end if
write (x1, x2)
Flow Chart 3.3
= 0 > 0
< 0
Transilasi 3.3
Bahasa Pascal Bahasa C
program Persamaan – Kua drat
uses wincrt ;
var A, B, C ; integer;
disk ; longint; xI, x2 ; real;
begin
write(‘Koefisien pangkat 2 ; ‘);
readln (A);
write(‘Koefisien pangkat I ; ‘);
realdn (B);
write(‘Koefisien pangkat 0 ; ‘);
realdn (C)
if A = 0 then begin
writeln (‘Bukan pers, kuadrat.’)
writeln(‘Harga akar = ‘,-C/B:I:I);
end
else begin
#include <stadio.h>
#include <math.h>
main ( ) {
int A, B, C;
long disk;
float x I, x2 ;
printf(“Koefisien pangkat 2 :”);
scanf(“%d”,&A);
printf(“Koefisien pangkat 1 :”);
scanf(“%d”,&B);
printf(“Koefisien pangkat 0 :”);
scanf(“%d”,&C);
if (A = = 0) {
printf (“bukan pers. Kuadrat.n”)
printf (“harga akar = %6.3f”,-CB)
}else{
mulai
A,B,C
Disk = B2
-4 A C
Disk
?
‘Akar
imajiner’
selesai
x1 = -B+ disk
2A
X2 = -B- disk
2A
x1 = -B
2A
x2 = x1
disk :=B*B – 4*A*C:
if disk > 0 then begin
x1 := -B+sqrt(disk)/(2*A)
x2 := -B-sqrt(disk)/(2*A)
writlen(diskriminan : disk)
writlen(x1 = ‘,x1:1:1);
writlen(x2 = ‘,x1:1:1);
end
else if disk – 0 then begin
x1 := -B / (2*A)
x2 := x1 ;
writlen(diskriminan : 0’)
writlen(x1 = ‘,x1:1:1);
writlen(x2 = ‘,x2:1:1);
end
else writeln(‘akar imajiner’)
end
end
Disk = B*B - 4*A*C:
if disk > 0 {
x1 := -B+sqrt(disk)/(2*A)
x2 := -B-sqrt(disk)/(2*A)
print (“diksriminan =%Idn”,disk)
printf (x1 = %6.3fn”,x1)
printf (x2 = %6.3fn”,x2)
} else if (disk = = 0) {
x1 := -B / (2*A)
x2 := x1 ;
printf(diskriminan : 0n’)
printf (x1 = %6.3fn”,x1)
printf (x2 = %6.3fn”,x2)
} else writeln(‘akar imajiner’)
{
Retrun 0 :
{
Output :
Kasus 3.4
Konversikan nilai angka menjadi nilai huruf dengan ketentuan sebagai berikut :
Nilai Angka Nilai huruf
0 – 20 E
21 – 40 D
41 – 60 C
61 – 80 B
81 – 100 A
Alogaritma
Alogaritma Konversi_Nilai
{Mengkonversikan nilai angka menjadi nilai huruf}
Deklarasi
Nilai : integer
Nilai_huruf : char
Koefisien pangkat 2 : 1
Koefisien pangkat 1 : -1
Koefisien pangkat 0 : -20
Diskriminan = 81
x1 = 5.5
x2 = -3.5
Deksripsi
Read (nilai)
If (nilai > 0) and ( nilai <=20) then nilai_huruf ← ‘E’
else (nilai > 20) and ( nilai <=40) then nilai_huruf ← ‘D’
else (nilai > 40) and ( nilai <=60) then nilai_huruf ← ‘C’
else (nilai > 60) and ( nilai <=80) then nilai_huruf ← ‘B’
else nilai_huruf ← ‘ A ‘
write (nilai_huruf)
Flow Chart 3.4
T
F
T
F
T
F
T
F
mulai
nilai
Nilai > 0
And nilai
<=20?
Nilai > 60
And nilai
<=80?
Nilai > 40
And nilai
<=60?
Nilai > 20
And nilai
<=40?
nilai_huruf ‘ A ‘
nilai_huruf
selesai
nilai_huruf ← ‘E’
nilai_huruf ← ‘E’
nilai_huruf ← ‘E’
nilai_huruf ← ‘E’
Tranlasi 3.4
Bahasa Pascal Bahasa C
Program Kon versi_Nilai
Uses wincrt
Var nilai : interger
nilai_ huruf : char ;
begin
write (‘masukkan nilai angka + ‘):
readln (nilai)
if (niali > 0) and (nilai < + 20) then
nilai_huruf :=’E’
else if ( nilai >20) and (nilai < + 40) then
nilai_huruf :=’D”
else if (niali>40) and ( niali < + 60) then
nilai_huruf := ‘C’
else if ( nilai>60) and ( nilai < = 80 ) then
nilai_huruf := ‘B’
else nilai_huruf :=’A’;
writeln (‘Nilai huruf =’,nilai_huruf;
end.
#include <stdio.h>
Main( ) {
Int nilai:
Char nilai_huruf;
Printf (“Masukkan nilai angka = “);
Scanf (“%d”,&nilai);
If (( nilai > 0) && (nilai < = 20))
Nilai_huruf = ‘E’;
Else if (( nilai > 20 ) && ( nilai < = 40))
Nilai_huruf = ‘D’;
Else if (( nilai > 40 ) && ( nilai < = 60))
Nilai_huruf = ‘C’;
Else if (( nilai > 60 ) && (nilai < = 80))
Nilai_huruf = ‘B’;
Else nilai_huruf = ‘A’;
Print(“Nilai huruf = %c”,nilai_huruf);
Return o ;
Tranlasi 3.4
Bahasa Pascal Bahasa C
Program Kon versi_Nilai
Uses wincrt
Var nilai : interger
nilai_ huruf : char ;
begin
write (‘masukkan nilai angka + ‘):
readln (nilai)
if (niali > 0) and (nilai < + 20) then
nilai_huruf :=’E’
else if ( nilai >20) and (nilai < + 40) then
nilai_huruf :=’D”
else if (niali>40) and ( niali < + 60) then
nilai_huruf := ‘C’
else if ( nilai>60) and ( nilai < = 80 ) then
nilai_huruf := ‘B’
else nilai_huruf :=’A’;
writeln (‘Nilai huruf =’,nilai_huruf;
end.
#include <stdio.h>
Main( ) {
Int nilai:
Char nilai_huruf;
Printf (“Masukkan nilai angka = “);
Scanf (“%d”,&nilai);
If (( nilai > 0) && (nilai < = 20))
Nilai_huruf = ‘E’;
Else if (( nilai > 20 ) && ( nilai < = 40))
Nilai_huruf = ‘D’;
Else if (( nilai > 40 ) && ( nilai < = 60))
Nilai_huruf = ‘C’;
Else if (( nilai > 60 ) && (nilai < = 80))
Nilai_huruf = ‘B’;
Else nilai_huruf = ‘A’;
Print(“Nilai huruf = %c”,nilai_huruf);
Return o ;

More Related Content

DOCX
modul algoritma Bab 7 record
DOCX
Tipe data
DOC
modul algoritma Bab 6
DOCX
Pembahasan ujian teori pemrograman pascal bagian 1
PDF
P1 2-tipe data
DOCX
Algoritma with pascal
PPTX
Manfaat Aplikasi Program Komputer dalam Pembelajaran Fisika
modul algoritma Bab 7 record
Tipe data
modul algoritma Bab 6
Pembahasan ujian teori pemrograman pascal bagian 1
P1 2-tipe data
Algoritma with pascal
Manfaat Aplikasi Program Komputer dalam Pembelajaran Fisika

What's hot (20)

PPT
Pertemuan iv
DOC
Lapak biseksi
PDF
Konsep Array_sns
PDF
Aray dan recrd
PPT
Limit fungsi
PDF
Soal Pascal OSN Komputer
PPTX
Soal dan bahasan Pascal
PDF
PPT
Algoritma matematika
PPTX
PPT
Kalkulus (bab 1)
DOCX
Analisis matlab
PDF
76110863 matlab
DOCX
Tutorial visual basic
PDF
Penggunaan turunan
PPTX
4 Menggambar Grafik Fungsi Dengan Matlab
PDF
Fungsi pecah pada aljabar
PPTX
3.6 pp
PDF
Latihan01 d76 politel_r01122007
PPT
Algoritma divide and conquer (lanjutan)
Pertemuan iv
Lapak biseksi
Konsep Array_sns
Aray dan recrd
Limit fungsi
Soal Pascal OSN Komputer
Soal dan bahasan Pascal
Algoritma matematika
Kalkulus (bab 1)
Analisis matlab
76110863 matlab
Tutorial visual basic
Penggunaan turunan
4 Menggambar Grafik Fungsi Dengan Matlab
Fungsi pecah pada aljabar
3.6 pp
Latihan01 d76 politel_r01122007
Algoritma divide and conquer (lanjutan)
Ad

Similar to modul algoritma Bab 3 (20)

PPTX
0.3 Algoritma dan Pemrogramman Seleksi.pptx
PPTX
Algoritma pemrograman 7
PPTX
Algo temu 5 statement pemilihan
PDF
4 fungsi if
PPT
Penggunaan if dan teknik dasar bagian 3
PPT
Penggunaan if dan teknik dasar bagian 1
DOCX
modul algoritma Bab 2
DOC
modul algoritma Bab 4
PPTX
Algoritma dan pemrograman 1
PPT
Flowchart
PPT
Penggunaan if dan teknik dasar bagian 2
PPT
Pengenalan c++ bagian 3
PDF
Alpro referensi
PDF
Algoritma Basic
PPTX
Pemrograman dasar
DOCX
PROGKOM AVE, MAX,MIN
PDF
C04 struktur percabangan_22
PDF
Materi Pelajaran Program Pascal
PPTX
Materi algoritma dan pemrograman insan unggul new
PDF
Program Pascal
0.3 Algoritma dan Pemrogramman Seleksi.pptx
Algoritma pemrograman 7
Algo temu 5 statement pemilihan
4 fungsi if
Penggunaan if dan teknik dasar bagian 3
Penggunaan if dan teknik dasar bagian 1
modul algoritma Bab 2
modul algoritma Bab 4
Algoritma dan pemrograman 1
Flowchart
Penggunaan if dan teknik dasar bagian 2
Pengenalan c++ bagian 3
Alpro referensi
Algoritma Basic
Pemrograman dasar
PROGKOM AVE, MAX,MIN
C04 struktur percabangan_22
Materi Pelajaran Program Pascal
Materi algoritma dan pemrograman insan unggul new
Program Pascal
Ad

More from Eko Widyanto Napitupulu (11)

PDF
klasifikasi-komputer
PDF
Soal un paket b 2009
PDF
Indonesian edition
DOCX
modul algoritma Bab 5
DOCX
modul algoritma Bab 1
PPTX
Presentasi pkn "HAM"
PPTX
Resistor paralel
PPTX
pengertian ihsan dan masalah ihsan
PDF
perangkat-keras
PDF
perangkat-lunak
DOCX
Fungsi otak manusia
klasifikasi-komputer
Soal un paket b 2009
Indonesian edition
modul algoritma Bab 5
modul algoritma Bab 1
Presentasi pkn "HAM"
Resistor paralel
pengertian ihsan dan masalah ihsan
perangkat-keras
perangkat-lunak
Fungsi otak manusia

Recently uploaded (11)

PDF
6754aa176b39b (1).pdf data analisis acara
PPTX
Paper sirosis hepatis dr siti taqwa.jdusp
PDF
LK - SIMULASI SIKLUS INKUIRI KOLABORATIF.pdf
PDF
GERUDUK MJKN aplikasi mobile JKN persentation
PPTX
EFEKTIVITAS EKSTRAK DAUN INDIGOFERA.pptx
PPTX
PRESNTASI pembangunan perumahan komersil dua lantai
PPTX
Introduction FastAPI for Professional and Student
PPTX
Dokter):6:’syaksudysnnwysydyejeushx bshske ueie
PPTX
Flowchart Pengaplikasian Sistem Arduino.pptx
PPTX
Gagal Ginjal Akut GHINA SELVIRA .pptx
PDF
Llama Implementations from Scratch - Avalon AI.pdf
6754aa176b39b (1).pdf data analisis acara
Paper sirosis hepatis dr siti taqwa.jdusp
LK - SIMULASI SIKLUS INKUIRI KOLABORATIF.pdf
GERUDUK MJKN aplikasi mobile JKN persentation
EFEKTIVITAS EKSTRAK DAUN INDIGOFERA.pptx
PRESNTASI pembangunan perumahan komersil dua lantai
Introduction FastAPI for Professional and Student
Dokter):6:’syaksudysnnwysydyejeushx bshske ueie
Flowchart Pengaplikasian Sistem Arduino.pptx
Gagal Ginjal Akut GHINA SELVIRA .pptx
Llama Implementations from Scratch - Avalon AI.pdf

modul algoritma Bab 3

  • 1. BAB 3 PEMILIHAN / KONTROL PROGRAM A. Pendahuluan Salah satu kemampuan komputer adalah dapat melakukan proses pemilihan dari beberapa alternatif sesuai dengan kondisi yang diberikan. Dalam persoalan sehari- haripun, hampir selalu ada kondisi dimana kita harus memilih, diantara alternatif – alternatif yang ada. Sebagai contoh, seorang mahasiswa memperoleh nilai 75. apakah dengan nilai tersebut mahasiswa tersebut itu lulus ? Jika batas kelulusan minimal 60 maka mahasiswa tersebut lulus ujian. Jika kurang dari 60 maka mahasiswa tersebut tidak lulus ujian. B. Pemograman Bahasa pemograman seperti Pascal maupun C juga mendukung pernyataan bersyarat . Tata cara penulisannya tersaji berikut ini : Algoritmik Pascal C if (kondisi) then aksi if (kondisi) then aksi; if (kondisi) aksi; end if if (kondisi) then aksi I if (kondisi) then aksi I if (kondisi) aksi I; else else Else aksi 2 aksi 2 aksi 2 end if pernyataan majemuk begin ….. end { …….. } Baik aksi, aksi I, maupun aksi2 bisa merupakan pernyataan tunggal maupun pernyataan majemuk. Selain itu, bila kondisi bertipe ordinal, seperti integer, byte atau yang lain (kecuali real atau string), bisa digunakan pernyataan di bawah ini : Algeritmik Pascal C case (nama) case (nama) of switch (nama) { <label1> : aksi I label 1 : aksi I; case label I : aksi1 ; break <label2> : aksi 2 label 2 : aksi 2; case label 2 : aksi2 ; break <label3> : aksi 3 label 3 : aksi 3; case label 3 : aksi3 ; break …. …. …. <labelN> : aksiN label N : aksiN; case labelN : aksiN ; break else : aksiX else aksiX ; default : aksiX endcase end : } dimana konstantaI sampai dengan konstantaN dapat pula berupa range suatu nilai, misalnya untuk menyatakan 60 < nilai ≤ 80 dapat ditulis sebagai 61..80 (dengan menggunakan operator range..)
  • 2. C. Operator Relasional Biasanya suati kondisi dinyatakan dengan membandingkan suatu keadaan dengan suatu nilai. Untuk itu diperlukan suatu operator perbandingan yaitu : Algoritmik Arti Pascal C < Lebih kecil < < > Lebih besar > > <= Lebih kecil sama dengan <= <= >= Lebih besar sama dengan >= >= ≠ Tidak sama dengan <> != = Sama dengan = = = or atau or ║ and dan and & & D. Tabel Kebenaran Operator Or dan And Operator or dan and termasuk termasuk operator binari, yaitu operator yang memerlukan dua operan, dimana setiap operan bisa bernilai benar atau salah. Untuk itu masing – masing mempunyai 4 kemungkin an nilai, yaitu : p q p or q benar benar benar benar salah benar salah benar benar salah salah salah Kasus 3.1 Tentukan bilangan tersebesar antara dua bilangan bulat. Algoritma 3.1. Alogaritma Maksimum { Menentukan nilai terbesar antara dua bilangan bulat } Deklarasi A , B : intiger p q p or q bena r bena r benar bena r salah salah salah bena r salah salah salah salah Dekripsi Read (A,B) If (A,B) then write (‘bilangan terbesar adalah = ‘ A) Else write (‘bilangan terbesar adalah = ‘ B) endif
  • 3. Flow Chart 3.1 Tranlasi 3.1 Bahasa Pascal Bahasa C program maksimum : uses wincrt : var A.B : real begin write (‘bilangan pertama = ‘) readln (A) write (‘bilangan kedua = ‘) readln (B) if (A > B) then writeln (‘Bilangan Terbesar A :’,A:4:0) else writeln (‘Bilangan Terbesar B’,B:4:0) end. #include <stdio.h> main () { int A, B printf (bilangan pertama = “) scanf (“%d”,&A): printf (“bilangan kedua = “) scanf (“%d”,&B): if (a>b) printf (“bilangan terbesar : %d”,A): else printf (“bilangan terbesar : %d”,B): retrun 0: Kasus 3.2 Tentukan bilangan terbesar antara bilangan bulat. Alogaritma 3.2.a Alogaritma Nilai _Maksimum {Membaca tiga buah bilangan bulat, menentukan bilangan terbesar diantara tiga buah bilangan tersebut dan menampilkannya ke layar} Deklarasi X,y,z : integer Mulai A , B A> B? Max=B selesai Max=A
  • 4. Dekripsi Read (x,y,z) read (x>y)and (x<z) then write (‘bilangan terbesar adalah = ,x) else if (x>y)and (x<z) then write (‘bilangan terbesar adalah = ,y) else write (‘bilangan terbesar adalah = ,z) end if Flow Chart 3.2 Tidak Tidak Tranlasi 3.2 Bahasa Pascal Bahasa C program maksimum : uses wincrt : var x, y, z : integer begin write (‘bilangan pertama = ‘) readln (x) write (‘bilangan kedua = ‘) readln (y) write (‘bilangan ketiga = ‘) readln (z) if (x>y)and (x<z) then write (‘bilangan terbesar adalah =’,x) else if (y>x)and (y<z) then writeln (bilangan terbesar : y) else write (bilangan terbesar : z) #include <stdio.h> main () { int x, y, z printf (bilangan pertama = “) scanf (“%d”,&x): printf (“bilangan kedua = “) scanf (“%d”,&y): printf (“bilangan ketiga = “) scanf (“%d”,&z): if (x>y) &&(x>z) printf (“bilangan terbesar : %d”,x): else if (y>x) &&(y>z) printf (“bilangan terbesar : %d”,y): else printf (“bilangan terbesar : %d”,z): retrun 0: mulai x>y and x>z ? x, y, z x>y and x>z ? max = z mak = y max = x selesai
  • 5. end. Pembandingan ini tentu saja menjadi sangat kompleks bila bilangan yang di bandingkan lebih dari 3. sebagai alternatif, alogaritma di bawah ini memberikan penyelesaian lebih baik. Idenya : bila kita punya satu bilangan maka bilangan tersebut pastilah terbesar (atau terkecil ), karena memang hanya sebuah bilangan saja. Bilangan berikutnya tinggal di bandingkan dengan nilai terbesar yang saat ini diperoleh. Alogaritma 3.2.b Alogaritma Nilai Maksimum {Membaca tiga buah bilangan bulat, menentukan bilangan terbesar diantara tiga buah Bilangan tersebut dan menampilkannya ke layar} Deklarasi X,y,z : integer Max : integer Dekripsi Read (x,y,z) Max ← x If (y> maks) then maks ← y end if If (z> maks) then maks ← z end if Write (‘Bilangan terbesar adalah = ‘ maks) Kasus Carilah akar – akar kuadrat Analisis Persamaan kuadrat adalah persamaan dengan bentuk umum Ax2 + Bx + c = 0 , dan tentu saja dengan A # 0. akar persamaan kuadrat di peroleh dari rumus : Bila b2 – 4ac < 0 akan di peroleh akar imajiner Algoritma Algoritma Persamaan Kuadrat {Menghitung akar – akar persamaan kuadrat Ax^2+Bx+C = 0 } Deklarasi A,B,C : integer {koefisien – koefisien persamaan} disk : longint {nilai diskriminan} x1, x2 : real {nilai – nilai akar untuk disk > = 0} Deskripsi Read (A,B,C) Disk ← B*B-4*C If ( A = 0 ) then write (bukan persamaan kuadrat) Else if disk >0then x1← -B+sqrt(disk)/2*A x2← -B-sqrt(disk)/2*A else if disk = 0 then x1← -B/2*A x2← x1 else write (Akar imajiner) end if write (x1, x2)
  • 6. Flow Chart 3.3 = 0 > 0 < 0 Transilasi 3.3 Bahasa Pascal Bahasa C program Persamaan – Kua drat uses wincrt ; var A, B, C ; integer; disk ; longint; xI, x2 ; real; begin write(‘Koefisien pangkat 2 ; ‘); readln (A); write(‘Koefisien pangkat I ; ‘); realdn (B); write(‘Koefisien pangkat 0 ; ‘); realdn (C) if A = 0 then begin writeln (‘Bukan pers, kuadrat.’) writeln(‘Harga akar = ‘,-C/B:I:I); end else begin #include <stadio.h> #include <math.h> main ( ) { int A, B, C; long disk; float x I, x2 ; printf(“Koefisien pangkat 2 :”); scanf(“%d”,&A); printf(“Koefisien pangkat 1 :”); scanf(“%d”,&B); printf(“Koefisien pangkat 0 :”); scanf(“%d”,&C); if (A = = 0) { printf (“bukan pers. Kuadrat.n”) printf (“harga akar = %6.3f”,-CB) }else{ mulai A,B,C Disk = B2 -4 A C Disk ? ‘Akar imajiner’ selesai x1 = -B+ disk 2A X2 = -B- disk 2A x1 = -B 2A x2 = x1
  • 7. disk :=B*B – 4*A*C: if disk > 0 then begin x1 := -B+sqrt(disk)/(2*A) x2 := -B-sqrt(disk)/(2*A) writlen(diskriminan : disk) writlen(x1 = ‘,x1:1:1); writlen(x2 = ‘,x1:1:1); end else if disk – 0 then begin x1 := -B / (2*A) x2 := x1 ; writlen(diskriminan : 0’) writlen(x1 = ‘,x1:1:1); writlen(x2 = ‘,x2:1:1); end else writeln(‘akar imajiner’) end end Disk = B*B - 4*A*C: if disk > 0 { x1 := -B+sqrt(disk)/(2*A) x2 := -B-sqrt(disk)/(2*A) print (“diksriminan =%Idn”,disk) printf (x1 = %6.3fn”,x1) printf (x2 = %6.3fn”,x2) } else if (disk = = 0) { x1 := -B / (2*A) x2 := x1 ; printf(diskriminan : 0n’) printf (x1 = %6.3fn”,x1) printf (x2 = %6.3fn”,x2) } else writeln(‘akar imajiner’) { Retrun 0 : { Output : Kasus 3.4 Konversikan nilai angka menjadi nilai huruf dengan ketentuan sebagai berikut : Nilai Angka Nilai huruf 0 – 20 E 21 – 40 D 41 – 60 C 61 – 80 B 81 – 100 A Alogaritma Alogaritma Konversi_Nilai {Mengkonversikan nilai angka menjadi nilai huruf} Deklarasi Nilai : integer Nilai_huruf : char Koefisien pangkat 2 : 1 Koefisien pangkat 1 : -1 Koefisien pangkat 0 : -20 Diskriminan = 81 x1 = 5.5 x2 = -3.5 Deksripsi Read (nilai) If (nilai > 0) and ( nilai <=20) then nilai_huruf ← ‘E’ else (nilai > 20) and ( nilai <=40) then nilai_huruf ← ‘D’ else (nilai > 40) and ( nilai <=60) then nilai_huruf ← ‘C’ else (nilai > 60) and ( nilai <=80) then nilai_huruf ← ‘B’ else nilai_huruf ← ‘ A ‘ write (nilai_huruf)
  • 8. Flow Chart 3.4 T F T F T F T F mulai nilai Nilai > 0 And nilai <=20? Nilai > 60 And nilai <=80? Nilai > 40 And nilai <=60? Nilai > 20 And nilai <=40? nilai_huruf ‘ A ‘ nilai_huruf selesai nilai_huruf ← ‘E’ nilai_huruf ← ‘E’ nilai_huruf ← ‘E’ nilai_huruf ← ‘E’
  • 9. Tranlasi 3.4 Bahasa Pascal Bahasa C Program Kon versi_Nilai Uses wincrt Var nilai : interger nilai_ huruf : char ; begin write (‘masukkan nilai angka + ‘): readln (nilai) if (niali > 0) and (nilai < + 20) then nilai_huruf :=’E’ else if ( nilai >20) and (nilai < + 40) then nilai_huruf :=’D” else if (niali>40) and ( niali < + 60) then nilai_huruf := ‘C’ else if ( nilai>60) and ( nilai < = 80 ) then nilai_huruf := ‘B’ else nilai_huruf :=’A’; writeln (‘Nilai huruf =’,nilai_huruf; end. #include <stdio.h> Main( ) { Int nilai: Char nilai_huruf; Printf (“Masukkan nilai angka = “); Scanf (“%d”,&nilai); If (( nilai > 0) && (nilai < = 20)) Nilai_huruf = ‘E’; Else if (( nilai > 20 ) && ( nilai < = 40)) Nilai_huruf = ‘D’; Else if (( nilai > 40 ) && ( nilai < = 60)) Nilai_huruf = ‘C’; Else if (( nilai > 60 ) && (nilai < = 80)) Nilai_huruf = ‘B’; Else nilai_huruf = ‘A’; Print(“Nilai huruf = %c”,nilai_huruf); Return o ;
  • 10. Tranlasi 3.4 Bahasa Pascal Bahasa C Program Kon versi_Nilai Uses wincrt Var nilai : interger nilai_ huruf : char ; begin write (‘masukkan nilai angka + ‘): readln (nilai) if (niali > 0) and (nilai < + 20) then nilai_huruf :=’E’ else if ( nilai >20) and (nilai < + 40) then nilai_huruf :=’D” else if (niali>40) and ( niali < + 60) then nilai_huruf := ‘C’ else if ( nilai>60) and ( nilai < = 80 ) then nilai_huruf := ‘B’ else nilai_huruf :=’A’; writeln (‘Nilai huruf =’,nilai_huruf; end. #include <stdio.h> Main( ) { Int nilai: Char nilai_huruf; Printf (“Masukkan nilai angka = “); Scanf (“%d”,&nilai); If (( nilai > 0) && (nilai < = 20)) Nilai_huruf = ‘E’; Else if (( nilai > 20 ) && ( nilai < = 40)) Nilai_huruf = ‘D’; Else if (( nilai > 40 ) && ( nilai < = 60)) Nilai_huruf = ‘C’; Else if (( nilai > 60 ) && (nilai < = 80)) Nilai_huruf = ‘B’; Else nilai_huruf = ‘A’; Print(“Nilai huruf = %c”,nilai_huruf); Return o ;