modul algoritma bab 2

9
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)

Upload: eko-widyanto-napitupulu

Post on 20-Jul-2015

49 views

Category:

Data & Analytics


3 download

TRANSCRIPT

Page 1: 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)

Page 2: modul algoritma Bab 2

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

Page 3: modul algoritma Bab 2

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

Page 4: modul algoritma Bab 2

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

Page 5: modul algoritma Bab 2

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

Page 6: modul algoritma Bab 2

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)

Page 7: modul algoritma Bab 2

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

Page 8: modul algoritma Bab 2

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

Page 9: modul algoritma Bab 2

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.