SlideShare a Scribd company logo
1 of 17
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
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
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
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.
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
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]);
}
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.
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();
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 );
}
}
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);
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 :
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.
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");
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
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
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;
}
}
14
//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 :
1 2 3 4 5 6 7 8 9 10

More Related Content

Viewers also liked

Materi Rangkaian Digital Part 2
Materi Rangkaian Digital Part 2Materi Rangkaian Digital Part 2
Materi Rangkaian Digital Part 2Amien Nuryanto
 
Algoritma dan pemprograman-pertemuan 1
Algoritma dan pemprograman-pertemuan 1Algoritma dan pemprograman-pertemuan 1
Algoritma dan pemprograman-pertemuan 1azis syah
 
Materi Rangkaian Digital I
Materi Rangkaian Digital IMateri Rangkaian Digital I
Materi Rangkaian Digital IAmien Nuryanto
 
Modul rangakaian digital
Modul rangakaian digitalModul rangakaian digital
Modul rangakaian digitalPahlawan Sagala
 
Modul teknik digital dan logika
Modul teknik digital dan logikaModul teknik digital dan logika
Modul teknik digital dan logikaBambang Apriyanto
 
Sistem Monitoring Digital Penggunaan dan Kualitas Kekeruhan Air berbasis Mik...
Sistem Monitoring Digital Penggunaan dan Kualitas Kekeruhan Air  berbasis Mik...Sistem Monitoring Digital Penggunaan dan Kualitas Kekeruhan Air  berbasis Mik...
Sistem Monitoring Digital Penggunaan dan Kualitas Kekeruhan Air berbasis Mik...EM Kautsar
 
Rangkaian logika digital
Rangkaian logika digitalRangkaian logika digital
Rangkaian logika digitalRez Inc
 
2015 Upload Campaigns Calendar - SlideShare
2015 Upload Campaigns Calendar - SlideShare2015 Upload Campaigns Calendar - SlideShare
2015 Upload Campaigns Calendar - SlideShareSlideShare
 
What to Upload to SlideShare
What to Upload to SlideShareWhat to Upload to SlideShare
What to Upload to SlideShareSlideShare
 
Getting Started With SlideShare
Getting Started With SlideShareGetting Started With SlideShare
Getting Started With SlideShareSlideShare
 

Viewers also liked (10)

Materi Rangkaian Digital Part 2
Materi Rangkaian Digital Part 2Materi Rangkaian Digital Part 2
Materi Rangkaian Digital Part 2
 
Algoritma dan pemprograman-pertemuan 1
Algoritma dan pemprograman-pertemuan 1Algoritma dan pemprograman-pertemuan 1
Algoritma dan pemprograman-pertemuan 1
 
Materi Rangkaian Digital I
Materi Rangkaian Digital IMateri Rangkaian Digital I
Materi Rangkaian Digital I
 
Modul rangakaian digital
Modul rangakaian digitalModul rangakaian digital
Modul rangakaian digital
 
Modul teknik digital dan logika
Modul teknik digital dan logikaModul teknik digital dan logika
Modul teknik digital dan logika
 
Sistem Monitoring Digital Penggunaan dan Kualitas Kekeruhan Air berbasis Mik...
Sistem Monitoring Digital Penggunaan dan Kualitas Kekeruhan Air  berbasis Mik...Sistem Monitoring Digital Penggunaan dan Kualitas Kekeruhan Air  berbasis Mik...
Sistem Monitoring Digital Penggunaan dan Kualitas Kekeruhan Air berbasis Mik...
 
Rangkaian logika digital
Rangkaian logika digitalRangkaian logika digital
Rangkaian logika digital
 
2015 Upload Campaigns Calendar - SlideShare
2015 Upload Campaigns Calendar - SlideShare2015 Upload Campaigns Calendar - SlideShare
2015 Upload Campaigns Calendar - SlideShare
 
What to Upload to SlideShare
What to Upload to SlideShareWhat to Upload to SlideShare
What to Upload to SlideShare
 
Getting Started With SlideShare
Getting Started With SlideShareGetting Started With SlideShare
Getting Started With SlideShare
 

Similar to Rangkuman Algoritma Pemerograman 2

Mi1274 alpro lanjut 6 - perulangan - 2 - for, do-while
Mi1274 alpro lanjut   6 - perulangan - 2 - for, do-whileMi1274 alpro lanjut   6 - perulangan - 2 - for, do-while
Mi1274 alpro lanjut 6 - perulangan - 2 - for, do-whileDefina Iskandar
 
Mengimplementasikan Pemrograman Terstruktur.pdf
Mengimplementasikan Pemrograman Terstruktur.pdfMengimplementasikan Pemrograman Terstruktur.pdf
Mengimplementasikan Pemrograman Terstruktur.pdfraia22
 
Implementasi queue
Implementasi queueImplementasi queue
Implementasi queueRhe Dwi Yuni
 
Ringkasan materi teori algoritma
Ringkasan materi teori algoritmaRingkasan materi teori algoritma
Ringkasan materi teori algoritmaAkhmad Asari
 
struct & stack
struct & stackstruct & stack
struct & stackM Satrio
 
Mi1274 alpro lanjut 7 - perulangan - 3 - nested
Mi1274 alpro lanjut   7 - perulangan - 3 - nestedMi1274 alpro lanjut   7 - perulangan - 3 - nested
Mi1274 alpro lanjut 7 - perulangan - 3 - nestedDefina Iskandar
 
