Selasa, 11 Oktober 2011

pengenalan program c# sederhana



LAPORAN PRAKTIKUM PEMROGRAMAN BERORIENTASI OBYEK
MODUL I
“PENGENALAN PROGRAM C# SEDERHANA”

Add caption
                      NAMA                                            :   ANDRI SETIANINGSIH
                           NOMOR  MAHASISWA             :    09/281640/TK/35104
                           HARI  PRAKTIKUM                   :    KAMIS PAGI
                           TANGGAL  PRAKTIKUM          :   29 SEPTEMBER  2011


                              LABORATORIUM  JARINGAN KOMUNIKASI
JURUSAN TEKNIK ELEKTRO DAN TEKNOLOGI INFORMASI
FT UGM YOGYAKARTA
2011
I.             PENDAHULUAN

Sejarah C#:
Pada akhir dekade 1990-an, Microsoft membuat program Microsoft Visual J++ sebagai sebuah langkah 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++, kompilernya dan mesin virtualnya sendiri dengan menggunakan sebuah bahasa pemrograman yang bersifat general-purpose. Untuk menangani proyek ini, Microsoft merekrut Anders Helsberg, yang merupakan mantan karyawan Borland yang membuat bahasa Turbo Pascal, dan Borland Delphi, yang juga mendesain Windows Foundation Classes (WFC) yang digunakan di dalam J++. Sebagai hasil dari usaha tersebut, C# pun pertama kali diperkenalkan pada bulan Juli 2000 sebagai sebuah bahasa pemrograman modern berorientasi objek yang menjadi sebuah bahasa pemrograman utama di dalam pengembangan di dalam platform Microsoft .NET Framework.
Pengalaman Helsberg sebelumnya dalam pendesain bahasa pemrograman seperti Visual J++, Delphi, Turbo Pascal) dengan mudah dilihat dalam sintaksis bahasa C#, begitu pula halnya pada inti Common Language Runtime (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 Smalltalk. Kelemahan-kelemahan yang dikemukakannya itu yang menjadi basis CLR sebagai bentukan baru yang 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. Fitur-fitur yang diambilnya 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 di dalam C# kini telah diaplikasikan terhadap iterasi, properti, kejadian (event), metadata, dan konversi antara tipe-tipe sederhana dan juga objek.
C# didisain untuk memenuhi kebutuhan akan sintaksis C++ yang lebih ringkas dan Rapid Application Development yang 'tanpa batas' (dibandingkan dengan RAD yang 'terbatas' seperti yang terdapat pada Delphi dan Visual Basic).
Agar mampu mempromosikan penggunaan besar-besaran dari bahasa C#, Microsoft, dengan dukungan dari Intel Corporation dan Hewlett-Packard, mencoba mengajukan standardisasi terhadap bahasa C#. Akhirnya, pada bulan Desember 2001, standar pertama pun diterima oleh 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 Standardization (ISO), dengan nomor standar ISO/IEC 23270:2006.

