Minggu, 02 Desember 2018

Dasar C# (Bagian 1)

Dasar C#

Daftar isi
-Pendahuluan
-Struktur dasar Program C#
-Class
-Class Member
-Static Class Member
-Konstanta dan readonly
-Objek
-Method
-Constructor
-Akses Modifier
-Properties
-Namespace dan using
-Parameter Method
-Method Overloading
-Overload Constructor
-Komposisi
-Penggunaan referensi “this”
-Inheritance (pewarisan)
-Class Abstrak
-Method abstrak
-Method Virtual
-Menyembunyikan method class induk dgn keyword “new”
-Polymorphisme
-Event dan delegate
-Interface
-Network programming
-Database Programming
-Array dan collection

Pendahuluan
Untuk memahami pemrograman  C#   kita wajib mengerti konsep dasar pemrograman berorientasi  Object(PBO). Konsep PBO pada C# pada dasarnya sama  dengan yg diterapkan pada  C++ ,VB.Net, JAVA, dll.
Sekilas gambaran tentang pemrograman berorientasi  Object(PBO)  sudah saya tulis pada artikel disini . Artikel tsb berisi penjelasan buat pembaca yg baru sama sekali yg ingin mengetahui apa itu pemrograman berorientasi objek.
Ada 3 jenis aplikasi C#  untuk  yang bisa kita buat
1. Aplikasi konsol
2. Aplikasi Visual
3. Aplikasi Class library.
4. Aplikasi WPF
Pelajaran dasar pemrograman C#  biasanya menggunakan aplikasi konsol supaya kita fokus kepada kode programnya saja.
Struktur dasar Program C#
Secara hirarki Program C# terdiri dari Namespace-> class-> method dan data

namespace
{
   class
    {
      data
      method
    }
}

Langsung saja kita lihat contoh program C#  paling sederhana  :

namespace test
{
  class Clscontoh
    {

      string  pesan =" halo apa kabar";       // data

      static void Main(string[] args)         // method
       {
       Console.WriteLine(pesan);
       }

   }     //penutup class
}        // penutup namespace scope


Penjelasan program
Program C#  minimal harus terdiri dari 1 class dan 1 methode Main().
Contoh diatas terdiri dari 1  class   dgn nama Clscontoh  dan  ClsContoh mempunya 1   methode   Main().
Langkah-langkah  kompilasi / menjalankan program diatas :
1.  Ketik program diatas   pada  notepad  dan simpan  dengan nama ex1.cs
    (nama terserah yg penting berextensi *.cs)
2.  Pada prompt dos ketik  c:>csc  ex1.cs
3.  Untuk menjalankanya ketik c:>ext1.exe

Program C#  terbentuk dari class  sedangkan program  C terdiri dari fungsi fungsi.
Untuk menyederhanakan program yg bersekala besar adalah dengan cara memecah program menjadi bagian/modul modul  yg lebih kecil, bentuk Modul tersebut diantaranya adalah class dan method. Sebuah aplikasi biasanya terbagi menjadi 3 modul atau layer yaitu user interface, proses dan koneksi database. Tiap tiap modul/layer mempunyai class nya masing masing. Class class tsb bisa menggunakan class yg sudah ada baik yg tersedia (di class library maupun yg dibuat oleh pengguna yg lain) atau kita sendiri yang membuatnya.

Class
Semua code dalam C# harus berada dalam class  dan tiap class terdiri dari  data  dan method .Method dan data disebut juga sebagai  member Class .  Data dalam class dimanipulasi melalui method . data disebut juga member variable atau instance variable.  instance variable dideklarasikan di luar method.

Class Member
Class  terdiri dari beberapa member/anggota antara lain
-Fields
-Constants
-Properties
-Methods
-Constructors
-Destructors
-Events
-Indexers
-Operators
-Nested Types

Setiap kelas tdk harus tersusun dari semua member class diatas, pada umumnya class yg akan kita pakai hanya terdiri dari constructor,property dan method.

Static Class Member
Static class member adalah member class yg diakses melalui class tdk melalui objek. jadi seolah oleh member static bersifat global di semua objek.  Jika  instance  variable  static  maka tiap objek mempunyai  instance variable yg sama.  Sebaliknya  pada  instance variable yg  bukan static maka tiap objek mempunyai salinan  (instance variable) masing masing.

Contoh

namespace gamepesawat
{
    class peswatTempur
      {
       public string namaPilot;
       public static int TotalTertembak=0;

       pulic int tembakmusuh()
           {
              TotalTertembak++;
              return TotalTertembak;
           }

        }

      Class  gamestart()
      {

           static void Main(string[] args)     // method Main
           {
             //membuat objek pesawatTempurF16 dan F22

              pesawatTempur F16 = new pesawatTempur();
              pesawatTempur F22 = new pesawatTempur();

              F16.namaPilot = "fatih";
              F16.tembak();

              F16.namaPilot= "dede";
              F16.tembak();
// mengakses statik variable totalTertembak dgn nama class pesawattempur bukan nama objek
           system.console.writeln("total tertembak={0}" pesawatTempur.TotalTertembak)
            }
      }
}


Dari contoh diatas kita bisa melihat bahwa static instance variable TotalTertembak adalah hanya ada 1 dan mempunyai nilai sama disemua objek dan cara mengaksesnya melalui nama class.  jika kita mencoba mengakses dgn  referensi objek  spt  F16.totalTertembak akan menyebabkan error saat dikompilasi.
Konstanta dan Readonly
Member class berupa konstanta di inisialisasi hanya sekali yaitu saat program dicompile. konstanta secara implisit adalah static member yaitu hanya ada satu nilai pada semua objek.
Member class berupa readonly inisialisasinya bisa beberapa kali pada programya yaitu tiap objek dibuat. Readonly di inisialisasi lewat constructor.

contoh

public class lingkaran
{
    public const double pi=3.14;
    public readonly double diameter;

     public lingkaran(double setdiameter)
     {
       diameter = setdiameter;
      }
}

Saat program dicompile nilai pi diinisialisasi yaitu tetap 3.14  selama program berjalan, sedangkan untuk nilai diameter setiap objek dibuat nilai readonly bisa diinisiaisasi.
Objek
Setelah class dibuat maka yg digunakan dalam program adalah objek dari class. cara membuat objek dari class (instance) adalah sbb:
class objek = new class.
misal nya kita buat class kalkulator dan sebuah method jumlah(int a, int b) dlm class tsb dan objek yg kita buat adalah casio
kalkulator casio = new kalkulator
untuk penggunaan objek casio tsb dgn cara :
hasil = casio.jumlah(2,3)
contoh konkritnya ada di bagian bawah artikel.
Method
Method   mirip   seperti fungsi , yaitu  potongan kode yg melaksanakan tugas tertentu  ,  method mempunyai  format sbb:
akses modifier-return_type-nama_method (parameter)

{
badan method
}
contoh method :
public int jumlah(int bil1, int bil2)
{
return bil1 + bil2;
}
contoh method tanpa return value :
public void tampilkanhasil(int hasil)
{
System.Console.WriteLine(“hasil operasi = {0}”, hasil);
}

Ringkasan hal hal yang terkait dgn method:
– methode terdiri dari header dan body method
– method bisa memiliki return value bisa juga tidak (ditandai dgn void)
– method bisa memiliki 1 atau lebih parameter
– method bisa memiliki parameter objek dan array.
– variable yg dideklarasikan di dlm method bersifat lokal hanya bisa diakses di dlm method saja. jika didalam method ada nama variable yg sama dgn instance variable, maka yg berlaku adalah variable lokal.
– untuk mengakses instance variable yg mempunyai nama yg sama dgn lokal variable gunakan this.nama_instance_variable
– method dlm class yg sama dipanggil dgn menuliskan nama method dan menuliskan argument untuk tiap parameternya. type argument harus sesuai dgn type parameter pada deklarasi method.
– memanggil method pd class yg berbeda menggukana statemen objekreferensi.namaMethod
– method bisa digunakan berulang ulang didalam program
– diusahakan membuat method sesederhana mungkin  dgn satu tugas spesifik.
– diusahakan nama method sesui tugas yg dikerjakan oleh method.
– didalam method tdk boleh ada deklarasi method lain.
– didalam method bisa memanggil method lain

Constructor
Constructor adalah method yg dijalankan setiap kali objek dibuat. Method ini mempunyai ciri ciri:
-nama method sama dgn nama class.
-tidak mempunyai return type.
-akses modifiernya “public”
Salah satu kegunaan constructor adalah untuk inisialisasi kondisi awal objek. Jika kita tdk membuat constructor maka secara otomatis C# akan membuatkan secara default tapi constructor tsb tdk melaksanakan apapaun .
contoh constructor:

class termometer
}
   public termometer() // constructor
   {

   }

}

