Selasa, 08 Oktober 2013

Membuat program menghitung nilai Mata kuliah dan konversinya


outputnya


COde nya:
Classmahasiswa
 {
//atribute
privatedouble _nuas;
privatedouble _nuts;
privatedouble _ntugas;
privatedouble _npart;
privatedouble _nakhir;
privatestring _huruf;




publicdouble nuas
     {
get { return _nuas; }
set { _nuas = value; }
     }
publicdouble nuts
     {
get { return _nuts; }
set { _nuts = value; }
     }
publicdouble npart
     {
get { return _npart; }
set { _npart = value; }
     }
publicdouble ntugas
     {
get { return _ntugas; }
set { _ntugas = value; }
     }

publicdouble HitungNilaiAkhir(double nt, double np, double nuas, double nuts)
 {
return 0.2 * nt + 0.3 * np + 0.3 * nuas + 0.2 * nuts;
 }

publicstring 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;
        }

publicvoid tampilkan()
        {
Console.WriteLine("-----------------------------------------------");
Console.WriteLine("Menghitung Nilai Akhir Mata Kuliah");
Console.WriteLine("-----------------------------------------------");
Console.Write("nilai tugas    = ");
            _ntugas = double.Parse(Console.ReadLine());
Console.Write("nilai part     = ");
            _npart = double.Parse(Console.ReadLine());
Console.Write("nilai UTS      = ");
            _nuts = double.Parse(Console.ReadLine());
Console.Write("nilai UAS      = ");
            _nuas = double.Parse(Console.ReadLine());
Console.WriteLine("-----------------------------------------------");
            _nakhir = HitungNilaiAkhir(_ntugas, _npart, _nuas, _nuts);
Console.Write("nilai akhir  = " + _nakhir);
Console.WriteLine();
Console.WriteLine("-----------------------------------------------");
            _huruf = konversiHuruf(_nakhir);
Console.Write("nilai huruf  = " + _huruf);

        }

    }
classProgram
    {
staticvoid Main(string[] args)
        {
// membuat objek
mahasiswa m1 = newmahasiswa();
            m1.tampilkan();

Console.ReadKey();
        }
    }
}

Karakteristik OOP dan contohnya

Inheritance = Pewarisan , Mewariskan objek yang dimiliki ke pada objek yang diturunkan , bersifat menyeluruh.
Kelas yang mewariskan biasa di sebut super class / class induk
Kelas yang diwariskan biasa di sebut sub class / kelas anak
Secara lebih singkat begini :
A sebagai Ayah memiliki Anak bernama B , A berkulit Hitam maka B akan berkulit Hitam jg .
Ini merupakan inheritance terhadap A kepada B , dan inheritance bukan hanya dapat 1x diwariskan , tetapi dapat lebih dari 1x. seperti berikut :
A sebagai Ayah memiliki Anak bernama B , A berkulit Hitam maka B akan berkulit Hitam jg . dan B pun memiliki anak C maka C pun akan berkulit hitam
Keuntungan dari inheritance :
- Tidak perlu mendefinisikan Variabel Bila membutuhkan , Cukup menurunkan dari class induk
- Memudahkan dan Mempercepat pemprogramman , mengurangi Code
Sample inheritance dalam C#.Net
public class A
{
    public A() { }
}

public class B : A
{
    public B() { }
}

Objek dan Konstruktor

Pengertian Objek
Objek adalah membungkus data dan fungsi bersama menjadi suatu unit dalam sebuah program komputer; objek merupakan dasar dari modularitas danstruktur dalam sebuah program komputer berorientasi objek.

Cara Membuat Objek
Nama class nama variabel = new nama class ();
Contoh : membuat objek class Lingkaran
Lingkaran.l1 = new lingkaran ()
Konstruktor
Konstruktor adalah methode yang dipanggil ketika objek dibuat, digunakan untuk memberi nilai awal, namanya sama dengan nama class
Contoh :
Public tabungan (int saldo awal)
{
            _saldo = saldoawal;

}

Pengertian Class, Atribute, Method pada C#

