Selasa, 20 Maret 2012

Pertemuan ke 4 Rekursif

download pertemuan 4

Pertemuan ke 3 Array

Array adalah suatu struktur data dalam bentuk deret data. Jadi array menyimpan suatu himpunan data yang tersusun dalam bentuk deretan data. Dalam java array direpresentasikan dalam suatu varibel yang bernama variabel array. Ada dua cara mendeklarasikan variabel array. Cara pertama adalah dengan memberikan value pada saat kita mendeklarasikan variabel array. Perhatikan struktur pendeklarasiannya sebagai berikut:
<tipe_data>[]<nama_var>={<value1>,<value2>};
Contoh.
String []data={“Susan”,”Santi”,”Santo”};
Kode diatas berarti kita membuat suatu variabel array yang bernama “data” dengan tipe data string yang berisikan tiga buah data yakni Susan, Santi, dan Santo.
Cara yang kedua adalah dengan tanpa melakukan inisaialisasi(pemberian value awal) terlebih dahulu tetapi jika kita melakukan cara ini maka kita diharuskan untuk mengisikan panjang array. Perhatikan struktur berikut.
<tipe_data>[]<nama_var>=new <tipe_data>[<panjang_array>];
Contoh.
int[]bilangan=new int[100];
kode diatas berarti kita membuat suatu variabel array yang bernama “bilangan” dengan tipe data integer dan dengan panjang data 100.
Perhatikan contoh penerapannya dalam suatu class.

public class Deret {

    public static void main(String[] args) {

        //cara pendeklarasian 1

        int arr1[]={2,4,7,9,10};

        System.out.println("Panjang Array  = "+arr1.length);

        System.out.println("Nilai Pertama  = "+arr1[0]);

        System.out.println("Nilai terakhir = "+arr1[4]);

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

        //cara ke-2

        String[]arr2=new String[3];

        System.out.println("Panjang Array  = "+arr2.length);

        arr2[0]="Jember";

        arr2[1]="Lumajang";

        System.out.println("Nilai Pertama  = "+arr2[2]);

    }

}
Jalankan kode program tersebut, perhatikan output yang dihasilkan dan dapatkan kesimpulannya.
  1. Struktur percabangan
Struktur percabangan dalam java salah satunya direpresentasikan dalam suatu struktur “IF” yang biasanya dikombinasikan dengan “ELSE” apabila proses memiliki lebih dari satu cabang. Perhatikan struktur if-else berikut.
If(<kondisi>){
<statement 1>
}else{
<statement 2>
}
Penjelasan.
Kondisi: berisi suatu operasi(biasanya perbandingan) yang memberikan suatu nilai boolean yakni true atau false.
Statement 1: adalah suatu statement atau baris program yang akan dieksekusi apabila kondisi memberikan nilai true.
Statement 2: satement atau baris program yang akan dieksekusi apabila kondisi memberikan nilai false.
Perlu ditekankan disini bahwa apabila suatu kondisi telah memberikan nilai true maka statement 1 akan dieksekusi dan statement 2 akan diabaikan. Begitu pula apabila kondisi memberikan nilai false maka statemen 2 yang akan dieksekusi sedangkan statement 1 akan diabaikan. Perhatikan cantoh penerapannya dalam suatu class java.

public class Percabangan {

    public static void main(String[] args) {

        int nilai=100;

        if(nilai>50){

            System.out.println("Lulus");

        }else{

            System.out.println("Gagal");

        }

    }

}
Jalankan kode program tersebut, perhatikan output yang dihasilkan dan dapatkan kesimpulannya.
  1. Struktur perulangan
Dalam bahasa pemrograman java struktur perulangan biasanya direpresentasikan dengan menggunakan struktur “FOR”. Blok kode yang berada pada kalang/scope for inilah yang akan dilakukan eksekusi berulang kali sesuai dengan kondisi tertentu. Perhatikan struktur for berikut.
for(<inisialisasi>;<kondisi>;<update>){
<statement>;
}
Penjelasan
Inisialisasi : berisi proses pemberian nilai awal pada variabel yang digunakan sebagai kontrol perulangan(biasanya variabel integer) contoh: int i = 0
Kondisi : beiasanya berisi proses pembandingan nilai variabel kontrol dengan nilai tertentu. Kondisi ini akan memberikan nilai boolean yakni true atau false. Contoh: i < 100
Update : berisi proses update nilai variabel kontrol. Update variabel kontrol ini digunakan agar suatu perulangan akan berhenti pada suatu kondisi tertentu. Update variabel ini biasanya menggunakan operasi increment dan decrement. Contoh: i++
Perhatikan suatu contoh penerapan perulangan dalam suatu class java berikut.

