Selasa, 08 Oktober 2013

Rangkuman OOP (Tugas Struktur Data dan Algoritma)



Object Oriented Programing
1.      Class, Attribute, dan Method
A.  Class
Class adalah kumpulan atas definisi data dan fungsi-fungsi dalam suatu unit untuk suatu tujuan tertentu. Sebuah class adalah dasar dari modularitas dan struktur dalam pemrograman berorientasi object. Sebuah class secara tipikal sebaiknya dapat dikenali oleh seorang non-programmer sekalipun terkait dengan domain permasalahan yang ada, dan kode yang terdapat dalam sebuah class sebaiknya (relatif) bersifat mandiri dan independen (sebagaimana kode tersebut digunakan jika tidak menggunakan OOP). Dengan modularitas, struktur dari sebuah program akan terkait dengan aspek-aspek dalam masalah yang akan diselesaikan melalui program tersebut. Cara seperti ini akan menyederhanakan pemetaan dari masalah ke sebuah program ataupun sebaliknya.
Ada pengertian lain yang menjelaskan Class merupakan suatu blueprint atau cetakan untuk menciptakan suatu instant dari object. class juga merupakan grup suatu object dengan kemiripan attributes/properties, behaviour dan relasi ke object lain. Contoh : Class Person, Vehicle, Tree, Fruit dan lain-lain
Class di C# dapat terdiri dari kumpulan variable (field), property dan method. Cara untuk menggunakan class adalah dengan membuat instan class-nya. Untuk menjalankan class maka harus ada satu method main pada class tersebut. contoh pendeklarasian class di C# sebagai berikut:
   1: public class Time
   2: {
   3:    // private variables atau field
   4:    private int year;
   5:    private int month;
   6:    private int date;
   7:    private int hour;
   8:    private int minute;
   9:    private int second;
  10: 
  11:   // public methods
  12:   public void DisplayCurrentTime()
  13:   {
  14:       Console.WriteLine("Menampilkan Waktu..");
  15:   }
  16: }
  17:    
  18: class Program
  19: {
  20: static void Main(string[] args)
  21:       {
  22:              Time timeObject = new Time(); //membuat instan class
  23:              timeObject.DisplayCurrentTime(); //memanggil method dalam class
  24:       }
  25: }

B.     Attribute
Attribute adalah segala  sesuatu  yang melekat  pada Object. Dalam  penerapan di dalam program, atribut adalah Variabel
Attributes merupakan nilai data yang terdapat pada suatu object yang berasal dari class. Attributes merepresentasikan karakteristik dari suatu object.
Contoh : pada Class Fruit terdapat attribute : warna, berat pada object mangga :
-warna berisi kuning dan berat misalkan 0.25 kg.
-pada object apel : warna berisi merah dan berat misalkan 0.30 kg.

C.    Method
Method adalah suatu operasi berupa fungsi-fungsi yang dapat dikerjakan oleh suatu object. Method didefinisikan pada class akan tetap dipanggil melalui object. Contoh : pada object mangga : terdapat method ambilRasa , kupasKulit dan lain-lain.
Method merupakan sarana bagi programmer untuk memecah program kompleks menjadi bagian yang kecil-kecil,sehingga nantinya dapat digunakan berulang-ulang.
Method didefinisikan pada class akan dipanggil melalui object. Dengan kata lain method juga dikenal sebagai fungsi atau prosedur. Method memiliki 4 (empat) bagian dasar :
1.      Nama metode
2.      Tipe Objek atau tipe primitive yang dikembalikan metode.
3.      Daftar parameter.
4.      Badan atau isi metode.
Method adalah bagian dari tubuh program yang mengimplementasikan suatu action sehingga class atau object bekerja.
·      Static Methods
Method dapat di overload, yaitu nama suatu method dapat dipakai berkali-kali selama method tersebut memiliki sesuatu yang unik. Static method hanya bisa diakses melalui classnya saja.
·      Non static method
Non static method adalah method yang dapat diakses melalui instance-nya.
2.      Object
Object adalah instance dari class. Jika class secara umum merepresentasikan (template) sebuah object, sebuah instance adalah representasi nyata dari class itu sendiri. Contoh : Dari class Fruit kita dapat membuat object Mangga, Pisang, Apel dan lainlain.
Object merupakan sebuah structure yang menggabungkan data dan prosedur untuk bekerja bersama-sama. Objek merupakan dasar dari modularitas dan struktur dalam sebuah program komputer berorientasi objek.
Dalam term OOP, object adalah sebuah structure yang menggabungkan data dan prosedur untuk bekerja bersama-sama. Contoh, jika kamu tertarik dalam pelacakan data yang dihubungkan dengan produk, kamu akan menciptakan sebuah object produk yang bertanggung jawab untuk me-maintenance dan bekerja dengan data yang bersinggungan dengan produk. Jika kamu ingin kemampuan mencetak dalam aplikasi kamu, kamu harus bekerja dengan sebuah object printer yang bertanggungjawab untuk data serta metode yang digunakan untuk berinteraksi dengan printer anda.

3.      Cara Membuat Class
1)      Buat project baru dan pilih Console Aplication
2)      Untuk membuat sebuah kelas baru, klik pada nama project anda yang terdapat pada jendela Solution Explorer. Kemudian klik kanan, pilih menu Add Class.
3)      Maka akan muncul jendela Add New Item. Pada nama class baru yang akan dibuat, masukkan nama classnya.



4.      Konstruktor
Konstruktor adalah method yang namanya sama dengan nama class-nya. Konstruktor digunakan untuk inisialisasi variabel ketika membuat instan class / objek baru. Sebenarnya setiap kali anda membuat instant class / objek baru maka konstruktor dijalankan. Jika anda tidak mendefinisikan konstruktor secara eksplisit maka tetap dianggap membuat konstruktor kosong.
Perhatikan di bawah ini :
Baris ke-3 memiliki bentuk yang mirip dengan baris definisi class di baris pertama. Perbedaannya adalah tidak adanya kata “class” dan keberadaan () di akhir nama class. Bagian inilah yang disebut sebagai constructor dari sebuah class. Bentuknya sebuah fungsi yang tidak memiliki tanda kembalian (return type) dan memiliki nama yang sama dengan nama class. Pengertian fungsi dan return type akan kita bahas selanjutnya dalam artikel ini. Baris ke-4 s.d. ke-6 menunjukkan definisi dari constructor yang dapat kita isi dengan code tertentu yang kita perlukan. Pada umumnya, code di dalam constructor ini melakukan proses inisialisasi setiap variabel atau property yang dimiliki oleh class. Dalam contoh di atas, constructor melakukan inisialisasi variabel _Name yang dimiliki oleh class GuestBook. Setiap constructor dari sebuah class akan selalu dipanggil atau dijalankan secara otomatis ketika sebuah sebuahinstance dari class tersebut dibuat. Perhatikan code berikut:
 1 // sebuah instance dibuat, diberi nama tamu1
 2 GuestBook tamu1 = new GuestBook();
 3 // satu instance lagi dibuat dan diberi nama tamu2
 4 GuestBook tamu2 = new GuestBook();
 5
 6 // menampilkan isi property Name dari tamu1
 7 lblName.Text = tamu1.Name;
 8 // mengubah isi property Name dari tamu2
 9 tamu2.Name = "Gatot Wahyudi";
10 // menampilkan isi property Name dari tamu2
11 lblName.Text = tamu2.Name;
Class dapat diibaratkan sebagai sebuah pabrik objek sedangkan instance dari class adalah setiap objek yang diproduksi oleh pabrik tersebut. Contoh di atas menunjukkan bahwa GuestBook merupakan pabrik dari objek. Adapun tamu1 dan tamu2 merupakan instance dari class GuestBook. Setiap instance inilah yang nantinya mempunyai ciri spesifik masing-masing. Contoh yang lain misalnya kita mempunyai class Mobil maka instance yang dapat dibuat antara lain Honda dan Ferrari dimana kita mengetahui masing-masing instance tersebut adalah sama-sama objek Mobil namun memiliki ciri-ciri yang berbeda dari segi nama, ukuran mesin, kecepatan maksimum, dll.
Pada contoh cuplikan code di atas kita juga mencoba untuk menampilkan isi dari property Namedari objek tamu1 pada label lblName. Dengan perintah tersebut kita akan mendapati bahwa label lblName akan menampilkan teks “Anonim”. Bagaimana bisa demikian sedangkan kita belum pernah mengubah property Name dari objek tamu1? Jawabannya adalah pengaruh dariconstructor. Seperti yang sudah dijelaskan sebelumnya, ketika sebuah instance dibuat makaconstructor akan dipanggil atau dijalankan secara otomatis. Dengan kata lain, setiap baris perintah pada code di dalam constructor akan dieksekusi. Pada code class GuestBook, pada awalnya property _Name didefinisikan untuk berisi string kosong atau “” melalui perintahprivate string _Name = string.Empty;. Selanjutnya, code di dalam constructor melakukan perubahan nilai dari property _Name dengan teks “Anonim”. Dengan demikian, secara otomatis setiap kita membuat instance dari class GuestBook maka property _Name akan selalu berisi teks “Anonim”. Ini berarti property _Name pada instance tamu2 juga bernilai “Anonim” ketika pertama kali dibuat. Nilai property tersebut baru berubah ketika code tamu2.Name = “Gatot Wahyudi”; dieksekusi.

