Anda di halaman 1dari 51

MODUL PEMROGRAMAN C# DAN

PEMROGRAMAN BERORIENTASI
OBJEK
Sebelum mempelajari pemrograman C#, terlebih dahulu
kalian coba cari informasi dan jawab pertanyaan berikut :

1. Apa itu .net framework ?


2. Jelaskan arsitektur .net framework berikut :
a. Common Language Runtime (CLR).
b. Microsoft Intermediate Language (MSIL).
c. Just In Time Compilers (JITers).
d. Framework Class Library (FCL).
e. Common Language Specification (CLS).
f. Common Type System (CTS).
g. Garbarage Collection (GC)
3. Apa itu visual studio ?
Struktur Program C#
using System;
namespace nama_projek{
class nama_class{
public static void Main(String[]args){
//kode program
}
}
}
Keterangan :
• Keyword class digunakan untuk memberitahukan kepada compiler class apa yang sedang digunakan
pada aplikasi.
• Keyword namespace digunakan untuk mendeklarasikan ruang lingkup dari class yang dibuat.
• Static merupakan tipe method.
• void menunjukan bahwa method tidak mengembalikan nilai atau objek.
• Main merupakan nama method utama dalam C#.
• String merupakan tipe arguman yang akan diterima sebagai parameter dari command line.
• Args merupakan array argumen yang dapat ditambahkan pada saat menggunakan command C#
untuk menjalankan program C#.
• using System artinya user dapat menggunakan class-class pada namespace System.
Syntax Dasar C#
• Perintah keluaran (output)
Console.WriteLine(“Pernyataan dalam string”);
Console.Write(“Pernyataan dalam string”);
Perbedaan Writeline dengan Write adalah ketika menggunakan
WriteLine output yang dihasilkan akan disertai dengan baris baru
sedangkan Write tanpa disertai baris baru.
• Perintah keluaran untuk menampilkan isi variabel
Console.WriteLine(“var {0} dan var {1}”,var0,var1);
var0 akan mengisi {0} dan var1 akan mengisi{1}
• Perintah membaca inputan
Console.Read();
Console.Readline();
• Perintah konversi
tipe_data.Parse();
Contoh program pertama
Penjelasan
Coba perhatikan program contoh1 dan hasil dari
outputnya. Disana dapat dilihat bahwa perintah yang
menggunakan Write hasil output akan bersatu dengan
hasil output dibawahnya. Berbeda dengan menggunakan
WriteLine, hasil nya akan membuat baris baru.
Baris selanjutnya dengan menggunakan variabel, disana
terdapat nilai a=10 dan b=20, hasil outputnya var a akan
mengisi {0} dan b akan mengisi {1}. Kalau mau diubah
tinggal menukar posisi dari argumen nya.
Console.WriteLine(“{0} dan {1}”,argumen1,argumen2);
Latihan
• Buatlah program untuk menghasilkan output berikut :
Belajar pemrograman C# itu mudah
C# adalah pemrograman tingkat tinggi
C# juga bisa digunakan dengan OOP
OOP adalah pemrograman berbasis objek
• Buatlah program untuk menampilkan isi variabel berikut:
String nama,alamat,hobi;
nama=“nama kalian”;
alamat=“alamat kalian”;
hobi=“hobi kalian”;
Output :
nama yang tinggal di alamat memiliki hobi
Tipe Data, Variabel dan Operator
• Tipe Data
merupakan jenis data yang digunakan untuk
dioperasikan pada program.
Tipe data dasar pada C# terdiri dari : byte,
Sbyte, Short, ushort, int (integer), Uint, Long
dan Ulong.
Tipe data floating point : Float, Double.
Tipe data lain : Char, boolean, String dan
Decimal.
• Variabel
Merupakan nama dari suatu lokasi memori yang digunakan untuk menyimpan data yang sifatnya
sementara. Pemberian nama variabel merupakan optional (tergantung user) akan tetapi harus
memenuhi syarat berikut:
a. Panjang karakter variabel tidak dibatasi.
b. Nama variabel harus diawali dengan huruf, tanda garis bawah (underscore) dan tanda $. Selanjutnya
dapat diikuti oleh karakter lain selain(*,+,-).
c. Tidak boleh menggunakan kata kunci (keyword) yang digunakan pada C# seperti if, else, for dsb.
d. Bersifat case sensitive (membedakan huruf besar dan kecil) contoh namasiswa berbeda dengan
namaSiswa.
e. Tidak boleh menggunakan spasi (gunakan underscore untuk menggabungkan penulisan variabel).
f. Variabel harus diawali dengan penulisan tipe data terlebih dahulu.
• Penulisan variabel
tipe_data nama_variabel=nilai_variabel;
atau
tipe_data nama_variabel;
nama_variabel=nilai_variabel;
Apabila beberapa variabel memiliki tipe data yang sama, maka penulisannya dapat disatukan dengan
dipisah tanda koma (,) contoh :
int var1,var2,var3,var4;
Artinya var1,var2,var3,var4 memiliki tipe data yang sama yaitu int (integer).
• Konstanta
Konstanta merupakan variabel yang nilainya tetap dan tidak bisa diubah-ubah. Penulisan konstanta
dengan menggunakan perintah const
Const tipe_data nama_variabel=nilai_const;
• Operator
Digunakan untuk mengombinasikan suatu data dengan
data lainnya, biasanya operator digunakan pada data yang
tipe datanya dapat dikalkulasikan. Operator sendiri terdiri
dari beberapa macam yaitu :
a. Operator aritmatika (perkalian (*), pembagian ( / ),
penjumlahan ( + ), pengurangan ( - ), modulus ( % ) ).
b. Operator relasi ( kurang dari ( < ), lebih dari ( > ),
kurang dari sama dengan ( <= ), lebih dari sama
dengan ( >= ), sama dengan ( == ), tidak sama dengan
( != )).
c. Operator Logika ( and (&&), or ( || ), not ( ! ))
Contoh Program
Output Program
Tugas
1. Buatlah contoh penulisan variabel ( 5 variabel
yang benar dan 5 variabel yang salah) !
2. Sebutkan fungsi dari operator aritmatika,
relasi dan logika !
3. Buatlah program untuk menghitung luas
persegi panjang, persegi dan segitiga !
Pernyataan Kondisi
• Pernyataan if .... Else
Struktur program
if ( kondisi ) {
//Pernyataan;
}
else{
//Pernyataan;
}
Kondisi bisa berupa operator relasi maupun logika.
Contoh :
using System;
namespace contoh{
class Program{
String Cuaca=“Hujan”;
if (Cuaca==“Hujan”){
Console.WriteLine(“Bawa Payung”);
}
else{
Console.WriteLine(“Jalan – Jalan Keliling Kota”);
}
}
}
Hasil Output : Bawa Payung
• Pernyataan Switch – Case
Merupakan alternatif lain selain pernyataan if – else. Pernyataan switch –
case dapat menampung lebih banyak kondisi.
• Struktur pernyataan switch – case :
Switch(expresion){
case kondisi 1:
pernyataan;
break;
case kondisi 2:
pernyataan;
break;
case kondisi n :
pernyataan;
break;

Expresion merupakan variable yang akan dilakukan pengkondisian atau


dibandingkan.
Setiap pernyataan case selalu diakhiri dengan break.
Contoh :
using System;
namespace Contoh1
{
class Program
{
public static void Main(string[] args)
{
String cuaca="Hujan";
switch(cuaca){
case "Hujan":
Console.WriteLine ("Bawa Payung");
break ;
case "Cerah":
Console.WriteLine("Jalan-jalan keliling kota");
break;
}
Console.Read ();
}
}
}
Hasil output : Bawa Payung
Looping (Perulangan)
• Struktur for
for (nilai awal;kondisi;increment/decrement){
Pernyataan;
}
Contoh :
int a;
for ( a=1; a<=10; a++){
Console.Write (a + ”,”);
}
Output : 1,2,3,4,5,6,7,8,9,10,
int a;
for ( a=10;a>=1;a--){
Console.Write(a + “,”);
}
Output : 10,9,8,7,6,5,4,3,2,1,
• Struktur While
while(ekspresi boolean){
Pernyataan;
increment/decrement;
}
Contoh :
Int a=1;
while( a <=10 ){
Console.Write(a + “,”);
a++;
}
Output : 1,2,3,4,5,6,7,8,9,10,
int a=10;
while( a>=1 ){
Console.Write(a + “,”);
a--;
}
Output : 10,9,8,7,6,5,4,3,2,1,
• Struktur do while
do {
Pernyataan;
increment/decrement;
}while(ekspresi boolean);
Contoh :
int a=1;
do{
Console.Write(a + “,”);
a++;
} while(a<=10);
Output : 1,2,3,4,5,6,7,8,9,10,
int a=10;
do{
Console.Write(a + “,”);
a--;
}while(a>=1);
Output: 10,9,8,7,6,5,4,3,2,1,
• Struktur foreach
foreach(tipe_data nama_var in nama_array){
Pernyataan;
}
Contoh :
String[] nmArray={“Salak”,”Jambu”,”Mangga”};
foreach(String buah in nmArray){
Console.Write(buah,”,”);
}
Output: Salak,Jambu,Mangga,
Input Keyboard
• Perintah Read() dan ReadLine()
• Merupakan perintah untuk membaca input
string.
• Dengan menggunakan perintah Read() atau
ReadLine() dapat membuat program yang
ditulis menjadi lebih interaktif dan dinamis.
• Contoh

Output (Masukan nama melalui keyboard ):


• Contoh
using System;
namespace Contoh1
{
class Program
{
public static void Main(string[] args)
{
int nilaiA,nilaiB,hasil;
Console.Write("Masukan Nilai A : ");
nilaiA=int.Parse(Console.ReadLine());
Console.Write("Masukan Nilai B : ");
nilaiB=int.Parse(Console.ReadLine());
hasil=nilaiA+nilaiB;
Console.WriteLine("Penjumlahan {0} + {1} = {2}",nilaiA,nilaiB,hasil);
Console.Read();
}
}
}

Perhatikan bagian yang ditebalkan, disana terdapat konversi dengan perintah


int.Parse(Console.ReadLine()). Ini dikarenakan bahwa C# hanya bisa membaca input keyboard berupa
String, maka dari itu untuk membaca hasil inputan selain String diperlukan konversi ke tipe data lain
yang akan digunakan. Contoh diatas adalah konversi String ke Integer .
Output
Latihan
1. Buatlah program menggunakan C# untuk menginput nis, nama, kelas, jurusan,
alamat kemudian tampilkan hasil inputan tersebut.
2. Buatlah program untuk menghitung luas persegi panjang, lingkaran dan segitiga
dengan cara nilai dimasukan dengan keyboard.
3. Buatlah program pengkondisian untuk menghitung hasil akhir nilai siswa dimana
input nis,nama,kelas,jurusan,nilai_kehadiran, nilai_tugas, nilai_uts dan nilai_uas.
Perhitungan hasil =
((nilai_kehadiran*10)+(nilai_tugas*20)+(nilai_uts*30)+(nilai_uas*40))/100
jika hasil>=90 dan hasil<=100
tampilkan nis,nama,kelas,jurusan,hasil, predikat A
jika hasil>=80 dan hasil<=89
tampilkan nis,nama,kelas,jurusan,hasil, predikat B
jika hasil>=70 dan hasil<=79
tampilkan nis,nama,kelas,jurusan,hasil, predikat C
jika hasil<70
tampilkan nis,nama,kelas,jurusan,hasil, predikat D
Pengenalan OOP pada C#
• Perbedaan pemrograman prosedural dengan pemrograman
berorientasi objek
 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 banyak kesulitan ketika menangani kasus-kasus yang
kompleks, membutuhkan ribuan baris kode. Kondisi seperti itu akan
menyulitkan programmer dalam melacak kesalahan (debugging),
meyisipkan modul bar dalam program, dan sebagainya.
 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 entitas yang memiliki data dan
method.
Beberapa hal yang merupakan keuntungn dari konsep pemrograman berbasis
object (PBO/OOP) adalah:
 Objek-objek yang dibuat bersifat reusable, sehingga dapat digunakan
untuk program-program lain.
 Struktur program lebih jelas, trackable (kesalahan mudah dilacak), dan
mudah untuk dikembangkan.
Struktur dasar dari pemrograman berorientasi objek terdiri dari :
 Class (Rancangan/ sketsa dari objek)
 Atribut (Identitas dari objek)
 Method (Sifat/perilaku dari objek)
Perhatikan contoh berikut
Class : Kucing Class : LuasSegitiga
Atribut : + jenis : String Atribut : + alas : int
+ warna : String + tinggi : int
+ suara : String + luas : int
Method : + berlari() Method:+ hitungLuas()
+ melompat() + tampilLuas()
+ mencakar()
• Instantiasi Objek
Merupakan proses pembuatan objek dalam
pemrograman berorientasi objek. Berikut cara
menginstansiasi objek :
nama_class nama_objek= new constructor();
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.
Contoh Program
Hasil / Output

Jadi dalam pemrograman berorientasi objek


dimana kode program dibagi menjadi beberapa
blok program yang lebih spesifik.
Latihan
1. Buatlah contoh class lengkap dengan atribut dan
method berdasarkan objek yang ada
dilingkungan kalian.
2. Perhatikan kata berikut : nis, nama,
mengisiKehadiran, mengikutiUjian, alamat,
siswa, hobi. Tentukan bagian-bagian dari OOP
(class, atribut dan method) dari kata – kata
diatas.
3. Diketahui terdapat class bernama kendaraan
dan objek bernama motor, tulislah bagaimana
cara instantiasi objek tersebut.
Metode Pemrograman Berorientasi
Objek
• Enkapsulasi
adalah sebuah metode untuk menyembunyikan elemen
tertentu dari sebuah class. Didalam enkapsulasi ini terdapat access
identifier yang berfungsi untuk menentukan siapa saja yang dapat
mengakses (membaca/mengubah) data-data (attribut & method)
didalam sebuah class. Access identifier dibagi menjadi tiga :
 Public ( menyatakan bahwa anggota class dapat diakses oleh class
lain).
 Private ( menyatakan bahwa anggota class tersebut hanya dapat
diakses oleh dirinya sendiri)
 Protected ( menyatakan bahwa anggota class tersebut hanya boleh
diakses oleh dirinya sendiri maupun oleh class turunannya.
Contoh program
using System;
namespace Contoh1
{
class kucing{
/*Atribut class kucing*/
public String jenis;
public String warna;
public String suara;
private int usia;

/*method class kucing*/


public void berlari(){
Console.WriteLine("Kucing {0} yang berwarna {1} sedang berlari",this.jenis,this.warna);
}
public void melompat(){
Console.WriteLine("Kucing {0} yang berusia {1} melompat pagar",this.jenis,this.usia);
}
public void mencakar(){
Console.WriteLine("Kucing {0} mencakar sambil bersuara {1}",this.jenis,this.suara);
}
}
}
Pada contoh diatas class kucing ditambahkan 1 atribut yaitu usia dengan access identifier private. Ketika
atribut usia tersebut diakses maka akan tampil peringatan “is anaccessible due its protection level” ini berarti
atribut usia tidak bisa diakses oleh class lain. Untuk dapat mengakses nya tinggal menambahkan properties
pada script programnya.
using System;
namespace Contoh1
{
class kucing{
/*Atribut class kucing*/
public String jenis;
public String warna;
public String suara;
private int usia;

/* Penambahan properties */
public int Usia{
get{return usia;}
set{usia=value;}
}
/*method class kucing*/
public void berlari(){
Console.WriteLine("Kucing {0} yang berwarna {1} sedang berlari",this.jenis,this.warna);
}
public void melompat(){
Console.WriteLine("Kucing {0} yang berusia {1} melompat pagar",this.jenis,this.usia);
}
public void mencakar(){
Console.WriteLine("Kucing {0} mencakar sambil bersuara {1}",this.jenis,this.suara);
}
}
}

Perhatikan script yang ditebalkan, script tersebut merupakan properties dari atribut usia. Disana dituliskan bahwa
properties memiliki atribut baru yaitu Usia dengan akses public, namun didalam nya merepresentasikan atribut usia
sebelumnya dengan memiliki perintah get dan set.
Contoh Lain
Latihan
1. Untuk lebih memahami mengenai enkapsulasi, cobalah kalian buat program berikut :
class : LuasPersegiPanjang
atribut : - panjang : int
- lebar : int
+ luas : int
method : + void hitungLuas()
+ void tampilLuas()
2. Buatlah program untuk menghitung nilai siswa
class : NilaiSiswa
atribut : + nama : String
+ kelas : String
- nkehadiran : int
- ntugas : int
- nuts : int
- nuas : int
+ hasil : int
method : + void hitungNilai()
+ void tampilNilaiSiswa()
Hitung Nilai : hasil = ((nkehadiran*10)+(ntugas*20)+(nuts*30)+(nuas*40))/100

Keterangan : - (Private) dan + (Public)


• Inheritance / Pewarisan
Inheritance/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/
inheritance terdapat beberapa istilah yang perlu diketahui
yaitu:
a. Sub Class, digunakan untuk menunjukkan class anak
atau turunan secara hirarkis dari super class.
b. Super Class, digunakan untuk menunjukkan class
induk secara hirarkis dari sub class (class anak)
Untuk membuat pewarisan harus menggunakan script :
class nama_sub_class : nama_super_class
Contoh
• Perhatikan gambar berikut
Pesawat

Pesawat Tempur Pesawat Komersil


Berdasarkan gambar tersebut terdapat class utama yaitu
pesawat dan pesawat ini memiliki class turunan yaitu
pesawat tempur dengan pesawat komersil. Kalau
dianalogikan seperti ini pesawat atributnya pasti memiliki
merk, jumlahroda, jumlahpenumpang, jumlahmesin serta
methodnya terbang(). Begitu juga dengan pesawat
tempur dan pesawat komersil pasti memiliki atribut dan
method yang sama dengan class pesawat. Mungkin yang
membedakan antara pesawat tempur dan pesawat
komersil adalah adanya senjata pada pesawat tempur
atau methodnya mengeluarkanSenjata() untuk pesawat
tempur dan menurunkanPenumpang() untuk pesawat
komersil. Untuk lebih jelasnya perhatikan gambar berikut
:
Contoh Program
Penjelasan
• Dapat kita lihat berdasarkan script diatas
bahwa class PesawatTempur dan class
PesawatKomersil dapat mengakses atribut dan
method dari class Pesawat.
Virtual dan override method
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.cs” sebagai 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 sesuatu yang 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 “Override” pada 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 yang nantinya akan di override/ ditimpa menggunakan
keyword “Virtual”. Perhatikan contoh program berikut :
Contoh Program
Perhatikan pada class PesawatTempur, disana terdapat
method baru yaitu terbang(). Akan tetapi method
terbang() sudah ada pada super class nya yaitu pada class
Pesawat. Maka dari itu dibuatlah virtual dan override
method pada method terbang(). Pada class Pesawat,
method terbang() dibuatkan virtualnya dengan
menambahkan virtual, sedangkan pada class
PesawatTempur dibuat method baru yaitu terbang()
dengan menambah perintah override. Dengan begitu
method terbang() pada class Pesawat akan tertimpa
dengan method terbang() pada class PesawatTempur.
Perhatikan hasil nya :
Latihan
1. Coba kalian buat contoh lain dari metode
pewarisan (Inheritance). Buatkan diagram
gambar nya.
2. Terjemahkanlah hasil contoh yang kalian buat
kedalam pemrograman C#.
• Polymorphism
Polimorphism 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 lebih
terbatas dari pada yang ada di super class
• 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. Ciri khas
dari method overloading adalah berada dalam
class yang sama.
Contoh Program

Anda mungkin juga menyukai