Pengikut

Rabu, 08 April 2015



Tugas 1
STRUKTUR DATA


UNIDAYAN terbaru.jpg
 









oleh:
NAMA                  : RAHMAD SANTOSA
NPM                     : 14-650-053
KELAS                  : B


UNIVERSITAS DAYANU IKHSANUDDIN
FAKULTAS TEKNIK
PROGRAM STUDI TEKNIK INFORMATIKA
BAUBAU
2015




Tugas 1
Struktur data

Soal :
Buat rangkuman yg terdiri dari materi : apa itu struktur data, pemrograman java, contoh pemrograman Java dan daftar pustaka.
Catatan :
Materi boleh dicari dari internet dan tdk boleh sama setiap mahasiswa.
Rangkuman minimal 5 halaman spasi 1,5 simpan dalam format pdf dan dikirimkan lewat email : arwan97@yahoo.com dgn format penulisan file: STD1-nama-nim-kelas.
Paling lambat dikirimkan hari senin, 6 april 2015 pukul 19.00 wita.
























A.    Struktur Data
1.      Pengertian Struktur Data
Struktur data adalah cara menyimpan atau merepresentasikan data didalam komputer agar bisa dipakai secara efisien.Sedangkan data adalah representasi dari fakta dunia nyata. Fakta atau keterangan tentang kenyataan yang disimpan, direkam atau direpresentasikan dalam bentuk tulisan, suara, gambar, sinyal atau simbol.
Secara garis besar type data dapat dikategorikan menjadi:
Type data sederhana.
·         Type data sederhana tunggal, misalnya Integer, real, boolean dan karakter.
·         Type data sederhana majemuk, misalnyaString
Struktur Data, meliputi:
·         Struktur data sederhana, misalnya array dan record.
·         Struktur data majemuk, yang terdiri dari:
Linier : Stack, Queue, sertaList dan Multilist
Non Linier : Pohon Biner dan Graph

Pemakaian struktur data yang tepat didalam proses pemrograman akan menghasilkan algoritma yang lebih jelas dan tepat, sehingga menjadikan program secara keseluruhan lebih efisien dan sederhana.
Struktur data yang standar yang biasanya digunakan dibidang informatika adalah:
* List linier (Linked List) dan variasinya
* Multilist
* Stack (Tumpukan)
* Queue (Antrian)
* Tree ( Pohon)
* Graph ( Graf )

Dalam bahasa pemrograman, struktur data seringkali ditampakkan secaa fisik dalam bentuk tabel (biasanya pada bahasa pemrograman/pengelolaan database berbasis visual), namun pada beberapa bahasa pemrograman yang tidak berbasis visual, strutkur data lebih berupa pengelolaan data dengan aturan-aturan tertentu.


 Beberapa konsep pengelolaan data sederhana adalah sebagai berikut :
1.    Array
Array adalah kumpulan data bertipe sama dan menggunakan nama yang sama pula. Antara satu variabel dengan variabel lain di dalam array dibedakan berdasarkan “subscript”. Subscript berupa bilangan di dalam kurung siku [...]. Melalui subscript inilah masing-masing elemen dapat diakses.

2.    Array Berdimensi Satu
Array berdimensi satu adalah sekumpulan data/elemen yang disimpan secara berurutan dalam suatu tempat/subscript yang terdiri atas 1 (satu) unsur. Sejumlah data suhu disimpan dalam nama suhu terdiri dari Suhu 1 = 25°, Suhu 2 = 23,5°, Suhu 3 = 21°, Suhu 4 = 26° dan Suhu 5 = 35° Pendefinisian array meliputi nama array, tipe elemen array dan jumlah elemen array.
Contoh :
Float nilai_mhs [12];
Keterangan :
1. tipe array : float (bilangan pecah)
2. nama array : nilai_mhs
3. jumlah elemen array : 12 data, yaitu nilai_mhs[1], nilai_mhs[2],…., nilai_mhs[12].

Nilai elemen array dapat dimasukkan melalui keyboard atau dimasukkan saat didefinisikan pada program.

3.    Array Berdimensi Dua
Array berdimensi satu adalah sekumpulan data/elemen yang disimpan secara berurutan dalam suatu tempat/subscript yang terdiri atas 2 (dua) unsur, yaitu baris dan kolom. Array berdimensi dua berarti meiliki dua dimensi data. Contoh sederhana adalah data yang tertulis dalam tabel berikuit ini :
Jika dibuat programnya adalah sebagai berikut :
int data_mobil [3] [4];
Keterangan :
1.baris 1 – baris 3 : menunjukkan merek mobil.
2. kolom 1 – kolom 4 : menunjukkan tahun penjualan
3. tipe array : integer (bilangan bulat).
4. nama array : data_mobil.
5. jumlah elemen array : [3,4]
6. [2,3] dibaca : penjualan mobil merek Daihatsu pada tahun 1994 adalah 70 unit.

4.     Array Sebagai Argumen Fungsi
Array juga dapat berkedudukan sebagi parameter di dalam fungsi. Contoh pendefinisian :
const int MAKS = 5 Int data[MAKS];

5.    Fungsi
Fungsi adalah bagian program yang berisi sejumlah pernyataan tertentu yang dapat dipanggil berulang kali. Tujuan pembuatan fungsi adalah :
1. Memudahkan dalam mengembangkan program.
2. Menghemat ukuran program.
Beberapa hal yang harus diperhatikan dalam pembuatan fungsi adalah :
1.  Fungsi menerima masukan yang disebut argumen atau parameter.
2.  Masukan diproses oleh fungsi dan memberikan hasil akhir yang disebut nilai balik (return value).
3. Agar fungsi dapat dipanggil, fungsi harus dideklarasikan.

6.    Prototipe
Deklarasi fungsi disebut prototype fungsi yang berupa :
1. nama fungsi
2. tipe nilai balik fungsi
3. jumlah dan tipe argument
4. serta diakhiri dengan titik koma (;).
Contoh :
·         long kuadrat(long l)
dimana menyatakan kuadrat() adalah nama fungsi, long adalah tipe argument, long (kedua) menunjukkan nilai balik yang bertipe long
·         void garis()
menyatakan fungsi tanpa nilai balik Pernyataan return digunakan untuk memberikan nilai balik fungsi. Dalam fungsi diatas berarti nilai kuadrat dari argument. Fungsi dengan pernyataan void tidak memberikan nilai balik. Biasanya tidak diakhiri pernyataan return. Jenis variabel dalam kaitannya dengan lingkup fungsi terdapat tiga macam yaitu : variabel otomatis, variabel eksternal dan variabel statis.

1.      Variabel Lokal (otomatis) :
Variabel yang didefinisikan di dalam fungsi disebut variabel local. Variabel ini hanya dikenal dalam fungsi tersebut.
2.      Variabel Global (Eksternal) :
Variabel yang didefinisikan di bagian luar manapun dari fungsi dan dikenal oleh semua fungsi. Disebut juga variabel global, karena dikenal de semua fungsi.
3.      Variabel Statis :
Baik variabel local maupun global dapat berfungsi sebagai variabel statis dengan cara menambahkan pada kedua variabel tersebtu pernyatan static. Kemudian pada kedua variabel tersebtu berlaku hal sebagai berikut :
1.      Jika variabel local berdiri sebagai variabel statis maka variabel tetap hanya dapat diakses pada fungsi yang mendefinisikannya, variabel tidak hilang saat eksekusi fungsi berakhir. Nilainya akan tetap dipertahankan, sehingga akan dikenali pada pemanggilan fungsi untuk tahap berikutnya.
2.      Inisialisasi oleh pemrogram akan dilakukan sekali saja selama program dijalankan. Jika tidak ada inisialisasi secara eksplisit, variabel diisi dengan nol. 3.
3.      Jika variabel eksternal dijadikan sebagai variabel statis, variabel ini dapat diakses oleh semua file yang didefinisikan pada file yang sama dengan variabel eksternal tersebut .








B.      PEMOGRAMAN JAVA

1.       Pengertian Java
Java adalah bahasa pemrograman yang multi platform dan multi device. Sekali anda menuliskan sebuah program dengan menggunakan Java, anda dapat menjalankannya hampir di semua komputer dan perangkat lain yang support Java, dengan sedikit perubahan atau tanpa perubahan sama sekali dalam kodenya. Aplikasi dengan berbasis Java ini dikompulasikan ke dalam p-code dan bisa dijalankan dengan Java Virtual Machine. Fungsionalitas dari Java ini dapat berjalan dengan platform sistem operasi yang berbeda karena sifatnya yang umum dan non-spesifik.
Slogan Java adalah “Tulis sekali, jalankan di manapun”. Sekarang ini Java menjadi sebuah bahasa pemrograman yang populer dan dimanfaatkan secara luas untuk pengembangan perangkat lunak. Kebanyakan perangkat lunak yang menggunakan Java adalah ponsel feature dan ponsel pintar atau smartphone.
2.      Kelebihan dan Kekurangan java

a.    Kelebihan
·         bahasa pemrograman yang multi platform dan multi device.
Sekali anda menuliskan sebuah program dengan menggunakan Java, anda dapat menjalankannya hampir di semua komputer dan perangkat lain yang support Java, dengan sedikit perubahan atau tanpa perubahan sama sekali dalam kodenya. Aplikasi dengan berbasis Java ini dikompulasikan ke dalam p-code dan bisa dijalankan dengan Java Virtual Machine. Fungsionalitas dari Java ini dapat berjalan dengan platform sistem operasi yang berbeda karena sifatnya yang umum dan non-spesifik. Bahasa pemrograman lain yang telah ada sebelum Java lahir sudah merupakan bahasa yang baik dan mudah dipelajasi oleh programmer profesional. Akan tetapi para programmer ini menginginkan sesuatu yang baru yang memiliki banyak hal yang menyelesaikan masalah mereka. Utamanya adalah keamanan kode mereka. Hal ini melahirkan pikiran yang revolusioner untuk menemukan bahasa pemrograman lain yang disebut Java. Tidak hanya keamanan tapi juga beberapa hal yang sering disebut sebagai Java-Buzzwords.

·         Sederhana Dan Berorientasi Objek
Seperti diuraikan sebelumnya, Java lahir dari suatu pemikiran mendalam akan bahasa pemrograman yang ada pada saat itu, seperti C dan C++. Hal ini akan memudahkan programmer profesional untuk dapat mengerti lebih jelas tentang Java, fungsionalitas, dan lain sebagainya apabila ia memiliki pengetahuan dasar tentang C++ dan konsep pemrograman berorientasi objek. Tujuannya agar konsep dasar dari teknologi Java dapat dimengerti dengan mudah, dan programmer dapat segera menghasilkan sesuatu sedini mungkin. Tidak hanya ini, penemu Java memastikan bahwa Java juga bermula dari bahasa pemrograman dasar yang sudah ada pada saat itu. Kemudian mereka membuang berbagai fitur yang rumit dan membingungkan.


b.      Kekurangan
yang lain adalah penggunaan memori yang cukup banyak, lebih besar daripada bahasa tingkat tinggi sebelum generasi Java. Namun hal ini memang sesuai dengan fitur beragam yang dimiliki oleh Java. Masalah memori ini juga tidak dialami oleh semua pengguna aplikasi Java. Mereka yang sudah menggunakan perangkat keras dengan teknologi terbaru tidak merasakan kelambatan dan konsumsi memori Java yang tinggi. Lain halnya dengan mereka yang menggunakan teknologi lama atau komputer yang sudah berumur tua lebih dari empat tahun akan merasakan adanya kelambatan. Namun apapun kelemahan yang dimiliki Java, faktanya adalah Java merupakan bahasa pemrograman yang populer dan digunakan di seluruh dunia saat ini.

3.      Keuntungan yang anda dapat dari java
a)      Mulai dengan cepat: Java merupakan bahasa pemrograman berorientasi objek, mudah dipelajari, terutama untuk programmer yang sudah menguasai C atau C++
b)      Tulis lebih sedikit program: Jumlah kelas, jumlah metode, dll, menunjukkan bahwa program yang ditulis dalam bahasa pemrograman Java memiliki jumlah 4 kali lipat lebih kecil dari program sama yang ditulis dalam bahasa C++
c)      Tulis program lebih baik: Bahasa pemrograman Java menganjurkan praktek membuat program yang baik, dan automatic garbage collection membantu Anda untuk menghindari kebocoran memori. Orientasi objeknya, arsitektur komponen JavaBeans, dan jangkauannya yanga luas, API yang mudah diperluas, memungkinkan Anda menggunakan kode yang ada.
d)     Membuat program dengan lebih cepat: Bahasa pemrograman Java lebih mudah dari C++, pemrograman akan menjadi 2 kali lipat lebih cepat, dengan jumlah baris yang jauh lebih sedikit.
e)      Menghindari kebergantungan pada platform tertentu: Anda dapat menjalankan program Anda pada banyak platform dengan TIDAK menggunakan library yang ditulis spesifik untuk platform tertentu.
f)       Tulis sekali, jalankan di mana saja: Karena aplikasi yang ditulis dalam bahasa Java dikompilasi ke dalam kode byte yang bebas platform, aplikasi yang ditulis dapat jalan secara konsisten pada platform apa saja.
g)      Distribusikan software Anda dengan mudah: Dengan Java Web Start, pengguna program Anda akan dapat menggunakan aplikasi Anda dengan mudah. Sistem pengecekan versi otomatis pada saat program dimulai menjamin pengguna Anda


















C.      CONTOH PEMOGRAMAN JAVA
kalkulator sederhana (handling exception)

import java.util.*;

public class kalkulator

{

    // method operasi kali