public class Perulangan {

    public static void main(String[] args) {

        String []kota={"Jember","Lumajang","Banyuwangi","Bondowoso"};

        for (int i = 0; i < kota.length; i++) {

            System.out.println("Kota ke-"+i+" = "+kota[i]);

        }

    }

}
Jalankan kode program tersebut, perhatikan output yang dihasilkan dan dapatkan kesimpulannya.
  1. Method
Method adalah suatu mekanisme yang digunakan untuk memparsialkan atau membagi suatu kode program menjadi beberapa kode program dengan proses yang spesifik. Misalkan kode program yang digunakan untuk mencetak output dikumpulkan dalam suatu method yang bernama method cetak. Secara umum ada dua macam method yakni method setter dan method getter.
Method setter
Sesuai dengan namanya, method ini memang biasanya digunakan untuk merubah/ memanipulasi suatu nilai atau properti class. Jika kita melakukan pemanggilan method jenis ini maka method ini hanya mengeksekusi baris kode yang ada pada method tersebut tanpa adanya nilai balik yang didapatkan pada proses pemanggilannya.
Struktur method setter adalah sebagai berikut.
<access modifier> void <nama_method>(<parameter>){
<baris kode>
}
Penjelasan
Access modifier: ada beberapa beberapa hak akse method yang dikenal java, tetapi untuk praktikum ini kita cukup menggunakan access modifier public agar method dapat diakses oleh objek yang bersangkutan di class yang lain.
Parameter : dapat berisi beberapa deklarasi variabel yang dipisahkan dengan tanda koma(,).
Contoh: public void cetak(String nama)
Berikut adalah contoh penerapan method setter pada suatu kasus.


public class DemoMethod2 {

    public static void main(String[] args) {

        String[]nama={"dono","dini","dana","dono","dunu","dana","dina","dani","doni","dino","danu","dono","dinu","duna","dana"};

        String cari="dono";

        DemoMethod2 demo=new DemoMethod2();

        demo.jumlahNama(nama, cari);



    }

    public void jumlahNama(String[]nama,String cari){

        int jml=0;

        for (int i = 0; i < nama.length; i++) {

            if(nama[i].equals(cari)){

                jml++;

            }

        }

        System.out.println("Jumlah "+cari+" = "+jml);

    }

}

Jalankan kode program tersebut, perhatikan output yang dihasilkan dan dapatkan kesimpulannya. Method getter
Berbeda dengan method setter yang hanya bisa mengeksekusi baris kode yang ada di dalamnya, method getter selain mengeksekusi baris kodenya juga memberikan nilai balik(getting value) kepada pemanggilnya. Perhatikan struktur method getter berikut.
<access modifier> <tipe_data> <nama_method> (<parameter>){
<baris kode>
return <value>;
}
Perbedaan mendasar dari struktur method setter dan getter yang pertama adalah pada method getter menggunakan tipe data seperti int, String bahkan juga bisa menggunakan tipe data objek, sedangkan untuk method setter hanya menggunakan keyword void saja. Perbedaan yang kedua adalah pada method getter terdapat keyword return yang berfungsi untuk memberikan nilai balik pada pemanggil method ini.
Pada kasus yang sama dengan contoh method setter kita akan coba menerapkannya menggunakan method getter.

public class DemoMethod3 {

    public static void main(String[] args) {

        String[]nama={"dono","dini","dana","dono","dunu","dana","dina","dani","doni","dino","danu","dono","dinu","duna","dana"};

        String cari="dono";

        DemoMethod3 demo=new DemoMethod3();

        System.out.println("Jumlah "+cari+" = "+demo.jumlaNama(nama, cari));

    }

    public int jumlaNama(String[]nama,String cari){

        int jml=0;

        for (int i = 0; i < nama.length; i++) {

            if(nama[i].equals(cari)){

                jml++;

            }

        }

        return jml;

    }

}
Jalankan kode program tersebut, perhatikan output yang dihasilkan dan dapatkan kesimpulannya.
  1. Constructor
Constructor adalah suatu method khusus yang akan dijalankan pada saat pembuatan suatu objek. Dapat dikatakan bahwa dengan konstruktor inilah kita melakukan inisialisasi atau pemberian nilai awal dari objek yang kita ciptakan dari class yang bersangkutan. Berikut adalah ciri-ciri dari constructor yang membedakan dengan method biasa.
  • Nama constructor sama dengan nama class
  • Constructor tidak memiliki return value
  • Acces modifiernya public
  • Constructor tidak dapat dipanggil secara  langsung, namun harus dipanggil dengan menggunakan operator new pada pembentukan sebuah class.
