BAHASA C: CONTROL STATEMENT, FUNGSI DAN VARIABLE


CONTROL STATEMENT
Control Statement adalah suatu mekanisme yang mengendalikan jalannya atau pengeksekusiannya blok kode tertentu, baik itu dengan perulangan maupun dengan pernyataan kondisional atau seleksi. Dalam tutorial kali ini kita akan membahas hal-hal yang berkaitan dengan Control Statement dasar, yang terdiri dari If Statement, If-Else Statement, While Statement, Do-While Statement, For Statement dan Foreach Statement.
1.  FOR LOOP
Perulangan for loop
Bentuk penulisan for loop berbeda-beda tergantung aturan yang ada pada bahasa pemrogramnanya, tetapi untuk saat ini kita tidak perlu terlalu memusingkan tentang perbedaan penulisanya, kita akan memahami konsep perulangn ini secara sederhana terlebih dahulu.

Contoh perulangan for loop.
Kita akan mengambil contoh pada kasus diatas, kita akan menulis 100 baris kata "Saya tidak akan mengulangi kesalahan seperti itu lagi"
ambil notepad dan tulisa kode-kode berikut
Simpan filenya dengan nama forloop.js kemudian jalankan.
Kode-kode diatas ini lebih singkat, tapi menghasilkan jauh lebih banyak ketimbang program sebelumnya (perulangan.js)
Lalu apa penjelasan kode diatas?
--> Seperti biasa kita akan menggunakan WSCript.Shell (baris 1)
--> Buka notepad
--> tunggu satu detik
--> Baris selanjutnya merupakan bagian dari perulangan for loop yang bisa dijelaskan seperti ini.
    untuk (i=0; selama i kurang dari 100; naikan nilai i)
 dan lakukan tugas berikut {
  Tulis "Saya tidak akan mengulangi kesalahan seperti itu lagi";
  Tekan ENTER
 }
i=0 merupakan kondisi.
i<100 merupakan syarat.
dan Tulis serta Tekan ENTER merupakan tugas yang akan diulang.

Tahap pertama dari perulangan for tersebut yaitu :
Periksa nilai i, jika nilai i masih sesuai dengan syarat yaitu kurang dari 100 maka naikan nilai i satu tingkat dan kerjakan tugas nya. tahap tersebut akan diualang ulang hingga nilai i naik menjadi seratur dan akhirnya syarat i<100 sudah tidak terpenuhi lagi, dan perulangan akan berhenti.
Tahapan terakhir ini akan terlihat seperti ini, periksa nilai i --> nilai i sudah seratus nih.

2. IF- ELSE ( jika tidak)
Pernyataan If-Else memiliki cara kerja yang persis dengan pernyataan If, hanya saja pernyataan If-Else ini tetap memberikan keluaran berupa pesan tertentu jika suatu kondisi dalam If tidak terpenuhi, selain itu pernyataan ini juga lebih sering digunakan ketimbang pernyataan If.
Rumus pernyataan If-Else adalah,
if (condition) {
then-statement
}else {
else-statement
}
Sedangkan contoh cara penggunaanya yaitu,
Output dari program ini seperti yang dapat diduga yaitu "Itu benar", sedangkan jika kita ganti angka 2 menjadi angka yang lebih besar atau sama dengan dari 5 maka akan menampilkan pesan "Itu salah".
3. WHILE LOOP
Perulangan While loop
Satu lagi jenis perulangan yaitu while loop.
While Loop adalah pernyataan atau blok pernayataan yang diulang-ulang sampai mencapai kondisi yang cocok.
Perulangan jenis ini sama dengan perulangan for loop, dimana pemeriksaan kondisi dilakukan di awal.

contoh programnya.
Berikut merupakan penerapan pernyataan While Loop


Keterangan:
  • int i = 0; adalah penetapan nilai awal (nol) pada perulangan
  • while( i <107) adalah syarat atau batas dari perulangan.
  • i++ adalah pembatasan nilai pada i.
