Sintaks Bahasa dan Tipe Data ( Tipe Data )

Tipe Data

Tipe data diperlukan agar kompiler tahu operasi apa yang valid dan seberapa banyak memori yang diperlukan oleh sebuah nilai yang akan disimpan atau dioperasikan. Variabel digunakan untuk menampung suatu nilai, karena itu setiap variabel pasti memiliki tipe data dan harus dideklarasikan terlebih dahulu sebelum dapat digunakan. Perbedaan tipe data juga mengakibatkan setiap operasi penugasan (lihat Bab 4 tentang operator), baik secara eksplisit maupun melalui passing parameter pada waktu pemanggilan method (akan dibahas nanti), selalu dicek kompatibilitas tipe datanya. Dalam Java, tipe data dapat dikelompokkan menjadi dua jenis tipe data, yaitu tipe data primitif dan referensi.

Tipe Data Primitif

Tipe data primitif merupakan tipe data dasar yang dikenal oleh Java. Terdapat delapan buah tipe data primitif yang dikenal dalam Java sebagai berikut.
Kedelapan tipe data primitif ini dapat dikelompokkan ke dalam empat group:

  1. Integer merupakan tipe data bilangan bulat yang terdiri atas byte, short, int, dan long.
  2. Floating-Point merupakan tipe data bilangan pecahan yang terdiri atas float dan double.
  3. Karakter mewakili simbol dari sebuah karakter yang terdiri ataschar.
  4. Boolean merupakan tipe data yang menunjukkan nilai true atau false, yang terdiri atas boolean.

Variabel dengan tipe data primitif ini dapat digunakan secara langsung untuk menyimpan suatu nilai tertentu.Contoh:
int indeks = 2;
int hasil = indeks * 11;

Tipe Data Referensi

Tipe data referensi digunakan untuk memegang referensi dari suatu objek (instance dari class). Pendeklarasian variabel tipe data ini sendiri sama dengan tipe data primitif. Namun, penggunaannya agak sedikit berbeda. Perhatikan contoh code di bawah ini untuk lebih jelasnya:

class ProgSederhana {
int x = 0; /* Pendeklarasian variabel dengan
tipe data int */

public static void main(String[] args) {

/*Pendeklarasian variabel dengan tipe data
class ProgSederhana*/
ProgSederhana var;

//Instantiate class ProgSederhana menjadi
//objek
var = new ProgSederhana();

/*setelah proses instantiate ini, Anda
dapat mengakses objek ProgSederhana
melalui variabel var*/
var.x = 20;
System.out.println("Nilai x : " + var.x);
}
}

Code berikut ini:

var = new ProgSederhana();

memerintahkan run-time Java untuk mengalokasikan memori membuat objek ProgSederhana di memori dan menyerahkan referensi (alamat) dari objek tersebut untuk dipegang oleh variabel var. Inilah yang kita sebut dengan instantiate class menjadi sebuah objek. Dengan variabel var ini, Anda dapat mengakses internal objek yang telah dibuat tersebut:

var.x = 20;

Penjelasan Tentang Nilai Literal

Literal adalah suatu nilai konstan yang terlihat secara eksplisit.

Perhatikan contoh code berikut ini:

int index = 100;
index = index * 11;

Pada code di atas, angka 100 merupakan nilai literal, begitu juga dengan angka 11 pada baris berikutnya. Notasi index * 11 mempunyai arti bahwa nilai yang dipegang oleh variabel index (index
bukan berupa nilai literal melainkan variabel) dikalikan dengan nilai literal 11 dan hasilnya ditampung kembali oleh variabel index. Ada baiknya Anda mencoba membuat sebuah class baru dan mengetik perintah di atas untuk melihat hasilnya. Tambahkan code berikut ini untuk melihat nilai dari variabel index:

System.out.println(index);

Literal Integer
Semua angka berupa bilangan bulat yang ditulis dalam program akan dikenal sebagai tipe data int oleh Java. Contohnya 1, 10, 19, 30, dan seterusnya. Pada contoh ini, nilai literal int ditulis berupa
bilangan berbasis 10 (desimal). Anda juga dapat menulisnya dalam basis 8 (oktal) atau 16 (heksadesimal). Untuk menulis nilai literal dalam bentuk oktal, Anda dapat menuliskannya dengan angka 0 di depannya, contoh 01, 05, 0456. Digit untuk bilangan oktal memiliki range antara 0 – 7, karenanya jangan menggunakan bilangan yang lebih besar dari angka 7 untuk menuliskan bilangan oktal. Untuk bilangan heksadesimal, Anda dapat menulisnya dengan didahului oleh tanda 0x (nol dan x) atau 0X (nol dan X), contohnya 0x1, 0X92, 0xA, dan seterusnya. Digit bilangan heksadesimal memiliki range antara 0-15, untuk digit 10-15 digunakan huruf A-F atau a-f sebagai lambangnya.