Pertemuan Ke-5 - Sistem Operasi - Sinkronisasi Proses.pptx
Pertemuan Ke-5 - Sistem Operasi - Sinkronisasi Proses.pptxPertemuan Ke-5 - Sistem Operasi - Sinkronisasi Proses.pptx
Pertemuan Ke-5 - Sistem Operasi - Sinkronisasi Proses.pptxYaya610291
 
M. ade candra 1610530187
M. ade candra 1610530187M. ade candra 1610530187
M. ade candra 1610530187Ade Chandra
 
Tugas mandiri struktur data
Tugas mandiri struktur dataTugas mandiri struktur data
Tugas mandiri struktur dataAsep Jaenudin
 
2_Struktur_kontrol.pdf
2_Struktur_kontrol.pdf2_Struktur_kontrol.pdf
2_Struktur_kontrol.pdfJurnal IT
 
2_Struktur_kontrol.pdf
2_Struktur_kontrol.pdf2_Struktur_kontrol.pdf
2_Struktur_kontrol.pdfJurnal IT
 
MAKALAH ARRAY BAHASA C (DIKI CANDRA) (2).docx
MAKALAH ARRAY BAHASA C (DIKI CANDRA) (2).docxMAKALAH ARRAY BAHASA C (DIKI CANDRA) (2).docx
MAKALAH ARRAY BAHASA C (DIKI CANDRA) (2).docxDikicandra6
 
Laporan praktikum modul vii
Laporan praktikum modul viiLaporan praktikum modul vii
Laporan praktikum modul viiDevi Apriansyah
 
Mi1274 alpro lanjut 5 - perulangan - 1
Mi1274 alpro lanjut   5 - perulangan - 1Mi1274 alpro lanjut   5 - perulangan - 1
Mi1274 alpro lanjut 5 - perulangan - 1Defina Iskandar
 
Struktur data dan algoritma
Struktur data dan algoritmaStruktur data dan algoritma
Struktur data dan algoritmaChusnul Khotimah
 
Kelas dan objek
Kelas  dan objekKelas  dan objek
Kelas dan objekroy naldo
 

Similar to Rangkuman Algoritma Pemerograman 2 (20)

Mi1274 alpro lanjut 6 - perulangan - 2 - for, do-while
Mi1274 alpro lanjut   6 - perulangan - 2 - for, do-whileMi1274 alpro lanjut   6 - perulangan - 2 - for, do-while
Mi1274 alpro lanjut 6 - perulangan - 2 - for, do-while
 
Mengimplementasikan Pemrograman Terstruktur.pdf
Mengimplementasikan Pemrograman Terstruktur.pdfMengimplementasikan Pemrograman Terstruktur.pdf
Mengimplementasikan Pemrograman Terstruktur.pdf
 
Implementasi queue
Implementasi queueImplementasi queue
Implementasi queue
 
Ringkasan materi teori algoritma
Ringkasan materi teori algoritmaRingkasan materi teori algoritma
Ringkasan materi teori algoritma
 
Pengulangan dan Seleksi
Pengulangan dan SeleksiPengulangan dan Seleksi
Pengulangan dan Seleksi
 
struct & stack
struct & stackstruct & stack
struct & stack
 
Looping
LoopingLooping
Looping
 
Mi1274 alpro lanjut 7 - perulangan - 3 - nested
Mi1274 alpro lanjut   7 - perulangan - 3 - nestedMi1274 alpro lanjut   7 - perulangan - 3 - nested
Mi1274 alpro lanjut 7 - perulangan - 3 - nested
 
Pertemuan Ke-5 - Sistem Operasi - Sinkronisasi Proses.pptx
Pertemuan Ke-5 - Sistem Operasi - Sinkronisasi Proses.pptxPertemuan Ke-5 - Sistem Operasi - Sinkronisasi Proses.pptx
Pertemuan Ke-5 - Sistem Operasi - Sinkronisasi Proses.pptx
 
M. ade candra 1610530187
M. ade candra 1610530187M. ade candra 1610530187
M. ade candra 1610530187
 
Tugas mandiri struktur data
Tugas mandiri struktur dataTugas mandiri struktur data
Tugas mandiri struktur data
 
Laporan tugas struktur data
Laporan tugas struktur dataLaporan tugas struktur data
Laporan tugas struktur data
 
2_Struktur_kontrol.pdf
2_Struktur_kontrol.pdf2_Struktur_kontrol.pdf
2_Struktur_kontrol.pdf
 
2_Struktur_kontrol.pdf
2_Struktur_kontrol.pdf2_Struktur_kontrol.pdf
2_Struktur_kontrol.pdf
 
MAKALAH ARRAY BAHASA C (DIKI CANDRA) (2).docx
MAKALAH ARRAY BAHASA C (DIKI CANDRA) (2).docxMAKALAH ARRAY BAHASA C (DIKI CANDRA) (2).docx
MAKALAH ARRAY BAHASA C (DIKI CANDRA) (2).docx
 
Laporan praktikum modul vii
Laporan praktikum modul viiLaporan praktikum modul vii
Laporan praktikum modul vii
 
Mi1274 alpro lanjut 5 - perulangan - 1
Mi1274 alpro lanjut   5 - perulangan - 1Mi1274 alpro lanjut   5 - perulangan - 1
Mi1274 alpro lanjut 5 - perulangan - 1
 
Struktur data dan algoritma
Struktur data dan algoritmaStruktur data dan algoritma
Struktur data dan algoritma
 
Kelas dan objek
Kelas  dan objekKelas  dan objek
Kelas dan objek
 
Sorting insert binary
Sorting insert binarySorting insert binary
Sorting insert binary
 

Rangkuman Algoritma Pemerograman 2

  • 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; } }
  • 17. 14 //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 : 1 2 3 4 5 6 7 8 9 10