Bab I sampai Bab IV membahas tentang algoritma dan struktur data dasar seperti perulangan, array, class, serta GUI. Bab selanjutnya membahas algoritma pencarian, pengurutan, dan contoh kodingnya.
1. I
TEORI ALGORITMA
DAN STRUKTR DATA
Dosen : Herwin Zakiyah, ST, M.Eng
Berisi Rangkuman Materi Tentang Algoritma Dan Struktur Data Pada Tengah
Kedua Semseter 1 Jurusan Teknik Informatika POLITEKNIK KEDIRI.
2014
Moh. Sukron Makmun
13010058
Teknik Informatika 1B
2. II
DAFTAR ISI
HALAMAN JUDUL ........................................................................................................................I
DAFTAR ISI.................................................................................................................................................II
BAB I PERULANGAN (WHILE, DO...WHILE) ........................................................................................1
1. Dasar Teori.........................................................................................................................................1
1.1. While..........................................................................................................................................1
1.2. Do...While. .................................................................................................................................1
2. Praktikum (Coding)............................................................................................................................2
2.1. Perualangan While......................................................................................................................2
2.2. Perulangan do...while. ................................................................................................................2
BAB II ARRAY DAN MATRIKS (ARRAY MULTIDIMENSI) ................................................................3
1. Dasar Teori.........................................................................................................................................3
1.1. Array Satu Dimensi....................................................................................................................3
1.2. Array Multidimensi....................................................................................................................3
2. Praktikum (Coding)............................................................................................................................3
2.1. Array Satu Dimensi....................................................................................................................3
2.2. Array Multidimensi....................................................................................................................4
BAB III CLASS ............................................................................................................................................5
1. Dasar Teori.........................................................................................................................................5
1.1. Class...........................................................................................................................................5
1.1.1. Attribut. ..............................................................................................................................5
1.1.2. Method. ..............................................................................................................................5
1.2. Konstruktor.................................................................................................................................5
1.3. Object. ........................................................................................................................................5
2. Praktikum (Coding)............................................................................................................................6
BAB IV GRAPHICAL USER INTERFACE (GUI) .....................................................................................7
1. Dasar Teori.........................................................................................................................................7
2. Praktikum (Coding)............................................................................................................................7
BAB V ALGORITMA PENCARIAN (SEARCHING) ...............................................................................9
1. Dasar Teori.........................................................................................................................................9
1.1. Linear/Sequential Search............................................................................................................9
1.2. Binnary Search...........................................................................................................................9
3. III
2. Praktikum (Coding)..........................................................................................................................10
2.1. Linear/Sequential Search..........................................................................................................10
2.2. Binary Search...........................................................................................................................11
BAB VI PENCARIAN MAXIMUN DAN MINIMUM .............................................................................12
1. Dasar Teori.......................................................................................................................................12
2. Praktikum (Coding)..........................................................................................................................12
BAB VII ALGORITMA PENGURUTAN (SORTING) .............................................................................13
1. Dasar Teori.......................................................................................................................................13
1.1. Bubble Sort...............................................................................................................................13
1.2. Insertion Sort............................................................................................................................13
1.3. Selection Sort. ..........................................................................................................................13
1.4. Quick Sort. ...............................................................................................................................13
2. Praktikum (Coding)..........................................................................................................................13
4. 1
BAB I
PERULANGAN (WHILE, DO...WHILE)
1. Dasar Teori.
Perulangan dalah pernyataan dalam pemrograman dimana program akan
mengulang sebuah atau sekelompok pernyataan tanpa menulis perintah yang sama secara
berualang selama kondisi bernilai benar.
Ada dua pernyataan perulangan yang dapat digunakan dalam bahasa java yang
akan kita bahas yaitu while dan do...while.
1.1. While.
Pernyataan ini berguna untuk memproses suatu pernyataan atau
beberapa pernyataan beberapa kali selama ungkapan atau kondisi bernilai
benar. Pernyataan ini akan mengecek ungkapan atau kondisi terlebih dahulu,
sehingga jika ungkapan atau kondisi bernilai salah maka pernyataan sama
sekali tidak akan dijalankan.
Bentuk umum :
while (kondisi){
//blok perulangan
pernyataan;
}
Keterangan :
a. kondisi pada while akan dicek terlebih dahulu sebelum menjalankan
pernyataan.
b. Pernyataan akan dijalankan selama kondisi pada while bernilai benar.
c. Pernyataan mungkin tidak akan dijalankan sama sekali, jika ditemui
kondisi pada while bernilai salah.
1.2. Do...While.
Pernyataan ini juga berguna untuk memproses suatu pernyataan
atau beberapa pernyaataan beberapa kali selama ungkapan atau kondisi
bernilai benar. Namun, ungkapan atau kondisi tersebut akan dicek di
belakang. Sehingga pernyataan minimal dapat dijalankan meskipun hanya
sekali, yaitu saat pertama kali menjalankan pernyataan.
Bentuk umum :
do{
//blok pernyataan
pernyataan;
}
while(kondisi);
Keterangan :
a.Pernyataan akan dijalankan secara berulang selama kondisi bernilai salah,
dan pernyataan ini minimal akan dijalankan meskipun hanya sekali.
b. Kondisi pada while akan dicek setelah menjalankan blok pernyataan.
5. 2
2. Praktikum (Coding).
2.1. Perualangan While.
package perulangan;
/**
* @author Moh. Sukron Makmun
*/
public class perulaganWhile{
public static void main (String [] args ){
int a = 0;
System.out.println("Sebelum while");
while (a<=10){
System.out.println("Nilai dari a : "+a);
a++;
}
System.out.println("Setelah while");
}
}
2.2. Perulangan do...while.
package perulangan;
/**
* @author Moh. Sukron Makmun
*/
public class perulaganDoWhile{
public static void main (String [] args ){
int a = 10;
System.out.println("Sebelum DoWhile");
do{
System.out.println("Nilai dari a : "+a);
a--;
}
while(a>=1);
System.out.println("Setelah DoWhile");}
}
Hasil Output :
Sebelum DoWhile
Nilai dari a : 10
Nilai dari a : 9
Nilai dari a : 8
Nilai dari a : 7
Nilai dari a : 6
Nilai dari a : 5
Nilai dari a : 4
Nilai dari a : 3
Nilai dari a : 2
Nilai dari a : 1
Setelah DoWhile
Hasil Output :
Sebelum while
Nilai dari a : 0
Nilai dari a : 1
Nilai dari a : 2
Nilai dari a : 3
Nilai dari a : 4
Nilai dari a : 5
Nilai dari a : 6
Nilai dari a : 7
Nilai dari a : 8
Nilai dari a : 9
Nilai dari a : 10
Setelah while
6. 3
BAB II
ARRAY DAN MATRIKS (ARRAY MULTIDIMENSI)
1. Dasar Teori.
Array adalah sebuah struktur data yang terdiri dari data – data yang bertipe data
sama. Posisi (indeks) atau isi dari larik biasanya disebut elemen, yang dimulai dengan
hitungan nol (0). Untuk memanggil data pada data array dengan cara menyebut nama
variabel dan diikuti dengan nomor indeksnya. Array dapat diibaratkan sebagai loker
penimpanan barang, sebagaimana kita lihat pada tempat penitipan barang yang memiliki
nomor masing - masing.
1.1. Array Satu Dimensi.
Bentuk umum :
a. Tipedata [n] variabel;
varaiabel = new tipedata [n];
b. Tipedata [] variabel = new tipedata [n];
c. Tipedata [] variabel = {data[0],data[1],data[2],...,data [n-1]};
Keterangan :
- n : ukuran atau panjang dari array.
Data[0] Data[1] Data[2] Data[3] Data[4] Data[5] ... Data[n-1]
1.2. Array Multidimensi.
Bentuk umum :
a. Tipedata [m][n] variabel;
varaiabel = new tipedata [m][n];
b. Tipedata [][] variabel = new tipedata [m][n];
c. Tipedata [][] variabel = {{data[0][1],data[0][1],...,data [0][n-1]},
{data[1][0],data[1][1],...,data[1][n-1]},
{data[m-1][0],...,...,data[m-1][n-1]}};
Keterangan :
- m : ukuran panjang baris array ( ↓ ).
- n : ukuran panjang kolom array (→).
Data[0][0] Data[0][1] ... Data[0][n-1]
Data[1][0] Data[1][1] ... Data[1][n-1]
Data[m-1][0] Data[m-1][1] ... Data[m-1][n-1]
2. Praktikum (Coding).
2.1. Array Satu Dimensi.
package Array;
/**
* @author Moh. Sukron Makmun
*/
public class satuDimensi {
public static void main (String [] args){
int [] data = {1,2,3,4,5,};
for(int a = 0; a<5; a++){
System.out.println("Isi arrray data["+a+"] = "+data[a]);
}
7. 4
}
}
Hasil Output :
Isi arrray data[0] = 1
Isi arrray data[1] = 2
Isi arrray data[2] = 3
Isi arrray data[3] = 4
Isi arrray data[4] = 5
2.2. Array Multidimensi.
package Array;
/**
* @author Moh. Sukron Makmun
*/
public class multiDimensi {
public static void main (String [] args){
int [][] data = {{11,12,13},{21,22,23},{31,32,33}};
for(int a = 0; a<3; a++){
for(int b = 0; b<3; b++){
System.out.print("Isi data["+a+"]["+b+"] = "+data[a][b]+"t");
}
System.out.println("");
}
}
}
Hasil Output :
Isi data[0][0] = 11 Isi data[0][1] = 12 Isi data[0][2] = 13
Isi data[1][0] = 21 Isi data[1][1] = 22 Isi data[1][2] = 23
Isi data[2][0] = 31 Isi data[2][1] = 32 Isi data[2][2] = 33
Keterangan :
Pada contoh diatas array multidimensi yang digunakan adalah array 3 x 3.
Atau untuk mendeklarasikan array dapat dilangsungkan dengan
menentukan ukuran array.
Contoh :
int [][] data = {{11,12,13},{21,22,23},{31,32,33}};
diganti dengan :
int [3][3] data = {{11,12,13},{21,22,23},{31,32,33}};
Namun, jika sudah ditentukan ukurannya maka panjang data harus sesuai
dengan ukuran array.
8. 5
BAB III
CLASS
1. Dasar Teori.
1.1. Class.
Class adalah struktur dasar dari OOP (Object Oriented Programming). Terdiri dari
attribut dan method. Class digunakan untuk mendeklarasikan sebuah variabel yang
berupa objek atau dinamakan “referensi objek (object reference)”.
1.1.1. Attribut.
Attribut adalah data yang berisi status atau keadaan dari objek yaitu
berupa variabel pembentuk dari class.
1.1.2. Method.
Method digunakan untuk mengelompokkan beberapa instruksi
yang akan dieksekusi pada beberapa bagian yang berbeda dalam suatu
program. Method memiliki nilai return (yang dikembalikan) dan void
(tidak memiliki nilai yang dikembalikan, hanya menjalankan proses).
Bentuk umum :
class nama_class{
//attribut
Tipedata namaVariabel1;
...
Tipedata namaVariabelN;
//method
Tipe_return namaMethod(parameter){
Penerapan method1/return;
....
Penerapan methodN/return;
}
}
1.2. Konstruktor.
Sebuah class berisi konstruktor untuk menciptakan object dari suatu kelas.
Konstruktor memiliki bentuk yang hampir sama dengan method namun
perbedaannya adalah konstruktor memiliki nama yang sama dengan nama class
dan tidak memiliki nilai kembalian atau void.
Bentuk umum :
public namaClass(parameter){
variabelClass1 = value1;
...
variabelClassN = valueN;
}
1.3. Object.
Object dibangun dari sekumpulan attribut dan terdiri dari method. Object
merupakan sebuah turunan dari class. Objek juga digunakan untuk berinteraksi
atau ber-referensi dengan suatu class.
Bentuk umum :
a. namaClass object = new namaClass();
b. namaClass object;
object = new namaClass();
9. 6
2. Praktikum (Coding).
package Materi_Class;
/**
*@author Moh. Sukron Makmun
*/
class persegipanjang{
//attribut
int luas, panjang, lebar;
//konstruktor
persegipanjang(){
panjang = 0;
lebar = 0;
}
//method
public void luas(int angka1, int angka2){
angka1 = panjang;
angka2 = lebar;
luas = panjang*lebar;
}
public int hasil(){
return luas;
}
}
public class Class_Method {
public static void main (String [] args){
//membuat object untuk class persegipanjang
persegipanjang hitung = new persegipanjang();
//memberi nilai pada variabel pada class
int bil1 = hitung.panjang = 3;//diletakkan pada bil1
int bil2 = hitung.lebar = 2;//diletakkan pada bil2
//menghitung luas dengan method pada class
hitung.luas(bil1, bil2);
int luas = hitung.hasil();//diletakkan pada luas
System.out.println("Luas PersegiPanjang adalah "+luas );
}
}
10. 7
BAB IV
GRAPHICAL USER INTERFACE (GUI)
1. Dasar Teori.
Sebenarnya jika kita ingin membuat program yang terlihat profesional dan berkualitas
pengguna dapat menggunakan graphical user interface (GUI). Pada umumnya pengguna
program akan lebih senang dengan penggunaan GUI karena lebih menarik dan user
friendly. Namun kita akan mempelajari beberapa dari komponen user interface.
Keterangan :
a. JFrame : lembar kerja utama GUI, letak pallet GUI.
b. JLabel : digunakan untuk menampilkan karakter pada GUI.
c. JTexField : digunakan untuk kotak isian atau output memanjang.
d. JRadioButton : digunakan untuk memberi opsi pilihan, memilih salah satu.
e. JButton : digunakan untuk sibol/akses dalam menjalankan instruksi.
f. JTextArea : digunakan untuk kota isian atau output yang lebih besar.
g. Sebagaimana umumnya bahasa java, setiap pallet juga memiliki variabel untuk
memanggilnya.
2. Praktikum (Coding).
Membuat penghitung rumus Luas dan Keliling Persegi Panjang.
Setelah membuat project pada Netbeans, kita klik kanan pada package project > pilih
New > Jframe. Kemudian berikan pallet yang dibutuhkan sehingga menjadi seperti
gambar yang diatas atau buat sesuai keinginan. Kemudian beri action pada button
“Hitung” dengan coding sebagai berikut :
int panjang = Integer.parseInt(txpanjang.getText());
int lebar = Integer.parseInt(txlebar.getText());
int luas = panjang*lebar;
int keliling = 2*(panjang+lebar);
if(rluas.isSelected()==true){
tatampil.setText("Luas persegipanjang adalah "+luas);
}
else if (rkeliling.isSelected()==true){
tatampil.setText("Keliling persegipanjang adalah "+keliling);
11. 8
Keterangan :
a. Variabel.getText() : digunakan untuk mengambil data.
b. Variabel.isSelected() : digunakan untuk menentukan fungsi Jradio.
c. Variabel.setText(String_value) : digunakan untuk manampilkan data hasil proses.
Berikut tampilan dari hasil praktikum diatas :
12. 9
BAB V
ALGORITMA PENCARIAN (SEARCHING)
1. Dasar Teori.
Searching adalah proses pencarian data yang ada pada suatu deret data dengan
cara menelusuri data-data tersebut. Pencarian terhadap data, bisa merupakan suatu deret
data yang sudah terurut maupun belum terurut. Tahapan yang paling penting adalah
memeriksa jika data yang dicari sama dengan data yang ada pada deret data.
Macam – macam algoritma pencarian :
a. Linear/Sequential Search.
b. Binary Search.
1.1. Linear/Sequential Search.
Metode pencarian data yang membandingkan data kunci dengan seluruh
data pada deret data dari awal sampai akhir. Sehingga jika data yang cari berada
pada deret depan maka waktu pencarian akan lebih cepat. Namun jika data yang
dicari berapa pada deret akhir maka akan memakan waktu yang lama.
Index 0 1 2 3 4 5
Value 8 10 6 -2 11 7
Data yang dicari adalah 6.
a. 6 = 8 (tidak).
b. 6 = 10 (tidak).
c. 6 = 6 (ya) output : 2 (index).
Algoritma :
a. i 0
b. ketemu false
c. selama (tidak ketemu) dan (i < N) kerjakan baris 4
d. jika (data[i] = key) maka Ketemu
ketemu true
jika tidak
i i+1
e. Jika (Ketemu) maka
i adalah index dari data yang dicari
jika tidak
data tidak ditemukan
1.2. Binnary Search.
Metode pencarian data terhadap deret data yang telah berurutan. Deret
data dibagi menjadi dua dan data kunci di akan dibandingkan dengan data tengah
dari deret data. Jika data yang dicari sama dengan data tengah maka data
ditemukan. Namun jika data yang dicari lebih besar maka cari disebelah kiri dari
data tengah. Jika data yang dicari lebih kecil maka cari disebelah kanan. Jika
belum ditemukan deret data dibagi menjadi dua lagi dan dibandingkan lagi begitu
seteruskan sampai data ditemukan. Jika tidak ada lagi data pada kanan ata kirinya
maka data tidak ditemukan.
13. 10
Index 0(L) 1 2(M) 3 4(R)
Value 2 3 8 10 15
Data yang dicari 2.
a. Mencari nilai tengah (M = (L+R)/2) dan 2 dibaningkan dengan nilai index M.
Karena 2 < 8, maka R = M-1.
Index 0(L)(M) 1(R) 2 3 4
Value 2 3 8 10 15
b. Dua dibandingkan lagi dengan nilai index M lagi.
Karena 2 = 2, maka data DITEMUKAN.
Algoritma :
a. Data diambil dari posisi 1 sampai posisi akhir N
b. Kemudian cari posisi data tengah, M = (posisi awal(L) + posisi akhir(R)) / 2.
c. Kemudian data yang dicari dibandingkan dengan data yang di tengah(M),
apakah sama atau lebih kecil, atau lebih besar?
d. Jika lebih besar
Awal(L) = posisi tengah(M) + 1
e. Jika lebih kecil
Akhir(R) = posisi tengah(M) – 1
i. Jika data sama, berarti KETEMU.
2. Praktikum (Coding).
2.1. Linear/Sequential Search.
package pencarian;
/**
* @author Moh. Sukron Makmun
*/
public class SequentialSearch {
public static void main (String [] args){
int [] no = {12,20,14,9,34};
int a = 0;
int cari = 20;
boolean ketemu = false;
while(!ketemu && a<no.length){
if(cari==no[a]){
ketemu = true;
}
else{
a++;
}
}
if(ketemu){
System.out.println("Data ketemu di index "+a);
}
else{
System.out.println("Data tidak Ketemu");
14. 11
}
}
}
Hasil Output :
Data ketemu di index 1
2.2. Binary Search.
package pencarian;
/**
* @author Moh. Sukron Makmun
*/
public class binary {
public static void main(String[] args) {
//data yang terurut pada array
int nim [] = {1001,1002,1003,1004,1005,1006,1007,1008,1009};
int nimku = 1002;
int awal = 0;
int akhir = nim.length-1;
boolean ketemu = false;
int mid;
//proses
do{
mid = (awal+akhir)/2;
if(nimku == nim [mid] ){
ketemu = true;
}
else if(nimku < nim [mid]){
akhir = mid - 1;
}
else if (nimku > nim [mid]){
awal = mid + 1;
}
}
while(!ketemu && (awal<akhir));
//ditampilkan
if(ketemu){
System.out.println(nimku+", Ketemu di index ke-"+mid);
}
else{
System.out.println("Data tidak ditemukan");
}
}
}
Hasil Output :
1002, Ketemu di index ke-1
15. 12
BAB VI
PENCARIAN MAXIMUN DAN MINIMUM
1. Dasar Teori.
Metode pencarian data untuk menentukan data terbesar atau data terkecil dari
suatu deret data. Pencarian ini menggunakan pencarianl metode linear/sequential,
sehingga data yang dicari dibandingkan dengan semua data pada deret data.
Algoritma :
a. Index maximal -1, nilai -1 sebagai perumpamaan awal index
b. Index minimal panjang data.
c. Nilai maximal -99, sebagai perumpamaan nilai awal (sesuai keinginan, lebih
rendah dari data terkecil yang ada).
d. Nilai minimal 100, nilai 100 sebagai perumpamaan nilai awal (sesuai / melebihi
data terbesar yang ada).
e. Jika data pada deret data lebih besar dari nila maximal, maka nilai maximal
digantikan data tersebut.
f. Dan jika data pada deret data lebih kecil dari nilai minimal, maka nilai minimal
diganrikan data tersebut.
2. Praktikum (Coding).
package pencarian;
/**
* @author Moh. Sukron Makmun
*/
public class nilaiMaxMin {
public static void main (String [] args){
int [] data = {2,16,28,5,6,13,99,10};
int max = -99;//perumpamaan
int iMax = -1;//perumpamaan
int min = 100;
int iMin = data.length;
for(int i = 0; i<data.length; i++){//perulangan sebanyak jumlah data
if(data[i]>max){//membandingkan nilai data[i]dengan max
max = data[i];//nilai max diganti dengan data[i]
iMax = i;//nilai iMax diganti dengan i
}
if (data[i]< min){
min = data[i];
iMin = i;
}
}
//menampilkan nila max dan iMax
System.out.println("Data terbesar adalah "+max+" pada index "+iMax);
System.out.println("Data terkecil adalah "+min+" pada index "+iMin);
}
}
Hasil Output :
Data terbesar adalah 99 pada index 6
Data terkecil adalah 2 pada index 0
16. 13
BAB VII
ALGORITMA PENGURUTAN (SORTING)
1. Dasar Teori.
Sorting adalah proses menyusun elemen – elemen dengan tata urut tertentu. Jika
data dalam jumlah yang besar maka akan lebih mudah dikelola jika data dalam keadaan
berurutan berdasarkan urutan tertentu dan juga memudahkan dalam pencarian,
pengelompokkan data dan lain – lain. Ada 4 metode pengurutan, yaitu Bubble Sort,
Insertion Sort, Selection Sort, dan Quick Sort.
1.1. Bubble Sort.
Metode pengurutan dengan membandingkan dataN dengan dataN-1, jika
dataN-1 lebih besar dari dataN maka data tersebut ditukar.
1.2. Insertion Sort.
Metode pengurutan dengan membandingkan dataN (dimulai dengan index
ke-1) dengan data sebelumnya. Jika terdapat data yang lebih kecil, maka data
tersebut diletakkan didepan atau sesuai posisi seharusnya.
1.3. Selection Sort.
Metode pengurutan dengan membandingkan data dengan data berikutnya
sampai data terakhir. Sehingga setiap data memilih satau data berikutnya untuk
pembanding. Jika ditekmukan data yang lebih kecil maka data tersebut akan
ditukar posisinya.
1.4. Quick Sort.
Metode pengurutan dengan membandingkan suatu data (pivot) dengan data
yang lain dan menyusunnya sedemikian rupa sehingga data tersebut terletak
disebelah kiri dan data lain yang lebih besar dari data pivot terletak di kanan.
Kemudian data di kanan dan kiri data pivot diperlakukan sama seperti deret baru,
begitu seterusnya hingga didapat deret yang sesuai pengurutan.
2. Praktikum (Coding).
package pengurutandata;
/**
* @author sukron
*/
public class Main {
public static void main(String[] args) {
int [] a = {10,5,8,7,2,3,1,9,4,6};//array yang akan diurutkan
int min;//variabel nilai minimal
int cadangan;//variabel sementara
//menentukan nilai yang lebih kecil
for (int i = 0; i <a.length; i++){
min = i;
for (int j = (i+1); j<a.length; j++){
if (a[j] < a[min]){//membandingkan kedua data
min = j;
}
}