Arsip untuk ‘oop’ Kategori

h1

Upload Server Control – ASP.NET

Oktober 22, 2008

Mulai ASP.NET 2.0 mode uplad dengan metode HTML FileUpload server control yaitu <input type=”file”> sudah diperbaiki dengan adanya server control <asp:FileUpload>. Kita hanya menambahkan sedikir script untuk menunjukkan folder tempat menyimpan file yang akan diupload.

Berikut ini merupakan sebuah contoh penggunaan upload server control pada ASP.NET, sebelumnya kamu buat dahulu sebuah folder C:\fileUpload yang akan digunakan untuk menampung file yang akan diupload. Contoh kodenya adalah sebagai berikut :

<%@ Page Language="VB" %>
<%@ Import Namespace="System.IO" %>


File yang akan diupload :



Coba kamu jalankan maka hasilnya adalah sebagai berikut :

File yang akan diupload :

Data File Yang Ada Upload :

Nama File : mailing list.txt

Jenis File : text/plain

Besar File : 102 byte

Mungkin ada tambahan masukan atau pertanyaan? silahkan posting dibawah, makasih :)

h1

Diagram Hirarki Teciptanya Bahasa-Bahasa Pemrograman C# , PHP, Java, Javascript, Delphi, Python, Ada, Ruby, Perl, Cobol, Fortran

September 28, 2008

Diagram Hirarki Teciptanya Bahasa-Bahasa Pemrograman C# , PHP, Java, Javascript, Delphi, Python, Ada, Ruby, Perl, Cobol, Fortran

Cukup menarik untuk menyimak dari mana asal semua bahasa-bahasa yang telah aku sebutin pada judul diatas. Diagram hirarkinya dapat kamu lihat disini

http://www.levenez.com/lang/

h1

Tutorial belajar C# – Pengenalan C# – Bab 6 – Pemrograman Berorientasi Objek

Agustus 30, 2008

<< Tutorial sebelumnya : Tutorial belajar C# – Pengenalan C# – Bab 5 – Penanganan Error

Bahasa yang benar-benar berorientasi obyek mendukung 4 pilar utama dari OOP, yaitu Abstraction, Inheritance, polimorphism dan encapsulation. OOP merupakan metode pemrograman dimana programmer harus mendefinisikan tipe data dari struktur data dan juga tipe dari operasi yang dapat diaplikasikan ke struktur data. Dengan demikian struktur data menjadi objek yang memiliki data dan fungsi. Beberapa keunggulan OOP antara lain :

  • Maintainability : kemampuan untuk dikelola
  • Extensibility : kemampuan untuk dapat diperluas
  • Reusability : kemampuan untuk dapat digunakan kembali

Beberapa komponen penting yang sering digunakan dalam OOP antara lain :

  • Objek : merupakan dasar intetitas runtime dalam suatu sistem berorientasi objek
  • Class : merupakan cetak biru (blueprint) atau template dari objek dengan kata lain class merupakan representasi abstrak sedangkan objek merupakan representasi nyata. Suatu class dapat berisi property, field, method dan event dari suatu objek yang disebut members dari suatu class. Dalam .net semua class dasar dikelompokkan kedalam Namespace.
  • Method : merupakan suatu tindakan yang dilakukan oleh objek
  • Event : pemberitahuan yang diterima oleh objek
  • Field : merupakan informasi atau atribut yang terdapat didalam suatu objek. Bentuk field mirip dengan variabel yaitu dapat dibaca dan diset secara langsung.
  • Property : merupakan informasi (atribut) yang dapat disimpan dalam objek. Property dapat dideklarasikan dengan Public Property (tdk bisa menulis property) dan Method Property (dapat mengontrol operasi property). Terdapat 2 bagian dalam property yaitu Get dan Set. Get hanya memperbolehkan akses data sedangkan Set memperbolehkan mengubah nilai data.

Class dan Objek

Berikut adalah contoh class dan cara instansiasi class tersebut menjadi objek pada C# :

//ClassExample.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; 

namespace STS.Console
{
    public class ClassExample
    {
    }
}

Berikut adalah contoh proses instansiasi class ClassExample :

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using STS.Common.Math; 

namespace STS.Console
{
    class Program
    {
        static void Main(string[] args)
        {
		            ClassExample classExample = new ClassExample();
        }
    }
}

