Sabtu, 16 November 2013

ALPRO (PERCABANGAN)



PERCABANGAN/PEMILIHAN


Didalam pemrograman kita harus dapat menentukan aksi apa yang harus dikerjakan oleh pemroses (processor) ketika sebuah kondisi terpenuhi. Suatu struktue dasar algoritma yang memiliki satu atau lebih kondisi tertentu dimana sebuah instruksi dilaksanakan jika sebuah kondisi/persaratan terpenuhi. Ada beberapa struktur pemilihan, ialah sebagai berikut:

1.      Pernyataan IF
pernyataan if digunakan untuk melakukan proses percabangan yang memiliki beberapa kemungkinan didalam suatu program. Pernataan if diklafisikasikan ke dalam tiga bagian, yaitu; didasarkan atas satu kasus, dua kasus, dan lebih dari dua kasus.

1.1   Satu kasus
Pemilihan jenis ini adalah pemilihan yang paling sederhana karena hanya mengandung satu kondisi yang akan di periksa. Berikut ini bentik umum dari penggunahaan percabangan if satu kasus.
                  If  (kondisi) Statemen_yang_akan_dieksekusi;

      Bentuk umum diatas berlaku apabila anda hanya memiliki sebuah statemen didalam  blok pengecekan. Namun apabila anda memiliki beberapa statemen, makan bentuk umumnya menjadi seperti dibaah ini;
                  If (kondisi)      
                      {
                          Statement_pertama;
                          Statement_kedua;
                           . . . .
`                    }
     
1.2   Dua kasus
Bertuk percabangan ini merupakan perluasan dari bentuk pertama, hanya saja disini didefenifikan pula statemen yang akan dilakukan apabila kondisi yang diperiksa bernilai salah (tidak terpenuhi). Apadapun cara yang digunakan utuk melakukan hal tersebut adalah dengan menambah kan kata kunci else  didalam blok pengecekan. Hal ini menyebabkan statemen untuk pemilihan untuk dua kasus sering dikenal dengan pernyataan if-else. Berikut ini bentuk umum atau kerangka yang digunakan dalam bahasa C untuk melakukan pemilihan dua kasus;



            If (kondisi)
            Statement_yang_akan_dieksekusi_jika_kondisi_benar;
            Else
Statement_yang_akan_dieksekusi_jika_kondisi_benar;
                     
                      Atau:
If (kondisi)
{
Statement_yang_akan_dieksekusi_jika_kondisi_benar1;
Statement_yang_akan_dieksekusi_jika_kondisi_benar1;
}
Else
{
Statement_yang_akan_dieksekusi_jika_kondisi_salah1;
Statement_yang_akan_dieksekusi_jika_kondisi_salah2;
}

         

1.3  Lebih dari dua kasus
Pada percabangan jenis ini kita diizinkan untuk menempatkan beberapa (lebih dari Satu) kondisi sesuai dengan kebutuhan program yang akan kita buat. Berikut ini gambaran yang akan menunjukkan  konsep dari pemilihan statemen yang didasarkan atas tiga kasus atau lebih.

                  If (kondisi1) {statement_yang_akan_dieksekusi};
                  If (kondis2)  {statement_yang_akan_dieksekusi};
                  If (kondisi3) {statement_yang_akan_dieksekusi};
                  Else {statement_alternatif};

Pada gambaran diatas, mula-mula program akan melakukan pengecekan terhadap kondisi1. Apabila kondisi1 benar, maka program akan langsung mengeksekusi statemen yang didefenisikan didalamnya. Namun, apabila kondisi1 bernilai salah maka program akan melakukan pengecekan terhadap kondisi2. Apabila kondisi dua juga bernilai salah maka program akan melanjutkkan ke pengecekan kondisi3. Apbila ternyata kondisi3 juga bernilai salah maka program akan mengeksekusi statemen alternatifyang didefenisikan, yaitu statemen yeng terdapat pada bagian akhir blok pengecekan (pada bagian else).

                 


2.      Pernyataan Switch-Case
 Pernyataan switch digunakan melakukan pemilihan terhadap banyaknya kemungkinan ekspresi yang memiliki nilai-nilai konstan. Oleh karena itu, ekspresi yang didefenisikan harus menghasilkan nilai yang bertipe bilangan bulat atau karakter. Untuk mendefenisikan nilai-nilai konstan tersebut adalah dengan menggunakan kata kunci case. Hal yang perlu anda perhatikan juga dalam melakukan pemilihan dengan menggunakan statemen switch  ini ialah kita harus menambahkan keyword break pada setiap nilai yang kita defenisikan.
Untuk lebih memahaminya, coba anda perhatika bentuk umum dari pernyataan swich-case  dibawah ini;
           
Switch (ekspresi)
{
Case nilai_konstan1:
Statemen_yang_akan_dieksekusi;
. . .
Break;
Case nilai_konstan2:
Statemen_yang_akan_dieksekusi;
. . .
Break;
Default :
Statement_alternatif;
}

Kata kunci default  diatas berguna untuk menyimpan statemen alternative, yang akan dieksekusi apabila semua nilai yang didefenisikan tidak ada yang sesuai dengan ekspresi yang dimasukkan.


Berikut ini contoh-contoh program yang mengaplikasikan pernyataan if-else dan pernyataan switch-case.

Contoh 1; Menampilkan output bilangan genap dan bukan bilangan genap menggunakan        pernyataan if.

#include <stdio.h>

int main ()
{
int x,y;

scanf("%d",&x);
y=x%-2;
if (y==0)
{
             printf("Y bilangan genap");
}
if (y!=0)
{
             printf("Y bukan bilangan genap");
}
return 0;
}

Dari contoh program sederhana diatas, pernyataan IF dimanfaatkan untuk menentukan apakah bilangan yang diinputkan berbentuk bilangan genap atau bukan dengan  memanfaatkan operasi aritmatika berupa modulo (%).

Contoh2; Mengunakan pernyataan switch-case untuk menampilkan keterangan angka yang dimasukkan.

#include <stdio.h>

int main ()
{
          int angka;
          printf("masukkan angka :"), scanf("%d",&angka);
         
          switch (angka)
          {
          case 1:
                          printf("SATU"); break;
          case 2:
                          printf("DUA"); break;
          case 3:
                          printf("TIGA"); break;
                         
          default :
                          printf("anda bukan memasukkan angka"); break;
          }
          return 0;
}


Contoh3; Menentukan nilai,terbeser,terkecil, dan rata-rata dari angka-angka yang dimasukkan menggunakan pernyataan if, dan Menentukan Bulan-bulan dalam satu tahun menggunakan pernyattaan switch-case.

#include <stdio.h>
#include <conio.h>

int main ()
{
             int a,b,c,d,e,f,g,h,i,j;
             float rt;
             printf("masukkan nilai A :");
             scanf("%d",&a);
             printf("masukkan nilai B :");
             scanf("%d",&b);
             printf("masukkan nilai C :");
             scanf("%d",&c);
             printf("masukkan nilai D :");
             scanf("%d",&d);
             printf("masukkan nilai E :");
             scanf("%d",&e);
             printf("masukkan nilai F :");
             scanf("%d",&f);
             printf("masukkan nilai G :");
             scanf("%d",&g);
             printf("masukkan nilai H :");
             scanf("%d",&h);
             printf("masukkan nilai I :");
             scanf("%d",&i);
             printf("masukkan nilai J :");
             scanf("%d",&j);
            
//************ Mencari nilai MAXsimal *********
             //Pernyataan untuk Nilai A
             if((a>=b)&&(a>=c)&&(a>=d)&&(a>=e)&&(a>=f)&&(a>=g)&&(a>=h)&&(a>=i)&&(a>=j))
                             {printf("Nilai MAXSIMAL adalah A=%d,\n",a);}
            
             //Pernyataan untuk Nilai B
             if((b>=a)&&(b>=c)&&(b>=d)&&(b>=e)&&(b>=f)&&(b>=g)&&(b>=h)&&(b>=i)&&(b>=j))
                             {printf("Nilai MAXSIMAL adalah B=%d,\n",b);}
            
             //Pernyataan untuk Nilai C
             if((c>=b)&&(c>=a)&&(c>=d)&&(c>=e)&&(c>=f)&&(c>=g)&&(c>=h)&&(c>=i)&&(c>=j))
                             {printf("Nilai MAXSIMAL adalah C=%d,\n",c);}
            
             //Pernyataan untuk Nilai D
             if((d>=b)&&(d>=c)&&(d>=a)&&(d>=e)&&(d>=f)&&(d>=g)&&(d>=h)&&(d>=i)&&(d>=j))
                             {printf("Nilai MAXSIMAL adalah D=%d,\n",d);}
            
             //Pernyataan untuk Nilai E
             if((e>=b)&&(e>=c)&&(e>=d)&&(e>=a)&&(e>=f)&&(e>=g)&&(e>=h)&&(e>=i)&&(e>=j))
                             {printf("Nilai MAXSIMAL adalah E=%d,\n",e);}
            
             //Pernyataan untuk Nilai F
             if((f>=b)&&(f>=c)&&(f>=d)&&(f>=e)&&(f>=a)&&(f>=g)&&(f>=h)&&(f>=i)&&(f>=j))
                             {printf("Nilai MAXSIMAL adalah F=%d,\n",f);}
            
             //Pernyataan untuk Nilai G
             if((f>=b)&&(f>=c)&&(f>=d)&&(f>=e)&&(g>=f)&&(g>=a)&&(g>=h)&&(g>=i)&&(g>=j))
                             {printf("Nilai MAXSIMAL adalah G=%d,\n",g);}
            
             //Pernyataan untuk Nilai H
             if((h>=b)&&(h>=c)&&(h>=d)&&(h>=e)&&(h>=f)&&(h>=g)&&(h>=a)&&(h>=i)&&(h>=j))
                             {printf("Nilai MAXSIMAL adalah H=%d,\n",h);}
            
             //Pernyataan untuk Nilai I
             if((i>=b)&&(i>=c)&&(i>=d)&&(i>=e)&&(i>=f)&&(i>=g)&&(i>=h)&&(i>=a)&&(i>=j))
                             {printf("Nilai MAXSIMAL adalah I=%d,\n",i);}
            
             //Pernyataan untuk Nilai J
             if((j>=b)&&(j>=c)&&(j>=d)&&(j>=e)&&(j>=f)&&(j>=g)&&(j>=h)&&(j>=i)&&(j>=a))
                             {printf("Nilai MAXSIMAL adalah J=%d,\n",j);}
            
                            
//************ Mencari Nilai MINimal ****************           
             //Pernyataan untuk Nilai A
             if((a<=b)&&(a<=c)&&(a<=d)&&(a<=e)&&(a<=f)&&(a<=g)&&(a<=h)&&(a<=i)&&(a<=j))
                             {printf("Nilai MINIMAL adalah A=%d,\n",a);}
                            
             //Pernyataan untuk Nilai B
             if((b<=a)&&(b<=c)&&(b<=d)&&(b<=e)&&(b<=f)&&(b<=g)&&(b<=h)&&(b<=i)&&(b<=j))
                             {printf("Nilai MINIMAL adalah B=%d,\n",b);}
            
             //Pernyataan untuk Nilai C
             if((c<=b)&&(c<=a)&&(c<=d)&&(c<=e)&&(c<=f)&&(c<=g)&&(c<=h)&&(c<=i)&&(c<=j))
                             {printf("Nilai MINIMAL adalah C=%d,\n",c);}
            
             //Pernyataan untuk Nilai D
             if((d<=b)&&(d<=c)&&(d<=a)&&(d<=e)&&(d<=f)&&(d<=g)&&(d<=h)&&(d<=i)&&(d<=j))
                             {printf("Nilai  MINIMAL adalahD=%d,\n",d);}
            
             //Pernyataan untuk Nilai E              
             if((e<=b)&&(e<=c)&&(e<=d)&&(e<=a)&&(e<=f)&&(e<=g)&&(e<=h)&&(e<=i)&&(e<=j))
                             {printf("Nilai MINIMAL adalah E=%d, \n",e);}
                            
             //Pernyataan untuk Nilai F
             if((f<=b)&&(f<=c)&&(f<=d)&&(f<=e)&&(f<=a)&&(f<=g)&&(f<=h)&&(f<=i)&&(f<=j))
                             {printf("Nilai MINIMAL adalah F=%d,\n",f);}

             //Pernyataan untuk Nilai G
             if((f<=b)&&(f<=c)&&(f<=d)&&(f<=e)&&(g<=f)&&(g<=a)&&(g<=h)&&(g<=i)&&(g<=j))
                             {printf("Nilai MINIMAL adalah G=%d,\n",g);}
            
             //Pernyataan untuk Nilai H
             if((h<=b)&&(h<=c)&&(h<=d)&&(h<=e)&&(h<=f)&&(h<=g)&&(h<=a)&&(h<=i)&&(h<=j))
                             {printf("Nilai MINIMAL adalah H=%d,\n",h);}
            
             //Pernyataan untuk Nilai I
             if((i<=b)&&(i<=c)&&(i<=d)&&(i<=e)&&(i<=f)&&(i<=g)&&(i<=h)&&(i<=a)&&(i<=j))
                             {printf("Nilai MINIMAL adalah I=%d,\n",i);}
            
             //Pernyataan untuk Nilai J
             if((j<=b)&&(j<=c)&&(j<=d)&&(j<=e)&&(j<=f)&&(j<=g)&&(j<=h)&&(j<=i)&&(j<=a))
                             {printf("Nilai MINIMAL adalah J=%d,\n",j);}
                            
             rt=(a+b+c+d+e+f+g+h+i+j)/10;
             printf("RATA-RATA= %.2f\n\n\n",rt);
            
             //==========================================================================================================================
             //==========================================================================================================================            
            
             int bulan;
             printf("masukkan Input angka (1-12) untuk mengetahui bulan : "), scanf("%d",&bulan);
            
             switch (bulan)
             {
             case 1:
                             printf("input'1' untuk Bulan_JANUARY"); break;
             case 2:
                             printf("input'2' untuk Bulan_FEBRUARY"); break;
             case 3:
                             printf("input'3' untuk Bulan_MARET"); break;
             case 4:
                             printf("input'4' untuk Bulan_APRIL"); break;
             case 5:
                             printf("input'5' untuk Bulan_MEI"); break;
             case 6:
                             printf("input'6' untuk Bulan_JUNY"); break;
             case 7:
                             printf("input'7' untuk Bulan_JULY"); break;
             case 8:
                             printf("input'8' untuk Bulan_AGUSTUS"); break;
             case 9:
                             printf("input'9' untuk Bulan_SEPTEMBER"); break;
             case 10:
                             printf("input'10' untuk Bulan_OKTOBER"); break;
             case 11:
                             printf("input'11' untuk Bulan_NOVEMBER"); break;
             case 12:
                             printf("input'12' untuk Bulan_DESEMBER"); break;
             default :
                             printf("Input Yang Dimasukkan Salah"); break;
             }             
             getch ();
             return 0;
}

Output dari program contoh 3 tersebut;
 

Demikianlah yang dapat saya sajikanpada postingkali ini percabangan atau pemilihan beserta pengaplikasianya. Semoga bermanfaat untuk para pembacanya…..






Jumat, 15 November 2013

Tipe Data



 TIPE DATA dan OPERATOR

Pada posting kali ini saya akan menjelaskan sedikit informasi yang saya dapat tentang tipe data dan bentuk- bentuk operasi  dalam  pemrograman bahasa C pada aplikasi “MinGW Developer Studio”.

Tipe Data
       Dalam dunia pemrograman, Tipe data merupakan suatu objek yang digunakkan untuk menyimpan dan merepresentasikan sebuah nilai dan dapat dilakukan operasi terhadap nilai yang disimpan tersebut, Contohnya; Integer,  Float, Real, Character, String,  Array dan sebagainya. Tipe data dapat dibedakan menjadi beberapa bagian, yaitu tipe data kostanta, tipe data dasar, dan tipe data bentukan. Berikut penjelasan dari masing-masing tipe;
1.      Konstanta adalah tipe data yang data nya tidak dapat diubah nilainya saat program dilaksanakan . contohnya : Const  phi =3.14
2.      Tipe data dasar, adalah sebuah tipe data yang langsung sudah ada pada setiap bahasa pemrograman bahasa C. contohnya bilangan bulat (integer), billangan rill (floatting-point),  tipe logika (bolean), karakter, dan sting.
a          Bilangan bulat, yaitu tipe data yang dapat menyimpan nilai-nilai yang berbentuk bilangan bulat (bilangan yang tidak mengandung koma), misalnya 10,15,20,100 dan seterusnya.
b         Bilangan rill (floatting-point), digunakkan untuk menyimpan nilai-nilai bilangan rill ( bilangan pecahan atau bilangan yang mengandung koma) misalnya 2.12, 3.14, 9,8, dan lain-lainya.  Di Bahasa C Dikenal dua tipe untuk bilangan riil yaitu float dan double .
c         Bilangan logika, merupakan sebuah bilangan yang akan menghasilkan nilai true atau false ketika dilakukan operasi logika. Bilangan logika dikenal dengan nama Boolean.
d        Karakter adalah sebuah tipe data yang dapat menyimpan semua huruf abjad, semua tanda baca, dan karakter khusus lainnya
e         String, berguna untuk menyimpan kumpulan dari berbagai karakter.
          pada tipe-tipe data dasar dapat dugunakan/dimasukkan  beberapa fungsi operasi baik operasi aritmatika (+, -, *, /, div, mod) maupun operasi perbandingan (<=,  >=, ==, !=) serta operasi rasional (logika And, dan Or).
3.      Tipe data bentukan adalah tipe data yang didefenisikan/ dibuat sendiri oleh user untuk memenuhi kebutuhan-kebutuhan program yang akan kita buat. Tipe data bentukan dapat dibuat dari satu atau lebih tipe data dasar. Contoh Tipe data dasar yang diberi nama dengan nama tipe baru, Tipe terstruktur.
a.       Tipe dasar dengan nama tipe baru:
·         Agar lebih mudah diingat oleh programmer
·         Nama tipe data ditentukan sendiri oleh programmer, contohnya Type BilanganBulat : integer, dan Type karakter : char.
b.      Tipe terstruktur adalah tipe yang berbentuk rekaman. Tipe terstruktur dapat menyimpan data dengan tipe data yang berbeda dengan satu nama yang sama.
Contoh Type AkunBank : record
Nama : String
Saldo  : float
Tanggal_dibuat : integer




Berikut beberapa contoh program yang menggunakan atau mengaplikasikan dari data-data diatas:

//***********************
#include <stdio.h>

#include <conio.h>



int main ()

{

                int  a=10;

                float b=10.5;

                char c='a';

               

                printf ("Nilai bilangan Bulat : %d\n",a); // menampilkan bilangan bulat dari variable ‘a’.

                printf ("Nilai bilangan rill : %.2f\n",b);   // menampilakan  angka berkoma dari variable ‘b’.

                printf ("Nilai char : %c\n",c);    // memampilkan karakter huruf ‘a’ dari variable ‘b’.

    getch ();

                return 0;

}
//*******************
         Dari program diatas merupakan pengaplikasi dari fungsi tipe data “int, float, char”.  Untuk menampilkan bilangan bulat (tidak ada koma), fungsi “int” yang berfungsi sedangkan utuk menampilkan bilangan berkoma, tipe data “Float” yang digunakkan.
Selain program sederhana diatas masih banyak lagi pengaplikasian dari tipe data yang sedang dibahas di atas. Contohnya lagi ialah program yang bertujuan mencari luas bangun datar seperti luas segi tiga dan luas balok. Berikut sourcecode programnya.
·         Program untuk luas degitiga
//****** Mencari_Nilai_Luas_dari_Segitiga******
#include <stdio.h>

#include <conio.h> 



int main ()

{

                int alas=10, tinggi=10;

                float luas;

                luas=(alas*tinggi)/6;

                        

                printf (" LUAS = %.2f",luas);

                getch ();

                return 0;

               

}
//===========================================
        Sourcecode program diatas menjelaskan tentang mencari luas dari sebuah bangun datar segitiga dimana setiap nilai-nilai untuk mencari luasnya sudah ditentukan. Jadi apabila di compile dan di simulasikan maka akan terlihan langsung nilai hasil dari luas segitiga tanpa kita mengimput nilai secara manual(menekan angka pada keyboard). Utuk program diman kita dapat mengimput nilai masukan untuk mencari hasil luas secara manual dapat kita lihat pada sourcecode program dibawah ini:
//*************************
#include <stdio.h>

#include <conio.h>




int main ()

{

            int alas, tinggi;

            float luas;

                       

            printf ("\tPERHITUNGAN_LUAS_SEGI_3\n\n"),

           

            printf("masukkan alas   :"),

scanf ("%d",&alas), // untuk mencari nilai yang diinputkan.

            printf("masukkan tinggi :"),  

scanf ("%d",&tinggi),

            luas=(alas*tinggi)/2,

            printf("LUAS = %.2f\n",luas),

           

            getch ();

            return 0;          

           

 }

·         Program untuk luas Balok

//***************Mencari_Nilai_Luas_dan_Volume_Balok***************

#include <stdio.h>

#include <conio.h>




int main ()

{

                int t, l, p;

                float luas,volume;

               

                printf ("\tPERHITUNGAN_LUAS_DAN_VOLUME_BALOK\n\n");

                printf("Masukkan_Nilai_Tinggi  :"), scanf("%d",&t),

                printf("Masukkan_Nilai_Panjang :"), scanf("%d",&p),

                printf("Masukkan_Nilai_Lebar   :"), scanf("%d",&l),

                printf("\n"),

                luas=2*(p*l)+2*(p*t)+2*(t*l),

                printf("LUAS_BALOK  = %.1f CM2\n",luas),

                volume=p*l*t,

                printf("VOLUME_BALOK  = %.1f CM3\n",volume),

               

                getch ();

                return 0;

}

//################################################

        Demikianlah yang dapat saya jelaskan tentang tipe data dan operator beserta pengaplikasianya. Semoga bermanfaat untuk para pembaca posting ini…..
 Bye. . . . . . . .