Top Banner

of 92

Modul C -Libre

Oct 13, 2015

Download

Documents

Fardan Wijaya

et
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
  • 5/23/2018 Modul C -Libre

    1/92

    M odul Pemrograman C# Fundamental

    Pengenalan Bahasa C#

    1.1 Sejarah Singkat

    1.1.1 Sejarah Singkat Lahirnya Bahasa C#

    Pada akhir dekade 1990an, Microsoft membuat program

    Microsoft Visual J++ sebagai percobaan untuk menggunakan Java di

    dalam sistem operasi Windows untuk meningkatkan antarmuka dari

    Microsoft Component Object Model (COM). Akan tetapi, akibat masalah

    dengan pemegang hak cipta bahasa pemrograman Java, Sun

    Microsystems, Microsoft pun menghentikan pengembangan J++, dan

    beralih untuk membuat pengganti J++. Kompiler dan mmesin vitualnya

    sendiri menggunakan sebuah bahasa pemrograman yang bersifat

    general-purpose.

    Untuk menangani proyek ini, Microsoft merekrut Andres Helsberg,

    yang merupakan mantan karyawan Borland, pembuat bahasa Turbo

    Pascal, dan Borland Delphi, yang juga mendesain Windows Foundation

    Classes (WFC) yang digunakan dalam J++.Sebagai Hasil dari usaha tersebut, C# pertamakali diperkenalkan

    pada bulan Juli 2000 sebaga sebuah bahasa pemrograman modern

    beror ientasi objek yang menjadi sebuah bahasa pemrograman utama di

    dalam pengembangan di dalam platform Microsoft .NET Framework.

    Pengalaman Helsberg sebelumnya dalam mendesain bahasa

    pemrograman (Seperti Visual J++, Delphi, Turbo Pascal) dengan mudah

    dilihat dalam sintaksis bahasa C#, begitu pula hal nya pada inti Common

    Language untime (CLR). Dari kutipan atas interview dan makalah

    makalah teknisnya, ia menyebutkan kelemahan kelemahan yang

    terdapat pada bahasa pemrograman yang umum digunakan saat ini,

    misalnya C++, Java, Delphi , ataupun Small talk.

    Kelemahan- kelemahan yang dikemukakan itu akhirnya dijadikan

    basis CLR sebagai bentukan baru untuk menutupi kelemahan

    kelemahan tersebut., dan pada akhirnya mempengaruhi desain pada

    bahasa C# itu sendiri. Ada kritik yang menyatakan C# sebagai bahasa

    yang berbagi akar dari bahasa-bahasa pemrograman lain.

    1

  • 5/23/2018 Modul C -Libre

    2/92

    M odul Pemrograman C# Fundamental

    Fitur-fitur yang diambil dari bahasa C++ dan Java adalah desain

    berorientasi objek, seperti garbage collection, reflection, akar kelas

    (root class), dan juga penyederhanaan terhadap pewarisan jamak

    (multiple inheritance). Fitur-fitur tersebut didalam C# kini telah

    diaplikasikan terhadap iterasi, properti, kejadian (event), metadata, dan

    konversi antara tipe-tipe sederhana dan juga objek.

    C# didesain untuk memenuhi kebutuhan akan sintaksis C++ yang

    lbih ringkas dan Rapid Application Development yang tanpa batas

    (dibandingkan dengan RAD yang terbatas seperti yang terdapat pada

    Delphi dan Visual Basic).

    Agar mampu mmpromosikan penggunaan besar-besaran dari

    bahasa C#, Microsoft, dengan dukungan dari Intel Corporation dan

    Hewlett-Packard, Mencoba mengajukan standarisasi terhadap bahasa

    C#. Akhirnya pada bulan Desember 2001, standar pertama pun diterimaoleh European Computer Manufacturers Association atau Ecma

    International (ECMA), dengan nomor standar ECMA-334. Pada

    Desember 2002, standar kedua pun diadopsi oleh ECMA, dan tiga bulan

    kemudian diterima oleh International Organization for Standarization

    (ISO), dengan nomor standar ISO/ IEC 23270:2006

    1.1.2 Arsitektur .NET dan .NET Framework

    a. Common Language Runtime (CLR)

    Konsep paling penting dalam .NET framwork adalah keberaaan

    dan fungsionalitas .NET Common Language Runtime (CLR). CLR adalah

    sebuah layer atau lapisan framework yang berada pada sistem operasi

    dan menangani eksekusi dari aplikasi .NET. Program yang nantinya

    akan dibuat t idak terkomunikasi langsung dengan Sistem Operasi, tetapi

    melalui CLR terlebih dahulu.

  • 5/23/2018 Modul C -Libre

    3/92

    M odul Pemrograman C# Fundamental

    b. MSIL (Microsoft Intermediate Language) Code

    Pada saat mengkompilasi aplikasi .NET menggunakan bahasa

    pemograman .NET (misalkan C#, VB.net atau C#.net), source code yang

    telah anda buat tidak akan dubah langsung menjadi sebuah kode biner

    executable tetapi diubah dahulu menjadi intermediate code yang

    bernama MSIL, yang diinterpretasikan oleh CLR.

    MSIL adalah kode sistem operasi dan kode hardware yang berdiri

    sendiri. Pada saat program dieksekusi, MSIL akan mengubahnya

    menjadi kode biner executable.

    c. Just in Time Compilers (JITers)

    Pada saat kode intermediate language membutuhkan untuk

    dieksekusi, CLR akan meminta JIT compiler untuk mengompilasi IL

    (Intermediate Language) ke native executable code (Exe atau DLL) yang

    dirancang pada mesin atau OS tertentu. JITers pada dasarnya berbeda

    sama sekali dengan compiler konvensional yang mengompilasi IL ke

    Native kode hanya pada saat dibutuhkan.

    Misalkan ketika sebuah fungsi dipanggil, Intermediate Language

    dari function body akan diubah pada saat itu juga atau just in time. Jadi,

    bagian dari kode yang tidak digunakan tidak akan diubah menjadinative code.

    Jika beberapa kode IL diubah ke native code, dan kode tersebut di

    lain waktu dibutuhkan lagi, CLR akan menggunakan copy kode yang

    sama (yang telah dikompi lasi) tanpa harus mengompilasi ulang kode

    tersebut. JITers sangat memperhatikan jenis processor dan sistem

    operasi pada saat runtime. JITers dapat mengoptimasi kode dengan

    sangat efisien dalam merancang sebuah aplikasi yang baik.

    d. The Framework Class Library (FCL).NET Framework menyediakan banyak sekali jenis Framework

    Class Library (FCL) untuk digunakan secara serentak dalam proses

    pengembangan aplikasi. FCL berisi r ibuan class yang menyediakan

    akses ke windows API dan fungsi pada umumnya seperti Manipulasi

    String, Data struktur umum, IO, Streams, Threads, Security, Network

  • 5/23/2018 Modul C -Libre

    4/92

    M odul Pemrograman C# Fundamental

    Programing, Pemrograman Windows, Pemrograman web, data akses,

    dan masih banyak lagi yang lainnya.

    Pengertian sederhananya, FCL merupakan library standar besar

    yang dikemas dalam satu bahasa pemrograman. Bagian terbaik dari

    library ini adalah peggunaan teknik pemrograman object oriented yang

    membuat teknik pengaksesan dan penggunaannya menjadi sangat

    sederhana. Anda dapat menggunakan FCL pada program yang akan

    dibuat hanya seperti menggunakan kelas-kelas lainnya. Anda bahkan

    dapat menerapkan teknik inheritance dan polimorfisme pada kelas FCL

    ini.

    e. Common Language Specification

    Anda mungkin sering menggunakan istilah . NET CompliantLanguage yang berasal dari common language specification (CLS).

    Microsoft telah mengeluarkan sebuah subset kecil dari spesifikasi

    masing-masing bahasa yang dapat digunakan dan dapat memenuhi

    standar .NET Compliant Language.

    CLS pada dasarnya adalah sebuah desain bahasa yang menetapkan

    standar bawah tertentu. Sebagai contoh, misalkan anda membuat

    program namun tidak terdapat pointer , tidak terdapat multiple

    inheritance, maupun tidak ada global variable, maka kode anda dijamin

    dapat digunakan lagi pada bahasa .NET yang lain selama masih dalam

    ruang lingkup CLS.

    f. The Common Type System (CTS)

    .NET juga mendefinisikan sebuah common type system (CTS).

    Seperi CLS, CTS juga terdiri dari beberapa set standar. CTS

    mendefinisikan tipe data dasar ang dipahami dan digunakan oleh IL.

    Masing-masing .NET Compliant Language harus memetakan datanya

    pada sebuah tipe data standar.

    Hal ini yang membuat dua bahasa berkomunikasi satu sama lain

    dengan cara menerima parameter untuk dan dari satu sama lain.

    Misalkan, CTS mendefinisikan sebuah tipe data int (integer 32 bit) yang

    dipetakan dengan bahasa C# menjadi int dan VB.NET juga akan

    memetakanna menjadi t ipe data integer.

  • 5/23/2018 Modul C -Libre

    5/92

    M odul Pemrograman C# Fundamental

    g. Garbage Collection (GC)

    CLR juga berisi sebuah Garbage Collector (GC) yang berjalan di

    prioritas thread rendah dan memeriksa apakah terdapat alokasi ruang

    memori yang tidak direferensikan. Jika Garbage Collection menemukanbeberapa data yang tidak direferensikan oleh sebuah variable, ruang

    memori tersebut akan dikembalikan lagi ke sistem operasi. Kehadiran

    Garbage Collector berguna untuk memudahkan programmer dalam

    melacak data yang kacau.

    h. .NET Framework

    .NET Framework adalah kombinasi dari layer CLR, FCL, Data, dan

    kelas XML, Windows, aplikasi web dan web service. Framework adalah

    sebuah kerangka penopang sebuah program untuk dapat berjalan padasuatu sistem operasi. Contohnya adalah yang biasa kita kenal

    dengan .NET framework pada sistem operasi berbasis windows dan

    mono framework pada sistem operasi berbasis UNIX dan Mac OS. Dan C#

    bukan hanya bisa dijalankan pada sistem berbasis windows namun juga

    ke sistem operasi lain dengan perantara frameworknya, analoginya

    seperti berikut :

    Framework

    Bahasa Pemrograman

    C# VB.NET F# C++

    Windows Linux MAC OS

    .NET MONO

  • 5/23/2018 Modul C -Libre

    6/92

    M odul Pemrograman C# Fundamental

    1.2 Struktur Program C#

    Keyword using digunakan untuk memberitahu compiler class apa

    yang sedang digunakan pada aplikasi

    Keyword namespace digunakan untuk mendeklarasikan ruang

    lingkup dari class yang dibuat. Class didalam namespace dapat

    dipanggil dengan mencantumkan nama spacenya terlebih dahulu.

    Using system; pada baris pertama mempunyai arti bahwa user dapat

    menggunakan clas-class yang ada pada namespace System.

    Static menunjukan tipe method

    void menunjukkan bahwa method tidak mengembalikan nilai atu

    objek

    Main merupakan nama method utama program C#

    String merupakan tipe argumen yang akan diterima sebagaiparameter dari command C#.

    Args merupakan merupakan array argumen yang dapat di tambahkan

    pada saat menggunakan command C# untuk menjalankan program

    C#

  • 5/23/2018 Modul C -Libre

    7/92

    M odul Pemrograman C# Fundamental

    1.2.1 Sintaks Dasar C#

    a. Perintah Keluaran

    b. Cara Menampilkan variable

    A , B adalah variable yang dimasukkan kedalam {0} dan {1}

    c. Perintah Membaca inputan

    d. Perintah Konversi

    Contoh: int.Tryparse(input, out jumlah)

    Mengubah isi dari variable input yang bertipe data String ke

    integer, dan dikeluarkan pada variable jumlah.

    1.3 Membuat Project

    Project adalah kumpulan file yang dapat di-compile menghasilkan

    program. Program dapat didistribusikan dan dapat dieksekusi tanpamemerlukan IDE yang digunakan untuk menulis kode program. Program

    dapat juga disebut aplikasi. Sebuah aplikasi dihasilkan dari satu project

    atau lebih dan didesain untuk menjalankan fungsi tertentu. Berikut ini

    adalah cara membuat project didalam Microsoft Visual Studio 2010

    Console.Write (pernyataan dlm bntuk String, argument)

    Console.Write (Nilai A = {0} , dan Nilai B = {1}, A,B)

    Console.Readline ();

    Console.ReadKey();

    Tipedata.Tryparse(variable yang akan dikonversi, out variable keluaran)

  • 5/23/2018 Modul C -Libre

    8/92

    M odul Pemrograman C# Fundamental

    a. Membuka Jendela Microsoft Visual Studio 2010

    b. P

    i

    l

    i

    h

    F

    i

    l

    e

    -

    >

    New -> Project

  • 5/23/2018 Modul C -Libre

    9/92

    M odul Pemrograman C# Fundamental

    c. Pilih Visual C#, Console Appl ication , Beri nama aplikasi

    (Menentukan Nama Class) , dan pilih tempat penyimpanan

    project

    Menu Bar = Berisi pilihan File, Edit, View, Reflector, Project, Build,

    Debug, Tools, Architecture, Test, Analyze, Window, Help

    Pilih Visual C#

    Pilih Console Application

    Nama Aplikasi

    Menu

    Lembar KerjaJendela

    SoulutionJendela properti

  • 5/23/2018 Modul C -Libre

    10/92

    M odul Pemrograman C# Fundamental

    Lembar Kerja = Tempat dimana kita mengisikan list dari program

    yang akan ki ta buat.

    Jendela Output = Berisi pesan debug dan eror dari list program yang

    kita ketikkan.

    Jendela Properti = Berisi properti dari sebuah objek, biasanya

    digunakan dalam penggunaan aplikasi berbentuk form.

    Solution Explorer = Jendela yang memudahkan dalam pengaturan dan

    pembuatan class dan sebagainya yang berhubungan dengan properti

    dari suatu program.

    1.4 Menjalankan Project

    1.4.1 Perintah Untuk Menamplkan Hello World

    Untuk menjalankannya tekan F5

    Hasil Tampilan

  • 5/23/2018 Modul C -Libre

    11/92

    M odul Pemrograman C# Fundamental

    1.5 Latihan I1. Apakah perbedaan antara Console.Write dengan Console.WriteLine?

    2. Buatlah sebuah tampilan program sepert i berikut menggunakan

    Console.WriteLine!

    3. Apakah fungsi Console.Read(); pada program diatas?

    4. Bagaimana hasil tampilan jika Console.Read(); tidak digunakan?

  • 5/23/2018 Modul C -Libre

    12/92

    M odul Pemrograman C# Fundamental

    Tipe data,Variable & Operator

    2.1 Pengenalan Tipe DataTipe data merupakan jenis data yang digunakan pada program untuk

    dioperasikan

    Pada C# terdapat dua jenis tipe data, yaitu:

    Tipe data dasar misalkan integer, float, byte, dan sebagainya.

    Tipe data reference misalkan object dan delegates

    Tipe data dasar yang terdapat pada C# adalah:

    Saat kita mendeklarasikan suatu variable dengan tipe data integer atau

    int, data tersebut tidak akan bisa diisi dengan huruf. Kemudian pengisian

    data tersebut juga tidak menggunakan tanda petik dua ( ) . Sama halnya

    dengan double, float, dan decimal, dimana pengisiannya tidak

    Tipe Integral

    Byte 8-bit unsigned integerbyte 8-bit signed integerhort Short integer

    ushort An Unsigned Short IntegerInt IntegerUint An Unsigned IntegerLong Long Integer

    ulong An Unsigned Long IntegerTipe Floating Point

    Float Single-precision Float Pointdouble Double-precision Float Point

    Tipe data lain

    char Characterbool Memberikan nilai True/ Falsedecimal Bilangan bulatString Berisi karakter alfanumerik

    atau gabungan dari beberapa

    karakter

    2

  • 5/23/2018 Modul C -Libre

    13/92

    M odul Pemrograman C# Fundamental

    menggunakan tanda petikdua. Sedangkan untuk String, harus

    mendefinisikan suatu nilai dengan menggunakan tanda petik dua.

    2.2 Attribute / Variable

    2.2.1 Attribut/ Variable

    Variable adalah nama dari suatu lokasi di memori yang digunakan

    untuk menyimpan data sementara. Variable diberi nama tertentu yang

    menunjukkan domain yang diwakilinya. Dalam memberikan nama

    variable ada beberapa ketentuan yang harus diperhatikan yaitu:

    a. Panjang karakter nama variable tidak dibatasi

    b. Nama variable harus diawali dengan huruf, tanda garis

    bawah(underscore_) atau tanda $. Selanjutnya dapat diikuti olehkarakter lain selain operator(*,-,+), dengan kata lain variable dapat

    diawali dengan karakter khusus kecuali operator .

    c. Tidak diperbolehkan menggunakan kata kunci (keyword) yang

    digunakan pada C# (contoh: if, for , while, dll )

    d. Bersifat case sensitive (membedakan huruf besar dan huruf kecil )

    e. Penul isan variable tidak boleh menggunakan spasi

    f. Syntax Penul isan variable harus diawali dengan tipe data terlebih

    dahulu karena data yang tersimpan dalam variable harus memiliki

    tipe tertentu sebelum digunakan dalam aplikasi.

    Syntax : [tipe_data] [nama_variable]

  • 5/23/2018 Modul C -Libre

    14/92

    M odul Pemrograman C# Fundamental

    Contoh 2.1:Ketikkan coding berikut ini:

    namespaceConsoleApplication7{classProgram

    {staticvoidMain(String[] args)

    {Stringnama;Console.Write("\ n Masukkan Nama Anda: ");

    nama = Console.ReadLine();

    Console.WriteLine("\ n Selamat belajar C# {0}" , nama);Console.Read();

    }}

    }

    2.2.2 KonstantaVariable konstata adalah salah satu jenis variable memiliki nilai

    tetap atau tidak dapat diubah. Untuk menuliskan variable konstanta,

    sintaksnya adalah:

    Syntax : const[tipe_data] [nama_variable]

  • 5/23/2018 Modul C -Libre

    15/92

    M odul Pemrograman C# Fundamental

    Contoh 2.2:Ketikkan coding berikut ini:

    2.3 Jenis-Jenis OperatorOperator digunakan untuk mengombinasikan suatu data dengan

    data lain. Biasanya operator digunakan pada data yang tipenya dapat

    dikalkulasi seperti data yang bersifat integral atau floating point.

    Pengkalkulasian data melalui operator ada berbagai macam cara

    tergantung tipe dari data tersebut. Berikut ini adalah jenis-jenis operator :

    2.3.1 Operator AritmatikaOperator aritmatika digunakan untuk perhitungan matematis

    seperti dalam penambahan, pengurangan, perkalian, dan pembagian

  • 5/23/2018 Modul C -Libre

    16/92

    M odul Pemrograman C# Fundamental

    Simbol Keterangan+ operator penjumlahan

    - operator pengurangan

    * operator perkalian

    / operator pembagian% operator sisa bagi

    Contoh 2.3:Ketikkan coding berikut ini :

    staticvoidMain(String[] args){

    Stringnim, nama, nabsen, ntugas, nuts, nuas;doublenakhir, n_absen, n_tugas, n_uts, n_uas;Console.Write("\ n Nim : ");

    nim = Console.ReadLine();Console.Write(" Nama : ");

    nama = Console.ReadLine();Console.Write(" Nilai absen : ");

    nabsen = Console.ReadLine();Console.Write(" Nilai Tugas : ");

    ntugas = Console.ReadLine();Console.Write(" Nilai UTS : ");

    nuts =Console.ReadLine();Console.Write(" Nilai UAS : ");

    nuas = Console.ReadLine();n_absen = Convert.ToDouble(nabsen);n_tugas = Convert.ToDouble(ntugas);

    n_uts =Convert.ToDouble(nuts);n_uas = Convert.ToDouble(nuas);nakhir = (n_absen * 10 / 100)+(n_tugas* 20 / 100)+(n_uts* 30/ 100) + (n_uas* 40 /100);

    Console.Write(" Nilai Akhir : {0}", nakhir);Console.Read();

    }

  • 5/23/2018 Modul C -Libre

    17/92

    M odul Pemrograman C# Fundamental

    2.3.2 Operator RelasiOperator relasi dalam sebuah program biasa digunakan untuk

    membandingkan dua buah nilai, dan operator relasi akan memberikan

    nilai benar atau salah (true, false)

    Contoh 2.4:Ketikkan coding berikut ini :

    staticvoidMain(String[] args){

    Stringa, b;boollb, lk, lbs, lks, smd, tsm;int var_a, var_b;

    Console.Write("\ n Masukkan Nilai a : ");

    a = Console.ReadLine();Console.Write(" Masukkan Nilai b : ");

    b =Console.ReadLine();

    var_a = Convert.ToInt16(a);var_b = Convert.ToInt16(b);

    lb = var_a > var_b;/ / lebih besarlk = var_a < var_b;/ / lebih kecilbs = var_a >= var_b;/ / lebih besar sama denganlks = var_a = lebih dari sama dengan

    == sama dengan

    != tidak sama dengan

  • 5/23/2018 Modul C -Libre

    18/92

    M odul Pemrograman C# Fundamental

    2.3.3 Operator LogikaOperator logika digunakan untuk menggabungkan dua buah

    ungkapan kondisi menjadi sebuah ungkapan kondisi. Oleh karena itu

    biasanya operator logika digunakan bersamaan dengan percabangan (IF).

    Simbol Keterangan! NOT

    && short-circuit AND

    || short-circuit OR

  • 5/23/2018 Modul C -Libre

    19/92

    M odul Pemrograman C# Fundamental

    Contoh 2.5:

    staticvoidMain(String[] args){

    Stringa, b;int convert_a, convert_b;booldan, atau, bukan_a, bukan_b, var_a, var_b;

    Console.WriteLine("\ n Input nilai a dan b dengan 1 atau 0");Console.Write(" Masukkan ni lai a : ");

    a = Console.ReadLine();Console.Write(" Masukkan ni lai b : ");

    b =Console.ReadLine();

    convert_a = Convert.ToInt16(a);convert_b = Convert.ToInt16(b);

    var_a = Convert.ToBoolean(convert_a);var_b = Convert.ToBoolean(convert_b);

    dan = var_a && var_b;atau = var_a || var_b;bukan_a = !var_a;bukan_b = !var_b;

    Console.WriteLine("\ n hasil dari a and b adalah {0}", dan);Console.WriteLine(" hasil dari a or b adalah {0}" , atau);Console.WriteLine(" hasil dari not a adalah {0}" ,bukan_a);Console.WriteLine(" hasil dari not b adalah {0}", bukan_b);Console.Read();Console.Read();

    }

    2.4 Latihan II

    1. Sebutkan perbedaan antara tipe data string dan boolean.

    2. Buatlah sebuah program operator sederhana dengan input

    hanya sebanyak dua nilai (a dan b) dan memilik i tampilan

    seperti di bawah ini :

  • 5/23/2018 Modul C -Libre

    20/92

    M odul Pemrograman C# Fundamental

    3. Apakah arti dari baris program di bawah ini?

    n_tugas =Convert.ToDouble(ntugas);

    4. Jika a = 10 dan b = 5, maka a OR b adalah?

  • 5/23/2018 Modul C -Libre

    21/92

    M odul Pemrograman C# Fundamental

    Operasi

    Penyeleksian Kondisi ( IF)

    3.1 Pernyataan BerkondisiPernyataan Bercabang digunakan untuk memecahkan persoalan

    untuk mengambil suatu keputusan diantara sekian pernyataan yang ada.

    Untuk keperluan pengambilan keputusan, Bahasa pemrograman C#

    menyediak beberapa perintah antara lain.

    3.1.1 Pernyataan If-Then-Else

    Pengecekan kondisi merupakan suatu aspek terpentingdalam pemrograman. Pengecekan kondisi ini sudah ada sejak bahasa

    assembly. C# juga menyediakan pengecekan kondisi berupa if..then.. else.

    Struktur dari pernyataan. Struktur dari pernyataan kondisi dalam C#

    dinyatakan seperti berikut:

    3

    IF (Kondisi)

    { Keputusan;}

    Else

    {Keputusan;}

  • 5/23/2018 Modul C -Libre

    22/92

    M odul Pemrograman C# Fundamental

    Contoh 3.1: Menampi lkan Grade Pada Contoh 2.3

    staticvoidMain(String[] args){

    Stringnim, nama, nabsen, ntugas, nuts, nuas;doublenakhir, n_absen, n_tugas, n_uts, n_uas;

    Console.Write("\ n Nim : ");nim = Console.ReadLine();Console.Write(" Nama : ");nama = Console.ReadLine();Console.Write(" Nilai absen : ");nabsen = Console.ReadLine();Console.Write(" Nilai Tugas : ");ntugas = Console.ReadLine();Console.Write(" Nilai UTS : ");nuts = Console.ReadLine();

    Console.Write(" Nilai UAS : ");

    nuas = Console.ReadLine();n_absen = Convert.ToDouble(nabsen);n_tugas =Convert.ToDouble(ntugas);n_uts = Convert.ToDouble(nuts);n_uas = Convert.ToDouble(nuas);

    nakhir = (n_absen * 10 / 100)+(n_tugas* 20 / 100)+(n_uts* 30/ 100) + (n_uas*40 / 100);Console.WriteLine(" Nilai Akhir : {0}", nakhir);

    if(nakhir >= 80){Console.WriteLine(" Grade : A");}elseif(nakhir >= 70){Console.WriteLine(" Grade : B");}elseif(nakhir >= 60){Console.WriteLine(" Grade : C");}elseif(nakhir >= 50){Console.WriteLine(" Grade : D");

    }else{Console.WriteLine(" Grade : E");}Console.Read();}

  • 5/23/2018 Modul C -Libre

    23/92

    M odul Pemrograman C# Fundamental

    3.1.2 Pernyataan Switch CasePernyataan Switch Case juga merupakan satu pertanyaan

    terkondisi. Pernyataan switch case pada dasarnya hampir sama dengan if

    then else. Jika anda memerlukan satu pernyataan dengan banyak kondisi,

    gunkan pernyataan switch case. Struktur dari pernyataan Switch Case

    adalah sebagai berikut :

    Contoh 3.2:

    staticvoidMain(String[] args){

    Console.WriteLine("Password yang anda masukkan salah, coba lagi");Console.Write(" Masukkan Password : ");Stringpass = Console.ReadLine();

    switch(pass){

    case"P4ssw0rd":Console.Clear();

    Console.WriteLine("Selamat datang di ruang administrator ");Console.WriteLine("======================================");break;default:Console.Clear();Console.WriteLine("Anda tidak berhak masuk kedalam sistem ini ");break;

    }Console.Read();}

    Switch (Expresion)

    {

    Case kondisi1 :

    Keputusan 1;

    Break;

    Default:

    Keputusan n;

    Break;

    }

  • 5/23/2018 Modul C -Libre

    24/92

    M odul Pemrograman C# Fundamental

    Tampilan :

  • 5/23/2018 Modul C -Libre

    25/92

    M odul Pemrograman C# Fundamental

    Latihan III

    1. Buatlah sebuah program dengan tampilan keluaran seperti di bawah ini

    Dengan ketentuan nilai 1 dan nilai 2 berupa variabel yang di input ,kemudian pil ihan diinput dengan opsi yang akan dipi lih dan tampilan serta

    jumlah akan muncul secara otomatis.

  • 5/23/2018 Modul C -Libre

    26/92

    M odul Pemrograman C# Fundamental

    Proses Perulangan (Loop)

    Perulangan atau iterasi sangat diperlukan untuk mencari data

    pada setiap list yang telah didefinisikan. Pada C#, perulangan bisa

    dilakukan dengan beberapa cara seperti for , foreach, whi le, dan go to.

    4.1 Struktur ForDengan menggunakan for, kita menginstruksikan C# untuk

    melakukan iterasi data yang dimulai dengan nilai counter yang kita

    definisikan.

    Contoh 4.1

    staticvoidMain(String[] args){

    for(int angka = 1; angka

  • 5/23/2018 Modul C -Libre

    27/92

    M odul Pemrograman C# Fundamental

    Contoh 4.2

    staticvoidMain(String[] args){

    for(int angka = 10; angka >= 1; angka--){

    Console.WriteLine("\ n Angka Ke -"+ angka.ToStr ing() );

    }Console.Read();

    }

    4.2 Struktur WhilePerulangan while tidak memerlukan counter (pencacah) untuk

    menentukan sebuah iterasi. Perulangan while haya perlu memasukkan sebuah

    kondisi yang mana while nantinya akan mengecek kondisinya terlebih dahulu

    baru kemudian melakukan proses perulangan. Looping while memil iki str uktur

    sebagai berkut :

    While (Ekspresi boolean)

    {

    Statement perulangan;

    }

  • 5/23/2018 Modul C -Libre

    28/92

    M odul Pemrograman C# Fundamental

    Contoh 4.3

    staticvoidMain(String[] args){int i = 1;

    while(i

  • 5/23/2018 Modul C -Libre

    29/92

    M odul Pemrograman C# Fundamental

    4.4 Struktur Foreach

    Foreach memiliki konsep yang sama dengan for. Biasanya foreach

    digunakan unr uk mengambil seluruh data pada list yang ada. Perbedaannya

    adalah foreach tidak menggunakan counter, karena proses iterasi dilakukan

    secara internal array. Kelebihan dari foreach yaitu lebih cepat mendapatkan

    nilai array secara keseluruhan. Kekurangannya yaitu tidak bisa mengakses

    nilai dari suatu indeks tertentu. Berikut ini adalah str uktur dari foreach.

    Contoh 4.5

    staticvoidMain(String[] args){

    String[] Str ingarray = { "one", "two", "three"};foreach(Stringelement inStringarray)

    {Console.WriteLine(element + " ");

    }Console.Read();

    }

    4.5 Deret dalam perulangan

    4.5.1 Fibonacci

    4.6 Latihan

    Foreach (tipe_data nama_var in nama_array)

    {

    Statement;

    }

  • 5/23/2018 Modul C -Libre

    30/92

    M odul Pemrograman C# Fundamental

    Pengenalan OOP

    5.1 Pengantar OOP

    Secara umum, sebuah program komputer terdiri atas kode

    dan data yang dapat berupa variable maupun konstanta. Kode dan datatersebut kemudian diatur sehigga dapat bekerja sama untuk

    menghasilkan program keluaran yang akan digunaan untuk

    menyelesaikan sebuah permasalahan.

    Pada model pemrograman prosedural alur kerja program

    berorientasi pada process (Process-Oriented). Program merupakan

    gabungan dari data dan kode dengan struktur program yang berupa

    urutan proses. Pendekatan semacam ini memiliki kelemahan, yaitu akan

    menemui bayak kesulitan ketika menangani kasus-kasus yang kompleks,

    membutuhkan ribuan baris kode. Kondisi seperti itu akan menyulitkan

    programmer dalam melacak kesalahan (debugging), meyisipkan modulbar dalam pr ogram, dan sebagaiya.

    Pemograman berorientasi objek (PBO) hadir untuk mjadi

    solusi kelemahan yang terdapat pada pendekatan prosedural biasa.

    Dalam pemrograman berorientasi objek, pendekatan yang dilakukan

    adalah dengan memodelkan sistem menjadi objek-objek. Objek dapat

    didefinisikan sebagai suatu enti tas yang memil iki data dan method.

    Object Oriented Programing (OOP) atau yang lebih dikenal

    dengan pemrograman berorientasi objek adalah suatu teknik atau

    pendekatan baru dalam dunia pemrograman. Sebelum teknik OOPpopuler para programmer sering menggunakan teknik prosedural dalam

    membuat program untuk kebutuhan-kebutuhan mereka. Selanjutnya

    ketika OOP ternyata lebih mampu menyelesaikan masalah daripada

    teknik prosedural, sebagian besar programmer mulai menggunakan

    teknik OOP.

    5

  • 5/23/2018 Modul C -Libre

    31/92

    M odul Pemrograman C# Fundamental

    Dalam prosedural programming kebanyakan fungsi dalam

    sebuah program ditulis dalam beberapa modul atau dapat lebih dari satu

    modul tergantung dari jenis aplikasi yang dibuat. Modul-modul ini

    memiliki ketergantungan antara yang satu dengan yang lainnya. Bila anda

    ingin mengubah satu modul maka anda harus mengganti baris-baris yang

    telah anda buat pada modul lainnya yang berkaitan dengan modul

    tersebut. Dengan teknik OOP, anda tidak perlu mengubah keseluruhan

    program yang bermasalah tersebut. Anda cukup mengubah coding

    program yang bermasalah saja.

    Beberapa hal yang merupakan keuntungn dari konsep

    pemrograman berbasi object (PBO/ OOP) adalah:

    Objek-objek yang dibuat bersifat r eusable, sehingga dapat digunakan

    untuk program-program lain.

    Struktur program lebih jelas, trackable (kesalahan mudah dilacak), danmudah untuk dikmbangkan.

    5.2 Pengertian ClassClass adalah rancangan/ sketsa/ bluepr int dari sebuah objek.

    Sebelum kita dapat membuat sebuah objek maka kita harus membuat

    rancangannya terlebih dahulu. Secara umum class memiliki dua macam

    anggota yaitu field dan method. Field dapat diartikan sebagai atribut dari

    object sedangkan method dapat diartikan sebagai aksi/ tindakan yangdapat dilakukan oleh sebuah object. Contohnya jika sebuah perusahaan

    ingin membut motor keluaran terbaru, maka sebelumnya perusahaan

    tersebut harus membuat rancangannya terlebih dahulu, rancangan

    tersebut bisa berupa gambar/ sketsa.

    CLASS

    OBJEK

  • 5/23/2018 Modul C -Libre

    32/92

    M odul Pemrograman C# Fundamental

    5.2.1 Main Class (Kelas Utama)

    Main class adalah class yang didalamnya terdapat main method

    atau program utama, yang mana pada saat pertamakali program dicompile dan di jlnkan, mak compiler kan menerjemahkan coding yang ada

    pada main class. Bentuk main class pada microsoft visual studio 2010

    adalah sebagai berikut.

    Main class dalam C# selalu

    bernama Class Program

    Main Method

    5.2.2 Cara Membuat Class Baru

    1. Klik Menu View -> Pilih

    Solution Explorer

  • 5/23/2018 Modul C -Libre

    33/92

    M odul Pemrograman C# Fundamental

    2. Jendela Solution Explorer akan muncul di sebelah kanan

    3. Klik kanan pada nama project anda kalu sorot add, pilih new

    item

  • 5/23/2018 Modul C -Libre

    34/92

    M odul Pemrograman C# Fundamental

    4. Muncul jendela Add New Item, Pilih Class, beri nama class pada

    textbox name, lalu klik add.

    5. Anda akan melihat terdapat satu kelas baru dengan nama class

    yang telah anda buat.

  • 5/23/2018 Modul C -Libre

    35/92

    M odul Pemrograman C# Fundamental

    5.3 ObjectSeperti yang telah dibahas pada sub bab class, class merupakan

    sketsa/ blue pr int dari sebuah objek, dengan begitu object adalah

    realisasi dari sebuah object. Dalam kehidupan nyata objek menurut

    Kamus Meriam Webster adalah suatu material yang dapat dirasakan oleh

    panca indera. Sedangkan objek didalam software auat (software object)

    adalah konsep software yang dibundel bersama-sama. Terdri dari data

    dan fungsi.

    5.3.1 Instansiasi Objek

    Instansiasi objek adalah proses pembuatan objek software

    didalam pemrograman berorientasi objek. Berikut ini adalah cara

    menginstantiasi objek

    Class Constructor

    Objek

    *Keterangan: Constructor adalah method khusus yang didefinisikan

    didalam class dan akan dipanggil secara otomatis tiap kali terjadi instantiasi

    object. Constructor berfungsi untuk melakukan inisialisasi nilai terhadap

    data-data yang terdapat pada class yang bersangkutan. Constructor dapat

    dibuat dapat juga tidak, jika kita tidak membuat sebuah constructor maka

    microsoft visual studio 2010 akan membuatkan construktor untuk

    programmer yang disebut dengan default constructor. Default constructor

    akan menginisialisasi semua data yang ada dengan nilai nol, sama halnya

    dengan method, constructor juga dapat memiliki parameter.

    Sapi y =new api();

  • 5/23/2018 Modul C -Libre

    36/92

    M odul Pemrograman C# Fundamental

    5.3.2 Contoh penggunaan Objek

    Buatlah sebuah project baru

    Beri nama project latihanobjek

    Beri nama clas dengan nama Robot.cs lalu

    berikan coding berikut ini.

  • 5/23/2018 Modul C -Libre

    37/92

    M odul Pemrograman C# Fundamental

    Instantiasi object pada program.cs

    R

    u

    n

    n

    i

    n

    g

  • 5/23/2018 Modul C -Libre

    38/92

    M odul Pemrograman C# Fundamental

    5.3.3 Method

    Method sering juga disebut function/ fungsi pada pemrograman

    C++ yang telah dipelajari pada semester lalu, pada pemrograman

    berorientasi object pun terdapat fungsi/ function yang lebih sering

    disebut dengan method. Pada pertemuan sebelumnya kita telah banyak

    menggunakan method seperti static void main(String[] args) juga

    merupakan method yang disebut sebagai main method. Main method

    adalah sebuah method yang akan dijalankan paling pertama pada saat

    program dijalankan. Dengan menggunkan method, maka program bisa

    lebih mudah untuk dibaca dan juga dimengerti oleh programmer karena

    kode program akan terbagi-bagi menjadi bagian yang lebih spesifik,

    selain itu method juga mempermudah programmer agar tidak

    mengetikkan kode program secara berulang-ulang.Jika kita membuat suatu aplikasi dengan Console Application,

    secara default akan terdapat method Static Void Main untuk menjalankan

    apllikasi. Sebenarnya kita bisa membuat method yang kita definisikan

    sendiri untuk memenuhi kebutuhan program. Method bertipe void

    berarti bahwa method tersebut tidak dapat mengembalikan nilai apapun

    pada method tersebut. Tetapi jika pada suatu method tidak terdapat void

    maka method tersebut harus mengembalikan sebuah nilai. Berikut ini

    adalah contoh penggunaan method pada pemrograman C#.

    Tambahkan kode program berikut ini pada class

    R

    o

    b

    o

    t

  • 5/23/2018 Modul C -Libre

    39/92

    M odul Pemrograman C# Fundamental

    Mengakses Method pada Program.cs

    Running

  • 5/23/2018 Modul C -Libre

    40/92

    M odul Pemrograman C# Fundamental

    5.3.4 Encapsulation

    Enkapsulasi adalah sebuah metode untuk menyembunyikan

    elemen tertentu dari sebuah class. Fitur ini penting karena att r ibut yang

    ada didalam class meupakan informasi penting yang terkadang harus

    disembunyikan agar tidak dapat diakses secara langsung oleh user.

    sebagai contoh misalnya programmer membuat sebuah class bernama

    Sapi didalam class sapi terdapat attribut public int umur ini artinya

    attribut umur dapat diakses secara public dengan artian dapat diakses

    oleh siapa saja dengan syarat data yang dimasukkan harus berupa

    integer(bilangan bulat). Bagaimana jika seorang user memasukkan umur

    sapi tersebut dengan bilangan negatif (-1), hal ini tentu bertentangan

    dengan kondisi objek sapi yang ada di dunia nyata, bahwa tidak ada umur

    makhluk hidup yang tidak dimulai dari angka 1, maka dalam kasus iniumur seharusnya tidak dapat mendapatkan full access (Read and Write)

    mungkin hanya sebatas akses untuk membacanya saja, bukan untuk

    ditulis.

    5.3.4.1 Access Identifier

    Access Identifier berfungsi untuk menentukan siapa saja yang

    dapat mengakses(membaca/ mengubah) data-data (att r ibut & method)

    didalam sebuah class. Access Identifier yang sering digunakan dalam

    pemrograman bahasa C# ada 3 yaitu:

    a. Public

    Menyatakan bahwa anggota class tersebut

    (attr ibut / method/ property) boleh diakses oleh siapa saja (class yang

    lain).b. Private

    Menyatakan bahwa anggota class tersebut

    (attr ibut/ method/ property) hanya boleh diakses oleh dirinya sendir i

    (class itu sendiri) .

    c. Protected

  • 5/23/2018 Modul C -Libre

    41/92

    M odul Pemrograman C# Fundamental

    Menyatakan bahwa anggota class tersebut

    (attr ibut/ method/ property) hanya boleh diakses oleh dirinya sendir i

    dan turunan-turunan classnya (class yang menurunkan sifat-sifat dari

    class tersebut).

    Agar lebih mudahnya mari kita praktekkan

    Ubah data pada clas Robot.cs

    Running Program

  • 5/23/2018 Modul C -Libre

    42/92

    M odul Pemrograman C# Fundamental

    Karena Program.cs adalah user (Class lain) Maka akan tampil

    sederet kesalahan yang menyatakan bahwa attribut yana

    bertipe privateis inaccessible due to its protection level

    yang artinya,, atribut-attribut tersebut tidak dapat diakses

    selama berlevel ter-protect. Sehingga att r ibut-att r ibut tersebut

    hanya bisa diakses oleh Robot.cs

    Sekarang ubah kode program yang ada

    p

    a

    d

    a

    R

    o

    b

    o

    t.

    c

    s

  • 5/23/2018 Modul C -Libre

    43/92

    M odul Pemrograman C# Fundamental

    Ubah juga kode program yang ada pada

    Program.cs

    Dari kasus diatas attribut-attribut yang bertipe private ter-enkapsulasi

    (terbungkus) dalam method yang bertipe public(method getter) sehingga tetapdapat diakses oleh kelas yang lain tetapi dengan cara pengaksesan yang berbeda

    yang sudah diatur oleh programmer. Dalam kasus ini user (class lain) hanya

    dapat membaca informasi tentang jumlah tangan, jumlah kaki, jumlah rocket,

    dan jumlah senjata, tetapi t idak dapat mengubah jumlah dari att r ibute-att r ibute

    tersebut.

  • 5/23/2018 Modul C -Libre

    44/92

    M odul Pemrograman C# Fundamental

    5.3.4.2 Property

    Dalam bahasa pemrograman C#, terdapat cara lain untuk

    membungkus field/ att r ibut , yaitu dengan membuat property. Property

    memil iki fungsi yang sama dengan method getter/ setter. Dalam property

    method getter/ setter disatukan dalam sebuah property. Dengan demikian,

    kita tidak perlu lagi membuat 2 buah method dengan nama yang berbeda.

    Agar lebih jelas, mari langsung saja kita praktekkan.

    Buatlah sebuah project baru dengan nama

    latihanproperty

    Lalu tambahkan kelas baru dengan nama

    Malware.cs

  • 5/23/2018 Modul C -Libre

    45/92

    M odul Pemrograman C# Fundamental

    Berikan kode program berikut ini pada

    Malware.cs

    Membuat Property

    o Blok attr ibute

    o Klik Kanan pilih refractor

    o Pilih Encapsulate Field

    o Pilih all, ok

  • 5/23/2018 Modul C -Libre

    46/92

    M odul Pemrograman C# Fundamental

    Hasilnya akan terlihat seperti ini

    Property

    Lakukan Hal yang sama pada attribut-attribut yang

    lainnya

    Buatlah sebuah objek pada Program.cs

    kemudian ketikkan program dibawah ini

  • 5/23/2018 Modul C -Libre

    47/92

    M odul Pemrograman C# Fundamental

    Running Program

    5.3.4.3 Hubungan antara Class, Attribute, MethodHubungan antara Class, Attr ibute , dan method biasa digambarkan

    dalam bentuk Class Diagram sepert i contoh dibawah ini:

    Robot

    + Nama : String-JumlahKaki : int

    -JumlahTangan : int-JumlahSenjata : int-JumlahRocket : int

    +LihatJumlahkaki()+LihatTangan()+LihatSenjata()+Terbang()

    Attribute (+ = public)(- = private)

    Attribute (+ = public) (-

    = private)

    Class

  • 5/23/2018 Modul C -Libre

    48/92

    M odul Pemrograman C# Fundamental

    Pewarisan/ Inheritance

    6.1 Pengertian Inheritance

    Inheri tance/ Pewarisan adalah suatu cara pembuatan class baru

    dengan menggunakan kembali class yang sudah didefinisikan

    sebelumnya dengan menambahkan attribute dan method baru. Sehingga

    demikian class baru yang dibuat tetap memiliki attribute dan method

    yang dimiliki oleh class induknya. Pada konsep pewarisan/ inheri tance

    terdapat beberapa isti lah yang perlu diketahui yaitu:a. Sub Class, digunakan untuk menunjukkan class anak atau turunan

    secara hir arkis dari super class

    b. Super Class, digunakan untuk menunjukkan class induk secara

    hirarkis dari sub class (class anak)

    6.1.1 Studi KasusBuatlah sebuah project yang berisi t iga class berikut ini:

    Viru+ nama: Str ing+size : int+kemampuan : String+banyak : int

    +Menyerang() : void+MemperbanyakDiri() :void

    Worm+nama : Str ing+size : int+kemampuan : String

    +Menyerang() : void+MenginfeksiRegistry() void+Menghapus NTLDR() void

    Trojan

    +nama : Str ing+size : int+kemampuan : String

    +Menyerang () : void+MenyembunyikanFile() :void+MemblokirCMD() : void

    6

  • 5/23/2018 Modul C -Libre

    49/92

    M odul Pemrograman C# Fundamental

    Berikut ini adalah kode program dari bagan diatas:

    Virus.cs

    Trojan.cs

    W

    o

    rm

    .

    c

    s

  • 5/23/2018 Modul C -Libre

    50/92

    M odul Pemrograman C# Fundamental

    Program.cs

    R

    un

    n

    i

    n

    g

    Pr

    o

    g

    6.1.2 Latihan Inheritance

    Setelah berlatih dengan program yang diatas, bagaimana menurut

    anda? Menulis berulang kali method dan attribut yang sama sangatlah

    melelahkan dan membosankan bukan?? Nah disinilah peranan inheritance

    diperlukan dengan inheritace/ pewarisan programer hanya perlu

  • 5/23/2018 Modul C -Libre

    51/92

    M odul Pemrograman C# Fundamental

    membuat satu parent class (Super Class) yang mana attribut dan

    methodnya akan diturunkan kepada anak-anak kelasnya (Sub Class) nya.

    Kemudian dari sub class jika ingin menambahkan method baru ,

    programer tinggal menambahkan method yang diperlukan pada class

    tersebut, tanpa mengubah atau menghapus method yang diturunkan, oleh

    karena itu str uktur diagramnya akan berubah menjadi seperti ini :

    D

    a

    r

    i

    b

    a

    g

    a

    n

    /

    diagram diatas programmer perlu membuat empat kelas baru yaitu kelas

    malware, virus, trojan, worm. Mengapa lebih mudah menggunakan

    inheritance? Karena setiap malware (virus/ tr ojan/ worm) sama sama

    memiliki attribut nama, size, dan kemampuan, juga memiliki method

    Menyerang() . Agar lebih jelasnya mari kita buat kode programnya:

    Malware.cs

    Virus.cs Menandakan class virus turunan dari class malware

  • 5/23/2018 Modul C -Libre

    52/92

    M odul Pemrograman C# Fundamental

    T

    rojan.cs

    Worm.cs

  • 5/23/2018 Modul C -Libre

    53/92

    M odul Pemrograman C# Fundamental

    Program.cs

    Running Program

  • 5/23/2018 Modul C -Libre

    54/92

    M odul Pemrograman C# Fundamental

    6.2 Virtual dan Override Methode

    Dengan menggunakan konsep inheritance programmer dapat

    mempermudah pengerjaan program menjadi lebih simple dan efektif

    dengan dapat menggunakan method yang sama dengan yang ada pada

    parent class (super class), akan tetapi ada kalannya method yang diwarisi

    oleh super class pada sub class tidak sesuai dengan tempatnya. misalkan

    saja programer membuat class dengan nama Hewan.cssebagai parent

    class, kemudian terdapat sub class dengan nama Buaya.cs, dan

    Banteng.cs, lalu dalam class Hewan.cs terdapat method

    menyerang() , maka secara otomatis buaya dan banteng memiliki

    method menyerang, akan tetapi pada realnya (pada kehidupan nyata)

    buaya dan banteng memiliki cara menyerang yang berbeda, lalu

    bagaimana cara inheritance dapat menurunkan method untuk sesuatuyang lebih spesifik lagi? Yaitu dengan cara membuat override method,

    override method yaitu menimpa method yang ada pada parent class

    untuk diterapkan pada sub class dengan cara member awalan keyword

    Overridepada nama method yang sama yang ada pada parent/ super

    class.

    Sedangkan virtual adalah keyword yang digunakan pada method

    yang ada pada parent class yang nantinya akan di override melalui

    method yang ada di sub class. Jadi jika pada class turunan/ sub class

    ditambahkan keyword override, maka pada super class method yangnantinya akan di override/ ditimpa menggunakan keyword Virtual.

    Berikut adalah contoh penerapan vi rtual dan overr ide method.

    Malware.cs

    M

    enandakan

    Menyerang

    dapat di

    override

  • 5/23/2018 Modul C -Libre

    55/92

    M odul Pemrograman C# Fundamental

    Virus.cs Menimpa void menyerang() yg ada pada parentc

    l

    a

    ss

    R

    u

    n

    n

    i

    n

    g Program

  • 5/23/2018 Modul C -Libre

    56/92

    M odul Pemrograman C# Fundamental

    Latihan

    Ketentuan soal

    1. Buatlah program sesuai dengan class diagram diatas

    2. Isilah method-method yang ada dengan data berikut

    3. Gunakan fitur -fi tur oop khususnya inheritance (overr iding)

    Method Class IsiBeraksi Robot Robot [nama] beraksiBeraksi Robot Berkaki Robot [nama] berjalan 10 langkahBeraksi Robot Beroda Robot [nama] meluncur 1 meterBeraksi Robot Terbang Robot [nama] melayang di ketinggian

    2 meterBeraksi Robot

    PenyelamRobot [nama] menyelam sedalam 2meter

    Atur sensor Robot Mengatur sensitifi tas [ jenissensor]Atursensor Robot

    PenyelamMengatur sensitifitas tekanan air pada[jenissensor]

  • 5/23/2018 Modul C -Libre

    57/92

    M odul Pemrograman C# Fundamental

    Polymorphism

    7.1 Pengertian Polymorphism

    Polimorfisme digunakan untuk menyatakan suatu nama yang

    merujuk pada beberapa fungsi (Sinaga,2004). Pada polimorfisme,

    rujukan dapat dilakukan pada beberapa tipe objek. Hal ini dilakukan

    karena setiap objek dimungkinkan memiliki instruksi yang berbeda.

    Dalam mengimplementasikan polimorfisme, perlu diperhatikan hal-hal

    sebagai berikut (Rickyanto, 2005):

    1. Method yang dipanggil harus melalui method superclass

    2. Method yang dipanggil juga harus merupakan method yang

    ada pada superclass

    3. Signature method harus sama baik yang ada pada superclass

    ataupun yang ada ada subclass

    4. Method access attribute pada subclass tidak boleh lebihterbatas dari pada yang ada di super class

    7.2 Overload Method

    Method overloading adalah membuat dua atau lebih method yang

    bernama sama, namun dengan jumlah/ jenis parameter yang berbeda.

    Jadi dengan menggunakan method overloading programmer dapat

    membuat beberapa versi/ macam/ jenis dari sebuah method yang sama.Hal ini dilakukan untuk mempermudah pemakaian method yang telah

    dibuat. Cir i khas dari method overloading adalah berada dalam class yang

    sama. Sebagai contoh mari simak kode program berikut ini.

    7

  • 5/23/2018 Modul C -Libre

    58/92

    M odul Pemrograman C# Fundamental

    Buatlah sebuah project baru dengan nama latihan overload

    Buatlah sebuah class baru dengan nama siswa

    Ikut i kode program berikut ini

    Siswa.cs

    Program.cs

  • 5/23/2018 Modul C -Libre

    59/92

    M odul Pemrograman C# Fundamental

    Running Program

  • 5/23/2018 Modul C -Libre

    60/92

    M odul Pemrograman C# Fundamental

    Array & Collection

    Array adalah suatu struktur data yang dapat menyimpan data

    dengan tipe yang sama dan diakses dengan menggunakan suatu indeks yang

    menunjukkan suatu elemen didalam array tersebut. Dengan begitu array masih

    termasuk kedalam bentuk polymorphism.

    8.1 Array Dimensi Satu

    Sebuah array dikatakan berdimensi satu jika:

    1. Suatu nilai yang tersimpan dalam array tersebut ditentukan oleeh

    satu kondisi (baris atau kolom).

    2. Setiap elemen array dapat diakses melalui index

    3. Index array secara default dimulai dari 0

    8.1.1 Deklarasi Array Dimensi Satu

    8.1.2 Contoh Array Dimensi Satu Buatlah sebuah project baru dengan nama latihanarray

    Buatlah satu class baru dengan nama arraydimensi1

    Ketikkan kode program dibawah ini

    8

    Tipedata_namavariable = new_array[ukuran]

  • 5/23/2018 Modul C -Libre

    61/92

    M odul Pemrograman C# Fundamental

    Arraydimensi1.cs

    P

    r

    o

    gr

    a

    m

    .

    c

    s

    Running Program

  • 5/23/2018 Modul C -Libre

    62/92

    M odul Pemrograman C# Fundamental

    8.2 Array Multidimensi

    Sama dengan array dimensi satu yang membuat array

    multidimensi berbeda adalah array multidimensi dapat menyimpan lebih

    dari satu indeks (baris dan kolom).

    8.2.1 Contoh array multidimensi

    Buatlah sebuah class baru dengan nama arraymul tidimensi.cs

    Sertakan kode program berikut ini

    Arraymultidimensi.cs

  • 5/23/2018 Modul C -Libre

    63/92

    M odul Pemrograman C# Fundamental

    Program.cs

    Running Program

  • 5/23/2018 Modul C -Libre

    64/92

    M odul Pemrograman C# Fundamental

    8.3 Array pada OOP

    Setelah memperlajari dasar-dasar dari array mari kita praktekkan

    array pada pemrograman berorientasi objek, bagaimana masih ingatkah

    kalian tentang class Malware.cs yang mempunyai sub-sub class Virus.cs,

    Trojan.cs, dan Worm.cs? kebetulan saja objek yang kita miliki hanya 3,

    bagaimana jika ada 100 objek yang termasuk kedalam malware?

    Bagaimanakah cara pengaksesan method yang lebih efisien jika datanyasama? Oleh karena itu array sangat dibutuhkan didalam pemrograman

    berorientasi pada objek. Berikut ini perubahan coding pada class

    malware pada project latihaninheritance

    8.3.1 Contoh ArrayList

  • 5/23/2018 Modul C -Libre

    65/92

    M odul Pemrograman C# Fundamental

    Program.cs

    Running program

    8.4 Collection

    Pada .NET framework, tersedia beberapa class yang khusus

    disediakan sebagai tempat menyimpan dan mengambil kumpulan data

    (collection of data). Beberapa dari class tersebut adalah Array, List, Queue,

    dan Stack.

  • 5/23/2018 Modul C -Libre

    66/92

    M odul Pemrograman C# Fundamental

    8.4.1 List

    Pada dasarnya, fungsi list serupa dengan array. Bedanya adalah

    bahwa list lebih bersifat dinamis. Jika seorang programmer membuat

    sebuah array 1 dimensi berukuan 10, maka array tersebut akan terus

    berukuran 10 meskipun programmer hanya menggunakan 5 elemen, dan

    programmer tidak dapat menghilangkn 5 elemen sisanya. Berbeda

    dengan array class list memiliki method untuk menambahkan dan

    mengurangi elemen dari list. Dengan demikian, tidak akan ada memori

    yang terbuang karena tempat penyimpanan data yang tidak terpakai bisa

    dihapus. Berikut ini adalah contoh pemakaian list .

    Buatlah sebuah project baru dengan nama latihanlist

    Ketikkan kode program berikut ini pada Program.cs

  • 5/23/2018 Modul C -Libre

    67/92

    M odul Pemrograman C# Fundamental

    Running Program

    8.4.2 Queue

    Queue juga adalah kumpulan data yang merepresentasikan sebuah

    antrian. Queue juga dapat menambahkan dan mengurangi data seperti

    dalam list. Perbedaannya terletak pada cara ia menambah dan mengambil

    data. Queue selalu selalu menambahkan elemennya pada akhir dari queue

    dan mengambil elemennya pada awalnya queue (seperti sebuah antrian

    pada umumnya).

    QueueElemenyang

    diambil

    dari sini

    Elemen

    baru akan

    ditambah

    dari sini

  • 5/23/2018 Modul C -Libre

    68/92

    M odul Pemrograman C# Fundamental

    Buatlah project baru dengan nama latihanqueue

    Ketikkan kode program berikut ini

    Program.cs

    Running program

  • 5/23/2018 Modul C -Libre

    69/92

    M odul Pemrograman C# Fundamental

    8.4.3 Stack

    Stack adalah kumpulan data yang merepresentasikan sebuah

    tumpukan. Seperti list dan queue, sebuah stack juga dapat menambahkan

    dan mengurangi elemen pada dirinya. Bedanya dengan queue adalah

    bahwa stack menambahkan dan mengurangi elemen dari awal/ depan/

    atas sebuah stack (seperti pada tumpukan pada umumnya). Seperti

    contoh dibawah ini:

    StackElemen akanditambah

    dan diambil

    dari sini

  • 5/23/2018 Modul C -Libre

    70/92

    M odul Pemrograman C# Fundamental

    Running program

  • 5/23/2018 Modul C -Libre

    71/92

    M odul Pemrograman C# Fundamental

    Sorting & Searching

    9.1 Sorting

    Sorting merupakan proses pengelompokan suatu informasi yang

    berhubungan secara berurutan baik ascending (dari kecil ke besar) atau

    descending (dari besar ke kecil). .NET Framework juga menyediakan

    dalam kelas koleksi untuk mengurutkan data.

    Tetapi dalam pembelajaran kali ini kita dituntut untuk menguasai proses

    pengurutan data secara manual, dengan alasan sebagai berikut:

    1. Pada umumnya fungsi misalnya qsort() tidak dapat diaplikasikan

    pada semua situasi

    2. Karena qsort() adalah suatu parameter yang khusus untuk

    pengoperasian data dalam jumlah besar, sehingga prosesnya berjalan

    sangat pelan dibanding proses pengurutan dara dengan cara yang lain.

    3. Algoritma quicksort (yang biasanya diterapkan pada qshort()),

    meskipun baik digunakan pada proses yang umum, tetapi bukanlah

    proses shorting yang terbaik.

    Ada 3 metode yang dapat digunakan pada shorting array:

    1. Exchange

    a. Bubble Sort

    b. Shaker Sort

    2. Selection

    3. Insertion

    9.1.1 Bubble SortPada metode bubble sort, proses pengurutan dimulai dengan

    membandingkan elemen pertama untuk mendapatkan angka terbesar.Lalu angka tersebut ditempatkan pada elemen terakhir. Agar lebih

    jelasnya mari simak kode program berikut ini.

    Buatlah sebuah projr ct baru dengan nama latihanbubblesort

    Ketikkan kode program berikut ini pada program.cs

    9

  • 5/23/2018 Modul C -Libre

    72/92

    M odul Pemrograman C# Fundamental

    Running Program

  • 5/23/2018 Modul C -Libre

    73/92

    M odul Pemrograman C# Fundamental

    9.1.2 Shaker Sort

    Algoritma shaker sort merupakan improvement dari algoritma

    pengurutan bubble sort. Cara kerja dari algoritma ini hampir sama

    dengan cara kerja dari algoritma bubble sort. Perbedaannya adalah

    shaker sort melakukan pengurutan array dari dua arah.

    9.1.3 Selection Sort

  • 5/23/2018 Modul C -Libre

    74/92

    M odul Pemrograman C# Fundamental

    Mencari elemen yang tepat untuk diletakkan di posisi yang telah

    diketahui, dan meletakkannya di posisi tersebut setelah data tersebut

    ditemukan.

    Running Program

    9.1.4 Insertion Sort

    9.2 Searching

    Pencarian (Search) merupakan proses yang fundamental dalam

    pemrograman, guna menemukan data (nilai) tertentu didalam

    sekumpulan data yang bertipe sama. Fungsi perncarian itu sendiri adalah

    untuk memvalidasi (mencocokkan) data.

  • 5/23/2018 Modul C -Libre

    75/92

    M odul Pemrograman C# Fundamental

    9.2.1 Sequential SearchSequential search adalah teknik pencarian data dimana data dicari

    secara urut dari depan ke belakang atau dari awal sampai akhir.

    Berdasarkan key yang dicari. Kelebihan dari proses pencarian secara

    sequential ini adalah:

    1. Jika data yang dicari t erletak didepan, maka data akan ditemukan

    dengan cepat.

    Walaupun memiliki kelebihan teknik ini juga memiliki kekurangan

    yaitu:

    1. Jika data yang dicari terletak dibelakang atau paling akhi r, maka akan

    membutuhkan waktu yang lama dalam proses pencariannya.

    2. Beban komputer akan semakin bertambah jika jumlah data dalam

    array sangat banyak

    Adapun proses dari sequential search adalah:

    a. Mulai dari awal (atau dari akhir ) cek seluruh record dalam

    array atau l ist, baca satu persatu

    b. Temukan record sesuai dengan key yang dicari

    c. Proses searching berhenti karena salah satu alasan.

    Success Found the target key

    End of List No more records to compare

    9.2.2 Binary Search

  • 5/23/2018 Modul C -Libre

    76/92

    M odul Pemrograman C# Fundamental

    Abstract & Interface

    10.1 Pengertian Abstract ClassClass abstract adalah sebuah fitur yang tersedia dalam

    pemrogrman berorientasi pada objek yang mana mengij inkan superclass

    untuk mendeklarasikan sebuah method tanpa implementasi.

    Implementasi dari method tersebut diberikan oleh sub-sub class dari

    class tersebut.

    10.1.1 Latihan Abstract Class

    Buatlah sebuah project baru dengan nama latihan abstract

    Tambahkan Class baru dengan nama BangunRuang.cs,

    kemudian ketikkan kode program berikut:

    10

  • 5/23/2018 Modul C -Libre

    77/92

    M odul Pemrograman C# Fundamental

    Pada class Abstract method yang dibuat tidak perlu

    menggunakan parameter, atau berisi logika, karena class abstract

    hanya berisi method rancangan dari class-class yang lainnya.

    Tambahkan Class baru dengan nama Kubus.cs, kemudianketikkan kode program berikut:

    T

    a

    m

    b

    a

    hk

    an Class baru dengan nama Balok.cs, kemudian ketikkan kode

    program berikut :

    Tambahkan Class baru dengan nama Bola.cs, kemudian

    ketikkan kode program berikut:

    Program.cs

  • 5/23/2018 Modul C -Libre

    78/92

    M odul Pemrograman C# Fundamental

    Running Program

    10.2 InterfaceInterface dari sebuah class merupakan kontrak antara kode

    program dari klien dengan class yang menyediakan layanan. Class yang

    nyata harus mengimplementasikan setiap method yang dideklarasikan.

    Inteface berfungsi sebagai pola/ kontrak (kumpulan method/ property)

    yang harus dibuat oleh class yang mengimplmentasinya. Di dalam

    interface kita hanya membuat prototype dari method/ property saja

    tanpa menggunakan access identifier. Access identifier anggota interface

    adalah public (secara otomatis). Agar lebih jelas, mari kita buat

    sebelumnya. Pertama-tama pilihlah project > Add New Item

    (CTRL+SHIFT+A)

  • 5/23/2018 Modul C -Libre

    79/92

    M odul Pemrograman C# Fundamental

    Pilihlah pilihan interface, kemudian beri nama Inameable. Lalu buat juga

    Ihead.

    10.2.1 Latihan Interface Buatlah sebuah project baru dengan nama latihan interface

    Buatlah class baru dengan nama mammal.cs, dan kketikkankode program berikut ini

    publicabstractclassMammal{

    publicabstractvoidmakeanoise();}

    }

    Buatlah class baru dengan nama dog.cs, dan ketikkan kode

    program berikut ini

  • 5/23/2018 Modul C -Libre

    80/92

    M odul Pemrograman C# Fundamental

    Ketiklah kode program berikut ini pada Ihead

    Ketiklah kode program berikut ini pada Inameable

  • 5/23/2018 Modul C -Libre

    81/92

    M odul Pemrograman C# Fundamental

    Program.cs

    Running program

  • 5/23/2018 Modul C -Libre

    82/92

    M odul Pemrograman C# Fundamental

    Graphical User Interface (GUI)

    11.1 Pengenalan IDE Visual Studio 2010Agar dapat bekerja lebih efisien ketika menerapkan GUI pada

    microsoft visual studio, terlebih dahulu anda perlu mengetahui

    lingkungan kerja visual studio. Jika anda sudah pernah membuat sebuah

    program komputer seperti Delphi, Visual C, atau bahkan Java, tampilan

    Visual Stdio pada dasarnya hampir sama seperti lingkungan kerja dari

    aplikasi-aplikasi pemrograman tersebut. Untuk memulainya ikuti

    langkah-langkah berikut ini :

    Buatlah Sebuah Project Baru, pilih windows form application

    Tampilan Windows Form Application

    11

  • 5/23/2018 Modul C -Libre

    83/92

    M odul Pemrograman C# Fundamental

    Anda dapat mensetting tampilan IDE sesuai dengan selera anda

  • 5/23/2018 Modul C -Libre

    84/92

    M odul Pemrograman C# Fundamental

    Toolbox

    Toolbox adalah bagian yang berguna sebagai tempat

    meletakkan objek-objek yang menjadi alat untuk melakukan

    pemrogrman. Dalam istilah pemrograman berorientasi objek

    yang dimaksud dengan alat adalah sebuah class. Objek-objek

    yang tersedia pada Visual Studio khususnya pada

    pemrograman C# cukup banyak, seperti Textbox, button, Grid,

    dan proggress bar. Cara memunculkan toolbox yaitu klik menu

    View >>Toolbox

    Selanjutnya mari kita praktekkan jenis-jenis toolbox yang ada.

    Caranya hanya dengan mengklik salah satu dari toolbox,

    misalnya button

    Lalu arahkan kursor yang berbentuk plus pada form1,

    kemudian klik kiri

  • 5/23/2018 Modul C -Libre

    85/92

    M odul Pemrograman C# Fundamental

    Buatlah seperti ini

  • 5/23/2018 Modul C -Libre

    86/92

    M odul Pemrograman C# Fundamental

    Solution Explorer

    Solution Explorer adalah bagian yang berfungsi untuk melihat

    item-item penyusun sebuah proyek atau solution. Sebuahproyek dapat disusun oleh berbagai macam item yaitu:

    o Form dan kodenya

    o Class

    o Module

    o Class Diagram

    o File XML

    o File Proyek

    o File Report

    Properties

    Properties berguna untuk melihat nilai properti dari sebuah

    objek/ class, misalnya properti Name,Text, dsbg.

  • 5/23/2018 Modul C -Libre

    87/92

    M odul Pemrograman C# Fundamental

    Selanjutnya kita akan merubah properties daari objek-objek yang ada

    pada form1. Coblah anda klik button1, kemudian pada properties, rubah

    Textdan Back Colornya. Buatlah tampilan seperti berikut ini :

    Pada saat perancangan program seperti ini tombol tutup tidak dapat

    ditekan seperti layaknya sebuah tombol, perlu adanya eksekusi program

    terlebih dahulu, untuk mengeksekusi program tekan F5. Barulah tombol

    tutup dapat ditekan seperti layaknya tombol di kehidupan nyata.

    11.2 Event

    Tidak hanya makhluk hidup yang memiliki tingkah laku

    (behaviour) tetapi pada dasarnya salah satu alasan terciptanya teknologi

    adalah untuk menggantikan peran makhluk hidup khususnya manusia

    agar terciptanya kehidupan yang dinamis. Dengan alasan tersebutlahobjek didalam form pada sebuah class patutnya memiliki tingkah laku

    yang nantinya akan menjadi acuan bagi proses yang akan dijalankan.

    Sebagai contoh setelah anda membuat tampilan pada form1 ketika

    program di eksekusi, kita akan menemukan tombol tutup dapat

    berperilaku seperti halnya tombol di dunia nyata, akan tetapi apa yang

    terjadi setelah tombol tersebut ditekan? (whats next?) pada kasus ini

  • 5/23/2018 Modul C -Libre

    88/92

    M odul Pemrograman C# Fundamental

    behaveatau tingkah laku dari tombol tutup belumlah sempurna, karena

    hanya berperi laku sepert i halnya tombol nyata saja, akan tetapi t idak ada

    output yang dihasilkan dari input tekan yang diberikan. Event adalah

    kejadian dimana programmer merancang sebuah objek akan berprilaku

    seperti apa, dan dilempar (handle) oleh objek yang mana , atau

    menggerakkan objek yang mana (dr iven) dengan mengetikkan logika /

    kode progra terhadap objek tersebut. Instruksi yang diberikan pada

    objek tersebut akan menerima input ketika program dieksekusi

    kemudian outputya juga telah dirancang untuk diteruskan/ di-handle

    pada objek yang lain, atau mungkin untuk merubah fungsi objek yang lain

    (driven). Pada kasus form1 diatas, mari ki ta coba memberikan event agar

    tombol tutup mendapatkan behaveyang sempurna. Mari ikuti langkah-

    langkah berikut ini:

  • 5/23/2018 Modul C -Libre

    89/92

    M odul Pemrograman C# Fundamental

    GUI Lanjutan

    12.1 Pembuatan Program Sederhana dengan GUIAgar lebih memahami bagaimana penerapan GUI pada

    pemograman bahasa C#, mai kita berlatih dengan contoh-contoh

    program sederhana berikut ini :

    1. Penerapan Textbox dan Button

    Design form seperti berikut ini

    Ketikkan kode program berikut ini

    12

  • 5/23/2018 Modul C -Libre

    90/92

    M odul Pemrograman C# Fundamental

    Running program

    2. Penerapan Combobox dan Radio Button

    Design form seperti berikut ini

  • 5/23/2018 Modul C -Libre

    91/92

    M odul Pemrograman C# Fundamental

    Running Program

    3. Penerapan Checkbox dan Listbox

    Buatlah design form seperti berikut ini :

  • 5/23/2018 Modul C -Libre

    92/92

    M odul Pemrograman C# Fundamental

    Running Program

    12.2 Penerapan OOP pada GUI