Method dan Field

Ada dua jenis method, yaitu :

1. Method yang tidak melemparkan nilai biasanya disebut procedure.

Sintaks :

ClassExamle.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; 

namespace STS.Console
{
    public class ClassExample
    {
        public void Tambah(int bilanganA, int bilanganB)
        {
            int hasil = bilanganA + bilanganB;
            System.Console.WriteLine(hasil);
        }
    }
}

Contoh penggunaan :

Program.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using STS.Common.Math; 

namespace STS.Console
{
    class Program
    {
        static void Main(string[] args)
        {
            ClassExample classExample = new ClassExample();
            classExample.Tambah(3, 10); 

            System.Console.ReadKey(); 

        }
    }
}

2. Method yang melemparkan nilai biasanya disebut function.

Sintaks :

ClassExamle.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; 

namespace STS.Console
{
    public class ClassExample
    {
        public int Kurang(int bilanganA, int bilanganB)
        {
            return bilanganA - bilanganB;
        }
    }
}

Contoh penggunaannya :

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using STS.Common.Math; 

namespace STS.Console
{
    class Program
    {
        static void Main(string[] args)
        {
            ClassExample classExample = new ClassExample();
            System.Console.WriteLine(classExample.Kurang(17,4)); 

            System.Console.ReadKey(); 

        }
    }
}

Field adalah property pada class seperti pada contoh kode berikut :

ClassExample.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; 

namespace STS.Console
{
    public class ClassExample
    {
        public int bilangan1;
        public int bilangan2;
        private string hasil;
        protected string nama;
    }
}

Dari contoh di atas maka field bilangan1 dan bilangan2 dapat diakses secara langsung
sebagai method dari objek di dalam class manapun karena menggunakan public sebagai
access-modifier. Sedangkan field nama, karena menggunakan access-modifier protected maka hanya dapat
digunakan oleh class yang merupakan class turunan dari ClassExample.

Contoh :

ClassTurunan.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; 

using STS.Console; 

namespace STS.Console
{
    public class ClassTurunan : ClassExample
    {
        public void TestMethod()
        {
            this.nama = "Naruto";
        }
    }
}

Pada class ClassExample terdapat field yang menggunakan access-modifier private. Artinya
field ini hanya bisa digunakan di dalam class tersebut.
Field pada suatu class secara default mempunyai access-modifier private dan memang
seharusnya tetap seperti itu. Agar class lain dapat melakukan pengambilan (get) atau pengisian (set) nilai field tersebut maka perlu dibuat public method yang berfungsi untuk
itu.
Public method ini dideklarasikan bukan seperti method yang telah dibuat sebelumnya,
istilah yang tepat sebagai pengganti nama ‘method’ untuk fungsi seperti di atas adalah
Property.

Cara mendeklarasikan Property adalah sebagai berikut :

ClassExample.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; 

namespace STS.Console
{
    public class ClassExample
    {
        public int bilangan1;
        public int bilangan2;
        private string hasil;
        protected string nama; 

        public string Hasil
        {
            get {return hasil;}
            set {hasil = value;}
        }
    }
}

Static Member

Pada bagian sebelumnya telah dijelaskan cara membuat class, method dan field. Pada
contoh di atas terlebih dahulu harus dibuat instance dari class agar dapat mengakses
method atau field.

Pada bagian ini akan dijelaskan cara membuat method agar dapat digunakan tanpa harus
melakukan instansiasi class terlebih dahulu.

Caranya sangat mudah yaitu dengan menambahkan kata kunci static pada method yang
diinginkan seperti pada contoh berikut :

ClassExample.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; 

namespace STS.Console
{
    public class ClassExample
    { 

        public static void Kali(int bilanganA, int bilanganB)
        {
            int hasil = bilanganA * bilanganB;
            System.Console.WriteLine(hasil);
        }
    }
}

Untuk menggunakan method ini cukup dengan menulis kode seperti berikut ini :

Program.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using STS.Common.Math; 

namespace STS.Console
{
    class Program
    {
            ClassExample.Kali(3, 10); 

            System.Console.ReadKey(); 

        }
    }
}

Inheritance dan Polymorphism

Inheritance

Inheritance atau penurunan adalah kemampuan membuat suatu class anak dari suatu class
induk, dimana seluruh field dan method diturunkan kepada class anak, kecuali method atau
field dengan access-modifier private.

