sElamat Belajar :) ,, sEmoga bErmanfA'at ^_^

Selasa, 08 Oktober 2013

Program OOP untuk Menghitung Nilai Mata Kuliah dan Konversinya

 class Program
    {
        static void Main(string[] args)
        {
            double ntugas, nuts, npartisipasi, nuas;
            double nakhir;
           

            Console.Write("Nilai Tugas ="); ntugas = double.Parse(Console.ReadLine());
            Console.Write("Partisipasi=");
            npartisipasi = double.Parse(Console.ReadLine());
            Console.Write("Nilai UTS =");
            nuts = double.Parse(Console.ReadLine());
            Console.Write("Nilai UAS =");
            nuas = double.Parse(Console.ReadLine());

            nakhir=hitungNilaiAkhir(npartisipasi, ntugas, nuts, nuas);
            Console.Write("Nilai Akhir =" + nakhir);
            Console.Write("Nilai Huruf=" + KonversiKeHuruf(nakhir));
            Console.ReadKey();
        }

        public static double hitungNilaiAkhir(double np, double nt, double nuts, double nuas)
        {
            return 0.3*np+0.2*nt+0.3*nuts+0.2*nuts;
        }

        public static String KonversiKeHuruf(double na)
        {
            string nh = "";

            if (na > 85 && na <= 100)
            {
                nh = "A";
            }
            else if (na > 80 && na <= 85)
            {
                nh = "A-";
            }
            return nh;

   
       
    }

    }
}

Over Loading



Overloading adalah suatu cara membuat lebih dari constructor pada suatu class. Supaya pengaksesan constructor tersebut lancar, maka sebagai pembedanya adalah tipe parameter dan atau jumlah parameternya. Overloading adalah dua atau lebih method di dalam satu kelas yang sama, dengan nama yang sama, namun dengan deklarasi parameter yang membedakan.

using System;

namespace overloading1
{
    class Program
    {
        private static void perkalian(int a, int b, int c){
            Console.WriteLine("perkalian 3 tipe dalam parameter");
            int x=0;
            x = Convert.ToInt32(a*b*c);
            Console.WriteLine("{0} = {1} * {2} * {3} ",x,a,b,c);

        }
        private static void perkalian(int a, int b){
            Console.WriteLine("perkalian 2 tipe dalam parameter");
            int x=0;
            x = Convert.ToInt32(a*b);
            Console.WriteLine("{0} = {1} * {2}",x,a,b);
        }
        public static void Main(string[] args)
        {
            Console.WriteLine("contoh overloading method dengan nama method perkalian");
            Console.WriteLine();
            perkalian(3,4);
            Console.WriteLine();
            perkalian(3,4,5);
            Console.ReadKey(true);
        }
    }
}


Karakteristik OOP




1.      Abstraction
Pesawat yang telah dicontohkan masuk dalam kelas kendaraan, kelas kendaraan merupakan contoh abstraction.Abstraction adalah proses yang mewakili versi yang disederhanakan dari objek dunia nyata dalam kelas dan objek. Hal ini berarti dalam pengembangan perangkat lunak seorang programmer akan menggunakan atau menciptakan sejumlah object dimana object tersebut akan ada dan berperilaku pada sistem.
                                                                                                                
2.      Encapsulation
Enkapsulasi / penyembunyian informasi adalah konsep yang selama ini sering anda dengar. Pada OOP informasi dibungkus dalam sebuah Class sehingga orang yang menggunakan class tersebut tidak perlu tahu detail-nya, hanya cukup mengetahui method dan property apa saja yang ada dalam class tersebut beserta kegunaannya.
Pada pemrograman berorientasi objek variabel dalam class biasanya diberi access modifier private, ini berarti hanya method dalam class tersebut yang dapat mengakses variabelnya. Yang menjadi pertanyaan bagaimana cara anda mengakses variabel bertipe private tersebut? Mengapa harus dibuat private?
Jika anda membuat variable tersebut public maka user yang menggunakan class tersebut bisa memasukan nilai yang tidak kita inginkan, maka anda harus mendeklarasikan variable tersebut secara private agar pada saat setMethod() anda dapat menambahkan validasi inputan dari user.
Anda bisa membuat public method set dan get untuk memberi dan mengambil nilai variabel tersebut, misal:
   1: // private member variables
   2:           private int Year;
   3:   
   4:           public int getYear() //get method
   5:           {
   6:               return this.Year;
   7:           }
   8:   
   9:           public void setYear(int Year) //set method
  10:           {
  11:               this.Year = Year;
  12:           }
