Tipe data adalah jenis data yang mempunyai batasan tempat dan
karakteristik sesuai dengan interprestasi data dan dapat diolah oleh
komputer untuk memenuhi kebutuhan dalam pemrograman komputer. Tipe data
pada umumnya termasuk tipe data primitif, yaitu interger, floating point
number dan character (string). Kumpulan dari tipe data primitif yang
sejenis juga dapat disatukan dalam sebuah blok yang disebut array.
Setiap variabel atau konstanta yang ada dalam kode program,
sebaiknya kita tentukan dengan pasti tipe datanya. Ketepatan pemilihan
tipe data pada variabel atau konstanta akan sangat menentukan pemakaian
sumberdaya komputer (terutama memori komputer). Salah satu tugas penting
seorang programmer adalah memilih tipe data yang sesuai untuk
menghasilkan program yang efisien dan berkinerja tinggi.
Jadi dengan kata lain, misalkan sebuah variabel adalah wadah suatu
zat, kemudian kita memiliki beberapa zat yang ingin kita simpan didalam
wadah tersebut. Misal, kita memiliki air untuk ditempatkan dalam suatu
wadah, apa yang akan kita gunakan untuk menampung / mewadahi air
tersebut ? Gelas ? Ember ? Gayung ? Ya benar sekali. Kita harus
menggunakan wadah khusus zat cairan untuk menampung / mewadahi air, kita
tidak mungkin menggunakan wadah lainnya. Kita tidak mungkin menggunakan
kardus untuk mewadahi air bukan ? Karena kardus digunakan untuk
mewadahi zat padat. Jadi sama halnya dengan tipe data, apabila kita
ingin menampung/menyimpang sebuah input huruf, kita tidak bisa
menyimpannya dalam bentuk tipe data angka / integer, karena tipe data
integer / angka hanya di desain khusus untuk menampung / mewadahi
inputan berupa angka saja.
Setelah kita memahami apa itu tipe data seperti yang dijelaskan di
atas, kita bisa memulai untuk mengetahui apa saja tipe data yang ada,
khususnya dalam bahasa pemrograman Java.
Java mempunyai 11 macam tipe data yang terdiri atas tipe data
sederhana dan referensi / komposit. Tipe sederhana meliputi byte, short,
int, long, char, float, double dan boolean yang terbagi menjadi 3 tipe.
Sedangkan tipe data referensi meliputi class,array dan interface.
A. Tipe Data Sederhana
- Integer (Bilangan Bulat)
Tipe data yang masuk menjadi bagian ini adalah byte, short, int dan long. Semua tipe data ini bersifat
Signed, yaitu bisa mempresentasikan nilai positif dan negatif. Tidak seperti tipe data lainnya, Java tidak mendukung tipe data Unsigned yang hanya bisa mempresentasikan nilai postif.
Type
byte umumnya digunakan pada saat kita bekerja dengan sebuah data
stream dari
suatu file maupun jaringan, yaitu untuk kepeluan proses
membaca/menulis. Selain itu, tipe ini juga digunakan saat bekerja dengan
data biner yang tidak kompatibel dengan tipe-tipe lain yang
didefiniskan di dalam Java.
Pada umumnya diaplikasikan pada komputer-komputer 16-bit, yang saat ini semakin jarang keberadaanya
Tipe ini merupakan tipe yang paling banyak dipakai dalam
merepresentasikan angka dalam Java, dikarenakan dianggap paling efisien
dibandingkan dengan tipe-tipe integer lainnya. Tipe
Int banyak digunakan untuk indeks dalam struktur pengulangan maupun dalam konstruksi sebuah
array.Selain itu, secara teori setiap ekspresi yang melibatkan tipe integer
byte, short, int, long) semuanya akan dipromosikan ke
int terlebih dahulu sebelum dilakukan proses perhitungan.
Tipe ini digunakan untuk kasus-kasus tertentu yang nilainya berada di luar rentang tipe
int, karna tipe ini punya range paling tinggi dibanding
Integer lainnya. Dengan kata lain, tipe
long terpaksa digunakan jika data memiliki range diluar range
int.
2.
Floating – Point (Bilangan Pecahan)
Tipe
floating-point digunakan untuk merepresentasikan
nilai-nilai yang mengandung pecahan atau angka decimal di belakang koma,
seperti 3.1416,5.25, dan sebagainya. Bilangan semacam ini disebut
sebagai bilangan riil. Dalam Java tipe ini dibedakan menjadi dua jenis,
yaitu
float, dan
double.
Tipe ini digunakan untuk menandakan nilai–nilai yang mengandung presisi atau ketelitan tunggal (
single-precision)
yang menggunakan ruang penyimpanan 32-bit. Presisi tunggal biasanya
lebih cepat untuk processor-processor tertentu dan memakan ruang
penyimpanan setengah kali lebih sedikit dibandingkan presisi ganda (
double precision). Permasalahan yang timbul dari pemakaian tipe
float untuk nilai-nilai yang terlalu kecil atau justru terlalu besar, karena nilai yang dihasilkan akan menjadi tidak akurat.
Tipe ini mengandung tingkat ketelitian ganda atau presisi ganda (
double precision) dan menggunakan ruang penyimpanan 64-bit untuk menyimpan nilai. Tipe
double tentu lebih cepat untuk melakukan perhitungan-perhitungan matematis daripad tipe
float. Untuk perhitungan yang bersifat bilangan riil dan menghasilkan hasil yang lebih akurat, maka lebih baik menggunakan tipe
double.
3.
Char
Tipe data char merupakan tipe untuk menyatakan sebuah karakter. Java menggunakan karakter
Unicode untuk merepresentasikan semua karakter yang ada .
Unicode ialah
sekumpulan karakter yang terdapat pada semua bahasa, seperti bahasa
Latin, Arab, Yunani dan lain-lainnya. Karena bahasa Java dirancang untuk
dapat diterapkan di berbagai macam
platform, maka Java menggunakan karakter
Unicode yang
membutuhkan ukuran 16-bit. Untuk karakter-karakter yang tidak dapat
diketikkan secara langsung melalui keyboard, java menyediakan beberapa
escape sequence (pasangan karakter yang dianggap sebagai karakter tunggal).
Escape sequence tidak dianggap sebagai
String, melainkan tetap sebagai tipe karakter khusus.
4.
Boolean
Tipe
boolean adalah tipe data yang digunakan untuk menampung
nilai logika, yaitu nilai yang hanya memiliki dua buah kemungkinan
(benar atau salah). Tipe ini ditandai dengan kata kunci
Boolean. Dalam bahasa Java, nilai benar dipresentasikan dengan kata kunci
true dan nilai salah dengan kata kunci
false.
B.
Tipe Data Referensi
1.
Class
Kelas dapat didefiniskan sebagai cetak biru (blueprint) atau
prototipe/kerangka yang mendefiniskan variabel-variabel (data) dan
method-method (perilaku) umum dari sebuah objek. Dengan kata lain kelas
adalah sebuah kesatuan yang terintegrasi antara method dan data yang
mengacu pada suatu objek.
Dalam dunia permrograman, sebenarnya kelas tidak jauh berbeda
dengan tipe data sederhana. Perbedaannya, tipe data sederhana digunakan
untuk mendeklarasikan variabel ‘normal’, sedangkan kelas digunakan untuk
mendeklarasikan sebuah variabel yang berupa objek. Variabel yang berupa
objek ini sering disebut dengan referensi objek (object reference).
Pada saat kita membuat sebuah kelas baru. Sekali didefiniskan, maka
tipe data baru ini dapat digunakan untuk membuat suatu objek dari tipe
tersebut. Dengan kata lain, kelas adalah pola (template) untuk pembuatan
objek, dan objek adalah wujud nyata (instance) dari sebuah kelas.
2. Array
Tipe data ini memiliki kemampuan untuk menggunakan satu variabel
yang dapat menyimpan sebuah data list dan kemudian memanipulasinya
dengan lebih efektif.
Sebuah array akan menyimpan beberapa item data yang memiliki tipe
data sama didalam sebuah blok memori yang berdekatan yang kemudian
dibagai menjadi beberapa slot.
3. Interface
Interface merupakan sekumpulan method yang hanya memuat deklarasi
dan struktur method, tanpa detail implementasinya. Sedangkan detail dari
method tersebut berada pada class yang mengimplementasikan interface
tersebut. Interface digunakan bila Anda ingin mengaplikasikan suatu
method yang spesifik, yang tidak diperoleh dari proses inheritance yang
lebih terbatas. Tipe data yang boleh pada interface hanya tipe data
konstan.
Itu kira-kira macam-macam tipe data yang digunakan dalam bahasa
pemrograman Java. Semoga dengan artikel ini kita bisa lebih menguasai
tentang penggunaan tipe data dalam membuat program dengan menggunakan
bahasa pemrograman Java. Sampai jumpa.
Operator
Dalam Java, ada beberapa tipe operator. Ada operator
aritmatika, operator relasi, operator logika, dan operator kondisi.
Operator ini mengikuti bermacam-macam prioritas yang pasti sehingga
compilernya akan tahu yang mana operator untuk dijalankan lebih dulu
dalam kasus beberapa operator yang dipakai bersama-sama dalam satu
pernyataan.
Operator Aritmatika
Berikut ini adalah dasar operator aritmatika yang dapat digunakan untuk membuat suatu program Java,
contoh
|
Nama
|
Hasil
|
a + b
|
Penjumlahan
|
Jumlah dari $a dan $b
|
a - b
|
Pengurangan
|
Selisih dari $a dan $b
|
a * b
|
Perkalian
|
Hasil kali dari $a dan $b
|
a / b
|
Pembagian
|
Pembagian dari $a dan $b
|
a % b
|
Modulus
|
Sisa dari $a dibagi dengan $b
|
Contoh Operator Aritmatika :
public class OperasiAritmatika |
{ |
public static void main(String args[]) |
{ |
short x = 6; |
int y = 4; |
float a = 12.5f; |
float b = 7f; |
System.out.println("x= "+ x + ", y = "+y); |
System.out.println("x + y ="+ (x + y)); |
System.out.println("x - y ="+ (x - y)); |
System.out.println("x / y ="+ (x / y)); |
System.out.println("x % y ="+ (x % y)); |
System.out.println("a = "+ a + ", b = "+b); |
System.out.println("a / b ="+ (a / b)); |
System.out.println("x / b ="+ (x / b)); |
System.out.println("b / x ="+ (b / x)); |
} |
} |
Operator Relasi Pada java
Operator
Relasi membandingkan dua nilai dan menentukan keterhubungan diantara
nilainilai tersebut. Hasil keluarannya berupa nilai boolean yaitu true
atau false.
contoh
|
Nama
|
Hasil
|
a == b
|
sama dengan benar
|
Jika a sama dengan b
|
a != b
|
tidak sama
|
benar jika a tidak sama dengan b
|
a < b
|
lebih kecil
|
benar jika a lebih kecil b
|
a > b
|
lebih besar
|
benar jika a lebih besar b
|
a <= b
|
lebih kecil atau sama dengan
|
benar jika a lebih kecil atau sama dengan b
|
a >= b
|
lebih besar atau sama dengan
|
benar jikaa lebih besar atau sama dengan b
|
Contoh Operator Relasi :
public class operator { |
public static void main(String args[]) |
{ |
int a = 4; |
int b = 3; |
System.out.println(a==b); |
System.out.println(a!=b); |
System.out.println(a<b); |
System.out.println(a>b); |
System.out.println(a<=b); |
System.out.println(a>=b); |
} |
} |
Operator Tambahan pada Java
Contoh Program
public class IncrementDecrement |
{ |
public static void main(String args[]) |
{ |
int i = 1; |
System.out.println("i : " + i ); |
// Pre-increment |
System.out.println("++i : " + ++i ); |
// Post-increment |
System.out.println("i++ : " + i++ ); |
System.out.println("i : " + i ); |
// Pre-decrement |
System.out.println("--i : " + --i ); |
// Post-decrement |
System.out.println("i-- : " + i-- ); |
System.out.println("i : " + i ); |
} |
} |
Operator Logika
Operator
logika memiliki satu atau lebih operand boolean yang menghasilkan nilai
boolean. Terdapat enam operator logika yaitu: && (logika AND),
& (boolean logika AND), || (logika OR), | (boolean logika inclusive
OR), ^ (boolean logika exclusive OR), dan ! (logika NOT).
contoh
|
Nama
|
Hasil
|
a &&b
|
AND
|
benar jika a dan b benar
|
a || b
|
OR
|
benar jika a atau b benar
|
a ^b
|
X OR
|
benar jika a atau b benar tetapi tidak keduanya
|
Contoh Source Code Program Operator Logika:
public class operator { |
public static void main(String args[]) |
{ |
System.out.println(a&&b); |
System.out.println(a||b); |
System.out.println(a^b); |
System.out.println(a&b); |
System.out.println(a|b); |
System.out.println(a!=b); |
} |
} |
Operator Perbandingan/Kondisi
Operator
perbandingan ini digunakan pada struktur kontrol program, seperti if,
elseif, di mana dilakukan perbandingan antar dua nilai.
Source Code Contoh Program Operator Aritmatika:
public class aritmatikaDemo |
{ |
public static void main(String[] args) |
{ |
//sedikit angka |
int i = 37; |
int j = 42; |
double x = 27.475; |
double y = 7.22; |
System.out.println("Variable values..."); |
System.out.println(" i = " + i); |
System.out.println(" j = " + j); |
System.out.println(" x = " + x); |
System.out.println(" y = " + y); //penjumlahan angka |
System.out.println("Adding..."); |
System.out.println(" i + j = " + (i + j)); |
System.out.println(" x + y = " + (x + y)); |
//pengurangan angka |
System.out.println("Subtracting..."); |
System.out.println(" i - j = " + (i - j)); |
System.out.println(" x - y = " + (x - y)); |
//perkalian angka |
System.out.println("Multiplying..."); |
System.out.println(" i * j = " + (i * j)); |
System.out.println(" x * y = " + (x * y)); |
//pembagian angka |
System.out.println("Dividing..."); |
System.out.println(" i / j = " + (i / j)); |
System.out.println(" x / y = " + (x / y)); |
//menghitung hasil modulus dari pembagian |
System.out.println("Computing the remainder..."); |
System.out.println(" i % j = " + (i % j)); |
System.out.println(" x % y = " + (x % y)); |
//tipe penggabungan |
System.out.println("Mixing tipes..."); |
System.out.println(" j + y = " + (j + y)); |
System.out.println(" i * x = " + (i * x)); |
} |
} |
Berikut ini adalah output program,
Variable values... |
i = 37 |
j = 42 |
x = 27.475 |
y = 7.22 |
i + j = 79 |
Adding... |
x + y = 34.695 |
Subtracting... |
i - j = -5 |
x - y = 20.255 |
Multiplying... |
i * j = 1554 |
x * y = 198.37 |
Dividing... |
i / j = 0 |
x / y = 3.8054 |
Computing the remainder... |
i % j = 37 |
x % y = 5.815 |
Mixing tipes... |
j + y = 49.22 |
i * x = 1016.58 |
Catatan: Ketika
integer dan floating-point number digunakan sebagai operand untuk
operasi aritmatika tunggal, hasilnya berupa floating point. Integer
adalah converter secara implisit ke bentuk angka floating-point sebelum
operasi berperan mengambil tempat.
Contoh source code yang menggunakan logika dan boolean AND,
public class TestAND |
{ |
public static void main( String[] args ){ |
int i = 0; |
int j = 10; |
boolean test= false; |
//demonstrasi && |
test = (i > 10) && (j++ > 9); |
System.out.println(i); |
System.out.println(j); |
System.out.println(test); |
//demonstrasi & |
test = (i > 10) & (j++ > 9); |
System.out.println(i); |
System.out.println(j); |
System.out.println(test); |
} |
} |
The output of the program is,
0
10
false
0
11
false
Catatan,
bahwa j++ pada baris yang mengandung operator && tidak
dievaluasi sejakpernyataan pertama (i>10) yaitu telah bernilai sama
dengan false.
Contoh source code yang menggunakan operator logika dan boolean OR,
public class TestOR |
{ |
public static void main( String[] args ){ |
int i = 0; |
int j = 10; |
boolean test= false; |
//demonstrasi || |
test = (i < 10) || (j++ > 9); |
System.out.println(i); |
System.out.println(j); |
System.out.println(test); |
//demonstrasi | |
test = (i < 10) | (j++ > 9); |
System.out.println(i); |
System.out.println(j); |
System.out.println(test); |
} |
} |
Hasil keluaran dari program ini adalah,
0
10
true
0
11
true
Catatan,
bahwa j++ pada baris yang terdiri atas operator || tidak dievaluasi
sejak pernyataan pertama (i<10) yaitu telah bernilai sama dengan
true.
Contoh source code yang menggunakan operator logika exclusive OR,
public class TestXOR |
{ |
public static void main( String[] args ){ |
boolean val1 = true; |
boolean val2 = true; |
System.out.println(val1 ^ val2); |
val1 = false; |
val2 = true; |
System.out.println(val1 ^ val2); |
val1 = false; |
val2 = false; |
System.out.println(val1 ^ val2); |
val1 = true; |
val2 = false; |
System.out.println(val1 ^ val2); |
} |
} |
Hasil keluaran program tersebut adalah,
false
true
false
true
Contoh source code yang menggunakan operator logika NOT,
public class TestNOT |
{ |
public static void main( String[] args ){ |
boolean val1 = true; |
boolean val2 = false; |
System.out.println(!val1); |
System.out.println(!val2); |
} |
} |
Hasil keluaran program adalah sebagai berikut,
false
true
Operator Kondisi(?:)
Operator kondisi
?: adalah
operator ternary. Berarti bahwa operator ini membawa tiga argumen yang
membentuk suatu ekspresi bersyarat. Struktur pernyataan yang menggunakan
operator kondisi adalah,
public class ConditionalOperator
{
public static void main( String[] args ){
String status = "";
int grade = 80;
//mendapatkan status pelajar
status = (grade >= 60)?"Passed":"Fail";
//print status
System.out.println( status );
}
}
|
Hasil keluaran dari program ini akan menjadi,
Passed
Berikut ini adalah program lain yang menggunakan operator ?: ,
class ConditionalOperator
{
public static void main( String[] args ){
int score = 0;
char answer = 'a';
score = (answer == 'a') ? 10 : 0;
System.out.println("Score = " + score );
}
}
|
Hasil keluaran program adalah,
Score = 10