LAPORAN PRAKTIKUM 1

13
LAPORAN PRAKTIKUM PEMROGRAMAN BERORIENTASI OBYEK PENGENALAN PROGRAM C# SEDERHANA Nama : Esty Swwandana NIM : 37511 Hari/jam : Senin / 13.00 Tanggal : 1 Oktober 2012 LABORATORIUM JARINGAN KOMUNIKASI JURUSAN TEKNIK ELEKTRO dan TEKNOLOGI INFORMASI FAKULTAS TEKNIK UNIVERSITAS GADJAH MADA 1

Transcript of LAPORAN PRAKTIKUM 1

Page 1: LAPORAN PRAKTIKUM 1

LAPORAN PRAKTIKUMPEMROGRAMAN BERORIENTASI OBYEK

PENGENALAN PROGRAM C# SEDERHANA

Nama : Esty SwwandanaNIM : 37511Hari/jam : Senin / 13.00Tanggal : 1 Oktober 2012

LABORATORIUM JARINGAN KOMUNIKASIJURUSAN TEKNIK ELEKTRO dan TEKNOLOGI INFORMASI

FAKULTAS TEKNIKUNIVERSITAS GADJAH MADA

2012

1

Page 2: LAPORAN PRAKTIKUM 1

MODUL 1

PENGENALAN PROGRAM C# SEDERHANA

I. Pendahuluan

Praktikum ini bertujuan agar praktikan dapat membuat sebuah program C# kemudian meng-compile dan menjalankannya. Selain itu diharapkan praktikan akan dapat menggunakan Visual Studio Debugger dan menambahkan exception handling ke dalam program C#.

Sebelum memasuki pembahasan, ada beberapa hal yang harus praktikan pahami terlebih dahulu. Beberapa di antaranya adalah:

A. Visual Studio

Visual Studio adalah sebuah perangkat lunak lengkap (suite) yang dapat digunakan untuk mengembangkan aplikasi, baik aplikasi bisnis maupun personal. Disebut lengkap karena Visual Studio telah mencakup compiler, SDK, Integrated Development Environment (IDE), dan dokumentasi (library). Terdapat kompiler untuk berbagai macam bahasa pemrograman dalam Visual Studio yang memang mendukung berbagai macam bahasa pemrograman. Beberapa bahasa pemrograman yang built-in adalah C++, C#, VB.NET, dan F#. Sementara untuk bahasa pemrograman yang lain seperti M, Phyton, XML/XSLT, HTML/XHTML, JavaScript, dan CSS akan tersedia melalui language service yang di-install secara terpisah.

Aplikasi yang dibuat menggunakan Visual Studio dapat berupa aplikasi console, aplikasi Windows, maupun aplikasi Web. Selian itu pengembangannya dapat dilakukan dengan menggunakna native code (dalam bentuk bahasa mesin yang berjalan di atas Windows) atau dengan menggunakan managed code (dalam bentuk Microsoft Intermediate Language di atas .NET Framework).

B. Visual Studio Debugger

Visual Studio .NET adalah tool yang memungkinkan programmer untuk melakukan observasi terhadap program selama program dijalankan dan menentukan lokasi semantic error dari program.

Debugger juga memungkinkan kita untuk mengeksekusi program secara sekuensial langkah demi langkah, mengetahui nilai dari sebuah variabel, memungkinkan pengeditan kode ketika proses debug berlangsung, memungkinkan pengguanaan breakpoint, dan lain-lain.

C. Exception Handling

Fitur ini membantu menangani masalah tidak terduga yang muncul selagi program dijalankan. Exception handling menggunakan keyword try, catch, dan finally untuk mencoba tindakan yang memiliki kemungkinan gagal atau error, untuk menangani kegagalan yang terjadi pada blok try, dan untuk membersihkan resources setelahnya.

D. C#

Merupakan bahasa pemrograman berorientasi obyek yang dikembangkan Microsoft sebagai bagian dari inisiatif kerangka .NET Framework. Bahasa pemrograman ini dibuat berdasarkan bahasa C++.

Sintaks yang terdapat pada C# antara lain:

Tanda titik koma digunakan untuk menandai akhir dari sebuah statement.

Kurung kurawal digunakan untuk mengelompokkan beberapa statement (biasanya berdasarkan method-nya).