4. SWITCH STATEMENT
Bentuk dari Switch-case merupakan pernyataan yang dirancangan khusus untuk menangani pengambilan keputusan yang melibatkan sejumlah atau banyak alternatif penyelesaian. Pernyataan switch - case ini memiliki kegunaan sama seperti if – else bertingkat.

Kontruksi If-Else yang bertingkat-tingkat seringkali membingungkan pembacaan alur program. Java menyediakan intruksi Switch untuk memudahkan pembacaan alur program bercabang yang sangat banyak. meskipun Switch didesain untuk mengganti If-Else, akan tetapi Switch memiliki batasan:
  1. Data yang diperiksa haruslah bertipe Integer (int) atau Karakter (char).
  2. Range data yang diperiksa bernilai 0 s/d 255.
Bentuk penulisan perintah ini sebagai berikut :
switch (value)
{
case constanta 1 : statement 1;
break;

case constanta 2 : statement 2;
break;
.....
.....etc
default : statement x;
}

Ket:
  • Constanta 1, constanta 2, dst adalah yang akan dicocokkan dengan isi value.
  • Statement adalah pernyataan yang akan di kerjakan jika value (bertipe Integer atau Karakter) cocok dengan salah satu data dari constanta 1 , constanta 2 atau yang lainnya.
  • break adalah perintah untuk mengakhiri statement. Apabila tidak ada break, komputer akan mengeksekusi intruksi yang berada di bawahnya walaupun berada di case yang berbeda.
  • default, bersifat optional. dieksekusi jika value tidak cocok dengan salah satu constanta yang tersedia.
Kesimpulan:
Setiap cabang akan dijalankan jika syarat nilai konstanta tersebut dipenuhi dan default akan dijalankan jika semua cabang diatasnya tidak terpenuhi.
Pernyataan break menunjukan bahwa perintah siap keluar dari switch. Jika pernyataan ini tidak ada, maka program akan diteruskan kecabang – cabang yang lainnya.
5. BREAK AND CONTINUE
Perintah break dan continue adalah perintah biasa di gunakan untuk menghentikan dan meloncati sebuah perulangan, Break dan Continue adalah struktur kontrol yang pada umumnya digunakan dalam sebuah perulangan seperti while, do-while dan for loops atau statement lainnya seperti switch-case, kedua keyword tersebut digunakan dalam sebuah statement untuk menghentikan dan melanjutkan pernyataan didalam statement pada kondisi tertentu
Perintah break
perintah break biasa di gunakan untuk menghentikan sebuah perulangan, entah perulangan while, do-while maupun perulangan for.

sebagai contoh perhatikan perintah berikut :
for (int i = 1 ; i < 100 ; i++) {
System.out.println(i);
   if (i == 20){
     break ;
    }
}

jika perintah diatas di eksekusi maka menghasilkan nilai 1 sampai 20,, karena ketika nilai i sama dengan 20 maka perulangan berhenti oleh perintah break.
contoh ke 2 :
for (int i = 1 ; i < 100 ; i++) {
System.out.print("Aku ");
System.out.print("Anak");
break ;
System.out.print("Indonesia");
}

jika perintah di aatas di eksekusi maka akan menghasilkan kata "Aku Anak", karena kata "Indonesia" tidak muncul karena perulangan telah dihentikan oleh perintah break.
Perintah continue
perintah continue merupakan perintah untuk meloncati sebuah perulangan, perintah continue digunakan untuk meloncati perulanga, sebagai contoh perhatikan perintah berikut :

for (int i = 1 ; i < 100 ; i++) {
System.out.println(i);
   if (i % 2 == 0){
     continue ;
    }
}

jika perintah diatas di eksekusi maka akan menghasilkan angka ganjil dari 1 sampai dengan 100, karena ketika i bernilai genap maka perulangan tersebut di loncati oleh perintah continue.

FUNGSI
1.     Definisi Fungsi
fungsi adalah sebuah kumpulan blok yang berisi kode atau statement yang akan menjalankan suatu program yang nantinya akan dipanggil. Penggunaan fungsi digunakan agar program lebih terstruktur dan effisien sehingga akan memudahkan kita membuat program.

