Senin, November 18, 2019

Kelas Penyimpanan pada bahasa C

Kelas penyimpanan digunakan untuk mendeksripsikan fitur dari variabel atau fungsi. Fitur ini pada dasarnya mencakup scope, visibilitas, dan life-time yang membantu untuk melacak keberadaan dari variabel tertentu selama program dijalankan.

Bahasa C menggunakan empat kelas penyimpanan, yang bernama:

kelas penyimpanan pada bahasa c
Gambar 1 kelas penyimpanan

satu, auto: Merupakan kelas penyimpanan default (storage default class) untuk segala deklarasi variabel di dalam sebuah fungsi atau sebuah block. Keyword auto biasanya digunakan ketika membuat program dalam bahasa C. Variabel auto hanya bisa diakses dengan block atau fungsi yang telah dideklarasikan dan tidak berada diluar dari scope-nya. Keyword ini hanya bisa diakses dengan block bersarang bersamaan parent block atau fungsi pada variabel auto yang telah dideklarasikan. Namun, auto juga bisa diakses dari luar scope-nya jika menggunakan konsep pointer, dengan cara melakukan pointing atau penunjukkan pada lokasi memori yang tepat dimana variabel berada. Keyword ini diberi nilai sisa secara otomatis dimanapun keyword dideklarasikan.

dua, extern: Kelas penyimpanan extern secara sederhana memberitahukan bahwa variabel telah didefinisikan dan tidak berada pada block sama dengan block yang menggunakannya. Sederhanya, nilai yang telah ditetapkan terhadap kelas penyimpanan tidak berada bersama pada block dimana kelas tersebut digunakan. Nilai yang ditetapkan berada pada block berbeda dan dapat dilakukan ovewritten atau perubahan pada block yang berbeda pula. Sehingga variabel extern tidak lain adalah variabel global yang diinisialisasi dengan nilai legal dimana variabel tersebut dideklarasikan sesuai perintah dimana variabel tersebut akan digunakan. Variabel ini dapat diakses dengan fungsi atau block apapun. Juga, sebuah variabel global normal dapat membuat extern pula dengan menambahkan keyword 'extern' sebelum pendeklarasian atau pendefinisian oleh fungsi atau block apapun. Pada dasarnya hal ini menandakan bahwa, tidak dilakukan inisialisasi sebuah variabel baru melainkan hanya menggunakan atau melakukan akses kepada variabel global semata. Tujuan utama dari penggunakan variabel extern adalah variabel tersebut dapat diakses antara dua file berbeda yang menjadi satu bagian dari program.

tiga, static: Kelas penyimpanan digunakan untuk mendeklarasikan variabel static yang secara populer digunakan ketika membuat program dalam bahasa C. Variabel static memiliki properti dari penyimpanan nilai bahkan setelah nilai tersebut keluar dari scope-nya. Karena hal tersebut, variabel static hanya menggunakan nilai terakhir yang digunakan pada scope-nya. Sehingga bisa dikatakan bahwa variabel ini hanya diinisialisasi sekali dan akan tetap exist sampai proses atau program telah berhenti dijalankan. Sehingga, tidak ada memori baru yang dialokasikan karena memori tersebut tidak dideklarasikan ulang. Scope dari variabel ini bersifat lokal pada fungsi dimana variabel tersebut didefinisikan. Variabel static global dapat diakses dimanapun pada bagian program. Secara otomatis, ditetapkan nilai 0 oleh kompilator ketika variabel ini dideklarasikan.

empat, register: Kelas penyimpanan yang mendeklarasikan variabel register memiliki fungsi sama seperti variabel auto. Perbedaannya adalah kompilator mencoba untuk menyimpan variabel ini pada register dari mikroprosesor jika free register tidak tersedia. Hal ini membuat penggunaan dari variabel register lebih cepat daripada variabel yang disimpan pada memori selama waktu runtime dari program. Jika sebuah free register tidak tersedia, maka nilainya akan disimpan pada bagian memori saja. Umumnya beberapa variabel dapat diakses lebih sering pada sebuah program yang dideklarasikan dengan keyword register akan memiliki waktu running yang lebih baik terhadap sebuah program. Alamat register tidak bisa didapatkan dengan menggunakan pointer.

Untuk menyederhanakan kelas penyimpanan untuk sebuah variabel, perhatikan sintak program berikut ini:

sintak:
storage_class var_data_type var_name;

Fungsi berikut mengikuti sintak yang sama seperti yang diberikan pada variabel sebelumnya. Perhatikan contoh program bahasa c berikut untuk lebih memahami:
Output:
Sebuah program untuk mendemonstrasikan kelas penyimpanan dalam bahasa C

Demonstrasi class auto

Nilai dari variabel ‘a’ dideklarasikan sebagai auto: 32
——————————–
Demonstrasi class register

Nilai dari variabel ‘b’ dideklarasikan sebagai register: 71
——————————–
Demonstrasi class extern

Nilai dari variabel ‘x’ dideklarasikan sebagai extern: 0
Modifikasi nilai dari variabel ‘x’ dideklarasikan sebagai extern: 2
——————————–
Demonstrasi class static

Deklarasi ‘y’ sebagai variabel static di dalam looping.
Namun, deklarasi ini hanya akan muncul satu kali sebagai variabel static ‘y’.
Jika tidak muncul, maka setiap kali looping atau perulangan nilai dari ‘y’ akan mendeklarasikan nilai 5  sebagai nilai yang diterima dari variabel ‘p’

Mulai looping:

Nilai dari ‘y’, dideklarasikan sebagai static, dalam 1 perulangan adalah 6
Nilai dari variabel non static ‘p’, dalam 1 perulangan adalah 11

Nilai dari  ‘y’, dideklarasikan sebagai static, dalam 2 perulangan adalah 7
Nilai dari variabel non static ‘p’, dalam 2 perulangan adalah 11

Nilai dari ‘y’, dideklarasikan sebagai static, dalam 3 perulangan adalah 8
Nilai dari variabel non static ‘p’, dalam 3 perulangan adalah 11

Nilai dari ‘y’, dideklarasikan sebagai static, dalam 4 perulangan adalah 9
Nilai dari variabel non static ‘p’, dalam 4 perulangan adalah 11

Looping berakhir:
——————————–

Storage Classes telah didemonstrasikan

Tidak ada komentar:

Posting Komentar

Respon komentar 7 x 24 jam, so please be patient :D

Footer Adsense