Artikel Terbaru

8 Pertimbangan yang Harus Dilakukan untuk Memilih Wallet Bitcoin

Wallet Bitcoin adalah program yang digunakan untuk mengirim dan menerima data transaksi Bitcoin, menyimpan catatan Bitcoin, dan memantau saldo Bitcoin. Sama seperti ketika seseorang memerlukan program email yang digunakan untuk mengelola data email -nya, pada Bitcoin juga terdapat program sejenis yang dapat digunakan untuk mengelola data Bitcoin tersebut, berupa wallet interface pada setiap node blockchain Bitcoin. Wallet digunakan untuk memantau alamat Bitcoin pada blockchain dan juga dapat digunakan untuk memperbarui saldo Bitcoin pada setiap transaksi.

4 Kondisi Utama Penggunaan Konstanta Qualifier pada Bahasa C

Const Qualifier dapat diterapkan untuk pendeklarasian dari variabel apapun untuk menentukan bahwa nilai dari variabel tersebut tidak dapat diubah sama sekali, dan bergantung pada nilai variabel dimana variabel const tersebut disimpan. Namun, nilai dari variabel tersebut tetap bisa dilakukan pengubahan dari variabel const jika menggunakan pointer

satu, Pointer ke variabel

int *ptr;

Dapat dilakukan perubahan nilai dari ptr dan juga dapat dilakukan pengubahan nilai dari object ptr yang dituju pada program. Dimana, Pointer dan nilai pointer yang dituju tersebut, keduanya disimpan pada area read-write. Perhatikan potongan kode program berikut ini:

#include <stdio.h>

 

int main(void)

{

int i = 10;

int j = 20;

int *ptr = &i;

 

// pointer ke bilangan bulat

printf("*ptr: %d\n", *ptr);

 

// pointer yang menunjuk ke

// variabel lainnya

ptr = &j;

printf("*ptr: %d\n", *ptr);

 

// Dapat dilakukan perubahan

// nilai yang disimpan melalui

// pointer

*ptr = 100;

printf("*ptr: %d\n", *ptr);

 

return 0;

}

Output:
    *ptr: 10
    *ptr: 20
    *ptr: 100

dua, Pointer menuju Konstanta
Pointer ke konstanta dapat dideklarasikan dengan dua cara, yaitu:

const int *ptr;

atau dengan cara

int const *ptr;

Karena dapat dilakukan perubahan pointer ke nilai variabel, maka tidak bisa dilakukan perubahan nilai dari object (atau entitas) yang dituju dengan menggunakan pointer ptr. Pointer akan disimpan dalam area read-write (bertumpuk pada present case), dimana Object yang ditunjuk pointer mungkin berada pada area read-only atau pada area read-write yang berbeda. Perhatikan contoh program berikut ini:

#include <stdio.h>

 

int main(void)

{

int i = 10;

int j = 20;

 

// ptr adalah pointer ke

// konstanta

const int *ptr = &i; 

 

printf("ptr: %d\n", *ptr);

// error: Objek yang dituju

// pointer tidak dapat

// dimodifikasi menggunakan

// pointer ptr 

*ptr = 100;

 

ptr = &j;   /* valid */

printf("ptr: %d\n", *ptr);

 

return 0;

}

Output:
error: assignment of read-only location ‘*ptr’

Perhatikan contoh lainnya dari program dimana variabel i adalah konstanta.

#include <stdio.h>

 

int main(void)

{

// i adalah variabel yang

// disimpan dalam area read

// only (hanya dapat dibaca)

int const i = 10

int j = 20;

 

// pointer to integer

// constant. Here i is of type

// "const int", and &i is of

// type "const int *". And p

// is of type "const int".

 

// Jika tipe datanya cocok,

// maka tidak akan terdapat

// masalah apapun.

int const *ptr = &i;  

 

printf("ptr: %d\n", *ptr);

 

/* error */

*ptr = 100;  

 

// bernilai valid, atau

// memenuhi kualifikasi. 

 

// pada bahasa C atau C++,

// tipe data dari "int *"

// diijinkan untuk memenuhi

// kualifikasi tipe "const

// int".

 

// Tipe & j adalah "int *" dan

// secara implisit

// dikualifikasi oleh

// kompilator menjadi "const

// int *"

 

ptr = &j;  

printf("ptr: %d\n", *ptr);

 

return 0;

}

Output:
error: assignment of read-only location ‘*ptr’


Kualifikasi lebih rendah (down qualification) tidak ijinkan pada bahasa pemrograman C++, begitupun juga pada bahasa C yang akan menyebabkan munculnya pesan peringatan pada program. Perhatikan contoh lain dari program dengan kualifikasi lebih rendah (down qualification) berikut:

#include <stdio.h>

 

int main(void)

