Friday, December 31, 2010

program gerbang logika AND dan OR dengan bahasa C

Kita akan membuat program untuk menyelesaikan persoalan tentang gerbang AND dan OR. Berikut adalah coding yang akan kita gunakan :

#include
#include
void main (){
int a, b, ch;
char user ;
do{
clrscr();
pilih :
printf ("-------------------- \n");
printf ("GERBANG \n");
printf ("-------------------- \n");
printf ("1.AND \n");
printf ("2.OR \n");
printf ("-------------------- \n");
printf ("MASUKKAN PILIHAN: ");
scanf ( "%d" ,&ch);
printf (" \n");
if (ch != 1 && ch != 2 ){
printf ("pilihan anda tidak ada dalam daftar,masukkan lagi \n");
printf (" \n");
goto pilih ;}
pilih1 :
printf ("-------------------------- \n");
printf ("MASUKAN DUA BILANGAN BINER \n");
printf ("-------------------------- \n");
printf ("MASUKAN BILANGAN BINER PERTAMA :");
scanf (" %d" , &a );
printf ("MASUKAN BILANGAN BINER KEDUA :");
scanf ("%d" , &b );
printf (" \n");
if ((a !=1 && a !=0 ) || (b !=1 && b !=0 )){
printf ("yang anda masukkan bukan bilangan binar,input ulang \n");
printf (" \n");
goto pilih1;}
switch (ch){
case 1:
{if (a==1 && b==1){
printf ("hasil operasi AND adalah 1 \n");
printf ("---------------------------------- \n");}
else{
printf ("hasil operasi AND adalah 0 \n");
printf ("---------------------------------- \n");}
break;}
case 2:
{if (a==0 && b==0){
printf("hasil operasi OR adalah 0 \n");
printf ("---------------------------------- \n");}
else{
printf("hasil operasi OR adalah 1 \n");
printf ("---------------------------------- \n");}
break;}}
printf ("apakah anda ingin melakukan proses lagi (Y/N) ? ");
fflush (stdin);
scanf ("%c", &user);}
while (((user=='Y') || (user == 'y')));
if (user == 'N' || user == 'n'){
printf (" \npress any key for exit \n");}
getch();}

1.Dalam bahasa C kita banyak menggunakan identifier – identifier . identifier tersebut telah di kelompokkkan kedalam masing – masing library routine. Pada program kali ini kita menggunakan 2 buah library routine, yaitu :
-stdio.h
-conio.h
untuk mendeklarasikan library routine kita harus menuliskan #include .