5.      Private, Protected, Public
Private, protected, dan public merupakan identifier. Identifier adalah suatu pengenal atau pengidentifikasi yang kita deklarasikan agar kompiler dapat mengenalinya. Identifier sendiri dapat berupa nama variabel, konstanta fungsi, kelas, template maupun namespace. Ada perbedaan di antara private, protected, dan public.
·         Private: anggota publik dari kelas dasar dapat diakses oleh anggota yang kelas dasar,anggota kelas turunan serta anggota yang berada di luar kelas dasar dan kelas turunan.
·         Protected: anggota dilindungi dari kelas dasar dapat diakses oleh anggota kelas dasarserta anggota kelas turunan.
·         Public: anggota pribadi dari kelas dasar hanya dapat diakses oleh anggota yang kelas dasar.
Untuk membuat nama identifier perlu memperhatikan hal-hal berikut:
1.      Membedakan huruf besar dan huruf kecil (case sensitive).
2.      Nama identifier bisa terdiri dari satu atau beberapa karakter yang terdiri dari angka (0 – 9), huruf (A – Z, a – z), dollar ($), garis-bawah/underscore(_).
3.       Penamaan identifier harus dimulai dengan huruf, underscore(_), atau karakter dollar ($). Tidak boleh dimulai dengan angka. Simbol-simbol operator seperti (*), (+), (/), (-) tidak boleh digunakan.
4.      Dalam penamaan identifier tidak boleh menggunakan spasi.
5.      Tidak diperbolehkan menggunakan Kata-kata keyword dalam bahasa pemrograman (misalnya: public, class, static, dsb).
6.      Panjang nama identifier tidak dibatasi.
Beberapa contoh penamaan identifier yang benar:
·            Nama
·            $Nama
·            NamaSiswa
·            NomorInduk
·            namaSiswa
·            nomorInduk
·            nama_siswa
·            nomor_induk
Beberapa contoh penamaan identifier yang salah:
·                 1Nama
·                 /NomorInduk
·                 Nama Siswa
Contoh syntax pada C#:
1.      Double luas_segitiga;
2.      String namaMahasiswa;
3.      Int nilai;

6.      Karakteristik OOP dan contohnya
a.      Inheritance
Inheritance/pewarisan adalah kemampuan untuk membuat class turunan yang mewarisi property dan method dari kelas induk.
Menggunakan inheritance dalam OOP untuk mengklasifikasikan objects dalam program sesuai karakteristik umum dan fungsinya. Hal ini akan membuat pekerjaan bersama object lebih mudah dan lebih intuitif. Hal ini juga membuat programming lebih mudah karena memungkinkan kita untuk mengkombinasikan karakteristik umum kedalam object parent dan mewariskan karakteristik ini ke child object.
Keuntungan dari inheritance :
- Tidak perlu mendefinisikan Variabel Bila membutuhkan , Cukup menurunkan dari class induk
- Memudahkan dan Mempercepat pemprogramman , mengurangi Code
Sample inheritance dalam C#:
public class A
{
    public A() { }
}
 
public class B : A
{
    public B() { }
}
 
b.      Polymorphisme
Polymorphism/banyak bentuk, seorang programer bisa memakai method dengan nama yang sama pada class-class yang berbeda.
Polymorphisms adalah kemampuan 2 buah object yang berbeda untuk merespon pesan permintaan yang sama dalam suatu cara yang unik.
Bagaimana hal ini berhubungan dengan OOP? Kamu dapat membuat objects yang dapat merespon pesan yang sama dalam implementasi yang
unik. Contohnya, kamu dapat mengirim pesan print ke object printer yang akan mencetak pada printer, dan kamu juga dapat mengirim pesan yang sama ke object screen yang akan menuliskan pada screen monitor. Dalam OOP, kamu menerapkan tipe polymorphism melalui proses yang disebut overloading. Kamu dapat mengimplementasikan metode yang berbeda pada sebuah object yang mempunyai nama yang sama.
                        Contoh Polymorphisme :
