Tugas Struktur Data dan Algoritma


1. Class, Attribute, dan Method
·         Class : model yang berisi kumpulan attribute dan method dalam suatu unit untuk suatu tujuan tertentu. Sebuah class merupakan dasar dari modularitas dan struktur dalam pemrograman berorientasi object.
contoh :
Class Person, Vehicle, Tree, Fruit dan lain-lain.
·         Attribute : nilai data yang terdapat pada suatu object yang berasal dari class. Attribute merepresentasikan karakteristik dari suatu object.
contoh :
Class Fruit terdapat attribute warna, berat
·         Methode : suatu operasi berupa fungsi-fungsi yang dapat dikerjakan oleh suatu object. Method didefinisikan pada class akan tetapi dipanggil melalui object.
Contoh :
pada object mangga terdapat method ambilRasa , kupasKulit dan lain-lain.
2.    Object
·         Object : perwujudan dari class, setiap object akan mempunyai attribute dan method yang dimiliki oleh class-nya. Setiap object dapat berinteraksi dengan object lainnya meskipun berasal dari class yang berbeda
Contoh :
Dari class Fruit kita dapat membuat object Mangga, Pisang, Apel dan lain-lain.
3.    Cara Membuat Object
Untuk membuat object, kita menggunakan perintah new dengan sebuah nama class yang akan dibuat sebagai instance dari class tersebut.
                Contoh :
class Date
                {
Date hari = new Date();
                }
hari adalah object reference dari class Date yang akan digunakan untuk mengakses class Date. Sedangkan operator new adalah operator yang akan menghasilkan hari sebagai reference ke instance dari class Date().
4.    Konstruktor
·         Konstruktor : suatu method yang akan memberikan nilai awal pada saat suatu objek dibuat. Pada saat program dijalankan, constructor akan langsung memberikan nilai awal pada saat perintah new, membuat suatu objek
Pada saat kita bekerja dengan constructor, hal mendasar yang perlu diperhatikan, yaitu :
1.    Nama Constructor sama dengan nama Class.
2.    Tidak ada return type yang diberikan kedalam Constructor   Signature.
3.    Tidak ada return stetement, didalam tubuh constructor.

5.    Private, Protected, dan Public
·         Private : Menyatakan bahwa kelas tersebut tidak dapat diakses sama sekali oleh kelas lain bahkan juga tidak dapat diturunkan. Berarti attribute-attribute yang private hanya dapat diakses oleh method-method dalam kelas yang sama, kelas lain masih dapat mengakses melalui method-method tersebut asal modifiernya public.
·         Protected : Menyatakan bahwa kelas/method/attribute tersebut dapat diakses oleh kelas lain yang berada dalam satu package atau kelas lain tersebut merupakan turunannya.
·         Public : Menyatakan bahwa kelas/method/attribute tersebut dapat diakses oleh kelas lain dimanapun.
6.    Karakteristik OOP
·         Inherintence (pewarisan): merupakan konsep dimana suatu object memiliki sejumlah perilaku yang dimiliki oleh object lain dalam suatu hirarki tertentu.
Penulisan inheritance di C# sebagai berikut
public class ListBox : Window
Kode diatas berarti class ListBox adalah turunan dari class Window.
       Contoh Inherintence :
1: public class Window {
2:         //variabel dideklarasikan private
                sehingga tidak bisa diakses oleh kelas
3:         //turunannya
 4:         private int top;
 5:         private int left;
6: 
7:         //objek konstruktor
 8:         public Window(int top, int left) {
9:             this.top = top;
10:             this.left = left;
11:         }
12: 
13:         public void DrawWindow() {
14:             Console.WriteLine(“Draw window pada ({0},{1})”,
15:                 top, left); 
                16:         }
                17: }
                 18: 
                 19:     public class ListBox : Window {
                20:         //member variable baru pada class anak
                21:         private string listBoxContent;
                22:         public ListBox(int top, int left, string contents):base(top,left) {
                23:             this.listBoxContent = contents;
                24:         }
                25: 
                26:         //versi baru karena override dari base classnya
                27:         public new void DrawWindow() {
                 28:             base.DrawWindow();
                29:             Console.WriteLine(“Menuliskan string pada listbox: {0}”,
                30:             listBoxContent);
                31:         }
                32:     }
                33: 
                34:     class LatInheritance {
                35:         public static void Main(string[] args) {
                36:             Window objWindow = new Window(10, 15);
                37:             objWindow.DrawWindow();
                38: 
                39:             ListBox objList = new ListBox(15, 20, “Hello ListBox”);
                40:             objList.DrawWindow();
                41:         }
                42:     }
