alone and strong

berharap tetap semangat dan kuat walau banyak masalah. ^_^

Senin, 14 Oktober 2013

RANGKUMAN OOP/STRUKTUR DATA DAN ALGORITMA
 

1.    Class adalah rancangan / sketsa / blueprint dari sebuah objek. Sebelum kita mendapatkan objek, kita harus membuat rancangan dari objek tersebut (class) terlebih dahulu. Secara umum, class memiliki 2 macam anggota, yaitu attribute dan method. Attribute merupakan hal-hal yang akan dimiliki oleh objek dari class tersebut. Sedangkan method adalah tindakan yang dapat dilakukan oleh objek dari class tersebut.
Contoh programnya adalah :
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace sda11
{
    class LuasPersegiPanjang
    {
        private
        int panjang;
        int lebar;
        int hasil;
        public void input(int p, int l)
        {
            panjang = p;
            lebar = l;
            hasil = panjang * lebar;
        }
        public void hasilperkalian()
        {
            Console.WriteLine(hasil);
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            int p;
            int l;
            LuasPersegiPanjang a = new LuasPersegiPanjang();
            Console.Write("Masukkan Nilai Panjang = ");
            p = Convert.ToInt32(Console.ReadLine());
            Console.Write("Masukkan Nilai Lebar = ");
            l = Convert.ToInt32(Console.ReadLine());
            a.input(p, l);
            Console.WriteLine();
            Console.Write("Hasil Luas Persegi Panjang adalah ");
            a.hasilperkalian();
            Console.WriteLine();
            Console.Write("Press any key to continue . . . ");
        }
    }
}


2.    Object adalah bentuk fisik dari blueprint yang dirancang oleh class yang telah dibuat. Object tersebut juga disebut Instan Class. Membungkus data dan fungsi bersama menjadi suatu unit dalam sebuah program komputer; objek merupakan dasar dari modularitas dan struktur dalam sebuah program komputer berorientasi objek.

3.    Cara Membuat Object
 

contoh contoh objek dari Class kucing:
kucing_persia, kucingku, kucing_jantan, kucing1,kucing2 dst..

Cara membuat objek tsb diatas di dalam program kucing
kucing_persia = new kucing; kucing kucingku = new kucing;