2.Kita menuliskan induk dari suatu program yang akan kita gunakan, yaitu dengan menuliskan ‘void main() ‘ . barulah kita mulai suatu blok program yang akan kita buat dengan meuliskan tanda ‘ { ‘ .

3.Kita mendeklarasikan variable –variable yang akan kita gunakan nantinya. Dalam program ini, kita membuat 3 variable ( a, b , ch ) dengan tipe data integer dan 1 variable ( user ) dengan tipe data character.

4.Kita akan membuat program agar user dapat melakukan beberapa kali penginputan nilai. Untuk itu kita akan memberikan statement untuk perulangan, dalam program ini kita menggunakan statemtn do while. Artinya selama syarat yang kita berikan pada statement while terpenuhi, maka program yang berada di dalam satament do, akan terus dilakukan. Syarat yang di berikan pada statement while,akan di jelaskan di langkah – langkah berikutnya.

5.statement- statement ini lah yang akan diproses jika kondisi yang kita berikan pada statement while terpenuhi.

6.Clrscr() adalah perintah untuk membersihkan tampilan pada layar.

7.Kita membuat suatu tanda disini dengan nama ‘pilih:’ ini di fungsikan untuk statement ‘goto’ yang akan kita gunakan nantinya. Jadi jika kita tuliskan ‘goto pilih ;’maka statement dalam tanda ‘pilih’ ini akan diproses kembali.

8.Pertama – tama kita buat tampilan untuk user. Agar user mengerti program apa yang akan di jalankannya. Dengan perintah ‘printf’ artinya kita akan mencetak. Pada program ini yang akan kita cetak berupa string,karena itu kita harus menambahkan tanda kutip (“ “) . ‘\n’ artinya kita akan memberikan satu spasi ke bawah setelah kata – kata yang kita cetak tersebut.

9.Setelah kita memberikan tampilan untuk user, maka kita harus memberikan statement agar user bisa memberikan pilihan yang diinginkannya ( kita mengambil input dari keyboard ) maka kita menggunakan statement ‘scanf’. Tanda %d pada statement tersebut artinya nilai yang kita inputkan akan di simpan sebagai nilai integer oleh computer. Karena kita ingin memasukkan nilai input ini kedalam variable ‘ch’ yang telah kita deklarasikan tadi,maka kita harus menambahkan ‘&ch’ , agar nilai input yang kita masukkan tersimpan dalam var tersebut.


10.pilihan yang kita sediakan dalam program ini hanya 2 ,yaitu 1 untuk gerbang AND ,dan 2 untuk gerbang OR. Karena itu jika user memilih selain dari 2 pilihan tersebut, kita harus mengingatkannya , agar user mengetahui kesalahannya. Kita dapat menggunakan statement percabangan. Dalam program ini kita menggunakan statement ‘if’.

11.Karena nilai inputan untuk memilih gerbang kita simpan dalam var ‘ch’,maka var ini lah yang akan kita gunakan untuk kondisi pada statement ‘if’.

12.Arti dari statement tersebut adalah, jika nilai dari var ‘ch’ tidak sama dengan 1 AND tidak sama dengan 2 (kita menggunakan operator logika AND,artinya jika salah satu dari kondisi yang kita berikan adalah ‘false’ maka statement ‘if’ ini akan bernilai ‘false’ dan tidak akan di proses ) maka string “pilihan anda tidak ada dalam daftar,masukkan lagi” akan dicetak. Lalu dengan perintah ‘goto pilih;’ akan membawa user lagi ke tempat saat pemilihan gerbang di awal program (ke tanda ‘pilih’ yang tadi telah kita buat).

13.Setelah user menentukan pilhan gerbang mana yang dipilih, sekarang kita minta user untuk memberikan nilai yang akan diproses.

14.Kita kembali membuat suatu tanda disini dengan nama ‘pilih1:’ ini di fungsikan untuk statement ‘goto’ yang akan kita gunakan nantinya. Jadi jika kita tuliskan ‘goto pilih1 ;’maka statement dalam tanda ‘pilih’ ini akan diproses kembali.

15.Kita buat tampilan pada layar agar user mengerti apa yang harus diisikan dalam program ini. Kita tampilkan string “ masukkan bilangan binary “ dengan perintah ‘printf’

16.Karena kita ingin mendapatkan input dari keyboard, maka kita gunakan perintah ‘scanf’ . ‘&a’ sebagai variable yang menyimpan nilai dari bilangan binary pertama. Dan ‘&b’ sebagai variable untuk menyimpan nilai dari bilangan binary ke dua.

17.Setelah kita mendapatkan nilai untuk masing- masing bilangan binary , tidak menutup kemungkinan bahwa user salah memasukkan input (bilangan binary hanya terdiri dari angka 0 dan 1 ). Karena itu kita harus mengingatkan user jika terjadi kesalahan. Untuk menyelesaikannya , kita dapat menggunakan statement percabangan kembali, dalam program ini kita menggunakan perintah ‘if’.

18.Karena kita menyimpan ke 2 nilai bilangan binary tersebut dalam var ‘a’ dan ‘b’ maka var ini lah yang akan kita gaunakan sebagai kondisi dalam statement ini. Arti dari statmen tersebut adalah jika nilai dari var ‘a’ tidak sama dengan 1 AND tidak sama dengan 0 OR nilai dari var ‘b’ tidak sama dengan 1 AND tidak sama dengan 0 (disini kita menggunakan 2buah operator logika,yaitu AND dan OR.maka jika nilai yang kita inputkan bukanlah angka 0 atau 1 pada ke dua variable ,statement didalam kondisi percabangan ini akan diproses) maka string “yang anda masukkan bukan bilangan binary,input ulang” akan tercetak. Lalu dengan perintah ‘goto pilih1;’ maka kita akan kembali ke tanda ‘pilih1’ yang tadi telah kita buat.

19.Setelah kita mendapatkan semua data yang kita perlukan, maka saatnya kita memproses data – data tersebut, dalam program ini kita menggunakan statement percabangan switch case. Yang manjadi kondisi untuk statement switch ini adalah var ‘ch’ ,yaitu var yang telah kita tentukan untuk menyimpan nilai inputan saat mentntukan gerbang mana yang diignkan user. Yaitu 1 untuk AND dan 2 untuk OR.

20.Switch untuk case 1 (case untuk gerbang AND ). Untuk gerbang AND,akan bernilai 1,hanya jika input yang kita masukkan untuk binary pertama dan binary ke 2 adalah 1, selain itu akan bernilai 0. Dengan meiliat pada ketentuan tersebut,kita dapat menggunakan statement pecabangan ‘if else’ dengan kondisi jika nilai a dan b sama dengan 1 maka yang akan dicetak adalah string “ hasil oprasi AND adalah 1” dan jika nilai yang kita inputkan selain 1 dan 1 maka akan dicetak string “ hasil oprasi AND adalah 0”.

21.Switch untuk case 2 (case untuk gerbang OR ). Untuk gerbang OR,akan bernilai 0,hanya jika input yang kita masukkan untuk binary pertama dan binary ke 2 adalah 0, selain itu akan bernilai 1. Dengan meiliat pada ketentuan tersebut,kita dapat menggunakan statement pecabangan ‘if else’ dengan kondisi jika nilai a dan b sama dengan 0 maka yang akan dicetak adalah string “ hasil oprasi OR adalah 0” dan jika nilai yang kita inputkan selain 0 dan 0 maka akan dicetak string “ hasil oprasi OR adalah 1”.

22.Setelah output yang diinginkan oleh user telah tercetak, selanjutnya kita akan menanyakan kembali, apakah ada data lain yang ingin di proses. Pertama – tama kita berikan tampilan string "apakah anda ingin melakukan proses lagi (Y/N) ?". karena kita ingin mendapatkan input melalui keyboard,kita harus mnuliskan statemtn ‘scanf’. Dan kita akan menyimpannya dalam var ‘user’ . karena data yang akan diinputkan berupa data character, maka kita meuliskan ‘%c’ dalam statemtn ‘scanf’ tersebut.

23. Ini lah fungsi dari statement do while yang telah kita tuliskan sejak awal tadi. artinya selama input yang kita masukkan adalah huruf ‘Y’ atau ‘y’ , maka statement – statement dalam statement ‘do’ akan diproses kembali. Artinya user dapat melakukan proses untuk data –data yang lain. ( kita menggunakan operator logika OR pada statement while ini, dengan tujuan jika user memasukkan hufuf y besar atau huruf y kecil ,akan diproses sama). Karena kita meyimpan nilai input tersebut di dalam var ‘user’ maka var tersebut lah yang kita gunakan sebagai kondisi untuk percabangan while ini.

24.Lalu untuk proses jika user memilih ‘N’ yang artinya user ingin keluar dari program kita hanya perlu menampilkan string “press any key for exit” untuk member tahu pada user bahwa ia sudah dapat keluar dari program. Perintah ‘getch()’ dibawah statement ini berfungsi untuk memberikan jeda 1 kali (untuk key apa saja), karena itu kita berikan statement ini dibwahnya, agar string “press any key for exit” dapat di lihat oleh user. ( kita menggunakan operator logika OR pada statement ‘if’ ini, dengan tujuan jika user memasukkan hufuf n besar atau huruf n kecil ,akan diproses sama). Karena kita meyimpan nilai input tersebut di dalam var ‘user’ maka var tersebut lah yang kita gunakan sebagai kondisi untuk percabangan ‘if’ ini.

No comments:

Post a Comment