public class BaseClass
{
    public void DoWork() { }
    public int WorkField;
    public int WorkProperty
    {
        get { return 0; }
    }
}
 
public class DerivedClass : BaseClass
{
    public new void DoWork() { }
    public new int WorkField;
    public new int WorkProperty
    {
        get { return 0; }
    }
}

c.       Encapsulation
Encapsulation/pembungkusan, merupakan penyembunyian informasi melalui private danprotected.
Selain dengan menggunakan metoda abstraksi dalam menyembunyikan method pada super class, maka juga dapat dilakukan dengan proses pembungkusan suatu fungsi. Dengan kata lain, sebenarnya proses pembungkusan itu sendiri merupakan salah satu metoda atau mekanisme untuk melakukan abstraksi.
Dalam pemrograman tradisional, proses semacam ini sering juga disebut dengan penyembunyian informasi (information hiding).
Contoh encapsulation untuk C#:
namespace BW_OOP2
{
class Program
{
public static void Main(string[] args)
{
Barang brg = new Barang();
Console.Write("Masukkan Nama barang = ");
brg.Nama_barang = Console.ReadLine();
brg.DataBarang();
Console.WriteLine();
Console.Write("Press any key to continue . . . ");
Console.ReadKey(true);
}
}
class Barang
{
public Barang()
{
Console.WriteLine("\t\t\t\t Data Barang\n\n");
}
private string nama_barang; //---> modifier private & information hidding
private string kode_barang; //---> modifier private
protected int harga; //---> modifier protected
int stok;  //---> modifier default

public string Nama_barang // ---> properties getset
{
get { return nama_barang; }
set { nama_barang = value; }
}
public void DataBarang() //---> method dengan modifier public
{
if(Nama_barang == "Acer 4741G")
{
kode_barang = "310051";
harga = 4750000;
stok = 20;
}
else if(Nama_barang == "Acer 4750")
{
kode_barang = "310052";
harga = 4490000;
stok = 20;
}
else
{
kode_barang = "Barang Tidak ada";
harga = 0;
stok = 0;
}
Console.WriteLine("\n\n");
Console.WriteLine("Nama Barang = {0}",Nama_barang);
Console.WriteLine("Kode Barang = {0}",kode_barang);
Console.WriteLine("Harga = {0}",harga);
Console.WriteLine("Stok = {0}",stok);
}
}
}

d.      Abstraction
Abtraction/abtraksi, adalah sebuah konsep yang merupakan representasi abstrak dari konsep dalam pemograman, misalnya objek mobil merupakan representasi abstrak dari mobil dalam dunia nyata.
Abstraksi merupakan pengabstrakan atau penyembunyian kerumitan suatu proses. Abstraksi menjelaskan definisi dari objek pada class dalam suatu fungsi (method) atau fungsi khusus (constructor). Sebuah kelas dapat dideklarasikan sebagai kelas abstrak. Tujuan membuat kelas abstrak adalah agar satu kelas lain dapat memperluasnya (extend) dengan jalan menjadi subclass darinya.