Variabel diberi nilai dengan menggunakan tanda sama dengan dan dibandingkan dengan menggunakan dua buah tanda sama dengan.

Kurung siku digunakan untuk array.

2

Page 3: LAPORAN PRAKTIKUM 1

II. Pembahasan

A. Latihan 1: Membuat Program Sederhana

using System;using System.Collections.Generic;using System.Linq;using System.Text;

Kode di atas merupakan digunakan sebagai insiasi program dan memanggil Namespace yang dibutuhkan dengan perintah using. Berikut ini adalah keterangannya:

System: menyediakan berbagai kelas yang berhubungan dengan data, komputasi matematika, pembangkitan bilangan acak, peubah lingkungan(runtime environment), serta penanganan memori menggunakna garbage collection.

System.Collections.Generic: menyediakan kelas-kelas pemuat yang dapat di-custom menggunakan tipe-tipe data generic.

System.Linq: merupakan Namespace yang diperlukan untuk pemrograman LINQ API.

System.Text: berisi class representasi dari ASCIIdan Unicode character encodings. Abstract base classes untuk mengkonvert blok karakter dan block bytes. Dan kelas pembantu yang memanipulasi dan memformat obyek string tanpa membuat intermediate instances of String.

namespace Sambutan{

class Program{

static void Main(string[] args) {

string Namaku; Console.WriteLine("Masukan namamu:"); Namaku= Console.ReadLine(); Console.WriteLine("Assalamualailkum {0}", Namaku); Console.ReadLine();

}

}

}

Fungsi Main menunjukan method utama di mana eksekusi program harus dimulai. Jika Main telah selesai dieksekusi, maka program akan berhenti.

Kemudian, setelah Main, dibuatlah sebuah variabel bertipe stringdengan nama Namaku. Console.WriteLine digunakan untuk menampilkan Masukan namamu: pada jendela console. Input dari user kemudian akan dibaca dengan menggunakan perintah Console.ReadLine dan nilainya akan disimpan dalam variabel Namaku. Selanjutnya console akan menampilkan Assalamualaikum + nilai variabel Namaku.

Berikut ini adalah tampilan saat compiling:

3

Page 4: LAPORAN PRAKTIKUM 1

B. Latihan 2: Melakukan Proses Compile dan Menjalankan Program C# dari Command Line

Dari hasil compiling di atas tampak bahwa program dieksekusi dengan menggunakan command line compiler, yaitu csc.exe. Sebelum memasukkan perintah untuk mengeksekusi program, telebih dahulu kita harus memasuki direktori di mana kita menyimpan solusi/program yang hendak dieksekusi (dapat dilakukan dengan menggunakan perinta cd untukk change directory).

Setelah itu, barulah kita masukkan perintah untuk mengeksekusi program. Command line-nya adalah: csc /out:Greet.exe Program.cs.

Flag /out: digunakan untuk spesifikasi nama file untuk output. Formatnya adalah /out:<output file name> <input file name>.

Jadi, dari perintah csc /out:Greet.exe Program.cs dapat disimpulkan bahwa untuk dapat mengeksekusi program dari csc perlu dibuat sebuah executable file (yang juga berisi informasi debug program) sebagai output. Sementara untuk inputnya adalah class di mana Main() dari program diletakkan. Executable file ini diberi nama Greet.exe, dan inputnya adalah class Program.cs di mana Main() diletakkan.

C. Latihan 3: Menggunakan Debugger

1. Menggunakan Breakpoint

Dalam program development, breakpoint berfungsi menghasilkan interupsi atau pause pada eksekusi program secara disengaja. Umumnya digunakan untuk mengamati atau menganalisis program saat berlangsungnya eksekusi.

Yang digunakan pada praktikum ini adalah bentuk paling umum dari breakpoint, yaitu instruction breakpoint yang akan menginterupsi proses eksekusi sebelum instruksi terntentu (yang telah ditentukan oleh programmer) dieksekusi. Saat breakpoint digunakan, maka akan digunakan bersam dengan tools lain untuk mengamati keadaan program (pada praktikum ini digunakan bersama dengan watch).

Di bawah ini adalah tampilan saat digunakannya breakpoint:

4

Page 5: LAPORAN PRAKTIKUM 1

2. Melihat Nilai Variabel

