Anda di halaman 1dari 17

IF

Percabangan adalah suatu pilihan atau opsi dengan kondisi tertentu. Jika kondisi yang menjadi
syarat terpenuhi, maka opsi atau pilihan dijalankan, jika tidak maka sebaliknya. Dalam java
terdapat 4 macam jenis percabangan, if, if-else, else-if, dan juga switch. Keempat jenis ini
memiliki penggunaan masing-masing. Berikut penjelasan mengenai penggunaan tiap-tiap
percabangan :

if : Percabangan if ini digunakan jika kita hanya memiliki satu pernyaatan yang akan
dijalankan dengan syarat tertentu. Sintaks if seperti berikut :

if(kondisi){
pernyataan
}

if - else : Percabangan if else digunakan saat kita memiliki dua pernyataan dengan
syarat tertentu. Sintaks if-else seperti berikut :

if(kondisi){
pernyataan1
}else{
pernyataan2
}

else - if : percabangan yang digunakan saat kita memiliki banyak kondisi (lebih dari 2)
dan banyak pernyataan (lebih dari 2). Sintaks dari else-if seperti berikut :

if(kondisi){
pernyataan1
}elseif(kondisi2){
pernyataan2
}else(kondisi3){
pernyataan3
}

Switch - case : percabangan yang digunakan saat kita memiliki banyak kondisi (lebih
dari 2) dan banyak pernyataan (ledbih dari 2). Sebenarnya switch-case ini hampir sama
dengan else if, hanya saja sintaksnya yang berbeda. Sintaks dari switch-case seperti
berikut :

switch (variabel) {
case nilai1: pernyataan1;
break;
case nilai2: pernyataan2;
break;
default: pernyataan3;
break;
}
ARRAY
Untuk menggunakan larik di program, Anda terlebih dahulu harus mendeklarasikan variabel
dengan tipe acuan yang mengacu ke larik. Larik adalah obyek. Semua obyek di Java menempati
ruang memori. Semua obyek di Java dibuat (dikonstruksi) dengan menggunakan kata kunci new.
Untuk membuat obyek larik, terlebih dahulu harus ditentukan tipe data atau tipe acuan beserta
jumlah elemen larik. Berikut ini adalah sintak untuk mendeklarasikan dan membuat sebuah
obyek larik:

tipe-data[] nama-variabel = new tipe-data[jumlah-elemen];

atau

tipe-data nama-variabel[] = new tipe-data[jumlah-elemen];

Anda dapat menentukan sendiri salah satu di antara dua cara pendeklarasian dan pembuatan
larik. Kebanyakan, programer memilih untuk menggunakan cara yang pertama, sedangkan cara
kedua, merupakan cara pendeklarasian dan pembuatan larik di bahasa pemrograman C yang
kemudian diadopsi oleh Java. Berikut ini adalah beberapa contoh pendeklarasian dan pembuatan
larik larikA:

int[] larikA = new int[15];

atau

int larikA[] = new int[15];

Pernyataan di atas melakukan tiga tugas sekaligus yaitu mendeklarasikan variabel larikA yang
mengacu ke obyek larik, membuat larik yang memiliki 15 elemen dengan tipe int, dan memberi
variabel larikA acuan (reference) ke objek larik.

String[] larikQ = new double[25];

atau

String larikQ[] = new String[25];

Pernyataan di atas melakukan tiga tugas sekaligus yaitu mendeklarasikan variabel larikQ yang
mengacu ke obyek larik, membuat larik yang memiliki 25 elemen dengan masing-masing elemen
mengacu ke obyek String, dan memberi variabel larikQ acuan ke obyek larik.

Proses pendeklarasian dan pembuatan larik, dapat dilakukan dengan dua tahap. Pertama, Anda
dapat mendeklarasikan variabel yang mengacu ke obyek larik dan kedua membuat obyek larik.
Untuk mendeklarasikan variabel yang mengacu ke obyek larik, perlu ditentukan tipe data atau
tipe acuan untuk elemen larik. Berikut ini adalah sintak pendeklarasian variabel yang mengacu
ke obyek larik:
tipe-data[] nama-variabel;

atau

tipe-data nama-variabel[];
PROCEDURE & FUNCTION
Seperti halnya bahasa pemograman yang lain java juga memiliki fungsi dan prosedur yang
berguna untuk memudahkan dan mengoptimalkan program.

Prosedur

Prosedur adalah kumpulan ekspresi-ekspresi algoritma yang berguna untuk menjalankan proses
tertentu. Prosedur sudah banyak dikenal mulai dari bahasa mesin hingga bahasa level tinggi
(Query).
Dalam bahasa Java prosedur biasanya diawali dengan kata void. Dan kebanyakan aplikasi
berjalan melalui prosedur.

Fungsi

Fungsi dan prosedur memiliki kesamaan dalam bentuknya hanya saja fungsi memiliki nilai yang
bisa dihasilkan kembali (Dikembalikan). Fungsi dibuat biasanya untuk menyederhanakan sebuah
operasi. Ketika dua buah prosedur membutuhkan sebuah operasi yang sama maka operasi
tersebut dapat ditulis kedalam fungsi sehingga bisa menghemat waktu penulisan tanpa harus
menulis dua kali.
Dalam bahasa Java fungsi biasanya diawali dengan tipe data (int, char, bool). Dan diakhir
statementnya terdapat kata return. Nilai yang direturn harus nilai yang sama seperti yang
dideklarasikan di nama fungsi. perhatikan contoh dari prosedur dan fungsi dibawah ini :

public class FunctionProcedure {


public static void main(String[] args) {
int T, n;
n = Nilai(4, 4); //Fungsi Nilai dipanggil
T = n * 100;
System.out.println(T);
}
public static int Nilai(int a, int b) {
int n;
b = b * 2;
n = a + b;
return n;
}
}

Program diatas menggunakan fungsi nilai yang menghitung nilai a dan b setelah dihitung nilai
hasil akan digunakan oleh prosedur main dan prosedur main akan menampilkan hasilnya.
STACKING
STACK adalah salah satu list linear dalam struktur data yang digunakan untuk menyimpan dan
mengambil data dengan konsep LIFO (Last In First Out). Dimana dalam stack ini kumpulan
data yang masuk diletakkan di atas data yang lain. Dan berdasar konsep LIFO maka data yang
terakhir kali disimpan dalam stack akan menjadi data yang pertama kali diambil. Dalam
prosesnya, untuk memasukkan sebuah data ke dalam stack atau dengan kata lain ke bagian atas
dari sebuah tumpukan digunakan perintah push. Dan untuk memindahkan data dari tempat
tersebut digunakan perintah pop. Sedangkan dalam penyajiannya, stack bisa memakai array atau
linked list.

Dari gambar di atas bisa dilihat bahwa data di dalam stack hanya bisa dimasukkan atau diambil
melalui bagian ujung saja/top.

Operasi-operasi dasar pada stack :

a. Cek Stack kosong (Isempty)


Fungsi yang melakukan pengecekan apakah stack dalam kondisi kosong.
public int isempty(){
if(posisi==0)
System.out.println("Data Kosong");
return 1;
else
System.out.println("Data ada");
return 0;
}

b. Cek Stack penuh (full)


Fungsi yang melakukan pengecekan apakah stack dalam kondisi penuh atau tidak.
public int full(){
if(posisi==MAX)
System.out.println(Stack Penuh);
return 0;
else
return 1;
}

c. Operasi Push
Operasi push dalam stack adalah operasi yang memasukkan elemen yang akan diletakkan
pada posisi teratas dari tumpukan.
public void push (int data){
if(posisi<MAX_STACK)
isistack[++posisi] = data;
}

d. Operasi Pop
Operasi pop dalam stack adalah operasi untuk mengambil/menghapus elemen yang
terletak pada posisi paling atas dari sebuah tumpukan.
public void pop(){
int y=0;
if(posisi != 0)
isistack[posisi--]=y;
}

e. Cek posisi Teratas (Peek)


Operasi peek digunakan untuk mengecek posisi teratas dalam stack.
public void peek(){
System.out.print("Posisi Atas= ");
if(posisi != 0)
System.out.print(isistack[posisi]);
System.out.println();

Penerapan stack :

Stack digunakan untuk menuliskan ungkapan menggunakan notasi tertentu (Notasi Polish).
Biasanya ungkapan yang digunakan adalah ungkapan numeris. Sebagai contoh ungkapan (A +
B)*(C D) apabila ditulis dengan menggunakan notasi Polish menjadi * + A B C D.
SORTING
Sorting atau pengurutan merupakan suatu proses untuk menyusun suatu data yang acak menjadi
terurut. Dalam pembuatan program sendiri terdapat beberapa metode atau teknik sorting antara
lain bubble sort, selection sort, insertion sort, merge sort, dan lain-lain. Pada bahasa
pemrograman Java, untuk data yang bertipe array telah disediakan sebuah method untuk
melakukan pengurutan data, yaitu method sort(). Method ini berada di dalam
Class Arrays. Jadi kalo kita mau melakukan sorting, cukup panggil aja method sort() ini.
Contoh :
import java.util.Arrays;
public class ArraySorting {
public static void main(String[] args) {
int arr[] = {
50, 70, 14, 35, 44, 23, 59, 4, 65
};
System.out.println("Data Array sebelum diurutkan: ");
for (int i: arr) {
System.out.println(i);
}
System.out.println("");
Arrays.sort(arr);
System.out.println("Data Array setelah diurutkan: ");
for (int i: arr) {
System.out.println(i);
}
}
}
SEARCHING
Mencari adalah proses membandingkan kata kunci dengan sekumpulan data sehingga
diperoleh informasi dimana data tersebut ditemukan. Data tersebut bisa yang tersimpan dalam
sebuah file/table atau dalam sebuah array. Pencarian data dapat dilakukan pada kumpulan data
yang belum terurut atau sudah terurut.
Tingkat kemangkusan pencarian pada data yang belum terurut akan berbeda dengan data
terurut. Pada pencarian data terurut efektifitasnya lebih tinggi sehingga lebih cepat ketemu.
Berikut adalah ada dua metode pencarian pada data belum terurut dengan data terurut.
1. Pencarian Sekuensial
Pencarian Sekuensial (Sequencial Searching), pada prinsipnya adalah
membandingkan data yang dicari dengan sekumpulan data mulai dari elemen/record
pertama sampai dengan elemen/record terakhir.
Dibawah ini adalah program pencarian sekuensial dalam bahasa Java :
import java.util.Scanner;
public class SequentialSearching {
public static void main(String[] args){
int [] data= new int[10];
int cari;
int n,i;
boolean ditemukan=false;
Scanner x = new Scanner(System.in);
System.out.print("Berapa data (maks 10) : ");
n = x.nextInt();
/* mengisi array */
for (i=0;i&lt;n;i++){
Scanner b = new Scanner(System.in);
System.out.print("Data ke-"+i+" :");
data[i] = b.nextInt();
}
Scanner y = new Scanner(System.in);
System.out.print("Data yang dicari : ");
cari=y.nextInt();
/* Proses Pencarian */
for (i=0;i&lt;n;i++){
if (data[i]==cari){
ditemukan=true;
break;
}
}
if (ditemukan){
System.out.println("Data ditemukan di " +i);
}
else {
System.out.println("Data tidak ditemukan");
}
}
}

2. Pencarian Biner (Binary Search)


Pencarian Biner adalah metode pencarian pada data yang sudah urut (syarat
utama). Kumpulan data akan dibagi dua tepat ditengah elemen sehingga mencari data
bagian kiri dan kanan. Jika yang elemen/data yang dicari lebih kecil dari elemen tengah,
maka pencarian dilakukan pada elemen bagian kiri. Begitu juga sebaliknya. Bagian
elemen yang dicari akan dibagi menjadi dua sehingga mendapatkan elemen tengah baru,
jika elemen tengah sama dengan yang dicari, maka pencarian selesai, jika tidak, maka
akan diputuskan pencarian sebelah kiri atau sebelah. Hal ini dilakukan sampai titik
tengahnya sama dengan yang dicari.
Berikut adalah program pencarian biner (binary search) dalam bahasa Java :
import java.util.Scanner;
public class BinarySearch {
public static void main(String[] args) {
int[] data = {3,6,8,12,15,21,25,29,31,34};
int cari, index;
for (int i = 0; i &lt; data.length; i++) {
System.out.print(data[i]+" ");
}
System.out.print("n");
System.out.print("Data yang dicari : ");
Scanner x = new Scanner(System.in);
cari = x.nextInt();
index = binarySearch(data, cari);
if (index != -1) {
System.out.println("Ketemu di : " + index);
} else {
System.out.println("Tidak ditemukan");
}
}
/* prosedure binary search */
static int binarySearch(int[] search, int find) {
int start, end, midPt;
start = 0;
end = search.length - 1;
while (start &lt;= end) {
midPt = (start + end) / 2;
if (search[midPt] == find) {
return midPt;
} else if (search[midPt] &lt; find) {
start = midPt + 1;
} else {
end = midPt - 1;
}
}
return -1;
}
}
QUEUE
Queue adalah kumpulan data dengan penambahan data hanya melalui satu sisi, yaitu belakang
(tail) dan penghapusan data hanya melalui sisi depan (head). Berbeda dengan stack yang bersifat
LIFO maka queue bersifat FIFO(First In First Out), yaitu data yang pertama masuk akan keluar
terlebih dahulu dan data yang terakhir masuk akan keluar terakhir.
Suatu item yang ditambahkan di belakang antrian tidak bisa dihapus sebelum item di depannya
dihapus. Analoginya seperti antrian ketika akan menabung di bank, nasabah akan dilayani dalam
urutan ketika mereka datang.

Pada pemrograman Java, agar dapat menggunakan Queue perlu digunakan kelas Queue dan
LinkedList. Untuk membuat objek Queue pada java menggunakan syntax sebagai berikut :

Queue objekqueue = new LinkedList();

Untuk memasukkan nilai pada objek yang telah dibuat tersebut (objekqueue) dapat digunakan
method offer().

Objekqueue.offer(objek_yang_hendak_dimasukkan);

Untuk mendapatkan panjang antrian dapat digunakan method size().

Objekqueue.size();

Untuk mengambil nilai (tidak menghapus) dari objek queue dapat digunakan method peek().
Method ini akan menampilkan nilai dari objek queue yang pertama kali dimasukkan. Seperti
antrian pada kehidupan nyata, jika nilai yang pertama dimasukkan tidak dihapus, method
peek() akan tetap menampilkan objek yang pertama kali dimasukkan dengan method
offer().

Objekqueue.peek();

Sedangkan untuk mengambil dan menghapus antrian terdepan pada objek queue digunakan
method poll(). Method ini akan mengembalikan nilai null jika pada antrian tidak ada nilainya.

Dengan method offer, dimasukkan 3 buah nilai berturut- turut yaitu Satu, Dua dan Tiga pada
objek antrian Method size() akan menampilkan nilai ukuran queue. Kemudian untuk
menampilkan isi seluruhnya dari objek Antrian dapat menggunakan
System.out.println() dengan menyebutkan objeknya.

Kemudian menggunakan method poll() akan mendapatkan nilai sekaligus menghapusnya


pada antrian terdepan. Sehingga jika ditampilkan sekali lagi isi keseluruhan dari objek Antrian,
isinya akan berkurang yaitu Satu yang merupakan nilai yang pertama kali dimasukkan
menggunakan method offer().
LINKED LIST
PengertianLinkedlist:
sekumpulan elemen bertipe sama, yang mempunyai keterurutan tertentu, yang setiap
elemennyaterdiridariduabagian
struktur berupa rangkaian elemen saling berkait dimana setiap elemen dihubungkan
elemenlainmelaluipointer.Pointeradalahalamatelemen.Penggunaanpointeruntuk
mengacu elemen berakibat elemenelemen bersebelahan secara logik walau tidak
bersebelahansecarafisikdimemori.

Linklist adalahdesaintempatpenyimpanandatayangterdiridari nodenode (simpulsimpul)


yangsalingterhubung.

Linklistdapatdiilustrasikansepertikeretaapi,dimanakeretaapiterdiridarigerbonggerbong
yangsalingterhubungyangdapatmengangkutpenumpang.Gerbongdisinisetaradengannode
dalamlinklistyangberfungsiuntukmenyimpandata.

SinglyLinkedList:
~Setiapnodepadalinkedlistmempunyaifieldyangberisipointerkenodeberikutnyadanjuga
memilikifieldyangberisidata.
~Akhirlinkedlistditandaidengannodeterakhirakanmenunjukke null yangakandigunakan
sebagaikondisiberhentisaatpembacaanlinkedlist.

Doubly Linked List :


~ Linked list dengan menggunakan pointer, dimana setiap node memiliki 3 field, yaitu: 1 field
pointer yang menunjuk ke pointer berikutnya, 1 field pointer yang menunjuk ke pointer
sebelumnya dan field yang berisi data dari node tersebut.
~ Pointer next dan prev-nya menunjuk ke null.

Singly Circular Linked List :


~ Single Linked List yang pointer next-nya menunjuk ke dirinya sendiri, jika terdiri dari beberapa
node maka pointer terakhirnya akan menunjuk ke pointer terdepannya.

Double Circular Linked List :


~ Double Linked List yang pointer next dan prev-nya menunjuk ke dirinya sendiri secara circular.
Linklisttidakmempunyai indeks seperti array.Kitahanyabisamemberi nama node.Akan
tetapi,tidaksemuanodedalamlinklistmempunyainama.Sebaiknyakitamemberinamauntuk
node yang pertama (misal namanya head), dan node yang terakhir (misal namanya tail).
Tujuannyauntukmemudahkanoperasilinklistdaridepanataubelakang,misalnambahdataatau
menghapusdata.

Langkah yang pertama, kita harus mendefinisikan apa itu node. Dalam Java, sebaiknya
pendefinisiannodeinidibuatdalamsebuahclass,misal:

Kemudiankitabuatdesignlinklistdalamclassyanglain,misal:

*untukcontohprogramlengkapadadalamfile.downloaddisini.

Operasioperasiyangbisadilakukandalamlinklistyaitu:
1. Tambahdata(insert)
2. Editdata(edit)
3. Hapusdata(delete)
4. Pengurutandata(sorting)
5. Pencariandata(searching)

TambahDepan
Untuktambahdatadaridepan,caranya:
TambahBelakang
Untuktambahdatadaribelakang,caranya:

HapusDepan
Untukmenghapusdatadaridepan,caranya:

HapusBelakang
Untukmenghapusdatadaribelakang,caranya:
DAFTAR PUSTAKA

http://agungimam.blogspot.co.id/2013/04/percabangan-java-if-else-
if-if-else.html [Diakses tanggal 07 Februari 2016 jam 20:00]
http://www.termasmedia.com/pemrograman/java/123-pengertian-dan-
deklarasi-larik-array-di-java.html [Diakses tanggal 07 Februari
2016 jam 20:00]
http://belajar-tentangkomputer.blogspot.co.id/2010/05/fungsi-dan-
prosedur-pada-pemrograman.html [Diakses tanggal 07 Februari 2016
jam 20:01]
https://kuliahinformatika.wordpress.com/2010/02/06/stack-queue-
penjelasan-deskripsi-fungsi-dasar-pemodelan-dan-penerapan-
stack/comment-page-1/ [Diakses tanggal 07 Februari 2016 jam
20:01]
http://www.erikgunawan.com/mudahnya-sorting-data-di-java/
[Diakses tanggal 07 Februari 2016 jam 20:02]
http://www.mercusian.com/searching-dengan-java [Diakses tanggal
07 Februari 2016 jam 20:02]
https://tutorialpemrograman.wordpress.com/2009/02/15/stack-
tumpukan-dan-queue-antrian-dalam-bahasa-java/ [Diakses tanggal 07
Februari 2016 jam 20:03]
http://fennyjh3.blogspot.co.id/2013/05/linked-list-java.html
[Diakses tanggal 07 Februari 2016 jam 20:03]
http://siskomtek.blogspot.co.id/2015/10/queue-pada-java.html
[Diakses tanggal 07 Februari 2016 jam 22:14]

Anda mungkin juga menyukai