Biner ke Desimal
Soal 3.
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 <stdio.h>
#include <string.h>
#include <math.h>
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<n-1; 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)
-
Mendeklarasikan variabel yaitu :
int biner[8], a, I, jumlah=0
-
Masukkan biner sebanyak 8, yang menyatakan biner[].
-
Menghitung banyaknya biner yang menyatakan a = strlen(biner).
-
Tanyakan, apakah a<=8 ?
-
Jika tidak, maka cetak harus max 8 dan langsung ke no. 9.
-
Jika ya, maka langsung ke proses selanjutnya(no.7).
-
Proses Looping (i=0;i<8)
7.01. Tanyakan, apakah biner[i]=0 atau biner[i]=1 ?
7.02. Jika ya, maka lakukan proses berikut ini :
b = biner[i]*pow(2, a-1)
7.03. Jika tidak, maka cetak ERROR dan langsung ke proses no.9.
7.04. Jumlahkan jumlah dengan b, yang menyatakan jumlah yaitu jumlah + b
7.05. a–
-
Cetak jumlah.
-
Program selesai.
Flowchart Soal 3 (Biner ke Desimal)
Bilangan Prima
Bilangan Prima
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 <stdio.h>
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<a; i++)
{ if(a%i==0)
faktor=faktor+1;}
if(faktor==2)
return(0);
else
return(1);
}
Algoritma Soal 2 (Bilangan Prima)
-
Mendeklarasikan variabel yaitu :
int n, faktor=0, i.
-
Memasukkan sebuah bilangan, yang menyatakan n.
-
Proses Looping (i=1;i<n)
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.
-
Tanyakan, apakah faktor = 2 ?
-
Jika ya, maka cetak Termasuk Bilangan Prima.
-
Jika tidak, maka cetak Bukan Termasuk Bilangan Prima.
-
Program selesai.
Flowchart Soal 2 (Bilangan Prima)
Fibonacci
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 <stdio.h>
#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)
-
Menginisialisasi / menetapkan AB=700,sebagai jumlah karakter maksimal 700.
-
Mendeklarasikan variabel yaitu :
int bil1=1, bil2=1, n, I, tukar.
-
Memasukkan banyaknya bilangan, yang menyatakan n.
-
Cetak bil 1 dan bil2.
-
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.
-
Program selesai.
Flowchart Soal 1 (Fibonacci)
No. 7 [Polindrom]
Soal 7.
Polindrom
Buatlah flowchart untuk menentukan apakah kalimat tersebut termasuk polindrom atau bukan?
Contoh:
Input : kasur rusak
Output : Termasuk Polindrom
Input : makan malam
Output : Bukan Polindrom
Penyelesaian:
Listing Program 7 (Polindrom):
#include <stdio.h>
#define AB 700
main()
{
char A[AB];
int i, j=-1, k=1;
printf(“Masukkan kalimat atau kata (sembarang): ”);
fgets(A; sizeof A; i++)
for(i=0; i<A[i]; i++)
j++;
if(j<0)
j=j-1;
else
j;
for(i=0; i<(j/2); i++)
{
if(A[i]!=A[j-i])
k=0;
}
if(k==1)
printf(“Polindrom\n\n”);
else
printf(“Bukan Polindrom\n\n”);
}
Algoritma Soal 7 (Polindrom)
-
Menginisialisasi / menetapkan AB=700,sebagai jumlah karakter maksimal 700.
-
Mengidentifikasi variabel yaitu :
char A[AB]
int i=0, j=-1, k=1.
-
Memasukkan kalimat atau kata, yang menyatakan A[i].
-
Proses Looping 1
4.01. Tambahkan i dengan 1 yang menyatakan i yaitu i = i + 1.
4.02. Tambahkan j dengan 1 yang menyatakan j yaitu j = j + 1..
4.03. Tanyakan, apakah A[i] > i ?
4.04. Jika ya, maka maka kembali ke proses looping 1/ no. 4.
4.05. Jika tidak, maka keluar dari proses looping 1.
-
Tanyakan, apakah jum < 10 ?
-
Jika ya, maka jum = jum – 1
-
Jika tidak, maka jum(hasil akhir jum dari proses looping).
-
Proses Looping 1
8.01. Tambahkan i dengan 1 yang menyatakan i yaitu i = i + 1.
8.02. Tanyakan, apakah A[i] != A[jum-i]
8.03. Jika ya, maka k=0.
8.04. Jika tidak, maka k=1.
8.05. Tanyakan, apakah i < (jum/2) ?
8.06. Jika ya, maka maka kembali ke proses looping 2/ no. 8.
8.07. Jika tidak, maka keluar dari proses looping 2.
-
Tanyakan, apakah k=1?
-
Jika ya, maka cetak “Kalimat tersebut termasuk Polindrom”.
-
Jika tidak, maka cetak “Kalimat tersebut bukan termasuk polindrom”.
-
Program selesai.
Flowchart Soal 7 (Polindrom)
No. 6[Membalik Angka]
Soal 6.
Membalik Angka
Buatlah flowchart untuk membalik kata.
Contoh:
Input : 123
Output : 321
Penyelesaian:
Listing Program 6 (Membalik Angka):
#include <stdio.h>
#define AB 700
main()
{
char A[AB];
int i, j=0, k;
printf(“Masukkan kalimat atau kata : ”);
fgets(A; sizeof A; i++)
printf(“Setelah dibalik menjadi : ”);
for(i=1; A[i]!=”; i++)
{j++}
k=j-1;
for(i=k; A[i]>=0; i–)
{printf(“%d”, A[i]);}
printf(“\n”);
}
Algoritma Soal 6 (Membalik Angka)
-
Menginisialisasi / menetapkan AB=700,sebagai jumlah karakter maksimal 700.
-
Mengidentifikasi variabel yaitu :
int A[AB], i=0, j=0, k.
-
Memasukkan kalimat atau kata, yang menyatakan A[i].
-
Proses Looping 1
4.01. Tambahkan i dengan 1 yang menyatakan i yaitu i = i + 1.
4.02. Tambahkan j dengan 1 yang menyatakan j yaitu j = j + 1..
4.03. Tanyakan, apakah A[i] > i ?
4.04. Jika ya, maka maka kembali ke proses looping 1/ no. 4.
4.05. Jika tidak, maka keluar dari proses looping 1.
-
Kurangkan j(nilai j akhir setelah looping) dengan 1, yang menyatakan k, yaitu k = j – 1.
-
Variabel i = k.
-
Proses Looping 2
7.01. Kurangkan i dengan 1 yang menyatakan i yaitu i = i – 1.
7.02. Cetak A[i].
7.03. Tanyakan, apakah A[i]>=0 ?
7.04. Jika ya, maka maka kembali ke proses looping 2/ no. 7.
7.05. Jika tidak, maka keluar dari proses looping 2.
-
Stop.
-
Program Selesai.
Flowchart Soal 6 (Membalik Angka)
No. 5[Membalik Kalimat/Kata]
Soal 5.
Membalik Kalimat/Kata
Buatlah flowchart untuk membalik kalimat.
Contoh:
Input : Apa kabar
Output : rabak apA
Penyelesaian:
Listing Program 5 (Membalik Kalimat/Kata):
#include <stdio.h>
#define AB 700
main()
{
char A[AB];
int i, j=0, k;
printf(“Masukkan kalimat atau kata : ”);
fgets(A; sizeof A; i++)
printf(“Setelah dibalik menjadi : ”);
for(i=1; A[i]!=”; i++)
{j++;}
k=j-1;
for(i=k; A[i]>=0; i–)
{printf(“%c”, A[i]);}
printf(“\n”);
}
Algoritma Soal 5 (Membalik kata/kalimat)
-
Menginisialisasi / menetapkan AB=700,sebagai jumlah karakter maksimal 700.
-
Mengidentifikasi variabel yaitu :
char A[AB]
int i=0, j=0, k.
-
Memasukkan kalimat atau kata, yang menyatakan A[i].
-
Proses Looping 1
4.01. Tambahkan i dengan 1 yang menyatakan i yaitu i = i + 1.
4.02. Tambahkan j dengan 1 yang menyatakan j yaitu j = j + 1..
4.03. Tanyakan, apakah A[i] > i ?
4.04. Jika ya, maka maka kembali ke proses looping 1/ no. 4.
4.05. Jika tidak, maka keluar dari proses looping 1.
-
Kurangkan j(nilai j akhir setelah looping) dengan 1, yang menyatakan k, yaitu k = j – 1.
-
Variabel i = k.
-
Proses Looping 2
7.01. Kurangkan i dengan 1 yang menyatakan i yaitu i = i – 1.
7.02. Cetak A[i].
7.03. Tanyakan, apakah A[i]>=0 ?
7.04. Jika ya, maka maka kembali ke proses looping 2/ no. 7.
7.05. Jika tidak, maka keluar dari proses looping 2.
-
Stop.
-
Program Selesai.
Flowchart Soal 5 (Membalik Kata/kalimat)
-
Arsip
- Januari 2008 (3)
- Desember 2007 (6)
- November 2007 (10)
- Oktober 2007 (7)
- September 2007 (6)
-
Kategori
-
RSS
Entries RSS
Comments RSS