Deklarasi Fungsi :

Untuk mendeklarasikan sebuah fungsi biasanya sebuah kumpulan kode dalam satu blok akan ditaruh di atas fungsi main(), bentuk umum fungsi yaitu :

     tipe-data nama-fungsi(daftar variabel)
     deklrasi variabel;
    {
            tubuh-fungsi;
     }

Contoh Program Sederhana Fungsi :

#include <stdio.h>

int fungsi_luas(int panjang, int lebar)  //Mendeklarasikan Fungsi
{
    int luas; // Isi dari Fungsi
    luas = panjang*lebar;

    return(luas); // Mengembalikan nilai fungsi
}

int main()
{
    int panjang = 5;
    int lebar = 4;
    int luas;

    luas = fungsi_luas(panjang,lebar); //Memanggil Fungsi
    printf("Luasnya adalah %d", luas); //Menampilkan nilai luas setelah dipanggil dari fungsi

    return 0;
}



VARIABEL

Automatic variables dibahasa C

Variabel yang dideklarasikan di dalam blok dikenal sebagai variabel otomatis atau lokal; variabel-variabel ini mengalokasikan memori secara otomatis saat masuk ke blok itu dan membebaskan memori yang ditempati saat keluar dari blok itu.
Variabel-variabel ini memiliki cakupan lokal untuk blok itu saja yang berarti ini dapat diakses di mana variabel dinyatakan.
Kata kunci 'otomatis' dapat digunakan untuk mendeklarasikan variabel otomatis tetapi kami dapat mendeklarasikan variabel ini tanpa menggunakan kata kunci 'otomatis'.
    int main()
    {
            auto int a;
            int b;
            ....
            return 0;
    }
Di sini, kedua variabel a dan b adalah variabel otomatis.
Variabel otomatis dalam fungsi yang ditentukan pengguna lain
Variabel otomatis atau lokal dapat dideklarasikan dalam fungsi yang ditentukan pengguna di awal blok.
void myFunction(void)
{
        int x;
        float y;
        char z;
        ...
}
 
int main()
{
        int a,b;
        myFunction();
        ....
        return 0;
}
Dalam cuplikan kode ini, variabel x, y dan z adalah variabel lokal / otomatis dari fungsi myFunction (), sedangkan variabel a dan b adalah variabel lokal / otomatis dari fungsi utama ().

      Variabel eksternal       
Variabel eksternal merupakan kebalikan dari vaiabel otomatis. Variabel eksternal adalah variabel yang didifinisikan diluar fungsi manapun. Variabel ini dikenal juga sebagai variabel global, sebab variabel ini dikenal disemua fungsi. Anda dapat mendeklarasikan bukan mendifinisikan, karena tidak ada pengalokasian memori.
Sehingga sifat dari variabel eksternal kebalikan dari variabel otomatis.

Penggunaan variabel eksternal diusahakan sesedikit mungkin atau sedapat mungkin tidak usah digunakan. Tidak lain adalah karena variabel ini mudah sekali berubah oleh pernyataan penugasaan yang letaknya bisa dimana saja. Ini bisa menimbulkan efek samping yang sulit untuk melacaknya, terutama untuk program yang besar.
Variabel eksternal mempunyai durasi selama program diekskusi. Dengan kata lain, memori yang digunakan untuk variabel ini tetap dipertahankanselama program belum berakhir.
Variabel statis

Baik variabel eksternal maupun otomatis dapat berkedudukan sebagai variabel statis. Suatu variabel statis mempunyai sifat :

Jika variabel local berdiri sebagai variabel statis, maka :
  Variabel tetap hanya dapat diakses pada fungsi yang mendifinisikannya
  Variabel tidak hilang saat dieksekusi fungsi berakhir nilainya akan tetap dipertahankan, sehingga akan dikenali pada pemanggilan fungsi untuk tahap berikutnya.
  Inisialisasi oleh pemrograman akan dilakukan sekali saja selama program dijalankan, jika tidak ada inisialisasi secara eksplisit, variabel diisi dengan nol.
