iikzvera.files.wordpress.com · Web viewMetode insert memiliki metode yang berkebalikan yaitu...
Transcript of iikzvera.files.wordpress.com · Web viewMetode insert memiliki metode yang berkebalikan yaitu...
TUGAS BAHASA PEMROGRAMAN
Kelompok III :
Monalica Erica W. (123214003)Dinni Rahma Oktaviani (123214004)Darul Yuliana (123214015)
Alfiyatuz Zahra (123214204)Febby Sintanova (123214212)
Aisyah N.A (123214217)Erva Ani Dwi K. (123214221)
Amalia Sri Wulandari (123214222)Masfukhatul Wakhidah (123214224)
KELAS 2012 B
MATEMATIKAJURUSAN MATEMATIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAMUNIVERSITAS NEGERI SURABAYA
A. Fungsi String
Di C#, ada banyak fungsi manipulasi yang bisa digunakan tapi yang benar-benar
punya manfaat, menurut saya dan didukung oleh artikel yang saya baca ada 6 fungsi
yaitu concat(gabung), insert(memasukkan), remove(menghapus), extract(mengambil),
replace(mengganti), dan copy(menyalin).
1. Concat String
Metode ini digunakan untuk mengkombinasi atau menggabungkan sebuah string
untuk ditambahkan pada akhir string lainnya. Parameter yang digunakan yaitu
string.Concat (string1, string2), contoh:
string awal = "ini adalah ";
string akhir = "string digabung!";string concat = string.Concat(awal, akhir); //hasil: concat="ini adalah string
digabung!"
2. Insert String
Jikalau metode concat string digunakan untuk menggabungkan string hanya di
posisi awal atau di akhir saja, maka metode insert string digunakan untuk
menggabungkan kata di posisi manapun. Metode ini membutuhkan 2 parameter,
parameter pertama adalah sebagai indikasi posisi dimana string dimasukkan dan
parameter kedua adalah sebagai parameter string apakah yang dimasukkan. Contoh:
string template = "Tolong Nama Dimasukkan";
string tutor = "Lisa";
Console.WriteLine(template.Insert(12, tutor));
// Outputs: "Tolong Nama Lisa Dimasukkan"
3. Remove String
Metode insert memiliki metode yang berkebalikan yaitu metode remove. Dengan
melakukan akses terhadap metode ini, maka dengan mudah karakter yang diminta
akan dihapus. Metode ini memiliki parameter overload(mempunyai 2 / lebih metode
yang sama dengan parameter yang berbeda). Secara umum saya lebih banyak
menggunakan metode yang memiliki 2 parameter yaitu parameter untuk menentukan
posisi awal dari parameter yang dihapus, dan parameter yang digunakan untuk
menentukan jumlah karakter yang akan dihapus. Daripada bingung langsung saja saya
beri contoh:
string contoh = "seorang anak melempar bola pada temannya";
string hasil = contoh.Remove(21); // contoh = "seorang anak melempar "
hasil = contoh.Remove(21, 11); // contoh = "seorang anak melempar temannya"
4. Extract String
Bagian ini adalah metode favorit saya, karena saya tidak perlu menghapus atau
memotong beberapa character untuk mengambil sebuah string dari sebuah kalimat.
Metode yang digunakan memiliki parameter yang mirip dengan metode remove.
Langsung saja ke contoh:
string contoh = "seorang anak melempar bola pada temannya";
string hasil = contoh.Substring(21); // contoh = "bola pada temannya"
hasil = contoh.Substring(0, 12); // contoh = "seorang anak"
5. Replace String
Untuk metode ini, paling banyak digunakan waktu kita malas untuk mengganti
tiap string secara manual. Metode ini memiliki dua parameter, pertama adalah untuk
teks yang akan diganti dan parameter kedua adalah teks pengganti. Contoh yang saya
lampirkan:
string contoh = "Warna sapi itu putih dan abu-abu";
string hasil = contoh.Replace("putih", "kuning"); // hasil = "Warna sapi itu
kuning dan abu-abu"
6. Copy String
Ini merupakan metode terakhir yang menurut saya bermanfaat dalam melakukan
penipuan terhadap(baca:manipulasi) string. Hasil keluaran dari metode ini berupa
copy dari string yang ada. Contohnya:
string contoh = "Warna sapi itu putih dan abu-abu";
string hasil = string.Copy(contoh); // hasil = "Warna sapi itu putih dan abu-
abu”;
B. Fungsi Matematika
Dalam class math banyak sekali fungsi-fungsi yang tersedia, diantaranya
perpangkatan, akar dan trigonometri dan fungsi-fungsi sebagainya. disini saya akan
contohkan operasi perpangkatan dan akar kuadrat, gambar disamping ini adalah salah
satu contoh hasil operasi operasi yang ada di class math.
Untuk membuat projectnya silahkan ikuti instruksi instruksi dibawah ini
1. Buat project baru pada IDE visual studio 2010, untuk nama project silahkan
sesuaikan.
2. Tambahkan dua componen button, empat komponen textbox dan empat komponen
label. atur dan tata sedemikian rupa.
3. Double klik pada button satu untuk membangkitkan event klik pada button satu.
tambahkan code berikut ini
double bilangan =0;
double hasil =0;
bilangan = Convert.ToDouble(textBox1.Text);
hasil =Math.Pow(bilangan,2);textBox2.Text=hasil.ToString();
4. Double klik pada button dua untuk membangkitkan event klik pada button tersebut,
tambahkan code berikut ini
double bilangan =0;
double hasil =0;
bilangan = Convert.ToDouble(textBox3.Text);
hasil = Math.Pow(bilangan, 0.5);
textBox4.Text = hasil.ToString();
5. Done. program selesai dibuat. sekarang running program yang telah selesai dibuat,
jika langkah langkah diatas dilakukan dengan benar maka saat program running
program akan seperti pada gambar diatas.
C. Fungsi Date/Time dalam Bahasa Pemrograman
Tutorial ini adalah operasi penjumlahan dan operasi pengurangan(Operasi
aritmatika) pada type data tanggal (date). Sekilas memang tampak sederhana, akan tetapi
operasi aritmatika pada type data tanggal (date) disuatu bahasa pemrograman sangat
penting. terutama jika aplikasi yang dibangun melibatkan data-data type tanggal seperti
aplikasi rental buku, aplikasi persewaan dan lain-lain
Sebagai contoh akan dilakukan operasi-operasi yang sederhana, agar mudah
dimengerti. Seperti biasa langkah pertama adalah menyiapkan form aplikasi.
File->new project, masukan nama project, klik OK
1. Setelah form terbentuk tambahkan 4 label, 2 textbox,1 datetimerpicker, dan 1 button.
atur dan tata komponen-komponen.
2. Setelah itu tambahkan kode berikut ini pada button proses
3. DateTime sekarang;
DateTime akhir;
sekarang=dateTimePicker1.Value;
akhir=sekarang.addDays(convert.toInt16(textbox1.text));
textBox2.Text=akhir.ToString();
4. Setelah selesai lakukan runing pada program, lihat hasilnya.
Memang operasi ini sangat sederhana, akan tetapi jika suatu aplikasi yang besar
yang mengincludekan operasi-operasi type data tanggal programer akan dipusingkan
dengan operasi tersebut, sehingga dengan operasi-operasi aritmatika type data tanggal
(date) diharapkan programer fokus akan algoritma mereka, tidak disibukan lagi dengan
operasi-operasi penjumlahan maupun penguranganjam,hari,tanggal,tahun dan
sebagainya.
D. User Defined Function
User define function adalah fungsi yang dibuat sendiri oleh pengguna
dikarenakan fungsi yang disediakan program (fungsi built-in) kurang sesuai dengan yang
dibutuhkan pengguna sehingga harus menggabungkan beberapa fungsi bult-in untuk
membuat fungsi yang sesuai dengan pengguna.
Contoh user-defined function:
Procedure: @class program
{
public static void MenuPilihan ()
{
Console.WriteLine(“MENU PROGRAM”);
Console.WriteLine(“1. Hitung luas segitiga”);
Console.WriteLine(“2. Hitung luas lingkaran”);
Console.WriteLine(“3. Hitung luas persegi panjang”);
Console.WriteLine(“Exit”);
Console.WriteLine();
Console.Write(“Pilihan Anda=”);
}
public static double lSegitiga(double a, double t)
{
return 0.5*a*t;
}
public static double lLingkaran (double r)
{
return Math.Pi*r*r;
}
public static double lPersegiPanjang(double p, double l)
{
return p*l
}
static void Main(string[] args)
{
int pilih;
int alas, tinggi, panjang, lebar, jari;
MenuPilihan();
pilih=int.Parse(Console.ReadLine());
switch (pilih)
{
case 1:
Console.Write(“Alas=”);
alas=int.Parse(Console.ReadLine());
Console.Write(“Tinggi=”);
tinggi=int.Parse(Console.ReadLine());
Console.Write(“Luas segitiga=”+lSegitiga(alas,tinggi));
break;
case 2:
Console.Write(“Jari-jari=”);
jari=int.Parse(Console.ReadLine());
Console.Write(“Luas segitiga=”+lLingkaran(jari));
break;
case 3:
Console.Write(“Panjang=”);
panjang=int.Parse(Console.ReadLine());
Console.Write(“Lebar=”);
lebar=int.Parse(Console.ReadLine());
Console.Write(“Luas segitiga=”+lPersegiPanjang(panjang,lebar));
break;
case 4:
break;
}
Console.Readkey();
}
E. Pengertian OOP
Pemrograman berorientasi objek (Inggris: object-oriented programming disingkat
OOP) merupakan paradigma pemrograman yang berorientasikan kepada objek. Semua
data dan fungsi di dalam paradigma ini dibungkus dalam kelas-kelas atau objek-objek.
Perbedaan Class dan object dapat dianalogikan jika anda ingin membangun
rumah Class adalah blueprint / gambar (berisi spesifikasi lengkap dari rumah yang akan
dibuat, ukuran, jumlah, dll). Sedangkan object adalah bentuk fisik / rumah yang
dibangun berdasarkan blueprint / class yang sudah ada, biasa disebut instan class / object.
C# memiliki beberapa modifier class yaitu:
Access Modifiers digunakan untuk menentukan hak akses dari class dan method, adapun
access modifier yang ada pada C# sebagai berikut:
Class pada C# terdiri dari :
• Instance Variable / Field
• Method
• Method
Method pada C# dapat memiliki banyak argumen dengan tipe data yang berbeda.
• Instance Member
Field, property, dan method dalam suatu class bisa merupakan instance
member atau static member. Instance member dibentuk ketika class tersebut dibuat
instan-nya, secara default field, property, dan method yang tidak diberi keyword static
merupakan instance member.
Konstruktor adalah method yang namanya sama dengan nama class-nya.
Konstruktor digunakan untuk inisialisasi variabel ketika membuat instan class / objek
baru.
Bandingkan dengan logika pemrograman terstruktur. Setiap objek dapat
menerima pesan, memproses data, dan mengirim pesan ke objek lainnya,
Para programmer mengembangkan teknik yang diberi nama “Objcet Oriented
Programming”, dengan tujuan yang sederhana yaitu mengatur kompleksitas dengan
memodelkan aspek esensial yang ada. Jika model yang dikembangkan semakin
mendekati problem yang akan dipecahkan maka semakin mudah. Persoalan tersebut
dapat dimengerti sehingga program lebih mudah ditulis dan di-maintain.
F. Konsep Object Oriented ProgramingEmpat konsep yang harus dapat dimiliki oleh suatu bentuk pemrograman yang
berorientasi object adalah:
1. Enkapsulasi
2. Abstrasi
3. Inheritance
4. Polymorphism
1. EnkapsulasiEnkapsulasi adalah penyatuan antara proses-proses yang terjadi dan sejumlah data
yang dikelolah kedalam suatu bentuk kelompok tertentu. Pada OOP informasi
dibungkus dalam sebuah Class sehingga orang yang menggunakan class tersebut tidak
perlu tahu detail-nya, hanya cukup mengetahui method dan property apa saja yang ada
dalam class tersebut beserta kegunaannya.
Anda bisa membuat public method set dan get untuk memberi dan mengambil
nilai variabel , misal: 1:// private member variables
2:privateint Year;
3:
4:publicint getYear() //get method
5: {
6:returnthis.Year;
7: }
8:
9:publicvoid setYear(int Year) //set method
10: {
11:this.Year = Year;
12: }
Selain menggunakan cara tersebut diatas pada C# disediakan object
property untuk memberi nilai dan mengambil nilai dari private variabel dalam suatu
class. Penggunaan object property lebih memudahkan anda dalam penulisan kode
dibandingkan harus membuat dua method set dan get untuk mengakses satu variabel
private. Contoh penggunaan property dapat dilihat pada contoh kode dibawah ini. 1:class Mahasiswa {
2:privatestring nim;
3:privatestring nama;
4:
5:publicstring Nim {
6: get {
7:return nim;
8: }
9: set {
10:this.nim = value;
11: }
12: }
13:
14:publicstring Nama {
15: get {
16:return nama;
17: }
18: set {
19:this.nama = value;
20: }
21: }
22:
23:publicstring DisplayInfo() {
24:return Nim + " " + Nama;
25: }
26: }
27:
28:class ClassProperty {
29:publicstaticvoid Main(string[] args) {
30: Mahasiswa mhs1 = new Mahasiswa();
31: mhs1.Nim = "22002321";
32: mhs1.Nama = "Erick";
33: Console.WriteLine(mhs1.DisplayInfo());
34: }u
35: }
2. Abstraction
Abstraction memiliki pengertian bahwa dalam mengembangkan perangkat
lunak seorang programer akan menggunakan atau menciptakan sejumlah obyek
dimana obyek tersebut akan ada dan berprilaku pada sistem.
Setiap tipe Window pasti mempunyai bentuk tampilan yang berbeda misal
combobox, listbox, button, dll. Berarti setiap class turunan dari Window harus
mempunyai method DrawWindow() nya sendiri yang berbeda satu sama lain. Untuk
memastikan bahwa setiap class turunan Control harus mempunyai method
DrawWindow() maka anda harus mendefinisikan class tersebut
sebagai abstract class dan memiliki method abstract yang belum
diimplementasikan.
Abstract method tidak mempunyai implementation, abstract method hanya
semacam kontrak yang harus dipenuhi. Semua class yang diturunkan dari class yang
mempunyai abstract method harus mengimplementasikan method tersebut.
Class yang didefinisikan sebagai abstract class tidak dapat dibuat instan class /
objek, class yang didefinisikan abstract hanya dapat digunakan dengan cara
diturunkan. 1:publicabstractclass Control {
2:privateint top;
3:privateint left;
4:
5:protectedint Top {
6: get { returnthis.top;}
7: set { this.top = value;}
8: }
9:protectedint Left {
10: get {returnthis.left;}
11: set {this.left = value;}
12: }
13:public Control(int top, int left) {
14: Top = top;
15: Left = left;
16: }
17://abstract method harus diimplementasikan
18:publicabstractvoid DrawWindow();
19: }
20:
21:publicclass ListBox : Control {
22:privatestring listBoxContent;
23:public ListBox(int top, int left, string contents)
24: : base(top, left) {
25:this.listBoxContent = contents;
26: }
27:
28:publicoverridevoid DrawWindow() {
29: Console.WriteLine("Position :({0},{1})", Top, Left);
30: Console.WriteLine("Menuliskan string pada listbox: {0}",
31: listBoxContent);
32: }
33:
34: }
35:
36:publicclass Button : Control {
37:public Button(int top, int left) : base(top, left) { }
38:publicoverridevoid DrawWindow() {
39: Console.WriteLine("Menggambar button pada ({0},{1})", Top, Left);
40: }
41: }
42:class LatAbstract {
43:staticvoid Main(string[] args) {
44: Control[] winArray = new Control[3];
45: winArray[0] = new ListBox(5, 10, "Pada ListBox");
46: winArray[1] = new Button(5, 6);
47:for (int i = 0; i < 2; i++) {
48: winArray.DrawWindow();
49: }
50: }
51: }
Tapi untuk kasus diatas abstract masih mempunyai keterbatasan, jika anda ingin
membuat class DropDownList yang hendak diturunkan dari class ListBox, maka anda
tidak dapat memaksakan method DrawWindow() harus ada di class tersebut.
3. Inheritance
Inheritance atau pewarisan adalah merupakan konsep dimana suatu obyek
memiliki sejumlah perilaku yang dimiliki oleh obyek lain dalam suatu hirarki
tertentu.
Pada C# hubungan spesialisasi diimplementasikan menggunakan prinsip
inheritance. Penulisan inheritance di C# sebagai berikut
public class ListBox : Window
Kode diatas berarti class ListBox adalah turunan dari class Window
Penggunaan inheritance dapat dilihat pada program dibawah ini 1:publicclass Window {
2://variabel dideklarasikan private sehingga tidak bisa diakses oleh kelas
3://turunannya
4:privateint top;
5:privateint left;
6:
7://objek konstruktor
8:public Window(int top, int left) {
9:this.top = top;
10:this.left = left;
11: }
12:
13:publicvoid DrawWindow() {
14: Console.WriteLine("Draw window pada ({0},{1})",
15: top, left);
16: }
17: }
18:
19:publicclass ListBox : Window {
20://member variable baru pada class anak
21:privatestring listBoxContent;
22:public ListBox(int top, int left, string contents):base(top,left) {
23:this.listBoxContent = contents;
24: }
25:
26://versi baru karena override dari base classnya
27:publicnewvoid DrawWindow() {
28:base.DrawWindow();
29: Console.WriteLine("Menuliskan string pada listbox: {0}",
30: listBoxContent);
31: }
32: }
33:
34:class LatInheritance {
35:publicstaticvoid Main(string[] args) {
36: Window objWindow = new Window(10, 15);
37: objWindow.DrawWindow();
38:
39: ListBox objList = new ListBox(15, 20, "Hello ListBox");
40: objList.DrawWindow();
41: }
42: }
Ada dua aspek yang paling penting pada inheritance yang pertama adalah code
reuse, sebagai contoh ketika anda membuat class ListBox maka anda dapat
menggunakan logic yang sudah dibuat pada class Window.
Aspek kedua yang tidak kalah penting dari inheritance adalah polymorhism, poly
berarti banyak dan morph berarti bentuk, jadi polymorphism dapat berarti dapat
menggunakan banyak bentuk tanpa harus mengacu details yang sama.
4. Polymorphism
Polymorphism adalah konsep dimana beberapa obyek memiliki metode yang
sama dengan aksi yang berbeda.
Dari istilahnya Polymorphism kesannya sulit dan kompleks, tetapi sebenarnya
simple, ilustrasinya begini ketika sebuah perusahaan telpon / provide telpon
mengirimkan signal ke anda (dering telpon), mereka tidak tahu telpon apa yang anda
gunakan, bisa model lama dengan dering kuno, bisa HP dengan dering music mp3, TV
Phone, PDA Phone dll. yang provider tahu bahwa masing-masing telepon mempunyai
‘base type’ telepon dan mempunyai method untuk berdering. Ketika provider
mengirimkan signal mereka hanya berharap bahwa telepon akan berdering tidak peduli
jenis telponnya, nah provider telepon memperlakukan telepon anda secara
polymorphism.
Dari gambar diatas dapat anda lihat, ListBox is-a Control (karena ListBox turunan
dari Control), Button is-a Control, kita berharap bahwa dapat memperlakukan keduanya
sebagai Control. Misal anda mempunyai banyak control di collection untuk digambar ke
windows, dan mengharapkan ketika memanggil method draw() pada control maka
control2 tersebut akan tergambar sesuai dengan tipe objectnya (mis: ListBox,
RadioButton, Command, dll).
Anda dapat mengimplementasikan polymorphism dengan dua cara yaitu:
Membuat virtual method pada base class (class induk)
Membuat class turunan yang mempunyai method dengan keyword override yang
mengganti isi dari method dengan keyword virtual yang ada pada base class-nya.
Penggunaan prinsip polymorphism dapat dilihat pada contoh program dibawah ini 1:publicclass Control {
2://variabel dideklarasikan private sehingga tidak bisa diakses oleh kelas
3://turunannya
4:privateint top;
5:privateint left;
6:
7:protectedint Top {
8: get {
9:returnthis.top;
10: }
11: set {
12:this.top = value;
13: }
14: }
15:
16:protectedint Left {
17: get {
18:returnthis.left;
19: }
20: set {
21:this.left = value;
22: }
23: }
24:
25://objek konstruktor
26:public Control(int top, int left) {
27: Top = top;
28: Left = left;
29: }
30:
31:publicvirtualvoid DrawWindow() {
32: Console.WriteLine("Draw window pada ({0},{1})",
33: top, left);
34: }
35:
36: }
37:
38:publicclass ListBox : Control {
39://member variable baru pada class anak
40:privatestring listBoxContent;
41:public ListBox(int top, int left, string contents)
42: : base(top, left) {
43:this.listBoxContent = contents;
44: }
45:
46://versi baru karena oSverride dari base classnya
47:publicoverridevoid DrawWindow() {
48:base.DrawWindow();
49: Console.WriteLine("Menuliskan string pada listbox: {0}",
50: listBoxContent);
51: }
52:
53: }
54:
55:publicclass Button : Control {
56:public Button(int top, int left) : base(top, left) {}
57:
58:publicoverridevoid DrawWindow() {
59://base.DrawWindow();
60: Console.WriteLine("Menggambar button pada ({0},{1})", Top, Left);
61: }
62: }
63:class LatPolymophism {
64:staticvoid Main(string[] args) {
65: Control win = new Control(10, 15);
66: ListBox lstBox = new ListBox(5, 10, "Text pada ListBox");
67: Button b = new Button(5, 6);
68: win.DrawWindow();
69: lstBox.DrawWindow();
70: b.DrawWindow();
71:
72: Control[] winArray = new Control[3];
73: winArray[0] = new Control(10, 15);
74: winArray[1] = new ListBox(5, 10, "Pada ListBox");
75: winArray[2] = new Button(5, 6);
76:
77:for (int i = 0; i < 3; i++) {
78: winArray.DrawWindow();
79: }
80: }
81: }
Dapat dilihat dari contoh diatas bahwa base class yaitu Window mempunyai
method yang bernama DrawWindow() yang mempunyai keyword virtual, ini berarti
method tersebut dapat di override atau diganti implementasinya dengan method yang
nama dan parameternya sama persis di kelas turunannya yaitu class ListBox.
Secara singkat OOP adalah pemrograman yang berorientasi obyek yang dibahas
di struktur data algoritma, pembahasannya mengenai array (data dengan indeks dimulai
dari 0), arraylist (data yang diurutkan dalam indeks), queue (antrian data maksudnya
adalah data yang masuk duluan itulah data yang akan diproses duluan), stack (data yang
masuk terakhir itu yang diproses duluan), list (data string) , dan dictionary(data string
yang diurutkan abjadnya).
J. Operasi File
Operasi file adalah bagian dari suatu program untuk menjalankan atau
menghentikan proses kerja suatu program yang dijalankannya. Dalam hal ini hal yang
mengenai operasi file tersebut adalah sebagai berikut:
1. Deleting a File
Jika Anda memiliki File yang tidak dibutuhkan lagi, dalam program c# dapat
dilakukan penghapusan file dengan menggunakan metode FileInfo.Delete(). Sintaks-
nya adalah public override void Delete();
Berikut salah satu contohnya:
using System;
using System.IO;
public class Program
{
static int Main(string[] args)
{
var fleMembers = new FileInfo("First.txt");
if (fleMembers.Exists == true)
fleMembers.Delete();
return 0;
}
}
2. Copying a File
Anda dapat membuat salinan file dari satu di rektori ke yang lain. Untuk
melakukan ini, Anda dapat menggunakan metode FileInfo.CopyTo() yang kelebihan
beban dengan dua versi. Versi pertama memiliki sintaks berikut:
public FileInfo CopyTo(string destFileName);
Ketika menggunakan metode ini, menentukan path atau direktori yang akan
menjadi tujuan dari file disalin. Berikut adalah contoh:
using System;
using System.IO;
public class Program
{
static int Main(string[] args)
{
var fleMembers = new FileInfo("Reality.txt");
var strMyDocuments =
Environment.GetFolderPath(Environment.SpecialFolder.Personal);
if (fleMembers.Exists == true)
fleMembers.CopyTo(string.Concat(strMyDocuments, "\\Federal.txt"));
return 0;
}
}
Dalam contoh ini, sebuah file bernama Reality.txt di direktori proyek akan
diambil dan isinya akan diterapkan ke file baru bernama Federal.txt dibuat dalam
folder My Documents dari pengguna saat ini. Saat menggunakan versi pertama dari
metodeFileInfo.CopyTo () metode, jika file sudah ada, operasi tidak akan berlanjut
dan Anda hanya akan menerima kotak pesan. Jika Anda bersikeras, Anda dapat
menimpa file target. Untuk melakukan ini, Anda dapat menggunakan versi kedua
metode ini. Sintaks-nya adalah:
public FileInfo CopyTo(string destFileName, bool overwrite);
Argumen pertama adalah sama dengan versi pertama dari metode ini.
Argumen kedua menentukan tindakan apa yang harus diambil jika file sudah ada
dalam direktori target. Jika Anda ingin menimpanya, melewati argumen sebagai
benar, jika tidak, lulus sebagai palsu.
3. Moving a File
Jika Anda menyalin file dari satu direktori ke yang lain, Anda akan memiliki
dua salinan dari file yang sama atau isi yang sama dalam dua file. Jika Anda ingin
menyalin, Anda hanya dapat memindahkan file dari satu direktori ke yang lainnya.
Operasi ini dapat dilakukan dengan menggunakan metode FileInfo.MoveTo().
Sintaks-nya adalah:
public void MoveTo(string destFileName);
Argumen ke metode ini adalah sama dengan metode CopyTo(). Setelah
menjalankan metode ini, obyek File info akan dipindahkan ke jalur Destfilename.
Berikut contohnya:
using System;
using System.IO;
public class Program
{
static int Main(string[] args)
{
var fleMembers = new FileInfo("pop.txt");
var strMyDocuments =
Environment.GetFolderPath(Environment.SpecialFolder.Personal);
if (fleMembers.Exists == true)
fleMembers.MoveTo(string.Concat(strMyDocuments, "\\Federal.txt"));
return 0;
}
}
K. Random Number
Random Number adalah salah satu fungsi untuk memunculkan nilai acak saat
program dijalankan dalam bahasa pemrograman.
Fungsi ini nantinya dipergunakan untuk memaksimalkan tampilan games dan
media pembelajaran matematika.
Fungsi random bilangan dalam c# yang kita akan pelajari ada dua:
1. Fungsi random bilangan bulat yang merandom bilangan dari batas atas yang kita
tentukan.
Kode berikut akan menghasilkan bilangan random kurang dari 100:
{
Random random = new Random();
Int num = random.Next(100);
Console.WriteLine(num);
Console.ReadKey();
}
2. Fungsi random bilangan bulat yang merandom bilangan dari batas bawah dan batas
atas yang kita tentukan.
Kode untuk menghasilkan bilangan random antara bilangan minimum dan maksimum
yang kita tentukan adalah sebagai berikut:
{
Random random = new Random();
int num = random.Next(min, max);
Console.WriteLine(num);
Console.ReadKey();
}
L. Fungsi Rekursif dalam Bahasa C#
Fungsi rekursif adalah suatu fungsi yang memanggil dirinya sendiri. Pada
beberapa persoalan, fungsi rekursif sangat berguna karena mempermudah solusi. Namun
demikian, fungsi rekursif juga memiliki kelemahan, yakni memungkinkan terjadinya
overflow pada stack, yang berarti stack tidak lagi mampu menangani permintaan
pemanggilan fungsi karena kehabisan memori( stack adalah area memori yang dipakai
untuk variable lokal untuk mengalokasikan memori ketika suatu fungsi dipanggil. Oleh
karena itu, jika bisa diselesaikan dengan metode iteratif.
Secara singkat fungsi rekursif ada hubungannya dengan matematika diskrit
seperti permutes/kombinasi, rekursif bisa diartikan nilai baru didapat dari nilai
sebelumnya seperti baris fibanacci, factorial.
Bentuk umum fungsi rekursif.
return_data_type function_name(parameter_list)
{ ...
function_name(...);
... }
Contoh Algoritma program rekursif :
Faktorial
Fungsi rekursif dapat digunakan untuk menghitung faktorial. Berikut penjelasan beserta
dengan contoh listing programnya.
Fungsi faktorial dapat dinyatakan dalam bentuk rekursif seperti berikut:
faktorial(4)
4 * faktorial(3)
fak(n) = 1, untuk n = 0 atau n = 1
fak(n) = n x (n-1)!, untuk n > 0
Berikut contoh proses untuk perolehan hasil 4!.
Hasil akhir: 24
Misalkan kita membuat project baru, klik file new project, pada kotak project name
silahkan isi nama project sesuai dengan keinginan, tidak ada aturan khusus dalam
penamaan project. untuk langkah-langkah selanjutnya silahkan ikuti intruksi dibawah ini.
Langkah 1 : Tambahkan satu button dan satu datagridview padam form1. atur dan tata
sedemikian rupa sehingga tampilannya seperti pada gambar dibawah ini
khusus untuk datagridView tambahkan 2 kolom dengan cara klik kana pada
datagridview dan klik add colomn
Gambar 1. Preview desain aplikasi
Langkah 2: Pada button satu tambahkan source code berikut ini
dataGridView1.Rows.Add(1000);
for (int i = 0; i < 1000; i++)
faktorial(1)
3 * faktorial(2)
2 * faktorial(1)
{
Thread.Sleep(3);
dataGridView1.Rows[i].Cells[0].Value =
acak(10).ToString();
}
for (int i = 0; i < 1000; i++)
{
Thread.Sleep(2);
dataGridView1.Rows[i].Cells[1].Value =
acak(10).ToString();
}
for (int i = 0; i < 1000; i++)
{
Thread.Sleep(1);
dataGridView1.Rows[i].Cells[2].Value =
acak(10).ToString();
}
jangan lupa tambahkan library thread pada header program dengan using system.thread
Langkah 3: Kita tambahkan fungsi rekursif, fungsi rekursif telah disiapkan, tinggal copy
paste ke form. berikut ini fungsi rekursif tersebut. fungsi rekursif tersebut
bernama acak.
private int acak(int data)
{
int temp = 0;
Random acakku = new Random();
temp=acakku.Next(0, data);
if (temp == 8)
{
temp = acakku.Next(0, data);
return acak(6);
}
return temp;
}
Pada source function diatas, sebenarnya mirip dengan fungsi biasa seperti
dengan fungsi lain yang dibuat dengan C#, akan tetapi jika dilihat lebih cermat akan ada
sedikit perbedaan, pada fungsi diatas fungsi acak melakukan pemanggilan terhadap
dirinya sendiri, padahal pemanggilan itu terjadi di block statement fungsi acak. inilah
yang dimaksud dengan rekursif fungsi, yaitu fungsi yang mengizinkan dirinya
memanggil dirinya sendiri.
Langkah 4: Done, jalankan program.
Jika langkah-langkah diatas dilakukan dengang benar, sewaktu program
dijalankan program akan menampilkan bilangan random pada datagrid. perhatikan
seksama pada dataGridview1. tampilannya mungkin seperti pada gambar dibawah ini.
Gambar 2. Preview hasil running program
Tapi setiap kali running hasilnya akan berbeda, tidak harus sama seperti pada
gambar diatas, karena kita menggunakan konsep random. pada datagridView1 perhatikan
dengan seksama, pada dataGridView1 angka-angka yang dihasilkan adalah angka antara
0 sampai 9, dan pada datagridVew1 tidak pernah ada nilai 8. ini dikarenakan pada fungsi
acak setiap kali function tersebut menghasilkan nilai 8 fungsi tersebut memanggil ulang
dirinya sebelum sempat me return nilainya ke fungsi. sehingga angka 8 tidak pernah di
return kan ke fungsi. inilah yang dinamakan dengan fungsi rekursif.
Contoh fungsi rekursif tidak pada windows form application:
factorial.@class program.
{
Static int factorial (int n)
{
int temp=1,fak;
for (int i=1;i<=n;i++)
{
fak=i*temp;
temp=fak;
}
return temp;
}
Static int rekfaktorial (int n)
{
if(n==0)
{
return 1;
}
else
{
return n*refaktorial(n-1);
}
Static void Main (string[] args)
{
int n;
Console.Write(“Jumlah n factorial=”);
n=int.Parse(Console.ReadLine());
Console.Write(n+”Faktorial=”+factorial(n).Tostring());
Console.Readkey();
}
M. Cara: Pencarian String Menggunakan Regular Expressions
The System.Text.RegularExpressions.Regex class dapat digunakan untuk
string pencarian. Pencarian tersebut dapat berkisar kompleksitas dari yang sangat
sederhana untuk membuat penuh penggunaan reguler expression. Berikut ini adalah dua
contoh string pencarian menggunakan kelas Regex. Untuk informasi lebih lanjut,
lihat NET. Kerangka Regular Expressions .
Kode berikut adalah aplikasi console yang melakukan pencarian kasus sensitif
sederhana dari string dalam array. Statis pencarian string yang diberikan untuk pencarian
dan string yang berisi pola pencarian. Dalam hal ini, argumen ketiga digunakan untuk
menunjukkan kasus yang harus diabaikan. Untuk informasi lebih lanjut,
lihat System.Text.RegularExpressions.RegexOptions.
TestRegularExpressions Class
{
static void Main ()
{
String [] kalimat =
{
"Sapi selama bulan",
"Betsy Sapi",
"Meringkuk di sudut",
"Tidak cocok di sini"
};
String sPattern = "sapi";
foreach (string in kalimat)
{
System.Console.Write ("{} 0,24", s);
if (System.Text.RegularExpressions.Regex.IsMatch (s, sPattern,
System.Text.RegularExpressions.RegexOptions.IgnoreCase))
{
System.Console.WriteLine ("(cocok untuk '{0}' ditemukan)", sPattern);
}
lain
{
System.Console.WriteLine ();
}
}
}
}
Keluaran
sapi selama bulan (sesuai untuk 'sapi' ditemukan)
Betsy Sapi (cocok untuk 'sapi' ditemukan)
meringkuk di sudut (cocok untuk 'sapi' ditemukan)
tidak cocok di sini
Kode berikut adalah aplikasi console yang menggunakan reguler expression
untuk memvalidasi format setiap string dalam array. Validasi mensyaratkan bahwa
setiap string berbentuk nomor telepon di mana tiga kelompok angka yang dipisahkan
oleh tanda hubung, dua kelompok pertama berisi tiga digit, dan kelompok ketiga berisi
empat digit. Hal ini dicapai dengan ekspresi reguler ^\\d{3}-\\d{3}-\\d{4}$ .
TestRegularExpressionValidation Class
{
static void Main ()
{
String [] angka =
{
"123-456-7890",
"444-234-22450",
"690-203-6578",
"146-893-232",
"146-839-2322",
"4007-295-1111",
"407-295-1111",
"407-2-5555",
};
String sPattern = "^ \ \ d {3} - \ \ d {3} - \ \ d {4} $";
foreach (string s in jumlah)
{
System.Console.Write ("{} 0,14", s);
if (System.Text.RegularExpressions.Regex.IsMatch (s, sPattern))
{
System.Console.WriteLine ("- berlaku");
}
lain
{
System.Console.WriteLine ("- tidak valid");
}
}
}
}
Keluaran
123-456-7890 - berlaku
444-234-22450 - tidak valid
690-203-6578 - berlaku
146-893-232 - tidak valid
146-839-2322 - berlaku
4007-295-1111 - tidak valid
407-295-1111 - berlaku
407-2-5555 - tidak valid
Contoh berikut menggunakan reguler expression untuk memeriksa kejadian
berulang kata-kata dalam sebuah string. Ekspresi reguler \ b (? <word> \ W +) \ s + (\ k
<word>) \ b dapat diartikan seperti yang ditunjukkan dalam tabel berikut.
Pola Deskripsi
\ B Mulai pertandingan di batas kata.
(?
<word>
\ W +)
Cocok dengan satu atau lebih karakter
kata sampai batas kata. Nama
ini kata kelompok ditangkap.
\ S + Cocok dengan satu atau lebih karakter
white-space.
(\ K
<word>
)
Cocokkan kelompok ditangkap yang
bernama kata.
\ B Sesuai batas kata.
Contoh:
using System;
menggunakan System.Text.RegularExpressions;
public class Tes
{
public static void Main ()
{
/ / Tentukan ekspresi reguler untuk kata-kata diulang.
Regex rx = new Regex (@ "\ b (? <word> \ W +) \ s + (\ k <word>) \ b",
RegexOptions.Compiled | RegexOptions.IgnoreCase);
/ / Tentukan string tes.
string teks = "The quick brown fox fox melompati anjing anjing malas.";
/ / Cari yang sesuai.
MatchCollection cocok = rx.Matches (teks);
/ / Laporan jumlah pertandingan ditemukan.
Console.WriteLine ("{0} cocok ditemukan di: \ n {1}", matches.Count, teks);
/ / Laporan setiap pertandingan.
foreach (Pertandingan in pertandingan)
{
Kelompok GroupCollection = match.Groups;
Console.WriteLine ("'{0}' diulang pada posisi {1} dan {2}",
kelompok ["kata"]. Nilai,
kelompok [0]. Index,
kelompok [1] Index).;
}
}
}
/ / Contoh ini menghasilkan output berikut ke konsol:
/ / 3 pertandingan ditemukan di:
/ / The quick brown fox fox melompati anjing anjing malas.
/ / 'The' diulang pada posisi 0 dan 4
/ / 'Rubah' diulang pada posisi 20 dan 25
/ / 'Anjing' diulang pada posisi 50 dan 54
Contoh berikut menggambarkan penggunaan ekspresi reguler untuk
memeriksa apakah string baik mewakili nilai mata uang atau memiliki format yang benar
untuk mewakili nilai mata uang.
Pola Deskripsi
^ Mulai pada awal string.
\ S * Cocok dengan nol atau lebih karakter
white-space.
[\ + -]? Cocok dengan nol atau satu kejadian baik
tanda positif atau tanda negatif.
\ S? Cocok dengan nol atau satu karakter
white-space.
\ $? Cocok dengan nol atau satu kejadian
tanda dolar.
\ S? Cocok dengan nol atau satu karakter
white-space.
\ D * Cocok dengan nol atau lebih angka
desimal.
\.? Cocok dengan nol atau satu desimal
simbol titik.
\ D {2}? Pertandingan dua angka desimal nol atau
satu waktu.
(\ D
* \.? \ D
{2}?) {1}
Cocok dengan pola integral dan pecahan
angka yang dipisahkan oleh titik desimal
simbol minimal satu kali.
$ Cocokkan akhir string.
Dalam kasus ini, ekspresi reguler mengasumsikan bahwa string mata uang
yang valid tidak mengandung simbol pemisah kelompok, dan bahwa ia memiliki baik
tidak ada digit pecahan atau jumlah digit pecahan yang didefinisikan oleh
CurrencyDecimalDigits properti.
Contoh
using System;
using System.Globalization;
using System.Text.RegularExpressions;
Contoh public class
{
public static void Main ()
{
/ / Dapatkan obyek NumberFormatInfo saat ini untuk membangun biasa
/ / Ekspresi pola dinamis.
NumberFormatInfo NFI = NumberFormatInfo.CurrentInfo;
/ / Tentukan pola ekspresi reguler.
pola string;
Pola = @ "^ \ s * [";
/ / Dapatkan simbol tanda positif dan negatif.
Pola + = Regex.Escape (nfi.PositiveSign + nfi.NegativeSign) + @ "] \ s?";
/ / Dapatkan simbol mata uang.
Pola + = Regex.Escape (nfi.CurrencySymbol) + @ "\ s?";
/ / Tambahkan terpisahkan digit ke pola.
Pola + = @ "(\ d *";
/ / Tambahkan pemisah desimal.
Pola + = Regex.Escape (nfi.CurrencyDecimalSeparator) + "?";
/ / Tambahkan angka pecahan.
Pola + = @ "\ d {";
/ / Tentukan jumlah digit pecahan nilai mata uang.
Pola + = nfi.CurrencyDecimalDigits.ToString () + "}) {1} $?";
Regex rgx = new Regex (pola);
/ / Tentukan beberapa string tes.
String [] = tes { "-42", "19.99", "0.001", "100 USD",
".34", "0.34", "1,052.21", "$ 10,62",
"1,43", "- $ 0,23"};
/ / Periksa setiap string uji terhadap ekspresi reguler.
foreach (uji string in tes)
{
if (rgx.IsMatch (test))
{Console.WriteLine ("{0} adalah nilai mata uang.", Test);}
lain
{Console.WriteLine ("{0} bukan nilai mata uang.", Test);}
}
}
}
/ / Contoh menampilkan output sebagai berikut:
/ / -42 Adalah nilai mata uang.
/ / 19.99 adalah nilai mata uang.
/ / 0,001 bukan nilai mata uang.
/ / 100 USD bukanlah nilai mata uang.
/ / .34 Adalah nilai mata uang.
/ / 0,34 adalah nilai mata uang.
/ / 1,052.21 bukan nilai mata uang.
/ / $ 10,62 adalah nilai mata uang.
/ / 1,43 adalah nilai mata uang.
/ / - $ 0,23 adalah nilai mata uang.
Karena reguler expression dalam contoh ini dibangun secara dinamis, kita
tidak tahu apakah pada saat desain mata simbol budaya saat ini, tanda desimal, atau
tanda-tanda positif dan negatif mungkin disalahartikan oleh mesin reguler expression
sebagai operator bahasa reguler expression.
N. String Builder
Sebuah kelas yang digunakan untuk membuat obyek string yang dapat
dimodifikasi.String dan StringBuilder adalah tipe referensi. Tapi String bertindak seperti
jenis nilai. StringBuilder terletak di namespace System.Text.
Tabel berikut berisi daftar metode yang dapat Anda gunakan untuk
memodifikasi isi dari StringBuilder.
METHOD DESCRIBTION
StringBuilder.Append Menambahkan informasi ke
akhir StringBuilder saat ini.
StringBuilder.AppendF
ormat
Menggantikan format specifier
berlalu dalam string dengan
teks berformat.
StringBuilder.Insert Sisipan string atau benda
lainnya ke dalam indeks
tertentu dari StringBuilder saat
ini.
StringBuilder.Remove Menghapus sejumlah karakter
tertentu dari StringBuilder saat
ini.
StringBuilder.Replace Menggantikan karakter
ditentukan pada indeks
tertentu.
Perbedaan string dan string builder
STRING STRING BUILDER
System.String adalah kekal System.StringBuilder
bisa berubah
Rangkaian ini digunakan
untuk menggabungkan dua
Append metode yang
digunakan.
string
String pertama
dikombinasikan dengan string
lain dengan membuat salinan
baru dalam memori sebagai
objek string, dan kemudian
string lama dihapus
Penyisipan dilakukan
pada string yang ada.
String efisien untuk
manipulasi string kecil
StringBuilder lebih
efisien dalam hal jumlah
besar manipulasi string
harus dilakukan
Contoh Programnya. . . . . . .
namespace builder
{
class Program
{
static void Main(string[] args)
{
StringBuilder febby = new StringBuilder("We study mathematic");
Console.WriteLine(febby);
febby.Append(" we are the people");
Console.WriteLine(febby);
float currency = 3400.50f;
febby.AppendFormat(" Our individual salary : {0:C}. ", currency);
Console.WriteLine(febby);
febby.Insert(11, "people of ");
Console.WriteLine(febby);
febby.Remove(11, 20);
Console.WriteLine(febby);
febby.Replace("world", "ARAB");
Console.WriteLine(febby);
Console.ReadKey();
}
}
}
Tampilan program saaat dijalankan
O. Error Handling (Exception Handling)
Exception handling adalah suatu mekanisme penanganan eror yang mungkin
terjadi dalam suatu program. Misalnya sebuah program yang memiliki operasi
pembagian, dimana suatu ketika user menginputkan bilangan pembagi atau denumerator
0, maka program tersebut harus memiliki suatu exception handling untuk kasus tersebut.
Selain contoh diatas exception handling disini juga berguna saat program kita
membutuhkan akses ke CD ROM, USB, Audio&Video File, Internet dll, sehingga
apabila alat alat yang kita butuhkan dalam program kita tersebut tiba-tiba terputus
aksesnya maka program kita tidak secara tiba-tiba mati dan agar program kita bisa terus
berjalan.
Program yang tidak menggunakan exception handling:
Menjalankan perintah
Jika dalam menjalankan perintah menemui error
Program berhenti
Program yang menggunakan exception handling :
Menjalankan perintah
Jika dalam menjalankan perintah menemui error
Exception akan melemparkan error tersebut
Catch akan menerima dan memproses error tersebut
Program menjalankan perintah selanjutnya
Sehingga dengan menggunakan Exception Handling kita dapat memprevent
terjadinya runtime error yang menyebabkan program kita berhenti ditengah tengah jalan.
Sebelum kita merambah ke programnya, mari kita klasifikasikan jenis-jenis
error terlebih dahulu, dalam ilmu pemrograman, terdapat 3 jenis error. yaitu :
1. Syntax Error
Syntax Error adalah suatu kesalahan dari penulisan syntax pada program
sehingga syntax tersebut tidak dapat dieksekusi oleh program yang pasti membuat
program tersebut error.
contoh :
public static voit main
pastinya program akan error, tahukah dimana letak errornya? VOIT tidak
dikenali oleh C#, sehingga program akan error.
2. Logical Error
Logical Error adalah suatu kesalahan yang disebabkan oleh si programmer
sendiri, lah kok bisa? hal ini disebabkan oleh kesalahan penulisan atau rumus yang
diterapkan oleh si programmer. Anda pasti tahu bila semua angka tidak dapat dibagi
oleh 0 (nol). Lah kalau si programmer tetep ngotot,pasti programnya error.
contoh :
int a = 6;
int b = 0;
double c= a / b;
Console.WriteLine(c);
bagaimana?sudah jelas kan?
3. Runtime Error
Error yang satu ini tergolong error yang unik, lah kenapa? soalnya menurut
saya errornya gara-gara kecerobohan si programmer itu sendiri. Error ini akan muncul
apabila terjadi miss communication antara program dan file yang dipanggil dalam
program, misalnya program itu membutuhkan database yang bernama db_siswa yang
disimpan pada localhost,tapi kenyatannya ternyata si programmer tidak mempunyai
atau belum membuat database tersebut di localhost, program akan tetap berjalan,
namun saat aksi simpan data, hapus data atau tampil data pasti program akan error.
Dari semua jenis error diatas pasti memerlukan penanganan agar dapat
meminimalisisr ke-error-an pada program.
Contoh dalam C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
usingSystem;
namespaceoop_exceptionhandler
{
classProgram
{
privatestaticintPerkalian()
{
inthasilKali;
Console.WriteLine();
Console.WriteLine("Soal 5 X 5");
Console.Write("Input Hasil Perkalian : ");
hasilKali = Convert.ToInt32(Console.ReadLine());
returnhasilKali;
}
privatestaticvoidOperasi_Perkalian(intperkalian)
{
boolhasil = true;
while(hasil == true)
{
try
{
while(perkalian!=25)
{
Console.WriteLine("Hasil Operasi Salah = {0}",perkalian); perkalian = Perkalian();
}
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
hasil = false;
}
catch(Exception)
{
Console.WriteLine("Hasil Operasi Salah = {0}",perkalian);
}
}
}
publicstaticvoidMain(string[]args)
{
intperkalian;
perkalian = Perkalian();
Operasi_Perkalian(perkalian);
Console.WriteLine("Hasil Operasi Benar");
Console.ReadKey();
}
}
}
Hasil untuk C#
DAFTAR PUSTAKA
Modul praktikum pemrograman visual c#, YUNI YAMASARI, S.KOM, M.KOM UNIVERSITAS
NEGERI SURABAYA.OKTOBER, 2012
http://www.c-sharpcorner.com/uploadfile/puranindia/stringbuilder-class-in-C-Sharp1/
http:///operasi%20operasi%20matematika%20di%20C%23%20(C%20SHARP).htm diakses Kamis,
16 Mei 2013 Pukul 17.15
http://rinaldirusli.wordpress.com/2008/11/20/manipulasi-string-c/diakses Jumat, 17 Mei 2013
Pukul 10.20
www.csharp-indonesia.com
http:///operasi%20operasi%20matematika%20di%20C%23%20(C%20SHARP).htm diakses Kamis,
16 Mei 2013 Pukul 17.15
Daftar Pustaka
http://mugi.or.id/blogs/erick/
http://id.wikipedia.org/
Dapus : www.csharp-indonesia.com
http://www.c-sharpcorner.com/uploadfile/puranindia/stringbuilder-class-in-C-Sharp1/
http://translate.googleusercontent.com/translate_c?depth=1&hl=id&prev=/search%3Fq
%3Dregular%2Bexpression%2Bc%2523%26biw%3D1241%26bih
%3D581&rurl=translate.google.com&sl=en&u=http://msdn.microsoft.com/en-us/library/
ms228595(v%3Dvs.80).aspx&usg=ALkJrhgpzZT4Zx9kh9F-s-TmQCkhp2zLzA
http://translate.googleusercontent.com/translate_c?depth=1&hl=id&prev=/search%3Fq
%3Dregex%2Bregular%2Bexpression%2Bc%2523%26biw%3D1241%26bih
%3D581&rurl=translate.google.com&sl=en&u=http://msdn.microsoft.com/en-us/
library/
system.text.regularexpressions.regex.aspx&usg=ALkJrhjXyg58OdK2IdmUWEExH
hZ_qIqqKw#feedback
http://1digit.wordpress.com/2012/04/09/kuliah-berseri-oop-2-bab-v-exception-
handling/Diakses pada tanggal 17 Mei 2013
http://imamoto17.wordpress.com/2013/04/10/exception-handling-c-java-dan-c/Diakses
pada tanggal 17 Mei 2013
http://iaknuranda.lecture.ub.ac.id/files/2011/01/DPK-Fungsi-IA-UB.pdf
http://www.functionx.com/csharp/lesson34.htm