Melihat nilai variabel dapat dilakukan dengan menggunakan jendela Watch yang ada pada Visual Studio. Watch ini digunakan bersama dengan breakpoint. Selagi proses eksekusi diiterupsi dengan breakpoint, programmer dapat mengamati nilai variabel yang diinginkan dengan memasukkan nama variabel tersebut ke dalam kolom Name pada jendela Watch. Nilai dari variabel tersebut akan tampak pada kolom Value.

Berikut ini adalah contoh penggunaan Watch, di mana nilai variabel Namaku tampak masih bernilai 0 karena belum ada input dari user:

User memberikan input untuk variabel Namaku:

Nilai variabel Namaku sudah tidak lagi 0 setelah mendapat input:

3. Melakukan Eksekusi per Langkah pada Kode

Selain Watch, penggunaan breakpoint biasanya juga dibarengi dengan penggunaan step in atau step over agar dapat mengamati nilai variabel pada tiap-tiap langkah eksekusi. Pada praktikum kali ini yang digunakan adalah step over, yaitu dengan menekan tombol F10.

Berikutini adalah contoh penggunaan step over:

5

Page 6: LAPORAN PRAKTIKUM 1

D. Latihan 4: Menambahkan Exception Handling ke Program

using System;using System.Collections.Generic;using System.Linq;using System.Text;

namespace Pembagian{

class Program{

static void Main(string[] args) {

Console.WriteLine("Masukkan nilai integer pertama"); string temp = Console.ReadLine(); int i = Int32.Parse(temp); Console.WriteLine("Masukkan nilai integer kedua"); temp = Console.ReadLine(); int j = Int32.Parse(temp); int k = i / j; Console.WriteLine("hasil pembagian {0} oleh {1} adalah {2}", i, j, k); Console.ReadLine();

}

}

}

Program di atas adalah program untuk melakukan pembagian dari dua buah integer yang dimasukkan user. Mula-mula console akan menampilkan Masukkan nilai integer pertama dengan instruksi Console.WriteLine. Kemudian masukan dari user akan dibaca dengan Console.ReadLine dan nilainya disimpan pada variabel temp yang bertipe string karena input awal dari keyboard oleh user akan dianggap sebagai string. Barulah stelah itu nilai temp akan dikonversi menjadi 32-bit integer dan disimpan dalam variabel i yang juga bertipe integer. Untuk integer kedua prosesnya sama, hanya saja disimpan pada variabel j.

Setelah didapatkan dua nilai integer, maka akan dilakukan pembagian nilai i dibagi nilai j dan hasil pembagian disimpan dalam variabel k. Kemudan kedua bilangan input dan hasil pembagiannya akan ditampilkan dengan Console.WriteLine ({0} akan diganti dengan nilai i, {1} dengan nilai j, dan {2} dengan nilai k).

Berikut adalah tampilan saat program dijalankan:

Kelemahan dari program ini adalah tidak adanya exception handling untuk menangani error. Misalkan saja input dari user adalah bilangan yang jika dibagi hasilnya tidak terdefinisi, maka program akan mengalami error dan berhenti bekerja.

Berikut ini adalah tampilan saat dilakukan pembagian 0 sehingga program berhenti bekerja karena error:

6

Page 7: LAPORAN PRAKTIKUM 1

Untuk menghindari hal seperti inilah diperlukan adanya exception handling. Di bawah ini adalah kode dari solusi Pembagian yang telah ditambahkan exception handling:

using System;using System.Collections.Generic;using System.Linq;using System.Text;

namespace Pembagian{

class Program{

static void Main(string[] args) {

try {

Console.WriteLine("Masukkan nilai integer pertama"); string temp = Console.ReadLine(); int i = Int32.Parse(temp); Console.WriteLine("Masukkan nilai integer kedua"); temp = Console.ReadLine(); int j = Int32.Parse(temp); int k = i / j; Console.WriteLine("hasil pembagian {0} oleh {1} adalah {2}", i, j, k); Console.ReadLine();

} catch (Exception e) {

Console.WriteLine("Eksepsi: {0}", e); } Console.ReadLine();

}

}

}

Blok try digunakan untuk menampung tindakan yang mungkin akan mengakibatkan error, yaitu proses pembagiannya. Jika terjadi error pada blok ini, maka proses eksekusi akan melompat ke blok exception handler, yaitu blok catch. Pada block catch inilah diletakkan solusi untuk mengatasi error yang terjadi agar proses eksekusi tidak terhenti.