Contoh kasus inheritance ini adalah seperti kode berikut :

ClassTurunan.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; 

using STS.Console; 

namespace STS.Console
{
    public class ClassTurunan : ClassExample
    {
        public void TestMethod()
        {
            this.nama = "Naruto";
        }
    }
}

Pada kode di atas, yang menjadi class induk adalah ClassExample dan ClassTurunan
merupakan class anaknya. Baris berikut menyatakan cara membuat class ClassTurunan
sebagai turunan dari class ClassExample.

Polymorphism

Polymorphism bila diartikan dengan melihat arti dari kata penyusunnya yaitu poly yang
berarti “banyak dan morph yang berarti “bentuk” maka secara keseluruhan artinya adalah“banyak bentuk”.

Masih berhubungan dengan inheritance atau penurunan, misalkan dibuat class yang akan
menjadi class induk seperti berikut :

CurveMath.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; 

namespace STS.Common.Math
{
    public class CurveMath
    {
        private int panjang;
        private int lebar;
        private int jejari; 

        public int Panjang
        {
            set{panjang = value;}
            get { return panjang; }
        } 

        public int Lebar
        {
            set { lebar = value; }
            get { return lebar; }
        } 

        public int Jejari
        {
            set { jejari = value; }
            get { return jejari; }
        } 

        public virtual void HitungLuas()
        {
            System.Console.WriteLine(Panjang * Lebar);
        }
    }
}

Pada kode di atas dapat dilihat terdapat kata kunci virtual pada method berikut :

public virtual void HitungLuas()
{
    System.Console.WriteLine(Panjang * Lebar);
}

Artinya method ini dapat diubah menjadi bentuk lagi dengan cara di-override. Seperti yang
dilakukan oleh class Lingkaran.

Lingkaran.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; 

using STS.Common.Math; 

namespace STS.Console
{
    public class Lingkaran : CurveMath
    {
        public override void HitungLuas()
        {
            System.Console.WriteLine(3.14 * Jejari * Jejari);
        }
    }
}

Pada kode di atas dapat dilihat digunakan kata kunci override, kata kunci ini hanya dapat
digunakan kepada method yang menggunakan kata kunci virtual.

Method Overloading

Method overloading, untuk mengetahui arti dari istilah ini maka bisa melihat terlebih
dahulu baris kode di bawah ini :

Lingkaran.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; 

using STS.Common.Math; 

namespace STS.Console
{
    public class Lingkaran : CurveMath
    {
        public override void HitungLuas()
        {
            System.Console.WriteLine(3.14 * Jejari * Jejari);
        } 

        /// <summary>
        /// Tidak ada parameter
        /// </summary>
        public void Tambah()
        {
            System.Console.WriteLine(3 + 10);
        } 

        /// <summary>
        /// Terdapat satu parameter
        /// </summary>
        public void Tambah(int bilangan)
        {
            System.Console.WriteLine(3 + bilangan);
        } 

        /// <summary>
        /// Terdapat dua parameter dengan tipe data int
        /// </summary>
        public void Tambah(int bilangan1, int bilangan2)
        {
            System.Console.WriteLine(bilangan1 + bilangan2);
        } 

        /// <summary>
        /// Terdapat dua parameter dengan tipe data double
        /// </summary>
        public void Tambah(double bilangan1, double bilangan2)
        {
            System.Console.WriteLine(bilangan1 + bilangan2);
        }
    }
}

Pada kode di atas dapat dilihat terdapat tiga method dengan nama yang sama yaitu Tambah
perbedaan tiap method adalah dilihat dari jumlah parameter dan tipe data yang digunakan.

Collection

Collection berfungsi sebagai kontainer untuk menyimpan sekumpulan objek. Collection
mirip dengan konsep array. Untuk mengakses data dalam collection biasanya dilakukan
dengan melakukan iterasi terhadap data yang ada dalam collection atau dapat juga diakses
dengan menggunakan indeks atau indexers.

ArrayList

Berikut adalah contoh penggunaan ArrayList.

Program.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using STS.Common.Math;
using System.Collections; 

