Pernyataan Switch Pada C++


Pernyataan switch sangat effisien untuk multiway decision/selection yang berdasar pada evaluasi suatu ekpresi yang melibatkan bilangan-bilangan bulat/karakter. Pernyataan switch akan melakukan pencocokan apakah hasil evaluasi ekpresi tersebut cocok dengan salah satu dari sejumlah konstanta. Format dari pernyataan switch adalah :

switch (ekpresi}

{

case konstanta_l:

pernyataan;

.

.

.

break;

 

case konstanta_2:

pernyataan;

.

.

.

break;

.

.

.

default:

pernyataan;

.

.

.

}

Konstanta diasosiasikan dengan masing masing case. Jika hasil evaluasi ekpresi ada kecocokan dengan salah satu konstanta maka penyataan-pemyataan yang mengikuti case yang cocok tersebut akan dieksekusi. Pemyataan terakhir pada masing masing case biasanya adalah break yang berfungsi untuk menghentikan pemyataan switch. Bila tidak pakai break maka pemyataan-pernyataan pada case yang lain, yang terletak di bawah case yang cocok, akan dieksekusi. Keadaan yang terakhir ini pada umumnya tidak diinginkan.

Contoh program berikut ini menjelaskan pemakaian pemyataan switch.

//C8_3.CPP

#include <iostream.h>

 

main() {

int c, i=0;

cout <<  “l.  Tambah l\n”;

cout << “2.   Kurang l\n”;

cout <<  “3.  Tampilkan\n”;

cout <<  “0.  Exit\n\n\n”;

 

do{

cin >> c;

switch (c) {

case 1:

i++;

break;

case 2:

i–;

break;

case 3:

cout << i << “\n”;

break;

case 0:

break;

default:

cout <<  “Error”;

}

} while (c != 0);

return 0;

}

#include Preprocessor Directive

#include preprocessor directive menyisipkan suatu text file yang ada di disk kedalam program. Format dari #include preprocessor directive adalah ;

#include <nama_file>      atau

#include “nama_file”

Text file yang disisipkan dapat apa saja namun umumya yang disisipkan adalah header file. Header file ini akan memberi informasi kepada kompiler C++ bagaimana mengiriterpretasikan fungsi-fungsi library yang akan dipakai. Misalnya kompiler C++ memerlukan informasi mengenai fungsi cout,fungsi cin maka perlu disisipkan header file iostream.h sebagai berikut:

#include <iostream.h>        atau

#include “iostream.h”

Tampak bahwa untuk menyisipkan text file ada dua pilihan:

  • Nama file diantara tanda kurung < dan tanda kurung >, pilihan ini memberitahu preprocessor untuk mencari header file di lokasi default yang telah ditetapkan sebelumnya, pilihan ini biasa dipakai untuk menyisipkan standard header yang terletak pada include file direktori yang telah di set untuk kompiler yang dipakai. Standard header file ini berasal dari kompiler. Programmer pada umumnya tidak melakukan perubahan pada standar header file.
  • Nama file diantara sepasang tanda kutip ganda (” “), pilihan ini memberitahu preprocessor untuk mencari dulu header file di direktori yang saat ini aktip kalau tidak ketemu dilanjutkan pencariannya ke lokasi-lokasi yang telah ditetapkan oleh programmer sebelumnya, pilihan ini biasa dipakai untuk menyisipkan non-standard header file. Non-standard header file sering mengalami modifikasi oleh programmer yang membuatnya dan preprocessor selalu menyisipkan yang terbam.

#if, #else dan  #endif Preprocessor Directive

Antara kompiler yang satu dengan kompiler yang lainya dapat menggunakan nama yang berbeda untuk suatu header file yang definisinya hampir sama. Misal header file alloc.h pada Borland C++ adalah hampir ekivalen dengan header file malloc.h pada Microsoft C++. Jadi kita perlu sarana untuk menentukan header file yang mana yang harus disisipkan pada saat program dikompile, misalnya program yang dibuat harus mendukung Borland C++ dan Microsoft C++ maka pemakaian preprocessor directivenya adalah sebagai berikut:

#ifdef _BORLAND

#include <alloc.h>

#else

#include <malloc.h>

#endif

Kalau header file ini dikompile dengan Borland C++ maka nama simbolik _BORLAND_ otomatis didefinisikan oleh kompiler sehingga standard header file alloc.h yang disisipkan.

Dalam C++ programmer umumnya membatasi apa saja yang dapat masuk kedalam header file yang dibuat. Header file umumnya hanya memuat defmisi-definisi misalnya tipe, nama variabel ektemal. definisi struktur, konstanta, makro dan prototipe fungsi.

Programmer biasanya menghindari satu header file raksasa yang memuat semua definisi karena memperlambat proses kompilasi. Umumnya programmer lebih menyukai beberapa header file.yang lebih kecil, jadi ada beberapa header file. Kalau satu header file disisipkan lebih dari satu kali secara tidak sengaja (header file dapat bersusun, artinya dalarn suatu header file ada header file yang lain) maka akan ada definisi ulang yang akan menimbulkan kesalahan pada saat program di kompile. Untuk menghindari keadaan ini dapat dipakai preprocessor directive #ifndef, #define dan #endif untuk membuat header file sebagai berikut:

#ifhdef _NAMAFILE_H

#define _NAMAFILE_H

#define VER_NUM         “1.00”

#define REL_DATE         “27/09/95”

#if _WINDOWS_

#define OS_VER            “WINDOWS”

#else

#define OS_VER             “DOS

#endif

#endif

Pada saat header file ini dikompile, kompiler pertama-tama melakukan check apakah _NAMAFILE_H telah didefinisikan. Bila belum didefinisikan maka header file ini belum pemah disisipkan sehingga _NAMAFILE_H didefinisikan dulu lalu header file ini disisipkan. Bila _NAMAFILE_H sudah didefinisikan maka isi dari header file ini tidak disisipkan.


Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *