prak.kompiler bubble sort ori widyastuti.pdf
DESCRIPTION
praktikumTRANSCRIPT
-
LAPORAN PRAKTIKUM
KONSTRUKSI KOMPILER
Di susun oleh :
Nama : Ori Widyastuti
NIM : 201012072
Tanggal : 07 November 2013
Mata Kuliah : Konstruksi Kompiler ( KOM403 )
Laboratorium Teknik Elektro dan Informatika
Sekolah Tinggi Teknologi Bontang
2013
-
KATA PENGANTAR
Alhamdulillah segala puji bagi Allah yang telah memberikan limpahan dan
rahmatnya kepada kita semua, terutama kepada penulis sehingga penulis dapat
menyelesaikan laporan praktikum ini. Penyelesaian laporan ini tidak terlepas dari
bantuan berbagai pihak. Oleh karna itu dengan kerendahan hati saya mengucapkan
terima kasih kepada dosen pengampu mata kuliah sistem jaringan komputer yang telah
banyak memberi saran dan masukan tentang tugas maupun laporan. Kedua orang tua
yang mendukung baik secara moril maupun materil. Teman-teman yang telah memberi
saran maupun semangat dalam menyelesaikan laporan ini.
Penulis menyadari masih banyak kekurangan dalam laporan yang dibuat ini,
untuk itu penulis mengharapkan kritik dan saran dari teman-teman untuk
menyempurnakan makalah ini.
Bontang , 25 November 2013
Ori Widyastuti
ii
-
DAFTAR ISI
HALAMAN JUDUL i
KATA PENGANTAR ... ii
DAFTAR ISI . iii
DAFTAR GAMBAR v
BAB I PENDAHULUN
1.1 Latar Belakang .. 1
1.2 Tujuan 1
BAB II PEMBAHASAN
2.1 Pengertian Sorting 2
2.2 Metode Sorting 3
2.2.1 Bubble Sort 3
2.2.2 Selection Sort 3
2.2.3 Insertion Sort 4
2.2.4 Marge Sort .. 4
2.2.5 Quick Sort 4
2.3 Kelebihan Dan Kekurangan Bubble Sort . 5
BAB III METODELOGI
3.1 Alat Praktikum 6
iii
-
BAB IV ANALISA DAN HASIL
4.1 Analisa . 8
4.1.1 Bubble Sort Praktikum 1 . 9
4.1.2 Analisa Praktikum 2 11
4.2 Hasil 12
BAB V KESIMPULAN
5.1 Kesimpulan ..... 14
DAFTAR PUSTAKA . 15
iv
-
DAFTAR GAMBAR
Gambar 3.1.1 Layar utama aplikasi netbeans .. 6
Gambar 3.1.2 Tampilan awal netbeans 6
Gambar 3.1.3 Tampilan choose project ... 7
Gambar 3.1.4 Tampilan pemberian project name 7
Gambar 3.1.5 Tampilan pengisian class name . 7
Gambar 4.2.1 Hasil running praktikum 1 12
Gambar 4.2.1 Hasil running praktikum 2 .. 13
v
-
BAB I
PENDAHULUAN
1.1 Latar Belakang
Teknik Kompilasi merupakan teknik untuk melakukan pembacaan suatu source
program yang ditulis dalam bahasa sumber, misalnya Pascal, kemudian diterjemahkan
ke dalam suatu bahasa lain yang disebut bahasa sasaran atau bentuk yang dapat
dieksekusi secara langsung dari sistem operasi yang tersedia dalam suatu komputer.
Teknik tersebut diimplementasikan dalam suatu perangkat lunak (software) yang
disebut Compiler.
Istilah Compiler muncul karena dulu ada program yang menggunakan subrutin-
subrutin atau pustaka-pustaka untuk keperluan yang sangat khusus yang dikumpulkan
menjadi satu sehingga diistilahkan compiled.Proses sorting adalah proses yang sangat
penting dalam struktur data, terlebih untuk pengurutan data yang bertipe numerik
ataupun karakter.metode sorting yang digunakan adalah bubble sort yaitu metode atau
algoritma pengurutan dengan cara melakukan penukaran data dengan tempat
disebelahnya jika data sebelum lebih besar dari pada data sesudahnya secara terus
menerus sampai bisa dipastikan dalam satu iterasi tertentu tidak ada lagi perubahan,
atau telah terurut dengan benar.
1.2 Tujuan
1. untuk mengetahui fungsi-fungsi struktur compiler pada teknik kompilasi.
2. Mahasiswa memiliki pemahaman tentang algoritma pengurutan serta penerapannya
dalam program aplikasi serta memahami cara kerja bubble sort.
3. Mahasiswa memahami langkah kerja bubble sort dalam java.
1
-
BAB II
DASAR TEORI
2.1 Pengertian Sorting
Sorting adalah sebuah metode untuk pengurutan data, misalnya dari data yang ke
data yang terkecil. Dengan cara program yang dibuat harus dapat membandingkan antar
data yang di inputkan.Artinya jika ada deretan data, maka data yang pertama akan
membandingkan dengan data yang kedua. Jika data yang pertama lebih besar dari pada
data yang kedua maka data yang pertama akan bertukar posisi dengan data yang kedua,
begitu seterusnya sampai benar-benar data terurut dari yang terbesar hingga yang
terkecil. Pada umumnya ada 2 macam pengurutan, yaitu:
Pengurutan secara ascending ( urut naik)
Ascending (urut naik) merupakan pengurutan dari angka yang nilainya lebih
kecil kemudian menuju ke nilainya yang lebih besar.
Pengurutan secara descending (urut turun)
Descending adalah sebaliknya, yaitu pengurutan dari nilainya yang lebih besar
kemudian menuju ke nilainya yang lebih kecil Pengurutan secara descending (
urut turun ). Untuk melakukan proses pengurutan tersebut dapat digunakan
berbagai macam cara/metode.Contoh :
Data : Array [1..6] of Byte = (22, 10, 15, 3, 8, 2);
Data Acak : 22 10 15 3 8 2
Terurut Ascending : 2 3 8 10 15 22
Terurut Descending : 22 15 10 8 3 2
.
2
-
2.2 Metode Sorting
Metode-metode ini menggunakan caranya sendiri untuk membandingkan,
memeriksa dan menukar posisi data. Namun tidak semua metode sorting ini efektif.
Karena metode sorting yang paling efektif adalah ketika metode tersebut dapat
melakukan pengurutan data dengan cepat dan tidak memerlukan banyak
memori.Berikut ini merupakan metode sorting :
2.2.1 Bubble Sort
Bubble sort (metode gelembung) adalah metode atau algoritma pengurutan dengan
cara melakukan penukaran data dengan tempat disebelahnya jika data sebelum lebih
besar dari pada data sesudahnya secara terus menerus sampai bisa dipastikan dalam satu
iterasi tertentu tidak ada lagi perubahan, atau telah terurut dengan benar. Jika tidak ada
perubahan berarti data sudah terurut. Disebut pengurutan gelembung karena masing-
masing kunci atau data akan dengan lambat menggelembung atau membandingan data
ke posisinya yang tepat.Metode ini mudah dipahami dan diprogram, tetapi bila
dibandingkan dengan metode lain yang kita pelajari, metode ini merupakan metode
yang paling tidak efisien karena memiliki banyak pertukara sehingga memerlukan
pengalokasian memori yang besar untuk menjalankan metode ini.
2.2.2 Selection Sort
Selection Sort berbeda dengan Bubble sort. Selection Sort pada dasarnya memilih
data yang akan diurutkan menjadi dua bagian, yaitu bagaian yang sudah diurutkan dan
bagian yang belum di urutkan.Langkah pertama dicari data terkecil dari data pertama
sampai data terakhir. Kemudian data terkecil ditukar dengan data pertama. Dengan
demikian, data pertama sekarang mempunyai nilai paling kecil dibanding data yang
lain. Langkah kedua, data terkecil kita cari mulai dari data kedua sampai terakhir. Data
terkecil yang kita peroleh ditukar dengan data kedua dan demikian seterusnya sampai
semua elemen dalam keadaan terurutkan. Metode ini lebih efektif dari pada metode
bubble karena tidak memerlukan banyak pertukaran dan pengalokasian memori.
2.2.3 Insertion Sort
Algoritma insertion sort pada dasarnya memilah data yang akan diurutkan menjadi
3
-
dua bagian, yang belum diurutkan (meja pertama), dan yang telah diurutkan (meja
kedua). Elemen pertama yang diambil dari bagian array yang belum diurutkan dan
kemudian diletakkan pada posisinya sesuai dengan bagian lain dari array yang telah
diurutkan. langkah ini dilakukan secara berulang hingga tidak ada lagi elemen yang
tersisa pada bagian array yang belum diurutkan. Pola dari Insertion Sort menggurutkan
n atau 2 elemen dari terdepan dst.
2.2.4 Marge Sort
Pengurutan algoritma Merge Sort membuat pengurutan dengan membagi 2 dan
menggabungkannya. Metoda ini cukup efisien untuk diterapkan. Sama dengan Quick
Sort, algoritma Merge Sort adalah dasar pembagian dan penyelesaiannya. Pertama
urutan atau elemen data awal diurutkan dengan membaginya menjadi 2 bagian
(Devide). Setengahnya diurutkan dengan bebas (Conquer). Kemudian 2 bagian itu
digabungkan dengan cara diurut sesuai dengan urutan (Combine).Devide, yakni
memilih masalah menjadi sub-masalah.Conquer, yakni menyelesaikan sub-masalah
tersebut secara rekursi.Kombinasi/Penggabungan, menggabungkan solusi dari sub-
masalah.
2.2.5 Quick Sort
Pengerian Quick Sort adalah algoritma yang dijalankan sebagai akibat dari terlalu
banyaknyadaftar yang diurutkan, dengan menghasilkan lebih banyak daftar yang
diurutkan sebagai output. Algoritma merge ini disesuaikan untuk mesin drive tape.
Penggunaannya dalam akses memori acak besar yang terkait telah menurun, karena
banyak aplikasi algoritma merge yang mempunyai alternatif lebih cepat ketika kamu
memiliki akses memori acak yang menjaga semua data. Hal ini disebabkan algoritma ini
membutuhkan setidaknya ruang atau memori dua kali lebih besar karena dilakukan
secara rekursif dan memakai dua tabel.
2.3 Kelebihan Dan Kelemahan Bubble Sort
kelebihan dari algoritma Bubble Sort adalah Algoritma yang simple serta mudah
untuk diubah menjadi kode, definisi terurut terdapat dengan jelas dalam algoritma dan
cocok untuk pengurutan data dengan elemen kecil telah terurut. Sedangkan kelemahan
4
-
bubble sort adalah tidak efektif dalam pengurutan data berskala besar serta
langkah pengurutan yang terlalu panjang. Kekurangan terbesar dari Bubble Sort adalah
kompleksitas algoritma yang terlalu besar, baik dalam average case maupun worst case,
yaitu O(n2), sehingga seringkali disebut sebagai algoritma primitif, brute-force, maupun
algoritma naf. Untuk 1000 buah data misalnya, maka akan terjadi proses tidak lebih
dari satu juta proses perbandingan. Kompleksitas yang besar ini juga seringkali
membuat algoritma Bubble Sort sebagai the general bad algorithm.
5
-
BAB III
METODOLOGI
3.1 Alat Praktikum
Langkah pertama dalam sebagian besar proyek-proyek pengembangan perangkat
lunak formal adalah analisis persyaratan, diikuti dengan pengujian untuk menentukan
model nilai, pelaksanaan, dan kegagalan penghapusan (debug). Terdapat banyak
pendekatan yang berbeda untuk masing-masing tugas.Dalam praktikum ini digunakan
metode bubble sort.Alat yang digunakan adalah:
Leptop/Netbook
Java Aplication NetBeans
Materi Bubble sort
NetBeans adalah Integrated Development Environment (IDE) berbasiskan Java
dari Sun Microsystems yang berjalan di atas Swing.Berikut langkah-langkah yang di
lakukan dalam melaksanakan praktikum :
1. Buka Aplikasi NetBeans
Gambar 3.1.1. layar utama aplikasi netbeans
Gambar 3.1.2. tampilan awal netbeans
6
-
2. klik file pilih New projects pilih Java Java Application klik next
Gambar 3.1.3. tampilan choose project
3. kemudian isikan project class dengan nama bublesort kemudian klik finish
Gambar 3.1.4. tampilan pemberian project name
4. Langkah berikutnya adalah klik kanan pada project praktikumjavaa pilih new java class
,isikan class name dengan bublesort
Gambar 3.1.5. tampilan pengisian class name
7
-
5. ketikkan source code yang akan di masukan atau ditulis.
6. Jika sudah klik kanan lagi pada project praktikumjava pilih new java class,isikan dengan
nama BubbleSort.
7. ketikan source code yang akan dimasukkan.
8
-
BAB IV
ANALISA DAN HASIL
4.1 Analisa
Tujuan dari analisis algoritma adalah untuk mengetahui efisiensi dari
algoritma. Dalam hal ini dilakukan pembandingan antara dua atau lebih algoritma
pengurutan.Tahap analisis adalah melakukan pengecekan program untuk memastikan
bahwa program telah benar secara logika maupun sintak (tahap tracing atau debugging).
Tahap selanjutnya yaitu menjalankan program untuk mengetahui running time atau
waktu komputasi dalam hal ini termasuk jumlah langkah. Data uji yang digunakan
adalah data yang tidak terurut atau data random, terurut membesar dan terurut mengecil.
Berikut ini kita akan mencoba membuat sebuah program pengurutan data atau Sorting
dengan metode Bubble Sort. kita akan memasukan 8 data yang int Data[8]={
12,9,4,99,120,1,3,10}; yang tidak berurutan.
4.1.1 Bubble Sort Praktikum 1
package praktikumjava;
import java.io.*;
public class bublesort {
public static void main(String a[]){
int i;
int array[]={12,9,4,99,120,1,3,10};
System.out.println("Values Before the sort:\n");
for(i=0;i
-
System.out.print( array[i]+" ");
System.out.println();
bublesort(array,array.length);
System.out.print("Values after the sort:\n");
for(i=0;i
-
}
}
4.1.2 Analisa praktikum 2
package praktikumjava;
import java.util.Scanner;
public class BubbleSort {
public static void main(String[]args){
int n, c, d, swap;
Scanner in=new Scanner(System.in);
System.out.println("input number of integers to sort");
n =in.nextInt();
int array[]=new int[n];
System.out.println("Enter "+n+"integers");
for(c=0;c array[d+1]) /* For descending order use < */
{
swap = array[d];
array[d]=array[d+1];
array[d+1]=swap;
}
11
-
}
}
System.out.println("Sorted list of number");
for (c = 0; c < n; c++)
System.out.println(array[c]);
}
}
}
4.2 Hasil
Gambar 4.2.1. hasil running praktikum 1
12
-
Gambar 4.2.2. hasil running praktikum 2
13
-
BAB V
KESIMPULAN
5.1 Kesimpulan
Buble Sort merupakan metode sangat sederhana namun, yaitu dapat
mengurutkan data yang sangat besar akan mengalami kekacuan, atau kinerja nya kurang
baik. Buble sort (metode gelembung) adalah metode atau algoritma pengurutan dengan
cara melakukan penukaran data dengan tempat disebelahnya jika data sebelum lebih
besar dari pada data sesudahnya secara terus menerus sampai bisa dipastikan dalam satu
iterasi tertentu tidak ada lagi perubahan, atau telah terurut dengan benar. Jika tidak ada
perubahan berarti data sudah terurut. Disebut pengurutan gelembung karena masing-
masing kunci atau data akan dengan lambat menggelembung atau membandingan data
ke posisinya yang tepat. Metode ini mudah dipahami dan diprogram, tetapi bila
dibandingkan dengan metode lain yang kita pelajari, metode ini merupakan metode
yang paling tidak efisien karena memiliki banyak pertukara sehingga memerlukan
pengalokasian memori yang besar untuk menjalankan metode ini.
14
-
DAFTAR PUSTAKA
1. Http://www.firmanwav.com/2013/04/contoh-makalah.html
2. Abdul,rahman. 2010. Materi bubble sort, (online),
(http://abdulrahman.wikipedia.org/wiki/Materi bubble sort, diakses tanggal 22
november 2013).
3. Firdaus48,akmal.2012. Pengurutan data bubble sort,(online),
(http://firdaus48akmal.blogspot.com/2012/12/pengurutan-data-bubble-sort.html,
diakses tanggal 23 November 2013).
15