STMIK MIKROSKIL
Praktek Pemrograman Berorientasi Objek dengan C#
Modul II Inheritance dan Polymorphism Membuat contoh program inheritance dan polymorphism
Langkah – langkah untuk membuatnya : 1. Buatlah sebuah Solution dan Project baru baru dengan nama : Nama Project = “Contoh” Lokasi File = Nama Solution = “Modul_2” 2. Tambahkan sebuah kelas baru dengan nama “ Induk”. 3. Edit statement kelas “ Induk” dari : class Induk menjadi : abstract class Induk 4.
Ketikan kode program berikut ke dalam kelas “Kendaraan” : protected string nama; public Induk() { nama = "‐"; } public Induk(string Induk(string nama) { this.nama this .nama = nama; } public virtual void Info() { Console.WriteLine( Console .WriteLine("Nama "Nama = {0}", {0}", nama); }
Strata 1 – Teknik Informatika
6
STMIK MIKROSKIL
Praktek Pemrograman Berorientasi Objek dengan C#
5. 6.
Tambahkan kelas baru dengan nama “ Anak_1”. Edit statement deklarasi kelas “ Anak_1” dari : class Anak_1 menjadi : class Anak_1 : Induk Catatan : Kelas “Anak_1” adalah keturunan dari kelas “Induk”.
7.
Ketikan kode program berikue ke dalam kelas “ Anak_1” : protected int umur; public Anak_1() : base() { umur = 17; } public Anak_1(string nama) : base(nama) { umur = 17; } public Anak_1(int umur) : base() { this.umur = umur; } public Anak_1(string nama, int umur) : base(nama) { this.umur = umur; } public override void Info() { base.Info(); Console.WriteLine("Umur = {0} Tahun", umur); }
8. 9.
Tambahkan kelas baru dengan nama “ Anak_2”. Edit statement deklasrasi kelas “ Anak_2” dari : class Anak_2 menjadi : sealed class Anak_2 : Induk Catatan : Kelas “Anak_2” adalah keturunan dari kelas “ Induk”, tetapi tidak dapat diturunkan ke Kelas lain lagi.
10. Ketikkan kode program berikut ke dalam kelas “Anak_2” : private int umur; public Anak_2() : base() { umur = 20; } public Anak_2(string nama) : base() { umur = 20; } public Anak_2(int umur) : base() { this.umur = umur; } public Anak_2(string nama, int umur) : base(nama) { this.umur = umur; } public override void Info() {
Strata 1 – Teknik Informatika
7
STMIK MIKROSKIL
Praktek Pemrograman Berorientasi Objek dengan C#
base.Info(); Console.WriteLine("Umur = {0} Tahun", umur); }
11. Tambahkan kelas baru dengan nam “ Cucu”. 12. Edit statement deklarasi kelas “ Cucu” dari : class Cucu menjadi : class Cucu : Anak_1 Catatan : Kelas “Cucu” adalah turunan dari Kelas “Anak_1”. 13. Ketikkan kode program berikut ke dalam kelas “Cucu” : public enum JK { Wanita, Pria } public JK jenisKelamin { set; get; } public Cucu(JK jk) : base() { jenisKelamin = jk; } public Cucu(string nama, JK jk) : base(nama) { jenisKelamin = jk; } public Cucu(int umur, JK jk) : base(umur) { jenisKelamin = jk; } public Cucu(string nama, int umur, JK jk) : base(nama, umur) { jenisKelamin = jk; } public string Nama { set { nama = value; } get { return nama; } } public int Umur { set { umur = value; } get { return umur; } } public override void Info() { base.Info(); Console.WriteLine("Jenis Kelamin = {0}", jenisKelamin); }
14. Untuk melihat struktur Kelas Turunan pada Class Diagram, klik kanan Project “Contoh” pada jendela Solution Explorer , lalu pilih View Class Diagram : Strata 1 – Teknik Informatika
8
STMIK MIKROSKIL
Strata 1 – Teknik Informatika
Praktek Pemrograman Berorientasi Objek dengan C#
9
STMIK MIKROSKIL
Praktek Pemrograman Berorientasi Objek dengan C#
Sehingga, muncul tampilan sebagai berikut :
15. Ketikkan kode program berikut ke dalam blok Main dari Program.cs pada Project “Contoh” : Anak_1 anisa = new Anak_1("Anisa"); Anak_2 cindy = new Anak_2(); Anak_1 budi = new Anak_1("Budi", 20); Cucu davis = new Cucu(22, Cucu.JK.Pria); Cucu evi = new Cucu(Cucu.JK.Wanita); Console.WriteLine("Informasi Kelas \"Anisa\" :"); anisa.Info(); Console.WriteLine("\nInformasi Kelas \"budi\" :"); budi.Info(); Console.WriteLine("\nInformasi Kelas \"cindy\" :"); cindy.Info(); Console.WriteLine("\nInformasi Kelas \"davis\" :"); davis.Info(); Console.WriteLine("\nInformasi Kelas \"evi\" :"); evi.Info(); davis.Nama = "Davis"; evi.Nama = "Evi"; evi.Umur = 24; Console.WriteLine("\nSetelah kelas \"davis\" dan \"evi\" diupdate :"); Console.WriteLine("\nInformasi kelas \"davis\" :"); davis.Info(); Console.WriteLine("\nInformasi kelas \"evi\" :"); evi.Info(); Console.ReadKey();
16. Untuk melihat hasil eksekusi program ini, dapat melalui Debug / Start Debugging atau dengan shortkey F5.
Strata 1 – Teknik Informatika
10
STMIK MIKROSKIL
Praktek Pemrograman Berorientasi Objek dengan C#
Soal Latihan 1.
Buat program untuk mengelola stok barang pada sebuah gudang, dengan keterangan sebagai berikut : a. Mimiliki 4 kelas yakni kelas “ Barang”, “Elektronik”, “Pangan” dan “Gudang”, dimana kelas “Elektronik” dan “Pangan” adalah turunan dari kelas “ Barang”.
b.
c.
d.
e.
f.
2.
Untuk kelas “Barang”, terdiri dari : Kelas bersifat Abstract . 2 Instant Variabel berupa kode dan nama barang bersifat Private. 1 Constructor dengan 2 parameter untuk menset nilai dari kode barang dan nama barang. Method “ketBarang” untuk mencetak informasi dari kode dan nama barang dan bersifat Virtual . Untuk kelas “Elektronik”, terdiri dari : 1 enumerasi untuk menentukan barang baru atau bekas. 1 instant variabel untuk jenis bersifat Private. Constructor dengan 3 parameter untuk menginput kode barang, nama barang dan jenis barang. Method “ketBarang” untuk mencetak informasi dari kelas “ Barang” dan kelas “Elektronik”. Untuk kelas “Pangan”, terdiri dari : 1 Instant Variabel untuk masa kadarluasa dari bahan pangan tersebut bersifat Private. Constructor dengan 3 parameter untuk menginput kode barang, nama barang dan masa kadaluarsa. Method “ketBarang” untuk mencetak informasi dair kelas “ Barang” dan kelas “Pangan”. Untuk kelas “Gudang”, terdiri dari : 2 Instant Variabel berupa koleksi untuk menyimpan data elektronik dan pangan. Constructor tanpa parameter untuk inisialisasi nilai awal dari koleksi. Method “tmbhElek” untuk menambahkan elektronik ke dalam Koleksi. Method “tmbhPang” untuk menambahkan pangan ke dalam Koleksi. Method “ jlhElek” untuk mengambil jumlah elektronik dari dalam koleksi. Method “ jlhPang” untuk mengambil jumlah pangan dari dalam koleksi. Method “ketGudang” untuk menampilkan semua data elektronik dan pangan dari dalam koleksi. Tampilan program dapat dilihat pada “ Mod2_Lat1.wmv”.
Buat program untuk peternakan, dengan keterangan sebagai berikut :
a.
Memiliki 5 kelas yakni kelas “Ternak”, “ Ayam”, “ Sapi”, “ Biri” dan “Peternakan” dimana kelas “Ayam”, “Sapi” dan “Biri” adalah keturunan dari kelas “Ternak”.
Strata 1 – Teknik Informatika
11
STMIK MIKROSKIL
b.
c.
d.
e.
f.
g.
3.
Praktek Pemrograman Berorientasi Objek dengan C#
Untuk kelas “Ternak”, terdiri dari : Kelas bersifat Abstract 1 enumerasi untuk jenis kelamin yang terdiri dari konstanta Jantan dan Betina. 1 Instant Variabel untuk jenis kelamin bersifat Private. Method “ctkKet” untuk mencetak keterangan dari jenis kelamin bersifat Virtual . Untuk kelas “Ayam”, terdiri dari : Constructor 1 parameter yaitu jenis kelamin. Method “ctkKet” untuk mencetak keterangan dari jenis kelamin bersifat Override. Untuk kelas “Sapi”, terdiri dari : 1 enumerasi untuk warna yang terdiri dari warna pink, putih dan merah. 1 Instant Variabel untuk menyimpan nilai warna bersifat Private. Constructor dengan 2 parameter yaitu warna dan jenis kelamin. Method “ctkKet” untuk mencetak keterangan dari warna dan jenis kelamin bersifat Override. Untuk kelas “Biri”, terdiri dari : 1 enumerasi untuk warna yang terdiri dari warna pink dan merah. 1 Instant Variabel untuk menyimpan nilai warna bersifat Private. Constructor dengan 2 parameter yaitu warna dan jenis kelamin. Method “ctkKet” untuk mencetak keterangan dari warna dan jenis kelamin bersifat Override. Untuk kelas “Peternakan”, terdiri dari : 3 Instant Variabel berupa koleksi untuk menyimpan data ternak ayam, sapi dan biri. 1 Constructor tanpa parameter untuk menginisialisasi nilai awal dari koleksi. Method “tmbhAyam” untuk menambahkan ayam ke dalam koleksi. Method “tmbhSapi” untuk menambahkan ayam ke dalam koleksi. Method “tmbhBiri” untuk menambahkan ayam ke dalam koleksi. Method “ketPeternakan” untuk memberikan jumlah ayam, sapi dan biri di peternakan. Tampilan program dapat dilihat pada “ Mod2_Lat2.wmv”.
Buat program untuk mengelola tempat parkir pada “Mall Moon” dengan keterangan sebagai berikut :
a. b.
c.
d.
Memiliki 5 kelas yakni kelas “ Kendaraan”, “Mobil”, “Motor”, “Becak” dan “Mall” dimana kelas “Mobil”, “Motor” dan “Becak” adalah keturunan dari “Kendaraan”. Untuk kelas “Kendaraan”, terdiri dari : 1 Instant Variabel nomor kendaraan bersifat Public. Constructor dengan 1 parameter berupa nomor kendaraan. Method “ctkStatus” untuk mencetak status dari kendaraan bersifat Virtual . Untuk kelas “Mobil”, terdiri dari : 3 buah Assessor dan Mutator untuk waktu datang, waktu pergi dan lama parkir. Constructor dengan 1 parameter untuk nomor kendaraan. Method “ctkStatus” yang berisi keterangan keterangan dari mobil bersifat Override. Untuk kelas “Motor”, terdiri dari : 3 buah Assessor dan Mutator untuk waktu datang, waktu pergi dan lama parkir. Constructor dengan 1 parameter untuk nomor kendaraan.
Strata 1 – Teknik Informatika
12
STMIK MIKROSKIL
Praktek Pemrograman Berorientasi Objek dengan C#
Method “ctkStatus” yang berisi keterangan keterangan dari motor bersifat Override. Untuk kelas “Becak”, terdiri dari : 3 buah Assessor dan Mutator untuk waktu datang, waktu pergi dan lama parkir. Constructor dengan 1 parameter untuk nomor kendaraan. Method “ctkStatus” yang berisi keterangan keterangan dari becak bersifat Override. Untuk kelas “Mall”, terdiri dari : 2 Instant Variabel untuk jumlah kendaraan di dalam mall dan pendapatan mall bersifat Private. 3 Instant Variabel berupa koleksi untuk menyimpan data kendaraan mobil, motor dan becak. Constructor tanpa parameter untuk menginisialisasi nilai awal dari koleksi, nilai awal dari jumlah kendaraan dan nilai awal dari pendapatan. Method “tmbhMobil” untuk menambahkan sebuah mobil ke dalam koleksi. Method “tmbhMotor” untuk menambahkan sebuah motor ke dalam koleksi. Method “tmbhBecak” untuk menambahkan sebuah becak ke dalam koleksi. Method “keluarMobil” untuk mengeluarkan sebuah mobil dari koleksi. Method “keluarMotor” untuk mengeluarkan sebuah motor dari koleksi. Method “keluarBecak” untuk mengeluarkan sebuah becak dari koleksi. Method “ketMall” untuk mencetak keterangan mall berupa pendapatan dan jumlah kendaraan yang datang. Untuk keterangan biaya parkir dapat dilihat pada tabel dibawah ini :
e.
f.
g.
h.
4.
Lama Parkir
Mobil
Motor
Becak
≤ 1 menit ≤ 10 menit > 10 menit
Rp. 5,000.00 Rp. 10,000.00 Rp. 20,000.00
Rp. 3,000.00 Rp. 6,000.00 Rp. 12,000.00
Rp. 2,000.00 Rp. 4,000.00 Rp. 8,000.00
Tampilan program dapat dilihat pada “ Mod2_Lat3.wmv”.
Buat program untuk mengelola sekolah “Anak Zaman Now”, dengan keterangan sebagai berikut :
a.
b.
c.
Mimiliki 7 kelas yakni kelas “Data”, “ Murid”, “Guru”, “Pekerja” , “OB”, “Keuangan”, dan “Sekolah”, dimana kelas “Murid” dan “Pekerja” adalah turunan dari kelas “Data” serta “Guru”, “OB” dan “Keuangan” adalah turunan dari kelas “ Pekerja”. Untuk kelas “Data”, terdiri dari : Kelas bersifat Abstract . 1 Assesor dan Mutator untuk menyimpan nama. Constructor tanpa parameter untuk inisialisasi nama awal. Untuk kelas “Murid”, terdiri dari : Kelas bersifat Sealed . 1 enumerasi untuk kelas murid berupa X, XI atau XII.
Strata 1 – Teknik Informatika
13
STMIK MIKROSKIL
Praktek Pemrograman Berorientasi Objek dengan C#
1 enumerasi untuk peminatan berupa IPA atau IPS. 3 Assesor dan Mutator untuk kelas, peminatan dan nomor induk siswa. Constructor tanpa parameter untuk insialisasi nilai kelas, peminatan dan nomor induk siswa. Method “detailMrd” untuk mencetak informasi dari murid. Untuk kelas “Pekerja”, terdiri dari : Kelas bersifat Abstract . 1 enumerasi untuk jenis pekerja tetap atau honorer. 3 Assesor dan Mutator untuk nomor induk pegawai, gaji dan jenis pekerja. Constructor tanpa parameter untuk insialisasi nilai nomor induk pegawai dan jenis pekerja. Method “ketPekerja” untuk mencetak detail dari pekerja dan bersifat Virtual . Untuk kelas “Guru”, terdiri dari : Kelas bersifat Sealed . 1 Assesor dan Mutator untuk nama mata pelajaran. Constructor tanpa parameter untuk insialisasi nilai nama mata pelajaran. Method “ketPekerja” untuk mencetak informasi dari pekerja dan bersifat Override. Untuk kelas “OB”, terdiri dari : Kelas bersifat Sealed . 1 enumerasi lantai berupa lantai_1, lantai_2 dan lantai_3. 1 Assesor dan Mutator untuk lantai tempat bekerja. Constructor tanpa parameter untuk insialisasi nilai lantai tempat berkerja. Method “ketPekerja” untuk mencetak informasi dari pekerja dan bersifat Override. Untuk kelas “Keuangan”, terdiri dari : Kelas bersifat Sealed . 1 enumerasi jenis kerja berupa uang sekolah murid atau gaji guru. 1 Assessor dan Mutator untuk jenis kerja. Constructor tanpa parameter untuk insialisasi nilai jenis kerja Method “ketPekerja” untuk mencetak informasi dari pekerja dan bersifat Override. Untuk kelas “Sekolah”, terdiri dari : 4 Instant Variabel berupa koleksi untuk menyimpan data murid, guru, OB dan keuangan. Constructor tanpa parameter untuk inisialisasi nilai awal dari koleksi. Method “tmbhMrd” untuk menambahkan Murid ke dalam Koleksi Method “tmbhGuru” untuk menambahkan Guru ke dalam Koleksi Method “tmbhOB” untuk manambah OB ke dalam koleksi. Method “tmbhKeuangan” untuk manambah Keuangan ke dalam koleksi. Method “ jlhMrd” untuk menghitung jumlah Murid di dalam sekolah Method “ jlhGuru” untuk menghitung jumlah Guru di dalam sekolah Method “ jlhOB” untuk menghitung jumlah OB di dalam sekolah Method “ jlhKeuangan” untuk menghitung jumlah Keuangan di dalam sekolah Method “ketSekolah” untuk menampilkan semua data Murid, Guru, OB dan Keuangan dari dalam koleksi. Untuk keterangan gaji dapat dilihat dari tabel dibawah ini :
d.
e.
f.
g.
h.
i.
Jenis Pekerjaan Guru OB Keuangan j.
Tetap Rp. 5,000,000.00 Rp. 2,000,000.00 Rp. 6,000,000.00
Honorer Rp. 3,000,000.00 Rp. 1,500,000.00 Rp. 5,000,000.00
Tampilan program dapat dilihat pada “ Mod2_Lat4.wmv”.
Strata 1 – Teknik Informatika
14