Rabu, Januari 02, 2008

TUGAS FLOWCHART 19/12/2007 (1)

Soal 1.

Fibonacci

Buatlah flowchart untuk melakukan proses fibonacci seperti di bawah ini.

Contoh:

Input : Banyaknya data = 5

Output : 1 1 2 3 5

Input : Banyaknya data = 7

Output : 1 1 2 3 5 8 13


Penyelesaian:

Listing Program 1 (Fibonacci):

#include

#define AB 700

main()

{

int n, i=0, x=0, data[AB]={1,1};



printf(“Masukkan banyaknya data : ”);

scanf(“%d”, &n);



for(i=3; i<=n; i++) data[i-1] = data[i-3] + data[i-2]; for(x=1; x<=n; x++) printf(“%4d”, data[x-1]); printf(“\n\n”); } Algoritma Soal 1 (Fibonacci) 1. Menginisialisasi / menetapkan AB=700,sebagai jumlah karakter maksimal 700. 2. Mendeklarasikan variabel yaitu : int bil1=1, bil2=1, n, I, tukar. 3. Memasukkan banyaknya bilangan, yang menyatakan n. 4. Cetak bil 1 dan bil2. 5. Proses Looping (i=3;i<=n) 5.01. Tambahkan bil1 dengan bil2 yang menyatakan tukar yaitu tukar = bil1 + bil2. 5.02. Cetak tukar. 5.03. Assign bil2 ke bil1 yang menyatakan bil1 = bil2. 5.04. Assign tukar ke bil2 yang menyatakan bil2 = tukar. 6. Program selesai.

TUGAS FLOWCHART 19/12/2007 (2)

2. Biner ke Desimal

Buatlah flowchart untuk mengkonversi dari biner ke desimal

Contoh:

Input : biner = 00010001

Output : desimal = 17

Penyelesaian:

Listing Program 3 (Biner ke Desimal):

#include

#include

#include

main()

