Anda di halaman 1dari 8

MODUL 2 : MEMBUAT DAN MENGGUNAKAN TIPE

I.

PENDAHULUAN
A. Tujuan
1. Mampu membuat suatu tipe data baru
2. Mampu mendefinisikan dan menggunakan variabel
B. Dasar Teori
Enum dan struct adalah tipe data value. Enum adalah tipe data yang dapat
mempunyai banyak member. Sebuah enum secara default dideklarasikan
bertipe int sehingga semua member pada enum didefinisikan sebagai int
dan haru diberi nilai bertipe sama dengan deklarasi. Sebenarnya sebuah
enum harus dideklasrasikan sebagai tipe data integral berupa tipe data
sbyte, byte, short, ushort, int, uint, long, ulong, atau char. Nilai dari
member enum dapatdiinisialisasi saat deklarasi.
enum Angka { Nol, Satu, Dua, Tiga, Empat, Lima, Enam, Tujuh, Delapan,
Sembilan }.
Struct adalah tipe data bentukan yang berisi kumpulan variabel-variabel
yang bernaung dalam satu nama yang sama dan memiliki kaitan satu
sama lain.
Berbeda dengan array hanya berupa kumpulan variabel yang bertipe
datasama, struct bisa memiliki variabel-variabel yang bertipe data sama
atau
berbeda, bahkan bisa menyimpan variabel yang bertipe data array atau
struct itu sendiri.
Bentuk umum dari struct:
typedef struct{
tipe_data <nama_var>;
tipe_data <nama_var>;
.... }
struct {
char NIM[8];
char nama[50];
float ipk;
} mhs;
Cara penggunaan struct dan pengaksesan elemen-elemennya:
- Penggunaan/pemakaian tipe data struct dilakukan dengan membuat
-

suatu variabel yang bertipe data struct tersebut


Pengaksesan elemen struct dilakukan secara individual dengan

menyebutkan nama variabel struct diikuti dengan operator titik (.)


Misalnya dengan struct mahasiswa seperti contoh di atas, kita akan
akses elemen-elemennya seperti contoh berikut:

II.

PEMBAHASAN
a. Latihan 1
- Analisis Kode
1. using System;
Merupakan referensi dari namespace yang bernama system yang telah
disediakan oleh .NET. Namespace ini berisi kelas dasar seperti console
dan kelas lain lain yang mendefinisikan nilai dan referensi jenis, event
dan event handler, interface, atribut, dan exception.
2. using System.Collections.Generic;
Namespace

yang

terdiri

dari

interface

dan

class-class

yang

mendefinisikan koleksi generik.


3. using System.Linq;
Linq adalah Language Integrated Query yaitu query yang terintegrasi
terhadap suatu Bahasa Pemrograman. Syntax di atas merupakan
referensi namespace yang didalamnya terdapat kelas-kelas yang
berhubungan dengan Linq.
4. using System.Text;
Namespace yang berisi class untuk mengubah blok karakter dari dan ke
blok byte dan class lain untuk memanipulasi format String.
5. namespace BankAccount
Merupakan himpunan dari class-class yang saling berhubungan. Pada
program ini, namespace diberi nama BankAccount yang nantinya akan
memiliki satu atau lebih class.

6.

public enum AccountType {Checking, Deposit}


Mendeklarasikan variabel AccounType yang bertipe data enum dan

memiliki atau berisi nilai Checking dan Deposite.


7. class TestAccount
Class merupakan kombinasi dari data(field) dan method-method yang
bertugas mengolah data untuk mencapai hasil sesuai tujuan pembuatan
program. Pada praktikum ini, class diberi nama TestAccount. Class
memiliki suatu sifat inheritance, dimana nanti suatu object yang ada di
class TestAccount akan memiliki sifat sama dengan class TestAccount.
8. static void Main()
Syntax di atas adalah method Main() yang harus selalu ada pada sebuah
program C#. Method merupakan kumpulan intruksi yang akan

menghasilkan sesuatu sesuai dengan tujuan program. Pada method


Main ini, tidak memiliki nilai kembalian maka ditulis void.
9. AccountType goldAccount;
Mendeklarasikan variabel goldAccount yang bertipe data AccountType.
10. AccountType platinumAccount;
Mendeklarasikan variabel platinumAccount yang bertipe data
AccountType.
11. goldAccount = AccountType.Checking;
Memberikan nilai pada variabel accType dengan nilai Checking. yang
ada di AccountType.
12. platinumAccount = AccountType.Deposit;
Memberikan nilai pada variabel accType dengan nilai Deposit. yang
ada di AccountType
13. Console.WriteLine("The Customer Account Type is {0}",
goldAccount);
Perintah untuk menampilkan suatu teks. {0} berfungsi untuk
menunjukkan bahwa yang akan ditampilkan adalah isi dari variabel
goldAccount.
14. Console.WriteLine("The Customer Account Type is {0}",
platinumAccount);
Perintah untuk menampilkan suatu teks. {0} berfungsi untuk
menunjukkan bahwa yang akan ditampilkan adalah isi dari variabel
platinumAccount.
15. Console.ReadLine();
fungsi untuk membaca output program dan menampilkannya pada
window debugger.
-

