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.

5 Fakta tentang Operator Precedence dan Asosiatifitas pada Bahasa C

Operator precedence seperti diperlihatkan pada gambar 1 adalah bentuk penentuan dari operator mana yang dieksekusi terlebih dahulu dalam sebuah ekspresi dengan lebih dari satu operator precedence yang berbeda dalam basa pemrograman C.

Contoh: 10 + 20 * 30

operator precedence pada bahasa C
Gambar 1 operator precedence pada bahasa C

10 + 20 * 30 diselesaikan dengan operasi 10 + (20 * 30) dan tidak diperlakukan seperti kondisi operasi berikut (10 + 20) * 30.

Operator asosiatifitas seperti diperlihatkan pada gambar 2 digunakan ketika dua operator dari precedence yang sama muncul dalam satu buah ekspresi dalam program. Hubungan asosiatifitas dapat dilakukan dari kiri ke kanan (left-to-right) atau kanan ke kiri (right-to-left).

Contoh: operator '*' dan '/' memiliki precedence sama dan asosiatifitasnya adalah kiri ke kanan. sehingga ekspresi operasi dari "100 / 10 * 10" adalah "(100 / 10) * 10".

operator asosiatifitas pada bahasa C
Gambar 2 operator asosiatifitas pada bahasa C

Precedence operator dan asosiatifitasnya adalah dua karakteristik dari operator yang menentukan evaluasi dari subekspresi karena tidak menggunakan tanda kurung pada persamaan operasi matematika.

Contoh: 100 + 200 / 10 - 3 * 10

penggunaan operator precedence dan asosiatifitas pada bahasa C
Gambar 3 operator precedence dan asosiatifitas pada bahasa C

satu, Asosiatifitas operator hanya digunakan ketika terdapat dua atau lebih operator pada precedence yang sama. Poin yang perlu dicatat adalah asosiatifitas (gambar 3) tidak mendefinisikan urutan operand dari sebuah operator tunggal yang dievaluasi. Contoh, perhatikan program berikut ini, asosiatifitas dari operator "+" adalah kiri ke kanan, tetapi bukan berarti f1() akan selalu dipanggil sebelum f2(), dimana Output dari program bergantung pada jenis kompilator yang digunakan.


// Asosiatifitas tidak

// digunakan pada program

// berikut ini.

 

// Output dari kompilator

// masih bersifat dependen

// atau tidak berkaitan satu

// sama lain.

#include <stdio.h>

 

int x = 0;

 

int f1()

{

x = 5;

 

return x;

}

 

int f2()

{

x = 10;

 

return x;

}

 

int main()

{

int p = f1() + f2();

printf("%d ", x);

 

return 0;

}


dua, Semua operator dengan precedence sama memiliki asosiatifitas yang sama. Hal ini sangat penting, jika tidak, tidak ada cara bagi kompilator untuk menentukan perintah evaluasi dari ekspresi yang memiliki dua operator dari precedence sama dan asosiatifitas berbeda. Contoh, operator "+" dan "-" memiliki asosiatifitas yang sama.

tiga, Precedence dan asosiatifitas dari postfix ++ dan prefix ++ adalah berbedaPrecedence dari postfix ++ adalah lebih dari prefix ++, tingkat asosiatifitasnya juga berbeda. Asosiatifitas postfix ++ adalah dari kiri ke kanan dan asosiatifitas dari prefix ++ adalah dari kanan ke kiri.

empat, Tanda koma memiliki precedence yang kecil diantara semua operator dan harus digunakan secara hati-hati. Contoh, perhatikan bentuk program berikut ini;

#include <stdio.h>

 

int main()

{

int a;

a = 1, 2, 3

// Dievaluasi sebagai 

// (a = 1), 2, 3

 

printf("%d", a);

 

return 0;

}


lima, Tidak ada rantai pembanding operator pada bahasa C. pada Python, bentuk ekspresi seperti "c > b > a" adalah sama seperti "c >b dan b > a", tetapi tipe seperti ini tidak ada pada bahasa C. Contoh perhatikan program berikut. Output dari program adalah false.

#include <stdio.h>

 

int main()

