Modul6 Class

Embed Size (px)

Citation preview

  • 8/13/2019 Modul6 Class

    1/16

    MODUL 6 : MENGGUNAKAN CLASS

    MateriSetelah menyelesaikan latihan ini , Anda akan mampu untuk

    Membangun aplikasi Windows Store Membuat class dan menginstankan objek Menggunakan data dan method yang bersifat non-static Menggunakan data dan method yang bersifat static Menampilkan data di dalam class ke dalam XAML

    PersyaratanSebelum mengerjakan latihan ini, Anda harus memahami:

    Membuat method dalam C#

    Melewatkan argument sebagai parameter method dalam C#WAKTU : 45 menit

  • 8/13/2019 Modul6 Class

    2/16

    LATIHAN 1: MEMBUAT DAN MENGGUNAKAN CLASS

    Pada latihan ini Anda akan menggunakan bank account yang dibuat pada modul

    sebelumnya dan mengubahnya menjadi sebuah class. Anda akan mendeklarasikan data

    membernya sebagai private namun memberikan akses ke data dengan caramenggunakan method yang public dan non-static. Anda akan membuat uji ketahanan

    yang nantinya akan membuat sebuah objek account dan mengembangkannya dengan

    account number dan balance yang telah ditentukan oleh user. Akhirnya, anda akan

    menampilkan datanya pada account.

    Untuk mengubah BankAccount dari tipe data struct menjadi sebuah class1. Buka project CreateAccount.sln pada folder HOL SOLUTION\BAB 6\STARTER.

    Praktikum kali ini akan menggunakan Windows Apps project, dibandingkandengan praktikum terdahulu menggunakan Console Application.

    2. Pelajari kode pada file BankAccount.cs, bahwa BankAccount mempunyai tipedata struct.

    Struct BankAccount

    {

    public long accNo;

    public decimal accBal;

    public AccountType accType;

    }

    3. Buka MainPage.xamluntuk menambahkan kode untuk menampilkan isi Structdalam bentuk TextBlock. Beri nama ketiga TextBlock: accno, accbal, danacctype. Berikut ini kode XAML secara lengkap, tambahkan kode di bawah inisetelah kode :

    4. Lakukan proses compile dan jalankan program. Pastikan hasil program adalahsebagai berikut.

  • 8/13/2019 Modul6 Class

    3/16

    5. Modifikasi BankAccount pada BankAccount.cs untuk mengubahnya menjadisebuah class dari yang sebelumnya berupa tipe data struct.

    class BankAccount

    {

    public long accNo;

    public decimal accBal;

    public AccountType accType;}

    6. Lakukan compile pada program, maka akan mengalami kegagalan. Buka fileCreateAccount.cs dan lihat pada method newBankAccount. Class akanNampak seperti berikut:publicstaticBankAccountnewBankAccount()

    {

    BankAccountcreated;

    created.accNo = 123;

    created.accBal = 3000000;

    created.accType = AccountType.Checking;

    returncreated;

    }7. Pengeksekusian created.accNo akan berhasil dicompile ketika BankAccountmasih bertipe data struct. Sekarang ketika menjadi sebuah class, maka tidakbisa dicompile. Hal ini disebabkan ketika BankAccount masih bertipe datastruct, deklarasi variabel created, membuat nilai (value) dari BankAccount(pada stack). Namun ketika BankAccount menjadi sebuah class, deklarasivariabel created tidak membuat nilai dari BankAccount; tapi membuatBankAccount referenceyang tidak menghubungkan ke BankAccount object.

    8. Ubah deklarasi dari created sehingga bisa menginisialisasikan objek dariBankAccountseperti berikut:publicstaticBankAccountnewBankAccount()

    {BankAccountcreated = newBankAccount();created.accNo = 123;

    created.accBal = 3000000;

    created.accType = AccountType.Checking;

    returncreated;

    }9. Simpan hasil kerja anda.10.Lakukan proses compile dan jalankan program. Pastikan data yang

    dimasukkan ke aplikasi bisa ditampilkan kembali. Untuk mengenkapsulasi class BankAccount

    1. Semua data member dari class BankAccountsaat ini masih bersifat public.Modifikasi data nya sehingga menjadi private, seperti berikut :classBankAccount

    {

    privatelongaccNo;

    privatedecimalaccBal;

    privateAccountTypeaccType;

    }2. Lakukan compile program. Hasilnya akan gagal. Error muncul pada classCreateAccountseperti berikut :

    publicstaticBankAccountnewBankAccount()

    {

    BankAccountcreated = newBankAccount();created.accNo = 123; //error di sini

    created.accBal = 3000000; //error di sini

  • 8/13/2019 Modul6 Class

    4/16

    created.accType = AccountType.Checking; //error di sini

    returncreated;

    }3. Pengeksekusian data member dari BankAccountakan gagal dikompile karena

    data member sekarang menjadi bersifat private. Hanya method BankAccountyang bisa mengakses data member BankAccount yang private. Anda perlumenambahkan sebuah mehod BankAccount yang bersifat public untukmengolah data tersebut. Lakukan langkah-langkah seperti berikut :Tambahkan method yang bersifat public dan non-static yaitu Populate keBankAccount. Method ini akan mengembalikan void dan meminta duaparameter: long (bank account number) dan desimal (bank account

    balance/saldo). Bagian utama dari method ini akan memasukkan parameterlong ke bagian accNodan desimal ke bagian accBal. Selain itu juga akan

    mengatur bagian accTypeke AccountType.Checkingseperti berikut :classBankAccount

    {publicvoidPopulate(longnumber, decimalbalance)

    {

    accNo = number;

    accBal = balance;

    accType = AccountType.Checking;}

    privatelongaccNo;

    privatedecimalaccBal;

    privateAccountTypeaccType;

    }4. Ubah kalimat komentar menjadi kalimat pemrograman dari tiga sintaks

    pengolahan variabel created pada method CreateAccount.NewbankAccount.Pada bagian tersebut tambahkan kalimat yang memanggil method Populatepada variabel created untuk melewatkan number dan balance sebagaiargumen. Maka seperti berikut kodenya:publicstaticBankAccountnewBankAccount()

    {

    BankAccountcreated = newBankAccount();//created.accNo = 123; //error di sini

    //created.accBal = 3000000;

    //created.accType = AccountType.Checking;

    created.Populate(123, 3000000);

    returncreated;

    }

    5. Simpan hasil kerja Anda.6. Lakukan compile pada program. Bila mengalami kegagalan hal itu disebabkan

    adanya tiga kalimat pada class MainPageyang mengakses secara langsungke bagian BankAccount. Anda perlu menambahkan tiga buah method keBankAccount yang bersifat public yang mengembalikan nilai dari tiga fieldtadi. Lakukan langkah berikut :

    a. Pelajari file MainPage.xaml.cs, yang terletak di bagian bawahMainPage.xaml seperti berikut ini. Tampak ada error di halamantersebut.

  • 8/13/2019 Modul6 Class

    5/16

    b. Tambahkan method ke class BankAccountyang public dan non-static

    yaitu Number. Method ini akan mengembalikan nilai bertipe long dantidak memerlukan parameter. Method ini akan mengembalikan nilai dari

    field accNo seperti yang ditunjukan berikut :classBankAccount

    {

    publicvoidPopulate(longnumber, decimalbalance){

    accNo = number;

    accBal = balance;

    accType = AccountType.Checking;}

    publiclongNumber()

    {

    returnaccNo;

    }

    ..............................c. Tambahkan method ke BankAccountyang public dan non-static yaitubalanceseperti yang ditampilkan pada kode berikut. Method ini akan

    mengembalikan nilai desimal dan tidak memerlukan parameter. Methodini akan mengembalikan nilai dari field accBal.classBankAccount

    {

    publicvoidPopulate(longnumber, decimalbalance)

    {

    accNo = number;

    accBal = balance;

    accType = AccountType.Checking;

    }

    publiclongNumber()

    {

    returnaccNo;}

    publicdecimalBalance()

    {

    returnaccBal;

    }

    .........................d. Tambahkan Tambahkan method ke BankAccountyang public dan non-

    static yaitu Type seperti yang ditampilkan pada kode berikut. Methodini akan mengembalikan sebuah AccountType dan tidak memerlukanparameter. Method ini akan mengembalikan nilai dari field accType.classBankAccount

    {

    publicvoidPopulate(longnumber, decimalbalance){

  • 8/13/2019 Modul6 Class

    6/16

    accNo = number;

    accBal = balance;

    accType = AccountType.Checking;

    }

    publiclongNumber(){

    returnaccNo;}

    publicdecimalBalance()

    {

    returnaccBal;

    }publicAccountTypeType()

    {

    returnaccType;

    }e. Akhirnya ganti kalimat pada method MainPage pada MainPage.xaml.cs

    yang mengakses secara langsung field BankAccount yang bersifatprivate dengan tiga kalimat yang baru dibuat seperti berikut :

    publicMainPage(){

    this.InitializeComponent();

    BankAccountcreated = CreateAccount.newBankAccount();

    accno.Text = created.Number().ToString();

    accbal.Text = created.Balance().ToString();

    acctype.Text = created.Type().ToString();

    }7. Simpan hasil kerja Anda8. Lakukan compile pada program dan benahi kesalahan yang ada. Jalankan

    program. Pastikan data yang dimasukkan pada kode dan dilewatkan ke

    method BankAccount.Populate bisa dibaca kembali dan ditampilkan denganbenar pada MainPage. Hasil akhir compile masih sama seperti sebelumnya. Untuk melakukan enkapsulasi lebih jauh pada class BankAccount

    1. Ubah method BankAccount.Type sehingga bisa mengembalikan tipe dariaccount sebagai string bila yang sebelumnya berupa tipe enum AccountTypeseperti berikut :classBankAccount

    {

    publicvoidPopulate(longnumber, decimalbalance){

    accNo = number;

    accBal = balance;

    accType = AccountType.Checking;

    }

    publicstringNumber()

    {

    returnaccNo.ToString();

    }

    publicstringBalance(){

    returnaccBal.ToString();

    }

    publicstringType()

    {

    returnaccType.ToString();}

  • 8/13/2019 Modul6 Class

    7/16

    .................................2. Hapus properti .ToString ) pada MainPage.xaml.cs, sehingga menjadi seperti

    berikut ini.publicMainPage()

    {

    this.InitializeComponent();

    BankAccountcreated = CreateAccount.newBankAccount();accno.Text = created.Number();accbal.Text = created.Balance();

    acctype.Text = created.Type();

    }3. Simpan hasil kerja Anda.4. Lakukan compile pada program dan benahi kesalahan yang ada. Jalankan

    program. Pastikan data yang dimasukkan dan dilewatkan ke methodBankAccount.Populate bisa dibaca kembali dan ditampilkan dengan benarpada MainPage.

    Untuk menampilkan daftar dari akun bank yang kita masukkan1. Buka file MainPage.xaml untuk menambahkan sebuah kontrol yang dapat

    menampilkan daftar akun bank, yaitu ListView. ListView tersebut akan secaraotomatis membuat banyak Grid, yang jumlahnya sesuai dengan yang kita

    masukkan nantinya.

    2. Berikut ini merupakan kode XAML lengkap untuk kontrol ListView. Sepertibiasa, tambahkan kode ini di bawah kode definisi Gridutama.

    ......................... (nanti akan kita isi kode Grid)

    3. Dalam bracket DataTemplate, pindahkan kode Gridyang sebelumnya sudah

    kita buat untuk menampilkan data sebelumnya, sehingga menjadi seperti

    berikut ini.

  • 8/13/2019 Modul6 Class

    8/16

    4. Dalam bracket DataTemplate, pindahkan kode Gridyang sebelumnya sudahkita buat untuk menampilkan data sebelumnya, sehingga menjadi sepertiberikut ini.

    5. Lakukan compile pada program dan hasilnya akan gagal padaMainPage.xaml.cs, dikarenakan kontrol accno, accbal, dan acctypesudah tidakada lagi pada MainPage.xaml. Seluruh kontrol tersebut sudah dipindahkan kedalam DataTemplate.

    6. Ganti kode pada MainPage.xaml.csmenjadi sebuah daftar. Daftar ini dapatmemuat lebih dari 1 BankAccount, tetapi kali ini akan dibuat 1 akun saja.

    Berikut ini kode setelah diubah menjadi daftar.publicMainPage()

    {

    this.InitializeComponent();

    List bankAccount = newList();

    BankAccountcreated = CreateAccount.newBankAccount();

    //accno.Text = created.Number();//accbal.Text = created.Balance() ;

    //acctype.Text = created.Type();bankAccount.Add(created);

    BankAccList.ItemsSource = bankAccount;

    }7. Buka class BankAccount dan ubah variabel accNo, accBal, dan accType

    kembali menjadi bertipe publicdan ditambah dengan getter + setter. Propertiini ditambah guna meneruskan variabel ke dalam seluruh kelas yang adapada namespace CreateAccount. Kode pada class BankAccount setelahdiubah:classBankAccount

    {

    publicvoidPopulate(longnumber, decimalbalance)

    {accNo = number;

    accBal = balance;

    accType = AccountType.Checking;}

    publicstringNumber()

    {returnaccNo.ToString();

    }

    publicstringBalance()

    {

    returnaccBal.ToString();

    }

    publicstringType(){

    returnaccType.ToString();

    }

    publiclongaccNo { get; set; }

    publicdecimalaccBal {get; set;}publicAccountTypeaccType { get; set; }

    }8. Lakukan compile kembali pada program dan pastikan aplikasi tampil sebagai

    daftar, seperti berikut ini.

  • 8/13/2019 Modul6 Class

    9/16

    9. Coba tambahkan BankAccount lainnya dengan memanfaatkan fungsi Addpada MainPage.xaml.csseperti kode di bawah ini.bankAccount.Add(created);bankAccount.Add(newBankAccount{ accNo = 124, accBal = 5000000, accType =

    AccountType.Deposit });

    10.Berikut ini merupakan capture aplikasi setelah data baru ditambahkan.

    LATIHAN 2: MENGHASILKAN ACCOUNT NUMBER

    Pada latihan kali ini Anda akan memodifikasi class BankAccount dari latihan 1 sehinggabisa menghasilkan account number yang unik. Anda akan melakukan hal ini dengan

    menggunakan variabel static pada class di BankAccountdan method yang menaikkandan mengembalikan nilai dari variabel tersebut. Ketika uji ketahan membuat account

    baru, maka akan memanggil method tersebut untuk menghasilkan account number.

    Kemudian nantinya akan memanggil method dari class BankAccountyang nantinya akanmengatur angka dari account, yang dilewatkan sebagai parameter.

    Untuk memastikan setiap angka di BankAccount adalah unik.1. Buka project UniqueNumbers.sln di folder HOL SOLUTION\BAB 6\STARTER.2. Tambahkan variabel bertipe long yang bersifat private dan static dengan

    nama nextAccNo ke class BankAccount seperti berikut :classBankAccount

    {................................

    publiclongaccNo { get; set; }publicdecimalaccBal {get; set;}

    publicAccountTypeaccType { get; set; }

    publicstaticlongnextAccNo { get; set; }

    }

    3. Tambahkan method bersifat public static yaitu NextNumber ke classBankAccount, seperti yang ditampilkan pada kode berikut. Method ini akanmengembalikan sebuah nilai bertipe long dan tidak meminta parameter.

    Nantinya akan mengembalikan nilai dari field nextAccNo sebagai tambahan

    untuk menaikkan field ini.classBankAccount

    {

    ......................publicstaticlongNextNumber

  • 8/13/2019 Modul6 Class

    10/16

    {

    get{

    returnnextAccNo++;

    }set

    {

    }}privatelongaccNo { get; set; }

    privatedecimalaccBal {get; set;}privateAccountTypeaccType { get; set; }

    privatestaticlongnextAccNo { get; set; }}

    4. Ubah method Populate pada BankAccount untuk mengadaptasi penomoranakun unik. Variabel accNo akan menuju ke penomoran selanjutnya setelahuser berhasil memasukkan nilai balance (accBal). Kode pada method Populate

    menjadi seperti berikut ini.publicvoidPopulate(decimalbalance)

    {

    accNo = NextNumber;

    accBal = balance;accType = AccountType.Checking;

    }5. Tampak ada error pada aplikasi pada saat method Populate diubah, yaitu

    pada class CreateAccount.cs. Kita dapat mengubahnya seperti berikut.publicstaticBankAccountnewBankAccount(decimalbalance)

    {

    BankAccountcreated = newBankAccount();

    //created.accNo = 123;

    //created.accBal = 3000000;//created.accType = AccountType.Checking;

    created.Populate(balance);//sebelumnya:

    //created.Populate(123,balance)

    returncreated;

    }6. Lakukan compile pada aplikasi. Tampak aplikasi dapat berjalan, tetapi belum

    sesuai yang diinginkan. Daftar akun bank masih statis dan tidak terjadi

    perubahan apabila kita memasukkan sejumlah angka dan menekan tombol

    create new.7. Agar tombol merespon ketika kita menekan tombol tersebut, maka langkah

    yang dapat kita lakukan adalah memindahkan kode yang berada pada fungsi

    MainPage ke dalam Button_Click. Dapat dilihat kode sebelumnya adalahseperti ini:publicMainPage()

    {

    this.InitializeComponent();

    BankAccountcreated = CreateAccount.newBankAccount(3000000);

    bankAccount.Add(created);

    BankAccList.ItemsSource = null;

    BankAccList.ItemsSource = bankAccount;

    }

    privatevoidButton_Click(objectsender, RoutedEventArgse)

    {}

  • 8/13/2019 Modul6 Class

    11/16

    Setelah kita pindahkan ke dalam fungsi Button_Click:publicMainPage()

    {

    this.InitializeComponent();

    }

    privatevoidButton_Click(objectsender, RoutedEventArgse)

    {

    BankAccountcreated = CreateAccount.newBankAccount(3000000);

    bankAccount.Add(created);

    BankAccList.ItemsSource = null;

    BankAccList.ItemsSource = bankAccount;

    }8. Lakukan compile kembali pada aplikasi. Tampak penomoran sudah benar,

    tetapi amount of balance yang kita masukkan ke dalam TextBox tidak

    terbaca. Aplikasi akan terus mengeluarkan angka sebanyak 3000000 terusmenerus.

    9. Hal ini dapat diubah pada MainPage.xaml.cs pada fungsi Button_Click,sehingga kode akhir menjadi seperti berikut.privatevoidButton_Click(objectsender, RoutedEventArgse)

    {

    //BankAccount created = CreateAccount.newBankAccount(3000000);

    BankAccountcreated =CreateAccount.newBankAccount(decimal.Parse(balanceTextBox.Text)

    );

    bankAccount.Add(created);

    BankAccList.ItemsSource = null;

    BankAccList.ItemsSource = bankAccount;

    }10.Simpan hasil kerja Anda.11.Lakukan proses compile pada program dan benahi kesalahan yang ada.

    Jalankan program. Pastikan setiap account yang ditambah mempunyai nomor

    yang unik dan balance yang dimasukkan sesuai keinginan user.

    Berikut hasil capture program:

  • 8/13/2019 Modul6 Class

    12/16

    LATIHAN 3 : MENGGUNAKAN VARIABEL BERTIPE OBJECT UNTUK MELAKUKAN

    PERHITUNGAN PENARIKAN DAN DEPOSITO

    Pada latihan kali ini, Anda akan menambahkan dua buah method ke class Account:Withdraw dan Deposit.Withdraw akan mengambil parameter bertipe decimal dan akan mengurangi jumlah yangdiberikan oleh balance. Namun, sebelum memotongnya parameter tersebut akan

    melakukan pengecekan terlebih dahulu untuk memastikan bahwa dana yang dibutuhkan

    tersedia, karena account tidak mengijinkan untuk kondisi pengambilan yang berlebihan.Parameter ini akan mengambalikan nilai bool yang member indikasi apakan pengambilan

    dana sudah berhasil.Deposit juga akan mengambil nilai parameter bertipe decimal yang nilainya akanditambahkan ke balance pada account. Parameter ini akan memberikan nilai terbaru daribalance

    Untuk menambahkan method Deposit ke class BankAccount1. Buka project MoreMethods.slnpada folder HOL SOLUTION\BAB 6\STARTER.2. Tambahkan kode untuk membaca item yang dipilih pada daftar BankAccount

    yang kita masukkan pada aplikasi. Kode ini diletakkan pada methodDeposit_Button_Clickpada MainPage.xaml.cs.privatevoidDeposit_Button_Click(objectsender, RoutedEventArgse)

    {BankAccount SelectedItemFromList = (BankAccList.SelectedItem)

    asBankAccount;

    ......................

    }

    3. Tambahkan fungsi untuk mengambil nilai dari sejumlah deposit yang ingin kitatambahkan ke dalam BankAccount. Nilai deposit akan ditambahkan sesuai

    jumlah yang kita masukkan pada TextBox yang sama. Penambahan dilakukanantara nilai balance yang lama (oldamount) dengan yang baru (amount).Kode selanjutnya berfungsi untuk menambahkan atau mengubah nilai sebuahvariabel yang terletak di dalam obyek. Setelah ditambah, nilai yang baru akan

    diletakkan dan ditampilkan kembali di dalam daftar BankAccList. Letakkankode ini di dalam method Deposit_Button_Click yang sudah disediakan didalam MainPage.xaml.cs.privatevoidDeposit_Button_Click(objectsender, RoutedEventArgse)

    {

    BankAccountSelectedItemFromList = (BankAccList.SelectedItem)

    asBankAccount;decimalamount = decimal.Parse(balanceTextBox.Text);

    decimaloldamount =

    decimal.Parse(SelectedItemFromList.Balance);

    amount += oldamount;

    bankAccount.First(item => item.Number ==

    SelectedItemFromList.Number).accBal = amount; //error di siniBankAccList.ItemsSource = null;

    BankAccList.ItemsSource = bankAccount;

    }4. Tampak akan ada error seperti di dalam kode di atas. Hal tersebut

    dikarenakan variabel accBalmasih bersifat privat. Ganti variabel accBalpadaclass BankAccountmenjadi bertipe public.

  • 8/13/2019 Modul6 Class

    13/16

    classBankAccount

    {

    ............................

    publicdecimalaccBal {get; set;}

    .............................}

    5. Simpan hasil kerja Anda.6. Lakukan pengujian dengan cara menambahkan 1 atau 2 buah BankAccount.Masukkan nilai balance pada TextBox seperti sebelumnya, kemudian pilih

    salah satu akun dari daftar. Masukkan kembali jumlah diinginkan untukdidepositokan pada TextBox yang sama, lalu tekan Deposit to SelectedItem.Perhatikan apakah saldo bertambah. Pastikan daftar akun bank terpilihseperti di bawah ini sebelum melakukan deposito, atau akan ada kegagalandalam proses.Sebelum dideposito (kondisi item terpilih):

    Setelah deposito sebesar 50000:

    Catatan: Jika masih ada waktu tersisa, Anda mungkin ingin menambahkan kemethod Deposit_Button_Click untuk pengecekan apakah daftar

  • 8/13/2019 Modul6 Class

    14/16

    sudah terpilih atau belum, agar tidak terjadi kegagalan apabila

    pengguna belum/lupa memilih daftar akun yang ingindidepositokan.

    Untuk menambahkan method Withdraw ke class BankAccount1. Tambahkan fungsi yang sama seperti melakukan deposito, tetapi dengan

    fungsi kebalikannya, yaitu penarikan sejumlah uang. Fungsi ini digunakanuntuk menarik uang yang berada di dalam akun bank. Tambahkan kode

    seperti di bawah ini pada method Withdraw_Button_Click.privatevoidWithdraw_Button_Click(objectsender, RoutedEventArgse)

    {

    BankAccountSelectedItemFromList = (BankAccList.SelectedItem) as

    BankAccount;

    decimalamount = decimal.Parse(balanceTextBox.Text);

    decimaloldamount = decimal.Parse(SelectedItemFromList.Balance);

    oldamount -= amount;

    bankAccount.First(item => item.Number ==SelectedItemFromList.Number).accBal = oldamount;

    BankAccList.ItemsSource = null;BankAccList.ItemsSource = bankAccount;

    }2. Lakukan pengujian untuk method Withdraw_Button_Click dengan cara sama

    seperti melakukan pengujian method Deposit_Button_Click. Amati hal yangterjadi ketika penarikan dilakukan pada akun bank yang mempunyai balanceyang lebih kecil.

    3. Tambahkan pada method yang sama, kode untuk menghindari adanyapenarikan dengan jumlah uang berlebih dibandingkan dengan saldo yang ada.

    Aplikasi akan melakukan pengecekan apakah saldo setelah hasil penarikanbernilai negatif. Apabila bernilai negatif, maka aplikasi akan langsung

    menghentikan perhitungan dan menampilkan pesan kepada pengguna bahwa

    saldo yang ada tidak mencukupi. Hasil akhir kode menjadi seperti berikut ini.privatevoidWithdraw_Button_Click(objectsender, RoutedEventArgse)

    {

    try

    {

    BankAccountSelectedItemFromList =

    (BankAccList.SelectedItem) asBankAccount;

    decimalamount = decimal.Parse(balanceTextBox.Text);

    decimaloldamount =

    decimal.Parse(SelectedItemFromList.Balance);

    oldamount -= amount;

    if(oldamount < 0)

    {

    thrownewException();

    }

    bankAccount.First(item => item.Number ==

    SelectedItemFromList.Number).accBal = oldamount;BankAccList.ItemsSource = null;

    BankAccList.ItemsSource = bankAccount;

    }

    catch

    {

    balanceTextBox.Text = "Insufficient funds!";

    }

  • 8/13/2019 Modul6 Class

    15/16

    }4. Simpan hasil kerja Anda.5. Lakukan proses compile program dan benahi kesalahan yang ada. Jalankan

    program. Pastikan penarikan bekerja sesuai dengan harapan. Uji coba

    penarikan yang berhasil dan gagal.

    6. Hasil akhir capture aplikasi adalah sebagai berikut.Sebelum penarikan:

    Setelah penarikan sejumlah 500000 pada akun nomor 1:

    Jika gagal:

  • 8/13/2019 Modul6 Class

    16/16

    PERTANYAAN PEMAHAMAN

    1. Apakah perbedaan antara class dengan struct.2. Apakah yang dimaksud dengan access modifier dan kemukakan berbagai jenis access

    modfier yang terdapat pada C# berserta penjelasannya. (public, private, dan

    sebagainya).