C# – Structures
Di C#, ada tipe data yang namanya struktur yang digunakan untuk menyimpan data dengan tipe data nilai. Jadi, kamu bisa pakai satu variabel buat nyimpen data yang berhubungan dengan tipe data yang berbeda. Kalo mau bikin struktur, tinggal pake kata kunci struct.
Struktur ini biasanya dipakai buat mewakili sebuah data yang mirip dengan sebuah rekaman. Misalnya, kamu mau nyimpen data buku-buku yang ada di perpustakaanmu. Kamu bisa nyimpen atribut-atribut berikut untuk setiap buku:
- Judul
- Penulis
- Subjek
- ID Buku
Defining a Structure
Untuk mendefinisikan struktur, Kamu harus menggunakan pernyataan struct. Pernyataan struct mendefinisikan tipe data baru, dengan lebih dari satu anggota untuk program Kamu.
Contohnya, liat aja cara deklarasi struktur untuk data buku di bawah ini:
struct Books {
public string title;
public string author;
public string subject;
public int book_id;
};
Nah, ini dia contoh penggunaan struktur dalam programnya:
using System;
struct Books {
public string title;
public string author;
public string subject;
public int book_id;
};
public class testStructure {
public static void Main(string[] args) {
Books Book1; /* Declare Book1 of type Book */
Books Book2; /* Declare Book2 of type Book */
/* book 1 specification */
Book1.title = "C Programming";
Book1.author = "Nuha Ali";
Book1.subject = "C Programming Tutorial";
Book1.book_id = 6495407;
/* book 2 specification */
Book2.title = "Telecom Billing";
Book2.author = "Zara Ali";
Book2.subject = "Telecom Billing Tutorial";
Book2.book_id = 6495700;
/* print Book1 info */
Console.WriteLine( "Book 1 title : {0}", Book1.title);
Console.WriteLine("Book 1 author : {0}", Book1.author);
Console.WriteLine("Book 1 subject : {0}", Book1.subject);
Console.WriteLine("Book 1 book_id :{0}", Book1.book_id);
/* print Book2 info */
Console.WriteLine("Book 2 title : {0}", Book2.title);
Console.WriteLine("Book 2 author : {0}", Book2.author);
Console.WriteLine("Book 2 subject : {0}", Book2.subject);
Console.WriteLine("Book 2 book_id : {0}", Book2.book_id);
Console.ReadKey();
}
}
Kalo kode di atas di-compile dan dijalankan, hasilnya bakal seperti ini nih:
Book 1 title : C Programming
Book 1 author : Nuha Ali
Book 1 subject : C Programming Tutorial
Book 1 book_id : 6495407
Book 2 title : Telecom Billing
Book 2 author : Zara Ali
Book 2 subject : Telecom Billing Tutorial
Book 2 book_id : 6495700
Features of C# Structures
Kamu udah pake struktur sederhana yang namanya Books. Struktur di C# itu beda banget dari struktur di C atau C++ tradisional. Struktur di C# punya fitur-fitur berikut ini:
- Struktur bisa punya method, field, indexer, properti, operator method, dan event.
- Struktur bisa punya constructor yang didefinisikan, tapi nggak bisa punya destructor. Tapi, kamu nggak bisa bikin constructor default untuk struktur. Constructor default-nya udah didefinisikan secara otomatis dan nggak bisa diubah.
- Beda sama kelas, struktur nggak bisa mewarisi struktur atau kelas lain.
- Struktur nggak bisa digunakan sebagai dasar untuk struktur atau kelas lain.
- Satu struktur bisa mengimplementasikan satu atau lebih interface.
- Member struktur nggak bisa dideklarasikan sebagai abstract, virtual, atau protected.
- Kalo kamu bikin objek struktur pake operator New, objeknya dibuat dan constructor yang sesuai dipanggil. Beda sama kelas, struktur bisa di-instantiate tanpa pake operator New.
- Kalo operator New nggak dipake, field-fieldnya nggak ada nilai dan objeknya nggak bisa digunakan sampai semua field diinisialisasi.
Class versus Structure
Kelas dan struktur punya perbedaan-perbedaan dasar berikut ini:
- kelas itu tipe data referensi, sedangkan struktur itu tipe data nilai
- struktur nggak mendukung pewarisan (inheritance)
- struktur nggak bisa punya constructor default
Dengan mempertimbangkan pembahasan di atas, kita bisa ubah lagi contoh sebelumnya:
using System;
struct Books {
private string title;
private string author;
private string subject;
private int book_id;
public void getValues(string t, string a, string s, int id) {
title = t;
author = a;
subject = s;
book_id = id;
}
public void display() {
Console.WriteLine("Title : {0}", title);
Console.WriteLine("Author : {0}", author);
Console.WriteLine("Subject : {0}", subject);
Console.WriteLine("Book_id :{0}", book_id);
}
};
public class testStructure {
public static void Main(string[] args) {
Books Book1 = new Books(); /* Declare Book1 of type Book */
Books Book2 = new Books(); /* Declare Book2 of type Book */
/* book 1 specification */
Book1.getValues("C Programming",
"Nuha Ali", "C Programming Tutorial",6495407);
/* book 2 specification */
Book2.getValues("Telecom Billing",
"Zara Ali", "Telecom Billing Tutorial", 6495700);
/* print Book1 info */
Book1.display();
/* print Book2 info */
Book2.display();
Console.ReadKey();
}
}
Kalo kode di atas di-compile dan dijalankan, hasilnya bakal seperti ini nih:
Title : C Programming
Author : Nuha Ali
Subject : C Programming Tutorial
Book_id : 6495407
Title : Telecom Billing
Author : Zara Ali
Subject : Telecom Billing Tutorial
Book_id : 6495700