1.      Class
Class merupakan suatu tipe data yang menggabungkan data dan fungsi untuk mengakses data. Sebagai contoh suatu kelas kalkulator yang megandung data bilangan1 dan bilangan2 dan memiliki fungsi untuk mengakses data tersebut, seperti : inisialisasi(), penjumlahan(), pengurangan(), perkalian() dan pembagian().
Data dan fungsi yang berada dalam sebuah class dinamakan anggota. Secara lebih khusus , data yang terletak dalam kelas dinamakan anggota data dan fungsi yang berada dalam kelas disebut anggota fungsi atau fungsi anggota atau terkadang disebut metode.
Contoh :






classProgram
    {
        privatestaticvoidtulis()
        {
            Console.WriteLine("method pertama");
        }
}

Attribute
Adalah suatu pengenal yang digunakan untuk menyimpan suatu nilai. Nilai dalam variabel dapat berubah2 selama proses pada program masih berlangsung. Sebelum variabel digunakan, harus dideklarasikan terlebih dahulu, dengan format penulisan :
Contoh :
string kata;
int angka;
Method          
Method adalah bagian dari tubuh program yang mengimplementasikan suatu action sehinggga class atau object dapat bekerja. Method diimplementasikan didalam class dan menyediakan informasi tambahan yang mana class tidak dapat menangani sendiri.
Penggunaan method mempunyai beberapa keuntungan diantaranya :
Ø Mempermudah perawatan dan manajemen kode.
Ø Method bisa di panggil dari program utama atau dari sub program yang lain.
Ø Method dipanggil berulang kali, sehingga tidak perlu menulis ulang kode yang sama ketika dibutuhkan.
Secara umum method dapat dibagi menjadi dua, yaitu method static dan non static. method static hanya dapat di akses dari class, sedangkan method non static dapat di akses dari instances. Masing-masing method tersebut dapat mempunyai parameter atau tidak. Jika sebuah method mempunyai parameter, maka method tersebut dapat menerima dan/atau memberikan nilai kepada pemanggilnya.
Contoh :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
namespacemethod
{
    classProgram
    {
        privatestaticvoidtulis()
        {
            Console.WriteLine("method pertama");
        }
        privatestaticvoidgaris()
        {
            Console.WriteLine("--------------------------");
        }
        publicstaticvoidMain(string[] args)
        {
            garis();
            tulis();
            garis();
            garis();
            Console.Write("Press any key to continue . . . ");
            Console.ReadKey(true);
        }
    }
}

Sabtu, 18 Mei 2013

Kelompok 2

Berikut Link tugas bahasa pemrogaman tgl 19 Mei 2013
Kelompok 2
.
http://www.mediafire.com/?9rpwk8f52p236cs

berikut data ms .word
http://www.mediafire.com/view/?x7xqqo1yojiuvq4

berikut data ms.power pointnya
http://www.mediafire.com/view/?tf4az118ryv5vpo

User Defined Function

Cara Membuat User Defined Function di Excel menggunakan C# dan Visual Studio 2008 :

Langkah 1
Pertama, jalankan Visual Studio 2008 dan membuat C # proyek Class Library baru yang disebut BlackScholesAddin untuk contoh ini.

