Lompat ke konten Lompat ke sidebar Lompat ke footer

Membuat Nilai Variabel Beku Menggunakan Konstanta Bahasa C

Terdapat banyak cara untuk membuat variabel sebagai konstanta pada pemprograman bahasa C dan C++, Berikut ini akan dikemukakan beberapa cara yang dapat dilakukan dalam proses pendeklarasian konstanta pada program:


Sebelum mempelajari materi tentang cara Membuat Nilai Variabel Beku Menggunakan Konstanta Bahasa C, terlebih dahulu pelajari materi tentang: Deklarasi Kompleks Bahasa C dan Fungsinya, Variabel Global Bahasa C dan Fungsinya, dan Internal dan Eksternal Linkage Bahasa C Beserta Fungsinya.

Dalam pengembangan perangkat lunak, seringkali diperlukan penggunaan nilai konstanta yang tidak boleh diubah selama eksekusi program. Dalam Bahasa C, pengembang dapat membuat variabel konstanta menggunakan kata kunci const. Artikel ini akan membahas cara membuat nilai variabel konstanta, manfaatnya, dan panduan penggunaannya.

Deklarasi dan Inisialisasi Variabel Konstanta

Dalam Bahasa C, nilai variabel konstanta dapat dideklarasikan dan diinisialisasi menggunakan kata kunci const. Berikut adalah contoh deklarasi dan inisialisasi variabel konstanta:

Contoh:

#include <stdio.h>


int main() {

const int nilaiKonstanta = 10;


// Upaya mengubah nilai

// konstanta akan menyebabkan

// kesalahan kompilasi


// nilaiKonstanta = 15; 

// Error: assignment of

// read-only variable

// 'nilaiKonstanta'


// Menampilkan nilai

// variabel konstanta

printf("Nilai variabel

 konstanta: %d\n",

 nilaiKonstanta);


return 0;}

Catatan: Pada contoh sebelumnya, nilai Konstanta dideklarasikan sebagai variabel konstanta dengan nilai awal 10. Setelah deklarasi, upaya untuk mengubah nilainya akan menyebabkan kesalahan kompilasi.

satu, Menggunakan keyword const: keyword const menentukan bahwa sebuah variabel atau object nilai adalah konstanta dan tidak dapat dimodifikasi nilainya pada saat waktu kompilasi.

Contoh:

// Demonstrasi konstanta

// specifier pada bahasa C

#include <stdio.h>

 

int main()

{

const int num = 1;

 

// Modifikasi nilai variabel num 

num = 5

return 0;

}

Akan menghasilkan error seperti berikut:
errorassigment of read-only variable 'num'

dua, Menggunakan keyword enum: enumeration atau enum adalah tipe data yang didefinisikan user pada bahasa C dan C++. Umumnya digunakan untuk penamaan pada konstanta integral yang membuat program mudah untuk dibaca dan dirawat.
  • /* In C and C++ internally the default */ /* type of 'var' is int */ enum VARS { var = 42 };
  • /* In C++ 11 (can have any integral type): */ enum : type { var = 42; }
  • /* where mytype = int, char, long etc. */ /* but it can't be float, double or user defined data type. */

Catatan: tipe data enum terbatas hanya pada contoh sebelumnya.

tiga, Menggunakan keyword constexpr: penggunaan constexpr hanya digunakan pada C++ dan tidak digunakan pada bahasa C, dimana penggunaannya untuk mendeklarasikan variabel sebagai sebuah konstanta. Tetapi akan gagal untuk dikompilasi jika inisialisasinya bukan sebuah ekspresi konstanta.

Contoh:

#include <iostream>

 

int main()

{

int var = 5;

constexpr int k = var;

std::cout << k;

return 0;

}

Program tersebut akan menghasilkan error.
errorthe value of 'var' is not usable in a constant expression

Karena variabel 'var' bukanlah ekspresi konstanta. Karenanya untuk dapat membuatnya sebagai konstanta, maka variabel 'var' harus dideklarasikan dengan keyword const.

Baca Juga:

empat, Menggunakan makro: Penggunaan makro juga dapat dipakai untuk mendefinisikan konstanta, tetapi terdapat sedikit celah, dimana makro hanya berfungsi dalam penanganan preprosesor yang tidak dilakukan oleh kompilator. Karenanya tidak direkomendasikan penggunaan makro untuk membawa pemeriksaan tipe informasi dan bahkan cenderung akan mengalami error.

Contoh: C++

// Demonstrasi permasalah-

// an pada 'Macros' C++

#include <iostream>

using namespace std;

 

#define var 5

int main() {

printf("%d ", var);

 

#ifdef var

#undef var

 

// pendefinisian ulang variabel

// var dengan nilai 10

#define var 10

#endif

 

printf("%d", var);

return 0;

}

Output:
5 10

Contoh: Bahasa C

// Demonstrasi masalah penggu-

