• Tidak ada hasil yang ditemukan

TEORI ALGORITMA DAN STRUKTR DATA

N/A
N/A
Protected

Academic year: 2018

Membagikan "TEORI ALGORITMA DAN STRUKTR DATA"

Copied!
17
0
0

Teks penuh

(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

(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

(3)

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

(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 :

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 :

a.Pernyataan akan dijalankan secara berulang selama kondisi bernilai salah,

dan pernyataan ini minimal akan dijalankan meskipun hanya sekali.

(5)

2. Praktikum (Coding).

public class perulaganWhile{

public static void main (String [] args ){ int a = 0;

public class perulaganDoWhile{

(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]},

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++){

(7)

} }

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}};

(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

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 :

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;

(9)

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){

(11)

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.

(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).

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.

(13)

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 {

(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) {

(15)

12

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

* @author Moh. Sukron Makmun */

public class nilaiMaxMin {

public static void main (String [] args){

System.out.println("Data terbesar adalah "+max+" pada index "+iMax); System.out.println("Data terkecil adalah "+min+" pada index "+iMin); }

}

Hasil Output :

(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 {

(17)

//proses penyimpanan sementara cadangan = a[i];

a[i] = a[min]; a[min] = cadangan; //menampilkan data

System.out.print(a[i]+" "); }

System.out.println(""); }

}

Hasil Output :

Gambar

gambar yang diatas atau buat sesuai keinginan. Kemudian beri action pada button “Hitung” dengan coding sebagai berikut :

Referensi

Dokumen terkait

Suatu kegiatan yang dilakukan oleh para pimpinan untuk melatih para bawahannya guna meraih kinerja yang optimum dan mengatasi permasalahan-permasalahan yang dihadapi serta bagaimana

Tulisan ini bertujuan mengkaji struktur ketenagakerjaan di pedesaan yang dirinci atas aspek tenaga kerja, angkatan kerja, dan tingkat partisipasi angkatan kerja. Metode

Pak Wakil Menteri dan seluruh Pejabat Eselon I Kementerian Desa PDT dan Transmigrasi yang berbahagia. Pertama, kami mengucapkan terima kasih karena Pak Menteri melalui Pak

Berkaitan dengan permasalahan laba rugi, penghasilan komprehensif lain, kualitas audit dan subjektivitas manajemen diatas, Lee dan Park (2013) telah melakukan penelitian

Adapun variabel tersebut adalah pengaruh disiplin kerja dan motivasi kerja terhadap kinerja karyawan operasional pada PT Pertamina EP Asset 2 Field Pendopo Sumatera

Berdasarkan latar belakang yang telah penulis jelaskan diatas, maka penulis merumuskan masalah yang akan dibahas dalam penelitian ini adalah “Bagaimana

Untuk menyatakan alamat dari suatu variabel, operator &amp; (operator alamat, yang bersifat unary) bisa digunakan dengan cara menempatkan operator di depan nama

Tahap analisis morfologi pada preprocessing ini dilakukan dengan menerapkan sistem MorphInd sebagai penganalisis morfologi bahasa Indonesia yang akan