Struktur dasar constructor:
public  <nama_class>(<parameter>){
<baris_kode>;
}
Perhatikan contoh berikut.

Perhatikan contoh berikut.

public class DemoConstructor {

    int nilai;

    public DemoConstructor(int angka){

        nilai=angka+50;

    }

    public static void main(String[] args) {

        DemoConstructor demo=new DemoConstructor(20);

        System.out.println("Nilai Anda = "+demo.nilai);

    }

}
Jalankan kode program tersebut, perhatikan output yang dihasilkan dan dapatkan kesimpulannya.

download tugas mingguan array

Pertemuan ke 2 Variable dan Type Data

Review java bertujuan untuk mengingat kembali apa yang kita ketahui tentang bahasa pemrograman java. Jadi sebelum melanjutkan ke materi praktikum struktur data yang menggunakan bahasa pemrograman java, maka perlu untuk mereview sekilas tentang beberapa struktur bahasa pemrograman java yang akan sering kita gunakan nanti pada saat kuliah praktikum struktur data. Perhatikan dengan seksama tiap-tiap bagian struktur bahasa pemrograman java berikut ini.
  • Variabel dan operasinya
Variabel yang sering digunakan pada praktikum struktur data antara lain:
String, yakni suatu variabel yang menampung data kumpulan huruf atau karakter. Cara pendeklarasiannya sebagai berikut.
String [nama_var]=”[value]”;
Contoh.
String alamat=”Jl. Sumatra 45”
Integer, suatu variabel yang menangani tipe data bilangan bulat. Cara pendeklarasiannya sebagai berikut.
int [nama_var]=[value];
Contoh.
int bilangan=300;
Boolean, adalah tipe data yag paling sederhana. Tipe data ini hanya berisi dua nilai yakni true atau false. Tipe data ini sering digunakan untuk menyatakan suatu kondisi. Cara pendeklarasiannya sebagai berikut.
boolean [nama_var]=[valeu];
Contoh.
boolean lulus=true;
Berikut adalah contoh kode program yang menerapkan ketiga macam tipe data di atas.

public class Variabel {

    public static void main(String[] args) {

        //variabel string

        String nama="Rofianto";

        System.out.println("Nama  = "+nama);

        //variabel integer

        int angka1=30;

        int angka2=70;

        int angka3=angka1+angka2;

        System.out.println("Angka = "+angka3);

        //variabel boolean

        boolean cek=false;

        System.out.println("Cek   = "+cek);

    }

}
Jalankan kode program tersebut dan perhatikan hasilnya.

SELAMAT DATANG DI PRAKTIKUM STRUKTUR DATA

Sebelumnya kami ucapkan terlebih dahulu bagi para praktikan yang sudah bisa menempuh praktikum struktur data dan selamat datang di struktur data.
Sebelum praktikum dimulai perlu di perhatikan terlebih dahulu aturan yang berlaku dalam praktikum struktur data.
Adapun aturan yang berlaku sebagai berikut :
1. Aturan Umum praktikum
  • Setiap akan mengikuti praktikum, para praktikan tidak boleh menggunakan kaos oblong dan memakai sandal (harus sepatu)
  • Praktikum dimulai 15 menit dari jam yang ada di jadwal, toleransi keterlambatan 30 menit dari jam yang ada di jadwal
  • Bagi praktikan yang datang melebihi dari toleransi keterlambatan, maka praktikan tidak diperbolehkan masuk ruang lab
  • Praktikan wajib menyerahkan tugas mingguan yang diberikan tiap akhir pertemuan
  • Materi praktikum tiap minggunya bisa di akses di http://strukturdataumj.blogspot.com
  • Materi akan di upload paling lambat 4 hari setelah praktikum sebelumnya, dari sini di harapkan praktikan saat mau melaksanakan praktikum tidak dengan kepala kosong.
  • Mengisi absensi yang diberikan pada saat kegiatan praktikum
  • Praktikan diwajibkan menyelesaikan tugas project yang diberikan tiap kali praktikum
2. Aturan pengerjaan tugas praktikum
  • Tugas project disimpan dalam satu project dengan format nama SD_[NIM] contoh SD_1010651005
  • Tugas tiap pertemuannya disimpan dalam package dengan format nama sd.[nama_praktikan].[praktikum] contoh sd.fiki.praktikum1
  • Tugas mingguan wajib dikumpulkan setiap akan mengikuti kegiatan praktikum
  • Tugas mingguan disertakan pada materi yang ada di blog ini
  • Tugas mingguan di ketik dan di cetak. 
download form tugas mingguan
download logo fakultas teknik
download silabus struktur data