·         Polymorphism : konsep dimana beberapa object dapat memiliki metode yang sama dengan aksi yang berbeda. mengakibatkan adanya kemampuan untuk sebuah objek untuk mengubah perilakunya sesuai dengan bagaimana itu digunakan.
·         ilustrasi polymorphism :
Misalkan kita punya satu class hewan dan diturunkan menjadi dua class hewan berkaki dua dan hewan berkaki empat. Ketika hewan berkaki dua melakukan method makan maka yang dilakukan adalah makan dengan paruhnya, dan ketika hewan berkaki empat juga makan maka dia akan menggunakan mulutnya. Keduanya melakukan aksi yang sama yaitu makan akan tetapi perlakuannya lain.
       Contoh polymorphism:
class Binatang
{
public void info()
{
System.out.println(” Info tentang Hewan : “);
}
}
class Herbivora extends Binatang
{
public void info()
{
System.out.println (“Info pada herbivora: Memakan makanan berupa tumbuh – tumbuhan”);
}
}
class Kelinci extends Herbivora
{
public void info()
{
System.out.println(“Info pada Kelinci: Memakan makanan berupa wortel”);
}
}
public class Polimorfisme
{
public static void main(String[] args)
{
Herbivora herbivora;
Kelinci kelinciku;
Binatang hewan; herbivora=new Herbivora();
kelinciku=new Kelinci();
hewan=herbivora;
hewan.info();
hewan=kelinciku;
hewan.info();
}
}
·      Encapsulation : penyatuan antara proses-proses yang terjadi dan sejumlah data yang dikelola kedalam suatu bentuk kelompok tertentu (dibentuknya suatu object secara abstrak (abstraction)). Akibatnya, obyek dapat bekerja sama dalam banyak hal dalam sistem.
Contoh :
class Siswa
{
String nama;
String nim;
void isiData ( String namaku,String nimku )
{
nama = namaku;
nim = nimku;
}
String ambilNama()
{
return nama;
}
String ambilNim()
{
return nim;
}
}
public class Mahasiswa
{
public static void main ( String [] args)
{
Siswa mahasiswa_itn = new Siswa(); //membuat variable instant
mahasiswa_itn.isiData(“Dina Damayanti”,”0412585″);
System.out.println( “Nama : ” + mahasiswa_itn.ambilNama());
System.out.println( “Nim : ” + mahasiswa_itn.ambilNim());
}
}

Abstraction : proses yang mewakili versi yang disederhanakan dari objek dunia nyata dalam kelas dan objek.
Contoh :
Jika kita membangun aplikasi shipping, kita harus membangun object produk dengan atribut seperti ukuran dan berat. Warna adalah contoh informasi yang tidak ada hubungannya dan harus dibuang. Tetapi ketika kita membangun order- entry application, warna menjadi penting dan harus termasuk atribut object produk.

·   Aggregation : kondisi ketika object berisi gabungan dari object-object yang berbeda dan bekerja bersama.
Contoh :
mesin pemotong rumput terdiri dari object roda, objects mesin, object pisau dan  lain-lain. Object mesinpun merupakan gabungan dari berbagai object.
Kemampuan untuk menggunakan aggregation dalam OOP adalah satu feature yang powerful yang memungkinkan model menjadi akurat.
7.    Overloading
·               Overloading : dua atau lebih method di dalam satu kelas yang sama, dengan nama yang sama, namun dengan deklarasi parameter yang membedakan.

syarat untuk membuat method Overloading adalah :
1.jumlah tipe dalam parameter nya harus berbeda.
2.tipe di parameter harus berbeda.
3.urutan tipe di dalam parameter harus berbeda.