// naan 'macros ' pada bahasa C

#include <stdio.h>

#define var 5

 

int main()

{

printf("%d ", var);

 

#ifdef var

#undef var

 

// pendefinisian ulang nilai

// var dengan nilai 10

#define var 10

#endif

 

printf("%d", var);

return 0;

}

Output:
5 10

Catatan: preprocessor dan enum hanya bekerja sebagai konstanta literal dan konstanta integer dan hanya mendefinisikan nama simbol dari konstanta. Namun jika membutuhkan variabel konstanta dengan alamat memori spesifik maka dapat menggunakan 'const' atau 'constexpr' sesuai dengan yang dipersyaratkan.

Manfaat Variabel Konstanta:
  • Keterbacaan Kode: Penggunaan variabel konstanta dapat meningkatkan keterbacaan kode. Dengan memberikan nama yang bermakna pada nilai konstanta, membaca kode menjadi lebih mudah dipahami.
  • Keamanan Kode: Variabel konstanta membantu melindungi nilai-nilai yang tidak seharusnya diubah selama eksekusi program. Hal ini dapat menghindari perubahan tak terduga dan memastikan kestabilan program.
  • Pemeliharaan Kode: Dengan nilai konstanta yang dideklarasikan di satu tempat, pemeliharaan kode menjadi lebih mudah. Jika nilai konstanta perlu diubah, maka hanya perlu mengubahnya di satu lokasi saja, dan perubahan tersebut akan mencerminkan di seluruh program.

Panduan Penggunaan Variabel Konstanta:
  • Beri Nama yang Jelas: Berikan nama yang jelas dan deskriptif pada variabel konstanta agar maksud dan tujuan nilainya dapat dipahami tanpa harus melihat ke dalam detail implementasi. Sintak: const double PI = 3.14159;
  • Gunakan Huruf Kapital untuk Konstanta: Sebagai konvensi, gunakan huruf kapital untuk menulis nama variabel konstanta. Ini membantu membedakan variabel konstanta dengan variabel biasa. Sintak: const int JUMLAH_MURID = 50;
  • Deklarasikan di Awal Blok Kode: Deklarasikan variabel konstanta di awal blok kode atau file header untuk memastikan keterbacaan dan konsistensi.
Contoh:

#include <stdio.h>


