Selasa, 08 Oktober 2013

CLASS, ATRIBUTE, METHOD
CLASS
Class adalah sebuah bagian dari program, yang memiliki semua attribute-atribut seperti halnya yang dimiliki oleh program biasa akan tetapi class tidak bersifat “Main” atau utama, sehingga sebuah class tidak dapat di run dan dieksekusitanpa menggunakan main class, atau class utama. Pada pemrograman strukturat kita menaruh kodingan kita pada main class sehingga langsung bisa mengkompile dan mengekspresi program kita tersebut, dimana pada pemrograman berorientasi object sekarang ini kita akan mulai menggunakan class untuk menaruh program kita, sehingga program kita dapat digunakan kembali dan dipadukan dengan program-program lain oleh orang lain. Ketika menggunakan class, kita dapat menyamakannya seperti saat kita memrogaram dengan basis pemrograman structural. Class disini hanya bersifat sebagai cetakan atau “blueprint” dari program yang kia buat, untuk dapat mengeksekusi sebuah class kita harus melakukan “instansiasi” yaitu membuat sebuah object dari class yang telah kita buat.
Contoh programnya :
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace _1_class
{
class Program
{
static void Main(string[] args)
{
Class1 nama = new Class1();

nama.biodata();

Console.ReadLine();


//Class
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace _1_class
{
class Class1
{
public void biodata()
{
//deklarasi
string nama;
byte umur;
string alamat;

//input
Console.WriteLine("                   ======== Mengisi Biodata =========\n");
Console.Write("Masukkan Nama Anda : ");
nama = Convert.ToString(Console.ReadLine());
Console.Write("Masukkan Umur Anda : ");
umur = Convert.ToByte(Console.ReadLine());
Console.Write("Masukkan Alamat Anda : ");
alamat = Convert.ToString(Console.ReadLine());

//output
Console.WriteLine("\n*** Inilah Biodata Anda...!!!");
Console.WriteLine("\n- Nama : {0}", nama);
Console.WriteLine("- Umur : {0}",umur);
Console.WriteLine("- Alamat : {0}",alamat);
}
Output-nya
http://luphtitaku.files.wordpress.com/2013/04/1-class.png
ATRIBUTE
Atribut adalah data yang membedakan antara objek satu dengan yang lainnya.
Contoh Objek : VolcanoRobot ( a volcanic exploration vehicle), mempunyai atribut sebagai berikut:
o   Status ~> exploring, moving, returning home
o   Speed ~> in miles per hour
o   Temperature ~> in Fahrenheit degrees
Dalam class, atribut sering disebut sebagai variabel. Atribut dibedakan menjadi dua jenis yaitu Instance Variable dan Class Variable.
Instance variable adalah atribut untuk tiap objek dari kelas yang sama. Tiap objek mempunyai dan menyimpan nilai atributnya sendiri. Jadi, tiap objek dari class yang sama bokeh mempunyai nilai yang sama atau berbeda.
Class Variable adalah atribut untuk semua objek yang dibuat dari class yang sama. Semua objek mempunyai nilai atribut yang sama. Jadi semua objek dari class yang sama mempunyai hanya satu nilai yang value nya sama.
Contoh class, object, attributes, dan behavior:
http://www.adityarizki.net/wp-content/uploads/2012/07/oop1.png
http://www.adityarizki.net/wp-content/uploads/2012/07/oop2.png
METHOD
Method adalah sarana bagi programmer untuk memodularisasi, artinya membreak atau memecah program kompleks menjadi bagian yang kecil-kecil sehingga nantinya dapat digunakan berulang-ulang, daripada menulis beberapa baris kode yang sama.
Pada konsep Object Oriented Programming, Function lebih dikenal dengan istilah Method dimana merupakan suatu bagian dari Object yang mendefinisikan apa yang bisa Object tersebut lakukan.
Jadi :
Method adalah fungsi atau prosedur yang dibuat oleh seorang programmer didalam suatu Class.
Method dapat dibagi menjadi fungsi dan prosedur.
Fungsi adalah bagian atau sub dari program yang mempunyai algoritma tertentu dalam menyelesaikan suatu masalah dengan mengembalikan hasil.
Prosedur adalah bagian atau sub dari program yang mempunyai algoritma tertentu dalam menyelesaikan suatu masalah tanpa mengembalikan suatu nilai hasil.
Method void
Method void adalah bagian atau sub dari program yang mempunyai algoritma tertentu dalam menyelesaikan suatu masalah tanpa mengembalikan suatu nilai hasil. Secara umum method dalam java adalah sebuah fungsi.
Ini contoh programnya dalam C# 
using System;

namespace method
{
 class Program
 {
 private static void Tulis()
 {
 Console.WriteLine("Method pertama");
 }

 private static void Nama()
 {
 Console.WriteLine("Nama Saya Afifatul Lailiya");
 Console.WriteLine("Mahasiswa STIKOM");
 Console.WriteLine("Jurusan TI");
 }
 public static void Main(string[] args)
 {
 Tulis();
 Nama();

 Console.Write("Press any key to continue . . . ");
 Console.ReadKey(true);
 }
 }
}
Hasil Codingnya seperti ini :
http://afifatullailiya.files.wordpress.com/2013/04/methodc.jpg









OBJECT
Object adalah sebuah structure yang menggabungkan data dan prosedur untuk bekerja bersama-sama. Objek merupakan dasar dari modularitas dan struktur dalam sebuah program komputer berorientasi objek. Dalam term OOP, object adalah sebuah structure yang menggabungkan data dan prosedur untuk bekerja bersama-sama. Contoh, jika kamu tertarik dalam pelacakan data yang dihubungkan dengan produk, kamu akan menciptakan sebuah object produk yang bertanggung jawab untuk me- maintenance dan bekerja dengan data yang bersinggungan dengan produk. Jika kamu ingin kemampuan mencetak dalam aplikasi kamu, kamu harus bekerja dengan sebuah object printer yang bertanggung jawab untuk data serta metode yang digunakan untuk berinteraksi dengan printermu.
Untuk mempermudah pemahaman, maka disini akan dijelaskan melalui analogi. Pada dasarnya semua benda yang adadi dunia nyata dapat dianggap sebagai objek. Misalnya rumah, mobil, sepeda, motor, gelas, komputer, meja, sepatu, dll. Setiap objek memiliki atribut sebagai status (state) dan tingkah laku sebagai behavior.
Contoh objek : Motor. Maka atribute (state) nya adalah pedal, roda, jeruji, speedometer, warna, jumlah roda. Sedangkan tingkah laku (behavior) nya adalah kecepatan menaik, kecepatan menurun, dan perpindahan gigi motor.
Analogi pemrograman berorientasi objek sama dengan penggambara pada dunia nyata seperti contoh di atas. Dalam OOP, state disimpan pada variabel dan tingkah laku disimpan pada method.
Dalam bahasa teoretis OOP, Objek berfungsi untuk membungkus data dan fungsi bersama menjadi satu unit dalam sebuah program komputer. Objek merupakan dasar dari modularitas dan struktur dalam sebuah program komputer berorientasi objek.
o   contoh :
public class Peliharaanmu{
public static void main(String[] args){
Hewan punyaku=new Hewan();
punyaku.hewanku();
}
}
KONSTRUCTOR
Konstruktor adalah method yang namanya sama dengan nama class-nya. Konstruktor digunakan untuk inisialisasi variabel ketika membuat instan class / objek baru. Sebenarnya setiap kali anda membuat instant class / objek baru maka konstruktor dijalankan. Jika anda tidak mendefinisikan konstruktor secara eksplisit maka tetap dianggap membuat konstruktor kosong.
http://www2.ukdw.ac.id/kuliah/si/erickblog/OOPdenganC_13152/image_6.pngKonstruktor juga dapat di-overload (anda dapat membuat konstruktor lebih dari satu asal parameternya jumlahnya beda atau tipe datanya beda). Variabel dalam class harus diinisialisasi, nilai defaultnya adalah









// constructor

  public Time(System.DateTime dt) {
        Year = dt.Year;
        Month = dt.Month;
        Date = dt.Day;
        Hour = dt.Hour;
        Minute = dt.Minute;
        Second = dt.Second;

  class LatKonstruktor {
     public static void Main(string[] args) 
       { 
        DateTime currTime = DateTime.Now;
 
        //memanggil constructor
 
        Time t = new Time(currTime); 
        t.DisplayCurrentTime();
      }
   }
IDENTIFIER
Identifier adalah merupakan nama yang digunakan untuk menamai class, variable, method dan interface.
Perbedaan private, public, protected :
Public : variable dapat diakses pada semua class yang menggunakan kelas yang berisi variable tersebut.
Private : hanya dapat diakses oleh method -method daalm kelas itu sendiri.
Protected : variable intans dapat diakses pada kelas sendiri dan subkelasnya
-Sintax
class warna
{
private string warna1,warna2;
public void input()

-Program
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace OOP2_Id
{
class warna
{
private string warna1,warna2;
public void input()
{
Console.WriteLine("======== Pilih Warna =========");
Console.Write(" \n==> Masukkan Warna Pertama : ");
warna1 = Convert.ToString(Console.ReadLine());
Console.Write("==> Masukkan Warna Kedua : ");
warna2 = Convert.ToString(Console.ReadLine());

}
public void output()
{
Console.WriteLine("\n*** Warna yang Anda pilih :");
Console.WriteLine("\n==> Warna Pertama  :  {0}", warna1);
Console.WriteLine("==> Warna Kedua  :  {0}", warna2);
}
}
class Program
{
static void Main(string[] args)
{
warna pelangi = new warna();
pelangi.input();
pelangi.output();

Console.ReadLine();
}
}
}

Outpu-nya
http://luphtitaku.files.wordpress.com/2013/04/2_identifier_c.png
KARAKTERISTIK OOP
INHERITANCE
Inheritance (pewarisan) adalah proses penciptaan kelas baru dengan mewarisi karakteristik dari kelas yang telah ada, ditambah karakteristik unik dari kelas baru tersebut. Suatu kelas yang mempunyai kelas turunanitu sendiri sering disebut subclass atau child class. Suatu subclass dapat mewarisi apa-apayang dipunyai oleh parenclass. Klarena suatu subclass dapat mewarisi apa-apa yang dipunyai oleh parent class-nya, maka member dari subclass adalah terdiri dari apa-apayang ia warisi dari class parent-nya.
Kesimpulanya, boleh dikatakan bahwa subclass adalah tidak lain hanya memperluas (extend) parent class-nya.
Program dalam C#
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace inheritance_OOP2
{
class makanan
{
public void menu1()
{
Console.WriteLine("   ******************* Banyuwangi Resto **************    ");
Console.WriteLine("\n=== Menu Makanan : ===");
Console.WriteLine("\n** Sego Tempong ");
Console.WriteLine("** Rawon Pecel");
Console.WriteLine("** Tempe Penyet");
Console.WriteLine("** Gado-gado");
}
}

class minuman : makanan
{
public void menu2()
{
Console.WriteLine("\n\n=== Menu Minuman : ===");
Console.WriteLine("\n** Es Dawet bakar ");
Console.WriteLine("** Es Legen");
Console.WriteLine("** Es Durian ");
Console.WriteLine("** Air Mineral");
}
}

class Program
{
static void Main(string[] args)
{
minuman a = new minuman();
a.menu1();
a.menu2();

Console.ReadKey();
}
}
}

Output-nya
http://luphtitaku.files.wordpress.com/2013/04/inher_c.jpg

POLYMORPHISM
Polymorphism merupakan suatu aksi yang memungkinkan pemogram menyampaikan suatu pesan tertentu keluar dari hierarki obyeknya, dimana suatu obyek tersebut yang berbeda memberikan tanggapan ataupun respon terhadap pesan yang sama sesuai dengan sifat masing-masing obyek. Itu berarti, Polymorphism “mempunyai banyak bentuk” yang juga merupakan salah satu sifat class yang memungkinkan sebuah method mempunyai nama yang sama, namun memiliki aksi yang berbeda.
Polymorphism adalah pemikiran bahwa objek dinamis suatu class dasar dapat berperilaku seperti class turunan. Jika objek menunjuk class dasar maka ia perilaku seperti class dasar, dan jika ia menunjuk class turunan ia akan berperilaku seperti class turunan.
Dalam hal ini obkjek memiliki beberapa bentuk, tergantung ia menunjuk kemana. Dalam hal ini suatu objek atau class dan perubahan perilakunya adalah dari kelas dasar ke kelas turunan, tidak bisa objek kelas turunan menunjuk ke kelas dasar. Polimorfisme dimungkinkan karena adanya mekanisme ikatan dinamis, ikatan ini adalah ikatan yang terjadi ketika program dijalankan (run-time), ikatan yang terjadi pada saat compiling disebut ikatan dinamis. Ikatan dinamis hanya akan terjadi antara suatu objek dinamis dengan metode yang dinamis juga, dalam hal ini metode virtual (maya)
Polymorphism berasal dari bahasa Yunani yang berarti banyak bentuk. Dalam PBO, konsep ini memungkinkan digunakannya suatu interface yang sama untuk memerintah objek agar melakukan aksi atau tindakan yang mungkin secara prinsip sama namun secara proses berbeda.

Keuntungan Pemograman dengan menggunakan Polymorphism adalah :
• Kita dapat menggunakan kelas-kelas yang kita buat (sebagai super kelas) dan membuat kelas kelas baru berdasar superkelas tersebut dengan karakteristik yang lebih khusus dari behaviour umum yang dimiliki superkelas.
• kita dapat membuat super kelas yang hanya mendefinisikan behaviuor namun tidak memberikan implementasidari metode-metode yang ada.Hal ini berguna jika kita ingin membuat semacam template kelas,kelas semacam ini disebut kelas abstrak karena behaviournya masih abstrak dan belum diimplementasikan.subkelas-subkelas dari kelas semacam ini yang disebut kelas konkret,mengimplementasikan behaviuor abstrak tersebut sesuai dengan kebutuhan masing-masing.
• Menghindari duplikasi object,kita dapat menciptakan class baru dari class yang sudah ada,sehingga tidak perlu menuliskan code dari nol ataupun mengulangnya, namun tetap bisa menambahkan attribute dan atau method unik dari class itu sendiri. Dalam konsep yang lebih umum sering kali polymorphism disebut dalam istilah satu interface banyak aksi.
Polymorphic dapat berarti banyak bentuk, maksudnya yaitu kita dapat menimpa (override), suatu method, yang berasal dari parent class (super class) dimana object tersebut diturunkan, sehingga memiliki kelakuan yang berbeda.
Pada dasarnya ada 2 tipe polymorphism, yaitu:
1. Static atau trivial merupakan, function overloading (penggunaan kembali nama fungi yang sama tapi dgn argumen yang berbeda) yang terbagi dalam 3 signature yaitu:
- Jenis Array
- Letak Array
- Type Array
Contoh function overloading :
void tambah (int a, int b);
void tambah(float d, float c);
2. Dynamic atau true
Merupakan function overriding (sebuah fungsi dalam class turunan yang memiliki nama, return type argumen function yang sama dengan fungsi dalam class induk). Menggunakan virtual method.
Pure Virtual Method (tanpa function body)
contoh : virtual void jalan() = 0;
Squasi Virtual Method (ada function body


Ini contoh programnya dalam C#
namespace Polimorphisme
{
 class segitiga
 {
 public double Luas(int a,int b)
 {
 Console.WriteLine("Luas Segitiga");
 Console.WriteLine("Alas = {0}",a);
 Console.WriteLine("Tinggi = {0}",b);
 Console.WriteLine("Luas = 0.5 x Alas x Tinggi = 0.5 x {0}
 x {1} = {2}\n"
 ,a,b,(0.5*(a*b)));
 return (0.5*(a*b));
 }
 public double Keliling(double a, int b, int c)
 {
 Console.WriteLine("Keliling Segitiga");
 Console.WriteLine("Keliling = AB+BC+CA= " +
 "{0} + {1} + {2} = {3}",a,b,c,(a+b+c));
 return (a+b+c);
 }
 }

 class Program
 {
 public static void Main(string[] args)
 {
 Console.WriteLine("Polimorphisme\n");
 Console.WriteLine("Rumus Segitiga");
 segitiga aku=new segitiga();
 aku.Luas(10,10);
 aku.Keliling(10.5,4,5);
 Console.Write("Press any key to continue . . . ");
 Console.ReadKey(true);
 }
 }
}
 Hasil Codingnya seperti ini :
http://afifatullailiya.files.wordpress.com/2013/04/polimorphismec.jpg










ENCAPSULATION
Encapsulation adalah proses pengelompokan Filed dan method dengan memberikan hak akses kepada Filed dan method sehingga Filed hanya dapat di akses melalui method accessor.
Berikut ini keuntungan dari prinsip encapsulation :
·         Bersifat independen. Suatu modul yang terenkapsulasi dengan baik akan bersifat independen dari yang lain. Sehingga dapat digunakan pada bagian manapun dari program.
·         Bersifat transparan. Jika Anda melakukan modifikasi pada suatu modul, maka perubahan tersebut akan dirasakan oleh semua bagian yang menggunakan modul tersebut.
·         Menghindari dari efek yang diluar perencanaan. Modul yang terenkapsulasi dengan baik hanya akan berinteraksi dengan bagian program melalui variable input dan output yang telah didefinisikan sebelumnya.
Dalam OOP, enkapsulasi sangat penting untuk keamanan serta menghindari kesalahan permrograman, pembungkus disini dimaksudkan untuk menjaga suatu proses program agar tidak dapat diakses secara sembarangan atau di intervensi oleh program lain. Konsep enkapsulasi sangat penting dilakukan untuk menjaga kebutuhan program agar dapat diakses sewaktu-waktu, sekaligus menjaga program tersebut.
Ini contoh programnya dalam C#
using System;

namespace Encapsulation
{
 class hitung
 {
 private int a=0;
 private int b=0;

 public int nilaiA
 {
 set { a = value; }
 get { return a; }
 }
 public int nilaiB
 {
 set { b = value; }
 get { return b; }
 }
 public int hasilkali()
 {
 return a * b;
 }
 public int hasilbagi()
 {
 return a / b;
 }
 }
 class Program
 {
 public static void Main(string[] args)
 {
 hitung h = new hitung();

 Console.Write("Masukan Nilai A = ");
 h.nilaiA = Convert.ToInt32(Console.ReadLine());
 Console.Write("Masukan Nilai B = ");
 h.nilaiB = Convert.ToInt32(Console.ReadLine());

 Console.WriteLine();

 Console.WriteLine("Hasil Perkalian = "+h.hasilkali());
 Console.WriteLine();
 Console.WriteLine("Hasil Pembagian = "+h.hasilbagi());

 Console.Write("Press any key to continue . . . ");
 Console.ReadKey(true);
 }
 }
}
Hasil Codingnya seperti ini :exceptionc#












ABSTRACTION
Abstract class adalah kelas yang terletak pada posisi tertinggi pada hierarki kelas. Kelas ini digunakan sebagai basis bagi penurunan kelas lainnya, sehingga abstract class tidak dapat diinstansiasi secara langsung menjadi object. Suatu abstract class bisa mengandung method kongkrit dan/atau method abstract. Abstract method meruapakan suatu method yang tidak mempunyai badan method. Hanya berupa nama method dan parameter inputan method. Ketika suatu abstract class diturunkan/ di-extends, maka subclass harus mengimplementasikan semua method abstract pada parent/ base class. Jika tidak mengimplementasikan semua method abstract maka subclass harus dideklarasikan sebagai abstract class.
Ini contoh programnya dalam C#
using System;

namespace Abstract_Class
{
 abstract class abstrack
 {
 public abstract int hitungLuas();
 }
 class Persegi : abstrack
 {
 int sisi;
 public Persegi(int s)
 {
 sisi = s;
 }
 public override int hitungLuas()
 {
 int luas = sisi*sisi;
 return luas;
 }
 }
 class Program
 {
 public static void Main(string[] args)
 {
 Persegi p = new Persegi(4);
 int luas = p.hitungLuas();
 Console.WriteLine("Abstract Class ");
 Console.WriteLine("Luas Persegi adalah = "+luas);

 Console.Write("Press any key to continue . . . ");

 Console.ReadKey(true);
 }

 }

}
Hasil Codingnya seperti ini
abstract_csharp



















AGREGATION
Aggregation adalah kondisi ketika object berisi gabungan dari object-object yang berbeda dan bekerja bersama. Contoh mesin pemotong rumput terdiri dari object roda, objects mesin, object pisau dan lain-lain. Object mesinpun merupakan gabungan dari berbagai object. Kemampuan untuk menggunakan aggregation dalam OOP adalah satu feature yang powerful yang memungkinkan model menjadi akurat.
Pemrograman visual membawa OOP ke level berikutnya. Tujuan pemrograman visual adalah agar pemrograman menjadi lebih mudah bagi para programmer dan lebih mudah diakses oleh kalangan nonprogrammer dengan meminjam bahasa OOP, dan mempraktikanya secara grafis atau visual. Pemrograman visual memungkinkan pengguna untuk lebih focus pada pemecahan masalah ketimbang cara menangani bahasa pemrograman.
OVERLOADING
Overloading : adalah pemakaian beberapa methods ataupun properties dengan nama yang sama, tetapi memiliki daftar parameter/argument yang berbeda. Perbedaan yang dimaksud adalah beda jumlah parameter, beda tipe data, atau beda keduanya (jumlah parameter dan tipe data). Methods ataupun properties yang hanya beda return value (nilai balik) tidak bisa dikatakan sebagai overloading. Keyword yang dipakai adalah Overloads. Jika dalam satu class, keyword ini bersifat optional artinya kita tidak harus menambahkan keyword Overloads ketika mendefinisikan beberapa methods ataupun properties yang menerapkan konsep overloading. Apabila kita tetap ingin memakainya, maka keyword Overloads harus digunakan di semua methods ataupun properties tadi. Apabila beda class, keyword Overloads ini harus digunakan.
namespace csharp_polymorpism
{
    public class KelilingSegi
    {
        public double sisiA;
        public double sisiB;
        public double sisiC;
        //Constuctor satu
        public void Keliling (double a){
            this.sisiA=a;
            this.sisiB=1;
            this.sisiC=1;
        }
        //Constuctor dua
        public void Keliling (double a, double b){
        this.sisiA=a;
        this.sisiB=b;
        this.sisiC=1;
        }
        //Constuctor tiga
        public void Keliling (double a, double b, double c){
            this.sisiA=a;
            this.sisiB=b;
            this.sisiC=c;
        }
    }
 class Program
 {
     public static void Main(string[] args)
     {
         KelilingSegi tampil = new KelilingSegi();
         KelilingSegi tampil_dua = new KelilingSegi();
         KelilingSegi tampil_tiga = new KelilingSegi();
         Console.WriteLine("Tampil Constructor Pertama");
         tampil.Keliling(10);
         Console.WriteLine("Sisi A = "+tampil.sisiA);
         Console.WriteLine("Sisi B = "+tampil.sisiB);
         Console.WriteLine("Sisi C = "+tampil.sisiC);
         Console.WriteLine("Tampil Constructor Kedua");
         tampil_dua.Keliling(10, 11);
         Console.WriteLine("Sisi A = "+tampil_dua.sisiA);
         Console.WriteLine("Sisi B = "+tampil_dua.sisiB);
         Console.WriteLine("Sisi C = "+tampil_dua.sisiC);
         Console.WriteLine("Tampil Constructor Ketiga");
         tampil_tiga.Keliling(10, 11, 12);
         Console.WriteLine("Sisi A = "+tampil_tiga.sisiA);
         Console.WriteLine("Sisi B = "+tampil_tiga.sisiB);
         Console.WriteLine("Sisi C = "+tampil_tiga.sisiC);
         Console.Write("Press any key to continue . . . ");
         Console.ReadKey(true);
     }
 }
}

Output-nya
http://zegyjib.files.wordpress.com/2013/04/polymorpis_overloadingc.png


Membuat program menghitung nilai Mata kuliah dan konversinya

//programnya

classProgram
    {
staticvoid Main(string[] args)
        {
double ntugas, nuts, npart, nuas, nakhir;

Console.WriteLine("menghitung Nilai Mata Kuliah mahaiswa");
Console.WriteLine("--------------------------------------------");
Console.Write("nilai patisipasi  = ");
            npart = double.Parse(Console.ReadLine());

Console.Write("nilai UTS         = ");
            nuts = double.Parse(Console.ReadLine());

Console.Write("nilai Tugas       = ");
            ntugas = double.Parse(Console.ReadLine());

Console.Write("nilai UAS         = ");
            nuas = double.Parse(Console.ReadLine());

Console.WriteLine("------------------------------------");
            nakhir = hitungNilaiAkhir(npart,ntugas,nuts,nuas);
Console.Write("Nilai akhir  = " + nakhir);
Console.WriteLine();
Console.Write("Nilai Huruf  = " + konversiHuruf(nakhir));
Console.ReadKey();

        }
publicstaticdouble hitungNilaiAkhir(double np, double nt, double nuts, double nuas)
        {
return 0.3 * np + 0.2 * nt + 0.3 * nuas + 0.2 * nuts;
        }
publicstaticstring konversiHuruf(double na)
        {
string nh = "" ;
if (na > 85 && na <= 100)
            {
                nh = "A";

            }
if (na > 80 && na <= 85)
            {
                nh = "A-";
            }
if (na > 75 && na <= 80)
            {
                nh = "B+";
            }
if(na > 70 && na <= 75)
            {
                nh = "B";
            }
if (na > 65 && na <= 70)
            {
                nh = "B-";
            }
if (na > 60 && na <= 65)
            {
                nh = "C+";
            }
if (na > 55 && na <= 60)
            {
                nh = "C";
            }
if (na > 50 && na <= 55)
            {
                nh = "C-";
            }
if (na > 40 && na <= 50)
            {
                nh = "D";
            }
if (na <= 40)
            {
                nh  = "E";
            }
return nh;
        }

        }






 //output-nya


DAFTAR PUSTAKA