PEMROGRAMAN BERIONTASI OBJECT(PERT 2)  

Posted by: rafie aza

Nama : Mochammad Ali Akbar R.
Nim :10.41010.0280
ASSALAMMUALAIKUM Wr.Wb.

Kali ini saya akan membahas
* creating class
* contsruktor
* relasi antar class



creating class

Untuk membuat kelas, Anda menulis definisi kelas, dengan semua variabel anggota dan metode. Untuk hewan kelas, yang telah kami gunakan di atas, definisi kelas mungkin terlihat seperti ini:

class animal
{
string name;
float weight;

void create(string n, float w)
{
name = n;
weight = w;
}

void eat(string food)
{
write(name + " eats some " + food + ".\n");
weight += 0.5;
}
}


Beberapa penjelasan tentang hal ini:

Sebuah variabel anggota, seperti nama, ada sekali dalam setiap objek kloning, bukan di kelas itu sendiri.

Ketika sebuah metode, seperti makan, mengacu pada variabel anggota, seperti berat, ia akan menggunakan variabel yang dalam objek yang sama itu disebut untuk. Sebagai contoh, ketika kita sebut my_dog-> makan ("quiche"), itu adalah berat di my_dog objek yang meningkat.

Yang membuat metode khusus. Metode yang menangani argumen yang Anda berikan ketika Anda clone objek. (C + + programmer akan menyebut ini "konstruktor".)

Anda juga dapat memiliki metode yang disebut merusak. Metode ini adalah apa yang C + + programmer akan menelepon "destructor", i. e. metode yang dijalankan sebelum objek menghilang. Sebuah destructor kadang-kadang diperlukan untuk pembersihan, tapi jauh lebih jarang di Pike dari dalam C + +, karena Pike memiliki koleksi sampah otomatis.







CONSTRUKTOR

Dalam pemrograman berorientasi obyek, sebuah konstruktor (kadang disingkat menjadi ctor) di kelas adalah tipe khusus dari subrutin yang disebut pada saat penciptaan objek. Ini mempersiapkan objek baru untuk digunakan, sering menerima parameter konstruktor yang menggunakan untuk mengatur variabel yang dibutuhkan setiap anggota ketika objek pertama kali diciptakan.

Konstruktor Sebuah menyerupai metode instansi, tetapi berbeda dari metode yaitu ia tidak pernah memiliki kembali jenis-eksplisit, itu tidak mewarisi (meskipun bahasa yang menyediakan akses ke konstruktor superclass, misalnya melalui kata kunci super di Jawa), dan biasanya memiliki aturan yang berbeda untuk pengubah ruang lingkup. Konstruktor sering dibedakan dengan memiliki nama yang sama sebagai kelas menyatakan. Mereka memiliki tugas menginisialisasi objek data anggota dan pembentukan invarian kelas, gagal jika invarian tidak sah. Sebuah konstruktor yang ditulis dengan benar akan meninggalkan objek dalam keadaan yang valid. Benda berubah harus diinisialisasi di konstruktor.

Pemrogram juga dapat menggunakan konstruktor istilah untuk menunjukkan salah satu tag yang membungkus data dalam sebuah tipe data aljabar. Ini adalah penggunaan yang berbeda daripada di artikel ini [meragukan - mendiskusikan] Untuk informasi lebih lanjut, lihat jenis aljabar data..

Kebanyakan bahasa memungkinkan overloading konstruktor dalam bahwa ada dapat lebih dari satu konstruktor untuk kelas, masing-masing memiliki parameter yang berbeda. Beberapa bahasa mengambil pertimbangan dari beberapa jenis khusus dari konstruktor:

Jenis konstruktor

[Sunting] konstruktor parameterized

Konstruktor yang dapat mengambil argumen disebut sebagai parameter konstruktor.

[Sunting] konstruktor default

Konstruktor default menentukan tindakan yang harus dilakukan oleh compiler ketika objek kelas adalah instantiated tanpa parameter aktual.

[Sunting] konstruktor Salin

Salin konstruktor mendefinisikan tindakan yang dilakukan oleh compiler ketika menyalin objek kelas. Sebuah copy constructor memiliki satu parameter formal yaitu jenis kelas (parameter dapat menjadi referensi ke sebuah obyek).

Hal ini digunakan untuk membuat salinan dari objek yang sudah ada dari kelas yang sama. Meskipun kedua kelas adalah sama, itu dianggap sebagai konstruktor konversi.

[Sunting] Konversi konstruktor

Konversi konstruktor menyediakan sarana untuk sebuah compiler untuk implisit membuat sebuah object dari kelas dari objek jenis lain.

[Sunting] sintaks Konstruktor

