algoritma dan struktur data.doc

24
Algoritma & Struktur Data (hansmichael.com) Pertemuan I, 02 September 2010 Alat bantu dalam menyelesaikan suatu masalah dalam pemrograman adalah flowchart. Terdiri dari: - Sequence - Selection - Iteration Pertemuan 23 September 2010 Cetak nilai C=1-10 Cetak Deret Fibonesi -> 0,1,1,2,3,5,8,13,21,34,………..n Y C <- C <= 10 C <- C Write (C) Write (C) FOR C=1 to 10 C atau a <- 0 b <-1 Write (a,b) c <- Write (c) a <- b b <- c

Upload: lekhanh

Post on 15-Dec-2016

262 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: Algoritma dan Struktur Data.doc

Algoritma & Struktur Data (hansmichael.com)

Pertemuan I, 02 September 2010Alat bantu dalam menyelesaikan suatu masalah dalam pemrograman adalah flowchart.Terdiri dari: - Sequence

- Selection- Iteration

Pertemuan 23 September 2010

Cetak nilai C=1-10

Cetak Deret Fibonesi -> 0,1,1,2,3,5,8,13,21,34,………..n

Y

C <- 1

C <= 10

C <- C + 1

Write (C)

Write (C)

FOR C=1 to 10

C

atau

a <- 0b <-1

Write (a,b)

c <- a+b

Write (c)

a <- bb <- c

Page 2: Algoritma dan Struktur Data.doc

- Perintah berikut apabila di cetak di java akan menghasilkan “Out of Memory”

For (;;) System.Out.Println (“UNNAR”)

- Kerjakan deret vibonesi dengan VBScript:

<HTML><BODY> <SCRIPT> a=0 b=1 document.write a & “, “ & b c=a+b document.write c a=b b=c </SCRIPT></BODY></HTML>

//mencari keliling Persegi Panjang<SCRIPT> p=8 //cint(Inputbox(“Masukkan Panjang”)) l=5 //cint(Inputbox(“Masukkan Lebar”)) kl = 2 * (p+l) ls = p * l

Document.write “Keliling “ & kl & “cm<BR>” Document.write “Luas “ & ls & “cm<sup>2</sup><BR>”</SCRIPT>

- Didalam bahasa java script terdapat perintah:1. Cint = untuk mengubah string ke bentuk integer2. Csng = untuk mengubah string ke bentuk single / pecahan3. Clong = untuk mengubah string ke bentuk long integer

Page 3: Algoritma dan Struktur Data.doc

30 September 2010Mencetak Bilangan Positif, Negatif dan Nol

<SCRIPT Language=”VbScript”> X=cint(Inputbox(“Masukkan X:”)) if X > 0 then k=”positif” else if X < 0 then K = “Negatif” else K = “Nol” end if document.write “K Bilangan: “ & k</SCRIPT>

N

N

Y

Y

k = “nol”

X > 0

C <- C + 1

Read (x)

X < 0

k = “negatif”

k = “positif”

Write (k)

Page 4: Algoritma dan Struktur Data.doc

//Flowchart mencari nilai terbesar

Bisa disederhanakan menjadi

Y

N

N

YY

N

N

Y

Y

A > B

Read (A,B,C)

A > C

max <- A max <- C

B > C

max <- B max <- C

Write (max)

Read (A,B,C)

max <- A

B < max

C > max

max <- A

max <- C

N

Page 5: Algoritma dan Struktur Data.doc

Y

Y

Y

N

N

N

START

Read (A,B,C)

max <- AB1 <- BB2 <- C

B > max

C > max

Max=B1+B2

Write bukan TP

END

max <- BB1 <- AB2 <- C

max <- CB1 <- AB2 <- C

Write TP

Page 6: Algoritma dan Struktur Data.doc

A7 a) Mencetak Ratusan, Puluhan, Satuan