Analisis Hasil Eksekusi

Berdasarkan hasil eksekusi di atas terdapat dua teks The Customer


Account Type is .... yang menyebutkan isi dari variabel goldAccount
dan platinumAccount yaitu Checking dan Deposit.
b. Latihan 2
- Analisis Kode

1. namespace StructType
Merupakan himpunan dari class-class yang saling berhubungan. Pada
program ini, namespace diberi nama StructType yang nantinya akan
memiliki satu atau lebih class.
2. public enum AccountType { Checking, Deposit }
Mendeklarasikan variabel AccounType yang bertipe data enum dan
memiliki atau berisi nilai Checking dan Deposite.
3. public struct BankAccount
Mendeklarasikan variabel BankAccoutn dengan tipe data struct.
4. public long accNo;
public decimal accBal;
public AccountType accType;
Mendeklarasikan variabel accNo dengan tipe data long, accBal dengan
tipe data decimal dan accType.
5. class TestAccount
Class merupakan kombinasi dari data(field) dan method-method yang
bertugas mengolah data untuk mencapai hasil sesuai tujuan pembuatan
program. Pada praktikum ini, class diberi nama TestAccount. Class
memiliki suatu sifat inheritance, dimana nanti suatu object yang ada di
class TestAccount akan memiliki sifat sama dengan class TestAccount.
6. static void Main()
Syntax di atas adalah method Main() yang harus selalu ada pada sebuah
program C#. Method merupakan kumpulan intruksi yang akan
menghasilkan sesuatu sesuai dengan tujuan program. Pada method
Main ini, tidak memiliki nilai kembalian maka ditulis void.
7. BankAccount goldAccount;
Mendeklarasikan variabel goldAccount yang bertipe data BankAccount.
8. goldAccount.accType = AccountType.Checking;
Memberikan nilai pada variabel accType dengan nilai Checking yang
ada di AccountType.
9. goldAccount.accBal = (decimal)3200.00;
Memberikan nilai pada variabel accBal dengan nilai desimal 3200.
10. goldAccount.accNo = 123;
Memberikan nilai pada variabel accNo dengan nilai 123.
11. Console.WriteLine("*** Account Summary ***");
Perintah untuk menampilkan teks ***Account Summary***.
12. Console.WriteLine("Acct Number {0}", goldAccount.accNo);
Perintah untuk menampilkan nilai dari variabel accNo dan ditampilkan
pada indeks pertama
13. Console.WriteLine("Acct Type {0}", goldAccount.accType);

Perintah untuk menampilkan nilai dari variabel accType dan


ditampilkan pada indeks pertama.
14. Console.WriteLine("Acct Balance ${0}", goldAccount.accBal);
Perintah untuk menampilkan nilai dari variabel accBal dan ditampilkan
pada indeks pertama.
15. Console.ReadLine();
fungsi untuk membaca output program dan menampilkannya pada
window debugger.
-

Analisis hasil eksekusi


Gambar di atas merupakan hasil eksekusi latihan kedua. Terdapat

beberapa teks yang merupakan hasil dari perintah Console.WriteLine.


c. Latihan 3
- Analisis Kode
1. namespace StructType
Merupakan himpunan dari class-class yang saling berhubungan. Pada
program ini, namespace diberi nama StructType yang nantinya akan
memiliki satu atau lebih class.
2. public enum AccountType { Checking, Deposit }
Mendeklarasikan variabel AccounType yang bertipe data enum dan
memiliki atau berisi nilai Checking dan Deposite.
3. public struct BankAccount
Mendeklarasikan variabel BankAccoutn dnegan tipe data struct.
4. public long accNo;
public decimal accBal;
public AccountType accType;
Mendeklarasikan variabel accNo dengan tipe data long, accBal dengan
tipe data decimal dan accType.
5. class TestAccount
Class merupakan kombinasi dari data(field) dan method-method yang
bertugas mengolah data untuk mencapai hasil sesuai tujuan pembuatan

program. Pada praktikum ini, class diberi nama TestAccount. Class