namespace STS.Console
{
    class Program
    {
        static void Main(string[] args)
        {
            ArrayList al = new ArrayList(); 

            Pegawai p1 = new Pegawai();
            p1.Nama = "Naruto";
            p1.Umur = 30;
            al.Add(p1); 

            Pegawai p2 = new Pegawai();
            p2.Nama = "Faisal";
            p2.Umur = 25;
            al.Add(p2); 

            System.Console.WriteLine("Jumlah objek : " + al.Count); 

            for (int i = 0; i < al.Count; i++)
            {
                int j = i + 1;
                Pegawai pegawai = (Pegawai)al[i];
                System.Console.WriteLine(j + ". " + pegawai.Nama
+"("+pegawai.Umur+")");
            } 

            System.Console.ReadKey();
        }
    }
}

Hashtable

Berbeda dengan ArrayList, Hashtable mempunyai key. Berikut contoh pemanfaatan
Hashtable.

rogram.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using STS.Common.Math;
using System.Collections; 

namespace STS.Console
{
    class Program
    {
        static void Main(string[] args)
        {
            Hashtable ht = new Hashtable(); 

            Pegawai p1 = new Pegawai();
            p1.Nama = "Naruto";
            p1.Umur = 30;
            ht.Add("P1", p1); 

            Pegawai p2 = new Pegawai();
			            p2.Nama = "Faisal";
            p2.Umur = 25;
            ht.Add("P2", p2); 

            System.Console.WriteLine("Jumlah objek : " + ht.Count); 

            IDictionaryEnumerator enumerator = ht.GetEnumerator();
            while (enumerator.MoveNext())
            {
                Pegawai pegawai = (Pegawai)enumerator.Value; 

                System.Console.WriteLine(enumerator.Key.ToString() + " " +
pegawai.Nama
                + "(" + pegawai.Umur + ")");
            } 

            System.Console.ReadKey(); 

        }
    }
}

Mungkin ada tambahan, masukan atau pertanyaan untuk tulisan diatas???? Silahkan isikan comment dibawah :)

h1

Overloading pada C#

Agustus 22, 2008

Dalam C# kita boleh memiliki lebih dari satu method atau konstruktor dengan nama yang sama tetapi memiliki parameter dan fungsi proses yang berbeda. Inilah keistimewaan C# yang dikenal dengan overloading.

Method Overloading

Ada yang perlu kamu ketahui tentang method overloading, antara method yang satu dengan method lainnya dapat saling memanggil meskipun namanya sama. Contoh programnya adalah sebagai berikut :

Read the rest of this entry ?

h1

Contoh Class dan Objek di C#

Agustus 18, 2008

Mungkin kamu sudah tau bahwa objek merupakan instance atau turunan dari sebuah class. Tapi apakah yang membedakan class dan instancenya?. Untuk memahaminya coba kamu perhatikan analogi ini : perhatikan perbedaan antara tipe data integer dengan variabel yang mempunyai tipe integer. Jika dituliskan pasti kamu akan menulis seperti ini :

int nilaiKu = 10;

Kamu tidak dapat menuliskan seperti ini :

int = 10;

Ya iya lah, masa ya iya donk… :p. Jelas saja kamu tidak dapat mendefinisikan sebuah nilai kepada sebuah objek tipe data. Ketika kamu mendeklarasikan sebuah class maka kamu mendefinisikan juga property dan behavior dari objek2 class tersebut. Contohnya ketika kamu membuat sebuah aplikasi dengan form windows maka control2 yang kamu gunakan merupakan instance dari class2 pada namespace Windows.form.

Seperti biasanya… harus ada contoh codingnya yaw… ho ho ho :p


using System;

class Mahasiswa
{
    // field atau status dari class mahasiswa
    string nama;
    int usia;
    int nilaiMat;
    int nilaiBahasa;
    int nilaiManajemen;
    int nilaiInggris;
    int totalNilai;
    double rataRata;

    //method2

    void hitungTotalNilai()
    {
        totalNilai = nilaiMat + nilaiBahasa +
        nilaiManajemen + nilaiInggris;
    }

    void hitungRataRata()
    {
        rataRata = (double)totalNilai / 4;
    }

    double ambilRataRata()
    {
        return rataRata;
    }

