Anda di halaman 1dari 31

A.

PENGERTIAN STRUKTUR DATA :

Dalam istilah ilmu komputer, sebuah struktur data adalah cara penyimpanan, penyusunan dan


pengaturan data di dalam media penyimpanan komputer sehingga data tersebut dapat digunakan
secara efisien. Dalam teknik pemrograman, struktur data berarti tata letak data yang berisi
kolom-kolom data, baik itu kolom yang tampak oleh pengguna (user) atau pun kolom yang
hanya digunakan untuk keperluan pemrograman yang tidak tampak oleh pengguna. Setiap baris
dari kumpulan kolom-kolom tersebut dinamakan catatan (record). Lebar kolom untuk data dapat
berubah dan bervariasi. Ada kolom yang lebarnya berubah secara dinamis sesuai masukan dari
pengguna, dan juga ada kolom yang lebarnya tetap. Dengan sifatnya ini, sebuah struktur data
dapat diterapkan untuk pengolahan database (misalnya untuk keperluan data keuangan) atau
untuk pengolah kata (word processor) yang kolomnya berubah secara dinamis. Contoh struktur
data dapat dilihat pada berkas-berkas lembar-sebar (spreadsheet), pangkal-data (database),
pengolahan kata, citra yang dipampat (dikompres), juga pemampatan berkas dengan teknik
tertentu yang memanfaatkan struktur data.

B. SEKILAS TENTANG BAHASA PEMROGRAMAN JAVA :

Java adalah bahasa pemrograman yang dapat dijalankan di berbagai komputer termasuk telepon


genggam. Bahasa ini awalnya dibuat oleh James Gosling saat masih bergabung di Sun
Microsystems saat ini merupakan bagian dari Oracle dan dirilis tahun 1995 . Bahasa ini banyak
mengadopsi sintaksis yang terdapat pada C dan C++ namun dengan sintaksis model objek yang
lebih sederhana serta dukungan rutin-rutin aras bawah yang minimal. Aplikasi-aplikasi berbasis
java umumnya dikompilasi ke dalam p-code (bytecode) dan dapat dijalankan pada
berbagai Mesin Virtual Java (JVM). Java merupakan bahasa pemrograman yang bersifat
umum/non-spesifik (general purpose), dan secara khusus didisain untuk memanfaatkan
dependensi implementasi seminimal mungkin. Karena fungsionalitasnya yang memungkinkan
aplikasi java mampu berjalan di beberapa platform sistem operasi yang berbeda, java dikenal
pula dengan slogannya, “Tulis sekali, jalankan di mana pun“. Saat ini java merupakan bahasa
pemrograman yang paling populer digunakan, dan secara luas dimanfaatkan dalam
pengembangan berbagai jenis perangkat lunak aplikasi ataupun aplikasi berbasis web.

MATERI MATA KULIAH STRUKTUR DATA SI 2 J

1.FOR AND ARRAY :

Array adalah sebuah struktur dari sebuah data yang menyimpan value dari data yang memiliki
tipe data yang sama. Setiap value bisa kita akses melalui angka-angka index. index suatu array
dimulai dari indeks 0 bukan 1Sebagai contoh jika A merupakan sebuah array dengan tipe integer,
maka notasi dari array A adalah: A[n], dengan n merupakan angka index dari array tersebut
misal:

A[0]=100
A[1]=200
A[2]=300
A[3]=400
Dari array di atas bisa kita simpulkan: array A di atas memiliki tipe data integer(bisa dilihat dari
value yang ada), memiliki panjang array 4, array dengan indeks ke-0 memiliki value 100, indeks
ke-1 bervalue:200, indeks ke-2 bervalue:30 Dan seterusnya

Dalam  pemograman  java, pendeklarasian suatu array bisa ditulis dalam bentuk:

int [ ] b;

Statemen   diatas  hanya  mendeklarasikan  variabel  b   sebagai   variabel bertipe array integer,
untuk membuat(construct) array kita   tulis dengan menggunakan operator ‘new’ seperti contoh
berikut:

int [ ] a = new int[20];

Statement diatas berarti telah dibuat array dengan nama a bertipe integer dan  memiliki 
kapasitas  100  value,  ingat indeks mulai dari 0 – 99, tidak ada indeks ke-100 (a [100]).

Dalam pengisian value sebuah array kita bisa lakukan dengan melakukan metode looping seperti:

int [ ] a = new int[100];


for (int i = 0 ; i < 100 ; i++)
a [ i ] = i; // isi array a dengan value 0 – 99

Untuk mengetahui ukuran / panjang dari suatu array, kita gunakan syntaks: namaaray.length
contoh : System.out.println(a.length); akan mencetak ukuran dari array a, yaitu sebanyak 100.

Contoh pengisian array dengan menggunakan looping:


for (int i = 0 ; i < a.length ; i++)
System.out.println(a [ i ]);

A. CODING PROGRAM FOR AND ARRAY :

 package package01;

public class ArrayDemo {

public static void main(String[] args) {

String arrKota[] = {“Aceh”, “Medan”, “Padang”, “Palembang”,


“Riau”};

String kotaSmt[] = new String[5];

for (int k=0; k<arrKota.length; k++){

System.out.println(“Kota ke ” + k + ” : “+arrKota[k]);
}

B. HASIL PROGRAM FOR AND ARRAY :

2.  ARRAY LIST :

ArrayList adalah sebuah kelas  yang  dapat penyimpanan data berupa list objek berbentuk array
yang ukurannya dapat berubah secara dinamis sesuai dengan jumlah data yang dimasukkan.
ArrayList dapat menampung sejumlah data secara dinamis, sehingga seberapapun jumlahnya
akan ditampung oleh ArrayList tanpa memperhatikan berapa jumlah maksimal elemen yang
dapat ditampung.

ArrayList digunakan dalam menyimpan data dalam bentuk objek, sehingga untuk menyimpan
data didalam ArrayList maka, buatlah sebuah kelas yang kemudian dijadikan objek yang dapat
menyimpan data. ArrayList terdapat pada kelas java.util, sehingga untuk menggunakan
ArrayList, maka harus melakukan import java.util. ArrayList dapat menyimpan sekumpulan data
yang disimpan dalam satu-kesatuan. Misalkan: menyimpan data mahasiswa berupa NIM, Nama,
dan Alamat, maka data tersebut akan disimpan dalam satu-kesatuan array biarpun data tersebut
memiliki tipe data berbeda. Berarti ArrayList tersebut menyimpan 3 data variabel yang berbeda
dalam satu elemen array.

A.CODING PROGRAM ARRAY LIST :

package package02;

import java.util.ArrayList;

import java.util.Collections;
import java.util.Iterator;

public class daArrayList {

public static void main(String[] args) {

// TODO Auto-generated method stub

ArrayList aList = new ArrayList();

System.out.println(“Initial size of aList\t: “+aList);

aList.add(“Palembang”);

aList.add(“Jakarta”);

aList.add(“Samarinda”);

aList.add(“Makassar”);

aList.add(“Jayapura”);

System.out.println(“Daftar Kota Di Indonesia\t: “+aList);

boolean item= aList.contains(“Palembang”);

System.out.println(“ArrayList containt Palembang?: “+item);

aList.remove(3);

System.out.println(“Hapus Kota nomor 3\t: “+aList);

aList.add(“Balikpapan”);

System.out.println (“Daftar Kota Sekarang\t: “+aList);

Collections.sort(aList);

System.out.println(“Ascending Sorted ArrayList\t: “+aList);

Collections.sort(aList, Collections.reverseOrder());

System.out.println(“Descending SortedArrayList\t: “+aList);

System.out.println(“\nDaftar Kota Secara Vertikal menggunakan


Iterator”);
Iterator iterator = aList.iterator();

while(iterator.hasNext()){

String element = (String) iterator.next();

System.out.println(element);

B. HASIL PROGRAM ARRAY LIST:

         

     

3.  LINKED LIST :

Sekumpulan elemen bertipe sama, yang mempunyai keterurutan tertentu, yang setiap elemennya
terdiri dari dua bagian Struktur berupa rangkaian elemen saling berkait dimana setiap elemen
dihubungkan elemen lain melalui pointer. Pointer adalah alamat elemen. Penggunaan pointer
untuk mengacu elemen berakibat elemen-elemen bersebelahan secara logik walau tidak
bersebelahan secara fisik di memori. Link list adalah desain tempat penyimpanan data yang
terdiri dari node-node (simpul-simpul) yang saling terhubung. Link list dapat diilustrasikan
seperti kereta api, dimana kereta api terdiri dari gerbong-gerbong yang saling terhubung yang
dapat mengangkut penumpang. Gerbong disini setara dengan node dalam link list yang berfungsi
untuk menyimpan Link list tidak mempunyai indeks seperti array. Kita hanya bisa memberi
nama node. Akan tetapi, tidak semua node dalam link list mempunyai nama. Sebaiknya kita
memberi nama untuk node yang pertama (misal namanya head), dan node yang terakhir (misal
namanya tail). Tujuannya untuk memudahkan operasi link list dari depan atau belakang, misal
Menambah data atau menghapus data. 

A. CODING PROGRAM LINKED LIST :

package Package03;
import java.util.LinkedList;

public class LinkedListSimple {

public static void main(String[] args) {

LinkedList lList = new LinkedList();

lList.add(“Yogyakarta”);

lList.add(“Semarang”);

lList.add(“Kediri”);

lList.add(“Magelang”);

lList.add(“Jepara”);

if(lList.size()==0){

System.out.println(“Kota tidak ada”);

else{

System.out.println(“Jumlah Kota: “+lList.size());

System.out.println(“Daftar Nama Kota: “+lList);

lList.remove(1);

System.out.println(“Kota Semarang Dihapus, Daftar Kota Sekarang: ”


+lList);

System.out.println(“Nama Kota Pertama: “+lList.get(0));

System.out.println(“Nama Kota Terakhir: “+lList.get(3));

B. HASIL PROGRAM LINKED LIST :


4. STACK (TUMPUKAN) :

Stack adalah salah satu struktur data yang memiliki sistem kerja Last In First Out (LIFO), artinya
yang terakhir masuk pertama keluar. Dapat di ilustrasikan seperti sebuah tumpukan kotak, ketika
mengambil sebuah kotak di dalam tumpukan itu maka harus diambil satu persatu dari kotak yang
paling atas dari tumpukan kotak tersebut. Atau Dosen saya mengilustrasikan sebagai tumpukan
piring, tapi intinya sama saja kan?  Sebuah stack hanya dapat ditambahkan dan dikurangi
elemennya hanya dari satu sisi yakni elemen atasnya atau biasa disebut Top Of Stack.
Istilah yang digunakan antara lain :

PUSH      = masuk, simpan, tulis

POP         = keluar, ambil, hapus

Fungsi dalam Stack :

Fungsi init           : fungsi yang digunakan untuk inisialisasi atau membuat     stack baru yang
masih kosong.

Fungsi full           : digunakan untuk mengetahui stack penuh atau tidak.

Fungsi empty      : digunakan untuk mengetahui stack kosong atau tidak.

Fungsi clear        : digunakan untuk mengosongkan stack. Stack dianggap  kosong apabila
puncak stack berada pada
posisi -1.

Fungsi push        : digunakan untuk menambahkan data ke dalam stack. Penambahan data tidak
bisa dilakukan apabila
stack     sudah penuh. Urutan perintahnya adalah: menambahkan     nilai top dan menambahkan
data
pada posisi nilai top. Jika dalam Linked List menggunakan method addLast.

Fungsi pop         : digunakan untuk mengeluarkan data teratas stack  dengan syarat bahwa stack
tidak kosong.
Urutan perintahnya adalah  menghapus data pada posisi nilai top dan menurunkan nilai top. Jika
dalam Linked List menggunakan method removeLast.

A. CODING PROGRAM STACK:

package package04;

import java.util.EmptyStackException;

import java.util.Stack;

public class fStack {

public static void main(String[] args) {

// TODO Auto-generated method stub

Stack stack=new Stack();

System.out.println(“Stack items\t: “+stack);

stack.add(“Bali”);

stack.add(“Lombok”);

stack.add(“Bandung”);

stack.add(“Medan”);

System.out.println(“Daftar Kota Di Indonesia\t: “+stack);

System.out.println(“Jumlah Kota\t: “+stack.size());

System.out.println(“Cek Kota Lombok?\t: “+stack.contains(“Lombok”) );

System.out.println(“Lokasi Kota Lombok\t: “+stack.search(“Lombok”));

System.out.println(“Lokasi Kota Medan\t: “+stack.search(“Medan”));

System.out.println(“Kota Paling Atas\t: “+stack.peek());

System.out.println(“Pop, “+stack.pop() + “\t Stack items: “+stack);

stack.clear();
System.out.println(“Hapus Semua Kota, Daftar Kota Sekarang: “+stack);

B. HASIL PROGRAM STACK :

      

5. QUEUE (ANTRIAN) :

Queue (antrian) adalah struktur data dimana data yang pertama kali dimasukkan adalah data
yang pertamak kali bisa dihapus. Atau bisa juga disebut dengan struktur data yang menggunakan
mekanisme FIFO (First In First Out). Queue dalam kehidupan sehari-hari seperti antrian pada
penjualan tiket kereta api, dimana orang yang pertama datang adalah orang yang pertama kali
dilayani untuk membeli tiket. Jika ada orang baru yang datang akan membali tiket, maka
posisinya berada pada urutan paling belakang dalam antrian tersebut.Orang yang berada pada
posisi terakhir dalam antrian adalah yang terakhir kali dapat dilayani dan memperoleh tiket
kereta api (kalau kurang beruntung, maka akan kehabisan tiket). Contoh lain adalah nasabah
yang antri di teller bank, paket data yang menunggu untuk ditransmisikan lewat internet, antrian
printer dimana terdapat antrian print job yang menunggu giliran untuk menggunakan printer, dsb.

Istilah-istilah yang digunakan dalam queue (antrian) :

– Memasukkan data (insert) disebut juga dengan put, add, atau enqueue.

– Menghapus data (remove) biasa disebut dengan istilah delete, get, atau dequeue.

– Bagian belakang queue, dimana data bisa dimasukkan disebut dengan back, tail (ekor),


atau end (akhir).
– Sedangkan bagian depan (front) queue dimana data bisa dihapus juga biasa disebut
dengan istilah kepala(head).

Fungsi dalam Queue:

Fungsi init               : digunakan untuk membuat queue baru atau kosong, yaitu dengan memberi
nilai awal (head) dan
nilai akhir (tail) dengan -1.

Fungsi full               : digunakan untuk mengetahui apakah queue sudah     penuh atau belum.
Dilakukan dengan
memeriksa  nilai akhir (tail) apakah sudah sama dengan maksimal  queue.

Fungsi empty         : digunakan untuk mengetahui apakah queue masih     kosong atau tidak.
Dilakukan dengan memeriksa
nilai  akhir (tail) bernilai -1 atau tidak.

Fungsi enqueue     : digunakan untuk menambahkan elemen ke dalam queue.

Fungsi dequeue     : digunakan untuk mengambil elemen dari queue, dengan cara memindahkan
semua elemen satu
langkah ke posisi     depannya sehingga elemen yang paling depan tertimpa.

Fungsi clear           : digunakan untuk menghapus semua elemen dalam queue.  Ada dua cara
yang bisa digunakan, yaitu
menuliskan  fungsi seperti inisialisasi atau memanggil fungsi remove     sampai queue kosong.

A.CODING PROGRAM QUEUE :

package Package05;

import java.util.Iterator;

import java.util.LinkedList;

import java.util.Queue;

public class gQueue {

public static void main(String[] args) {

// TODO Auto-generated method stub

Queuequeue=new LinkedList();

queue.add(“Bangka Belitung”);
queue.add(“Wamena”);

queue.add(“Madura”);

queue.add(“Tanggerang”);

System.out.println(“Daftar Kota\t: “+queue);

System.out.println(“Jumlah Kota\t: “+queue.size());

System.out.println(“DAFTAR KOTA SECARA VERTIKAL”);

Iteratori=queue.iterator();

while (i.hasNext()){

String s= i.next();

System.out.println(s);

System.out.println(“Kota Teratas adalah : “+queue.peek());

System.out.println(“Hapus Kota: “+queue.poll());

System.out.println(“Daftar Kota Sekarang Adalah: “+queue);

System.out.println(“Hapus Semua Kota: “+queue.removeAll(queue));

System.out.println(“Daftar Kota Setelah Dihapus Semua: “+queue);

System.out.println(“Total Kota\t: “+queue.size());

 B. HASIL PROGRAM QUEUE:


          

6. DEQUEUE :

DEQUE adalah antrian dimana elemennya bisa masuk dan keluar lewat kedua ujungnya (berbeda
dengan queue yang hany bisa masuk lewat ujung belakang dan keluar lewat ujung depan).
Biasanya DEQUE disajikan dengan menggunakan Double link list yang memiliki dua buah
pointer yang menunjuk ke posisi sebelumnya dan sesudahnya. Gambar 5.1 menunjukkan struktur
umum dari sebuah DEQUE.

DEQUE juga mempunyai dua jenis variasi yaitu :

1. Deque input terbatas : suatu deque yang membatasi pemasukkan elemen hanya pada satu
ujung dari list, sementara penghapusan elemen boleh dilakukan pada kedua ujung list.
2. Deque output terbatas : merupakan kebalikan dari deque input terbatas yaitu suatu deque
yang membatasi penghapusan elemen hanya pada satu ujung dari list, sementara
pemasukkan elemen boleh dilakukan pada kedua ujung list

A. CODING PROGRAM DEQUEUE :

package package06;

import java.util.Deque;

import java.util.Iterator;

import java.util.LinkedList;

public class DequeueDemo {

public static void main(String[] args) {

// TODO Auto-generated method stub


Dequedeque=new LinkedList();

deque.add(“Makassar”);

deque.add(“Samarinda”);

deque.add(“Riau”);

System.out.println(“Daftar Kota\t\t: “+deque);

System.out.println(“Jumlah Kota\t\t: “+deque.size());

System.out.println(“DAFTAR KOTA SECARA VERTIKAL”);

Iterator y=deque.iterator();

while (y.hasNext()){

String e = y.next();

System.out.println(e);

deque.addFirst(“Palembang”);

deque.addFirst(“Jakarta”);

System.out.println(“Daftar Kota Sekarang\t: “+deque);

deque.addLast(“Semarang”);

deque.addLast(“Yogyakarta”);

System.out.println(“Daftar Kota Sekarang\t: “+deque);

System.out.println(“Kota Pertama adalah\t: “+deque.getFirst());

System.out.println(“Kota Terakhir adalah\t: “+deque.getLast());

B. HASIL PROGRAM DEQUEUE :


 

7. IF THEN ELSE :

Secara umum, ada tiga struktur program , yaitu :

–  Sequence -execute satu pernyataan setelah lainnya.

–  Choice -execute hanya satu beberapa pernyataan tergantung pada kondisi ( jika dan beralih
pernyataan ) .

–  Repetition -execute beberapa pernyataan berulang-ulang (sementara , untuk , do … while ) .

Pernyataan IF-THEN Adalah yang paling dasar dari semua laporan aliran kontrol . Ini
memberitahu program untuk mengeksekusi bagian tertentu dari kode hanya jika tes tertentu
bernilai benar . If-Then Dan If-Then-Else,pernyataan bersyarat biarkan program Java membuat
keputusan sederhana tentang apa yang harus dilakukan selanjutnya . Mereka bekerja dengan cara
yang logis yang sama seperti yang kita lakukan ketika membuat keputusan dalam kehidupan
nyata

A. CODING PROGRAM IF THEN ELSE :

package package06;

import java.util.Scanner;

public class IfThenTry {

public static void main(String[] args) {

// TODO Auto-generated method stub


Scanner scInput = new Scanner (System. in);

String ket = “”;

System.out.println(“Masukkan Nilai: “);

int bil = scInput.nextInt ();

if (bil >= 75) {

ket = “Lulus”;

System.out.println (“Dengan Nilai ” + bil + “, Anda dinyatakan ” + ket);

B. HASIL PROGRAM IF THEN ELSE :

8. RECURSION :

Recursion adalah proses pemanggilan dirinya sendiri (fungsi atau prosedur). Fungsi maupun
prosedur yang memanggil dirinya disebut fungsi atau prosedur rekursif. Fungsi untuk suatu
bagian program yang mengembalikan (menghasilkan) hanya satu nilai. Sebuah function call
adalah suatu ekspresi jadi ia memberikan satu nilai.Procedure adalah suatu bagian program yang
melakukan aksi/fungsi khusus, biasanya berdasarkan sekumpulan parameter. Sebuah procedure
call adalah suatu statemen, jadi ia melakukan aksi. Banyak obyek dalam matematika
didefinisikan dengan menampilkan suatu proses untuk  menghasilkan obyek-obyek tersebut.
Misalnya : n faktorial (n!) didefinisikan sebagai produk dari semua integer diantara n dan 1.
Contoh lain adalah bilangan asli. 1 adalah bilangan asli.Successor dari 1 adalah bilangan asli.
Perbedaan rekursi dengan prosedur/fungsi adalah rekursi bisa memanggil kedirinya sendiri tetapi
prosedur atau fungsi harus dipanggil lewat pemanggil prosedur/fungsi. Ciri masalah yang dapat
diselesaikan secara rekursif adalah masalah tersebut dapat direduksi menjadi satu atau lebih
masalah-masalah serupa yang lebih kecil. Secara umum suatu algoritma rekursif selalu
mengandung 2 macam kasus :
1. satu atau lebih kasus yang pemecahan masalahnya dilakukan dengan menyelesaikan masalah
serupa yg lebih
sederhana (menggunakan recursive call).

2. satu atau lebih kasus pemecahan masalahnya dilakukan tanpa recursive call. Kasus ini disebut
kasus dasar atau
penyetop. Supaya tidak terjadi rekursif tak hingga, maka setiap langkah rekursif haruslah
mengarah ke kasus penyetop.

FIBONACCI_RECURSION :

Barisan angka khusus yang dibuat oleh fibonacci dengan menulis dua angka awal yang
dijumlahkan. Kemudian angka kedua dijumlahkan dengan hasil penjumlahan sebelumnya hingga
membentuk barisan angka.
Deret fibonacci bisa dipakai sebagai trik sulap,dengan cara yang sama yaitu membuat barisan
hingga diperoleh 10 angka.Jika semua angka itu dijumlahkan hasilnya sama dengan angka
ketujuh barisan itu yang dikalikan sebelas.

Contoh:
pilih dua buah angka(misal 6 n 3)
dijumlahkan menjadi 9
jumlahkan angka kedua(3) dgn angka sebelumnya(9)=12
jumlahkan lagi dua angka paling akhir(9+12=21)
teruskan hal yang sama(12+21=33)
lalu 21+33=54
lalu 33+54=87
lalu 54+87=141
lalu 87+141=228
terakhit suruh teman anda menjumlahkan semua angka tersebut dengan cepat
(6+3+9+12+21+33+54+87+141+228+369+597)
anda bisa menghitungnya dengan cepat dengan mengalikan angka ke7(54) dengan sebelas
(54×11=594) 

A. CODING PROGRAM FIBONACCI :

package package09;

import java.util.Scanner;

public class Fibonaccidemo {

public static void main(String args []) {

System.out.print(“Enter the number upto which fibonacci series to print: “);

int number = new Scanner (System.in).nextInt();


System.out.println(“\n\nFibonacci series upto ” + number +” numbers: “);

for (int i=1; i<=number; i++){

System.out.print(fibonacciRecusion(i) + ” “);

public static int fibonacciRecusion(int number){

if (number == 1 || number == 2){

return 1;

return fibonacciRecusion(number-1) + fibonacciRecusion(number-2);

public static int fibonacciLoop(int number){

if (number == 1 || number == 2)       {

return 1;

int fibo1=1, fibo2=1, fibonacci=1;

for(int i=3; i<=number; i++){

fibonacci = fibo1 + fibo2;

fibo1 = fibo2;

fibo2 = fibonacci;

return fibonacci;

return fibonacci;
}

 B. HASIL PROGRAM FIBONACCI :

FACTORIAL_RECURSION :

Faktorial bilangan asli n adalah perkalian semua bilangan asli yang kurang atau sama dengan n.
Faktorial dilambangkan dengan tanda !. Jadi jika n!, maka dibaca “n faktorial“.

n! = 1 x 2 x … x (n-2) x( n-1) x n

Untuk faktorial 0, hasilnya adalah 1.

0! = 1

Berikut ini adalah faktorial 0 sampai faktorial 10.

0! = 1

1! = 1

2! = 1 × 2 = 2

3! = 1 × 2 × 3 = 6

4! = 1 × 2 × 3 × 4 = 24

5! = 1 × 2 × 3 × 4 × 5 = 120

6! = 1 × 2 × 3 × 4 × 5 × 6 = 720

7! = 1 × 2 × 3 × 4 × 5 × 6 × 7 = 5040

8! = 1 × 2 × 3 × 4 × 5 × 6 × 7 × 8 = 40320

9! = 1 × 2 × 3 × 4 × 5 × 6 × 7 × 8 × 9 = 362880
10! = 1 × 2 × 3 × 4 × 5 × 6 × 7 × 8 × 9 × 10 = 3628800

Faktorial biasa digunakan untuk menghitung banyaknya susunan yang dapat dibentuk dari
sekumpulan

benda tanpa memperhatikan urutannya.

A.CODING PROGRAM FACTORIAL:

package packagesi2j;

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

public class faktorialrecursionjava {

public static void main(String  args[] )throws

NumberFormatException, IOException{

System.out.println(“Please Enter the Number : “);

BufferedReader br = new BufferedReader

(new InputStreamReader(System.in));

int a = Integer.parseInt(br.readLine());

int result=fact (a);

System.out.println(“Factorial of the number is: “+result);

static int fact(int b)

if (b <= 1)

return 1;

else
return b*fact(b-1);

B. HASIL PROGRAM FACTORIAL :

    

9. FOR AND MATRIX:

Matrik atau array dua dimensi adalah struktur data yang mengacu pada sebuah/sekumpulan
elemen yang diakses melalui indeks. Berbeda dengan larik, maka pada matriks indeks terdiri dari
dua bagian yaitu indeks baris dan indeks kolom. Setiap elemen matriks dapat diakses melalui
indeksnya, misalnya mengisi elemen matriks yang bariske-2 dan kolom ke-1 dengan nilai 100,
maka cara mengisinya adalah A[2,1] 100.

Vektor merupakan ADT (abstrak data type), dimana struktur data Vektor sesungguhnya cukup
serupa dengan lank I dimensi. keduanya baik lank maupun vektor dapat menyimpan beberapa
nilai yang bertipe data yang sama serta dapat diakses secara acak, banyak kemudahan pada ADT
Vektor java, method method yang diperlukan untuk  melakukan manipulasi data vektro sudah
tersedia di java Interface Vektor, sebelum dapat digunakan class program java hams memanggil
java.util.Vector;,sehingga semua interface vektor (method) akan dapat dikenali Konstruktor new
Vector() membuat vektor tanpa elemen.

A.CODING PROGRAM FOR AND MATRIX:

package matrix;

import java.util.Scanner;

public class ForMatrixExample {

public static void main(String[] args) {

int b=3; int k=3;


System.out.println(“Input Matrix: “);

int[][] matrixA = new int [b][k];

for(int i=0; i<b; i++){

for(int j=0; j<k; j++){

matrixA[i][j]=input();

for(int i=0; i<b; i++){

for(int j=0; j<k; j++){

System.out.print(matrixA[i][j]+” “);

System.out.println();

static int input(){

Scanner a=new

Scanner(System.in);

int b=a.nextInt();

return b;

B. HASIL PROGRAM FOR AND MATRIX :


10. SET :

Method set() biasanya digunakan untuk menge-set atau memberikan atau mengganti nilai
property (variabel) milik sebuah objek

Set diimplementasikan menjadi :

1.HashSet

2.TreeSet

3.LinkedHashSet

HashSet :

HashSet mengimplementasikan tabel hash yang akan kita bahas di bagian berikutnya. Operasi
penambahan, pencarian, dan penghapusan dilakukan dengan sangat efisien pada tabel hash,
bahkan lebih cepat lagi dari TreeSet. Elemen pada HashSet tidak disimpan dalam urutan tertentu.
Iterator dari HashSet akan mengunjungi elemen-elemen pada HashSet dalam urutan yang
sepertinya acak dan mungkin berubah jika elemen baru ditambahkan. Karena elemen pada
HashSet tidak diurutkan, maka semua objek (termasuk yang tidak mengimplementasikan
interface Comparable) bisa dimasukkan dalam HashSet. Kita bisa menggunakan HashSet jika
elemen yang kita akan masukkan tidak bisa dibandingkan, atau urutannya tidak penting, atau jika
kecepatan lebih dipentingkan.

A. CODING PROGRAM HashSet :

Package packagesi2j ;

import java.util.HashSet;

public class HashsetDemo {


public static void main(String[] args) {

// TODO Auto-generated method stub

HashSet HS = new HashSet();

HS.add(“Surabaya”);

HS.add(“Semarang”);

HS.add(“Surakarta”);

HS.add(“Solo”);

HS.add(“Sidoarjo”);

System.out.println(“Daftar Kota \t : ” + HS);

System.out.println(“Total Kota \t : “+ HS.size());

System.out.println(“Item \”Surabaya\” ada di HashSet \t : “+  HS.contains(“Surabaya”));

System.out.println(“Item \”Magelang\” ada di HashSet \t : “+ HS.contains(“Magelang”));

HS.remove(“Surakarta”);

System.out.println(“Item \”Surakarta\” dihapus \t : ” + HS);

HS.removeAll(HS);

System.out.println(“Hapus Seluruh Kota \t : ” + HS);

System.out.println(“Daftar Kota Setelah Dihapus? \t : ” +  HS.isEmpty());

B. HASIL PROGRAM HashSet


LinkedHashSet :

LinkedHashSet  menggunakan  double  linked  list di semua   elemen . LinkedHashSet   berbeda 


dengan

HashSet ketika kita peduli  terhadap  urutan  iterasi. Bila kita melakukan iterasi


melalui HashSet, urutan

elemen tidak dapat diprediksi.Sedangkan  dengan  LinkedHashSet memungkinkan  kita 


untuk melakukan  iterasi

melalui unsur-unsur dalam urutan di mana mereka dimasukkan (inserted).

A. CODING PROGRAM LinkedHashSet

package package15si2j;

import java.util.LinkedHashSet;

public class LinkedHashSetDemo {

public static void main(String[] args) {

// TODO Auto-generated method stub

LinkedHashSet<String> linkedset = new LinkedHashSet<String>();

linkedset.add(“Jayapura”);

linkedset.add(“Jakarta”);

linkedset.add(“Bali”);

linkedset.add(“Aceh”);

linkedset.add(“Manado”);
System.out.println(“Jumlah Kota= ” + linkedset.size());

System.out.println(“Daftar Kota: ” + linkedset);

System.out.println(“Hapus Jakarta Dari Daftar Kota: ” a  + linkedset.remove(“Jakarta”));

System.out.println(“Hapus Medan:” + linkedset.remove(“Medan”));

System.out.println(“Cek Kota Manado=” + linkedset.contains(“Manado”));

System.out.println(“Daftar Kota Sekarang: ” + linkedset);

B. HASIL PROGRAM LinkedHahSet :

TreeSet :

objek bertipe TreeSet memiliki sifat di mana elemen-elemennya terurut dalam urutan menaik.
Iterator dari suatu TreeSet akan mengunjungi elemen dalam set tersebut dalam urutan menaik.
TreeSet tidak bisa menyimpan semua objek, karena objek yang disimpan harus bisa diurutkan.

A. CODING PROGRAM TreeSet :

package package14si2j;

import java.util.TreeSet;

public class TreeSetDemo {

public static void main(String[] args) {

// TODO Auto-generated method stub


TreeSet tSet = new TreeSet();

tSet.add(“Palembang”);

tSet.add(“Prabumulih”);

tSet.add(“Pagaralam”);

tSet.add(“Lahat”);

tSet.add(“Muara Enim”);

System.out.println(“Kota dan Kabupaten Di Sumatera Selatan \t : ” + tSet);

System.out.println(“Kota Prabumulih Ada? \t : “+ tSet.contains(“Prabumulih”));

System.out.println(“Total Kota Di Sumatera Selatan \t : ” + tSet.size());

tSet.remove(“Lahat”);

System.out.println(“Hapus Kota \”Lahat\” deleted\t : ” + tSet);

tSet.clear();

System.out.println(“Daftar Kota Setelah Dibersihkan \t : ” + tSet);

B. HASIL PROGRAM TreeSet 

 
—11. MAPS :

Map juga dapat menampung beragam tipe data. Berbeda dengan List dan Set, Map hanya bisa
menyimpan data secara berpasangan yang terdiri atas ‘key’ dan ‘value’. Dalam Map, nilai key
tidak boleh ada yang sama. Apabila kita memasukkan value dengan key yang sama, maka hanya
value terakhirlah yag disimpan dalam Map.

A. CODING PROGRAM MAPS :

package package20si2j;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

public class Maps1Demo {

public static void main(String[] args) {


// TODO Auto-generated method stub

Map<Integer, String> mapInt_String = new HashMap<Integer,String>();


mapInt_String.put(1, “Bandung”);
mapInt_String.put(2, “Jakarta”);
mapInt_String.put(3, “Yogyakarta”);
mapInt_String.put(4, “Semarang”);
mapInt_String.put(5, “Surabaya”);

for (Iterator<String> iterator = mapInt_String.values().iterator(); iterator.hasNext();) {


String string = (String) iterator.next();
System.out.println(string);
}

Map<String, String> mapString_String = new HashMap<String, String>();//map<String, String>

mapString_String.put(“Kota Palembang”, “Sumatera Selatan”);


mapString_String.put(“Kota Padang”, “Sumatera Barat”);
mapString_String.put(“Kota Medan”, “Sumatera Utara”);
mapString_String.put(“Kota Bandar Lampung”, “Lampung”);
mapString_String.put(“Kota Aceh”, “Nangroe Aceh Darussalam”);

System.out.println(“========================================”);
for (Iterator<String> iterator = mapString_String.values().iterator(); iterator.hasNext();) {
String string = (String) iterator.next();
System.out.println(string);
}
System.out.println(“========================================”);

for (Iterator<String> iterator = mapString_String.keySet().iterator(); iterator.hasNext();) {


String string = iterator.next();
System.out.println(string + ” Berasal Dari Provinsi ” + mapString_String.get(string));
}

}
}

B. HASIL PROGRAM MAPS

12. TREE OBJECT :

Tree dalam pemrograman merupakan struktur data yang tidak linear / non linear yang digunakan
terutama untuk merepresentasikan hubungan data yang bersifat hierarkis antara elemen-
elemennya. Kumpulan elemen yang salah satu elemennya disebut dengan root (akar) dan sisa
elemen yang lain disebut sebagai simpul (node/vertex) yang terpecah menjadi sejumlah
himpunan yang tidak saling berhubungan satu sama lain, yang disebut subtree / cabang.

A. CODING PROGRAM TREE OBJECT :

package SI2JFinal;

//add three libraries after package and before ClassName

import javax.swing.*;

import java.awt.BorderLayout;

import java.util.*;

public class Tree extends JFrame {


/**

* @param args

*/

String[][] Data = {

{“Sumatera Selatan”}, {“Palembang”, “Prabumulih”,”Pagaralam”,”Lahat”},

{“Sumatera Barat”}, {“Agam”, “Dharmasraya”, “Padang Pariaman”,”Solok”,”Bukit


Tinggi”,”Padang”},

{“Sumatera Utara”}, {“Deli Serdang”, “Asahan”, “Medan”,”Langkat”},

};

public Tree(){

super(“Indonesia”);

setSize(250, 450);

setDefaultCloseOperation(JFrame.

EXIT_ON_CLOSE);

public void init(){

Hashtable hash = new Hashtable();

for (int i = 0; i < Data.length; i+=2){

hash.put(Data[i][0], Data[i + 1]);

JTree tree = new JTree(hash);

getContentPane().add(tree, BorderLayout.

CENTER);

}
public static void main(String[] args) {

// TODO Auto-generated method stub

Tree object = new Tree();

object.init();

object.setVisible(true);

}// main

}// class

B. HASIL PROGRAM TREE OBJECT

13. GRAPH  :

Graph adalah kumpulan noktah (simpul) di dalam bidang dua dimensi yang dihubungkan dengan
sekumpulan garis (sisi). Graph dapat digunakan untuk merepresentasikan objek-objek diskrit dan
hubungan antara objek-objek tersebut. Representasi visual darigraph adalah dengan menyatakan
objek sebagai noktah, bulatan atau titik (Vertex), sedangkan hubungan antara objek dinyatakan
dengan garis (Edge).

G = (V, E)

Dimana

G = Graph
V = Simpul atau Vertex, atau Node, atau Titik

E = Busur atau Edge, atau arc

Graph merupakan suatu cabang ilmu yang memiliki banyak terapan. Banyak sekali struktur yang
bisa direpresentasikan dengan graf, dan banyak masalah yang bisa diselesaikan dengan bantuan
graf. Seringkali graf digunakan untuk merepresentasikan suaru jaringan. Misalkan jaringan jalan
raya dimodelkan graf dengan kota sebagai simpul (vertex/node) dan jalan yang menghubungkan
setiap kotanya sebagai sisi (edge) yang bobotnya (weight) adalah panjang dari jalan tersebut.

Ada beberapa cara untuk menyimpan graph di dalam sitem komputer. Struktur data bergantung
pada struktur graph dan algoritma yang digunakan untuk memmanipulasi graph. Secara teori
salah satu dari keduanya dapat dibedakan antara struktur list dan matriks, tetapi dalam
penggunaannya struktur terbaik yang sering digunakan adalah kombinasi keduanya.

 Graph tak berarah (undirected graph atau non-directed graph) :


 Urutan simpul dalam sebuah busur tidak dipentingkan. Misal busur e1 dapat disebut
busur AB atau BA
 Graph berarah (directed graph) :
 Urutan simpul mempunyai arti. Misal busur AB adalah e1 sedangkan busur BA adalah
e8.
 Graph Berbobot (Weighted Graph)
 Jika setiap busur mempunyai nilai yang menyatakan hubungan antara 2 buah simpul,
maka busur tersebut dinyatakan memiliki bobot.
 Bobot sebuah busur dapat menyatakan panjang sebuah jalan dari 2 buah titik, jumlah
rata-rata kendaraan perhari yang melalui sebuah jalan, dll.

Anda mungkin juga menyukai