{

int i, j, n, b, x, y=0, z;



printf(“Masukkan bilangan biner [MAX 8]: ”);

fgets(biner, sizeof biner, stdin);



n=strlen(biner);

j=n-2;

for(i=0; i

{ if(biner[i]==0)

b=0;

else if(biner[i]!=0 || biner[i]!=1)

printf(“ERROR\n\n”);

else

b=1;

z=pow(2, j);

x=b*z;

y=y+x;

j–;

}

printf(“%d”, y);

printf(“\n\n”);

}



Algoritma Soal 3 (Biner ke Desimal)

1. Mendeklarasikan variabel yaitu :
int biner[8], a, I, jumlah=0
2. Masukkan biner sebanyak 8, yang menyatakan biner[].
3. Menghitung banyaknya biner yang menyatakan a = strlen(biner).
4. Tanyakan, apakah a<=8 ? 5. Jika tidak, maka cetak harus max 8 dan langsung ke no. 9. 6. Jika ya, maka langsung ke proses selanjutnya(no.7). 7. Proses Looping (i=0;i<8) b =" biner[i]*pow(2,">

TUGAS FLOWCHART 19/12/2007 (3)

Algoritma Soal 4 (Desimal ke Biner)

1. Mendeklarasikan variabel yaitu :
int bil, x, stack
2. Masukkan bilangan yang menyatakan bil.
3. Tanyakan, apakah bil> 256 ?
4. Jika ya, maka kembali ke proses no.2.
5. Jika tidak, maka langsung ke proses selanjutnya(no.6).
6. Bilangan dimodulkan yang menyatakan x = bil % 2.
7. Bagikan bil dengan 2 yang menyatakan bil yaitu bil/2.
8. Lakukan proses stack push dari x yang menyatakan stack push(x).
9. Tanyakan, apakah bil > 0 ?
10. Jika ya, maka kembali ke proses 6.
11. Jika tidak, maka lakukan proses selanjutnya(no.12).
12. Proses Looping (stack empty)
12.01. Lakukan proses stack pop dari x yang menyatakan x = stack pop.
12.02. Print x.
12.03. Kembali ke proses no.12.
13. Program selesai.

TUGAS FLOWCHART 19/12/2007 (4)

4. Buatlah flowchart untuk menentukan apakah bilangan tersebut adalah bilangan prima atau bukan?

Contoh:

Input : Bilangan = 5

Output : Bukan termasuk bilangan prima

Input : Banyaknya data = 8

Output : Termasuk bilangan prima.



Penyelesaian:

Listing Program 2 (Bilangan Prima):

#include

int prima (int);

main()

{

int n, b;



printf(“Masukkan sebuah bilangan : ”);

scanf(“%d”, &n);



if(b==0)

printf(“Termasuk bilangan prima\n\n”);

else

printf(“Bukan termasuk bilangan prima\n\n”);

}

int prima(int a)

{

int i, faktor=0;

for(i=1; i

{ if(a%i==0)

faktor=faktor+1;}

if(faktor==2)

return(0);

else

return(1);

}



Algoritma Soal 2 (Bilangan Prima)

1. Mendeklarasikan variabel yaitu :
int n, faktor=0, i.
2. Memasukkan sebuah bilangan, yang menyatakan n.
3. Proses Looping (i=1;i
3.01. Tanyakan, apakah n%i=0 ?
3.02. Jika ya, maka jumlahkan faktor dengan 1, yang menyatakan faktor yaitu faktor = faktor +1
3.03. Jika tidak, maka tanyakan, apakah i = n-1?
3.03.01 Jika tidak, maka kembali ke proses looping no.3
3.03.02 Jika ya, maka langsung ke proses no.4.
4. Tanyakan, apakah faktor = 2 ?
5. Jika ya, maka cetak Termasuk Bilangan Prima.
6. Jika tidak, maka cetak Bukan Termasuk Bilangan Prima.
7. Program selesai.

TUGAS FLOWCHART 19/12/2007 (5)

Algoritma Soal 5 (Penjumlahan Matriks)

1. Mendeklarasikan variabel yaitu :
int i, j, m, n, r, s, A[10][10], B[10][10], C[10][10]
2. Masukkan jumlah baris pada matriks A yang menyatakan m.
3. Masukkan jumlah kolom pada matriks A yang menyatakan n.
4. Masukkan jumlah baris pada matriks B yang menyatakan r.
5. Masukkan jumlah kolom pada matriks B yang menyatakan s.
6. Proses looping(i=0; i
6.01. Proses looping(j=0; j
6.01.01. Print A(i+1, j+1)
6.01.02. Read A[i][j]
7. Proses looping(i=0; i
7.01. Proses looping(j=0; j
7.01.01. Print B(i+1, j+1)
7.01.02. Read B[i][j]
8. Tanyakan, apakah m=r & n=s?
9. Jika tidak, maka cetak ERROR kemudian END(no.12).
10. Jika ya, maka langsung ke proses selanjutnya(no.11).
11. Proses looping(i=0; i
11.01. Proses looping(j=0; j
11.01.01. C[i][j] = A[i][j] + B[i][j]
11.01.02. Read C[i][j]
12. Program Selesai

TUGAS FLOWCHART 19/12/2007 (6)

Algoritma Soal 6 (Perkalian Matriks)

1. Mendeklarasikan variabel yaitu :
int i, j, m, n, r, s, A[10][10], B[10][10], C[10][10]
2. Masukkan jumlah baris pada matriks A yang menyatakan m.
3. Masukkan jumlah kolom pada matriks A yang menyatakan n.
4. Masukkan jumlah baris pada matriks B yang menyatakan r.
5. Masukkan jumlah kolom pada matriks B yang menyatakan s.
6. Proses looping(i=0; i
6.1. Proses looping(j=0; j
6.1.1. Print A(i+1, j+1)
6.1.2. Read A[i][j]
7. Proses looping(i=0; i
7.1. Proses looping(j=0; j
7.1.1. Print B(i+1, j+1)
7.1.2. Read B[i][j]
8. Tanyakan, apakah n=r?
9. Jika tidak, maka cetak ERROR kemudian END(no.12).
10. Jika ya, maka langsung ke proses selanjutnya(no.11).
11. Proses looping(i=0; i
11.1. Proses looping(k=0; k
11.1.1. C[i][k]
11.1.2. Proses looping(j=0; j
11.1.2.1 C[i][k] += A[i][j] * B[j][k]
11.1.3. Cetak hasil dari C[i][k]
12. Program Selesai