Archive for » November, 2016 «

C# – Expression & Assignment Statements

Hello 🙂

Ini kelompok kami 🙂  jangan lupa kunjungi blog mereka juga.

Kelompok 9

Martandy : martandy.blog.binusian.org

Kevin Yulias : kevinyou.blog.binusian.org

Eric Khantino Sunardi : ricz97.blog.binusian.org

Gabriellyan Catheline Sanger : gcathelines.blog.binusian.org

 

Topik ketiga yaitu “Expression & Assignment Statements


Pertama akan bahas Arithmetic Expressions : Operators

Operator Precedence Rule

Di dalam suatu operasi dapat terdapat banyak operator.Urutan eksekusi dari operator-operator disebut juga operator precedence. Precedence yang lebih rendah akan dieksekusi belakangan.

Operator Preced

Unary operator ada satu operand

e.g:  i++, i–, ++I, etc.

Binary operator ada dua operand

e.g:  I + J, I – J, J * 2

Ternary operator ada 3 operand

e.g:

int input = Convert.ToInt32(Console.ReadLine()); string classify;

// if-else construction.

if (input > 0) classify = “positive”; else

classify = “negative”;

// ?: conditional operator.

classify = (input > 0) ? “positive” : “negative”;


Berikutnya Arithmetic Operators

Arithmetic operators digunakan untuk operasi aritmatika, seperti tambah, kurang, perkalian, pembagian, untuk list operator aritmatika yang di dukung oleh C# adalah sebagai berikut:

Arit


Assignment Operators

Operator ini digunakan untuk memberi nilai suatu variabel inivariabel =5;

jadi inivariabel yang berada disebelah kiri merupakan variabel yang akan diisi dengan nilai 5 yang ada disebelah kanan

assi eg


Compound Assignment Exprressions

compo


Mixed Mode Assignment 

Penugasan Pernyataan Bisa juga jadi mixed-mode,

Contohnya :

int a = 2, b =3;

float c;

c = a / b ;

Pernyataan Perintah juga bisa di Mixed-Mode

C# hanya mengijinkan Pelebaran Tugas Coercions.


Overloaded Operators

Overloaded Operators merupakan fungsi yang memiliki karakter spesial.Keyword Operators biasanya di ikuti oleh simbol yang mendefinisikan operator tersebut.Sama seperti fungsi yang lainnya. Sebuah operator juga memiliki sebuah return type dan parameter list.

Overloaded Operators digunakan untuk Mendefinisikan / menimpa fungsi operator yang lain.

Contoh :

public static Box operator+ (Box b, Box c)

{

Box box = new Box();

box.length = b.length + c.length;

box.breadth = b.breadth + c.breadth;

box.height = b.height + c.height;

return box;

}


Berikutnya yaitu Relational  & Boolean Expression

Relational expression menentukan apakah suatu value lebih besar, lebih kecil, sama atau tidak dengan value lain.

* The == operator cek apakah kedua operand sama.

* The != operator cek apakah kedua operand tidak sama.

* The <> operator cek apakah kedua operand tidak sama.

* The < operator cek apakah operand pertama lebih kecil dari operand kedua.

* The > operator cek apakah operand pertama lebih besar dari operand kedua.

* The <= operator cek apakah operand pertama lebih kecil sama dengan operand kedua.

* The >= operator cek apakah operand pertama lebih besar sama dengan operand kedua.

 

Boolean-expression adalah expression yang menampilkan hasil dari type bool.


Short Circuit Evaluation

shc


 

Yang terakhir yaitu Type Conversion

* Narrowing Conversion

Adalah mengkonversi objek menjadi jenis yang tidak bisa mencakup semua nilai-nilai dari tipe yang asli.

Contoh : float to int

* Widening Conversion

Adalah sebuah objek diubah ke jenis yang dapat mencakup setidaknya perkiraan untuk semua nilai-nilai dari jenis aslinya.

Contoh : int to float

* Type Conversions : Mixed Mode

Sebuah Pernyataan atau Expresi Mixed-Mode dimana satunya mengoperasikan tipe-tipe lain yang berbeda.Sebuah Coercion adalah sebuah jenis konversi Implisit.Coercion mengurangi keuntungan dari Manfaat Type Checking, yang akan berakibat menganggu keandalannya.Di Sisi lain, Coercion memberikan Fleksibilitas.

Contoh:

double answer;          //answer akan menjadi 3.0 bukan 3.333333

answer = 10 / 3;       //karena operandnya berupa integer

 

 

 

 

 

 

 

C# – Data Types

Hello 🙂

Ini kelompok kami 🙂  jangan lupa kunjungi blog mereka juga.

Kelompok 9

Martandy : martandy.blog.binusian.org

Kevin Yulias : kevinyou.blog.binusian.org