4.    Konstruktor adalah method yang namanya sama dengan nama class-nya. Konstruktor digunakan untuk inisialisasi variabel ketika membuat instan class/objek baru maka konstruktor dijalankan. Jika anda tidak mendefinisikan konstruktor secara eksplisit maka tetap dianggap membuat konstruktor kosong. Konstruktor juga dapat di-overload (dapat membuat konstruktor lebih dari satu asal parameter jumlahnya beda atau tipe datanya beda. Contoh programnya:

class Program
 {
  public static void Main(string[] args)
  {
   Konstruk kon = new Konstruk();
  
   kon.Show();
  
   Console.WriteLine();
   Console.Write("Press any key to continue . . . ");
   Console.ReadKey(true);
  }
 }
 class Konstruk
 {
  public int A,B;
  public Konstruk()    //  <<--- Construktor
  {
   Console.WriteLine("   ==================================");
   Console.WriteLine("   =            Constructor         =");
   Console.WriteLine("   ==================================");
   Console.WriteLine();
   Console.WriteLine();
   Console.WriteLine();
   //inisialisasi
   A = B = 10;
  }
  ~Konstruk()  //  <<--- Destruktor
  {
   Console.WriteLine("Finalizing");
  }
  public void Show()
  {
   Console.WriteLine("Nilai A = {0}",A);
   Console.WriteLine("Nilai B = {0}",B);
   Console.WriteLine();
   Console.WriteLine("Hasil Perkalian = {0}",A*B);
  }
 }


5.    Public, Private, Protected
PEMBEDA
PUBLIC
PRIVATE
PROTECTED
Umum (Pengertian)
Anggota pribadi dari kelas dasar hanya dapat diakses oleh anggota yang kelas dasar
Anggota publik dari kelas dasar dapat diakses oleh anggota yang kelas dasar, anggota kelas turunan, serta anggota yang berada diluar kelas dasar dan turunan
Anggota dilindungi dari kelas dasar dapat diakses oleh anggota kelas dasar dan anggota kelas turunan
Tanpa penentu akses pada variabel
variabel dapat di akses pada semua kelas yang menggunakan kelas yang berisi variabel tersebut
Hanya dapat diakses oleh metode dalam kelas itu sendiri
Variabel instan dapat diakses pada kelas sendiri dan subkelasnya
Tanpa penentu akses pada method
Metode dapat diakses oleh sembarang kelas
Hanya dapat diakses pada metode2 dalam kelas yang sama
Metode dapat diakses pada kelas sendiri dan pada subkelasnya
Tanpa Penentu akses : Metode hanya dapat diakses oleh metode dalam kelas itu sendiri ataupun metode pada kelas lain yang terletak pada package yang sama


6.    Karakteristik OOP dan Contohnya

a.    Abstraction adalah Kemampuan sebuah program untuk melewati aspek informasi yang diproses olehnya, yaitu kemampuan untuk memfokus 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.

b.   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.

c.    Polymorphise adalah langkah 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 pesa tersebut dikirim. Contohnya, bila sebuah 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:

1: public class Window

   2:     {
   3:         //deklarasi konstruktor dengan dua parameter
   4:         public Window(int top, int left)
   5:         {
   6:             this.top = top;
   7:             this.left = left;
   8:         }
   9:
  10:         //method untuk draw window
  11:         public virtual void DrawWindow()
  12:         {
  13:             Console.WriteLine("Window: drawing Window at {0}, {1}",
  14:             top, left);
  15:         }
  16:
  17:         //member variabel dideklarasikan protected
  18:         //berarti dapat diakses dari class turunannya
  19:         protected int top;
  20:         protected int left;
  21:
  22:     }  // end Window
  23:
  24:     // class ListBox diturunkan dari class Window
  25:     public class ListBox : Window
  26:     {
  27:         //konstruktor yang menmanggil konstruktor dari base class nya
  28:         public ListBox(int top,int left,string contents): base(top, left)
  29:         {
  30:             listBoxContents = contents;
  31:         }
  32:
  33:         //method yang di override dari base class-nya
  34:         //karena mempunyai implementasi yang berbeda
  35:         public override void DrawWindow()
  36:         {
  37:             base.DrawWindow(); // invoke the base method
  38:             Console.WriteLine("Writing string to the listbox: {0}",
  39:             listBoxContents);
  40:         }
  41:
  42:         private string listBoxContents; // member variabel baru
  43:     }  // end ListBox
  44:
  45:     public class Button : Window
  46:     {
  47:         public Button(
  48:         int top,
  49:         int left)
  50:             : base(top, left)
  51:         { }
  52:
  53:         // an overridden version (note keyword) because in the
  54:         // derived method we change the behavior
  55:         public override void DrawWindow()
  56:         {
  57:             Console.WriteLine("Drawing a button at {0}, {1}\n",
  58:             top, left);
  59:         }
  60:     }  // end Button
  61:
  62:     public class Tester
  63:     {
  64:         static void Main()
  65:         {
  66:             Window win = new Window(1, 2);
  67:             ListBox lb = new ListBox(3, 4, "Stand alone list box");
  68:             Button b = new Button(5, 6);
  69:             win.DrawWindow();
  70:             lb.DrawWindow();
  71:             b.DrawWindow();
  72:
  73:             Window[] winArray = new Window[3];
  74:             winArray[0] = new Window(1, 2);
  75:             winArray[1] = new ListBox(3, 4, "List box in array");
  76:             winArray[2] = new Button(5, 6);
  77:
  78:             for (int i = 0; i < 3; i++)
  79:             {
  80:                 winArray[i].DrawWindow();
  81:             }   // end for
  82:         }   // end Main
  83:     }      // end Tester

d.   Inheritance adalah mengatur polimorfisme dan enkapsulasi dengan mengijinkan 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:

1: public class Window

   2:     {
   3:         //objek konstruktor
   4:         public Window(int top, int left)
   5:         {
   6:             this.top = top;
   7:             this.left = left;
   8:         }
   9:
  10:         // simulasi menggambar pada windows
  11:         public void DrawWindow()
  12:         {
  13:             Console.WriteLine("Drawing Window at {0}, {1}",
  14:             top, left);
  15:         }
  16:
  17:         //variabel didefinisikan private sehingga
  18:         //tidak dapat digunakan pada kelas turunannya
  19:         private int top;
  20:         private int left;
  21:     }
  22:
  23:     // ListBox diturunkan dari class Window
  24:     public class ListBox : Window
  25:     {
  26:         // menambahkan parameter pada konstruktor
  27:         public ListBox(int top, int left, string theContents) :
  28:             base(top, left) // call base constructor
  29:         {
  30:             mListBoxContents = theContents;
  31:         }
  32:
  33:         // new version (new keyword) karena
  34:         // pada method di kelas turunan dirubah isinya
  35:         public new void DrawWindow()
  36:         {
  37:             base.DrawWindow(); // memanggil dari base class
  38:             Console.WriteLine("Writing string to the listbox: {0}",
  39:             mListBoxContents);
  40:         }
  41:         private string mListBoxContents; // member variabel baru
  42:     }
  43:
  44:     public class Tester
  45:     {
  46:         public static void Main()
  47:         {
  48:             // membuat instan class baru
  49:             Window w = new Window(5, 10);
  50:             w.DrawWindow();
  51:
  52:             // membuat instan dari class turunan
  53:             ListBox lb = new ListBox(20, 30, "Hello world");
  54:             lb.DrawWindow();
  55:         }
  56:     }

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 dll. 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 adalah 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 yaitu :
a.       jumlah tipe dalam parameter nya harus berbeda.
b.      tipe di parameter harus berbeda.
c.       urutan tipe di dalam parameter harus berbeda.

8.    Membuat program OOP untuk menghitung nilai mata kuliah dan konversinya


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace konversiNilaiMahasiswa
{
    class Nilai_Mahasiswa
    {
        //atribut
        private double ntugas;
        private double npartisipasi;
        private double nuts;
        private double nuas;
        private string nhuruf;
        private double nakhir;
        public double _ntugas
        {
            get { return ntugas; }
            set { ntugas = value; }
        }
        public double _npartisipasi
        {
            get { return npartisipasi; }
            set { npartisipasi = value; }
        }
        public double _nuts
        {
            get { return nuts; }
            set { nuts = value; }
        }
        public double _nuas
        {
            get { return nuas; }
            set { nuas = value; }
        }
        public double HitungNilaiAkhir(double ntugas, double npartisipasi,double nuts,double nuas)
        {
            return 0.3 * ntugas + 0.2 * npartisipasi + 0.3 * nuts + 0.2 * nuas;
        }
        public string konversiHuruf(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.WriteLine("Menghitung Nilai Mata Kuliah Mahasiswa");
            Console.WriteLine("<===============================================>");
            Console.Write("Nilai Tugas = ");
            ntugas = double.Parse(Console.ReadLine());
            Console.Write("Nilai Partisipasi = ");
            npartisipasi = double.Parse(Console.ReadLine());
            Console.Write("Nilai UTS = " );
            nuts = double.Parse(Console.ReadLine());
            Console.Write("Nilai UAS = ");
            nuas = double.Parse(Console.ReadLine());
            Console.WriteLine("-----------------------------------------------");
            nakhir =HitungNilaiAkhir(ntugas,npartisipasi,nuts,nuas);
            Console.WriteLine("Nilai Akhir = " + nakhir);
            Console.WriteLine("-----------------------------------------------");
            nhuruf = konversiHuruf(nakhir);
            Console.Write("nilai huruf  = " + nhuruf);
        }
    }
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace konversiNilaiMahasiswa
{
    class Program
    {
        static void Main(string[] args)
        {
            Nilai_Mahasiswa nl1 = new Nilai_Mahasiswa();
            nl1.tampil();
            Console.ReadKey();
        }
    }
}

sumber referensi

http://erickkurniawan.wordpress.com/2008/06/20/object-oriented-programming-in-c-part3/