Minggu, 15 November 2009

Pemrograman Gerbang Logika dengan Menggunakan Bahasa C


Gerbang Logika atau gerbang logika Boolean merupakan sebuah sitem pemrosesan data yang dapat memproses input-input berupa bilangan biner menjadi output berkondisi (true/false) yang nantinya dapat digunakan untuk proses selanjutnya. Oleh karena itu kita akan membahas tentang program gerbang logika dengan menggunakan Bahasa C. Listing dan Logika Programnya ada di bawah sini...


Listing Program


#include "stdio.h"
#include "conio.h"
void main()

{

int a,b,ch;

char user;

do

{
do

{
clrscr() ;
printf("\nMasukan Bilangan Biner\n");
scanf("\n%d\n%d",&a,&b);
}

while(!(((a==1)||(a==0))&&((b==1)||(b==0))));
printf("Tekan Enter\n\t1.AND \n\t2.OR \n\t3.NOT \n\t4.NAND \n\t5.NOR \n\t6.XOR\n\t7.XNOR \n\");
fflush(stdin);
scanf("%d",&ch);
switch(ch)

{

case 1:
{
if(a==1&&b==1)
{ printf("1");}
else
printf("0");
break;
}

case 2:
{
if(a==1||b==1)
printf("1");
else
printf("0");
break;
}

case 3:

{
if(a==1)
printf("0");
else
{ if(b==1)
printf("1");
}
break;
}

case 4:
{
if(a==1&&b==1)
printf("0");
else
printf("1");
break;
}

case 5:
{
if(a==1||b==1)
printf("0");
else
printf("1");
break;
}

case 6:
{
if(a==b)
printf("0");
else
printf("1");
break;
}

case 7:
{
if(a==b)
printf("1");
else
printf("0");
break;
}

}
getch();
printf("\nIngin diulang ? ");
fflush(stdin);
scanf("%c",&user);
}

while((user=='y')||(user=='Y'));
getch();
}



Logika Program


void main()
{
/*memulai program tanpa mengembalikan nilai*/


int a,b,ch;
/*mendeklarasi variabel a, b dan ch adalah integer/bil bulat*/

char user;
/*mendeklarasi variabel user adalah karakter/string*/

do
{
do

/*Menggunakan perintah do...while...*/

{
clrscr() ;
/*perintah untuk membersihkan layar*/

printf("\nMasukan Bilangan Biner\n");
/*mencetak Masukan Bilangan Biner pada baris baru*/

scanf("\n%d\n%d",&a,&b);
meyimpan nilai yang dimasukan pada variable a dan b*/

Pada saat program di jalankan maka program akan membersihkan layer terlebih dahulu kemudian akan menampilkan nMasukan Bilangan Biner pada baris yang baru dan nilai yang dimasukan akan disimpan pada variabel a dan b

while(!(((a==1)||(a==0))&&((b==1)||(b==0))));
printf("Tekan Enter\n\t1.AND \n\t2.OR \n\t3.NOT \n\t4.NAND \n\t5.NOR \n\t6.EXOR\n");
fflush(stdin);

Ketika bertemu perintah perulangan maka program akan melakukan seleksi yaitu nilai variabel a adalah 1 atau 0 dan nilai variabel b adalah 1 atau 0. kemudian akan mencetak Tekan Enter 1.AND 2.OR 3.NOT 4.NAND 5.NOR dan karena pada setiap penulisan tersebut di batasi ole operator \n (baris baru) dan \t (memberi jarak spasi) maka tampilan dilayar akan menjadi seperti ini

Tekan Enter
1. AND
2. OR
3. NOT
4. NAND
5. NOR
6. XOR
7. XNOR


scanf("%d",&ch);
/*menginput nilai var ch yang bertipe bil bulat/integer*/

switch(ch) /*Menggunakan perintah switch...case...default*/


Lalu kita diminta memasukan nilai yang nantina akan dimasukan ke dalam variabel ch. Ketika program menjalankan perintah switch(ch) maka program akan menyeleksi kondisi sesuai dengan nilai var ch dan akan menjalankan salah satu dari case tersebut hingga bertemu dengan pernyataan break;

Apabila ch bernilai 1 maka akan menjalankan perintah

case 1:
{
if(a==1&&b==1)
{ printf("1");}
else
printf("0");
break;
}

Yaitu jika kondisi a=1 dan b=1 maka akan mencetak 1 selain itu akan mencetak 0

Apabila ch bernilai 2 maka akan menjalankan perintah

case 2:
{
if(a==1||b==1)
printf("1");
else
printf("0");
break;
}

Yaitu jika kondisi a=1 atau b=1 maka akan mencetak 1 selain itu akan mencetak 0

Apabila ch bernilai 3 maka akan menjalankan perintah

case 3:

{
if(a==1)
printf("0");
else
{ if(b==1)
printf("1");
}
break;
}

Yaitu jika kondisi a=1 maka akan mencetak 0 selain itu jika b=1maka akan mencetak 1
Apabila ch bernilai 4 maka akan menjalankan perintah

case 4:
{
if(a==1&&b==1)
printf("0");
else
printf("1");
break;
}

Yaitu jika kondisi a=1 dan b=1 maka akan mencetak 0 selain itu akan mencetak 1

Apabila ch bernilai 5 maka akan menjalankan perintah

case 5:
{
if(a==1||b==1)
printf("0");
else
printf("1");
break;
}

Yaitu jika kondisi a=1 atau b=1 maka akan mencetak 1 selain itu akan mencetak 0


Apabila ch bernilai 6 maka akan menjalankan perintah

case 6:
{
if(a==b)
printf("0");
else
printf("1");
break;
}

Yaitu jika kondisi a=b maka akan mencetak 0 selain itu maka akan mencetak 1


Apabila ch bernilai 7 maka akan menjalankan perintah

case 7:
{
if(a==b)
printf("1");
else
printf("0");
break;
}

Yaitu jika kondisi a=b maka akan mencetak 1 selain itu maka akan mencetak 0


getch();
/*digunakan untuk membaca data karakter*/

ketika perintah ini dijalankan maka diakan akan membaca data dan menampilkannya setelah di enter lalu program akan menjalankan perintah


printf("\nIngin diulang ?");
/*mencetak Ingin diulang ? */

scanf("%c",&user);
/*input nilai var user (sebuah karakter)*/


Maka dilayar akan menampilkan Ingin diulang? Dan nilai yang dimasukan akan disimpan pada variable user

while((user=='y')||(user=='Y'));

lalu program akan meyeleksi kondisi. Jika nilai variable user= y atau user= Y maka program akan kembali menjalankan perintah diatas (perulangan) namun nilai var user bukan = y atau = Y maka akan menjalankan perintah

getch();
}

Dan dengan menekan enter maka program akan berakhir.


Tidak ada komentar:

Posting Komentar