salju

Selasa, 08 Oktober 2013

Rangkuman OOP pada C#


1.      Pengertian:
a.       Class dapat dianalogikan sebagai sebuah template, sebuah struktur yang meliputi method dan property. Pada sebuah class, property yang mendeskripsikan object merupakan variabel dan method yang merupakan aksi dari object adalah function. Property dan method yang didefinisikan pada class disebut dengan members.
b.      Atribut karakteristik yang dimiliki object, atribut menampilkan propertis dari komponen yang sedang aktif.
c.        Method adalah sesuatu yang dapat dilakukan oleh objek. Method dalam implementasi program ditulis dalam bentuk fungsi. Misalkan pada kelas binatang dideklarasikan method bersuara. Maka untuk setiap objek pada kelas binatang bisa bersuara.

2.      Object adalah membungkus data dan fungsi menjadi suatu unit dalam sebuah program komputer. Objek merupakan dasar dari modularitas dan struktur dalam sebuah program komputer berorientasi objek.
3.      Cara membuat object
public class Time
    {
       // private variables atau field
       private int year;
       private int month;
       private int date;
       private int hour;
       private int minute;
       private int second;
   
     // public methods
     public void DisplayCurrentTime()
     {
         Console.WriteLine("Menampilkan Waktu..");
     }
   }
    
   class Program
{
   static void Main(string[] args)
         {
              Time timeObject = new Time(); //membuat instan class
              timeObject.DisplayCurrentTime(); //memanggil method dalam class
       }
  25: }

4.      Konstruktor adalah methode yang namanya sama dengan nama class-nya. Konstruktor digunakan untuk inisialisasi variabel ketika membuat instan class / objek baru. Sebenarnya setiap kali kita membuat instant class / objek baru maka konstruktor dijalankan. Jika kita tidak mendefinisikan konstruktor secara eksplisit maka tetap dianggap membuat konstruktor kosong.
5.      Pengertian:
a.       Private adalah anggota publik dari kelas dasar dan dapat diakses oleh anggota yang kelas dasar,anggota kelas turunan serta anggota yang berada di luar kelas dasar dan kelas turunan.
b.      Protected adalah anggota dilindungi dari kelas dasar dapat diakses oleh anggota kelas dasarserta anggota kelas turunan.
c.       Public adalah variabel dapat di akses pada semua kelas yang menggunakan kelas yang berisi variabel tersebut.