<SCRIPT Langugae=”VBScript”> n=clong(inputbox(“Masukkan N:”)) R= (n\100) MOD 10 P= (n\10) MOD 10 S= n MOD 10 //atau (n\1) MOD 10Document.write “Ratusan :” & R & “<BR>”Document.write “Puluhan :” & P & “<BR>”Document.write “Satuan :” & S & “<BR>”</SCRIPT>

b)<SCRIPT Language=”VBScript”>n=cint(Inputbox(“Masukkan N:”)i=cint(Inputbox(“Berapa Digit dari Kanan: ”)d=n\(10^(i-1)) MOD (10^(i-1))Document.write “n :” & n & “<BR>”Document.write i “Digit dari kanan adalah:” & d</SCRIPT>

TUGAS=B1, B4, B5, B6, B7, B9, B10, B11, B12, B13

Page 7: Algoritma dan Struktur Data.doc

07 Oktober 2010, ALPRO

<SCRIPT>C=1DO

Document.write C & “,”C=C+1

LOOP</SCRIPT>

Until = sampai -> cirinya, jika Y berhenti

While = selama -> cirinya, jika Y perulangan

YN

C <- 1

C = C + 1

Write C

lari

lelah

Y

lari

kuat

N

Page 8: Algoritma dan Struktur Data.doc

- Untuk pengecekan jika nilai yang digunakan sampai angka n, maka harus ada until atau pengecekan sesuai dengan n, contoh:C <= 3 ->benar

C < 4 ->salah

<SCRIPT> C=1 DO WHILE C <= 10 Document.write C

C=C+1 LOOP</SCRIPT>

<SCRIPT> C=1 DO UNTIL C > 10 Document.write C C=C+1 LOOP</SCRIPT>

< | >=> | <== | <>AND | ORC | NOT (C)

Y

Y

Write C

C <- 1

C <- C + 1

C N

C <- 1

C < 3

Write C

C <- C + 1

N

Page 9: Algoritma dan Struktur Data.doc

<SCRIPT> C=1 DO UNTIL NOT (C<=10) Document.write C

C=C+1 LOOP</SCRIPT>

TOP WHILE TOP UNTIL

BOTTOM WHILE BOTTOM UNTIL

N

Y

FOR c=1 to 3

c

Read X

Write X

Read X

Write X

X > 0

Read X

X > 0

Write X

Read X

Y

N

Page 10: Algoritma dan Struktur Data.doc

Counted Loop:

For i = 1 to 10 step 1

Document.write i & “,”

Next

x = cint(Inputbox(“Masukkan Bilangan:”))

DO WHILE x > 0

Document.write x

x=cint(Inputbox(”Masukkan Bilangan:”))

LOOP

ASCENDING SORT:

IF (A<B) AND (B>C) THEN

WRITE A,B,C

ELSEIF (B<A) AND (C>B) THEN

WRITE B,C,A

ELSEIF (A<C) AND (B>C) THEN

WRITE A,C,B

ELSEIF (C<B) AND (A>C) THEN

WRITE C,B,A

END IF

14 Oktober 2010

<SCRIPT Language=”VbScript”> //menghitung sin menggunakan table pada memory

D = cint(inputbox(“Masukkan Sudut dalam derajad”))phi=3.1415X = D * phi / 180S = Sin(x)

Document.write “Sinus dari : “ & D & “adalah: “ & S</SCRIPT>

Page 11: Algoritma dan Struktur Data.doc

<SCRIPT Language=”VbScript”> //menghitung sin menggunakan cara manual

Sin X = X – X^3/3! + X^5/5! – X^7/7! + X^9/9!

</SCRIPT>

- Mencetak 1+2+3+4+5……………….+N

<SCRIPT>

J=0n=cint(Inputbox(‘Masukkan n”))for i=0 to n

j=j+idocument.write j & “<br>”

next

</SCRIPT>

- Mencetak -1+2-3+4-5+6……….ndari skrip di atas ditambahi,if j mod 2 <> 0 then j=j-1else j=j+1end if

- Mencetak 1-2+3-4+5-6………n (kebalikan dari soal sebelumnya)

- For c=1 to n acc=acc+(-1)^c*cnextdocument.write “Totalnya adalah: “ & acc

J = 0

J = J + 1

FOR i=1 to N

i

Page 12: Algoritma dan Struktur Data.doc

- Mencetak bilangan n factorial1!, 2!, 3!, 4!, 5!,…………….n!acc=1n=cint(Inputbox(“Masukkan n”))for i=1 to n acc=1 for c=1 to i acc=acc*c document.write nexttotal=total+accnextdocument.write total

- Usulan PHD =”Cetaklah -> “Saya sedang hang” dan dijalankan ketika komputer sedang hang

- Sin(x) = X1/1! – X3/3! + X5/5! – X7/7! + X9/9! – X11/11! (terdiri dari 6 suku)

PBL <- X1(j*i-1)

FOR i=1 to N

c

Total <- 0

acc <- 1

acc <- acc * c

i

total = total + (-1) ^ (i+1) * (PBL/ACC)

FOR c=1 to (2*i-1)

Page 13: Algoritma dan Struktur Data.doc

N

acc <- acc + 2 * A ^ C

FOR c=1 to 13

c

acc <- 0

Read x

n <= 0

acc <- 1001

FOR c=0 to n

acc <- acc + (-1) ^ (c+1) * 2 ^ c

c

Write acc

Y

DO N=cint(Inputbox(“Masukkan N”))LOOP WHILE N<=0

Tugas: C1 – C12

Page 14: Algoritma dan Struktur Data.doc

21 Oktober 2010

Array (= subscrefield variable, = indexed variable)

Array merupakan variabel jamak

Syntax Array, namavar(indeks1, indeks2, …..,…..,n)

Array 1 Dimensi (=Vektor)

Array 2 Dimensi (=Matriks)

0 1 2 3 4 5

1

2

3

4

5

Array 3 Dimensi (Kubik / Cube)

Array 4 Dimensi

Keistimewaan array -> indeks dapat di interpresentasikan dalam bentuk variable- namavar(index), dimana value/nilai dari index dapat berupa: variabel, konstanta, expressive

<SCRIPT>

Dim x(3)x(1) = 17x(2) = 8x(3) = 1945

document.write x(1) & “<br>”A=2B=3document.write x(A) & “<br>”document.write x((A^3-A)/2)

</SCRIPT>

<SCRIPT>

V(3)

M(2,4)

Page 15: Algoritma dan Struktur Data.doc

Dim x(3)for i=1 to 30

x(c)=cint(Inputbox(“Masukkan Bilangan”))next

for c=1 to 7document.write x(c) & “<br>”

next

</SCRIPT>

Xi(7,8,45)-> X1=7 X2=8

X3=45

<SCRIPT>

n=cint(Inputbox(“Masukkan Jumlah Elemen Array”))redim x(n) //menggunakan redim, bukan dimfor c=1 to n

x(c)=cint(Inputbox(“Masukkan sebuah bilangan”))next

for i=1 to ndocument.write x(i) & “<br>”

next

</SCRIPT>

Rumus Keramat untuk UTS:

N

YN + 1 - i

j <- 0

i <- 0

j <- j + 1Y(j) <- X(i)

FOR i=1 to n

x(i) mod 2 =0

k <- k + 1Z(k) <- X(i)

i

Page 16: Algoritma dan Struktur Data.doc

28 Oktober 2010:

RANDOM NUMBER- 0 < RND < 1- Random Series- Random Series Geometris

<SCRIPT> randomize for i=1 to 18 document.write rnd & “<br>” next</SCRIPT>

<SCRIPT> randomize for i=1 to 18 document.write int(rnd*100) & “<br>” next</SCRIPT>

Catatan:

- Jika nilai random hanya ingin menghendaki nilai range 10 – 89, maka data nilai range terakhir ditambahi 1, jadi rumusnya:

Dimana nilai 90 diperoleh dari 89 + 1

Jika menghendaki nilai random 100 – 989,

Rumus Permainan dadu

10 + int(RND * 90)

100 + int(RND * 999)

1 + int(RND * 6)

Page 17: Algoritma dan Struktur Data.doc

//random kartu remi<SCRIPT> randomize for i=1 to 250 A = 1 + int(rnd*13)

W = 1 + int(rnd*4) SELECT CASE wr Case 1

wr=”Waru” Case 2

wr=”Hati” Case 3 wr=”Wajik” Case 4

wr=”Keriting” END SELECT document.write “(“ & A & “,” & wr & “),” next

Soal:

Bayar -> 100000Terpakai -> 58246----------------------------------------- -Sisa -> 41754

Dibayar dengan Uang pecahana sebagai berikut:2 X 200000 X 100000 X 50000 X 20000 X 10000 X 5000 X 2000 X 1000 X 500 X 250 X 100 X 50 X 20 X 1

Page 18: Algoritma dan Struktur Data.doc

K = 41754

U1 100000 0

U2 50000 0

U3 20000 2

U4 10000 0

U5 5000 ….

… ….. …..

Tugas:- Mengkonversi bilangan uang menjadi dalam bentuk teks- Tulis Programnya saja dan Capture Hasil dari Browser

UTSALPRO, 18-11-2010:

(=MODULARITY)1 Program Komputer = 1. Single Configous Code

2. Kumpulan Modul

Jenis Modul

PROCEDURE SUB VOID METHOD VIOD FUNCTION

FUNCTION FUNCTION METHOD FUNCTION

↑ PASCAL

↑ VB

↑ JAVA / C++

↑ C “KUNO”

Konsep Terkait:1. Variable Lokal & Global2. Mode Prinsip Komputer=1. Pass by Value, 2. Pass by Reference3. Array sebagai Parameter

Page 19: Algoritma dan Struktur Data.doc

<SCRIPT>SUB Cetak(teks)

document.write teks & “<BR>”END SUB

CALL Cetak(“Surabaya”)</SCRIPT>

<SCRIPT>SUB Cetak(teks,jumlah)

FOR i=1 to jumlahdocument.write teks & “<BR>”

NextEND SUB

CALL Cetak(“Surabaya”,5)</SCRIPT>

*) Usahakan didalam prosedure & Fungsi hanya melakukan perhitungan tidak melakukan cetak (Single Task): 1 = Menghitung 1 = Mencetak

<SCRIPT>B1 = cint(InputBox(“Masukkan Bil. Pertama:”))B2 = cint(InputBox(“Masukkan Bil. Kedua”))CALL hitung(B1,B2,B3,B4)Document.write “Hasil Penjumlahan=” & HJ & “<BR>”Document.write “Hasil Pengurangan=” & HK & “<BR>”

SUB hitung(A,B,C,D)C = A + B

D = A- BEnd Sub

</SCRIPT>

Utuk N >= KN N!C = ------------------K (N-K)! K!

Page 20: Algoritma dan Struktur Data.doc

By Ref -> Bolak – balik (Input, Output)

By Val -> Input (Satu Arah)

Default dari VBScript adalah By RefDefault dari PASCAL adalah By ValDefault dari JAVA adalah By Ref

Flowchart dari Program Sebelumnya

<SCRIPT>B = cint(InputBox(“Masukkan Bilangan”))CALL calcFact(B,H)Document.write “Faktorial dari Bilangan itu =” & H & “<br>”

SUB calcFact(byVal N, byRef F)acc=1

For i=1 to N acc=acc*i

NextF=acc

END SUB</SCRIPT>

Atau

Page 21: Algoritma dan Struktur Data.doc

Peberdaan Procedure dan Function:

- Procedure -> Do it (Melakukan sesuatu proses)

- Function -> Get it (Mendapatkan sesuatu / nilai)

Page 22: Algoritma dan Struktur Data.doc

Segitiga Pascal:

11 1

1 2 11 3 3 1

1 4 6 4 11 5 10 10 5 1

Setigita Pascal dengan Rapat Kiri

0 1 2 3 4 5 6

0 1

1 1 1

2 1 2 1

3 1 3 3 1

4 1 4 6 4 1

5 1 5 10 10 5 1

6 … … … … … … …