Langkah 2
Dalam file Class1.cs Anda, menghapus semua kode yang ada dan menggantinya dengan kode berikut
  1. using System;
  2. using System.Runtime.InteropServices;
  3. using Microsoft.Win32;
  4. namespace BlackScholesAddin
  5. {
  6.     [ClassInterface(ClassInterfaceType.AutoDual)]
  7.     [ComVisible(true)]
  8.     public class Functions
  9.     {
  10.         public Functions()
  11.         {
  12.         }
  13.         //cumulative normal distribution function
  14.         private double CND(double X)
  15.         {
  16.             double L = 0.0;
  17.             double K = 0.0;
  18.             double dCND = 0.0;
  19.             const double a1 = 0.31938153;
  20.             const double a2 = -0.356563782;
  21.             const double a3 = 1.781477937;
  22.             const double a4 = -1.821255978;
  23.             const double a5 = 1.330274429;
  24.             L = Math.Abs(X);
  25.             K = 1.0 / (1.0 + 0.2316419 * L);
  26.             dCND = 1.0 - 1.0 / Math.Sqrt(2 * Convert.ToDouble(Math.PI.ToString())) *
  27.                 Math.Exp(-L * L / 2.0) * (a1 * K + a2 * K * K + a3 * Math.Pow(K, 3.0) +
  28.                 a4 * Math.Pow(K, 4.0) + a5 * Math.Pow(K, 5.0));
  29.             if (X < 0)
  30.             {
  31.                 return 1.0 - dCND;
  32.             }
  33.             else
  34.             {
  35.                 return dCND;
  36.             }
  37.         }
  38.         //function phi
  39.         private double phi(double x)
  40.         {
  41.             double phi = 0.0;
  42.             phi = Math.Exp(-x * x / 2) / Math.Sqrt(2 * Math.PI);
  43.             return phi;
  44.         }
  45.         //implied volatility using Newton-Raphson method
  46.         public double blsimpvCall(double Price, double Strike, double Rate, double Time, double Value, double Yield)
  47.         {
  48.             const double ACCURACY = 1.0e-6;
  49.             double ComputedVolatility = Math.Pow(Math.Abs(Math.Log(Price / Strike) + Rate * Time) * 2 / Time, 0.5); // initial value of volatility
  50.             double ComputedValue = blsCall(Price, Strike, Rate, Time, ComputedVolatility, Yield);
  51.             double Vega = blsvega(Price, Strike, Rate, Time, ComputedVolatility, Yield);
  52.             while (Math.Abs(Value - ComputedValue) > ACCURACY)
  53.             {
  54.                 ComputedVolatility = ComputedVolatility - ((ComputedValue - Value) / Vega);
  55.                 ComputedValue = blsCall(Price, Strike, Rate, Time, ComputedVolatility, Yield);
  56.                 Vega = blsvega(Price, Strike, Rate, Time, ComputedVolatility, Yield);
  57.             }
  58.             return ComputedVolatility;
  59.         }
  60.         public double blsimpvPut(double Price, double Strike, double Rate, double Time, double Value, double Yield)
  61.         {
  62.             const double ACCURACY = 1.0e-6;
  63.             double ComputedVolatility = Math.Pow(Math.Abs(Math.Log(Price / Strike) + Rate * Time) * 2 / Time, 0.5); // initial value of volatility
  64.             double ComputedValue = blsPut(Price, Strike, Rate, Time, ComputedVolatility, Yield);
  65.             double Vega = blsvega(Price, Strike, Rate, Time, ComputedVolatility, Yield);
  66.             while (Math.Abs(Value - ComputedValue) > ACCURACY)
  67.             {
  68.                 ComputedVolatility = ComputedVolatility - ((ComputedValue - Value) / Vega);
  69.                 ComputedValue = blsPut(Price, Strike, Rate, Time, ComputedVolatility, Yield);
  70.                 Vega = blsvega(Price, Strike, Rate, Time, ComputedVolatility, Yield);
  71.             }
  72.             return ComputedVolatility;
  73.         }
  74.         //Call pricer
  75.         public double blsCall(double Price, double Strike, double Rate, double Time, double Volatility, double Yield)
  76.         {
  77.             double d1 = 0.0;
  78.             double d2 = 0.0;
  79.             double Call = 0.0;
  80.             d1 = (Math.Log(Price / Strike) + (Rate - Yield + Volatility * Volatility / 2.0) * Time) / (Volatility * Math.Sqrt(Time));
  81.             d2 = d1 - Volatility * Math.Sqrt(Time);
  82.             Call = Price * Math.Exp(-Yield * Time) * CND(d1) - Strike * Math.Exp(-Rate * Time) * CND(d2);
  83.             return Call;
  84.         }
  85.         //Put pricer
  86.         public double blsPut(double Price, double Strike, double Rate, double Time, double Volatility, double Yield)
  87.         {
  88.             double d1 = 0.0;
  89.             double d2 = 0.0;
  90.             double Put = 0.0;
  91.      
  92.             d1 = (Math.Log(Price / Strike) + (Rate - Yield + Volatility * Volatility / 2.0) * Time) / (Volatility * Math.Sqrt(Time));
  93.             d2 = d1 - Volatility * Math.Sqrt(Time);
  94.             Put = Strike * Math.Exp(-Rate * Time) * CND(-d2) - Price * Math.Exp(-Yield * Time) * CND(-d1);
  95.             return Put;
  96.         }
  97.         //delta for Call
  98.         public double blsdeltaCall(double Price, double Strike, double Rate, double Time, double Volatility, double Yield)
  99.         {
  100.             double d1 = 0.0;
  101.             d1 = (Math.Log(Price / Strike) + (Rate - Yield + Volatility * Volatility / 2.0) * Time) / (Volatility * Math.Sqrt(Time));
  102.             return Math.Exp(-Yield * Time) * CND(d1);
  103.         }
  104.         //delta for Put
  105.         public double blsdeltaPut(double Price, double Strike, double Rate, double Time, double Volatility, double Yield)
  106.         {
  107.             double d1 = 0.0;
  108.             d1 = (Math.Log(Price / Strike) + (Rate - Yield + Volatility * Volatility / 2.0) * Time) / (Volatility * Math.Sqrt(Time));
  109.             return Math.Exp(-Yield * Time) * CND(d1) - 1;
  110.         }
  111.         //gamma is the same for Put and Call
  112.         public double blsgamma(double Price, double Strike, double Rate, double Time, double Volatility, double Yield)
  113.         {
  114.             double d1 = 0.0;
  115.             d1 = (Math.Log(Price / Strike) + (Rate - Yield + Volatility * Volatility / 2.0) * Time) / (Volatility * Math.Sqrt(Time));
  116.             return Math.Exp(-Yield * Time) * phi(d1) / (Price * Volatility * Math.Sqrt(Time));
  117.         }
  118.         //vega is the same for Put and Call
  119.         public double blsvega(double Price, double Strike, double Rate, double Time, double Volatility, double Yield)
  120.         {
  121.             double d1 = 0.0;
  122.             d1 = (Math.Log(Price / Strike) + (Rate - Yield + Volatility * Volatility / 2.0) * Time) / (Volatility * Math.Sqrt(Time));
  123.             return Price * Math.Exp(-Yield * Time) * phi(d1) * Math.Sqrt(Time);
  124.         }
  125.         //theta for Call
  126.         public double blsthetaCall(double Price, double Strike, double Rate, double Time, double Volatility, double Yield)
  127.         {
  128.             double d1 = 0.0;
  129.             double d2 = 0.0;
  130.             d1 = (Math.Log(Price / Strike) + (Rate - Yield + Volatility * Volatility / 2.0) * Time) / (Volatility * Math.Sqrt(Time));
  131.             d2 = d1 - Volatility * Math.Sqrt(Time);
  132.             return -Math.Exp(-Yield * Time) * Price * phi(d1) * Volatility / (2 * Math.Sqrt(Time)) - Rate * Strike * Math.Exp(-Rate * Time) * CND(d2) + Yield * Price * Math.Exp(-Yield * Time) * CND(d1);
  133.         }
  134.         //theta for Put
  135.         public double blsthetaPut(double Price, double Strike, double Rate, double Time, double Volatility, double Yield)
  136.         {
  137.             double d1 = 0.0;
  138.             double d2 = 0.0;
  139.             d1 = (Math.Log(Price / Strike) + (Rate - Yield + Volatility * Volatility / 2.0) * Time) / (Volatility * Math.Sqrt(Time));
  140.             d2 = d1 - Volatility * Math.Sqrt(Time);
  141.             return -Math.Exp(-Yield * Time) * Price * phi(d1) * Volatility / (2 * Math.Sqrt(Time)) + Rate * Strike * Math.Exp(-Rate * Time) * CND(-d2) - Yield * Price * Math.Exp(-Yield * Time) * CND(-d1);
  142.         }
  143.         //rho for Call
  144.         public double blsrhoCall(double Price, double Strike, double Rate, double Time, double Volatility, double Yield)
  145.         {
  146.             double d1 = 0.0;
  147.             double d2 = 0.0;
  148.             d1 = (Math.Log(Price / Strike) + (Rate - Yield + Volatility * Volatility / 2.0) * Time) / (Volatility * Math.Sqrt(Time));
  149.             d2 = d1 - Volatility * Math.Sqrt(Time);
  150.             return Strike * Time * Math.Exp(-Rate * Time) * CND(d2);
  151.         }
  152.         //rho for Put
  153.         public double blsrhoPut(double Price, double Strike, double Rate, double Time, double Volatility, double Yield)
  154.         {
  155.             double d1 = 0.0;
  156.             double d2 = 0.0;
  157.             d1 = (Math.Log(Price / Strike) + (Rate - Yield + Volatility * Volatility / 2.0) * Time) / (Volatility * Math.Sqrt(Time));
  158.             d2 = d1 - Volatility * Math.Sqrt(Time);
  159.             return -Strike * Time * Math.Exp(-Rate * Time) * CND(-d2);
  160.         }
  161.         //volga is the same for Call and Put
  162.         public double blsvolga(double Price, double Strike, double Rate, double Time, double Volatility, double Yield)
  163.         {
  164.             double d1 = 0.0;
  165.             double d2 = 0.0;
  166.             d1 = (Math.Log(Price / Strike) + (Rate - Yield + Volatility * Volatility / 2.0) * Time) / (Volatility * Math.Sqrt(Time));
  167.             d2 = d1 - Volatility * Math.Sqrt(Time);
  168.             return Price * Math.Exp(-Yield * Time) * phi(d1) * Math.Sqrt(Time) * d1 * d2 / Volatility;
  169.         }
  170.         //vanna is the same for Call and Put
  171.         public double blsvanna(double Price, double Strike, double Rate, double Time, double Volatility, double Yield)
  172.         {
  173.             double d1 = 0.0;
  174.             double d2 = 0.0;
  175.             double vanna = 0.0;
  176.             d1 = (Math.Log(Price / Strike) + (Rate - Yield + Volatility * Volatility / 2.0) * Time) / (Volatility * Math.Sqrt(Time));
  177.             d2 = d1 - Volatility * Math.Sqrt(Time);
  178.             vanna = -Math.Exp(-Yield * Time) * phi(d1) * d2 / Volatility;
  179.             return vanna;
  180.         }
  181.         //charm for Call
  182.         public double blscharmCall(double Price, double Strike, double Rate, double Time, double Volatility, double Yield)
  183.         {
  184.             double d1 = 0.0;
  185.             double d2 = 0.0;
  186.             double charmC = 0.0;
  187.             d1 = (Math.Log(Price / Strike) + (Rate - Yield + Volatility * Volatility / 2.0) * Time) / (Volatility * Math.Sqrt(Time));
  188.             d2 = d1 - Volatility * Math.Sqrt(Time);
  189.             charmC = -Yield * Math.Exp(-Yield * Time) * CND(d1) + Math.Exp(-Yield * Time) * phi(d1) * (2 * (Rate - Yield) * Time - d2 * Volatility * Math.Sqrt(Time)) / (2 * Time * Volatility * Math.Sqrt(Time));
  190.             return charmC;
  191.         }
  192.         //charm for Put
  193.         public double blscharmPut(double Price, double Strike, double Rate, double Time, double Volatility, double Yield)
  194.         {
  195.             double d1 = 0.0;
  196.             double d2 = 0.0;
  197.             double charmP = 0.0;
  198.             d1 = (Math.Log(Price / Strike) + (Rate - Yield + Volatility * Volatility / 2.0) * Time) / (Volatility * Math.Sqrt(Time));
  199.             d2 = d1 - Volatility * Math.Sqrt(Time);
  200.             charmP = Yield * Math.Exp(-Yield * Time) * CND(-d1) - Math.Exp(-Yield * Time) * phi(d1) * (2 * (Rate - Yield) * Time - d2 * Volatility * Math.Sqrt(Time)) / (2 * Time * Volatility * Math.Sqrt(Time));
  201.             return charmP;
  202.         }
  203.         //color is the same for Call and Put
  204.         public double blscolor(double Price, double Strike, double Rate, double Time, double Volatility, double Yield)
  205.         {
  206.             double d1 = 0.0;
  207.             double d2 = 0.0;
  208.             double color = 0.0;
  209.             d1 = (Math.Log(Price / Strike) + (Rate - Yield + Volatility * Volatility / 2.0) * Time) / (Volatility * Math.Sqrt(Time));
  210.             d2 = d1 - Volatility * Math.Sqrt(Time);
  211.             color = -Math.Exp(-Yield * Time) * (phi(d1) / (2 * Price * Time * Volatility * Math.Sqrt(Time))) * (2 * Yield * Time + 1 + (2 * (Rate - Yield) * Time - d2 * Volatility * Math.Sqrt(Time)) * d1 / (2 * Time * Volatility * Math.Sqrt(Time)));
  212.             return color;
  213.         }
  214.         //dual delta for Call
  215.         public double blsdualdeltaCall(double Price, double Strike, double Rate, double Time, double Volatility, double Yield)
  216.         {
  217.             double d1 = 0.0;
  218.             double d2 = 0.0;
  219.             double ddelta = 0.0;
  220.             d1 = (Math.Log(Price / Strike) + (Rate - Yield + Volatility * Volatility / 2.0) * Time) / (Volatility * Math.Sqrt(Time));
  221.             d2 = d1 - Volatility * Math.Sqrt(Time);
  222.             ddelta = -Math.Exp(-Rate * Time) * CND(d2);
  223.             return ddelta;
  224.         }
  225.         //dual delta for Put
  226.         public double blsdualdeltaPut(double Price, double Strike, double Rate, double Time, double Volatility, double Yield)
  227.         {
  228.             double d1 = 0.0;
  229.             double d2 = 0.0;
  230.             double ddelta = 0.0;
  231.             d1 = (Math.Log(Price / Strike) + (Rate - Yield + Volatility * Volatility / 2.0) * Time) / (Volatility * Math.Sqrt(Time));
  232.             d2 = d1 - Volatility * Math.Sqrt(Time);
  233.             ddelta = Math.Exp(-Rate * Time) * CND(-d2);
  234.             return ddelta;
  235.         }
  236.         //dual gamma is the same for Call and Put
  237.         public double blsdualgamma(double Price, double Strike, double Rate, double Time, double Volatility, double Yield)
  238.         {
  239.             double d1 = 0.0;
  240.             double d2 = 0.0;
  241.             double dgamma = 0.0;
  242.             d1 = (Math.Log(Price / Strike) + (Rate - Yield + Volatility * Volatility / 2.0) * Time) / (Volatility * Math.Sqrt(Time));
  243.             d2 = d1 - Volatility * Math.Sqrt(Time);
  244.             dgamma = Math.Exp(-Rate * Time) * phi(d2) / (Strike * Volatility * Math.Sqrt(Time));
  245.             return dgamma;
  246.         }
  247.         [ComRegisterFunctionAttribute]
  248.         public static void RegisterFunction(Type type)
  249.         {
  250.             Registry.ClassesRoot.CreateSubKey(
  251.               GetSubKeyName(type, "Programmable"));
  252.             RegistryKey key = Registry.ClassesRoot.OpenSubKey(
  253.               GetSubKeyName(type, "InprocServer32"), true);
  254.             key.SetValue("",
  255.               System.Environment.SystemDirectory + @"\mscoree.dll",
  256.               RegistryValueKind.String);
  257.         }
  258.         [ComUnregisterFunctionAttribute]
  259.         public static void UnregisterFunction(Type type)
  260.         {
  261.             Registry.ClassesRoot.DeleteSubKey(
  262.               GetSubKeyName(type, "Programmable"), false);
  263.         }
  264.         private static string GetSubKeyName(Type type,
  265.           string subKeyName)
  266.         {
  267.             System.Text.StringBuilder s =
  268.               new System.Text.StringBuilder();
  269.             s.Append(@"CLSID\{");
  270.             s.Append(type.GUID.ToString().ToUpper());
  271.             s.Append(@"}\");
  272.            s.Append(subKeyName);
  273.            return s.ToString();
  274.        }
  275.    }
  276. }