6.      Karakteristik oop dan contohnya
a.       Inheritance Mengatur polimorfisme dan enkapsulasi dengan mengizinkan objek didefinisikan dan diciptakan dengan jenis khusus dari objek yang sudah ada. Objek-objek ini dapat membagi dan memperluas perilaku mereka tanpa harus mengimplementasi ulang perilaku tersebut (bahasa berbasis objek tidak selalu memiliki inheritas.)
Contoh programnya:
public class Window
    {
        //objek konstruktor
        public Window(int top, int left)
        {
            this.top = top;
            this.left = left;
        }

        // simulasi menggambar pada windows
        public void DrawWindow()
        {
            Console.WriteLine("Drawing Window at {0}, {1}",
            top, left);
        }

        //variabel didefinisikan private sehingga
        //tidak dapat digunakan pada kelas turunannya
        private int top;
        private int left;
    }
    // ListBox diturunkan dari class Window
    public class ListBox : Window
    {
        // menambahkan parameter pada konstruktor
        public ListBox(int top, int left, string theContents) :
            base(top, left) // call base constructor
        {
            mListBoxContents = theContents;
        }

        // new version (new keyword) karena
        // pada method di kelas turunan dirubah isinya
        public new void DrawWindow()
        {
            base.DrawWindow(); // memanggil dari base class
            Console.WriteLine("Writing string to the listbox: {0}", mListBoxContents);
        }
        private string mListBoxContents; // member variabel baru
    }
    public class Tester
    {
        static void Main()
        {
            {
                // membuat instan class baru
                Window w = new Window(5, 10);
                w.DrawWindow();

                // membuat instan dari class turunan
                ListBox lb = new ListBox(20, 30, "Hello world");
                lb.DrawWindow();
            }
            Console.ReadKey();

b.      Polymorphism melalui pengiriman pesan tidak bergantung kepada pemanggilan subrutin, bahasa orientasi objek dapat mengirim pesan, metode tertentu yang berhubungan dengan sebuah pengiriman pesan tergantung kepada objek tertentu di mana pesan tersebut dikirim. misalnya jika seekor burung menerima pesan gerak cepat, dia akan menggerakan sayapnya dan terbang. Bila seekor singa menerima pesan yang sama, dia akan menggerakkan kakinya dan berlari. Keduanya menjawab sebuah pesan yang sama, namun yang sesuai dengan kemampuan hewan tersebut. Ini disebut polimorfisme karena sebuah variabel tungal dalam program dapat memegang berbagai jenis objek yang berbeda selagi program berjalan, dan teks program yang sama dapat memanggil beberapa metode yang berbeda di saat yang berbeda dalam pemanggilan yang sama. Hal ini berlawanan dengan bahasa fungsional yang mencapai polimorfisme melalui penggunaan fungsi kelas-pertama.
Contoh programnya:
public class Window
    {
        //deklarasi konstruktor dengan dua parameter
        public Window(int top, int left)
        {
            this.top = top;
            this.left = left;
        }

        //method untuk draw window
        public virtual void DrawWindow()
        {
            Console.WriteLine("Window: drawing Window at {0}, {1}", top, left);
        }

        //member variabel dideklarasikan protected
        //berarti dapat diakses dari class turunannya
        protected int top;
        protected int left;

    }  // end Window

    // class ListBox diturunkan dari class Window
    public class ListBox : Window
    {
        //konstruktor yang menmanggil konstruktor dari base class nya
        public ListBox(int top, int left, string contents)
            : base(top, left)
        {
            listBoxContents = contents;
        }

        //method yang di override dari base class-nya
        //karena mempunyai implementasi yang berbeda
        public override void DrawWindow()
        {
            base.DrawWindow(); // invoke the base method
            Console.WriteLine("Writing string to the listbox: {0}",
            listBoxContents);
        }
        private string listBoxContents; // member variabel baru
    }  // end ListBox

    public class Button : Window
    {
        public Button(int top, int left)
            : base(top, left)
        { }

        // an overridden version (note keyword) because in the
        // derived method we change the behavior
        public override void DrawWindow()
        {
            Console.WriteLine("Drawing a button at {0}, {1}\n", top, left);
        }
    }
    public class Tester
    {
        static void Main()
        {
            Window win = new Window(1, 2);
            ListBox lb = new ListBox(3, 4, "Stand alone list box");
            Button b = new Button(5, 6);
            win.DrawWindow();
            lb.DrawWindow();
            b.DrawWindow();

            Window[] winArray = new Window[3];
            winArray[0] = new Window(1, 2);
            winArray[1] = new ListBox(3, 4, "List box in array");
            winArray[2] = new Button(5, 6);

            for (int i = 0; i < 3; i++)
            {
                winArray[i].DrawWindow();
            }   // end for
            Console.ReadKey();

c.       Encapsulation adalah Memastikan pengguna sebuah objek tidak dapat mengganti keadaan dalam dari sebuah objek dengan cara yang tidak layak, hanya metode dalam objek tersebut yang diberi ijin untuk mengakses keadaannya. Setiap objek mengakses interface yang menyebutkan bagaimana objek lainnya dapat berinteraksi dengannya. Objek lainnya tidak akan mengetahui dan tergantung kepada representasi dalam objek tersebut.
Contohnya:
class hitung
    {
        private double a = 0;
        private double b = 0;

        public double nilaiA
        {
            set {a=value;}
            get { return a; }
        }

        public double nilaiB
        {
            set { b = value; }
            get { return b; }
        }

        public double hasil_tambah()
        {
            return a + b;
        }
        public double hasil_kurang()
        {
            return a - b;
        }

               
    }
class Program
    {
        static void Main(string[] args)
        {
            hitung htg = new hitung();
            Console.Write("Masukkan Nilai a=");
            htg.nilaiA = Convert.ToDouble(Console.ReadLine());
            Console.Write("Masukkan Nilai b=");
            htg.nilaiB = Convert.ToDouble(Console.ReadLine());

            Console.WriteLine("Hasil Penjumlahan=" + htg.hasil_tambah());
            Console.WriteLine("Hasil Pengurangan=" + htg.hasil_kurang());

            Console.ReadKey();

d.      Abstraction adalah kemampuan sebuah program untuk melewati aspek informasi yang diproses olehnya, yaitu kemampuan untuk fokus pada inti. Setiap objek dalam sistem melayani sebagai model dari pelaku abstrak yang dapat melakukan kerja, laporan dan perubahan keadaannya, dan berkomunikasi dengan objek lainnya dalam sistem, tanpa mengungkapkan bagaimana kelebihan ini diterapkan. Proses, fungsi atau metode dapat juga dibuat abstrak, dan beberapa teknik digunakan untuk mengembangkan sebuah pengabstrakan.
Contoh programnya:
using System;

namespace oop_abstractclass
{
    class Program
    {
        public static void Main(string[] args)
        {
            Implementasi imple = new Implementasi();
            string nama = "Imamoto Deputi";
           string almt = "Banyuwangi";
            string telp = "08775556923";
            string NIM = "1111100740";
            string Jurusan = "Teknik Informatika";

            imple.ShowKTP(nama,almt,telp);
            imple.ShowMHS(nama,NIM,Jurusan,telp);

            Console.ReadKey(true);
        }
    }
    abstract class Abstract
    {
        public abstract void ShowKTP(string nama,string almt,string tlp);
        public void ShowMHS(string nama,string nim,string jur,string tlp)
        {
            Console.WriteLine("KTM(Kartu Tanda Mahasiswa)");
            Console.WriteLine();
            Console.WriteLine("Nama      : {0}",nama);
            Console.WriteLine("NIM       : {0}",nim);
            Console.WriteLine("Jurusan   : {0}",jur);
            Console.WriteLine("No Telp   : {0}",tlp);
            Console.WriteLine();
         }
    }

    class Implementasi : Abstract
    {
        public override void ShowKTP(string nama, string almt, string tlp)
        {
            Console.WriteLine("KTP(Kartu Tanda Penduduk)");
            Console.WriteLine();
            Console.WriteLine("Nama      : {0}",nama);
            Console.WriteLine("Alamat    : {0}",almt);
            Console.WriteLine("No Telp   : {0}",tlp);
            Console.WriteLine();
                Console.WriteLine();
                }
      }
}

e.       Aggregation adalah kondisi ketika object berisi gabungan dari object-object yang berbeda dan bekerja bersama. Misalnya 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.      Over loading 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.
Contoh programnya:
using System;

namespace overloading1
{
    class Program
    {
        private static void perkalian(int a, int b, int c){
            Console.WriteLine("perkalian 3 tipe dalam parameter");
            int x=0;
            x = Convert.ToInt32(a*b*c);
            Console.WriteLine("{0} = {1} * {2} * {3} ",x,a,b,c);

        }
        private static void perkalian(int a, int b){
            Console.WriteLine("perkalian 2 tipe dalam parameter");
            int x=0;
            x = Convert.ToInt32(a*b);
            Console.WriteLine("{0} = {1} * {2}",x,a,b);
        }
        public static void Main(string[] args)
        {
            Console.WriteLine("contoh overloading method dengan nama method perkalian");
            Console.WriteLine();
            perkalian(3,4);
            Console.WriteLine();
            perkalian(3,4,5);
            Console.ReadKey(true);
        }
    }
}

8.      Program oop untuk hitung nilai mata kuliah dan konversinya

namespace konversinilai
{
    class nilai
    {
        private double _ntugas;
        private double _nuts;
        private double _npartisipasi;
        private double _nuas;

        public double ntugas
        {
            get { return _ntugas; }
            set { _ntugas = value; }
        }
        public double nuts
        {
            get { return _nuts; }
            set { _nuts = value; }
        }
        public double npartisipasi
        {
            get { return _npartisipasi; }
            set { _npartisipasi = value; }
        }
        public double nuas
        {
            get { return _nuas; }
            set { _nuas = value; }
        }
        public double akhir()
        {
            return 0.3 * _npartisipasi + 0.2 * _ntugas + 0.3 * _nuts + 0.2 * _nuas;
        }
        public string huruf()
        {
            string huruf = "";
            if (0.3 * _npartisipasi + 0.2 * _ntugas + 0.3 * _nuts + 0.2 * _nuas >= 85)
            {
              huruf = "A";
            }
            else if (0.3 * _npartisipasi + 0.2 * _ntugas + 0.3 * _nuts + 0.2 * _nuas <= 85 && 0.3 * _npartisipasi + 0.2 * _ntugas + 0.3 * _nuts + 0.2 * _nuas >= 65)
            {
                huruf = "B";
            }
            else
            {
                huruf = "C";
            }
            return huruf;
        }
        public void tampil()
        {
            Console.WriteLine("Nilai Tugas=" + _ntugas);
            Console.WriteLine("nilai partisipasi=" + _npartisipasi);
            Console.WriteLine("nilai UTS=" + _nuts);
            Console.WriteLine("nilai UAS=" + _nuas);
            Console.WriteLine("nilai Akhir = " + akhir());
            Console.WriteLine("nilai Huruf = " + huruf());
        }
    }

        class Program
        {
            static void Main(string[] args)
            {
                nilai n1 = new nilai();
                n1.ntugas = 89;
                n1.npartisipasi = 80;
                n1.nuts = 78;
                n1.nuas = 86;
                n1.tampil();

                Console.ReadKey();
            }
        }
    }


 Sumber: