prak.kompiler bubble sort ori widyastuti.pdf

Upload: turahyo

Post on 06-Oct-2015

35 views

Category:

Documents


0 download

DESCRIPTION

praktikum

TRANSCRIPT

  • 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