Jika Variabel eksternal dijadikan sebagai variabel statis, variabel ini dapat diakses oleh semua file yang didifinisikan pada file yang sama dengan variabel eksternal tersebut (hal ini bermanfaat pada pemrograman file berganda atau kode program ditaruh pada beberapa file).


STORAGE CLASS
Kelas penyimpanan mewakili visibilitas dan lokasi variabel. Ia memberitahukan dari bagian kode mana kita dapat mengakses suatu variabel. Kelas penyimpanan digunakan untuk menjelaskan hal-hal berikut:

    Ruang lingkup variabel.
    Lokasi tempat variabel akan disimpan.
    Nilai yang diinisialisasi dari suatu variabel.
    Seumur hidup variabel.
    Siapa yang dapat mengakses variabel?

Dengan demikian kelas penyimpanan digunakan untuk mewakili informasi tentang suatu variabel.

CATATAN: Variabel tidak hanya terkait dengan tipe data, nilainya tetapi juga kelas penyimpanan.

Ada total empat jenis kelas penyimpanan standar. Tabel di bawah ini menunjukkan kelas penyimpanan di 'C'.
Kelas penyimpanan otomatis

Variabel yang didefinisikan menggunakan kelas penyimpanan otomatis disebut sebagai variabel lokal. Auto adalah singkatan dari kelas penyimpanan otomatis. Variabel dalam kelas penyimpanan otomatis secara default jika tidak ditentukan secara eksplisit.

Cakupan variabel otomatis dibatasi hanya dengan blok tertentu. Setelah kontrol keluar dari blok, akses dihancurkan. Ini berarti hanya blok tempat variabel otomatis dideklarasikan dapat mengaksesnya.

Kata kunci otomatis digunakan untuk menentukan kelas penyimpanan otomatis. Secara default, variabel otomatis berisi nilai sampah.

Example, auto int age;
Program di bawah ini mendefinisikan fungsi dengan memiliki dua variabel lokal
 
int add(void) {
   int a=13;
   auto int b=48;
return a+b;}
Kami mengambil program lain yang menunjukkan tingkat ruang lingkup "tingkat visibilitas" untuk variabel otomatis di setiap kode blok yang saling independen:
 
#include <stdio.h>
int main( )
{
  auto int j = 1;
  {
    auto int j= 2;
    {
      auto int j = 3;
      printf ( " %d ", j);
    }
    printf ( "\t %d ",j);
  }
  printf( "%d\n", j);}
OUTPUT:
 3 2 1 

Extern storage class

Extern adalah singkatan dari kelas penyimpanan eksternal. Kelas penyimpanan eksternal digunakan ketika kita memiliki fungsi global atau variabel yang dibagi antara dua atau lebih file.
Kata kunci extern digunakan untuk mendeklarasikan variabel global atau fungsi dalam file lain untuk memberikan referensi variabel atau fungsi yang telah didefinisikan dalam file asli.
Variabel yang didefinisikan menggunakan kata kunci eksternal disebut sebagai variabel global. Variabel-variabel ini dapat diakses di seluruh program. Perhatikan bahwa variabel extern tidak dapat diinisialisasi itu telah didefinisikan dalam file asli
 
Example, extern void display();

First File: main.c

#include <stdio.h>
extern i;
main() {
   printf("value of the external integer is = %d\n", i);
   return 0;}

Second File: original.c

#include <stdio.h>
i=48;
Result:
 value of the external integer is = 48
In order to compile and run the above code, follow the below steps
Step 1) Create new project,
  1. Select Console Application
  2. Click Go
Step 2) Select C and click Next
Step 3) Click Next
Step 4) Enter details and click Next
Step 5) Click Finish
Step 6) Put the main code as shown in the previous program in the main.c file and save it
Step 7) Create a new C file [File -> new -> Empty File , save (as original.c ) and add it to the current project by clicking "OK" in the dialogue box .
Step 8) Put and save the C code of the original.c file shown in the previous example without the main() function.
Step 9) Build and run your project. The result is shown in the next figure

Static storage class