Eric Khantino Sunardi : ricz97.blog.binusian.org

Gabriellyan Catheline Sanger : gcathelines.blog.binusian.org

 

Topik ketiga yaitu “Data Types


Pertama akan dibahas apa itu Array

Array adalah suatu struktur data yang dapat menyimpan data dengan tipe yang sama dan diakses dengan menggunakan suatu indeks yang menunjukan suatu elemen didalam array tersebut.

Dalam pendeklarasian Array, C# mendukung single-dimensional arrays, multi-dimensional arrays (rectangular arrays) dan array-of-arrays.

Array dapat di deklarasi dalam format sebagai berikut :

Single-dimensional arrays:

int[] numbers;

int[] numbers = new int[5] {1, 2, 3, 4, 5};

string[] names = new string[3] {“Okie”, “Nega”, “Ralia”};

Multi-dimensional arrays:

string[,] names;

int[,] numbers = new int[3, 2] { {1, 2}, {3, 4}, {5, 6} };

string[,] siblings = new string[2, 2] { {“Okie”,”Nega”}, {“Ralia”,”Ulvi”} };

Array-of-arrays (jagged):

byte[][] scores;

int[][] numbers = new int[2][] { new int[] {2,3,4}, new int[] {5,6,7,8,9} };

atau int[][] numbers = { new int[] {2,3,4}, new int[] {5,6,7,8,9} };


 

Assosiative Array

Array asosiatif adalah koleksi yang tidak diperintah dari elemen data yang diindeks oleh jumlah yang sama dari nilai-nilai yang disebut kunci.

Kunci User didefinisikan harus disimpan

Dimana sebuah Array tipikalnya berimplementasi sesuai banyak bentuk benda yang sama disimpan dalam suatu blok memori yang berdekatan

Sebuah assosiatif Array harus diimplementasikan melalui sebuah struktur data yang lebih kompleks, seperti sebuah Tabel Hash, Daftar, atau beberapa tipe pemetaannya.


 

Berikutnya yaitu Tuple Types

Sebuah tuple merupakan struktur data yang memiliki karakteristik angka dan mempunyai urutan dari sebuah element.

Sebagai contoh dari tuple adalah struktur data yang terdiri dari 3 element yang digunakan untuk menyimpan sebuah identifier seperti nama seseorang di element pertama, tanggal di element kedua, dan pendapatan di element ke tiga.

Tuple types umumnya digunakan dalam 4 fungsi yaitu:

* Untuk mewakili satu set data. Misalnya, sebuah tuple dapat mewakili sebuah database dan komponen – komponennya dapat mewakili masing-masing data individual dari record.

* Untuk memberikan akses yang mudah dan dapat memanipulasi dari sebuah kumpulan data.