    //method utama
    public static void Main()
    {
        //membuat instance dari class mahasiswa
        Mahasiswa mhs = new Mahasiswa();

        //menentukan isi dari field
        mhs.nama = "Atep";
        mhs.usia = 29;
        mhs.nilaiMat = 80;
        mhs.nilaiBahasa = 90;
        mhs.nilaiManajemen = 60;
        mhs.nilaiInggris = 86;

        //memanggil method
        mhs.hitungTotalNilai();
        mhs.hitungRataRata();

        double mhsRataRata = mhs.ambilRataRata();

        //memanggil dan menerima nilai yang
        //dikembalikan dari method

        Console.WriteLine("nama : {0} \nUsia : {1}" +
            "\nRata-rata : {2}",mhs.nama,mhs.usia,
            mhsRataRata );

        Console.ReadLine();

    }
}

Pada contoh diatas kita menciptakan sebuah class mahasiswa dengan 8 field atau data, 4 method yang salah satunya merupakan method utama. Pada method utama terjadi beberapa hal penting yaitu :

  1. penciptaan objek msh yang merupakan instance dari class mahasiswa
  2. pendifinisan field2 pada objek mhs

Nah udah jelas kan antara class dan instancenya…. yang mau nanya2 silahkan isi testim di bawah yaw… makasih.

h1

System.GUID untuk identitas unik dari object

Agustus 8, 2008

Bila anda sering bermain dengan `object` maka anda mau tidak mau akan membutuhkan UUID (Universally Unique Identifier) untuk memberikan nilai identitas `yang` unik bagi object tersebut. Nah Microsoft .NET sudah memiliki built-in class untuk UUID ini dan terkenal dengan GUID (Globally Unique Identifier).

Karena built-in, pemakaiannya pun cukup mudah:

Guid g = new Guid();
g = Guid.NewGuid();
Console.WriteLine(g);
Console.WriteLine(Guid.NewGuid());

Pada baris pertama, nilai g masih sama dengan nilai default atau dalam format canonical `100000000-0000-0000-0000-000000000000`. Dan dengan bantuan static method NewGuid() maka sebuah GUID baru yang (mungkin) unik akan dibuat. Penggalan code diatas akan menghasilkan 2 buah GUID yang berbeda.

Untuk programmer yang terbiasa menggunakan Relational Database, saya selalu menggunakan auto-increament value sebagai identitas dari tabel. Namun ini hampir tidak bisa dilakukan di dalam Object Database. Disinilah UUID digunakan, walaupun UUID tidak menjamin bahwa setiap nilai yang dihasilkan adalah unik, namun dengan kemungkinan nilai yang dihasilkan sebanyak 25616 membuat kemunculan dua nilai yang sama sangatlah kecil.
Cara penggunaannya pun cukup mudah, cukup tambahkan satu identifier Guid sebagai bagian dari object. Nah.. kalau sudah diberi identifikasi, object jadi lebih mudah di index dan di search.

Berikut contoh penggunaan pada object Person:

public class Person
{
Guid _personid;
string _name;
string _phoneNumber;
string _email;

public Person(string name, string phoneNumber, string email)
{
_name = name;
_phoneNumber = phoneNumber;
_email = email;
// Creating new UUID based on assumption that new Person object created
_personid = Guid.NewGuid();
}

public Person(Guid PersonID, string name, string phoneNumber, string email)
{
_name = name;
_phoneNumber = phoneNumber;
_email = email;
// assigning UUID to value, based on assumption that Person object is not a new object
_personid = PersonID;
}

public string Name { get { return _name; } set { _name = value;} }
public string PhoneNumber { get { return _phoneNumber; } set { _phoneNumber = value; } }
public string Email { get { return _email; } set { _email = value; } }
public Guid PersonID { get { return _personid; } set { _personid = value; } }
}

System.GUID adalah implementasi Microsoft dari UUID version 2 atau DCE Security. Dan saya anggap cukup mumpuni sehingga saya saat ini belum memerlukan porting implementasi UUID dari tempat lain.

h1

Contoh Program Inheritance

Agustus 8, 2008

Contoh Program Inheritance

Kali ini kita akan membuat sebuah program simple yang menggambarkan konsep inheritance. Didalam program yang akan dibuat terdapat sebuah base class (class induk) bernama ORANG_TUA dan dua class turunannya (ANAK_PRIA dan ANAK_WANITA). Langkah-langkahnya adalah sebagai berikut :

