Bekerjasama Dengan Operator, Session 4: Bitwise Operators

7:10 AM , 1 Comments

Hallo semuanya, ketemu lagi dengan saya. Ga bosen ya? Saya aja udah bosen nih ngetik banyak bener, capek cui. Oke lah dilanjut deh, sekarang saya mau nyurhat masalah Bitwise Operator.


~Apaan tuh bitwise? Bit yang bijak?
*Mbuhlah saya juga ga ngerti maksudnya apa, yang jelas....
Operator bitwise terdiri dari bitwise AND (&), bitwise complement (~), bitwise exclusive OR (^), dan bitwise inclusive OR (|). Operator ini memanipulasi tiap-tiap bit kode binary yang merepresentasikan variable character atau integer. Mungkin itu kenapa operator ini dinamakan bitwise.
public class BitwiseOperators{
    byte a = 20;
    byte b = 4;
    byte c = 11;
 
    public static void main(String[] args) {
        System.out.println(~a); //Menghasilkan -21
        System.out.println(b & c); //Menghasilkan 0
        System.out.println(b ^ c); //Menghasilkan 15
        System.out.println(b | c); //Menghasilkan 15
    }
}
Variabel a merupakan data bertipe byte sehingga menggunakan memori sebesar 8 bit (lihat mengenai alokasi memori di sini), sehingga
(1). Variabel a yang memiliki nilai 20 memiliki representasi kode binary 00010100

00010100
0 x 27 0 x 26 0 x 25 1 x 24 0 x 23 1 x 22 0 x 21 0 x 20

0 + 0 + 0 + 16 + 0 + 4 + 0 + 0 = 20

(2). Variabel b yang memiliki nilai 4 memiliki representasi kode binary 00000100

00000100
0 x 27 0 x 26 0 x 25 0 x 24 0 x 23 1 x 22 0 x 21 0 x 20 

0 + 0 + 0 + 0 + 0 + 4 + 0 + 0 = 4

(3). Variabel c yang memiliki nilai 11 memiliki representasi kode binary 00001011

0 0 0 0 1 0 1 1
0 x 27 0 x 26 0 x 25 0 x 24 1 x 23 0 x 22 1 x 21 1 x 20

0 + 0 + 0 + 0 + 8 + 0 + 2 + 1 = 11

1. Bitwise Complement (~)

Baris kode pertama dalam method main di atas mencetak nilai complement dari a (~a) yang menghasilkan -21.
~Weh weh weh, kenapa bisa demikian?
*Bisa dong
Kode binary yang merepresentasikan ~a adalah kebalikan dari a, artinya 0 diganti dengan 1 dan 1 diganti dengan 0, sehingga kode binary yang merepresentasikan ~20 adalah 11101011, kebalikan dari 20 (00010100)

1 1 1 0 1 0 1 1
- (1 x 27) 1 x 26 1 x 25 0 x 24 1 x 23 0 x 22 1 x 21 1 x 20

-128 + 64 + 32 + 0 + 8 + 0 + 2 + 1 = -21

2. Bitwise AND (&)

Baris selanjutnya kita ingin mencetak bitwise AND (&) antara b dan c. Bitwise AND akan bekerja dengan mencocokan masing-masing bit data jika keduanya bernilai 1 maka akan menghasilkan 1 sedangkan jika selain itu akan menghasilkan nilai 0.

b = 00000100
c = 00001011
    ____________ &
      00000000

Maka nilai dari b & c atau 4 & 11 adalah 0.

3. Bitwise Exclusive OR (^)

Baris selanjutnya kita ingin mencetak bitwise exclusive OR (^) antara b dan c. Bitwise exclusive OR bekerja dengan mencocokan masing-masing bit data jika keduanya bernilai sama maka akan menghasilkan 0 sedangkan jika berbeda maka akan menghasilkan nilai 1.

b = 00000100
c = 00001011
    ____________ ^
      00001111

Maka nilai dari b ^ c atau 4 ^ 11 adalah 15.

4. Bitwise Inclusive OR (|)

Baris terakhir kita ingin mencetak bitwise inclusive OR (|) antara b dan c. Bitwise inclusive OR bekerja dengan mencocokan masing-masing bit data jika keduanya bernilai 0 maka akan menghasilkan 0 sedangkan jika selain itu akan menghasilkan nilai 1.

b = 00000100
c = 00001011
    ____________ |
      00001111

Maka nilai dari b | c atau 4 | 11 adalah 15.

Akhirnya kelar. Pusing ya? Saya yang nulis juga pusing nih. Ya sudah saya sudahi sesi curhat hari ini, sampai ketemu lagi di sesi berikutnya.

1 comments:

Bekerjasama Dengan Operator, Session 3: Assignment Operator

7:10 AM , 0 Comments

Hallo pembaca semuanya yang masih belum mual denger curhatan saya, berjumpa lagi dengan saya si programmer pemula yang masih berjuang pelan-pelan menjadi developer. Setelah kemaren ngecurhat sedikit tentang operator dan sudah masuk ke operator Additive Operator dan Array Index Operator sekarang saya mau membahas masalah Assignment Operator.


Assignment operator adalah operator sama dengan (=) yang berfungsi untuk meng-assign sebuah variabel dengan sebuah nilai. Misalnya int x = 4. Selain assignment sederhana seperti itu Java juga memiliki compound assignment untuk memudahkan operasi.

Jika kemaren sudah berkenalan dengan ++ dan -- yang hanya menjumlahkan variable dengan nilai 1. Maka compound assignment ini sebagai penolong jika kita tidak hanya ingin menjumlahkan variable dengan nilai 1, melainkan banyak. Compound assignment ditulis dengan += atau -=. Jika x++ adalah bentuk sederhana dari x = x + 1, maka x += y adalah bentuk sederhana dari x = x + y.

Woke kelar, cepet kan? Sampai jumpa lagi di curhatan berikutnya.

0 comments:

Bekerjasama Dengan Operator, Session 2: Array Index Operator

7:09 AM , 0 Comments

Hallo pembaca semuanya yang katanya budiman, berjumpa lagi dengan saya si programmer pemula yang ga lolos beasiswa buat kuliah (belum rejeki, hehehe). Setelah kemaren ngecurhat sedikit tentang operator dan sudah masuk ke operator pertama, yaitu Additive Operator, sekarang masuk ke operator yang ke-2, yaitu Array Index Operator.


~Mmmmmm
*Arep komen ngawur opo meneh?
~Ga jadi, hehehe
Array index operator berupa sepasang tanda kurung siku ([]), operator ini digunakan untuk memanggil element di dalam sebuah array.
public class ArrayIndexOperator{
    char[] huruf = {'A','B','C','D','E','F','G','H'};

    char c = huruf[2];//char c akan bernilai 'C'
}
Ingat bahwa index array dimulai dari 0. Sehingga huruf[2] akan memanggil nilai dari element array huruf nomor 3 yaitu C. Jika kita memanggil element yang diluar jangkauan element array akan menghasilkan ArrayIndexOutOfBoundsException. Contohnya array huruf di atas terdiri dari 8 huruf atau 8 element dimana elemetnya dari 0-7, maka jika kita memanggil huruf[8] akan menghasilkan ArrayIndexOutOfBoundsException. Exception akan dibahas nanti pada pembahasan khusus exception.

Sepertinya curhatan saya cukup sekian ya.
~Weh kok dikit kali?
*La wong ga ada yang mau dicurhatin lagi kok.
~Yoweslah
Oke sampai ketemu lagi di curhatan masalah kerjasama saya dengan operator jilid 3 mengenai Assignment Operators.

0 comments:

Bekerjasama Dengan Operator, Session 1: Additive Operator

7:09 AM , 0 Comments

Hallo pembaca yang ternyata masih mau mampir, berjumpa lagi dengan saya si programmer pemula yang kerjaannya cuma curhat. Setelah kemaren ngecurhat sedikit tentang operator sekarang saya ingin sedikit lebih masuk ke permasalahan operator. Untuk jilid 1 ini saya pengen curhat masalah Additive Operator.


~Wait wait wait, kok jadi ngomongin yang bahaya-bahaya nih? Ga ikut-ikutan saya
*Apanya yang bahaya dah?
~Itu zat additive segala mau dicurhatin
*Addictive kali ooom. -_-'
Operator additive terdiri dari plus (+) dan minus (-) untuk penambahan (a + b), pengurangan (a - b), postincrement (x++), postdecrement (x--), preincrement (++x), predecrement (--x), dan penggabung string/string concatenation ("Aku " + "laki").