* Untuk mengembalikan beberapa nilai dari sebuah metode tanpa menggunakan parameter out (dalam C #) atau parameter ByRef (dalam Visual Basic).

* Untuk memberikan nilai ke dalam sebuah metode melalui sebuah single parameter. Sebagai contoh metode Thread.Start(Object) memiliki sebuah single parameter yang memungkinkan Anda menyediakan satu nilai ke dalam sebuah metode yang akan di eksekusi pada saat startup. Jika Anda menyediakan Tuple <T1, T2, T3> objek sebagai metode argumen, Anda dapat menyediakan startup dengan tiga item dari data.


Selanjutnya yaitu Type Checking 

Proses verifikasi dan menegakkan kendala jenis-jenis pemeriksaan – dapat terjadi baik pada saat kompilasi (cek statis) atau pada saat run-time. Jika spesifikasi bahasa memerlukan aturan pengetikan yang kuat (misalnya, kurang lebih memungkinkan konversi tipe otomatis yang tidak kehilangan informasi), salah satu dapat merujuk kepada proses seperti strong type, jika tidak, sebagai weak type. Istilah tersebut biasanya tidak digunakan dalam arti yang ketat.

Type checking dibagi menjadi dua yaitu:

* Static Type Checking

* Dynamic Type Checking


Lanjut Union Types

Union types merupakan sebuah nilai yang mungkin memiliki beberapa pernyataan atau format, ataupun merupakan sebuah struktur data yang terdiri dari sebuah variabel yang dapat memegang nilai tersebut. Beberapa bahasa pemrograman mendukung type data khusus .

Dengan kata lain, definisi union types akan menentukan sejumlah nilai dari data primitif didalamnya. Misalnya,, “float atau integer panjang”. Berbeda dengan sebuah record (atau struktur), yang dapat didefinisikan untuk mengandung float dan integer; di union , hanya ada satu nilai pada waktu tertentu.


Pointers, References & Record Type

Pass by reference sendiri merupakan suatu method yang melewatkan alamat dari suatu variabel, bukan isi dari variabel.

Reference Type, nilai yang diacu oleh variable tersebut adalah alamat memori (32-bit atau 64-bit tergantung arsitektur), sedangkan datanya sendiri diletakkan pada lokasi terpisah (heap memory). Jika stack memory dianalogikan sebagai Desktop, membuat variabel jenis Value Type, sama dengan menaruh file di desktop, sedangkan membuat variabel Reference Type, sama dengan menaruhshortcut ke suatu file yang disimpan di suatu direktori.

Tidak ada alokasi memori secara manual menggunakan pointer (seperti pada bahasa pemrograman Java),

Record Type sedang di kembangkan oleh Microsoft dan akan di implementasikan pada versi C# Selanjutnya

 

Berikut ini adalah karakteristik dari reference types:

* Data reference type tidak disimpan pada stack, namun disimpan pada heap. Heap ini digunakan oleh Garbage Collector untuk melakukan alokasi memori secara dinamis.

* Dua atau lebih variabel dengan tipe reference type dapat menunjuk ke satu objek yang sama dalam heap,

* Memungkinkan operasi pada satu variabel mempengaruhi objek yang ditunjuk oleh variabel-variabel yang lain.

* Pada umumnya reference types lebih besar dan lebih lambat daripada value types


Lanjut ke Primitive Data Types

Primitive data types adalah tipe data yang bisa dijadikan variable. Ini adalah beberapa tipe data yang dapat dijadikan variable pada Bahasa pemrograman C# :

Primitive Data Types


Bahasa Pemograman dengan Strong Type dan Weak Type

A. Strong-Typed Programming Language

Strongly-typed programming language adalah bahasa pemrograman dimana setiap variabel memiliki tipe data yang spesifik dan variabelnya terikat pada suatu tipe data tertentu.

Contoh C#:

int a = 5;

int b = a + 2; //OK

bool test = true;

// Error. Operator ‘+’ cannot be applied to operands of type ‘int’ and ‘bool’.

int c = a + test;

B. Weak-Typed Programming Language

Weak Typing atau juga dikenal sebagai loose typng dan ini adalah kebalikan dari Strong-Typing, Weak Typing adalah aturan-aturan mengenai type conversion / konversi tipe data, dan biasanya dalam bahasa pemrograman Weak-Typed, anda dapat mengubah isi dari variable tipe A ke tipe B.

Contoh C:

int i = 10;

bool b = true;

printf(“%d” i + b); //Prints 11 karena true pada C = 1


User-defined Ordinal Type

An ordinal type adalah tipe dimana range dari nilai yang memungkinkan dapat dihubungkan/dihitung dengan bilangan bulat positif.

Contoh: integer, char, boolean

Ada 2 macam contoh user-defined ordinal types:

1. Enumeration types

2. Subrange types


Character String Types

Pada C#, tipe data string dapat di deklarasikan sebagai berikut:

// Deklarasi tanpa inisialisasi

string message1;

// Inisialisasi ke null

string message2 = null;

// Inisialisasi sebagai string kosong

// Memakai konstan kosong dibanding yang liberal “”.

string message3 = System.String.Empty;

//Inisialisasi dengan regular string literal.

string oldPath = “c:\\Program Files\\Microsoft Visual Studio 8.0”;

// Inisialisasi dengan verbatim string literal.

string newPath = @”c:\Program Files\Microsoft Visual Studio 9.0″;

//Inisialisasi dengan regular string literal.

string oldPath = “c:\\Program Files\\Microsoft Visual Studio 8.0”;

// Inisialisasi dengan verbatim string literal.

string newPath = @”c:\Program Files\Microsoft Visual Studio 9.0″;

// Pakai const string supaya ‘message4’ tidak dipakai

// untuk menyimpan string value yang lainnya

const string message4 = “You can’t get rid of me!”;

// Hanya pakai String constructor ketika membuat

// sebuah string dari sebuah char*, char[], or sbyte*.

char[] letters = { ‘A’, ‘B’, ‘C’ };

string alphabet = new string(letters);


Yang terakhir yaitu List Type

Meskipun array pada C# dapat menyimpan banyak nilai sekaligus, mereka tidak dapat mengubah ukurannya secara dinamis. Class-class collection pada C# mirip dengan Array, tetapi dapat diubah ukurannya secara dinamis. Ada banyak class yang tersedia Collections pada C#.

A. List<T>()

Inisialisasi instance baru dari List <T> class yang kosong dan yang punya initial capacity default.

B. List<T>(IEnumerable<T>)

Inisialisasi instance baru dari List<T> class yang memuat element copy dan memiliki kapasitas yang cukup untuk mengakomodasi jumlah element yang dicopy.

C. List<T>(Int32)

Inisialisasi instance baru dari List<T>class yang kosong dan yang mempunyai initial capacity yang spesifik.