1. Desain proyek baru dan pada form tambahkan objek listbox dan button.

2. Tambahkan class baru dengan nama ORANG_TUA dan ketikkan kode2 program berikut :

Public Class ORANG_TUA

	'variabel untuk menampung nama bapak
    Private XBapak As String  

	'variabel untuk menampung nama ibu
    Private XIbu As String

	'property (atribut/informasi) class
    Public Property Nama_Bapak() As String
		'Get : hanya ijinkan akses data
        Get
            Return XBapak
        End Get
		'Set : mengijinkan ubah data
        Set(ByVal value As String)
            XBapak = value
        End Set
    End Property

	'property (atribut/informasi) class
    Public Property Nama_Ibu() As String
        Get
            Return XIbu
        End Get
        Set(ByVal value As String)
            XIbu = value
        End Set
    End Property

End Class

3. Tambahkan class baru dengan nama ANAK_WANITA dan ketikan kode2 berikut :

Public Class ANAK_WANITA

    'membuat turunan dari base class
    Inherits ORANG_TUA
    Private XWanita As String
    Private XUsia_W As String

    Public Property Nama_Wanita() As String
        Get
            Return XWanita
        End Get
        Set(ByVal value As String)
            XWanita = value
        End Set
    End Property
    Public Property Usia_Wanita() As Byte
        Get
            Return XUsia_W
        End Get
        Set(ByVal value As Byte)
            XUsia_W = value
        End Set
    End Property
End Class

4. Tambahkan class baru dan beri nama ANAK_PRIA dan tambahkan kode2 program berikut :

Public Class ANAK_PRIA

	'membuat turunan dari base class
    Inherits ORANG_TUA
    Private XPria As String
    Private XUsia_P As String

    Public Property Nama_Pria() As String
        Get
            Return XPria
        End Get
        Set(ByVal value As String)
            XPria = value
        End Set
    End Property

    Public Property Usia_Pria() As Byte
        Get
            Return XUsia_P
        End Get
        Set(ByVal value As Byte)
            XUsia_P = value
        End Set
    End Property
End Class

5. Sekarang : buat event click pada objek button1 dan ketikkan kode2 berikut :

Public Class Form1

    Private Sub Button1_Click(ByVal sender As
	System.Object, ByVal e As System.EventArgs)
	Handles Button1.Click
        Dim obj_Wanita As New ANAK_WANITA
        Dim obj_Pria As New ANAK_PRIA

        With obj_Wanita
            .Nama_Bapak = "Subandrio"
            .Nama_Ibu = "Titi Rukmiati"
            .Nama_Wanita = "Nina Ramadani"
            .Usia_Wanita = 10
        End With

        With obj_Pria
            .nama_pria = "Kevin Maulana"
            .Usia_pria = 6
        End With

        With ListBox1
            .Items.Add("nama ayah   : " & _
            obj_Wanita.Nama_Bapak)
            .Items.Add("nama ibu    : " & _
            obj_Wanita.Nama_Ibu)
            .Items.Add("anak wanita : " & _
            obj_Wanita.Nama_Wanita)
            .Items.Add("usia        : " & _
            obj_Wanita.Usia_Wanita)
            .Items.Add("anak pria   : " & _
            obj_Pria.Nama_Pria)
            .Items.Add("usia        : " & _
            obj_Pria.Usia_Pria)
        End With

    End Sub
End Class

6. Jalankan programnya dan klik tombol proses untuk melihat hasilnya pada listbox

Keterangan :

  1. Pembuatan interface proses
  2. Pembuatan class induk (class orang_tua) dengan property public nama_bapak dan nama_ibu yang akan diturunkan kepada class anak.
  3. class anak_wanita melakukan inheritance (membuat pewarisan) dari class induk jadi semua sifat (property) yang dimiliki class induk akan diturukan/diwariskan kepada class anak. Semua property dari induk yang mempunyai tipe public akan diturunkan kepada anak.
  4. Untuk class anak_pria kasusnya sama seperti pada no 2
  5. Pada saat tombol di klik, program hanya perlu membuat objek dari anak (tidak perlu lagi membuat objek induk). Hal ini karena anak sudah mewarisi property induk. Jadi tinggan memasukkan nilai ke tiap2 propety. Kemudian dimasukkan ke ListBox
  6. Dijalankan deee… programnya…
  7. Muncul error???? cape deehhh…
