modul algoritma Bab 2
-
Upload
eko-widyanto-napitupulu -
Category
Data & Analytics
-
view
49 -
download
3
Transcript of modul algoritma Bab 2
BAB II
SEKUEN
Sekuen (sequence) adalah sederetan pernyataan – pernyataan urutan dan pelaksanaan
eksekusinya runtut, yang lebih dahulu ditemukan (dibaca) akan dikerjakan (dieksekusi) lebih
dulu. Bila urutan pernyataan dibalik, akan mempunyai makna yang berbeda.
A. Operator Aritmetika
Rumus – rumus aljabar biasanya melibatkan :
Aritmetika Arti Pascal C
+ Penjumlahan + +
- Pengurangan - -
Div Pembagian integer Div /
modulo Sisa pembagian Mod %
B. Pemrograman
Dalam bahasa Pascal dan bahasa C, pernyataan yang berkaitan dengan operasi dasar
adalah sebagai berikut :
Pernyataan Algoritmik Bahasa Pascal Bahasa C
input read read atau readln scanf
output write write atau writeln printf
penugasan ← := =
akhir pernyataan ; ;
Fungsi yang sering digunakan
Fungsi Arti
Pascal C
Sqr pow kuadrat
Sqrt sqrt akar kuadrat
In log logaritma alami
Exp exp eksponensial
Contoh 2.1.
Hitunglah jumlah dari 3 buah bilangan bulat!
Algoritma mencari jumlah 3 bilangan bulat {menghitung jumlah 3 bilangan bulat, algoritma menerima masukan 3 buah bilangan bulat,
menjumlahkan, lalu mencetak hasil penjumlahannya}
Deklarasi
a, b, c : integer {input}
Jumlah : integer {output}
Deskripsi
read (a, b, c)
jumlah ← a + b + c write (jumlah)
Flowchart 2.1
Translasi 2.1
Bahasa Pascal Bahasa C
program jumlah_bilangan;
uses wincrt; var a,b,c,jumlah:integer;
begin
write(‘Bilangan 1 : ‘);readln(a); write(‘Bilangan 2 : ‘);readln(b);
write(‘Bilangan 3 : ‘);readln(c); jumlah:=(a+b+c);
write(‘jumlah 3 bilangan = ‘) write(jumlah):
end.
#include <stdio.h>
main() {
int a,b,c,jumlah;
printf(“Bilangan 1 : “);scanf(“%d”,&a); printf(“Bilangan 2 : “);scanf(“%d”,&b); printf(“Bilangan 3 : “);scanf(“%d”,&c);
jumlah = (a + b + c); printf(“jumlah 3 bilangan = %d”,jumlah);
return 0; }
Contoh 2.2.
Buat algoritma dan program untuk mencar hasil kali dari dua buah bilangan!
Algoritma hasil_kali {mencari hasil kali dari dua buah bilangan bulat, algoritma menerima masukan nilai bilangan1 dan bilangan2, lalu mengalikan kedua bilangan tersebut, dan mencetakk hasil
kalinya}
Deklarasi
a,b : integer (input)
hasil : integer (output)
Deskripsi
read(a,b)
hasila*b write(hasil)
Mulai
Input
Jumlah=
A+B+C
Cetak Jumlah
End
Flowchart 2.2.
Translasi 2.2.
Bahasa Pascal Bahasa C
program hasil_kali;
uses wincrt;
var a,b,hasil : integer; begin
write(‘Bilangan 1 := ‘)readln(a); write(‘Bilangan 2 := ‘)readln(b); hasil:= a*b;
write(“Hasil kalinya = ‘,hasil); end.
#include <stdio.h> main() {
int a,b,hasil; printf(“Bilangan 1 : “);scanf(“%d”,&a);
printf(“Bilangan 2 : “);scanf(“%d”,&b); hasil = a*b; printf(“hasil kalinya = %d”, hasil);
return 0; }
Contoh 2.3.
Buat allgoritma dan program untuk menghitung konversi dari m ke cm dan inchi !
Analisis :
Konversi satuan jarak ditentukan sebagai berikut:
1 meter = 100 cm
1 inci = 2.54 cm
Mulai
Input A, B
Hasil = A*B
Cetak Jumlah
End
Algoritma 2.3.
Algorima konversi jarak
{mengkonversi mulai jarak dari meter ke cm dari inci, masukkan m ke cm, lalu masukkan ke inci}
Deklarasi
m : real(input)
cm :real(output) inci : real(output)
Deskripsi
read(m) cm ← m*100 inci ←m*100/ 2.54
write(cm) write(inchi)
Flowchart 2.3.
Translasi 2.3.
Bahasa Pascal Bahasa C
program konversi_jarak;
uses wincrt;
var m, cm, inci: real ; begin
write(‘Ukuran jarak dalam meter :’); readln(m); cm:=m*100;
writeln(‘Ukuran dalam cm = ‘,cm:4:2); inci:=m*100/2.54;
writeln(‘Ukuran dalam inci = ‘,inci:4:2); end.
#include <stdio.h> main() {
float m, cm, inci; printf(“Ukuran jarak dalam meter : “);
scandf(“%f”,&m); cm = m * 100; printf(“Ukuran dalam cm =
%4.2f\n”,cm); i = m * 100 / 2.54;
printf(“Ukuran dalam inci =%4.2f”,inci); return 0;
}
Mulai
M
CM = M*100
1 = M*100/ 2.5
CM, 1
End
Contoh 2.4.
Carilah keliling dan luas lingkarang yang telah diketahui jari – jarinya.
Analisis :
Untuk mencari keliling dan luas lingkaran digunakan rumus :
Keliling =2 𝝅 𝒓
Luas = 𝝅 𝒓𝟐
dengan 𝜋 = 3.14 dan r adalah jari – jari lingkaran.
Algoritma 2.4.
Algorima Lingkaran {Mencari keliling dan luas lingkaran yang telah diketahui jari – jarinya (missal r) }.
Deklarasi
Konstanta phi = 3.14
rrr : integer {input} keliling, luas : real (output)
Deskripsi
read (r)
keliling ← 2*phi*r luas ← phi*r*r
write(,keliling, luas)
Flowchart 2.4.
Mulai
r
Keliling = 2*phi*r
Luas = phi*r*r
Keliling, luas
Selesai
Translasi 2.4.
Bahasa Pascal Bahasa C
program lingkaran;
uses wincrt; const phi = 3.14; var r : integer;
keliling, luas : real; begin
write(‘jari – jari lingkaran : ‘); readln(r); keliling := 2*phi*r;
luas :=phi*sqr(r); writeln(‘keliling : ‘,keliling :6:3);
writeln(‘luas : ‘,luas:6:3); end.
#include <stdio.h>
main () {
float phi = 3.14; int r;
float keliling, luas; printf(“jari – jari lingkaran : “);
scandf(“%d”,&r); keliling = 2*phi*r; luas = phi*r*r;
printf(“keliling =%f\n”, keliling); printf(“luas = %f\n”, luas);
return 0; }
Kasus 2.5.
Crilah konversi suhu dari Celcius menjadi Reamur, Fahrenheit dan Kelvin.
Analisis :
Rumus konversi dari Celcius menjadi Reamur, Fahrenheit dan Kelvin adalah sebagai berikut :
𝑟𝑒𝑎𝑚𝑢𝑟 = 4
5 𝑐𝑒𝑙𝑐𝑖𝑢𝑠
𝑓𝑎ℎ𝑟𝑒𝑛ℎ𝑒𝑖𝑡 = 9
5𝑐𝑒𝑙𝑐𝑖𝑢𝑠 + 32
𝑘𝑒𝑙𝑣𝑖𝑛 = 𝑐𝑒𝑙𝑐𝑖𝑢𝑠 + 273
Algoritma 2.5.
Algoritma Menghitung_Konversi_Suhu {Membaca integer derajat Celcius (C), menghitung ekivalensinya dalam derajat Reamur (R),
Fahrenheit (F), dan Kelvin (K) dan menampilkannya di layar}
Deklarasi
C : integer {derajat Celcius}
R : real {derajat Reamur} F : real {derajat Fahrenheit} K : real {derajat Kelvin}
Deskripsi
Read (C) R ← 4/5 * C { Rumus R = 4/5 * C }
F ← 9/8 *C * 32 { Rumus F = 9/5 * C + 32 } K ← C + 273 { Rumus K = C + 273 } write (R,F,K)
Flowchart 2.5.
Translasi 2.5.
Bahasa Pascal Bahasa C
Program konversi_suhu;
uses wincrt; var c : integer;
r, f, k : real;
begin
write(‘Masukkan suhu derajat celcius : ‘);
readln(c); r :=4/5 * c; f :=9/5 * c + 32;
k := c + 273; writeln(c,’ celcius =’,r:6:3,’ reamur’);
writeln(c,’ celcius =’,f:6:3,’ fahrenheit’); writeln(c, celcius =’,k:6:3,’ kelvin’);
end.
#include <stdio.h>
Main () {
int c; float r, f, k;
printf(“Masukkan suhu derajat celcius : “); scandf(“%d”,&c);
r = 4/5.0 * c; f = 9/5.0 * c + 32; k = c + 273;
printf(“%d celcius = %6.3f reamur\n”, c, r);
printf(“%d celcius = %6.3f fahrenheit\n”, c, f);
printf(“%d celcius = %6.3f kelvin\n”, c,
k); return 0;
}
Contoh 2.6.
Setiap bilangan bulat selalu bisa ditulis dalam bentuk :
M = qn + r
dengan n < m, q adalah kuosen dan r adalah residu (sisa). Buatlah algoritma untuk
merepresentasikan m dan dalam bentuk m = qn + r. sebagai contoh :
Integer m = 73 dan n = 7 dapat ditulis sebagai 73 =10x7 + 3, yaitu r = 3.
Analisi :
Mulai
c
r = 4/5 * c f = 9/5 * c + 32
k = c + 273
r, f, k
Selesai
Input : n dan m (n<m),
Kuosen q dapat diperoleh dengan pembagian integer. Operator yang tepat untuk itu adalah div,
sedangkan r dapat diperoleh dengan menggunakan operasi modulo.
Output q dan r dalam bentuk m = qn + r.
Algoritma 2.6.
Algoritma Aljabar {membaca masukkan niai n dan m dengan n<m kemudian menuliskan outputnya berbentuk m = qn + r }
Deklarasi
M, n : integer {input} Q, r : integer {output}
Deskripsi
Read (m, n) (n, m) Q ← m div n {mendapatkan nilai q}
R ← m mod n {mendapatkan nilai r} Write (q, r)
Flowchart 2.6.
Mulai
M, n
q = m div n r = m mod n
Q, r M = q.n + r
Selesai
Translasi 2.6.
Bahasa Pascal Bahasa C
program aljabar;
uses wincrt; var m, n : integer; {input}
q, r : integer; {output}
begin
writeln (‘Membaca input nilai n dan m
dengan ketentuan n<m,’); writeln (‘dan menampilkan output berbentuk
m = qn + r.’);
writeln; write (‘Masukkan nilai n = ‘);
readln (n); write (‘Masukkan nilai m = ‘); readln (m);
writeln (‘Operasi m = qn + r’); q := m div n;
r := m mod n; writeln (‘Nilai q adalah = ‘,q); writeln (‘Nilai r adalah = ‘,r); writeln;
writeln (‘Jadi, ‘,m,’ =’,q,’ x ‘,n,’ + ‘,r); end.
#include <stdio.h>
Main () {
int m, n; /* input */
int q, r; /* output */ printf(“Membaca input nilai n dan m
dengan ketentuan n<m\n”); printf(“dan menampilkan output
berbentuk m = qn + r.\n\n”);
printf(“Masukkan nilai n = “); scanf(“%d”,&n);
printf(“Masukkan nilai m = “); scandf(“%d’,&m); printf(Operasi m = qn + r\n”);
q = m / n; / * mendapatkan nilai q */
r = m % n; / * mendapatkan nilai r * /
printf(“Nilai q adalah = %d\n”,q);
printf(“Nilai r adalah = %d\n\n”,r); printf(“jadi, %d = %d x %d +
%d”,m,q,n,r); return 0;
}
Dari translasi ke dalam bahasa Pascal dan C di atas terlihat bahwa hampir tidak ada
perbedaan yang signifikan antara bahasa Pascal dan bahasa C. untuk itu, algoritma pada dasarnya
tidak tergantung pada suatu bahasa pemrograman tertentu. Secara sederhana, bila menguasai
suatu bahasa pemrogaraman tertentu, konversi ke dalam bahasa pemrograman yang lain
hnayalah menyesuaiakan dengan “dialek” (aturan – aturan) bahasa yang bersangkutan. Dengan
demikian, yang terpenting adalah bagaimana mengkonstruksikan algoritma yang benar.