Setelah tak baca lg nie post…. ternyata panjang jg.. ini link programna silakan download disini

Nah… td udah tentang OOP.. skarang gmn tuh programnya ..

Ok pertama object apa ini yg mau di utak atik..

Ehmmm gmn klo segitiga, perssegi dan persegi panjang

Pertama kita lihat dlu atribut sama aksinya

SEGITIGA

Atribut: alas, tinggi;

Aksi: Mencari luas, Mencari Keliling

Persegi

Atribut:  Alas, Tinggi

Aksi: Mencari Luas, Mencari Keliling

Persegi Panjang

Atribut: Alas, Tinggi

Aksi: Mencari Luas, Mencari Keliling

Nah…. Klo diliat kayaknya semua bagiannya sama aja SWT

OK, klo gt pake jurus OOP “TURUNAN”

Nah turunan itu gmn??

Contohnya seperti ini.. ada object, bebek, ayam, itik dan angsa.. nah semuanya karna memiliki beberapa persamaan dimasukkan dalam kelompok unggas (semoga bener :p). unggas ini akan memiliki sifat umum dari bebek, ayam dan sebangsanya… lalu baru kemudin di turunkan

Ok jadi seperti ini

Kita beri nama class nya adalah bidang dan isinya sebagai berikut

BIDANG

Attribute : Alas, Tinggi.

Aksi: Mencari Luas, Mencari Keliling

nah.. klo dah jadi tinggal diturunkan/diwariskan(gmn caranya?? Tar tak tulis di koding)  dan hasilnya seperti ini

SEGITIGA

Aksi dan attribute : sama dengan bidang

PERSEGI

Aksi dan attribute : sama dengan bidang

PERSEGI PANJANG

Aksi dan attribute : sama dengan bidang

nah ini gambarannya

Belajar C# OOP turunan

Nah… mungkin dangan bikin program na .. bisa jadi ngerti (q pun blum ngerti hahah)

Pertama buat tampilan ini

Belajar C# Tampilan program awal

3 Button dan 4 TextBox

Idenya adalah… kita masukkan tinggi dan alas / panjang dan lebar, lalu klo kita teken persegi… maka data akan diproses untuk mendapat luas dan keliling dari persegi..

Namanya orientasi OBJECT, pasti ada objectnya..

Kapan dibikin…?? Blum saatnya… harus bikin cetakannya dulu atau dalam hal ini disebut class..

Sesuai dengan gambar 1 kita bikin class yg paling atas yaitu Bidang yg nanti bakal mewariskan semua method dan variablenya

Klik kanan nama project kalian… di solution explorer (pojok kanan).. trus lakukan seperti gambar

membuat class C#

nama class C#

Dah sama nama classnya???  Langsung masukin koding ini di classnya..

//============================================

//ini field.. tempatnya attribut

public int tinggi, alas;

//ini aksinya..

public double luas(int a, int b)

{

// a sebagai wakil tinggi, dan b sebagai wakil alas

double c = a * b;

return (c);

}

//ini aksi juga

public double Keliling(int a, int b)

{

double c = (a + b) * 2;

return (c);

}

//============================================

Koding ini diketik dalem kurung kurawal class bidang…

gambar Class Bidang

Skarang tinggal bikin class Segitiga, Persegi, PersegiPanjang (samakan namanya yaaa..!!)

Klo udah cek nama class… yg kayak di Gambar 5.. lalu tambahin “ : Bidang” sampe titik dua na jg di ketik

Nah hasilnya seperti ini…

//untuk class PersegiPanjang===================

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

namespace WindowsFormsApplication1

{

// tambah : Bidang sebagai tanda class ini adalah turunan dari class bidang

// atau dengan kata lain.. class ini dapet warisan dari class Bidang

class PersegiPanjang : Bidang

{

}

}

//==========================================

Lakukan hal yang sama dengan class persegi dan segitiga

//Persegi================================

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

namespace WindowsFormsApplication1

{

class Persegi : Bidang

{

}

}

