Anda di halaman 1dari 9

BAB I PENDAHULUAN

Tujuan praktikum
o mampu membuat tipe data dengan enum dan struct o mampu mendefenisikan dan menggunakan variabel

Teori Pengantar
Enum adalah tipe data yang mengandung elemen tertentu dan dianggap bernilai integer sesuai dengan urutannya dalam pendeklarasian. Contoh sederhana:
enum Mobil { Jazz, Sedan, Ferari, Mercedez, Stream }

Struct merupakan kumpulan variabel yang dirangkai dalam satu user-specified variable. Keistimewaan struct, dapat mengandung variabel yang berbeda tipe data (membedakannya secara signifikan dengan array). elemen-elemen struct merupakan variabel yang membentuk struct. Contoh sederhana:
struct Motor { int harga; float kecepatan; string jenis; }

Bimo Adi Pradono 31045

www.digizoneku.com

BAB II PEMBAHASAN
Deskripsi Namespace yang digunakan dalam program ini
.NET Namespace System Deskripsi Menyediakan berbagai kelas yang berhubungan dengan data, komputasi matematika, pembangkitan bilangan acak (random), peubah lingkungan (runtime environment), serta penanganan memori menggunakan garbage collection. Menyediakan kelas-kelas pemuat yang dapat di-custom menggunakan tipe-tipe data generic. Namespace yang diperlukan untuk pemrograman LINQ API. Berisi class yang merepresentasikan ASCII dan unicode character encodings. Abstract base classes untuk mengkonvert blok karakter dan blok bytes. Dan kelas pembantu yang memanipulasi dan mem-format objek-objek string tanpa membuat intermediate instances of String.

System.Collections.Generic System.Linq System.Text

1. Pemrograman Dengan Tipe Enum


Untuk pembahasan tiap program yang ditulis sudah ada di tag komentar bahasa C# pada tiap source code program praktikum. ___________ Source Code ___________
using using using using System; System.Collections.Generic; System.Linq; System.Text;