Java, C + +, C #, ActionScript, dan PHP 4, memiliki konvensi penamaan yang konstruktor memiliki nama yang sama sebagai kelas yang mereka yang terkait dengan.

Dalam PHP 5 nama yang direkomendasikan untuk konstruktor adalah __construct. Untuk kompatibilitas mundur, sebuah metode dengan nama yang sama dengan kelas akan dipanggil jika __construct metode tidak dapat ditemukan. Sejak PHP 5.3.3, ini bekerja hanya untuk non-namespaced kelas [1].

Dalam konstruktor Perl, dengan konvensi, bernama "baru" dan harus melakukan cukup penciptaan objek.

Dalam sistem objek Moose untuk Perl, konstruktor (nama baru) secara otomatis dibuat dan diperpanjang dengan menentukan metode MEMBANGUN.

Dalam Visual Basic NET., Konstruktor ini disebut "Baru".

Pada Python, konstruktor ini disebut "__init__" dan selalu melewati kelas induk sebagai argumen, nama yang secara umum didefinisikan sebagai "diri".

Object Pascal konstruktor ditandai dengan "konstruktor" kata kunci dan dapat memiliki nama yang ditetapkan pengguna (tapi kebanyakan disebut "Buat").

Di Objective-C, metode konstruktor dibagi di dua metode, "alokasi" dan "init" dengan metode pengaturan alokasi menyisihkan (mengalokasikan) memori untuk sebuah instance dari kelas, dan metode init penanganan sebagian besar menginisialisasi instance. Sebuah panggilan ke metode "baru" baik memanggil alloc dan metode init, untuk instance kelas.

Di Java, beberapa perbedaan antara metode lain dan konstruktor adalah:

Konstruktor tidak memiliki tipe kembali eksplisit.

Konstruktor tidak dapat langsung dipanggil (kata kunci "baru" harus digunakan).

Konstruktor tidak bisa disinkronkan, akhir, abstrak, asli, atau statis.

Konstruktor selalu dieksekusi oleh thread yang sama.

Terlepas dari ini, konstruktor Java melakukan fungsi berikut dalam urutan sebagai berikut:

Ini menginisialisasi variabel kelas ke nilai default. (Byte, pendek, int, panjang, float, dan double nilai variabel default untuk masing-masing nol, boolean false, karakter untuk karakter null ('\ u0000') dan referensi dari setiap objek null.)

Ini kemudian memanggil konstruktor kelas super (default constructor dari kelas super hanya jika tidak ada konstruktor didefinisikan).

Kemudian menginisialisasi variabel kelas untuk nilai yang ditetapkan seperti mantan: int var = 10; atau mengapung var = 10.0f dan sebagainya.

Kemudian mengeksekusi tubuh konstruktor.

Di Java, C #, VB dan NET. Untuk jenis referensi konstruktor menciptakan objek dalam bagian khusus dari memori yang disebut tumpukan. Di sisi lain jenis nilai (seperti int, double, dll), dibuat dalam memori berurutan yang disebut stack. VB NET dan C # memungkinkan penggunaan baru untuk membuat obyek dari jenis nilai. Namun, dalam bahasa-bahasa bahkan penggunaan baru untuk jenis nilai menciptakan objek hanya pada stack. Dalam C + + ketika konstruktor dipanggil tanpa obyek baru diciptakan pada stack. Di sisi lain ketika objek dibuat menggunakan baru mereka diciptakan di heap yang harus dihapus secara implisit oleh destruktor atau eksplisit oleh panggilan ke operator hapus.