//=============================================

//Segitiga ========================================

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

namespace WindowsFormsApplication1

{

class Segitiga : Bidang

{

}

}

//===============================================

Sudah??? Klo dilihat2 kayak class kosongan ya hahah… tp sebenernya semua class itu berisi apapun yg ada dalam class Bidang

Nah skarang membuat Objectnya dengan mantra New

Nah ViewCode Form1

Lalu buat Code ini.. letakkan diatas kalimat “public Form1()”

//=============================================

//nah mantra ini yg dipakai membuat object

Persegi objekPersegi = new Persegi();

PersegiPanjang objekPersegiPanjang = new PersegiPanjang();

Segitiga objectSegitiga = new Segitiga();

//=============================================

Dengan begini kita bisa pakai variable yang ada di dalem class tersebut..

Sebagai contoh… doble klik button1 (alias persegi)

Lalu masukkan kode berikut

//========================================

//kita makek variable dari class Persegi

//objeckPersegi yg kita bikin diatas.. digunakan untuk mengambil variable ataupun method yg ada disana (class persegi)

objekPersegi.tinggi = Convert.ToInt16(textBox1.Text);

objekPersegi.alas = Convert.ToInt16(textBox2.Text);

//mengambil nilai return dari method luas dan keliling pada class persegi

textBox3.Text = Convert.ToString(objekPersegi.luas(objekPersegi.tinggi, objekPersegi.alas));

textBox4.Text = Convert.ToString(objekPersegi.Keliling(objekPersegi.tinggi, objekPersegi.alas));

//========================================

Panjang ya?? Gak kok.. kan dah keliatan tulisan namanya.. tinggal enter… cman tulisannya doing yg panjang2 kok..

Nah asik kan… cman bikin 2 method dan 2 variable.. bisa menangani 3 class dan seharusnya punya 6 method..

Klo skarang ga kerasa capeknya.. coba 30 class… bakal berasa kegunaannya..

Nah.. lanjut ke button2

//===========================================

objekPersegiPanjang.tinggi = Convert.ToInt16(textBox1.Text);

objekPersegiPanjang.alas = Convert.ToInt16(textBox2.Text);

textBox3.Text = Convert.ToString(objekPersegiPanjang.luas(objekPersegiPanjang.tinggi, objekPersegiPanjang.alas));

textBox4.Text = Convert.ToString(objekPersegiPanjang.Keliling(objekPersegiPanjang.tinggi, objekPersegiPanjang.alas));

//===========================================

Panjang banget tulisannya… lain kali bikin nama variablenya pendek2 deh..

Eeehhh tgg bentar…. Luas segitiga sama keliling segitiga kan rumusnya beda..!!

Gmn dong??

Nah… pake Jurus OOP yang lain… namanya Override dan virtual lets go ke class bidang.. edit seperti ini

//=======================================

//ini field.. tempatnya attribut

public int tinggi, alas;

//ini aksinya..

// tambahkan kata virtual

public virtual double luas(int a, int b)

{

// a sebagai wakil tinggi, dan b sebagai wakil alas

double c = a * b;

return (c);

}

//ini aksi juga

// tambahkan kata virtual

public virtual double Keliling(int a, int b)

{

double c = (a + b) * 2;

return (c);

}

//=======================================

Lalu masuk ke class segitiga

//=====================================================

public override double luas(int a, int b)

{

double c = (a * b)/2;

return (c);

}

public override double Keliling(int a, int b)

