TIPS: Rangkuman ini hanya sebagai pemahaman secara umum. Pastikan Anda juga membaca BMP (Buku Materi Pokok) versi cetak atau digital di Ruang Baca Virtual (RBV) untuk pemahaman lebih mendalam.
DILARANG: Memperjualbelikan seluruh konten atau latihan soal yang terdapat di portal ini. Pelanggaran akan dikenakan sanksi sesuai ketentuan yang berlaku.
Tipe data primitif adalah tipe data dasar dalam bahasa pemrograman Java yang terbagi menjadi 6 bagian utama.
1. Null
Tipe data null menunjukkan bahwa variabel belum memiliki nilai maupun tempat pada memori. Variabel bertipe integer, boolean, string, maupun tipe lainnya dapat bernilai null.
Integer iHasil = null;
String sHasil = null;
Boolean bHasil = null;
Float fHasil = null;
Character cHasil = null;
2. Boolean
Tipe data boolean hanya dapat diisi dengan nilai true atau false. Digunakan untuk merepresentasikan kondisi benar atau salah.
boolean hasil;
boolean hasil = true;
boolean hasil = false;
boolean, diikuti nama variabel, =, nilai, dan ;3. Integer
Tipe data integer berisi bilangan bulat. Tipe int 32-bit memiliki rentang nilai -2.147.483.648 sampai 2.147.483.647. Tipe long 64-bit diakhiri huruf L.
int panjang;
int lebar;
int luas;
int panjang, lebar, luas; // multiple declaration
long volume = 30L;
L4. Floating Point
Tipe data floating point untuk bilangan riil/desimal. Tipe double 64-bit dan float 32-bit (diakhiri F).
double nilai = 9.6789;
float jumlah = 9.6789F;
F5. Character
Tipe data character bertipe 16-bit, merupakan karakter unicode yang berkaitan dengan kode ASCII. Diapit tanda kutip satu.
char karakter1 = 'A';
char karakter2 = '\u0041';
char karakter3 = 65;
' '6. String
Tipe data string berupa rangkaian karakter (kalimat). Huruf S dalam String harus besar. Diapit tanda kutip dua.
String kucing = "kucingnya sangat lucu";
" "Tipe data abstrak merupakan ciri khas program berorientasi objek. Class adalah tempat untuk menciptakan object yang menyimpan variabel dan method.
1. Deklarasi Class dan Variabel Static
class UserData {
static String name;
static int age;
}
2. Object dan Constructor
class PlayerData {
static int playerCount;
String name;
int age;
}
Array adalah variabel bertipe data sejenis yang berderet. Terdiri dari elemen/cell/lokasi/kolom. Array satu dimensi (vektor) memiliki satu baris dan n kolom, atau satu kolom dan n baris.
1. Deklarasi Array Tanpa Nilai Awal
int[] A = new int[5];
2. Deklarasi Array dengan Nilai Awal
String negara[] = {"Australia", "Ceko", "Jepang", "Indonesia", "Canada"};
3. Menampilkan Isi Array
// Tanpa perulangan
System.out.println(cetakA[1]);
// Dengan perulangan
for (int i = 0; i < 5; i++) {
System.out.println(cetakA[i]);
}
4. Array dengan Input Keyboard
import java.util.Scanner;
Scanner input = new Scanner(System.in);
String[] negara = new String[5];
for (int i = 0; i < 5; i++) {
negara[i] = input.nextLine();
}
Array dua dimensi memiliki baris dan kolom sehingga membentuk matriks. Merupakan gabungan dari array satu dimensi. Deklarasi menggunakan [][].
1. Deklarasi Tanpa Nilai Awal
int[][] A = new int[4][5]; // 4 baris, 5 kolom, 20 elemen
2. Deklarasi dengan Nilai Awal
String negara[][] = {
{"Australia", "Ceko", "Jepang", "Indonesia", "Kanada"},
{"Canberra", "Praha", "Tokyo", "Jakarta", "Ottawa"}
};
3. Menampilkan Array 2 Dimensi
// Tanpa perulangan
System.out.println(cetakA[0][1]);
// Dengan perulangan (nested for)
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 5; j++) {
System.out.println(cetakA[i][j]);
}
}
4. Array 2D dengan Input Keyboard
Menggunakan seleksi kondisi if-else dalam perulangan untuk menentukan baris negara atau ibukota.
Setiap elemen array memiliki alamat memori (hexadesimal). Komputer menempatkan variabel elemen ke alamat memori yang kosong. Konsep pengalamatan sama untuk array 1D dan 2D.
Linked list adalah untaian/rangkaian daftar. Jika array menggunakan istilah elemen, linked list menggunakan istilah node. Node terdiri dari kolom data dan penunjuk arah (pointer) ke node berikutnya. Node pertama disebut head, node terakhir disebut tail. Tail menunjuk ke null.
1. Penyisipan Node pada Head
Node baru disisipkan di depan head. Head lama menjadi node kedua, head berpindah ke node baru.
2. Penyisipan Node pada Tail
Node baru disisipkan setelah tail. Tail berpindah ke node baru yang berada di posisi paling belakang.
3. Menghapus Node dari Head
Node head dihapus, head bergeser ke node berikutnya. Node berikutnya menjadi head baru.
4. Kelebihan Linked List vs Array
5. Coding Singly Linked List
public class SinglyLinkedList<E> {
private static class Node<E> {
private E element;
private Node<E> next;
public Node(E e, Node<E> n) { element = e; next = n; }
public E getElement() { return element; }
public Node<E> getNext() { return next; }
public void setNext(Node<E> n) { next = n; }
}
private Node<E> head = null;
private Node<E> tail = null;
private int size = 0;
// Access: size(), isEmpty(), first(), last()
// Update: addFirst(E), addLast(E), removeFirst()
}
Circularly linked list mirip singly linked list, tetapi tail menunjuk kembali ke head (bukan null). Contoh implementasi: penjadwalan Round-Robin (RR).
1. Operasi Circularly Linked List
2. Coding Circularly Linked List
public class CircularlyLinkedList<E> {
private Node<E> tail = null;
// Access: size(), isEmpty(), first(), last()
// Update: rotate(), addFirst(E), addLast(E), removeFirst()
}
tail = tail.getNext())tail.getNext().getElement() (node setelah tail = head)tail.getNext()), jika hanya 1 node maka tail = null