prak.kompiler bubble susi sirait
DESCRIPTION
praktikTRANSCRIPT
LAPORAN PRAKTIKUM
KONSTRUKSI KOMPILER
DI SUSUN OLEH :
NAMA : SUSI ELPRIDA W SIRAIT
NIM : 201012083
Waktu percobaan : November 2013
SJK406
Laboratorium Teknik Elektro dan Informatika
Sekolah Tinggi Teknologi Bontang
2013
KATA PENGANTAR
Puji dan syukur saya panjatkan kehadirat Tuhan Yang Maha Esa. Karena atas berkat
rahmat-Nya saya dapat menyelesaikan praktikum serta laporan Sistem Jaringan Komputr.
Adapun isi dari laporan ini adalah kumpulan selama praktikum berlangsung. Laporan ini
merupakan syarat untuk mengontrak mata kuliah Sistem Jaringan Komputer.
Saya juga tidak lupa untuk mengucapkan banyak terima kasih kepada Dosen serta
staf pengajar Mata kuliah Sistem Jaringan Komputer yang selalu membimbing dan
mengajari saya dalam melaksanakan praktikum dan dalam menyusun laporan ini. Serta
semua pihak yang membantu saya dalam hal penyusunan laporan ini. Laporan ini masih
sangat jauh dari kesempurnaan, oleh karena itu kritik serta saran yang membangun masih
saya harapkan untuk penyempurnaan laporan akhir ini. Sebagai manusia biasa saya merasa
memiliki banyak kesalahan, oleh karena itu saya mohon maaf sebesar besarnya untuk
kelancaran penyelesaian laporan ini.
Atas perhatian dari semua pihak yang membantu penulisan ini saya ucapkan
terimakasih. Semoga laporan ini dapat dipergunakan seperlunya.
Bontang, 25 November 2013
SUSI ELPRIDA W SIRAIT
i
DAFTAR ISI
KATA PENGANTAR ................................................................................ i
DAFTAR ISI ................................................................................ ii
DAFTAR GAMBAR ................................................................................ iii
BAB I PENDAHULUAN
1.1 Latar Belakang ................................................................................ 1
1.2 Tujuan ................................................................................ 2
BAB II DASAR TEORI
2.1 Definisi Bubble Sort ……….…................................................................ 3
2.2 Penegertian / Konsep Bubble Sort ........….…................................................................ 3
2.3 Kelebihan dan Kekurangan Metode Bubble Sort .............................................................. 3
BAB III METODOLOGI
3.1 Alat Dan Bahan ................................................................................ 5
BAB IV ANALISIS DAN HASIL
4.1 Hasil Praktikum ................................................................................. 6
4.2 Analisis Program ................................................................................. 10
BAB V KESIMPULAN ................................................................................ 11
DAFTAR PUSTAKA ................................................................................ 12
ii
BAB 1
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.
Sejarah perkembangan suatu Compiler sudah dimulai sejak lama, yaitu pada saat mulai
ditemukannya komputer pada awal tahun 1950. Sejak saat itu teknik dan cara pembentukan
suatu Compiler telah berkembang dengan sangat pesat dan pembentukkan suatu Compiler
dapat dilakukan makin mudah. Demikian pula program bantu (tools) untuk membuat suatu
Compiler sudah dapat diperoleh sehingga pembentukan suatu Compiler dapat dilakukan
dengan cepat.
Biasanya, server berjalan pada komputer tertentu dan memiliki sebuah socket yang
terikat pada nomor port tertentu. Server hanya menunggu, mendengarkan socket untuk
seorang klien untuk membuat permintaan sambungan. Di sisi klien: klien mengetahui nama
host dari mesin server yang sedang berjalan dan nomor port di mana server mendengarkan.
Untuk membuat permintaan sambungan, klien mencoba untuk bertemu dengan server pada
mesin server dan port. Klien juga perlu mengidentifikasi dirinya ke server sehingga
mengikat ke nomor port lokal yang akan digunakan selama hubungan ini. Hal ini biasanya
diberikan oleh sistem.
Jika semuanya berjalan dengan baik, server menerima koneksi. Setelah diterima, server
mendapatkan soket baru terikat port lokal yang sama dan juga memiliki titik akhir yang di
atur ke alamat dan port dari klien.
1
Diperlukan soket baru sehingga dapat terus mendengarkan permintaan sambungan
socket sementara mengurus kebutuhan klien yang terhubung.
Di sisi client, jika koneksi diterima, socket berhasil dibuat dan klien dapat
menggunakan soket untuk berkomunikasi dengan server. Klien dan server dapat
berkomunikasi dengan menulis atau membaca dari soket. Pada tugas kali ini yang
membahas Bubble Sort, antara lain :
a. Bubble dalam bentuk algoritma adalah proses mengurutkan, menyusun /
memindahkan posisi elemen – elemen / data dengan tata urut tertentu pada array.
b. Jenis tampilan berupa Ascending / pross menaik dan Discending / pross menurun.
Ascending
Ex : A-Z, 0-9
Discending
Ex : Z-A, 9-0
c. Bubble Sort dalam bentuk flowchart
d. Bubble Sort dalam bentuk program JAVA.
1.2 Tujuan
Tujuan dalam praktikum ini adalah untuk mengetahui fungsi-fungsi struktur
compiler pada teknik kompilasi :
2. Mahasiswa memahami konsep aplikasi client server di jaringan.
3. M ah as i s wa m em ah am i ko ns ep p em p ro gr am an s o ck e t .
4. Mahasiswa memahami jenis – jenis socket programming.
5. Mahasiswa mampu membangun program chatting sederhan.
2
BAB II
DASAR TEORI
2.1 Definisi Bubble Sort
Teknik sort yang berkerja menggunakan prinsip gelmbung (bubble) udara yang akan
bergerak naik keatas secara satu per-satu.
Prinsip kerja dari Bubbl Sort adalah :
1. Pengecekan mulai dari data kesatu sampai data ke-n.
2. Bandingkan data ke – n dengan data sebelumnya (n-1)
3. Jika lebih kecil maka pindahkan bilangan trsebut dngan bilangan yang ada
didepannya (sebelumnya) satu per-satu ( n-1, n-2, n-3,…dts)
4. Jika lebih besar maka tidak terjadi pemindahan.
5. Ulang langkah 2 dan 3 s/d sort optimal.
2.2 Pengertian atau Konsep Bubble Sort
Metode pengurangan gelembung (Bubbl Sort) diinspirasikan oleh gelmbung sabun yang
berada dipermukaan air, maka gembung sabun selalu terapung keatas permukaan. Prinsip
di atas dipakai pada pengurutan gelembung.
Bubble Sort (metode gelembung) adalah metode atau algoritma pngurutan dengan cara
melakukan penukaran data dengan tepat disebelahnya secara terus menerus sampai bias
dipastikan dalam satu iterasi tertentu tidak ada lagi perubahan. Jika tidak ada perubahan
berarti data sudah terurut. Disebut pengurutan gelembung karena masing-masing kunci
akan dngan lambat menggelembung keposisinya yang tepat.
Contoh :
Data dipilih secara acak : 14 8 10 12 2 6 4
Ascending (urut naik) : 2 4 6 8 10 12 14
Descending (urut turun) : 14 12 10 8 6 4 2
2.3 Kelebihan dan Kelemahan Metode Bubbl Sort
Kelebihan :
a. Metode Bubble Sort merupakan yang paling simple
b. Metod Bubble Sort muda dipahami algoritmanya
3
Kelemahan
Meskipun simpl metodeBubble sort merupakan metod pengurutan yang paling
tidak efisien. Kelemahan Bubbl Sort adalah pada sat mengurutkan data yang
sangat besar akan mengalami kelambatan yang luar biasa, atau dengan kata lain
kinerja memburuk cukup signifikan ketika data yang diolah jika data cukup
banyak. Kelemahan ini adalah jumlah pengulangan akan tetap sama jumlahnya
walaupun data yang sesungguhnya sudah cukup terurut. Hal ini disebabkan
setiap data dibandingkan dengan setiap data yang lain untuk mnntukan
posisinya.
4
BAB III
METEDOLOGI
3.1 Alat dan Bahan
Peralatan Yang Dibutuhkan :
1. Beberapa komputer yang berfungsi sebagai server.
2. Beberapa komputer yang berfungsi sebagai client
5
BAB VI
HASIL DAN ANALISIS
4.1 Analisi
Analisis Bubble Sort
Bubble Sort adalah salah satu algoritma untuk sorting data, atau kata lainnya
mengurutkan data dari yang terbesar ke yang terkecil atau sebaliknya (Ascending atau
Descending).
Bubble sort (metode gelembung) adalah metode/algoritma pengurutan dengan dengan cara
melakukan penukaran data dengan tepat disebelahnya secara terus menerus sampai bisa
dipastikan dalam satu iterasi tertentu tidak ada lagi perubahan. Jika tidak ada perubahan
berarti data sudah terurut. Disebut pengurutan gelembung karena masing-masing kunci
akan dengan lambat menggelembung ke posisinya yang tepat.
Metode pengurutan gelembung (Bubble Sort) diinspirasikan oleh gelembung sabun
yang berada dipermukaan air. Karena berat jenis gelembung sabun lebih ringan daripada
berat jenis air, maka gelembung sabun selalu terapung ke atas permukaan. Prinsip di atas
dipakai pada pengurutan gelembung.
Algoritma bubble sort adalah salah satu algoritma pengurutan yang paling simple, baik
dalam hal pengertian maupun penerapannya. Ide dari algoritma ini adalah mengulang
proses pembandingan antara tiap-tiap elemen
array dan menukarnya apabila urutannya salah. Pembandingan elemen-elemen ini akan
terus diulang hingga tidak perlu dilakukan penukaran lagi. Algoritma
ini termasuk dalam golongan algoritma comparison sort, karena menggunakan
perbandingan dalam operasi antar elemennya. Berikut ini adalah gambaran dari algoritma
bubble sort. Misalkan kita mempunyai sebuah array dengan. Elemen-elemen “4 2 5 3 9”.
Proses yang akan terjadi apabila digunakan algoritma bubblesort adalah sebagai berikut.
6
Pass pertama
(4 2 5 3 9) menjadi (2 4 5 3 9)
(2 4 5 3 9) menjadi (2 4 5 3 9)
(2 4 5 3 9) menjadi (2 4 3 5 9)
(2 4 3 5 9) menjadi (2 4 3 5 9)
Pass kedua
(2 4 3 5 9) menjadi (2 4 3 5 9)
(2 4 3 5 9) menjadi (2 3 4 5 9)
(2 3 4 5 9) menjadi (2 3 4 5 9)
(2 3 4 5 9) menjadi (2 3 4 5 9)
Pass ketiga
(2 3 4 5 9) menjadi (2 3 4 5 9)
(2 3 4 5 9) menjadi (2 3 4 5 9)
(2 3 4 5 9) menjadi (2 3 4 5 9)
(2 3 4 5 9) menjadi (2 3 4 5 9)
Dapat dilihat pada proses di atas, sebenarnya pada pass kedua, langkah kedua, array
telah terurut. Namun algoritma tetap dilanjutkan hingga pass kedua berakhir. Pass ketiga
dilakukan karena definisi terurut dalam algoritma bubblesort adalah tidak ada satupun
penukaran pada suatu pass, sehingga pass ketiga dibutuhkan untuk memverifikasi keurutan
array tersebut.
A. Source Code Bubble Sort
package bubble_sort;
import java.util.Random;
public class Main {
public Main(){
}
private int [] data;//membuat data array
7
//membuat generator untuk mengisi array secara acak
private static Random generator = new Random();
public Main(int size){
data = new int [size];//ukuran array
for(int i = 0; i < size; i++)
data[i]=10 + generator.nextInt(90); }
//Tahap sorting / pengurutan
public void sort()
{for(int i=0; i<data.length-1; i++)
{for(int index=0; index<data.length-1-i; index++){
if(data[index] > data[index+1]) //pengecekan nilai data
{ change (index, index+1);//penukaran position di bubble sort
printPass(index, index+1, data.length);//menampilkan data setelah
penukaran posisi
}}
}}
public void change(int first, int second)
{int temporary = data[first];
data[first] = data[second];
data[second] = temporary; }
public void printPass(int pass, int index, int length)
{ for (int i=0; i<pass; i++)//loop data array
System.out.print(data[i]+" ");//menampilkan array
if (pass==index-1)
{ System.out.print(data[pass]+"* ");//menandai array yg dipindahkan
System.out.print(data[index]+"* "); }//menandai array yg dipindahkan
for ( int j = index+1;j<data.length; j++ )//looping data yg belum di sorting
{System.out.print( data[ j ] + " " );}//menampilkan array yang belum
disorting
System.out.println("\n");}// Membuat baris baru
public String toString()
{
StringBuffer temporary=new StringBuffer();
for (int element:data)
temporary.append(element + " ");
temporary.append("\n");
return temporary.toString();
}
public static void main(String[] args) {
8
Main sortArray=new Main(7);//menginisialisasikan jumlah data dalam array
System.out.println("DATA ARRAY SEBELUM DISORTING:");
System.out.println(sortArray);//menampilkan data sebelum sorting
sortArray.sort();//menampilkan tahap pengurutan(sorting)
System.out.println("DATA ARRAY SETELAH DISORTING:");
System.out.println(sortArray);//menampilkan hasil sorting
}
}
B. Source Kode Matriks
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package aplikasichat;
/**
*
* @author ACER
*/
public class Main {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
}
}
9
4.2 Hasil Program
RUN PROGRAM BUBBLE SORT
RUN PROGRAM MATRIKS
10
BAB V
KESIMPULAN
Algoritma Bubbl Sort adalah algoritma yang simpel dan mudah diplajari, selain itu
memiliki devinisi terurut yang jelas dalam algoritmanya. Algoritma ini juga mmiliki cirri
khas, yaitu “kura-kura dan kelinci”. Akan tetapi, algoritma Bubbl Sort memiliki kelemahan,
yaitu kompleksitas algoritma pada saat mengurutkan data yang sangat bsar akan
mengalami kelambatan luar biasa, sehingga menjadikan algoritma ini tidak efektif dalam
pengurutan.
11
DAFTAR PUSTAKA
1. http://rezademon.blogspot.com/2012/11/tugas-pemrograman-jaringan.html
(16/11/2013 09:30 WITA)
2. http://www.sdmlink.com/page/artikel/?act/detil/aid/42
(16/11/2013 10:00 WITA)
3. http://cheatlinknote.blogspot.com/2011/02/sharemetode-bubble-sort-dan-merge-
sort.html (16/11/2013 10.30 WITA )
12