algoritma dan struktur data.doc
TRANSCRIPT
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
- 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
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)
//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
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
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
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
- 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
<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
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>
<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
- 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)
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
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)
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
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)
//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
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
<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!
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
Peberdaan Procedure dan Function:
- Procedure -> Do it (Melakukan sesuatu proses)
- Function -> Get it (Mendapatkan sesuatu / nilai)
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 … … … … … … …