 public int kali(int a, int b){

  int c= a*b;

  return c;

 }


 // method operasi bagi

 public float bagi(float a, float b){

  float c= a/b;

  return c;

 }


    //method operasi pangkat

    public int pangkat(int a, int b){

         int c=(int) Math.pow(a,b);

         return c;

    }

   


    // method untuk input angka  

    public int inputAngka(){

  String a;

  int a2=0;

  try {

    Scanner sc = new Scanner(System.in);

   a=sc.nextLine();

   a2=Integer.parseInt(a);

  }

  catch (InputMismatchException e) {

    System.err.println("Error: " + e);

  }

  return a2;

 }

 // method pemilihan menu dan pemanggilan method2 sesuai pilihan

 public void pilihmenu(int pil){

  int a=0;

  int b=0;

  float c=0;


  switch(pil){

   case 1 :

    try

            {

                Scanner scan=new Scanner(System.in);

                int array[]= new int [10];

                int awal=0, tot;

                for(int i=0;i<100;i++)

                {

                    System.out.println("Masukkan angka ke-"+(i+1));

                    array[i]=scan.nextInt();

               

                    tot=awal+array[i];

                    awal=tot;

                    if(tot==-1 || i==9)

                    {

                        System.out.println("Total   =   "+tot);

                        break;

                    }

                    else if(tot>9999 || tot<-9999)

                    {

                        throw new IllegalArgumentException();

                    }

                }

            }

            catch (InputMismatchException err)

            {

                System.err.println("ERORR INPUT");

            }

            catch (IllegalArgumentException err)

            {

                System.err.println("ERROR, jumlah digit tidak boleh lebih dari 5");

            }

   break;

   case 2:

    try

    {

       System.out.println("[Perkalian]");

                    System.out.print("angka 1: ");

                    a=this.inputAngka();

                    System.out.print("angka 2: ");

                    b=this.inputAngka();


                    c=this.kali(a,b);

                    System.out.println("------------ *");

                    System.out.println("hasil  : "+c);

                    System.out.println();

                    if (c<-9999 || c>9999)

                    {

                        throw new IllegalArgumentException();

                    }

                }

                catch (NumberFormatException err)

                {

                    System.err.println("Bukan Angka");

                }

                catch (IllegalArgumentException err)

                {

                    System.err.println("ERROR, jumlah digit tidak boleh lebih dari 5");

                }

   break;

   case 3 :

    try

    {

       System.out.println("[Pembagian]");

       System.out.print("angka 1: ");

       a=this.inputAngka();

       System.out.print("angka 2: ");

       b=this.inputAngka();

       c=this.bagi(a,b);

       System.out.println("------------ /");

       System.out.println("hasil  : "+c);

       System.out.println();

       if (c<-9999 || c>9999)

       {

           throw new IllegalArgumentException();

       }

    }

    catch (ArithmeticException err)

    {

       System.err.println("ERROR");

    }

    catch (NumberFormatException err)

    {

       System.err.println("Bukan Angka");

    }

    catch (IllegalArgumentException err)

    {

       System.err.println("ERROR, jumlah digit tidak boleh lebih dari 5");

       break;

    }

                               

   break;

   case 4:

    try

    {

       System.out.println("[Pangkat]");

       System.out.print("angka 1: ");

       a=this.inputAngka();

       System.out.print("angka 2: ");

       b=this.inputAngka();

       c=this.pangkat(a,b);

       System.out.println("------------ /");

       System.out.println("hasil  : "+c);

       if (c<-9999 || c>9999)

       {

           throw new IllegalArgumentException();

       }

    }

    catch (NumberFormatException err)

    {

       System.err.println("Bukan Angka");

    }

    catch (IllegalArgumentException err)

    {

       System.err.println("ERROR, jumlah digit tidak boleh lebih dari 5");

       break;

    }

   

   break;

   case 5:

   System.out.println();

   System.out.println("Anda Keluar");

   break;


   default:

    System.out.println("-----------");

    System.out.println("Salah Pilih");

    System.out.println("-----------");

  }

 }

 public static void main(String[] args)

 {

  int pil;

  kalkulator kal= new kalkulator();


  do {

   System.out.println();

   System.out.println("------------------");

   System.out.println("MENU:");

   System.out.println("1    Penjumlahan");

   System.out.println("2    Perkalian");

   System.out.println("3    Pembagian");

   System.out.println("4    Pemangkatan");

   System.out.println("5    Keluar");

   System.out.println("------------------");


   System.out.print("Masukkan Pilihan : ");

   pil=kal.inputAngka();

   kal.pilihmenu(pil);


  } while (pil!=5);

 }
}