{

int a = 10, b = 20, c = 30;

 

// (c > b > a) diperlakukan

// sebagai ((c > b) > a),

// tingkat asosiatifitas dari

// '>' adalah left to right. 

 

// Karena itu nilai dari ((30

// > 20) > 10) menjadi (1 >

// 20).

if (c > b > a)

printf("TRUE");

else

printf("FALSE");

 

return 0;

}


Tabel precedence dan asosiatifitas pada bahasa C
OperatorDescriptionAssociativity
( )

[ ]

.

->

++ —
Tanda kurung (panggilan fungsi) (lihat Catatan 1)

Tanda kurung (subskrip array)

Pemilihan anggota melalui nama objek

Pemilihan anggota melalui penunjuk

Kenaikan / penurunan Postfix (lihat Catatan 2)
left-to-right
++ —

+ –

! ~

(type)

*

&

sizeof
Kenaikan / penurunan prefiks

Plus / minus unary

Negasi logis / pelengkap bitwise

Transmisikan (ubah nilai menjadi nilai sementara jenis)

Dereferensi

Alamat (operan)

Tentukan ukuran dalam byte pada implementasi ini
right-to-left
* / %Perkalian / pembagian / modulusleft-to-right
+ –Penjumlahan / penguranganleft-to-right
<< >>Bitwise bergeser ke kiri, Bitwise bergeser ke kananleft-to-right
< <=

> >=
Relasional kurang dari / kurang dari atau sama dengan

Relasional lebih besar dari / lebih besar dari atau sama dengan
left-to-right
== !=Relasional sama dengan / tidak sama denganleft-to-right
&Bitwise ANDleft-to-right
^Bitwise exclusive ORleft-to-right
|Bitwise inclusive ORleft-to-right
&&Logika ANDleft-to-right
| |Logika ORleft-to-right
? :Ternary conditionalright-to-left
=

+= -=

*= /=

%= &=

^= |=

<<= >>=
Penugasan

Penugasan penjumlahan / pengurangan

Penugasan perkalian / pembagian

Modulus / bitwise AND penugasan

Penugasan eksklusif OR / inklusif bitwise

Bitwise pergeseran ke kiri / kanan
right-to-left
,Koma (ekspresi pemisah)left-to-right

Adalah suatu hal baik jika programmer bisa pengetahui tingkat precedence dan asosiatifitas dari jenis operator yang akan dipergunakan pada suatu program yang dibuat, namun jika  tidak demikian akan lebih baik jika menggunakan tanda kurung dalam penggunaan dan pembentukan operator dalam suatu algoritma pemrograman, khususnya untuk jenis operator yang jarang digunakan. Penggunaan tanda kurung meningkatkan kemampuan membaca kode program jika tidak bisa diketahui tingkat precedence atau asosiatifitas dari operator yang akan digunakan oleh programmer tersebut.

Komentar

  1. Apa yang dimaksud dengan precedence atau prioritas pada operator yang digunakan dalam bahasa C?

    BalasHapus
    Balasan
    1. Prioritas operator atau precedence operator adalah suatu penentuan pengelompokkan istilah dalam ekspresi dan memustuskan bagaimana ekspresi tersebut akan dievaluasi dalam suatu program. Operator tertentu sudah pasti memiliki precedence yang lebih tinggi daripda operator lainnya. Contoh, operator perkalian memiliki nilai precedence yang lebih tinggi daripada operator penjumlahan dalam bahasa C.

      Hapus
  2. Apa yang dimaksud dengan asosiatifitas operator pada bahasa pemrograman C?

    BalasHapus
    Balasan
    1. Dalam bahasa pemrograman, asosiasi operator merupakan properti yang menentukan bagaimana operator dengan prioritas yang sama dikelompokkan tanpa tanda kurung.

      Hapus
  3. Tingkat asosiatifitas atau associativity operator pada bahasa pemrograman mendefinisikan urutan dimana operator tersebut dengan prioritas yang sama dievaluasi dalam sebuah ekspresi. Asosiatifitas bisa berasal dari kiri ke kanan ataupun juga sebaliknya dari kanan ke kiri dalam suatu urutan. Dalam bahasa C, setiap operator memiliki tingkat prioritas yang bersifat tetap dalam hubungan (asosiatifitasnya) dengan operator lain.

    BalasHapus

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