Variabel statis digunakan dalam fungsi / file sebagai variabel statis lokal. Mereka juga dapat digunakan sebagai variabel global
• Variabel lokal statis adalah variabel lokal yang mempertahankan dan menyimpan nilainya antara panggilan fungsi atau blok dan tetap hanya terlihat oleh fungsi atau blok di mana ia didefinisikan.
• Variabel global statis adalah variabel global yang hanya terlihat oleh file yang dideklarasikan.
Example: static int count = 10;
Keep in mind that static variable has a default initial value zero and is initialized only once in its lifetime.
#include <stdio.h> /* function declaration */
void next(void);
static int counter = 7; /* global variable */
main() {
 while(counter<10) {
      next();
      counter++;   }
return 0;}
void next( void ) {    /* function definition */
   static int iteration = 13; /* local static variable */
   iteration ++;
   printf("iteration=%d and counter= %d\n", iteration, counter);}
Hasil:
iterasi = 14 dan kontra = 7
iterasi = 15 dan kontra = 8
iterasi = 16 dan kontra = 9
Variabel global dapat diakses di seluruh file sedangkan variabel statis hanya dapat diakses ke bagian tertentu dari kode.
Umur variabel statis ada di seluruh kode program. Variabel yang dideklarasikan atau diinisialisasi dengan menggunakan kata kunci statis selalu mengandung nol sebagai nilai default.
Daftarkan kelas penyimpanan
Anda dapat menggunakan kelas penyimpanan register ketika Anda ingin menyimpan variabel lokal dalam fungsi atau blok dalam register CPU, bukan RAM untuk memiliki akses cepat ke variabel-variabel ini. Misalnya, "penghitung" adalah kandidat yang baik untuk disimpan dalam register.
Contoh: daftar umur;
Register kata kunci digunakan untuk mendeklarasikan kelas penyimpanan register. Variabel yang dideklarasikan menggunakan kelas penyimpanan register memiliki masa hidup di seluruh program.
Ini mirip dengan kelas penyimpanan otomatis. Variabel terbatas pada blok tertentu. Satu-satunya perbedaan adalah bahwa variabel yang dideklarasikan menggunakan kelas penyimpanan register disimpan di dalam register CPU dan bukan memori. Register memiliki akses yang lebih cepat daripada memori utama.
Variabel yang dideklarasikan menggunakan kelas penyimpanan register tidak memiliki nilai default. Variabel-variabel ini sering dideklarasikan pada awal program.
#include <stdio.h> /* function declaration */
main() {
{register int  weight;
int *ptr=&weight ;/*it produces an error when the compilation occurs ,we cannot get a memory location when dealing with CPU register*/}
}
OUTPUT:
error: address of register variable 'weight' requested


COMPILE MULTI-FILE PROGRAM
Saat kita mengompilasi sebuah program yang kita gunakan menggunakan bahasa pemrograman C#, kompiler bahasa pemrograman C# akan menerjemahkan kode-kode C# kita menjadi MSIL (Microsoft Intemediate Language) yang sama seperti saat kita menulis kode menggunakan Visual Basic.Net, Visual C++.Net, dan sebagainya, sebelum kemudian menerjemahkannya kembali menjadi berkas-berkas berekstensi .exe atau .dll . Multifile Assembly dalam hal ini merupakan proses kompilasi beberapa berkas .NET yang masing-masing disebut sebagai module yang juga berisi berkas assembly manifest yang didalamnya terdapat instruksi-instruksi CIL (Common Intermediate Language) dan aneka Metadata terkait.

Konversi kode C# ke MSIL

Lalu komponen apa yang memungkinkan kode-kode bahasa pemrograman C# dikompilasi agar kompabilitas antarbahasa keluarga .Net tetap terjaga? Komponen yang dimaksud adalah Just In Time Compiler (JITers) yang bertindak sedemikian rupa sehingga saat MSIL akan dieksekusi , CLR (Common Language Runtime) akan memanggil JITers yang akan menerjemahkan kode-kode bahasa keluarga .Net menjadi kode-kode spesifik terhadap komputer tertentu. JITers peduli terhadap komputer-komputer tertentu yang digunakan untuk menjalankan program serta sistem operasi yang digunakannya. Dalam hal ini Microsoft Corp. berani menjamin bahwa kode-kode bahasa dari pemrograman .Net akan dieksekusi lebih cepat dibandingkan dengan kode-kode yang menggunakan bahasa C/C++.