memiliki suatu sifat inheritance, dimana nanti suatu object yang ada di
class TestAccount akan memiliki sifat sama dengan class TestAccount.
6. static void Main()
Syntax di atas adalah method Main() yang harus selalu ada pada sebuah
program C#. Method merupakan kumpulan intruksi yang akan
menghasilkan sesuatu sesuai dengan tujuan program. Pada method
Main ini, tidak memiliki nilai kembalian maka ditulis void.
7. BankAccount goldAccount;
8. Mendeklarasikan variabel goldAccount yang bertipe data BankAccount.
9. Console.Write("Enter account number : ");
Menampilkan teks pada console.
10. goldAccount.accNo = long.Parse(Console.ReadLine());
Mengambil nilai dari input keyboard dan disimpan di dalam variabel
accNo.
11. goldAccount.accType = AccountType.Checking;
12. Memberikan nilai pada variabel accType dengan nilai Checking yang
ada di AccountType
13. goldAccount.accBal = (decimal)3200.00;
Memberikan nilai pada variabel accBal dengan nilai desimal 3200.
14. goldAccount.accNo = 123;
Memberikan nilai pada variabel accNo dengan nilai 123.
15. Console.WriteLine("*** Account Summary ***");
Perintah untuk menampilkan teks ***Account Summary***.
16. Console.WriteLine("Acct Number {0}", goldAccount.accNo);
Perintah untuk menampilkan nilai dari variabel accNo dan ditampilkan
pada indeks pertama.
17. Console.WriteLine("Acct Type {0}", goldAccount.accType);
Perintah untuk menampilkan nilai dari variabel accType dan
ditampilkan pada indeks pertama.
18. Console.WriteLine("Acct Balance ${0}", goldAccount.accBal);
Perintah untuk menampilkan nilai dari variabel accBal dan ditampilkan
pada indeks pertama.
19. Console.ReadLine();
fungsi untuk membaca output program dan menampilkannya pada
window debugger.
-

Analisis Hasil Eksekusi

Perbedaan hasil eksekusi dari program Latihan 2 yaitu adanya accNo


yang berasal dari input keyboard oleh user yang kemudian ditampilkan
di console.
III.
-

JAWABAN PERTANYAAN
1. 3 manfaat Enum :
Enum menyediakan mekanisme yang lebih efisien untuk bekerja
dengan nilainilai statis yang dapat dibaca, dipertahankan dan
dieksekusi karena sebuah enum pada dasarnya merupakan kumpulan

konstanta yang mempunyai nama.


Menyimpan nilai konstanta dan mengorganisasi beberapa konstanta

berasar scope nya.


Client code bisa ditentukan dengan sangat jelas, untuk menentukan
nilai apa saja yang berlaku pada variabel.

2.

Perbedaan Struct dan Class


Struct
Bermanfaat
penggunaan

strutur

untuk Tidak

dari

alokasi

data memori apabila object tidak

yang kecil
Value Type
Tidak terdapat inheritance
Meng-inherit

Class
terdapat

digunakan
Reference Type
Terdapat inheritance

dan

polymorphism
type Membuat instance dari class,

object
yang diberi nama object
Penggunaan struct lebih efisien saat digunakan dalam program
yang tidak begitu kompleks. Kelebihan struct dibandingkan
dengan class 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.
3. Kelemahan dan Kelebihan Struct
a. Kelebihan Struct :
- Light weight atau lebih ringan karena hanya sebagai
value.
- Berguna untuk struktur data kecil
- Tidak membutuhkan tumpukan alokasi
- Dapat dijadikan instance tanpa perlu pendeklarasian new
b. Kelemahan Struct :
- Tidak mendukung inheritance dan polymorphism
- Banyak terjadi boxing unboxing
- Tidak memiliki konstruktor dan destruktor
- Tidak dapat direferensikan

IV.

KESIMPULAN
1. Enumerasi dan struct merupakan tipe data yang di definisikan
sendiri oleh pemrogram.
2. Struct berbeda dengan class , salah satunya karena struct tidak
mendukung adanya inheritance.
3. Struct adalah tipe data yang dapat melakukan penyimpanan
beberapa data yang saling terkait (seperti Nama, NRP, Alamat),
sebagai suatu kesatuan, sehingga data-data tersebut seakan-akan
menjadi suatu data tunggal atau bisa disebut suatu kumpulan
struktur.
4. Struct dapat terdiri dari banyak variabel yang mempunyai tipe data

V.

yang berbeda-beda.
DAFTAR PUSTAKA
http://icodeformoney.com/tuts/Struct-dan-Enum-pada-CSharp
http://actual-training.com/2008/04/28/penggunaan-struct/