Akses Modifier
Akses  modifier  mendefinisikan ruang lingkup pengaksesan  member class  .  Dari mana saja method dan instance variable bisa diakses , bisa diatur melalui  akses  modifier ini. Ada 4  akses modifier tapi untuk tahap awal kita akan membicarakan 2 lebih dahulu yaitu :
1. Public ,  member class  bisa diakses dari semua bagian program .
2. Private , member class hanya bisa diakses dari dlm class
Untuk default akses modifier member class  adalah  private. Sebaiknya data dlm sebuah class tdk bisa diakses langsung dari luar class tapi melalui method. sedangkan method biasanya dibuat public  sehingga bisa dipangggil dari luar class, sedangkan method yg private digunakan hanya dlm class itu sendiri(dipanggil/digunakan oleh method dlm kelas yg sama) sehingga private method disebut “helper method” .
Untuk memanggil method di dlm class yg sama cukup dengan menulis nama method beserta argument tiap parameternya. Sedangkan untuk memanggil method yg mempunyai akses public dari class yg berbeda harus menggunakan format nama_referensi_objek.nama_method.



21 komentar:

  1. FREGI PRASETYO ; 31601900027

    https://kelilingbrebes.blogspot.com/2019/11/brebes-berhias-kota-telor-asin-adalah.html

    BalasHapus
  2. IKHFAN ARDIANSYAH (31601900036)

    https://www.blogger.com/blogger.g?blogID=7633083996673790198#allposts/postNum=0

    BalasHapus
  3. KHOIRON ZAKI ISMOYO (31601900039)
    https://kesehatansky.blogspot.com/?m=1

    BalasHapus
  4. Hilmi Seto Panggalih(31601900033)
    https://www.blogger.com/u/2/blogger.g?blogID=154144522806848891#allposts

    BalasHapus
  5. HILMI SETO PANGGALIH(31601900033)
    https://gameterus30.blogspot.com/?m=1

    BalasHapus
  6. MERI ANDAYANI (31601900041)

    https://meriandayani018.blogspot.com/b/post-preview?token=APq4FmCb8t-zrEGBxT1Sdrlvyi1_UDZdjh9o56eI6MS5twJNXa2KT-IemJwXQ9VvZWvxqbS0GRfEA-JWZLIkKb8TP6A_BkLgSaAcRMOQbbKSB3rJk3EPmjsEOwHD9ImUGVpwIzlieceh&postId=3885041817050578761&type=POST

    BalasHapus
  7. FEBRIO AQIL RIZQULLAH (31601900025)

    https://jeansjaket.blogspot.com/2020/01/macam-macam-jaket-jeans-yang-recommaded.html

    BalasHapus
  8. FITRI NUR KHOIRIAH (31601900026)


    https://fitrinurkhoiriah.blogspot.com

    BalasHapus
  9. FATIN FATIKAH (31601900024)

    https://www.blogger.com/blogger.g?blogID=2701733845268896657#editor/target=post;postID=4985409613740533628

    BalasHapus
  10. HADI PRANOTO AJI (31601900028)

    http://electrasemarang.blogspot.com

    BalasHapus
  11. HADI PRANOTO AJI (31601900028)

    https://hadipranotoaji.blogspot.com/2020/01/1.html?m=1

    BalasHapus
  12. Jihad fadhilah 31601900038

    https://jihadfadhilah.blogspot.com/2020/01/all-about-pantai-marina.html

    BalasHapus
  13. FITRI NUR KHOIRIAH (31601900026)


    https://fitrinurkhoiriah.blogspot.com/2020/01/fitri-nur-khoiriah.html

    BalasHapus
  14. HANA SETYA KUMALASARI


    https://hanasetya32.blogspot.com/2020/01/keindahan-alam-indonesia-indonesia.html

    BalasHapus
  15. HASNA FAUZIYAH


    https://hasnafauziyahh.blogspot.com/2020/01/10-spot-wisata-paling-hits-di-semarang.html

    BalasHapus
  16. Assalamu'alaikum wr wb pak munaf
    Saya HAQI AHMAD MAULANA (31601900030) Industri A 2019 IT-35
    Dengan ini saya melampirkan link tugas yang bapak berikan
    https://sumbeermakmur.blogspot.com/2020/01/memperkenalkanpancasila-melalui-metode.html?m=1

    BalasHapus
  17. Assalamualaikum wr wb pak munaf saya Husain Nanda Prayoga dengan no nim (31601900035) industri A 2019 IT-35 dengan ini melampirkan link tugas yang bapak berikan
    https://jelajahhutannyaman.blogspot.com/2020/01/macam-macam-part-pelindung-offroad.html?m=1

    BalasHapus
  18. Assalamualaikum wr. Wb.
    Saya Helmi Yahya kelas industri19 A, nim (31601900032). Berikut link tugas blog saya:
    https://helmisimple.blogspot.com/2020/01/persatuan-yang-tak-karuan.html

    BalasHapus