Tidak seperti bahasa C/C++ tradisional, kode bahasa C# tidak secara langsung diterjemahkan kedalam bahasa mesin. Kompiler bahasa pemrograman C# mengkonversi kode C# menjadi berkas MSIL yang dinamakan asembly. Berkas MSIL dapat dibuat menggunakan semua bahasa pemrograman yang dikembangkan diatas CLR (misalnya Visual C++, Visual J#, serta Visual Basic). Adapun diagram di bawah ini memperlihatkan bagaimana kode C# yang kita tulis dikonversi menjadi kode yang dapat dieksekusi oleh komputer.

Diagram Alir Konversi Kode C# ke Kode yang Dapat Dijalankan di Sistem Operasi


Berkas MSIL hadir dalam bentuk berkas berekstensi .exe serta .dll, tetapi alih-alih beralan langsung diatas sistem operasi Windows, mereka dieksekusi oleh CRL. CLR mengomplilasi program MSIL ke kode mesin saat diperlukan. Proses ini dinamakan kompilasi JIT (Just In Time). Kode mesin inilah yang kemudian dieksekusi secara langsung oleh komputer. Dengan membuat kode yang bersifat netral terhadap perangkat keras komputer hingga saat terakhir, maka keamanan dan portabilitas akan meningkat. Dalam hal ini proses ini secara umum tersembunyi dari pandangan pengguna. Dengan kata lain, program yang ditulis menggunakan bahasa C# dikompilasi, dieksekusi, serta didistribusikan dengan cara yang sama seperti program yang ditulis menggunakan bahasa pemrograman lainnya. Sepanjang framework .NET terinstalasi di komputer yang bersangkutan, program C# akan berjalan dengan baik seperti aplikasi yang lain. Hal ini mirip dengan JRE (Java Runtime Environment) yang memungkinkan program bahasa Java berjalan di sembarang komputer.

Selain hal diatas , Microsoft Corp. juga menyediakan suatu pustaka kelas yang dinamakan FCL(Framework Class Library). FCL ini memuat ribuan kelas yang mampu melakukan akses ke API (Application Programming Interface) untuk sistem operasi Windows (Win API), sehingga pemrogram lebih nyaman saat melakukan  pemrograman akses data, multithreading, struktur data yang bersifat umum, pemrograman jaringan dan sebagainya. Kelas-kelas dalam FCL ini juga dirancang untuk menggunakan paradigma pemrograman berorientasi objek yang sangat ketat sehingga dapat digunakan ulang secara sangat efektif dan efisien.

Karena dirancang dalam hubungannya dengan framework .NET, aplikasi yang dikembangkan menggunakan bahasa pemrograman C# sangat sesuai untuk framework .Net ini. Dalam hal ini framework .Net memiliki sejumlah pustaka kelas yang menyediakan sejumlah besar kelas yang sangat diperlukan untuk mengembangkan aplikasi, seperti fungsionalitas teks dangrafik, kelas-kelas menyimpan data di basis data, kakas (tool) untuk memanipulasi XML, metode-metode untuk melakukan akses terhadap situs web yang diperlukan, dan sebagainya. Kelompok kelas yang dimiliki framework .NET disebut dengan namespace. Namespace itulah yang merupakan kelompok kelas-kelas yang saling berhubungan, dan memiliki hubungan untuk menyelesaikan masalah tertentu. 























SUMBER






Komentar

Postingan populer dari blog ini

BAHASA PEMROGRAMAN C

RUMUS TINGKAT KEMATIAN KASAR DAN KEMATIAN KHUSUS SERTA TINGKAT KELAHIRAN KASAR DAN KELAHIRAN KHUSUS

TARI THENGUL, TARI DAERAH DARI BOJONEGORO