Pengenalan C#
C# (dibaca: C sharp) merupakan sebuah bahasa pemrograman yang berorientasi objek yang dikembangkan oleh Microsoft sebagai bagian dari inisiatif kerangka .NET Framework. Bahasa pemrograman ini dibuat berbasiskan bahasa C++ yang telah dipengaruhi oleh aspek-aspek ataupun fitur bahasa yang terdapat pada bahasa-bahasa pemrograman lainnya seperti Java, Delphi, Visual Basic, dan lain-lain) dengan beberapa penyederhanaan.
Tujuan desain dari bahasa pemrograman C#, sebagai berikut:
1.      Bahasa pemrograman C# dibuat sebagai bahasa pemrograman yang bersifat bahasa pemrograman general-purpose (untuk tujuan jamak), berorientasi objek, modern, dan sederhana.
2.      Bahasa pemrograman C# ditujukan untuk digunakan dalam mengembangkan komponen perangkat lunak yang mampu mengambil keuntungan dari lingkungan terdistribusi.
3.      Portabilitas programmer sangatlah penting, khususnya bagi programmer yang telah lama menggunakan bahasa pemrograman C dan C++.
4.      Dukungan untuk internasionalisasi (multi-language) juga sangat penting.
5.      C# ditujukan agar cocok digunakan untuk menulis program aplikasi baik dalam sistem klien-server (hosted system) maupun sistem embedded (embedded system), mulai dari perangkat lunak yang sangat besar yang menggunakan sistem operasi yang canggih hingga kepada perangkat lunak yang sangat kecil yang memiliki fungsi-fungsi terdedikasi.
6.      Meskipun aplikasi C# ditujukan agar bersifat 'ekonomis' dalam hal kebutuhan pemrosesan dan memori komputer, bahasa C# tidak ditujukan untuk bersaing secara langsung dengan kinerja dan ukuran perangkat lunak yang dibuat dengan menggunakan bahasa pemrograman C dan bahasa rakitan.
7.      Bahasa C# harus mencakup pengecekan jenis (type checking) yang kuat, pengecekan larik (array), pendeteksian terhadap percobaan terhadap penggunaan Variabel-variabel yang belum diinisialisasikan, portabilitas kode sumber, dan pengumpulan sampah (garbage collection) secara otomatis.
Visual C # merupakan sebuah implementasi dari C # bahasa dengan Microsoft. Visual Studio mendukung Visual C # dengan kode editor fitur lengkap, kompiler, proyek template, desainer, enchant kode, kuat dan mudah digunakan olehdebugger dan peralatan lainnya. C# (C Sharp) adalah sebuah bahasa pemrograman yang dibuat setelah bahasa pemrograman Java muncul, basis dari C# sebenarnya adalah C++. Karena banyaknya kekurangan dan kelemahan dari bahasa pemrograman C++, maka akhirnya dibuat bahasa pemrograman Java, dengan fitur dan model yang lebih kompleks dari C++, Java memiliki banyak peminat. Akan tetapi setelah diketahui bahwa ternyata dalam bahasa pemrograman Java juga masih memiliki banyak kelemahan, akhirnya Java dikembangkan menjadi C#, dimana dalam bahasa pemrograman C# tersusun dari 70% Java, 20% C++ dan 10% baru. Sehingga hal ini dapat menciptakan suatu bahasa pemrograman baru yang menutup kelemahan C++, maupun Java.

II.          DASAR TEORI
Ada 4 hal yang penting dan mesti kita ingat ketika belajar Object Oriented Programming :
1.       Class, sesuatu disekitar kita dapat dibedakan ke dalam class-class yang berbeda.Sebagai contoh meja, kursi, manusia, kucing atau pohon.Class mengkategorikan atau mengelompokkan sesuatu yang sama. Dalam hal ini, class yang kita pakai adalah class Program.
2.       Object, dalam setiap class akan terdapat object-object spesifik.Sebagai contoh Budi, Wati dan Adi yang masuk dalam class manusia.Ketiga orang tadi merupakan object yang dibentuk dari class Manusia.Setiap object akan memiliki ciri yang unik.

3.       Setiap object pasti memiliki banyak property.Property akan dapat menerangkan object dengan lebih jelas.Sebagai contoh Budi akan mempunyai property seperti tinggi, berat, warna kulit dan sebagainya.

4.       Method adalah apa yang bisa dikerjakan oleh suatu object, sebagai contoh Budi bisa berjalan atau berbicara.

Selain penjumlahan operator artimatikan dalam C# juga bisa berupa :                                    
1.      Perkalian #contoh : c = a * b;
2.      Pembagian #contoh : c = a / b;
3.      Pengurangan #contoh : c = a - b;
4.      Modulo #contoh : c = a % b;


III.      PEMBAHASAN