namespace BankAccount { public enum AccountType { Checking, Deposit } //membuat variabel AccountType dengan tipe enum, //bernilai Checking dan Deposit class Program { static void Main(string[] args) {//program utama AccountType goldAccount; AccountType platinumAccount; //deklarasi nilai-nilai variabel yang dipetakan dengan AccountType goldAccount = AccountType.Checking; //memetakan isi AccountType yang nilainya Checking platinumAccount = AccountType.Deposit;

Bimo Adi Pradono 31045

www.digizoneku.com

//memetakan isi AccountType yang nilainya Deposit Console.WriteLine("The customer account type is {0}", goldAccount); //print isi AccountType indeks ke-0 (goldAccount) Console.WriteLine("The customer account type is {0}", platinumAccount); //print isi AccountType indeks ke-0 (platinumAccount) Console.ReadLine(); } } }

___________ Run Program ___________

2. Pemrograman Dengan Tipe Struct


___________ Source Code ___________
using using using using System; System.Collections.Generic; System.Linq; System.Text;

namespace StructType {

Bimo Adi Pradono 31045

www.digizoneku.com

public enum AccountType { Checking, Deposit } //membuat variabel AccountType dengan tipe enum, //bernilai Checking dan Deposit public struct BankAccount //membuat struct BankAccount //public, berarti bisa diwariskan { public long accNo; public decimal accBal; public AccountType accType; //mendeklarasikan tipe di struct BankAccount //public, berarti tipe data yang dideklarasikan bisa diwariskan } class test { static void Main(string[] args) //program utama { BankAccount goldAccount; //mendeklarasikan variabel dengan tipe data BankAccount goldAccount.accType = AccountType.Checking; //memberi nilai pada accType dg nilai AccountType Checking goldAccount.accBal = (decimal)3200.00; //memberi nilai pada accBal dg nilai Desimal 3200,00 goldAccount.accNo = 123; //memberi nilai pada accBal dg nilai 123 Console.WriteLine("Acct Number {0}", goldAccount.accNo); //print isi dari goldAccount.accNo indeks pertama {0} Console.WriteLine("Acct Type {0}", goldAccount.accType); //print isi dari goldAccount.accType indeks pertama {0} Console.WriteLine("Acct Balance ${0}", goldAccount.accBal); //print isi dari goldAccount.accBal indeks pertama {0} Console.ReadLine(); } } }

___________ Run Program ___________

Bimo Adi Pradono 31045

www.digizoneku.com

3. Menambah Program no.2 Dengan Input Dari Keyboard


___________ Source Code ___________
using using using using System; System.Collections.Generic; System.Linq; System.Text;

namespace StructType { public enum AccountType { Checking, Deposit } public struct BankAccount { public long accNo; public decimal accBal; public AccountType accType; } class test { static void Main(string[] args) { BankAccount goldAccount; Console.Write("Enter Account Number"); goldAccount.accNo = long.Parse(Console.ReadLine());

Bimo Adi Pradono 31045

www.digizoneku.com

//mengambil nilai untuk accNo dari input keyboard goldAccount.accType = AccountType.Checking; //memberi nilai pada accType dg nilai AccountType Checking goldAccount.accBal = (decimal)3200.00; //memberi nilai pada accBal dg nilai Desimal 3200 Console.WriteLine("*** Account Summary ***"); Console.WriteLine("Acct Number {0}", goldAccount.accNo); //print isi dari goldAccount.accNo Console.WriteLine("Acct Type {0}", goldAccount.accType); //print isi dari goldAccount.accType Console.WriteLine("Acct Balance ${0}", goldAccount.accBal); //print isi dari goldAccount.accBal Console.ReadLine(); } } }

___________ Run Program ___________

N.B: Perbedaan dengan program no.2 adalah adanya input yang diminta untuk memasukkan nomor account, ketika program no.3 ini dijalankan. Sintaks yang membedakan adalah
goldAccount.accNo = long.Parse(Console.ReadLine()); //mengambil nilai untuk accNo dari input keyboard

Bimo Adi Pradono 31045

www.digizoneku.com

BAB III JAWABAN PERTANYAAN


1. Sebutkan tiga manfaat enum dan tipe-tipe data apakah yang tidak didukung oleh enum?
Jawab: a. Tiga manfaat enum antara lain : Enum menyediakan mekanisme yang lebih efisien untuk bekerja dengan nilai-nilai statis yang dapat dibaca, dipertahankan dan dieksekusi karena sebuah enum pada dasarnya merupakan kumpulan konstanta yang mempunyai nama. Client code bisa ditentukan dengan sangat jelas, untuk menentukan nilai apa saja yang berlaku pada variabel. Dalam Visual Studio, IntelliSense memberikan daftar nilai yang telah didefinisikan. b. Tipe-tipe data yang tidak didukung enum adalah tipe data selain int.

2. Buatlah sebuah tabel perbandingan antara struct dan class, dan mana yang lebih efisien antara struct dan class?
Jawab:
Struct Value Type Tidak mendukung user-specified inheritance Dapat mengimplementasikan interface Berguna untuk struktur data yang kecil Tidak membutuhkan tumpukan alokasi Secara implisit meng-inherit dari type object Class Reference Type Mendukung inheritance dan polymorphism Derived Classes dapat memperluas dan mengkhususkan Base Classes Jika object tidak digunakan, tidak ada alokasi memori yang diberikan Class baru dibuat dengan class declarations Membuat instance dari class, yang dinamakan object

Penggunaan struct lebih efisien saat digunakan dalam di mana program yang ditulis tidak begitu kompleks. Kelebihan struct dibandingkan dengan class, yaitu struct adalah value type dan tidak membutuhkan stack alokasi. Struct lebih efisien jika digunakan pada struktur data yang kecil yang memiliki nilai semantic. Akan tetapi struct tidak mendukung user-specified inheritance dan semua tipe struct hanya menginherit dari tipe objek. Secara umum, class memang biasa digunakan untuk behavior yang lebih kompleks atau data yang dari awal dibuat untuk dimodif setelah object class dibuat. Sedangkan struct paling baik ketika digunakan untuk struktur data yang kecil yang berisi data primer yang tidak dimaksudkan untuk dimodif.

Bimo Adi Pradono 31045

www.digizoneku.com

3. Sebutkan keunggulan struct dibanding class dan kelemahan struct dibanding class!
Jawab: Keunggulan struct: o Lebih ringan karena sifatnya sebagai value o Bisa dijadikan suatu instance meski tanpa deklarasi new o Berguna untuk struktur data yang kecil o Tidak membutuhkan tumpukan alokasi Kelemahan struct: o Tidak dapat direferensikan o Tidak dapat diwariskankan o Tidak memiliki konstruktor dan destructor Keunggulan class: o Digunakan untuk behavior yang lebih kompleks o Mendukung inheritance dan polymorphism o Bertipe reference o Memiliki konstruktor dan destruktor Kelemahan class: o Jika object tidak digunakan, tidak ada alokasi memori yang diberikan o Lebih berat dari struct o Perlu deklarasi new untuk menjadikan suatu instance

Bimo Adi Pradono 31045

www.digizoneku.com

BAB IV KESIMPULAN
1. 2. 3. 4. Enum adalah representasi khusus dari variabel bertipe integer. Enum digunakan sebagai penanda kondisi tertentu (flag). Struct bisa berisi beberapa variabel yang berbeda tipe data. Struct biasa digunakan untuk membuat struktur data, lebih efisien jika digunakan pada struktur data yang kecil. 5. Struct adalah value type dan tidak membutuhkan stack alokasi. 6. Class digunakan pada behavior yang lebih kompleks dibanding dengan struct.

Bimo Adi Pradono 31045

www.digizoneku.com