{

int i = 10;

int const j = 20;

 

// ptr adalah pointer yang

// menuju ke objek integer.

int *ptr = &i;

 

printf("*ptr: %d\n", *ptr);

 

// Operator penugasan berikut

// akan bernilai invalid pada

// bahasa C++, dan juga akan

// mengahsilkan error pada

// bahasa C berupa pesan

// peringantan bahaya, namun

// casting tersebut tetap

// diperbolehkan secara

// implisit.

ptr = &j;

 

// Pada bahasa C++, proses

// dari operator tersebut

// disebut dengan 'down

// qualificatiaon'.

 

// Tipe dari ekspresi &j

// adalah "const int *" dan

// tipe dari ptr adalah "int

// *".

 

// Operator penugasan "ptr =

// &j" menyebabkan implikasi

// dihilangkannya konstanta

// dari ekspresi &j.

 

// C++ menjadi tipe yang lebih

// restrictif dan tidak

// memberikan ijin untuk down

// qualification.

 

// Namun demikian, C++ tetap

// memungkinkan kualifikasi

// secara implisit.

 

// Alasannya, identifier

// koalifikasi konstanta

// terikat untuk ditempatkan

// pada memori read-only

// (namun tidak selalu).

 

// Jika C ++ mengizinkan jenis

// penugasan sebelumnya (ptr =

// & j), maka dapat digunakan

// 'ptr' untuk mengubah nilai

// j yang ada di memori

// read-only.

 

// Konsekuensinya bergantung

// pada implementasi, program

// mungkin akan gagal saat

// dijalankan.

 

// Jadi pemeriksaan jenis yang

// ketat membantu membersihkan

// kode untuk mengurangi

// kesalahan.

 

printf("*ptr: %d\n", *ptr);

 

return 0;

}


tiga, Konstanta pointer ke variabel.

int *const ptr;

Berikut adalah contoh bentuk konstanta pointer ke variabel integer, dimana dapat dilakukan perubahan nilai dari object yang dituju oleh pointer (integer), tetapi tidak bisa melakukan perubahan nilai pointer untuk menunjuk ke nilai lainnya.

#include <stdio.h>

 

int main(void)

{

int i = 10;

int j = 20;

 

// Konstanta pointer ke

// integer.

int *const ptr = &i; 

 

printf("ptr: %d\n", *ptr);

 

*ptr = 100; /* valid */

printf("ptr: %d\n", *ptr);

 

ptr = &j;  /* error */

return 0;

}

Output:
error: assignment of read-only variable ‘ptr’

empat, Konstanta pointer ke konstanta.

const int *const ptr;

Berikut adalah contoh deklarasi program pointer yang menuju ke variabel konstanta, atau dengan kata lain tidak dapat dilakukan perubahan nilai yang ditunjuk oleh pointer seperti halnya tidak bisa menunjuk pointer ke variabel lainnya. Perhatikan contoh program berikut ini:

#include <stdio.h>

 

int main(void)

{

int i = 10;

int j = 20;

 

// Konstanta pointer ke konstanta integer

const int *const ptr = &i;  

 

printf("ptr: %d\n", *ptr);

 

ptr = &j;  /* error */

*ptr = 100; /* error */

 

return 0;

}

Output:
error: assignment of read-only variable ‘ptr’
error: assignment of read-only location ‘*ptr’

Komentar

  1. Apa yang dimaksud dengan const qualifier pada bahasa C?

    BalasHapus
    Balasan
    1. Const qualifier digunakan untuk mendeklarasikan variabel sebagai suatu konstanta. Dimana variabel yang telah dideklarasikan tersebut tidak dapat dilakukan perubahan nilai setelah variabel tersebut diinisialisasi.

      Hapus
    2. Const qualifier dapat diterapkan pada deklarasi variabel apapun untuk menentukan bahwa nilainya tidak akan berubah atau bergantung dimana variabel const tersebut disimpan, dimana nilai const tersebut bisa dirubah jika menggunakan pointer.

      Hasilnya adalah implementasi yang didefinisikan jika ada upaya untuk dilakukan mengubahan const.

      Hapus
  2. Apa fungsi dari simbol "*" dan simbol "&" pada contoh program yang disajikan pada artikel yang dijelaskan sebelumnya?

    BalasHapus
    Balasan
    1. Simbol "&" pada program adalah untuk menyatakan alamat memori, sedangkan simbol "*" adalah digunakan untuk menunjuk ke nilai pada alamat memori pada suatu variabel, atau simbol dereferensi. Sedangkan tanda "**" berarti pointer menunjuk ke pointer lainnya pada suatu alamat nilai pada variabel.

      Hapus

Posting Komentar

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

Catatan: setiap iklan yang ditayangkan pada blog ini bersumber dari google adsense. Dengan jenis iklan yang dipilih adalah, sebagai berikut.

POIN 1, Iklan yang ditampilkan hanya boleh berbahasa indonesia atau berbahasa inggris. Tidak menerima jenis iklan dalam bahasa yang lain selain yang telah disebutkan karena blog ini dibuat untuk para pengunjung dari negara atau orang yang berbahasa Indonesia.

POIN 2, Setiap gambar yang ditampilkan pada iklan sifatnya tidak mengganggu para pengunjung yang melihat blog, atau tidak boleh menampilkan gambar yang bersifat menjijikkan atau merangsang rasa mual.

POIN 3, Jenis iklan yang dipasang bukan merupakan iklan spam, atau berisi dan mengarahkan pengunjung ke alamat yang berbahaya atau bersifat penipuan.

POIN 4, Segala bentuk iklan tunduk dan patuh pada ketentuan dari pihak Adsense google dan pemilik blog.

POIN 5, Segala jenis iklan yang tidak bertentangan dengan poin 1-4 yang dijelaskan sebelumnya, maka iklan tersebut dapat ditampilkan pada blog.

POIN 6, Jika ada pihak ketika yang ingin memasang iklan pada blog ini secara langsung, maka dapat menghubungi pemilik blog melalui kontak 0882 3218 8316.



~ Ikatlah Ilmu dengan Memostingkannya ~

Hot Artikel

Perbedaan stdio.h dan stdlib.h pada Bahasa C

6 Tahap Utama dalam Melakukan Kompilasi Program Hello World Java

Perbedaan Antara int main() dan int main(void) pada Bahasa C

Enkapsulasi pada Java

3 Jenis Utama Looping pada Java