Pada praktikum unit 1 ini pertama kita akan belajar membuat sebuah program C# sederhana, kemudian belajar meng_compile dan menjalankan sebuah program C#, belajar  menggunakan debugger, dan yang terakhir adalah belajar menambahkan exception handilng ke program C#.

·         Latihan 1 : membuat program C# sederhana
Pada latihan ini, kita menggunakan  Visual Studio untuk menulis program C#. Program tersebut akan meminta sebuah nama dan akan menyapa nama tersebut.
Setelah mengikuti langkah-langkah yang terdapat pada modul praktikum PBO tersebut dan kita save dengan nama file “sambutan”, berikut adalah listing programnya:

Add caption

Referensi Namespace :
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
Keempat baris diatas merupakan referensi Namespaces tempat class yang ada dalam program.
namespace Pembagian
Namespace adalah tempat dimana class-class berada/disimpan dalamprogram ini, disimpan dalam Namespace Pembagian .

class Program 
Bahasa pemrograman C# adalah Object Oriented Programming, dimana semua fungsi dimasukkan dalam class-class tertentu. Dalam hal ini, fungsi Main berada dalam class Program.

Variabel Namaku adalah dalam bentuk string. Console.WriteLine adalah fungsi dalam C# yang digunakan untuk mencetak text kedalam layar dimana setelah mencetak text, ia langsung berganti ke baris baru dibawahnya. Sedangkan Console.Write adalah fungsi yang digunakan untuk mencetak text akan tetapi tidak berganti baris ketika selesai.

Console.WriteLine("Masukkan Namamu");adalah fungsi dalam C# yang digunakan untuk mencetak text kedalam layar dimana setelah mencetak text, ia langsung berganti ke baris baru dibawahnya. Sedangkan Console.Write() adalah fungsi yang digunakan untuk mencetak text akan tetapi tidak berganti baris ketika selesai. Seperti halnya bahasa pemrograman yang lain, id dalam C# kita juga diperbolehkan menggunakan escape character, yaitu beberapa karakter khusus yang digunakan untuk memodifikasi pencetakan text yang kita lakukan.

Namaku = Console.ReadLine();Adalah fungsi yang digunakan untuk membaca inputan dari user dan menjadi nilai string Namaku, akan tetapi format dari inputan yang diambil tersebut berupa string sehingga kita perlu mengubahnya menjadi integer agar dapat dioperasikan oleh karena itu kita menggunakan fungsi Convert.ToInt32() .

Console.WriteLine("Assalamualaikum {0}", Namaku); adalah fungsi untuk menuliskan kata Assalamualaikum, selanjutnya diikuti oleh {0+1}, dan {1} berisi variabel Namaku.

Console.ReadLine(); adalah fungsi untuk membaca output program dan menampilkannya pada window debugger.


Berikut ini adalah hasil eksekusi programnya (output):


Latihan 2 : melakukan proses compile dan menjalankan program C# dari command line
Selain dengan menggunakan debugger, compilasi dapat juga dilakukan dengan menggunakan command promt, compilasi ini adalah gaya dahulu/kuno. Langkah-langkahnya antara lain :
1.      Buka Visual Studio .NET Command Prompt.
2.      Masuk ke direktori source code program berada.
3.      Melakukan compilasi dengan perintah :
Csc /out:Greet.exe Program.cs,

Dari hasil output di atas kita dapat lihat terjadi beberapa kali kesalahan yang menyebabkan program tidak dapat berjalan/dieksekusi  hal itu karena kita tidak benar dalam memasukan alamat dimana project kita di di simpan, sehingga tidak dapat di compile.
Latihan 3 : mengunakan debugger
Pada latihan kali ini. Praktikan menggunakan Visual Studio Debugger untuk melakukan eksekusi perlangkah sekaligus untuk memeriksa nilai dari variabel.
Di sini hanya membahas masalah debugging dengan menggunakan debugger melalui tehap-tahap tertentu.
Debugging adalah proses metodis menemukan dan mengurangi jumlah bug, atau cacat, dalam sebuah program komputer atau sepotong perangkat keras elektronik, sehingga membuatnya berperilaku seperti yang diharapkan
Sedangkan Debugger adalah fasilitas dalam visual studio yang berfungsi untuk melakukan debug suatu program.
Setelah melakukan langkah-langkah seperti pada modul, berikut adalah project yang kita beri breakpoint, maka ketika program di eksekusi program akan berhenti berjalan pada tanda breakpoint, berikut adalah  listnya:


Latihan 4 : menambahan exception handilng ke program C#.
Pada latihan kali ini, praktikan menulis program yang menggunakan exception handling (menangani eksepsi) untuk menangkap kesalahn yang tidak diharapkan yang terjadi saat program berjalan. Program tersebut akan memandu user untuk dua nilai integer. Integer pertama akan dibagi integer kedua dan menampilkan hasilnya.
Ini adalah listting projectnya

string temp = Console.ReadLine(); adalah fungsi untuk membaca input dari keyboard yang berupa string dan dimasukkan menjadi nilai dari variabel temp dalam program.
int i = Int32.Parse(temp); adalah fungsi untuk meng-convert nilai temp  dalam bentuk string string menjadi Int32 dan dinamakan int i dalam program.
int j = Int32.Parse(temp); adalah fungsi untuk meng-convert nilai temp  dalam bentuk string string menjadi Int32 dan dinamakan int j dalam program.

int k = i / j;  adalah operasi aritmatika dalam sintaks C# yang menunjukkan bahwa nilai int k adalah hasil dari nilai i dibagi j.

Console.WriteLine("Hasil pembagian {0} oleh {1} adalah {2}", i, j, k); adalah perintah untuk melaporkah hasil program, yaitu laporan nilai i, j, k , dimana {0} adalah nilai 0+1 = i. dan seterusnya untuk j, k.

Berikut hasil capture dari eksekusi  dari program yang telah dibuat dan dengan menggunakan pembagian 0:


Kemudain di uji kembali dengan menggunakan pembagian 0

Muncul peringatan seperti gambar di atas dan itu menyatakan terjadinya error.
Hal ini dikarenakan program tidak bisa menangkap eksepsi sehingga tidak berjalan
Agar tidak terjadi/mucul window diatas, kita harus menambahkan exception handling.

Menambahkan Exception Handling :
Exception Handling digunakan untuk menangani jika terjadi error yang mungkin terjadi pada hasil output program yang kita jalankan. Dalam hal ini, kita menggunakan Exception Handling untuk menangani pembagian Aritmatika dengan 0 yang hasilnya adalah tak terdefinisi.


Setelah adanya penambahan kode tersebut yaitu; fungsi main  dimasukkan ke blok try dan menambah sintaks catch. Dan didalam sintaks catch terdapat variabel e yang merupakan eksepsi yang akan ditangkap.
Berikut hasil yang didapat setelah dieksekusi:

Program sukses dijalankan dan tidak terdapat console yang menyatakan eksepsi gagal ditangkap.
IV.      JAWAB PERTANYAAN
1.      Apakah fungsi static void main dalam sebuah program. Dapatkah sebuah program tidak memiliki static void main. Bila ada program apa yang tidak menggunakannya??
Jawab
Static sebagai pernyataan bahwa metode tersebut berdiri ‎sendiri (mandiri), dan bersifat tetap serta tidak berubah-ubah selama eksekusi program dilakukan. void untuk menyatakan ‎bahwa metode tersebut memang tidak memiliki nilai kembalian.‎ kata Main akan diikuti dengan menggunakan tanda kurung buka dan kurung tutup ‎tanpa isi. Deklarasi sebuah metode juga memasukkan tubuh metode tersebut, yang merupakan kode ‎aktual yang membangun metode tersebut. Tubuh metode akan diapit dengan menggunakan sepasang ‎tanda kurung keriting buka { dan tanda kurung keriting tutup } yang mengikuti daftar parameter. Secara gampangnya Fungsi static void main adalah agar program memberikan nilai kembalian sebuah void (tak ada nilai kembalian), jika tidak menggunakan void, maka pada statement program harus memberikan nilai kembalian integer ( static int main )atau type.