Selain menggunakan cara tersebut diatas pada C# disediakan object property untuk memberi nilai dan mengambil nilai dari private variabel dalam suatu class. Penggunaan object property lebih memudahkan anda dalam penulisan kode dibandingkan harus membuat dua method set dan get untuk mengakses satu variabel private. Contoh penggunaan property dapat dilihat pada contoh kode dibawah ini.
   1: class Mahasiswa {
   2:         private string nim;
   3:         private string nama;
   4: 
   5:         public string Nim {
   6:             get {
   7:                 return nim;
   8:             }
   9:             set {
  10:                 this.nim = value;
  11:             }
  12:         }
  13: 
  14:         public string Nama {
  15:             get {
  16:                 return nama;
  17:             }
  18:             set {
  19:                 this.nama = value;
  20:             }
  21:         }
  22: 
  23:         public string DisplayInfo() {
  24:             return Nim + " " + Nama;
  25:         }
  26:     }
  27: 
  28:     class ClassProperty {
  29:         public static void Main(string[] args) {
  30:             Mahasiswa mhs1 = new Mahasiswa();
  31:             mhs1.Nim = "22002321";
  32:             mhs1.Nama = "Erick";
  33:             Console.WriteLine(mhs1.DisplayInfo());
  34:         }
  35:     }

Encapsulation adalah penyatuan antara proses-proses yang terjadi dan sejumlah data yang dikelola kedalam suatu bentuk kelompok tertentu. Pengelompokan tersebut adalah dengan dibentuknya suatu object secara abstrak (abstraction). Akibatnya, obyek dapat bekerja sama dalam banyak hal dalam sistem. Dalam beberapa situasi, kelas dan objek dapat erat bersama-sama untuk menyediakan fungsionalitas yang lebih kompleks. Dalam contoh mobil, roda, panel, mesin, gearbox, dll dapat dianggap sebagai kelas individu. Untuk membuat mobil sekelasnya, perlumenghubungkan semua benda-benda bersama, mungkin dapat menambahkan fungsionalitas lebih lanjut. Kerja internal masing-masing kelas yang tidak penting karena enkapsulasi sebagai komunikasi antara obyek masih melalui lewat pesan ke antarmuka publik mereka.
Encapsulation mengemas suatu objek sehingga pada saat kita akan memakai objek tersebut kita tidak perlu lagi tahu tentang detail bagaimana suatu action itu terjadi. Contoh dalam hal ini, misal siswa (suatu object) sedang menulis (method). Maka detail dari tentang cara siswa itu menulis (bagaimana otot tangan itu  bekerja untuk menulis, bagaimana sistem saraf pusat  memerintahkan untuk menulis) kita tidak perlu mengerti. Kita hanya melihat si siswa sedang menulis.

3.      Inherintance
Inherintence atau pewarisan adalah merupakan konsep dimana suatu object memiliki sejumlah perilaku yang dimiliki oleh object lain dalam suatu hirarki tertentu.
Hal ini memungkinkan satu kelas (sub-class) harus didasarkan atas yang lain (kelas super) dan mewarisi semua fungsi secara otomatis. Kode tambahan kemudian dapat ditambahkan untuk membuat versi yang lebih khusus dari kelas. Dalam contoh kendaraan, sub-kelas untuk mobil atau motor dapat dibuat. Masing-masing masih akan memiliki semua perilaku kendaraan tetapi dapat menambahkan metode khusus dan properti.


contoh :


using System;

namespace Inheritance
{
 class Inheritance1
{
private String na;
            private String nama;
            public void setna (String nami)
            {
            na=nami;
            }
            public void setnama (String nomo)
            {
            nama=nomo;
            }
            public String getna()
            {
            return (na);
            }
            public String getnama()
            {
 return (nama);
            }
            public void namasaya()
            {
            Console.WriteLine("NIM"+getna());
            Console.WriteLine("Nama"+getnama());
            }
            }

class Inheritance2 : Inheritance1
            {
            private double ip;
            public void setip (double vip)
            {
            ip=vip;
            }
            public double getip()
            {
            return(ip);
            }
            public void namadia()
            {
            Console.WriteLine("IP : "+getip());
 Console.WriteLine("Nama : "+getnama());
            Console.WriteLine("NIM : "+getna());
 }
 }
            class Program
            {
            public static void Main(string[] args)
            {
            {
            Inheritance2 ap1=new Inheritance2();
            ap1.setna("1111100123 & 1111100456");
            ap1.setnama("Silvi Anggraini & Dewi Ayu");
            ap1.setip(3.5);
            ap1.namadia();

            Console.Write("\nPress any key to continue . . . ");
            Console.ReadKey(true);
            }
            }
            }
}