{

double d = Math.Pow(a, 2);

double e = Math.Pow(b, 2);

double c = Math.Sqrt(d + e);

c = a + b + c;

return (c);

//======================================================

Math.Pow untuk pangkat.. Math.Sqrt untuk nyari sisi miring…

Nah beres deh… skarang kita cek

Doble klik button3 lalu masukkan kode ini

//===========================================================

objectSegitiga.tinggi = Convert.ToInt16(textBox1.Text);

objectSegitiga.alas = Convert.ToInt16(textBox2.Text);

textBox3.Text = Convert.ToString(objectSegitiga.luas(objectSegitiga.tinggi, objectSegitiga.alas));

textBox4.Text = Convert.ToString(objectSegitiga.Keliling(objectSegitiga.tinggi, objectSegitiga.alas));

//===========================================================

Nah beres … tinggal run deh programnyaa… terimakasih

FULL CODE

//FORM 1==================================================

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        //nah
mantra ini yg dipakai membuat object..
        Persegi objekPersegi = new Persegi();
        PersegiPanjang objekPersegiPanjang = new PersegiPanjang();
        Segitiga objectSegitiga = new Segitiga();
        public Form1()
        {
            InitializeComponent();
        }
        private void button1_Click(object sender, EventArgs e)
        {
            //kita
makek variable dari class Persegi
            //objeckPersegi
yg kita bikin diatas.. digunakan untuk mengambil variable ataupun method yg ada
disana (class persegi)
            objekPersegi.tinggi = Convert.ToInt16(textBox1.Text);
            objekPersegi.alas = Convert.ToInt16(textBox2.Text);
            //mengambil
nilai return dari method luas dan keliling pada class persegi
            textBox3.Text = Convert.ToString(objekPersegi.luas(objekPersegi.tinggi,
objekPersegi.alas));
            textBox4.Text = Convert.ToString(objekPersegi.Keliling(objekPersegi.tinggi,
objekPersegi.alas));
        }
        private void button2_Click(object sender, EventArgs e)
        {
            objekPersegiPanjang.tinggi = Convert.ToInt16(textBox1.Text);
            objekPersegiPanjang.alas = Convert.ToInt16(textBox2.Text);
            textBox3.Text = Convert.ToString(objekPersegiPanjang.luas(objekPersegiPanjang.tinggi,
objekPersegiPanjang.alas));
            textBox4.Text = Convert.ToString(objekPersegiPanjang.Keliling(objekPersegiPanjang.tinggi,
objekPersegiPanjang.alas));
        }
        private void button3_Click(object sender, EventArgs e)
        {
            objectSegitiga.tinggi = Convert.ToInt16(textBox1.Text);
            objectSegitiga.alas = Convert.ToInt16(textBox2.Text);
            textBox3.Text = Convert.ToString(objectSegitiga.luas(objectSegitiga.tinggi,
objectSegitiga.alas));
            textBox4.Text = Convert.ToString(objectSegitiga.Keliling(objectSegitiga.tinggi,
objectSegitiga.alas));
        }
    }
}

//===========================================================

//Bidang======================================================

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace WindowsFormsApplication1
{
    class Bidang
    {
        //ini
field.. tempatnya attribut
        public int tinggi, alas;
        //ini aksinya..
        public virtual double luas(int a, int b)
        {
            // a
sebagai wakil tinggi, dan b sebagai wakil alas
            double c = a * b;
            return (c);
        }
        //ini
aksi juga
        public virtual double Keliling(int a, int b)
        {
            double c = (a + b) * 2;
            return (c);
        }
    }
}

//============================================================

//Persegi=======================================================

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace WindowsFormsApplication1
{
    class Persegi : Bidang
    {
    }
}

//============================================================

//Persegi Panjang================================================

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace WindowsFormsApplication1
{
    //
tambah : Bidang sebagai tanda class ini adalah turunan dari class bidang
    // atau
dengan kata lain.. class ini dapet warisan dari class Bidang
    class PersegiPanjang : Bidang
    {
    }
}

//===========================================================

//Segitiga======================================================

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace WindowsFormsApplication1
{
    class Segitiga : Bidang
    {
        public override double luas(int a, int b)
        {
            double c = (a * b)/2;
            return (c);
        }
        public override double Keliling(int a, int b)
        {
            double d = Math.Pow(a, 2);
            double e = Math.Pow(b, 2);
            double c = Math.Sqrt(d + e);
            c = a + b + c;
            return (c);
        }
    }
}

//===========================================================

Iklan