Bahasa yang paling menyediakan konstruktor default jika programmer tidak menyediakan konstruktor. Namun, ini bahasa konstruktor yang diberikan diambil segera sebagai programmer menyediakan konstruktor apapun dalam kode kelas. Dalam C + + constructor default DIBUTUHKAN jika sebuah array dari objek kelas yang akan dibuat. Bahasa lain (Java, C #, VB. NET) tidak memiliki pembatasan seperti itu.

Dalam C + + copy constructor dipanggil secara implisit ketika objek kelas dikembalikan dari sebuah metode dengan mekanisme pengembalian atau ketika objek kelas tersebut diteruskan oleh nilai fungsi. C + + menyediakan copy constructor jika programmer tidak menyediakan konstruktor sama sekali. Yang diambil secepat konstruktor apapun disediakan oleh programmer. C + + menyediakan copy constructor HANYA membuat anggota-bijaksana menyalin atau salinan dangkal. Untuk salinan yang mendalam programmer tertulis salinan konstruktor yang membuat salinan yang mendalam akan diperlukan. Umumnya aturan tiga diamati. Untuk kelas yang harus memiliki copy constructor untuk membuat salinan yang mendalam, di bawah tiga harus disediakan. 1. Salin konstruktor 2. Overloading operator penugasan. 3. Sebuah destructor. Di atas disebut aturan tiga di C + +. Jika kloning obyek tidak diinginkan dalam C + + maka copy constructor harus dinyatakan pribadi.

Example

public class Example

{

//definition of the constructor.

public Example()

{

this(1);

}

//overloading a constructor

public Example(int input)

{

data = input; //This is an assignment

}

//declaration of instance variable(s).

private int data;

}

//code somewhere else

//instantiating an object with the above constructor

Example e = new Example(42);

Visual Basic .NET

In Visual Basic .NET, constructors use a method declaration with the name "New".

Example

Class Foobar

Private strData As String

' Constructor

Public Sub New(ByVal someParam As String)

strData = someParam

End Sub

End Class

' code somewhere else

' instantiating an object with the above constructor

Dim foo As New Foobar(".NET")

C#

In C#, a constructor is thus.

Example

public class MyClass

{

private int a;

private string b;

//constructor

public MyClass() : this(42, "string")

{

}

//overloading a constructor

public MyClass(int a, string b)

{

this.a = a;

this.b = b;

}

}

//code somewhere

//instantiating an object with the constructor above

MyClass c = new MyClass(42, "string");




Relasi antar class

· UML Class Diagram

· Class Diagram • Diagram yang digunakan untuk menampilkan beberapa kelas serta paket-paket yang ada dalam sistem / perangkat lunak yang sedang kita kembangkan • Diagram kelas (Class Diagram) memberi kita gambaran (diagram statis ) tentang sistem / perangkat lunak dan relasi-relasi yang ada di dalamnya.

· Struktur Class Diagram

· Visibility untuk atribut dan operasi • Dalam UML kita mengenal 3 macam visibility. Antara lain : (+) untuk public, (-) untuk private, serta (#) untuk protected Dalam Rasional Rose kita kenal dengan: untuk atribut protected untuk atribut private untuk atribut public untuk operasi protected untuk operasi private untuk operasi public

· Visibility untuk atribut dan operasi... • Private : tidak dapat di panggil dari luar kelas yang bersangkutan. Hanya dapat di pakai dalam kelas yang bersangkutan • Protected : hanya dapat di panggil oleh kelas yang bersangkutan dan anak kelas yang diwarisinya. • Public : dapat dipakai oleh kelas apa saja.

· Relation in Class Diagram(1) • Dalam class diagram terdapat beberapa relasi(hub antar class) 1. Generalization dan Inheritence Diperlukan untuk memperlihatkan hubungan pewarisan (inheritance) antar unsur dalam diagram kelas. Pewarisan memungkinkan suatu kelas mewarisi semua atribut, operasi ,relasi, dari kelas yang berada dalam hirarki pewarisannya

· Generalization and Inheritance

· Relation in Class Diagram(2) 2. Associations hubungan statis antar class. Umumnya menggambarkan class yang memiliki atribut berupa class lain, atau class yang harus mengetahui ekstensi class lain. Dalam notasi UML kita mengenal asosiasi 2 arah (bidirectional) dan 1 arah (undirectional).

· Asosiations

· Relation in Class Diagram(3) 3. Aggregation hubungan antar-class di mana class yang satu (part class) adalah bagian dari class lainnya (whole class).

· Relation in Class Diagram(4) 4. Composition aggregation dengan ikatan yang lebih kuat. Di dalam composite aggregation, siklus hidup part class sangat bergantung pada whole class sehingga bila objek instance dari whole class dihapus maka objek instance dari part class juga akan terhapus

· Relation in Class Diagram(5) 5. Depedency hubungan antar-class di mana sebuah class memiliki ketergantungan pada class lainnya tetapi tidak sebaliknya.

· Relation in Class Diagram(6) 6. Realization hubungan antar-class di mana sebuah class memiliki keharusan untuk mengikuti aturan yang ditetapkan class lainnya. Biasanya realization digunakan untuk menspesifikaskan hubungan antara sebuah interface dengan class yang mengimplementasikan interface tersebut .

· Multiplisitas Relasi • Multiplisitas adalah jumlah banyaknya obyek sebuah class yang berelasi dengan sebuah obyek lain pada class lain yang berasosiasi dengan class tersebut. Multiplisitas Arti * Banyak 0 Tepat Nol 1 Tepat Satu 0..* Nol atau Lebih 1..* Satu atau lebih 0..1 Nol atau Satu

· Multiplisitas Relasi

sekian TERIMAKASI

WASSALLAMMUALAIKUM wr.wb.


This entry was posted on 07.21 . You can leave a response and follow any responses to this entry through the Langganan: Posting Komentar (Atom) .

0 komentar

Posting Komentar