modul algoritma Bab 2

Post on 20-Jul-2015

49 views 3 download

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.