2.      Apakah perbedaan debug dan release pada suatu program dijalankan?
Jawab
Saat mode build Debug, metode optimasi-nya tidak dimasukkan dalam hasil kompilasi, jadi masih dimungkkinkan untuk men-diagnose logika program yang salah. Pada mode build Release metode optimasi tidak digunakan, artinya aplikasi siap direlease.

3.      Apakah makna finally dalam suatu program, apakah finnaly mutlak ada dalam sebuah statement try catch, bila tidak kapan sebaiknya finnaly digunakan?
Jawab
Finnaly merupakan salah satu rangkaian blok dari exception handling. Klausa Finnaly mengeksekusi setelah try block dan catch juga mengkesekusi tetapi sebelum pernyataan try. Selalu berjalan , terlepas dari iya atau tidaknya eksepsi saat terlempar atau tertangkap.

4.      Apa arti step in , step over, dan watch pada mekanisme debugging suatu program C#?
Jawab
Step in        è men-debug sebuah class diluar dan masuk kedalam baris pertama class luar  tersebut. Eksekusi akan dilanjutkan. Jika baris pada script berisi fungsi call control akan kembali ke debugger pada saat masuk ke fungsi. Jika tidak control akan kembali ke debugger pada baris berikutnya dalam fungsi tersebut
Step out      è keluar dari step in dan step out, lalu masuk dalam menu debug baris  selanjutnya. Eksekusi akan kembali terjadi tetapi kontrol akan kembali ke debugger pada baris berikutnya dalam fungsi tersebut atau script tingkat atas.
Watch         èmelihat isi dan nilai sebuah variable. Ekspresi yang dimasukkan kembali, dievaluasi dalam suatu lingkup dan nilai tersebut ditampilkan untuk mengembalikan waktu kontrol setiap debugger atau ketika akan mengubah stack location dalam konteks ini: window.

5.      Apa perbedaan antara Write dan WriteLine, dan apa fungsi Parse pada latihan 4?
Jawab
Write                       : menusliskan angka/huruf pada line yang sama.
WriteLine                : menuliskan angka/huruf pada line yang baru.
Parse                        : meng-convert string menjadi integer atau tipe data yang lainnya.

V.     KESIMPULAN

1.      C# adalah bahasa lanjutan dari C++ karena banyaknya kekurangan dan kelemahan dari bahasa pemrograman C++, maka akhirnya dibuat bahasa pemrograman Java, dengan fitur dan model yang lebih kompleks dari C++, Java memiliki banyak peminat. Akan tetapi setelah diketahui bahwa ternyata dalam bahasa pemrograman Java juga masih memiliki banyak kelemahan, akhirnya Java dikembangkan menjadi C#, dimana dalam bahasa pemrograman C# tersusun dari 70% Java, 20% C++ dan 10% baru. Sehingga hal ini dapat menciptakan suatu bahasa pemrograman baru yang menutup kelemahan C++, maupun Java.

2.      File source code C# berekstensi .cs

3.      Untuk meng-compile program ada 2 cara, yaitu dengan debugger IDE Visual Studio dan melalui Command Prompt.

4.      Debugger digunakan untuk mencari bug/kesalahan code program yang kita buat.

5.      Ada 4 keyword dalam Exception Handling :
a.       try untuk menguji error dan melemparkanya jika error terjadi.
b.      catch untuk menagkap error yang dilemparkan block try.
c.       throw untuk menentukan exception atas pilihan menu error yang ditentukan oleh programmer.
d.      finally untuk menu akhir Exception Handling.

1 komentar:

Alex Irfani mengatakan...

wahh.... keren negh artikel nya.. nambah wawasan saya tentang C#. maturnuwun..