int main() {

const int BATAS_ATAS = 100;

return 0;}

  • Hindari Penggunaan Makro: Hindari menggunakan makro praprosesor (#define) untuk mendefinisikan konstanta. Penggunaan const lebih disarankan karena memberikan tipe data dan melibatkan pengecekan tipe oleh kompilator.
    • #define PI 3.14159 // Hindari penggunaan makro untuk konstanta
    • const double PI = 3.14159; // Disarankan penggunaan 'const'

Contoh: Program Penggunaan Variabel Konstanta.

#include <stdio.h>


int main() {

const int PANJANG_ARRAY = 10;

int data[PANJANG_ARRAY];


for (int i = 0; i < PANJANG_ARRAY; ++i) 

{data[i] = i * i;}


// Menampilkan data array

printf("Data array: ");

for (int i = 0; i < PANJANG_ARRAY; ++i) 

{printf("%d ", data[i]);}


return 0;}

Catatan: Pada contoh sebelumnya, PANJANG_ARRAY digunakan sebagai variabel konstanta untuk menentukan panjang array. Nilai konstanta ini memudahkan dalam menentukan ukuran array dan meningkatkan keterbacaan kode.

Meskipun variabel konstanta memiliki kelebihan, penggunaannya juga dapat menimbulkan beberapa kekurangan atau pertimbangan yang perlu diperhatikan dalam pengembangan perangkat lunak. Berikut adalah beberapa kekurangan dari penggunaan variabel konstanta dalam Bahasa C:
  • Keterbatasan pada Waktu Kompilasi: Variabel konstanta diidentifikasi dan nilainya ditentukan pada waktu kompilasi. Oleh karena itu, nilai variabel konstanta harus diketahui selama waktu kompilasi, dan tidak dapat diambil dari sumber eksternal atau dihitung pada waktu eksekusi. Sintak: /* Tidak valid: Konstanta harus diketahui pada waktu kompilasi */ const int PANJANG_ARRAY = hitungPanjangArray();
  • Penggunaan Ruang Memori Tambahan: Beberapa implementasi kompilator mungkin menangani variabel konstanta dengan cara yang membuatnya disimpan di ruang memori, meskipun nilainya tetap konstan selama eksekusi program. Hal ini dapat mengakibatkan penggunaan ruang memori tambahan yang mungkin tidak diinginkan dalam situasi tertentu. Sintak: const int NILAI = 42;
  • Pengaruh Terhadap Kinerja: Penggunaan variabel konstanta yang berlebihan, terutama pada lingkup yang besar, dapat memberikan pengaruh terhadap kinerja program. Hal ini karena setiap variabel konstanta memerlukan alokasi dan pengelolaan memori. Sintak: const int JUMLAH_MURID = 1000;
  • Batasan Penggunaan di Beberapa Konteks: Beberapa konteks dalam Bahasa C, seperti penggunaan dalam deklarasi array atau dalam beberapa kasus penggunaan sebagai panjang array, memerlukan konstanta waktu kompilasi. Variabel konstanta yang didefinisikan pada waktu eksekusi tidak dapat digunakan dalam konteks tersebut. Sintak: /* Tidak valid: Panjang array harus diketahui pada waktu kompilasi */ const int PANJANG_ARRAY = hitungPanjangArray(); int data[PANJANG_ARRAY];
  • Kelemahan dalam Konteks Makro: Dalam beberapa situasi, makro praprosesor (#define) dapat lebih fleksibel daripada variabel konstanta, terutama untuk nilai-nilai yang memerlukan substitusi teks yang rumit atau yang terlibat dalam ekspresi praprosesor. Sintak: #define PI 3.14159
  • Kesulitan Pengujian: Variabel konstanta mungkin sulit diuji (testing) karena nilainya tetap selama eksekusi program. Pengujian mungkin memerlukan pendekatan yang berbeda untuk menangani variabel konstanta dalam berbagai skenario. Sintak: const int BATAS_ATAS = 100;
  • Kesulitan dalam Perubahan Nilai: Jika nilai variabel konstanta perlu diubah di masa depan, pengembang perlu memodifikasi nilai secara eksplisit di seluruh kode yang menggunakan variabel tersebut. Ini dapat menambah kompleksitas pemeliharaan dan pembaruan kode. Sintak: const int NILAI_BATAS = 10; /* Jika perlu diubah, perubahan harus dilakukan di seluruh kode */

Variabel konstanta dalam Bahasa C merupakan alat yang berguna dalam meningkatkan keterbacaan dan pemeliharaan kode. Meskipun memiliki beberapa kekurangan, pertimbangkan penggunaannya dengan bijak sesuai dengan kebutuhan spesifik dari proyek yang sedang dikerjakan.

Kesimpulan

Membuat nilai variabel konstanta dalam Bahasa C dengan menggunakan kata kunci const membawa manfaat dalam hal keterbacaan, keamanan, dan pemeliharaan kode. Dengan memberikan nama yang jelas dan mengikuti panduan penggunaan, penggunaan variabel konstanta dapat meningkatkan struktur dan kejelasan kode dalam pengembangan perangkat lunak.

Referensi Tambahan:

Artikel ini didedikasikan kepada: Anggita Ragil Subekti, Bagus Arief Setiawan, Betari Siwi Riyandhini, Desta Ellen Rizki Nur Cahyani, dan Evana Ayu Lestari.

6 komentar untuk "Membuat Nilai Variabel Beku Menggunakan Konstanta Bahasa C"

  1. Apa yang dimaksud dengan konstanta apakah sama dengan keyword conts?

    BalasHapus
    Balasan
    1. Keyword const atau konstanta digunakan untuk menetapkan apakah nilai variabel yang disimpan adalah konstan, dan selanjutnya informasi tersebut diberitahukan kepada kompilator untuk mencegah supaya nilai tersebut tidak dapat dilakukan perubahan sama sekali.

      Pada c++ nilai konstanta secara default ditujukan untuk internal linkagea atau tautan internal, yang memungkinkan nilai untuk muncul pada file header.

      Keyword const juga dapat digunakan pada saat pendeklarasian pointer pada bahasa C.

      Hapus
    2. Penggunaan const adalah untuk menunjukkan bahwa nilai variabel tersebut tidak dapat diubah atau dimodifikasi sama sekali,

      Hapus
  2. Apa yang dimaksud dengan enum pada bahasa C?

    BalasHapus
    Balasan
    1. Pencacahan atau enumeration adalah tipe data yang digunakan untuk menetapkan nama ke konstanta integral yang memuat program mudah untuk dibaca dan dilakukan perawatan. "enum" merupakan keyword yang digunakan untuk mendeklarasikan suatu unumerasi pada bahasa pemrograman. Keyword "enum" juga dapat digunakan untuk mendefinisikan variabel jenis enum.

      Hapus
    2. aku kira enum itu kelanjutannya enum, tujuh, delapan, hahahahaha

      Hapus

Hubungi admin melalui Wa : +62-896-2414-6106

Respon komentar 7 x 24 jam, mohon bersabar jika komentar tidak langsung dipublikasi atau mendapatkan balasan secara langsung.

Bantu admin meningkatkan kualitas blog dengan melaporkan berbagai permasalahan seperti typo, link bermasalah, dan lain sebagainya melalui kolom komentar.

- Ikatlah Ilmu dengan Memostingkannya -
- Big things start from small things -