Untuk menuliskan angka yang memiliki ukuran yang sangat besar, di mana hanya tipe data long (64 bit) yang dapat menampungnya,Anda perlu menambahkan karakter L atau l di akhir nilai literal yang
Anda ketik, untuk memberi tahu Java bahwa nilai literal yang diketik tersebut bertipe data long dan bukan bertipe int. Contoh : 0x7ffffffffffffffL dan 9034872617383847568L.

Literal Floating-Point
Bilangan floating-point merupakan bilangan desimal yang berupa pecahan. Bilangan ini dapat ditulis menggunakan notasi standar biasa atau menggunakan notasi ilmiah (scientific notation). Notasistandar menggunakan titik untuk menandakan pecahan. Contohnya 10.2, 11.13, 99.9, dan seterusnya. Sementara untuk notasi ilmiah dapat digunakan dengan menambah lambang En pada notasi standard floating-point. E (eksponensial) berarti bahwa nilai floatingpoint- nya harus dikalikan dengan nilai 10 sebanyak n kali untuk mendapatkan nilai yang sebenarnya, contoh:

7.02345E3 = 7.02345 x 103 = 7023.45

Secara default semua nilai literal floating-point yang ditulis dalam Java akan dianggap memiliki tipe data double. Akan tetapi, secara eksplisit Anda dapat menentukan tipe data dari nilai literal yang ditulis dengan menambahkan lambang F atau f untuk tipe data float dan D atau d untuk tipe data double.

Kesalahan umum yang sering terjadi adalah kebanyakan orang mencoba menuliskan code seperti berikut ini:

float num = 10.5;

Nilai literal 10.5 di atas secara default akan bertipe data double sehingga menimbulkan kesalahan karena double memiliki ukuran lebih besar daripada float. Untuk memperbaikinya, Anda dapat menambahkan tanda F atau f di belakang nilai literal tersebut, seperti berikut ini:

float num = 10.5f;

Literal Boolean
Untuk tipe data boolean, Java hanya mengenal dua nilai literal, yaitu true dan false. Contoh penggunaan:

boolean value1 = true ;
boolean value2 = false;

Note: Para programmer yang biasa menggunakan C/C++ harus memperhatikan bahwa nilai literal true dan false tidak dapat dikonversi ke dalam bentuk representasi numerik seperti halnya di dalam bahasa C/C++. Dalam C/C++ semua selain 0 adalah true. Dalam Java hal ini tidak berlaku.

Literal Character
Java didesain untuk menjadi bahasa yang portabel dan universal. Oleh karena itu, Java mendukung penggunaan Unicode Characters, yang mencakup hampir semua karakter yang dikenal oleh manusia
dalam berbagai bahasa, seperti Arabic, Latin, Greek, dan lain-lain. Untuk itu, lebar data untuk tipe data char adalah 16 bit agar dapat merepresentasikan semua karakter yang ada. Untuk kode ‘ASCII’
yang telah dikenal luas, kita dapat langsung menulisnya di dalam tanpa petik, contoh ‘a’, ‘$’, ‘*’, dan seterusnya. Namun, untuk beberapa karakter yang tidak dapat kita masukkan dengan mengetik
secara langsung melalui keyboard (seperti karakter ganti baris, tab, backspace, dan lain-lain), dapat digunakan apa yang dikenal sebagai escape sequences. Cara menulisnya menggunakan karakter \ (backslash). Contohnya, untuk karakter ganti baris, kita dapat menulis ‘\n’. Selain itu, juga dapat secara langsung menulis nilai Unicode dari karakter yang diinginkan menggunakan bilangan oktal
atau heksadesimalnya. Jika menggunakan bilangan oktal, dapat langsung ditulis dengan format ‘\ddd’, di mana nilai ddd diganti dengan bilangan oktal. Contohnya ‘\141’ untuk karakter ‘a’. Dan
jika menggunakan heksadesimal Anda dapat menggunakan format penulisan ‘\uxxxx’ di mana nilai xxxx diganti dengan bilangan heksadesimal. Contohnya ‘\u0061’ untuk karakter ‘a’.

Berikut ini daftar escape sequence yang dikenal oleh Java.

Escape Sequences                        Deskripsi
\ddd                                              karakter Oktal(ddd)
\uxxxx                                          karakter Heksadesimal(xxxx)
\’                                                  tanda petik
\”                                                 tanda petik ganda
\\                                                  tanda \ (backslash)
\r                                                  carriage return
\n                                                 pindah baris
\f                                                 form feed
\t                                                  tab
\b                                                backspace

Literal String
Literal untuk string dalam Java ditulis di antara tanda petik ganda, dan sama halnya seperti literal untuk karakter, escape sequences juga dapat digunakan di sini. Contoh literal string:

"Literal String"
"Baris 1\nBaris 2"
"\"Tanda petik ganda\" dan tanda backslash \\"

Untuk melihat efek penggunaan escape sequences ini, Anda dapat menggunakan perintah System.out.println() dalam program.

Hasilnya sebagai berikut:

Literal String
Baris 1
Baris 2
"Tanda petik ganda" dan tanda backslash \

0 komentar:

Posting Komentar

 

Serba Ada Blog Copyright © 2011-2012 | Powered by Blogger