Kemudian Console.ReadLine(); pada bagian akhir digunakan untuk membaca input dari keyboard agar program tidak langsung keluar/berhenti secara otomatis.

7

Page 8: LAPORAN PRAKTIKUM 1

Berikut ini adalah tampilan jika terjadi error setelah ditambahkan exception handling:

III. Jawaban Pertanyaan Latihan

1. Fungsi main pada setiap program adalah untuk mendeskripsikan di mana ekseskusi harus di mulai dan merupakan fungsi utama dari program. Dalam Main, terdapat string array bernama args berisi command-line arguments dari sistem operasi Windows yang mempermudah konfigurasi program.

Sementara yang dimaksud dengan access modifier static adalah bahwa fungsi bisa dipanggil tanpa harus membuat instance program terlebih dulu (hal ini dikarenakan Main adalah titik awal di mana program mulai dieksekusi). Sementara tertulis void berarti metode Main() tidak menghasilkan nilai balik.

Jika tidak menggunakan main method, akan terjadi error dalam proses compiling program sehingga program tidak dapat dijalankan.

2. Debug digunakan untuk mendefinisakn konfigurasi debugging sementara release digunakan untuk mengaktifkan konfigurasi pengoptimalan kode program. Debug sendiri lebih bertujuan untuk testing atau debugging saja, sementara release adalah final build untuk end user.

3. Finally tidak harus selalu ada dalam estruktur try catch karena berfungsi untuk membersihkan resources yang dialokasikan untuk blok try catch. Cocok digunakan bila blok try memiliki kemungkinan error yang cukup banyak. Jika setiap kemungkian tidak ter-cover seluruhnya oleh blok catch, maka blok finally akan sangat membantu.

4. Debugging dapat dilakukan dengan mengeksekusi baris secara sekuensial (satu-persatu). Hal ini dapat dilakukan dengan beberapa cara:

a. Step in: mengeksekusi program dari satu baris kode ke baris berikutnya. Jika dari sebuah baris kemudian mengalihkan eksekusi dengan memanggil method baru, maka dengan step in ini programmer akan dapat melihat eksekusi dari method yang dipanggil tersebut langkah demi langkah.

b. Step over: sama seperti step in yang mengeksekusi per baris kode. Perbedaannya adalah jika sebuah baris, misalkan baris ke-29, mengalihkan eksekusi dengan memanggil method lain, maka step over tidak akan menampilkan eksekusi method yang dipanggil melainkan langsung menuju ke baris 30.

c. Watch: berfungsi untuk mengamati nilai dari tiap variabel yang dimasukkan ke dalam daftar watch.

5. Data yang ditulis menggunakan Write akan ditampilkan sesuai input dan dalam satu baris. Sementara WriteLine digunakan untuk menyisipkan baris karakter baru setelah menulis karakter terakhir dari output ke dalam file (berbeda baris perintah WriteLine akan menghasilkan output pada baris yang berbeda).

Parse berfungsi untuk menganalisa suatu set data dan menarik kesimpulan apakah data tersebut penting atau tidak, kemudian mengkonversinya dari bentuk string menjadi bentuk integer.

8

Page 9: LAPORAN PRAKTIKUM 1

IV. Kesimpulan

1. Beberapa karakteristik pada bahasa C# adalah:

Tanda titik koma digunakan untuk menandai akhir dari sebuah statement.

Kurung kurawal digunakan untuk mengelompokkan beberapa statement (biasanya berdasarkan method-nya).

Variabel diberi nilai dengan menggunakan tanda sama dengan dan dibandingkan dengan menggunakan dua buah tanda sama dengan.

Kurung siku digunakan untuk array.

2. Compiling program dapat dilakukan dengan command prompt, yaitu csc.exe dengan menggunakan flag /out:.

3. Jika digunakan breakpoint saat debugging, maka eksekusi akan berhenti pada breakpoint yang ditentukan.

4. Breakpoint biasa digunakan bersama dengan step in atau step over untuk mengeksekusi per baris secara berurutan dan Watch untuk mengamati nilai variabel yang ditentukan sepanjang jalannya program.

5. Parse digunakan untuk mengkonversi nilai string menjadi nilai integer.

6. Exception handling digunakan untuk mengatasi anomaly atau kegagalan yang mungkin terjadi dalam suatu program.

9