h1

Dasar-dasar OOP

Agustus 5, 2008

Dasar-dasar OOP

Bahasa yang benar-benar berorientasi obyek mendukung 4 pilar utama dari OOP, yaitu Abstraction, Inheritance, polimorphism dan encapsulation. OOP merupakan metode pemrograman dimana programmer harus mendefinisikan tipe data dari struktur data dan juga tipe dari operasi yang dapat diaplikasikan ke struktur data. Dengan demikian struktur data menjadi objek yang memiliki data dan fungsi. Beberapa keunggulan OOP antara lain :

  • Maintainability : kemampuan untuk dikelola
  • Extensibility : kemampuan untuk dapat diperluas
  • Reusability : kemampuan untuk dapat digunakan kembali

Beberapa komponen penting yang sering digunakan dalam OOP antara lain :

  • Objek : merupakan dasar intetitas runtime dalam suatu sistem berorientasi objek
  • Class : merupakan cetak biru (blueprint) atau template dari objek dengan kata lain class merupakan representasi abstrak sedangkan objek merupakan representasi nyata. Suatu class dapat berisi property, field, method dan event dari suatu objek yang disebut members dari suatu class. Dalam .net semua class dasar dikelompokkan kedalam Namespace.
  • Method : merupakan suatu tindakan yang dilakukan oleh objek
  • Event : pemberitahuan yang diterima oleh objek
  • Field : merupakan informasi atau atribut yang terdapat didalam suatu objek. Bentuk field mirip dengan variabel yaitu dapat dibaca dan diset secara langsung. Contoh dalam VB.Net :

    Contoh Code :

    Class ANAK
    Dim Nama_Anak As String = “Vonita”
    Public Sub Kegitan_Anak()
    ‘kode program
    End Sub
    End Sub

  • Property : merupakan informasi (atribut) yang dapat disimpan dalam objek. Property dapat dideklarasikan dengan Public Property (tdk bisa menulis property) dan Method Property (dapat mengontrol operasi property). Terdapat 2 bagian dalam property yaitu Get dan Set. Get hanya memperbolehkan akses data sedangkan Set memperbolehkan mengubah nilai data. Contoh dalam VB.Net

Contoh Code :

Class ANAK
Private Berat As Single
Public Property Kondisi () As Single

Get
Return Berat
End Get

Set (ByVal Value As Single)
Berat = Value;
End Set

End Sub

h1

SHARED

Agustus 4, 2008

SHARED

Kita lihat lagi kode pada pembahasan sebelumnya  :

Contoh Code :

Private Sub Button1_Click(ByVal sender As Object,_
ByVal e As System.EventArgs)

myform = New Form1()
iFormCounter += 1
myform.Text = “Doppelganger – Number ” & _
iFormCounter.ToString
myform.Show()

End Sub

pada kode diatas kita telah membuat kopian beberapa objek dari objek pertama yaitu Form1. Variabel pertama ditentukan scopenya dengan  statement Dim yang mempunyai type Form1. Kita juga menggunakan variabel iFormCounter untuk menghitung jumlah objek yang dibuat turunannya.

Cara baru didalam Visual basic.net yang lebih familiar adalah shared.

Contoh Code :

Dim myform As Form1

Shared iFormCounter As Integer = 0

Jika anda terbiasa dengan bahasa OOP lainnya, item-item Shared disebut sebagai Static atau anggota class.

h1

~INHERITANCE

Agustus 4, 2008

INHERITANCE

Sebagaimana kamu lihat di pembahasan sebelumnya bahwa Form merupakan sebuah objek yang memiliki properties dan method yang dapat langsung anda gunakan. Hal ini karena Form ini merupakan bagian dari base class (disebut juga dengan parent class) dimana objek tersebut di turunkan (inherit). Inheritance merupakan salah satu konsep fundamental didalam OOP. Dengan menggunakan inheritance kamu dapat memperoleh class dari class lainnya yang telah ditulis. Contoh base class dari Form yang telah dibuat adalah System.Windows.Forms.Form.

Contoh Code :

Public Class Form1 Inherits System.Windows.Forms.Form

Ketika sebuah class diturunkan dari induknya (parent class) maka diturunkan juga properties dan method yang dimiliki sang induk.