Operator ++ akan menambahkan variabel numerik dengan nilai 1, begitu juga dengan operator -- akan mengurangi variabel numerik dengan nilai 1.
public class AdditiveOperators{
    int a = 2;
    int x = 8;

    int b = a + 3;//b akan bernilai 5
    int c = 3 - a;//c akan bernilai 1
    int y = x++;//y akan bernilai 9
    int z = x--;//z akan bernilai 7
}
~Itu kenapa sih ada post sama pre? bukannya sama aja menambah/mengurangi 1?
*Ya, hasil nilainya sama aja menambah/mengurangi 1, tapi cara kerjanya beda
Cara kerja operator tersebut berbeda dilihat dari urutan eksekusi kodenya, sesuai dengan posisi operatornya. Hmmm, gimana ya cara ngejelasinnya, saya juga bingung. Gini aja deh, langsung ilustrasi.
public class AdditiveOperator{
    int post = 5;
    int pre = 7;

    public static void main (String[] args){
        System.out.println(post++);
        /*Di console akan dicetak nilai 5, karena variabel post sudah digunakan/dipanggil sebelum dijumlahkan*/

        System.out.println(post);
        /*Di console akan dicetak nilai 6, karena pada baris sebelumnya variable post sudah dijumlahkan dengan nilai 1*/

        System.out.println(++pre);
        /*Di console akan dicetak nilai 8, karena sebelum dipanggil variabel pre telah dijumlahkan terlebih dahulu*/

        System.out.println(pre);
        /*Di console akan tetap dicetak nilai 8*/
    }

    //Berlaku juga untuk x-- dan --x
}
Operator plus jika digunakan pada data bertipe string akan berfungsi sebagai lem untuk menggabungkan dua string.
public class AdditiveOperator{
    String string1 = "Aku anak ";
    String string2 = "jendral.";
    String string3 = string1 + string2;

    String a = "A";

    public static void main (String[] args){
        System.out.println(string3);/*Di console akan dicetak Aku anak jendral*/
        System.out.println(a+5);/*Di console akan dicetak A5*/
    }
}
Sepertinya semua uneg-uneg saya soal additive operator ini udah kluar semua, udah lega perut saya. hehe

Sampai jumpa di pembahasan operator selanjutnya yaitu mengenai Array Index Operator.

0 comments:

Bekerjasama Dengan Operator

7:08 AM , 1 Comments

Hallo, selamat sore pembaca yang kurang kerjaan mampir ke tempat saya terus, ketemu lagi dengan saya yang lagi galau sama komputer. Setelah kemaren curhat tentang expression yang ga tuntas nyangkut di operator, sekarang saya ingin menuntaskan curhatan itu dengan membahas masalah operator.


~Operator? Operator jalan tol?
*Bukaaaaan, kan kemaren udah dikasitau
Dalam Java, mungkin dalam bahasa lainnya juga, disediakan banyak sekali operator. Berdasarkan jumlah operand yang digunakan operator dikelompokan ke dalam tiga kategori. Unary, binary, dan ternary.
~Bentar, bentar. Operand? Apa itu? Maen bola?
*Lha kok nyangkut ke bola sih om?
Operand itu, dalam bahasa matematika, artinya objek dari sebuah operasi matematik. Misalnya 1 + 2, maka 1 dan 2 adalah operand dan + adalah operatornya.
*Paham?
~Sip, lanjuuuut
Oke, kita lanjut. Operator unary adalah operator yang menggunakan satu operand, misalnya -6. Operator binary menggunakan dua operand dalam operasinya, misalnya 6 + 3. Dan operator ternary menggunakan 3 operand dalam operasinya, misalnya untuk conditional (?), benar ? simpan : buang (dijelaskan nanti kalo bingung).

Berdasarkan posisi operator dalam operasi, operator dikelompokan dalam tiga kategori juga, yaitu prefix, postfix, dan infix. Operator prefix adalah operator yang mendahului operandnya, misalnya -6. Operator infix adalah operator yang berada diantara operand-operandnya, misalnya 6 + 3. Sedangkan operator postfix adalah operator yang mengikuti operandnya, misalnya x++.

Sedangkan berdasar fungsinya, operator dibagi atas:
1. Additive Operators
2. Array Index Operator
3. Assignment Operators
4. Bitwise Operators
5. Cast Operator
6. Conditional Operators
7. Equality Operators
8. Logical Operators
9. Member Access Operator
10. Method Call Operator
11. Multiplicative Operators
12. Object Creation Operator
13. Relational Operators
14. Shift Operators
15. Unary Minus/Plus Operators

1 comments:

Membaca Expression Wajah si Java

11:46 PM , 0 Comments

Halo pembaca yang baik hatinya, berjumpa lagi dengan saya si tukang curhat yang ga jelas. Apa kabarnya hari ini? Semoga baik-baik saja.

Hari ini saya mau curhat soal "Expression".
~Wuih, keren ya si Java bisa juga berekspresi
*Eits, bukan itu maksudnya bro

Expression disini maksudnya bukan mengekspresikan diri. Tapi....(sambil mikir), apa ya, bingung. Ya kalo diterjemahin ya artinya ekspresi. Tapi secara garis besar expression ini maksudnya adalah gabungan dari sebuah literal/nilai (value), variable yang memiliki value, method yang menghasilkan sebuah value dan operator, dimana expression ini digunakan untuk meng-assign sebuah variable agar memiliki value, atau bahasa manusianya memberikan variable sebuah value/data.

1. Simple Expression

Dari namanya udah keliatan kalo simple expression adalah expression dalam bentuk yang simple (Penjelasan yang ga penting hahaha). Simple expression bisa berupa sebuah literal (value), atau sebuah variable yang memiliki value, atau sebuah method yang menghasilkan value. Literal yang ada di java antara lain string, boolean true dan false, character, integer, floating-point, dan null. Contoh simple expression:
public class SimpleExpression {

    /*Meng-assign variable dengan sebuah literal*/
    String simpleString1 = "Contoh simple expression";

    /*Meng-assign variable dengan sebuah variable*/
    String simpleString2 = simpleString1;

    /*Meng-assign variable dengan sebuah method yang menghasilkan value*/
    String simpleString3 = getValue();

    public static void main(String[] args){
     SimpleExpression simpleExpression = new SimpleExpression ();
     System.out.println(simpleExpression.simpleString1);
     System.out.println(simpleExpression.simpleString2);
     System.out.println(simpleExpression.simpleString3);
    }

    private String getValue(){
        return "Contoh simple expression";
    }
}
Pada contoh di atas saya meng-assign beberapa variable bertipe string secara sederhana.

2. Compound Expressions

Compound bisa berarti gabungan, tambahan, atau majemuk. Sehingga compound expression adalah expression yang majemuk (lagi-lagi penjelasan ga penting :p). Secara ringkasnya compound expression merupakan gabungan atau terdiri dari beberapa simple expression yang digabung dengan menggunakan operator.
~Opo meneh kui operator. Operator pulsa?
*Bukan vroh
Operator di sini maksudnya adalah karakter yang digunakan dalam operasi matematik seperti tambah (+), kurang (-), bagi (/), dll yang digunakan untuk merubah sebuah nilai. Contoh compound expression:
public class CompoundExpression {

    int compoundInteger1 = -9;//Compound expression
    String compoundString1 = "Contoh compound " + "expression";//Compound expression

    int simpleInteger1 = 4;// Simple expression
    int simpleInteger2 = 5;// Simple expression
    int compoundInteger2 = simpleInteger1 + simpleInteger2;//Compound expression

    String simpleString1 = "Contoh compound ";// Simple expression
    String simpleString2 = "expression";// Simple expression
    String compoundString2 = simpleString1 + simpleString2;//Compound expression

    public static void main(String[] args){
     CompoundExpression compoundExpression = new CompoundExpression();
     System.out.println(compoundExpression.compoundInteger1 );
     System.out.println(compoundExpression.compoundInteger2 );
     System.out.println(compoundExpression.compoundString1 );
     System.out.println(compoundExpression.compoundString2);
    }
}
Dalam dunia pemrograman ada banyak sekali operator yang digunakan yang akan saya bahas lebih lengkapnya di postingan selanjutnya. Sampai ketemu lagi :D

0 comments: