ﺑﺴﻢﷲﺍﻠﺮﺤﻤﻦﺍﻠﺮﺤﻴﻢ
Di malam ini aku tak dapat memejamkan mata
Terasa berat bagai diri terikat mimpi, oh…
Kuingin satu, satu cerita, mengantarku tidur, biar ‘ku terlelap
Mimpikan hal yang indah, lelah hati tertutupi
Dongeng sebelum tidur, ceritakan yang indah biar ‘ku terlelap
Dongeng sebelum tidur, mimpikan diriku, mimpikan yang indah
Gelisah ‘ku tak menentu, pikiran melayang (pikiran melayang)
Di benakku hanyalah ada lelah yang terasa
Dongengmu sebelum tidur, ceritakan yang indah biar ‘ku terlelap
Dongeng sebelum tidur, ceritakan yang indah biar ‘ku terlelap
Dongeng sebelum tidur, mimpikan diriku, mimpikan yang indah
Dongeng sebelum tidur, ceritakan yang indah biar ‘ku terlelap
Dongeng sebelum tidur, mimpikan diriku, mimpikan yang indah
Aneka banyak cerita, ceritakanlah semua hingga ku terlelap
Dongeng sebelum tidur, mimpikan diriku, mimpikan yang indah
Dongeng sebelum tidur, ceritakan yang indah biar ‘ku terlelap
Dongeng sebelum tidur, mimpikan diriku, mimpikan yang indah
Dongengmu sebelum tidur, oh…
Di malam ini aku tak dapat memejamkan mata
Terasa berat bagai diri terikat mimpi, oh…
Kuingin satu, satu cerita, mengantarku tidur, biar ‘ku terlelap
Mimpikan hal yang indah, lelah hati tertutupi
Dongeng sebelum tidur, ceritakan yang indah biar ‘ku terlelap
Dongeng sebelum tidur, mimpikan diriku, mimpikan yang indah
Gelisah ‘ku tak menentu, pikiran melayang (pikiran melayang)
Di benakku hanyalah ada lelah yang terasa
Dongengmu sebelum tidur, ceritakan yang indah biar ‘ku terlelap
Dongeng sebelum tidur, ceritakan yang indah biar ‘ku terlelap
Dongeng sebelum tidur, mimpikan diriku, mimpikan yang indah
Dongeng sebelum tidur, ceritakan yang indah biar ‘ku terlelap
Dongeng sebelum tidur, mimpikan diriku, mimpikan yang indah
Aneka banyak cerita, ceritakanlah semua hingga ku terlelap
Dongeng sebelum tidur, mimpikan diriku, mimpikan yang indah
Dongeng sebelum tidur, ceritakan yang indah biar ‘ku terlelap
Dongeng sebelum tidur, mimpikan diriku, mimpikan yang indah
Dongengmu sebelum tidur, oh…
ﺑﺴﻢﷲﺍﻠﺮﺤﻤﻦﺍﻠﺮﺤﻴﻢ
Pulang kuliah rasanya capek banget dan sangat-sangat ngantuk. sebenernya jam 15.30 wib ada jadwal research team (hahah opo kuwi) di SC lt 2. itu hlo kelanjutan alur masuk UKMP (Unit Kegiatan Mahasiswa Penelitian). Akhirnya tiduran dulu karna masih ada 1 jam untuk istirahat. Setengah 4 si tomcatt sms(sebelumnya kayaknya tadi mcall juga tapi sengaja ga gw angkat, sebenernya males berangkat). nanya ukmp d sebelah mn? setau aku di lt 2 (padahal gw sama sekali belum pernah masuk sekretariat ukmp). Abis itu gw lanjut tidur zzzzzzzzz (bentar) ....trus si umrona sms gw.
umrona : mbak udah berangkat belum? kumpulnya di mana?
gw : kayaknya ga berangkat, kumpulnya di ukmp.
abis itu tidur lagi zzzzzzzzz
si tomcatt sms lagi
tomcatt : gag berangkat?
gw : enggak kayaknya?
tomcatt : kenapa?
gw : males lah gw baru bangun tidur (kriyip2)-_-
tomcatt : berangkat aja, baru dikit orangnya.
gw : (mikir bentar) mmm ya udah gw sholat dulu.
abis sholat gw langsung berangkat k SC (hihi ga mandi). Sampe sana gw bingung dmna lah ukmp ini. :D Akhirnya saya menemukan tempat berkumpulnya (untuk aja tadi ga masuk ke sekre nya padahal ga di situ). Kayaknya sih baru kenalan (berarti gw ga lama banget telatnya). Tapi embak tutornya kalo ngomong kecil banget suaranya jadinya gw rada-rada ga denger mana anginnya rada kenceng lagi bikin pengen tidur lagi. Pas ditanya judul PKM nya apa? gw : @$%@$#%^^^% heheh belum ada mbak. belum dapet inspirasi ckckck
udah ah gitu aja.
Pulang kuliah rasanya capek banget dan sangat-sangat ngantuk. sebenernya jam 15.30 wib ada jadwal research team (hahah opo kuwi) di SC lt 2. itu hlo kelanjutan alur masuk UKMP (Unit Kegiatan Mahasiswa Penelitian). Akhirnya tiduran dulu karna masih ada 1 jam untuk istirahat. Setengah 4 si tomcatt sms(sebelumnya kayaknya tadi mcall juga tapi sengaja ga gw angkat, sebenernya males berangkat). nanya ukmp d sebelah mn? setau aku di lt 2 (padahal gw sama sekali belum pernah masuk sekretariat ukmp). Abis itu gw lanjut tidur zzzzzzzzz (bentar) ....trus si umrona sms gw.
umrona : mbak udah berangkat belum? kumpulnya di mana?
gw : kayaknya ga berangkat, kumpulnya di ukmp.
abis itu tidur lagi zzzzzzzzz
si tomcatt sms lagi
tomcatt : gag berangkat?
gw : enggak kayaknya?
tomcatt : kenapa?
gw : males lah gw baru bangun tidur (kriyip2)-_-
tomcatt : berangkat aja, baru dikit orangnya.
gw : (mikir bentar) mmm ya udah gw sholat dulu.
abis sholat gw langsung berangkat k SC (hihi ga mandi). Sampe sana gw bingung dmna lah ukmp ini. :D Akhirnya saya menemukan tempat berkumpulnya (untuk aja tadi ga masuk ke sekre nya padahal ga di situ). Kayaknya sih baru kenalan (berarti gw ga lama banget telatnya). Tapi embak tutornya kalo ngomong kecil banget suaranya jadinya gw rada-rada ga denger mana anginnya rada kenceng lagi bikin pengen tidur lagi. Pas ditanya judul PKM nya apa? gw : @$%@$#%^^^% heheh belum ada mbak. belum dapet inspirasi ckckck
udah ah gitu aja.
ﺑﺴﻢﷲﺍﻠﺮﺤﻤﻦﺍﻠﺮﺤﻴﻢ
1. Buatlah uraian tentang Array, Vektor dan Matriks mencakup:
a) Array adalah sekelompok data sejenis yang disimpan ke dalam variabel dengan nama yang sama dan diberi index untuk membedakan antara yang satu dengan yang lain.
b) Vektor adalah array berdimensi satu yang bisa menampung data jenis numerik, karakter atau logika
c) Matriks adalah array berdimensi dua yang unsur-unsurnya mempunyai tipe yang sama.
2. Karakteristik masing-masing struktur data
Karakteristik array
a) Mempunyai batasan dari pemesanan alokasi memori (bersifat statis)
b) Mempunyai tipe data sama (bersifat homogen)
c) Dapat diakses secara acak.
d) Logic maupun fisik sama
Karakteristik Vektor
a) Sama seperti array bersifat homogen
Karakteristik Matrix
a) Terdiri dari kolom dan baris
3. Jenis masing-masing struktur data
Struktur Data Sederhana
a) Array(Larik)
Larik adalah struktur data statik yang menyimpan sekumpulan elemen yang bertipe sama. Setiap elemen diakses langsung melalui indeksnya. Indeks larik harus tipe data yang menyatakan keterurutan misalnya integer atau karakter. Banyaknya elemen larik harus sudah diketahui sebelum program dieksekusi. Tipe elemen larik dapat berupa tipe sederhana, tipe terstruktur, atau tipe larik lain. Nama lain array adalah Larik, tabel, atau vektor
b) Record(Catatan)
ADT adalah definisi tipe dan sekumpulan primitif (operasi dasar) terhadap tipe tersebut. Tipe diterjemahkan menjadi tipe terdefinisi dalam bahasa pemrograman yang bersangkutan.
Struktur Data Majemuk
a) Linier
• Stack(Tumpukan)
Stack (tumpukan) adalah list linier yang dikenali elemen puncaknya (top), aturan penyisipan dan penghapusan elemennya tertentu (penyisipan selalu dilakukan “di atas” (top), penghapusan selalu dilakukan pada top). Karena aturan penyisipan dan penghapusan semacam itu, top adalah satu-satunya alamat tempat terjadi operasi. Elemen yang ditambahkan paling akhir akan menjadi elemen yang akan dihapus. Dikatakan bahwa elemen stack akan tersusun secara LIFO (Last In First Out).
• Queue (Antrian)
Queue (antrian) adalah list linier yang dikenali elemen pertama (head) dan elemen terakhirnya (tail); Aturan penyisipan dan penghapusan elemennya disefinisikan sebagai penyisipan selalu dilakukan setelah elemen terakhir, penghapusan selalu dilakukan pada elemen pertama; Satu elemen dengan elemen lain dapat diakses melalui informasi next.
• List dan Multi-List (Daftar)
List linier adalah sekumpulan elemen bertipe sama, yang mempunyai keterurutan tertentu, yang setiap elemennya terdiri dari 2 bagian. sebuah list linier dikenali dengan (1) elemen pertamanya, biasanya melalui alamat elemen pertama yang disebut (first); (2) Alamat elemen berikutnya (suksesor), jika kita mengetahui alamat sebuah elemen, yang dapat diakses melalui field next; (3) Setiap elemen mempunyai alamat, yaitu tempat elemen disimpan dapat diacu. Untuk mengacu sebuah elemen, alamat harus terdefinisi. Dengan alamat tersebut informasi yang tersimpan pada elemen list dapat diakses; (4) Elemen terakhirnya.
b) Non-Linier
• Binary Tree (Pohon Biner)
Sebuah pohon biner (binary tree) adalah himpunan terbatas yang mungkin kosong atau terdiri dari sebuah simpul yang disebut sebagai akar dan dua buah himpunan lain yang disjoint yang merupakan pohon biner yang disebut sebagai sub pohon kiri (left) dan sub pohon kanan (right) dari pohon biner tersebut. Pohon biner merupakan tipe yang sangat penting dari struktur data dan banyak dijumpai dalam berbagai terapan. Karakteristik yang dimiliki oleh pohon biner adalah bahwa setiap simpul paling banyak hanya memiliki dua buah anak, dan mungkin tidak punya anak. Istilah-istilah yang digunakan sama dengan istilah pada pohon secara umum.
• Graph (Graf)
Graph merupakan struktur data yang paling umum. Jika struktur linier memungkinkan pendefinisian keterhubungan sekuensial antara entitas data, struktur data tree memungkinkan pendefinisian keterhubungan hirarkis, maka struktur graph memungkinkan pendefinisian keterhubungan tak terbatas antara entitas data. Banyak entitas-entitas data dalam masalah-masalah nyata secara alamiah memiliki keterhubungan langsung (adjacency) secara tak terbatas demikian. Contoh: informasi topologi dan jarak antar kota-kota di pulau Jawa. Dalam masalah ini kota X bisa berhubungan langsung dengan hanya satu atau lima kota lainnya. Untuk memeriksa keterhubungan dan jarak tidak langsung antara dua kota dapat diperoleh berdasarkan data keterhubungan-keterhubungan langsung dari kota-kota lainnya yang memperantarainya. Representasi data dengan struktur data linier ataupun hirarkis pada masalah ini masih bisa digunakan namun akan membutuhkan pencarian-pencarian yang kurang efisien. Struktur data graph secara eksplisit menyatakan keterhubungan ini sehingga pencariannya langsung (straightforward) dilakukan pada strukturnya sendiri.
4. Berikan contoh untuk masing-masing struktur data
Array 1 dimensi
class array1Dimensi {
public static void main (String [] args){
int [] nilai ={25,27,29,31,33};
//menampilkan elemen array
System.out.println(nilai[0]);
System.out.println(nilai[1]);
System.out.println(nilai[2]);
System.out.println(nilai[3]);
System.out.println(nilai[4]);
}
}
Arraay multidimensi
class arrayMultidim {
public static void main (String [] args){
String [][] kota ={{“Indonesia”,”Iran”,”Jepang”},{“Jakarta”,”Teheran”,”Tokyo”}};
System.out.println(“ibukota “+kota[0][0]+” adalah “+kota[1][0]);
System.out.println(“ibukota “+kota[0][1]+” adalah “+kota[1][1]);
System.out.println(“ibukota “+kota[0][2]+” adalah “+kota[1][2]);
}
}
Contoh stack Array
import java.io.*;
public class stack_array
{
private int maxsize; //penentu batas elemen stack maksimum
private double [] stackarray; //array untuk menyimpan stack
private int top; //indeks array
public void inisiasi(int s) //menentukan ukuran kapasitas stack
{
maxsize = s;
stackarray = new double [maxsize];
top = -1;
}
public void push(double data)
{
if (top>=maxsize-1)
System.out.println(“Stack Penuh. “+data+” Tidak Bisa Masuk”);
else
{
top++;
stackarray[top] = data;
System.out.println(data +” Masuk ke Stack”);
}
}
public double pop()
{
double temp;
if (top>=0)
{
temp = stackarray[top];
System.out.println(temp + ” Keluar dari Stack”);
top–;
return (temp);
}
else
{
System.out.println(“Stack Sudah Kosong”);
return(-1);
}
}
public void view()
{
System.out.print(“Isi Stack: “);
for(int i=0; i<=top; i++)
System.out.print(stackarray[i] + " ");
System.out.println();
}
public static void main(String[] args)
{
stack_array stack = new stack_array();
stack.inisiasi(3);
stack.push(3);
stack.push(4);
stack.push(2);
stack.view();
stack.push(5);
stack.push(1);
stack.pop();
stack.pop();
stack.view();
stack.pop();
stack.pop();
stack.pop();
stack.push(6);
stack.push(8);
stack.push(7);
stack.push(9);
stack.pop();
stack.view();
}
}
Contoh program Queue
class Queue
{
private int maxSize;
private long[] queArray;
private int front;
private int rear;
private int nItems;
//————————————————————–
public Queue(int s) // konstruktor
{
maxSize = s;
queArray = new long[maxSize];
front = 0;
rear = -1;
nItems = 0;
}
//————————————————————–
public void insert(long j) // letakkan item (data) di posisi belakang dari queue
{
if(rear == maxSize-1) //
rear = -1;
queArray[++rear] = j; //naikkan rear dan masukkan item (data) pada posisi rear yang baru
nItems++; //tambah satu item lagi
}
//————————————————————–
public long remove() // hapus item (data) yang berada pada posisi front
{
long temp = queArray[front++]; //dapatkan nilainya dan naikkan front
if(front == maxSize) //
front = 0;
nItems–; // item (data) berkurang satu
return temp;
}
//————————————————————–
public long peekFront() //
{
return queArray[front];
}
//————————————————————–
public boolean isEmpty() //benar jika queue-nya kosong
{
return (nItems==0);
}
//————————————————————–
public boolean isFull() // benar jika queue-nya penuh
{
return (nItems==maxSize);
}
//————————————————————–
public int size() // jumlah ietm (data) dalam queue
{
return nItems;
}
//————————————————————–
} // end class Queue
QueueApp.java
class QueueApp
{
public static void main(String[] args)
{
Queue theQueue = new Queue(5); // queue menampung 5 item (data)
theQueue.insert(10); // masukkan 4 item (data)
theQueue.insert(20);
theQueue.insert(30);
theQueue.insert(40);
theQueue.remove(); // hapus 3 item (data)
theQueue.remove(); // (10, 20, 30)
theQueue.remove();
theQueue.insert(50); // masukkan 4 item (data) lagi
theQueue.insert(60); // (wraps around)
theQueue.insert(70);
theQueue.insert(80);
while( !theQueue.isEmpty() ) // hapus dan tampilkan
{ // all items
long n = theQueue.remove(); // (
System.out.print(n);
System.out.print(“ “);
}
System.out.println(“”);
} // end main()
} // end class QueueApp
method insert()
Method insert() mengasumsikan bahwa queue tidak penuh (full). Kita tidak melihatnya dalam main(), tetapi kita bisa memanggil insert() hanya setelah memanggil isFull() dan memperoleh nilai kembalian yang salah. Pengisian data dengan cara menaikkan rear dan mengisikan data baru tersebut pada rear yang baru sekarang. Tetapi, jika rear berada di puncak array, pada maxSize-1, maka harus kembali ke posisi terbawah array sebelum penyisipan dilakukan. Caranya dengan memberi nilai rear=-1, sehingga jika terjadi kenaikan pada pada rear, maka rear akan menjadi 0, dasar dari array. Dan akhirnya, nItem bertambah.
Method remove()
method remove mengasumsikan queue-nya tidak kosong. Untuk meyakinkan bahwa queue-nya tidak kosong, anda harus memanggil method isEmpty(). Penghapusan selalu dimulai dengan memperoleh nilai pada front dan kemudian mengurangi front. Jika front-nya terletak pada akhir array, maka harus kembali ke 0. Kemudian nItems dikurangi.
Method peek()
untuk mendapatkan nilai pada front.
Method isEmpty(), isFull(), and size()
untuk mengecek nItems, apakah kosong atau penuh.
Contoh Program List dan Multi-List (Daftar)
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class MultipleSelectionTest extends JFrame {
private JList lstColor, lstCopy;
private JButton btnCopy;
private final String arrColorName[] =
{ "Black","Blue","Cyan","Dark Gray","Gray","Green","Light Gray",
"Magenta","Orange","Pink","Red","Yellow","White"
};
public MultipleSelectionTest() {
super ("Multiple Selection List");
Container container = getContentPane();
container.setLayout(new FlowLayout());
lstColor = new JList (arrColorName);
lstColor.setVisibleRowCount(5);
lstColor.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
container.add(new JScrollPane (lstColor));
btnCopy = new JButton ("Copy >>>");
btnCopy.addActionListener(
new ActionListener() {
public void actionPerformed (ActionEvent e) {
lstCopy.setListData(lstColor.getSelectedValues());
}
} //end of class
);
container.add(btnCopy);
lstCopy = new JList();
lstCopy.setVisibleRowCount(5);
lstCopy.setFixedCellHeight(15);
lstCopy.setFixedCellWidth(100);
lstCopy.setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION);
container.add(new JScrollPane(lstCopy))
setSize (400,300);
setLocationRelativeTo(null);
setVisible(true);
}
public static void main (String args[]) {
MultipleSelectionTest test = new MultipleSelectionTest();
test.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
Contoh Binary Tree (Pohon Biner)
class SimpulPohon {
int item; // Data pada simpul ini
SimpulPohon kiri; // Pointer ke cabang sebelah kiri
SimpulPohon kanan; // Pointer ke cabang sebelah kanan
}
Contoh Graph (Graf)
/**
* class Graph
* @author Jim
* @version 1.0
*/
public class Graph
{
protected HashMap adjacencyMap;
/**
* insialisasi Graf, membuat adjacency map
*/
public Graph()
{
adjacencyMap = new HashMap()
}
/*** Memeriksa apakah Graf mengandung simpul
**@return true – jika tidak mengandung simpul kosong.
*/public boolean isEmpty()
{
return adjacencyMap.isEmpty();
}
/*** Mengembalikan jumlah simpul induk dalam graf */
public int size()
{
return adjacencyMap.size();
}
/**
* Mengembalikan jumlah sisi dalam graf
*/public int getEdgeCount()
{
int count = 0;
for (inti=0;i<adjacencyMap.CAPACITY;i++){
if (adjacencyMap.keys[i] != null){
LinkedList edges = (LinkedList)
adjacencyMap.get(adjacencyMap.keys[i]);
count += edges.size();
}}
return count;
}
/*** Menambahkan sebuah objek sebagai simpul
* @param vertex – the specified object
* @return true – jika berhasil ditambahkan
*/public boolean addVertex (Object vertex){
if (adjacencyMap.containsKey(vertex))
return false;
adjacencyMap.put (vertex, new
LinkedList());
return true;
}
/*** Menambahkan sisi, dan simpul jika belum ada dalam graf
* @param v1 – simpul awal mula sisi
* @param v2 – simpul akhir dari sisi
* @return true – jika sisi berhasil ditambahkan ke dalam graf*/
public boolean addEdge (Object v1, Object v2)
{
addVertex (v1); addVertex (v2);
LinkedList l = (LinkedList)
adjacencyMap.get(v1);
l.add(v2);
return true;
}
}
Sumber :
http://chianjell.blogspot.com/2012/03/tipe-data-struktur-dataintegerrealboole.html
http://nicolaskartino.blogspot.com/2010/03/jenis-jenis-dan-definisi-struktur-data.html
http://ritagunadarma.wordpress.com/2010/02/25/jenis-jenis-struktur-data/
TUGAS 1 STRUKTUR DATA
Oleh :
NAMA : SITI MAHMUDAH
NIM : 11520241013
PENDIDIKAN TEKNIK INFORMATIKA
FAKULTAS TEKNIK
UNIVERSITAS NEGERI YOGYAKARTA
2012
1. Buatlah uraian tentang Array, Vektor dan Matriks mencakup:
a) Array adalah sekelompok data sejenis yang disimpan ke dalam variabel dengan nama yang sama dan diberi index untuk membedakan antara yang satu dengan yang lain.
b) Vektor adalah array berdimensi satu yang bisa menampung data jenis numerik, karakter atau logika
c) Matriks adalah array berdimensi dua yang unsur-unsurnya mempunyai tipe yang sama.
2. Karakteristik masing-masing struktur data
Karakteristik array
a) Mempunyai batasan dari pemesanan alokasi memori (bersifat statis)
b) Mempunyai tipe data sama (bersifat homogen)
c) Dapat diakses secara acak.
d) Logic maupun fisik sama
Karakteristik Vektor
a) Sama seperti array bersifat homogen
Karakteristik Matrix
a) Terdiri dari kolom dan baris
3. Jenis masing-masing struktur data
Struktur Data Sederhana
a) Array(Larik)
Larik adalah struktur data statik yang menyimpan sekumpulan elemen yang bertipe sama. Setiap elemen diakses langsung melalui indeksnya. Indeks larik harus tipe data yang menyatakan keterurutan misalnya integer atau karakter. Banyaknya elemen larik harus sudah diketahui sebelum program dieksekusi. Tipe elemen larik dapat berupa tipe sederhana, tipe terstruktur, atau tipe larik lain. Nama lain array adalah Larik, tabel, atau vektor
b) Record(Catatan)
ADT adalah definisi tipe dan sekumpulan primitif (operasi dasar) terhadap tipe tersebut. Tipe diterjemahkan menjadi tipe terdefinisi dalam bahasa pemrograman yang bersangkutan.
Struktur Data Majemuk
a) Linier
• Stack(Tumpukan)
Stack (tumpukan) adalah list linier yang dikenali elemen puncaknya (top), aturan penyisipan dan penghapusan elemennya tertentu (penyisipan selalu dilakukan “di atas” (top), penghapusan selalu dilakukan pada top). Karena aturan penyisipan dan penghapusan semacam itu, top adalah satu-satunya alamat tempat terjadi operasi. Elemen yang ditambahkan paling akhir akan menjadi elemen yang akan dihapus. Dikatakan bahwa elemen stack akan tersusun secara LIFO (Last In First Out).
• Queue (Antrian)
Queue (antrian) adalah list linier yang dikenali elemen pertama (head) dan elemen terakhirnya (tail); Aturan penyisipan dan penghapusan elemennya disefinisikan sebagai penyisipan selalu dilakukan setelah elemen terakhir, penghapusan selalu dilakukan pada elemen pertama; Satu elemen dengan elemen lain dapat diakses melalui informasi next.
• List dan Multi-List (Daftar)
List linier adalah sekumpulan elemen bertipe sama, yang mempunyai keterurutan tertentu, yang setiap elemennya terdiri dari 2 bagian. sebuah list linier dikenali dengan (1) elemen pertamanya, biasanya melalui alamat elemen pertama yang disebut (first); (2) Alamat elemen berikutnya (suksesor), jika kita mengetahui alamat sebuah elemen, yang dapat diakses melalui field next; (3) Setiap elemen mempunyai alamat, yaitu tempat elemen disimpan dapat diacu. Untuk mengacu sebuah elemen, alamat harus terdefinisi. Dengan alamat tersebut informasi yang tersimpan pada elemen list dapat diakses; (4) Elemen terakhirnya.
b) Non-Linier
• Binary Tree (Pohon Biner)
Sebuah pohon biner (binary tree) adalah himpunan terbatas yang mungkin kosong atau terdiri dari sebuah simpul yang disebut sebagai akar dan dua buah himpunan lain yang disjoint yang merupakan pohon biner yang disebut sebagai sub pohon kiri (left) dan sub pohon kanan (right) dari pohon biner tersebut. Pohon biner merupakan tipe yang sangat penting dari struktur data dan banyak dijumpai dalam berbagai terapan. Karakteristik yang dimiliki oleh pohon biner adalah bahwa setiap simpul paling banyak hanya memiliki dua buah anak, dan mungkin tidak punya anak. Istilah-istilah yang digunakan sama dengan istilah pada pohon secara umum.
• Graph (Graf)
Graph merupakan struktur data yang paling umum. Jika struktur linier memungkinkan pendefinisian keterhubungan sekuensial antara entitas data, struktur data tree memungkinkan pendefinisian keterhubungan hirarkis, maka struktur graph memungkinkan pendefinisian keterhubungan tak terbatas antara entitas data. Banyak entitas-entitas data dalam masalah-masalah nyata secara alamiah memiliki keterhubungan langsung (adjacency) secara tak terbatas demikian. Contoh: informasi topologi dan jarak antar kota-kota di pulau Jawa. Dalam masalah ini kota X bisa berhubungan langsung dengan hanya satu atau lima kota lainnya. Untuk memeriksa keterhubungan dan jarak tidak langsung antara dua kota dapat diperoleh berdasarkan data keterhubungan-keterhubungan langsung dari kota-kota lainnya yang memperantarainya. Representasi data dengan struktur data linier ataupun hirarkis pada masalah ini masih bisa digunakan namun akan membutuhkan pencarian-pencarian yang kurang efisien. Struktur data graph secara eksplisit menyatakan keterhubungan ini sehingga pencariannya langsung (straightforward) dilakukan pada strukturnya sendiri.
4. Berikan contoh untuk masing-masing struktur data
Array 1 dimensi
class array1Dimensi {
public static void main (String [] args){
int [] nilai ={25,27,29,31,33};
//menampilkan elemen array
System.out.println(nilai[0]);
System.out.println(nilai[1]);
System.out.println(nilai[2]);
System.out.println(nilai[3]);
System.out.println(nilai[4]);
}
}
Arraay multidimensi
class arrayMultidim {
public static void main (String [] args){
String [][] kota ={{“Indonesia”,”Iran”,”Jepang”},{“Jakarta”,”Teheran”,”Tokyo”}};
System.out.println(“ibukota “+kota[0][0]+” adalah “+kota[1][0]);
System.out.println(“ibukota “+kota[0][1]+” adalah “+kota[1][1]);
System.out.println(“ibukota “+kota[0][2]+” adalah “+kota[1][2]);
}
}
Contoh stack Array
import java.io.*;
public class stack_array
{
private int maxsize; //penentu batas elemen stack maksimum
private double [] stackarray; //array untuk menyimpan stack
private int top; //indeks array
public void inisiasi(int s) //menentukan ukuran kapasitas stack
{
maxsize = s;
stackarray = new double [maxsize];
top = -1;
}
public void push(double data)
{
if (top>=maxsize-1)
System.out.println(“Stack Penuh. “+data+” Tidak Bisa Masuk”);
else
{
top++;
stackarray[top] = data;
System.out.println(data +” Masuk ke Stack”);
}
}
public double pop()
{
double temp;
if (top>=0)
{
temp = stackarray[top];
System.out.println(temp + ” Keluar dari Stack”);
top–;
return (temp);
}
else
{
System.out.println(“Stack Sudah Kosong”);
return(-1);
}
}
public void view()
{
System.out.print(“Isi Stack: “);
for(int i=0; i<=top; i++)
System.out.print(stackarray[i] + " ");
System.out.println();
}
public static void main(String[] args)
{
stack_array stack = new stack_array();
stack.inisiasi(3);
stack.push(3);
stack.push(4);
stack.push(2);
stack.view();
stack.push(5);
stack.push(1);
stack.pop();
stack.pop();
stack.view();
stack.pop();
stack.pop();
stack.pop();
stack.push(6);
stack.push(8);
stack.push(7);
stack.push(9);
stack.pop();
stack.view();
}
}
Contoh program Queue
class Queue
{
private int maxSize;
private long[] queArray;
private int front;
private int rear;
private int nItems;
//————————————————————–
public Queue(int s) // konstruktor
{
maxSize = s;
queArray = new long[maxSize];
front = 0;
rear = -1;
nItems = 0;
}
//————————————————————–
public void insert(long j) // letakkan item (data) di posisi belakang dari queue
{
if(rear == maxSize-1) //
rear = -1;
queArray[++rear] = j; //naikkan rear dan masukkan item (data) pada posisi rear yang baru
nItems++; //tambah satu item lagi
}
//————————————————————–
public long remove() // hapus item (data) yang berada pada posisi front
{
long temp = queArray[front++]; //dapatkan nilainya dan naikkan front
if(front == maxSize) //
front = 0;
nItems–; // item (data) berkurang satu
return temp;
}
//————————————————————–
public long peekFront() //
{
return queArray[front];
}
//————————————————————–
public boolean isEmpty() //benar jika queue-nya kosong
{
return (nItems==0);
}
//————————————————————–
public boolean isFull() // benar jika queue-nya penuh
{
return (nItems==maxSize);
}
//————————————————————–
public int size() // jumlah ietm (data) dalam queue
{
return nItems;
}
//————————————————————–
} // end class Queue
QueueApp.java
class QueueApp
{
public static void main(String[] args)
{
Queue theQueue = new Queue(5); // queue menampung 5 item (data)
theQueue.insert(10); // masukkan 4 item (data)
theQueue.insert(20);
theQueue.insert(30);
theQueue.insert(40);
theQueue.remove(); // hapus 3 item (data)
theQueue.remove(); // (10, 20, 30)
theQueue.remove();
theQueue.insert(50); // masukkan 4 item (data) lagi
theQueue.insert(60); // (wraps around)
theQueue.insert(70);
theQueue.insert(80);
while( !theQueue.isEmpty() ) // hapus dan tampilkan
{ // all items
long n = theQueue.remove(); // (
System.out.print(n);
System.out.print(“ “);
}
System.out.println(“”);
} // end main()
} // end class QueueApp
method insert()
Method insert() mengasumsikan bahwa queue tidak penuh (full). Kita tidak melihatnya dalam main(), tetapi kita bisa memanggil insert() hanya setelah memanggil isFull() dan memperoleh nilai kembalian yang salah. Pengisian data dengan cara menaikkan rear dan mengisikan data baru tersebut pada rear yang baru sekarang. Tetapi, jika rear berada di puncak array, pada maxSize-1, maka harus kembali ke posisi terbawah array sebelum penyisipan dilakukan. Caranya dengan memberi nilai rear=-1, sehingga jika terjadi kenaikan pada pada rear, maka rear akan menjadi 0, dasar dari array. Dan akhirnya, nItem bertambah.
Method remove()
method remove mengasumsikan queue-nya tidak kosong. Untuk meyakinkan bahwa queue-nya tidak kosong, anda harus memanggil method isEmpty(). Penghapusan selalu dimulai dengan memperoleh nilai pada front dan kemudian mengurangi front. Jika front-nya terletak pada akhir array, maka harus kembali ke 0. Kemudian nItems dikurangi.
Method peek()
untuk mendapatkan nilai pada front.
Method isEmpty(), isFull(), and size()
untuk mengecek nItems, apakah kosong atau penuh.
Contoh Program List dan Multi-List (Daftar)
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class MultipleSelectionTest extends JFrame {
private JList lstColor, lstCopy;
private JButton btnCopy;
private final String arrColorName[] =
{ "Black","Blue","Cyan","Dark Gray","Gray","Green","Light Gray",
"Magenta","Orange","Pink","Red","Yellow","White"
};
public MultipleSelectionTest() {
super ("Multiple Selection List");
Container container = getContentPane();
container.setLayout(new FlowLayout());
lstColor = new JList (arrColorName);
lstColor.setVisibleRowCount(5);
lstColor.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
container.add(new JScrollPane (lstColor));
btnCopy = new JButton ("Copy >>>");
btnCopy.addActionListener(
new ActionListener() {
public void actionPerformed (ActionEvent e) {
lstCopy.setListData(lstColor.getSelectedValues());
}
} //end of class
);
container.add(btnCopy);
lstCopy = new JList();
lstCopy.setVisibleRowCount(5);
lstCopy.setFixedCellHeight(15);
lstCopy.setFixedCellWidth(100);
lstCopy.setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION);
container.add(new JScrollPane(lstCopy))
setSize (400,300);
setLocationRelativeTo(null);
setVisible(true);
}
public static void main (String args[]) {
MultipleSelectionTest test = new MultipleSelectionTest();
test.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
Contoh Binary Tree (Pohon Biner)
class SimpulPohon {
int item; // Data pada simpul ini
SimpulPohon kiri; // Pointer ke cabang sebelah kiri
SimpulPohon kanan; // Pointer ke cabang sebelah kanan
}
Contoh Graph (Graf)
/**
* class Graph
* @author Jim
* @version 1.0
*/
public class Graph
{
protected HashMap adjacencyMap;
/**
* insialisasi Graf, membuat adjacency map
*/
public Graph()
{
adjacencyMap = new HashMap()
}
/*** Memeriksa apakah Graf mengandung simpul
**@return true – jika tidak mengandung simpul kosong.
*/public boolean isEmpty()
{
return adjacencyMap.isEmpty();
}
/*** Mengembalikan jumlah simpul induk dalam graf */
public int size()
{
return adjacencyMap.size();
}
/**
* Mengembalikan jumlah sisi dalam graf
*/public int getEdgeCount()
{
int count = 0;
for (inti=0;i<adjacencyMap.CAPACITY;i++){
if (adjacencyMap.keys[i] != null){
LinkedList edges = (LinkedList)
adjacencyMap.get(adjacencyMap.keys[i]);
count += edges.size();
}}
return count;
}
/*** Menambahkan sebuah objek sebagai simpul
* @param vertex – the specified object
* @return true – jika berhasil ditambahkan
*/public boolean addVertex (Object vertex){
if (adjacencyMap.containsKey(vertex))
return false;
adjacencyMap.put (vertex, new
LinkedList());
return true;
}
/*** Menambahkan sisi, dan simpul jika belum ada dalam graf
* @param v1 – simpul awal mula sisi
* @param v2 – simpul akhir dari sisi
* @return true – jika sisi berhasil ditambahkan ke dalam graf*/
public boolean addEdge (Object v1, Object v2)
{
addVertex (v1); addVertex (v2);
LinkedList l = (LinkedList)
adjacencyMap.get(v1);
l.add(v2);
return true;
}
}
Sumber :
http://chianjell.blogspot.com/2012/03/tipe-data-struktur-dataintegerrealboole.html
http://nicolaskartino.blogspot.com/2010/03/jenis-jenis-dan-definisi-struktur-data.html
http://ritagunadarma.wordpress.com/2010/02/25/jenis-jenis-struktur-data/
ﺑﺴﻢﷲﺍﻠﺮﺤﻤﻦﺍﻠﺮﺤﻴﻢ
ini tugas pertama matematika diskrit membuat tabellogic ini kaya semacam k naugh map matkul Teknik Digital
ini tugas pertama matematika diskrit membuat tabellogic ini kaya semacam k naugh map matkul Teknik Digital
| click aja gambarnya nanti gede tampilannay |
ﺑﺴﻢﷲﺍﻠﺮﺤﻤﻦﺍﻠﺮﺤﻴﻢ
Tugas Basis Data
Oleh :
Muhammad Rasyid 11520241016
Siti Mahmudah 11520241013
MODEL DATA RELASIONAL
• Pengertian Model Data Relasional
Model Data Relasional adalah suatu model basis data yang menggunakan tabel dua dimensi, yang terdiri atas baris dan kolom untuk menggambarkan sebuah berkas data.
Model ini menunjukkan cara mengelola/mengorganisasikan data secara fisik dalam memory sekunder, yang akan berdampak pula pada bagaimana kita mengelompokkan data dan membentuk keseluruhan data yang terkait dalam sistem yang kita buat.
• Keuntungan Model Data Relasional
1. Bentuknya sederhana
2. Mudah melakukan berbagai operasi data (query, update/edit, delete).
• Istilah dalam Model Data Relasional :
Relasi: Sebuah tabel yang terdiri dari beberapa kolom dan beberapa baris.
Atribut : Kolom pada sebuah relasi (field).
Tupel : Baris pada sebuah relasi (record).
Domain : Kumpulan nilai yang valid untuk satu atau lebih atribut
Derajat (degree) : Jumlah atribut dalam sebuah relasi (jumlah field)
Cardinality : Jumlah tupel dalam sebuah relasi (jumlah record)
• Relational Key
Super key : Satu atribut/kumpulan atribut yang secara unik mengidentifikasi sebuah tupel di dalam relasi (satu atau lebih field yang dapat dipilih untuk membedakan antara 1 record dengan record lainnya).
Contoh: Untuk tabel MHS di atas, super key-nya:
- NPM
- NAMA (dengan syarat tidak ada nama yang sama)
- ALAMAT (dengan syarat tidak ada alamat yang sama)
- NPM + NAMA
- NPM + ALAMAT
- NAMA + ALAMAT
- NPM + NAMA + ALAMAT
Candidate key : Atribut di dalam relasi yang biasanya mempunyai nilai unik (super key dengan jumlah field yang paling sedikit) Maka, candidate key-nya adalah NPM, NAMA dan ALAMAT (karena hanya terdiri dari 1 field saja)
Primary key : Candidate key yang dipilih untuk mengidentifikasikan tupel secara unik dalam relasi Maka, primary key yang dipilih adalah NPM (unik, tidak ada NPM yang sama).
Alternate key : Candidate key yang tidak dipilih sebagai primary key Maka, candidate key-nya NAMA dan ALAMAT
Foreign key : Atribut dengan domain yang sama yang menjadi kunci utama pada sebuah relasi tetapi pada relasi lain atribut tersebut hanya sebagai atribut biasa
• Relational Integrity Rules
1. Null : Nilai suatu atribut yang tidak diketahui dan tidak cocok untuk baris (tuple) tersebut
2. Entity Integrity
Tidak ada satu komponen primary key yang bernilai null.
3. Referential Integrity : Suatu domain dapat dipakai sebagai kunci primer bila merupakan atribut tunggal pada domain yang bersangkutan.
• Bahasa Pada Model data Relasional
Menggunakan bahasa query, yaitu pernyataan yang diajukan untuk mengambil informasi
Terbagi 2 :
1. Bahasa Query Formal
Bahasa query yang diterjemahkan dengan menggunakan simbol-simbol matematis.
Terbagi 2, yaitu:
a. Prosedural, yaitu pemakai memberi spesifikasi data apa yang dibutuhkan dan bagaimana cara mendapatkannya.
Contoh: Aljabar Relasional , yaitu dimana query diekspresikan dengan cara menerapkan operator tertentu terhadap suatu tabel / relasi.
b. Non Prosedural, yaitu pemakai menspesifikasikan data apa yang dibutuhkan tanpa menspesifikasikan bagaimana untuk mendapatkannya.
Contoh: Kalkulus Relasional, dimana query menjelaskan set tuple yang diinginkan dengan cara menjelaskan predikat tuple yang diharapkan.
Terbagi 2 :
1. Kalkulus Relasional Tupel
2. Kalkulus Relasional Domain
2. Bahasa Query Komersial
Bahasa Query yang dirancang sendiri oleh programmer menjadi suatu program aplikasi agar pemakai lebih mudah menggunakannya (user friendly).
Contoh :
• QUEL : Berbasis pada bahasa kalkulus relasional
• QBE : Berbasis pada bahasa kalkulus relasional
• SQL : Berbasis pada bahasa kalkulus relasional dan aljabar relasional
Model data Entity
Model data Entity adalah objek yang dapat dibedakan dengan yang lain dalam dunia nyata. Entity dapat berupa obyek secara fisik seperti orang, rumah, atau kendaraan.
Model data atribut
Model data atribut adalah karakteristik dari entity atau relationship. Yang menyediakan penjelasan detail tentang entity atau relationship tersebut. Nikai atribut merupakan suatu data aktual atau informasi yang disimpan pada suatu atribut di dalam suatu entity atau relationship. Atribut digambarkan dalam bentuk oval.
Jenis-jenis atribut :
- Key
Atribut yang digunakan untuk menentukan suatu entity secara unik.
- Atribut simple
Atribut yang bernilai tunggal.
- Atribut multivalue
Atribut yang memiliki sekelompok nilai untuk setiap instan entity.
- Atribut composite
Atribut yang terdiri dari beberapa atribut yang lebih kecil yang mempunyai arti tertentu.
- Atribut deviratif
Suatu atribut yang dihasilkan dari atribut lain.
Model data relationship
Model data relationship adalah hubungan yang terjadi antara satu atau lebih entity. Relationship set adalah kumpulan relationship yang sejenis.