Abstrak

using System;

namespace OOPpraktikum
{
                        class Program
                        {
                         static Implementasi imp = new Implementasi();
                         public static void Main(string[] args)
                        {
                                      string nama = "Rizka Alfiana";
                                     string alamat = "Sidowungu";
                                     string telp = "303058";
                                     string NIM = "123214001";
                                    string Jurusan = "matematika";

                                     imp.ShowKTP(nama, alamat, telp);
                                    imp.ShowMHS(nama, NIM, Jurusan, telp);
                                    Console.Write("\nPress any key to continue . . . ");
                                    Console.ReadKey(true);
                        }
            }
            abstract class Abs // --- >Abstrak Class 
             {
public abstract void ShowKTP(string nama, string alamat, string tlp); // ---> Abstrak method 
                        public void ShowMHS(string nama, string nim, string prodi, string tlp)
                        {
                                    Console.WriteLine("MHS");
                                    Console.WriteLine();
                                    Console.WriteLine("Nama anda : {0}", nama);
                                    Console.WriteLine("NIM  : {0}", nim);
                                    Console.WriteLine("Prodi  : {0}", prodi);
                                    Console.WriteLine("No Telp  : {0}", tlp);
                                    Console.WriteLine();
                                    Console.WriteLine();
                                    }
                         }

                        class Implementasi : Abs
                        {
                         public override void ShowKTP(string nama, string alamat, string tlp)
                        {
Console.WriteLine("KTP");
                                    Console.WriteLine();
                                    Console.WriteLine("Nama anda : {0}", nama);
                                    Console.WriteLine("Alamat  : {0}", alamat);
                                    Console.WriteLine("No Telp  : {0}", tlp);
                                    Console.WriteLine();
                                    Console.WriteLine();
                         }
                    }
}        


 


4.      Polymorphisme
Polymorphism adalah konsep dimana beberapa object dapat memiliki metode yang sama dengan aksi yang berbeda. Hal ini mengakibatkan adanya kemampuan untuk sebuah objek untuk mengubah perilakunya sesuai dengan bagaimana itu digunakan. Dimana kelas obyek mewarisi dari kelas super atau mengimplementasikan satu atau lebih interface , dapat disebut dengan kelas atau interface nama-nama. Jadi jika kita memiliki metode yang mengharapkan sebuah objek dari tipe 'kendaraan' untuk diteruskan sebagai parameter, kita dapat melewati setiap kendaraan, mobil atau motor objek untuk metode yang meskipun tipe data mungkin secara teknis berbeda.
Dalam Polymorphism suatu object bisa bertindak lain terhadap message/method yang sama. Misalkan kita punya satu class hewan dan diturunkan menjadi dua class hewan berkaki dua dan hewan berkaki empat. Ketika hewan berkaki dua melakukan method makan maka yang dilakukan adalah makan dengan paruhnya, dan ketika hewan berkaki empat juga makan maka dia akan menggunakan mulutnya. Keduanya melakukan aksi yang sama yaitu makan akan tetapi perlakuannya lain.

Contoh :
class Binatang
{
public void info()
{
System.out.println(” Info tentang Hewan : “);
}
}
class Herbivora extends Binatang
{
public void info()
{
System.out.println (“Info pada herbivora: Memakan makanan berupa tumbuh – tumbuhan”);
}
}
class Kelinci extends Herbivora
{
public void info()
{
System.out.println(“Info pada Kelinci: Memakan makanan berupa wortel”);
}
}
public class Polimorfisme
{
public static void main(String[] args)
{
Herbivora herbivora;
Kelinci kelinciku;
Binatang hewan;
herbivora=new Herbivora();
kelinciku=new Kelinci();
hewan=herbivora;
hewan.info();
hewan=kelinciku;
hewan.info();
}
}

5. Aggregation


adalah sebuah relasi antar kelas dimana sebuah class berada pada kelas yang lain, dalam hal ini suatu class bener2 berada dalam kelas yang lain karena kelas tersebut di panggil dalam salah satu method atau bahkan menjadi sebuah atribut dalam kelas tersebut. misalnnya ada sebuah kelas provinsi dimana provinsi tersebut terdiri dari berbagai kabupaten, dalam kelas kabupaten tersebut terdapat berbagai atribut dan method2. Karena di dalam provinsi terdapat kabupaten oleh sebab itu saya memasukkan kelas kabupaten menjadi atribut kelas provinsi. Disinilah hubungan agregasi terjadi