e.       Aggregation
Aggregation adalah 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. Pemrograman visual membawa OOP ke level berikutnya.
Tujuan pemrograman visual adalah agar pemrograman menjadi lebih mudah bagi para programmer dan lebih mudah diakses oleh kalangan nonprogrammer dengan meminjam bahasa OOP, dan mempraktikanya secara grafis atau visual.  emrograman visual memungkinkan pengguna untuk lebih focus pada pemecahan masalah ketimbang cara menangani bahasa pemrograman.
7.      Overloading
Overloading adalah suatu cara untuk memberikan nama yang sama kepada dua method yang berbeda meski dua method tersebut berada dalam class yang sama. Hal ini dapat dilakukan dengan cara membedakan tipe parameter, jumlah parameter dan susunan parameter, Manfaat penggunaan overloading adalah agar method yang mempunyai tingkah yang hampir sama mudah diingat oleh developer software.
Overloading Merupakan Suatu Function yang memiliki parameter , dan function tersebut dapat memiliki nama function yang sama dengan yang lainnya dengan syarat jumlah parameter mesti berbeda atau bisa kita bilang Situasi di mana beberapa rutin dalam sebuah program dapat mempunyai nama sama tetapi berbeda jenis parameter dan/utau jenis return value.lebih Jelasnya Overloading secara singkat :
·  Nama Method Boleh Sama , Tapi Jumlah Parameter Mesti berbeda
·  Nilai Yang Di Return Harus memiliki Tipe yang sama
Sample Overloading pada function TaxCalc pada C#.Net :
public static double TaxCalc(double pamt1, double prate1, double pamt2,
double prate2)
{
double taxamt;

Console.WriteLine(“Using method with 4 arguments”);
taxamt = (pamt1 * prate1) + (pamt2 * prate2);

return taxamt;
} // *** TaxCalc ***
// This method only takes two arguments: an amount and a rate
public static double TaxCalc(double pamt1, double prate1)
{
double taxamt;

Console.WriteLine(“Using method with 2 arguments”);
taxamt = pamt1 * prate1;

return taxamt;
} // *** TaxCalc ***
// This method only takes one argument: an amount
public static double TaxCalc(double pamt)
{
double taxrate = 0.15;
double taxamt = 0;

Console.WriteLine(“Using method with 1 argument”);
taxamt = pamt * taxrate;

return taxamt;
} // *** TaxCalc ***
// This method only takes one argument as well but it differs
// from the above in the argument type.
public static double TaxCalc(string whichtable)
{
double taxrate = 0;
Console.WriteLine(“Calling the method with 1 string argument”);

if (whichtable == “TaxTable1″)
taxrate = 0.15;

return taxrate;
}

 
 8.    Contoh Program Menghitung Nilai Mahassiwa dan Konversinya
Class:
//atribut
        private double _np;
        private double _nt;
        private double _nuts;
        private double _nuas;
        private double _nakhir;
        private string _nhuruf;
       
        //method
        public double n_p
        {
            get { return _np; }
            set { _np = value; }
        }
         public double n_t
        {
            get { return _nt; }
            set { _nt = value; }
        }
        public double n_uts
        {
            get { return _nuts; }
            set { _nuts = value; }
        }
        public double n_uas
        {
            get { return _nuas; }
            set { _nuas = value; }
        }
        public double NilaiAkhir(double np, double nt, double nuts, double nuas)
        {
            return 0.3 * _np + 0.2 * _nt + 0.3 * _nuts + 0.2 * _nuas;
        }
        public string NilaiHuruf(double na)
        {
            string nh=" ";
            if (na > 85 && na <= 100)
            {
                nh = "A";

            }
            if (na > 80 && na <= 85)
            {
                nh = "A-";
            }
            if (na > 75 && na <= 80)
            {
                nh = "B+";
            }
            if (na > 70 && na <= 75)
            {
                nh = "B";
            }
            if (na > 65 && na <= 70)
            {
                nh = "B-";
            }
            if (na > 60 && na <= 65)
            {
                nh = "C+";
            }
            if (na > 55 && na <= 60)
            {
                nh = "C";
            }
            if (na > 50 && na <= 55)
            {
                nh = "C-";
            }
            if (na > 40 && na <= 50)
            {
                nh = "D";
            }
            if (na <= 40)
            {
                nh = "E";
            }
            return nh;
        }

        public void tampil()
        {
            Console.Write("Nilai partisipasi = ");
            _np=double.Parse(Console.ReadLine());
            Console.Write("Nilai tugas = ");
            _nt=double.Parse(Console.ReadLine());
            Console.Write("Nilai UTS = " + _nuts);
            _nuts=double.Parse(Console.ReadLine());
            Console.Write("Nilai UAS = " + _nuas);
            _nuas=double.Parse(Console.ReadLine());

            _nakhir=NilaiAkhir(_np,_nt,_nuts,_nuas);
            Console.Write("Nilai Akhir = " + _nakhir);
            Console.WriteLine();

            _nhuruf = NilaiHuruf(_nakhir);
            Console.WriteLine("Nilai Huruf = " + _nhuruf);

Program
    nilai nl1 = new nilai();
            nl1.tampil();

            Console.ReadKey();


output :

1 komentar:

caitlynjailey mengatakan...

Best 3 titanium price per pound in Thailand - Titanium Arts
Compare the best 3 titanium prices in Thailand. Check out titanium element our 3 best titanium prices for 로투스 바카라 중계 사이트 the titanium exhaust tips best titanium mens ring 3 titanium prices titanium nipple bars and find the best prices available to you!

Posting Komentar