pemrograman c# 2

33
Nama : Ruli Handrio Nim : 21120111130042 PEMOGRAMAN C# BAGIAN 2 6.1. Tujuan 1. Mengenal dan memahami fungsi array ( larik ) dan kegunaannya serta dapat membuat program dengan menggunakan array . 2. Praktikan dapat mengenal dan memahami penggunaan queue pada program serta dapat mengaplikasikannya pada program . 3. Praktikan dapat mengenal dan memahami penggunaan stack pada program serta dapat mengaplikasikannya pada program . 6.2. Dasar Teori 6.2.1. Array Array adalah sebuah struktur data yang terdiri atas banyak variabel dengan tipe data sama, dimana masing masing elemen variabel mempunyai nilai indeks . Setiap elemen array mampu untuk menyimpan satu jenis data ( variabel ) . Variabel array dideklarasikan dengan mencantumkan tipe dan nama variabel yang akan diikuti dengan banyaknya lokasi memori yang akan dibuat . Contoh penulisan array c adalah seperti berikut : Int c [5] Perlu diperhatikan bahwa c secara otomatis akan menyediakan lokasi memori sesuai dengan yang dideklarasikan, dimana nomor indeks selalu dimulai dari 0 . Nilai suatu variabel array dapat juga diinisialisasi secara langsung pada saat deklarasi, misalnya : Int c [5] = { -45, 0, 6, 72,1543}; Berarti tiap lokasi memori dari variabel array c langsung diisi dengan nilai nilai yang dituliskan di dalam tanda kurung kurawal .

Upload: ruli-handrio

Post on 25-Jul-2015

1.152 views

Category:

Documents


7 download

TRANSCRIPT

Page 1: Pemrograman C# 2

Nama : Ruli Handrio

Nim : 21120111130042

PEMOGRAMAN C# BAGIAN 2

6.1. Tujuan

1. Mengenal dan memahami fungsi array ( larik ) dan kegunaannya serta

dapat membuat program dengan menggunakan array .

2. Praktikan dapat mengenal dan memahami penggunaan queue pada

program serta dapat mengaplikasikannya pada program .

3. Praktikan dapat mengenal dan memahami penggunaan stack pada

program serta dapat mengaplikasikannya pada program .

6.2. Dasar Teori

6.2.1. Array

Array adalah sebuah struktur data yang terdiri atas banyak

variabel dengan tipe data sama, dimana masing – masing elemen

variabel mempunyai nilai indeks . Setiap elemen array mampu untuk

menyimpan satu jenis data ( variabel ) .

Variabel array dideklarasikan dengan mencantumkan tipe dan

nama variabel yang akan diikuti dengan banyaknya lokasi memori

yang akan dibuat . Contoh penulisan array c adalah seperti berikut :

Int c [5]

Perlu diperhatikan bahwa c secara otomatis akan menyediakan

lokasi memori sesuai dengan yang dideklarasikan, dimana nomor

indeks selalu dimulai dari 0 . Nilai suatu variabel array dapat juga

diinisialisasi secara langsung pada saat deklarasi, misalnya :

Int c [5] = { -45, 0, 6, 72,1543};

Berarti tiap lokasi memori dari variabel array c langsung diisi

dengan nilai – nilai yang dituliskan di dalam tanda kurung kurawal .

Page 2: Pemrograman C# 2

Contoh berikut adalah deklarasi variabel array dengan sekaligus

mengisi setiap lokasi memorinya dengan nilai 0 :

Int x [5] = { 0 };

Banyaknya lokasi memori dapat secara otomatis disediakan

sesuai dengan banyaknya nilai yang akan dimasukkan, seperti contoh

berikut yang tentunya membuat variabel array dengan 10 lokasi

memori :

Int x[] = {10,15,12,5,13,9,6,17,25,31};

6.2.2. Queue

Queue adalah salah satu bentuk struktur data yang juga

merepresentasikan linked list . Dimana yang berbeda dalam queue

tersebut adalah cara menambah dan mengambil data . Sesuai dengan

namanya yaitu queue atau antrian, data yang dimasukkan dari

belakang ( Insert at back ), sehingga data yang pertama kali

dimasukkan berada pada node pertama, dan data yang dimasukkan

terakhir juga akan berada pada node yang terakhir , dimana untuk

pengambilan proses pengambilan datanya, yang diambil adalah data

pertama, dan setelah data pertama diambil maka node yang berisi

data pertama tersebut akan di-nullkan sehingga posisi node pertama

akan berpindah pada node setelah node pertama tersebut .

Proses ini biasanya disebut dengan FIFO ( First In First Out ) .

Contoh :

Gambar 6.1 Prinsip Kerja Queue ( FIFO )

Dari data pada gambar di atas, data yang pertama kali masuk

adalah data “a” dan ketika diinputkan data lagi maka akan berada di

node berikutnya, yaitu node ke – 2 , dan seterusnya . Kemudian, data

yang pertama kali keluar ialah “a” dan berikutnya ialah data

setelahnya secara berurut .

Page 3: Pemrograman C# 2

6.2.3. Stack

Stack adalah salah satu bentuk struktur data yang juga

merepresentasikan tumpukan data, dimana yang berbeda dalam stac

tersebut adalah cara menambah data dan mengambil data . Sesuai

dengan namanya yaitu stack atau tumpukan, data yang dimasukkan

terakhir berada pada tumpukan paling bawah, sehingga untuk data

yang dimasukkan terakhir berada di tumpukan paling atas . Ketika

kita ingin melakukan pengambilan data , proses pengambilan

datanya yang diambil adalah data yang berada pada tumpukan paling

atas dan setelah itu baru data yang ada di tumpukan di bawahnya .

Proses ini biasanya disebut dengan LIFO ( Last In First Out )

.

Gambar 6.2 Prinsip Kerja Stack

Dari gambar di atas , data “D” merupakan data yang pertama kali

dimasukkan dan data “A” merupakan data yang terakhir kali

dimasuukan dan berada di tumpukan paling atas , sehingga data “A”

A

B

C

D

Page 4: Pemrograman C# 2

yang pertama kali dikeluaran dan data yang pertama kali dimasukkan

menjadi data yang terakhir kali dikeluarkan .

6.2.5 Pengurutan data (Sorting)

Sorting adalah proses di mana data diurutkan sesuai dengan

kaidah atau aturan tertentu. Ada beberapa algoritma untuk

melakukan sorting, di antaranya adalah :

1. Bubble sort

Algoritma beroperasi sebagai berikut :

Elemen pertama dibandingkan dengan elemen kedua, bila

elemen kedua lebih kecil maka kedua elemen tersebut

ditukar.

Elemen kedua dan ketiga dibandingkan, bila elemen ketiga

lebih kecil daripada elemen kedua, maka elemen tersebut

ditukar.

Proses terus berlangsung dengan elemen ketiga dan elemeen

keempat, dan seterusnya sampai akhir deretan tercapai.

Bila tak ada lagi yang ditukarkan, algoiritma berhenti. Bila

terjadi pertukaran secara berurutan, proses akan diulang.

Sehingga akhirnya semua elemen tersusun, tidak ada

pertukaran lagi dan algoritma berhenti.

2. Selection sort

Algoritma beroperasi sebagai berikut :

Memilih elemen maksimum / minimum dari larik, lalu

menempatkan elemen tersebut pada awal / akhir larik.

Larik yang telah ditempati elemen maksimum / minimum

tersebut diisolasi dan tidak disertakan pada proses

selanjutnya.

Ada dua algoritma untuk selection sort yaitu elemen

maksimum sebagai basis pengurutan dan elemen minimum

sebagai basis pengurutan.

Page 5: Pemrograman C# 2

Operasi elemen hanya dilakukan sekali saja pada setiap

langkah.

3. Insertion sort

Algoritma beroperasi sebagai berikut :

Sembarang elemen diambil dari data yang belum terurut.

Data pertama dibandingkan dengan data kedua. Apabila data

kedua lebih kecil maka data kedua tersebut disisipkan di

depan data pertama.

Lakukan terus sampai data yang belum terurut tersebut habis.

4. Shell sort

Disebut juga diminishing increment sort

Pengurutan dilakukan setiap k elemen dengan metode

pengurutan sisip

Nilai k akan berkurang pada setiap langkah pengurutan

Nilai k disebut juga increment

5. Merge sort

Metode ini banyak digunakan untuk mengurutkan dua atau lebih

tabel yang sudah terurutkan menjadi satu tabel yang terurutkan

juga.

6. Quick sort

Metode ini dalam melakukan pengurutan data menggunakan

babak-babak dengan panjang spasi tertentu.

Ketika kita memasukkan data dalam jumlah besar, dapat

melakukan sortir data, mulai dari ascending atau urut dari nilai yang

paling kecil dan descending atau urut dari nilai yang paling besar.

6.2.6 Matriks

Matriks biasanya dinotasikan dengan huruf besar A, B, C dan

sebagainya. Elemen-elemen di dalam matriks sering disebut dengan

entri dari matriks. Entri ini biasanya merupakan bilangan riil atau

kompleks. Entri dari matriks pada umumnya dinotasikan dengan

[A]ji yang menyatakan matriks A yang berada pada baris ke j dan

kolom ke i.

Page 6: Pemrograman C# 2

Dua matriks A=[aij] dan B=[bij] dikatakan sama , ditulis A=B

jika A dan B berukuran sama dan entri yang seletak sama yaitu aji=bji

untuk setiap j dan i. Jika dua matriks A dan B berukuran sama ,

penjumlahan A dan B didefinisikan sebagai beriut :

A+B = [aji+ bji]

Sifat dasar dari operasi penjumlahan dan perkalian matriks dengan

skalar adalah sebagai berikut :

(A + B) + C = A + (B + C)

A + 0 = 0 + A = A

A + (-A) = (- A) + A = 0

A + B = B + A

k(A + B) = kA + kB

(k+ l)A = kA + lA

(kl)A = k (lA)

Ada beberapa jenis matriks, diantaranya adalah :

1. Suatu matriks dengan banyak baris = banyak kolom = n disebut

matriks bujur sangkar berukuran n. Barisan entri a11, a22, .....,

ann disebut diagonal utama dari matriks bujur sangkar.

2. Matriks diagonal adalah matriks bujur sangkar yang semua

elemen diagonal utamanya adalah nol.

3. Matriks identitas adalah matriks diagonal yang entri pada

diagonal utamanya adalah 1.

4. Matriks segitiga adalah matriks bujur sangkar yang semua entri

di bawah diagonal utama = 0

1 2 3

0 5 3

0 0 8

5. Matriks segitiga bawah adalah matriks bujur sangkar yang semua

entri di atas diagonal utama = 0

1 0 0

2 5 0

1 0 8

Page 7: Pemrograman C# 2

6.3. Hasil Percobaan dan Analisa

6.3.1. Array 1 dimensi

Berikut source code untuk program array 1 dimensi :

using System; //user menggunakan semua yang ada di

Library System

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace kelompok20_Array1Dimensi //nama program

{ //memulai program

class Program

{

static void Main(string[] args)

{ //memulai statemen

int[] array = { 1, 2, 3 }; //deklarasi

variabel array dengan 3 lokasi memori

System.Console.WriteLine ("Datanya adalah "

+ array [0]);

} //mengakhiri statemen

}

} //mengakhiri program

Gambar 6.3 Source Code

Setelah kita mengetik source code yang di atas, kita dapat

menjalankan program dengan menekan tombol Ctrl + F5 . Hasil dari

source code di atas ialah tulisan “Datanya adalah 1” . Angka 1

Page 8: Pemrograman C# 2

diperoleh dari source code “System.Console.WriteLine

("Datanya adalah " + array [0]); ” dimana angka yang

dipanggil adalah array dengan indeks ke – 0 . Hasilnya dapat dilihat

seperti gambar di bawah ini .

Gambar 6.4 Tampilan Hasil Program Array 1 Dimensi

6.3.2. Array 2 dimensi

Berikut source code untuk program array 2 dimensi :

using System; //user menggunakan Library System

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace kelompok20_Array2Dimensi //nama program

{ //memulai program

class Program

{

static void Main(string[] args)

{ //memulai statemen

int[,] array = new int[2, 2]; //deklarasi

variabel array

array[0, 0] = 2; //deklarasi nilai array

System.Console.WriteLine("Datanya adalah "

+ array[0, 0]);

} //mengakhiri statemen

}

} //mengakhiri program

Page 9: Pemrograman C# 2

Gambar 6.5 Source Code

Setelah kita mengetik source code yang di atas , kita dapat menekan

tombol Ctrl + F5 untuk menjalankan program . Hasilnya ialah tulisan

“ Datanya adalah 2 ” . Angka 2 diperoleh dari pemanggilan array

dengan indeks ke – 0 , 0 . Berikut gambar di bawah ini adalah

tampilan programnya .

Gambar 6.6 Tampilan Hasil Program Array 2 Dimensi

6.3.3. Array dengan perulangan

Untuk menampilkan semua nilai array, kita dapat menggunakan

fungsi perulangan untuk menyingkat penulisan source code-nya .

Perulangan adalah teknik pemograman dimana suatu proses akan

diulang terus-menerus hingga suatu kondisi yang diinginkan dapat

terpenuhi . Berikut merupakan contoh source code array dengan

perulangan .

Page 10: Pemrograman C# 2

using System; //user menggunakan Library System

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace kelompok20_ArrayPerulangan //nama program

{ //memulai program

class Program

{

static void Main(string[] args)

{ //memulai statemen

int[,] matriks = new int[2, 2]; //deklarasi

bentuk array

//deklarasi nilai array pada indeks

tertentu

matriks[0, 0] = 12;

matriks[0, 1] = 30;

matriks[1, 0] = 45;

matriks[1, 1] = -9;

//perulangan untuk baris - 1

for (int i = 0; i < 1; i++)

{

for (int j = 0; j < 2; j++)

{

System.Console.Write(matriks[i, j]

+ " ");

}

}

System.Console.WriteLine("");

//perulangan untuk baris - 2

for (int i = 1; i < 2; i++)

{

for (int j = 0; j < 2; j++)

{

System.Console.Write(matriks[i, j]

+ " ");

}

}

System.Console.WriteLine("");

} //mengakhiri statemen

}

} //mengakhiri program

Setelah kita mengetik source code yang di atas , kita dapat menekan

tombol Ctrl + F5 untuk menjalankan program . Hasilnya ialah

sebuah bentuk matriks dengan baris – 1 ada angka 12 dan 30 serta

pada baris – 2 ada angka 45 dan -9 . Berikut gambar di bawah ini

adalah tampilan programnya .

Page 11: Pemrograman C# 2

Gambar 6.7 Tampilan Hasil Program Array dengan Perulangan

6.3.4. Penjumlahan Matriks

Berikut source code untuk penjumlahan matriks dimana nilai dari

matriks sudah ditentukan .

using System; //user menggunakan Library System

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace kelompok20_PenjumlahanMatriks //nama program

{ //memulai program

class Program

{

static void Main(string[] args)

{ //memulai statemen

int baris = 2, kolom = 2;

int[,] matriks1 = new int[baris, kolom];

int[,] matriks2 = new int[baris, kolom];

int[,] hasil = new int[baris, kolom];

Console.WriteLine("Input matriks1 :");

//perulangan untuk matriks 1

for (int b = 0; b < baris; b++)

{

for (int k = 0; k < kolom; k++)

{

matriks1[b, k] = 3;

Console.Write(matriks1[b, k] + "

");

Page 12: Pemrograman C# 2

}

Console.WriteLine();

}

//perulangan untuk matriks 2

Console.WriteLine("Input matriks2 :");

for (int b = 0; b < baris; b++)

{

for (int k = 0; k < kolom; k++)

{

matriks2[b, k] = 9;

Console.Write(matriks2[b, k] + "

");

}

Console.WriteLine();

}

for (int b = 0; b < baris; b++)

{

for (int k = 0; k < kolom; k++)

{

hasil[b, k] = matriks1[b, k] +

matriks2[b, k];

}

}

//perulangan untuk penjumlahan matriks

Console.WriteLine("Hasil penjumlahan

matriks :");

for (int b = 0; b < baris; b++)

{

for (int k = 0; k < kolom; k++)

{

matriks2[b, k] = 4;

Console.Write(hasil[b, k] + " ");

}

Console.WriteLine();

}

} //mengakhiri statemen

}

} //mengakhiri program

Setelah kita mengetik source code yang di atas , kita dapat menekan

tombol Ctrl + F5 untuk menjalankan program . Hasilnya ialah ada 3

buah bentuk matriks dimana matriks ke -3 adalah matriks hasil

penjumlahan antara matriks input 1 dan matriks input 2 . Nilai dari

matriks input 1 dan matriks input 2 sudah ditentukan di source code

yaitu untuk matriks input 1 nilai semua baris dan kolomnya diisi

dengan angka 3 sedangkan untuk matriks input 2 nilai semua baris

Page 13: Pemrograman C# 2

dan kolomnya diisi dengan angka 9 . Berikut gambar di bawah ini

adalah tampilan programnya .

Gambar 6.3 Tampilan Hasil Program Penjumlahan Matriks

6.3.5. Queue

Berikut source code untuk penggunaan fungsi queue dalam sebuah

program .

using System; //user menggunakan Library System

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Collections;

namespace Kelompok20_queue //nama program

{ //memulai program

class Program

{

static void Main(string[] args)

{ //memulai statemen

Console.WriteLine("Enter in a string ");

string s1 = Console.ReadLine();

Console.WriteLine(" ");

Queue q1 = new Queue();

//perulangan

for (int i = 0; i < s1.Length; i++)

{

q1.Enqueue(s1.Substring(i, 1));

if (i == s1.Length - 1)

{

Page 14: Pemrograman C# 2

Console.WriteLine("Hasil

menggunakan metode queue ");

for (i = 0; i < s1.Length; i++)

{

char y =

Convert.ToChar(q1.Dequeue());

Console.WriteLine(y);

}

Console.WriteLine(" ");

}

}

} //mengakhiri statemen

}

} //mengakhiri program

Setelah kita mengetik source code yang di atas , kita dapat menekan

tombol Ctrl + F5 untuk menjalankan program . Hasilnya ialah ada

perintah berupa tulisan yang meminta si user untuk memasukkan

input atau data berupa string kemudian data tersebut akan diurut

dengan metode queue dimana data data atau huruf yang pertama

masuk yang akan ada di antrian pertama , dan seterusnya untuk huruf

berikutnya . Berikut gambar di bawah ini adalah tampilan

programnya .

Gambar 6.4 Tampilan Hasil Program Queue

Page 15: Pemrograman C# 2

6.3.6. Stack

Berikut source code untuk penggunaan fungsi stack dalam sebuah

program .

using System; //user menggunakan Library System

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Collections;

namespace kelompok20_stack //nama program

{ //memulai program

class Program

{

static void Main(string[] args)

{ //memulai statemen

//perintah memberikan input berupa data

string

Console.WriteLine("Enter in a string ");

string s1 = Console.ReadLine();

Console.WriteLine(" ");

Stack st = new Stack ();

//output

Console.WriteLine("Hasil menggunakan metode

stack ");

//perulangan

for (int i = 0; i < s1.Length; i++)

{

st.Push(s1.Substring(i, 1));

if (i == s1.Length - 1)

{

for (i = 0; i < s1.Length; i++)

{

char x =

Convert.ToChar(st.Pop());

Console.WriteLine(x);

}

}

}

} //mengakhiri program

}

} //memulai program

Setelah kita mengetik source code yang di atas , kita dapat menekan

tombol Ctrl + F5 untuk menjalankan program . Hasilnya ialah ada

perintah berupa tulisan yang meminta si user untuk memasukkan

input atau data berupa string kemudian data tersebut akan diurut

dengan metode stack dimana data atau huruf yang terakhir kali

masuk akan diletakkan pada tumpukan pertama , dan seterusnya .

Berikut gambar di bawah ini adalah tampilan programnya .

Page 16: Pemrograman C# 2

Gambar 6.5 Tampilan Hasil Program Stack

6.3.7. Pengurutan Data

Berikut source code untuk penggunaan fungsi array dan perulangan

untuk mengurutkan data secara ascending dimana nilai akan

diurutkan dari yang terkecil hingga yang terbesar .

using System; //user menggunakan Library System

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Collections;

namespace kelompok20_UrutData //nama program

{ //memulai program

class Program

{

static void Main(string[] args)

{ //memulai statemen

//perintah memasukkan input

Console.Write("Masukkan banyak elemen array

= ");

int n =

Convert.ToInt32(Console.ReadLine());

int[] array_sort = new int[n];

for (int i = 0; i < n; i++)

{

Console.Write("Elemen ke - " + (i + 1)

+ "=");

array_sort[i] =

Convert.ToInt32(Console.ReadLine());

Page 17: Pemrograman C# 2

}

for (int j = 1; j <= n - 1; j++)

{

for (int k = 0; k <= n - 2; k++)

{

if (array_sort[k] > array_sort[k +

1])

{

int temp = array_sort[k];

array_sort[k] = array_sort[k +

1];

array_sort [k+1] = temp;

}

}

}

//output

Console.WriteLine(" ");

Console.WriteLine("Tampilkan data");

for (int i = 0; i < n; i++)

{

Console.WriteLine(array_sort[i]);

}

Console.ReadKey(true);

} //mengakhiri statemen

}

} //mengakhiri program

Setelah kita mengetik source code yang di atas , kita dapat menekan

tombol Ctrl + F5 untuk menjalankan program . Hasilnya ialah ada

perintah berupa tulisan yang meminta si user untuk memasukkan

jumlah elemen array yang ingin diurutkan . Kemudian , program

akan meminta nilai – nilai untu setiap elemen . Misal si user ingin

mengurutkan lima (5) buah bilangan dimana elemen – 1 adalah 23

elemen – 2 adalah 0 , elemen – 3 adalah 100 , elemen – 4 adalah 45

dan elemen – 5 adalah 2 . Lalu , tekan Enter untuk menjalankan

pengurutan bilangannya sehingga tampak bilangan akan diurutkan

dari nilai yang terkecil hingga yang terbesar . Berikut gambar di

bawah ini adalah tampilan programnya .

Page 18: Pemrograman C# 2

Gambar 6.6 Tampilan Perintah Awal Memasukkan Jumlah Input

Gambar 6.7 Tampilan output akhir program

Page 19: Pemrograman C# 2

6.4. Tugas Praktikum

6.4.1. Perkalian Matriks

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace ConsoleApplication1

{

class Program

{

static void Main(string[] args)

{

Console.Write("Masukkan jumlah baris

matriks 1 : ");

int bm1 =

Convert.ToInt32(Console.ReadLine());

Console.Write("Masukkan jumlah kolom

matriks 1 : ");

int km1 =

Convert.ToInt32(Console.ReadLine());

Console.Write("Masukkan jumlah baris

matriks 2 : {0}", km1);

Console.Write("\nMasukkan jumlah kolom

matriks 2 : ");

int km2 =

Convert.ToInt32(Console.ReadLine());

Console.Write("\n\n");

int[,] m1 = new int[bm1, km1];

int[,] m2 = new int[km1, km2];

int[,] m3 = new int[bm1, km2];

for (int i = 0; i < bm1; i++)

{

for (int k = 0; k < km1; k++)

{

Console.Write("Masukkan nilai [{0}

{1}] : ", i, k);

m1[i, k] =

Convert.ToInt32(Console.ReadLine());

}

}

for (int j = 0; j < km1; j++)

{

for (int l = 0; l < km2; l++)

{

Console.Write("Masukkan nilai [{0}

{1}] : ", j, l);

m2[j, l] =

Convert.ToInt32(Console.ReadLine());

}

}

for(int x = 0; x < bm1; x++)

{

for(int y = 0; y < km2; y++)

{

m3[x, y] = 0;

for(int z = 0; z < km1; z++)

Page 20: Pemrograman C# 2

{

m3[x, y] = m3[x, y] + m1[x, z]

* m2[z, y];

}

}

}

Console.WriteLine("\n\n\tHasil Perkalian

Matriks\n");

for(int v = 0; v < bm1; v++)

{

for(int w = 0; w < km2; w++)

{

if (w == 0)

{

Console.Write("\n");

}

Console.Write("\t{0}",m3[v, w]);

}

}

Console.WriteLine();

Console.ReadLine();

}

}

}

Tampilan program setelah dijalankan adalah :

Gambar 6.8 Tampilan running untuk program Perkalian Matriks

6.4.2. Queue

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Collections;

namespace ConsoleApplication2

{

class Program

Page 21: Pemrograman C# 2

{

static void Main(string[] args)

{

Queue dt = new Queue();

Console.Write("\t\tProgram Queue");

a:

Console.Write("\n\n1. Menambah Data\n2.

Menghapus Data\n3. Tampilkan Data\n4. Keluar dari

program\n");

Console.Write("Masukkan pilihan : ");

int pil =

Convert.ToInt16(Console.ReadLine());

switch (pil)

{

case 1:

Console.Write("Masukkan data\t :

");

string i = Console.ReadLine();

dt.Enqueue(i);

goto a;

case 2:

if (dt.Count == 0)

{

Console.WriteLine("Tidak ada

data yang bisa dihapus");

goto a;

}

else

{

dt.Dequeue();

goto a;

}

case 3:

Console.WriteLine("\n\n\tData yang

tersimpan\n");

foreach (string i1 in dt)

{

Console.WriteLine(i1);

}

Console.WriteLine();

goto a;

case 4:

break;

default:

Console.WriteLine("Perintah yang

anda masukkan salah...\n");

break;

}

}

}

}

using System;merupakan perintah yang menandakan

bahwa user akan menggunakan segala sesuatu yang ada di

library system.

Page 22: Pemrograman C# 2

namespace MenambahMengurangiQueue_Kelompok21

merupakan perintah yang digunakan untuk menamai

program.

class Program merupakan perintah untuk membuat

sebuah class.

static void Main(string[] args) ini fungsi main ()

merupakan awal dan untuk memulai fungsi program C#

dalam compilernya. Void merupakan perintah tanpa tipe */

int num = 0; merupakan deklarasi num bernilai 0 yang

menggunakan tipe data integer.

System.Collections.Queue isi = new

System.Collections.Queue(); merupakan deklarasi isi

yang akan sama dengan queue yang baru yang diambil dari

library.

Console.WriteLine(""); merupakan perintah untuk

menampilkan baris kosong lalu secara otomatis pindah

baris.

Console.WriteLine("Pilihan \n 1 untuk menambah

data \n 2 untuk menghapus data \n 3 untuk

menampilkan data \n 4 untuk keluar dari

program"); merupakan perintah untuk menampilkan

Pilihan, 1 untuk menambah data, 2 untuk menghapus data,

3 untuk menampilkan data, 4 untuk keluar dari program

pada layar dan kemudian otomatis pindah baris.

Console.WriteLine("Masukkan pilihan:");

merupakan perintah untuk menampilkan Masukkan pilihan:

pada layar dan secara otomatis pindah baris.

string pilihan = Console.ReadLine(); merupakan

perintah untuk memerintahkan program untuk membaca

statement.

switch (pilihan) merupakan perintah untuk memilih

pilihan pada pilihan.

Page 23: Pemrograman C# 2

case "1": merupakan input pilihan 1 untuk menambah

data.

Console.WriteLine("Masukkan data string:");

merupakan perintah untuk menampilkan Masukkan data

string: pada layar dan secara otomatis pindah baris.

string s1 = Console.ReadLine();merupakan perintah

untuk memerintahkan program untuk membaca statement.

Console.WriteLine(" "); merupakan perintah untuk

baris kosong dan secara otomaris pindah baris.

isi.Enqueue(s1); merupakan perintah untuk

menambahkan elemen ke dalam queue yaitu s1.

num = 0; merupakan deklarasi num bernilai 0.

break; merupakan fungsi untuk menghentikan

perulangan.

case "2": merupakan input pilihan 2 untuk menghapus

data.

if (isi.Count == 0) merupakan perintah pengkondisian

jika isi.count sama dengan 0.

Console.WriteLine("Tidak ada data yang bisa

dihapus"); merupakan perintah untuk menampilkan

Tidak ada data yang bisa dihapus, kemudian secara

otomatis pindah baris.

Else merupakan perintah untuk memilih menu yang lain.

string hasil_stack =

(string)isi.Dequeue();merupakan deklarasi hasil_stack

bernilai isi. Dequeue dimana digunakan untuk mengambil

elemen dari queue yang menggunakan tipe data string.

case "3": merupakan input pilihan 3 untuk menampilkan

data.

Console.WriteLine("Datanya adalah"); merupakan

perintah untuk menampilkan Datanya adalah pada layar dan

secara otomatis pindah baris.

Page 24: Pemrograman C# 2

foreach (string d in isi) untuk melakukan looping

dari suatu Object Collection.

string hasil = d; merupakan deklarasi hasil sama

dengan d yang menggunakan tipe data string.

Console.WriteLine(d); merupakan perintah untuk

menampilkan proses d pada layar kemudian secara otomatis

pindah baris.

case "4": merupakan input pilihan 4 untuk keluar dari

program.

num = 1; merupakan deklarasi num bernilai 1.

default: merupakan fungsi yang merepresentasikan suatu

nilai tidak memenuhi kondisi satu pun.

while (num == 0); merupakan fungsi untuk mengulang suatu

proses apabila num sama dengan 0.

Page 25: Pemrograman C# 2

Tampilan program setelah dijalankan adalah :

Gambar 6.9 Tampilan running untuk program Program Queue

Page 26: Pemrograman C# 2

6.4.3. Stack

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Collections;

namespace ConsoleApplication3

{

class Program

{

static void Main(string[] args)

{

Stack dt = new Stack();

Console.Write("\t\tProgram Stack");

a:

Console.Write("\n\n1. Menambah Data\n2.

Menghapus Data\n3. Tampilkan Data\n4. Keluar dari

program\n");

Console.Write("Masukkan pilihan : ");

int pil =

Convert.ToInt16(Console.ReadLine());

switch (pil)

{

case 1:

Console.Write("Masukkan data\t :

");

string i = Console.ReadLine();

dt.Push(i);

goto a;

case 2:

if (dt.Count == 0)

{

Console.WriteLine("Tidak ada

data yang bisa dihapus");

goto a;

}

else

{

dt.Pop();

goto a;

}

case 3:

Console.WriteLine("\n\n\tData yang

tersimpan\n");

foreach (string i1 in dt)

{

Console.WriteLine(i1);

}

Console.WriteLine();

goto a;

case 4:

break;

default:

Page 27: Pemrograman C# 2

Console.WriteLine("Perintah yang

anda masukkan salah...\n");

break;

}

}

}

}

using System;merupakan perintah yang menandakan

bahwa user akan menggunakan segala sesuatu yang ada di

library system.

namespace MenambahMengurangiDataStack_Kelompok21

merupakan perintah yang digunakan untuk menamai

program.

class Program merupakan perintah untuk membuat

sebuah class.

static void Main(string[] args)ini fungsi main ()

merupakan awal dan untuk memulai fungsi program C#

dalam compilernya. Void merupakan perintah tanpa tipe */

int num = 0; merupakan deklarasi num bernilai 0 yang

menggunakan tipe data integer.

System.Collections.Stack isi = new

System.Collections.Stack () ; merupakan deklarasi

isi yang akan sama dengan stack yang baru yang diambil

dari library.

Console.WriteLine(" "); merupakan perintah untuk

menampilkan baris kosong lalu secara otomatis pindah

baris.

Console.WriteLine("Pilihan \n 1 untuk menambah

data \n 2 untuk menghapus data \n 3 untuk

menampilkan data \n 4 untuk keluar dari

program"); merupakan perintah untuk menampilkan

Pilihan, 1 untuk menambah data, 2 untuk menghapus data,

3 untuk menampilkan data, 4 untuk keluar dari program

pada layar dan kemudian otomatis pindah baris.

Page 28: Pemrograman C# 2

Console.WriteLine("Masukkan pilihan:");

merupakan perintah untuk menampilkan Masukkan pilihan:

pada layar dan secara otomatis pindah baris.

string pilihan = Console.ReadLine();merupakan

perintah untuk memerintahkan program untuk membaca

statement.

switch (pilihan) merupakan perintah untuk memilih

pilihan pada pilihan.

case "1": merupakan input pilihan 1 untuk menambah

data.

Console.WriteLine("Masukkan data string:");

merupakan perintah untuk menampilkan Masukkan pilihan:

pada layar dan secara otomatis pindah baris.

string m1 = Console.ReadLine();merupakan perintah

untuk memerintahkan program untuk membaca statement.

isi.Push(m1); merupakan perintah untuk menghapus

m1.

num = 0; merupakan deklarasi num bernilai 0.

break; merupakan fungsi untuk menghentikan

perulangan.

case "2": merupakan input pilihan 2 untuk menghapus

data.

if (isi.Count == 0) merupakan perintah pengkondisian

jika isi.count sama dengan 0.

Console.WriteLine("Tidak ada data yang bisa

dihapus"); merupakan perintah untuk menampilkan

Tidak ada data yang bisa dihapus, kemudian secara

otomatis pindah baris.

Else merupakan perintah untuk memilih menu yang lain.

string hasil_stack = (string)isi.Pop();merupakan

deklarasi hasil_stack bernilai isi.Pop dimana Pop untuk

memasukkan data yang menggunakan tipe data string.

Page 29: Pemrograman C# 2

case "3": merupakan input pilihan 3 untuk menampilkan

data.

Console.WriteLine("Datanya adalah"); merupakan

perintah untuk menampilkan Datanya adalah pada layar dan

secara otomatis pindah baris.

foreach (string d in isi) untuk melakukan looping

dari suatu Object Collection.

string hasil = d; merupakan deklarasi hasil sama

dengan d yang menggunakan tipe data string.

Console.WriteLine(d); merupakan perintah untuk

menampilkan proses d pada layar kemudian secara otomatis

pindah baris.

case "4": merupakan input pilihan 4 untuk keluar dari

program.

num = 1; merupakan deklarasi num bernilai 1.

default: merupakan fungsi yang merepresentasikan suatu

nilai tidak memenuhi kondisi satu pun.

while (num == 0); merupakan fungsi untuk mengulang

suatu proses apabila num sama dengan 0.

Page 30: Pemrograman C# 2

Tampilan program setelah dijalankan adalah :

Gambar 6.10 Tampilan running untuk Program Stack

Page 31: Pemrograman C# 2

6.4.4. Pengurutan data secara descending

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace ConsoleApplication4

{

class Program

{

static void Main(string[] args)

{

Console.Write("Masukkan jumlah data angka :

");

int i =

Convert.ToInt32(Console.ReadLine());

int[] numbers = new int[i];

Console.WriteLine("\n\n\t\tData Input\n");

for (int j = 0; j < i; j++)

{

Console.Write("Masukkan bilangan {0} :

", j+1);

int i1 =

Convert.ToInt32(Console.ReadLine());

numbers[j] = i1;

}

int count = numbers.Length;

int temp;

for (int k = (count - 1); k >= 0; k--)

{

for (int y = 1; y < i; y++)

{

if (numbers[y - 1] < numbers[y])

{

temp = numbers[y - 1];

numbers[y - 1] = numbers[y];

numbers[y] = temp;

}

}

}

Console.WriteLine("\n\n\tData Terurut

Secara Descending\n");

for (int x = 0; x < numbers.Length; x++)

{

Console.WriteLine("Angka ke-{0} :

{1}",x+1,numbers[x]);

}

Console.ReadLine();

}

}

}

Page 32: Pemrograman C# 2

Tampilan program setelah dijalankan adalah :

Gambar 6.11 Tampilan running untuk Program Descending

Page 33: Pemrograman C# 2

6.5. Kesimpulan

1. Array adalah sebuah struktur data yang terdiri atas banyak variabel

dengan tipe data sama, dimana masing – masing elemen variabel

mempunyai nilai indeks .

2. Queue adalah bentuk struktur data yang juga merepresentasikan sebuah

antrian data yang menerapkan metode FIFO ( First In First Out ) dimana

metodenya ialah data yang pertama masuk yang akan pertama keluar

juga . Contoh : Antrian orang yang membeli tiket di bioskop .

3. Stack adalah bentuk struktur data yang merepresentasikan tumpukan data

yang menerapkan metode LIFO ( Last In First Out ) dimana metodenya

ialah data yang terakhir kali masuk yang akan pertama kali keluar .

Contoh : Tumpukan piring .

4. Didalam penggunaan array, stack, dan queue sering menggunakan

statemen perulangan (looping) seperti statemen for, statemen while,

statemen do while dan statement foreach, untuk memberikan input atau

output lebih dari satu.

5. Pengurutan data (sorting) dapat dilakukan dengan berbagai metode,

antara lain bubble sort, selection sort, insertion sort, shell sort, merge

sort, ataupun quick sort.

6. Bahasa C# harus mencakup pengecekan jenis (type checking) yang kuat,

pengecekan larik (array), pendeteksian terhadap percobaan terhadap

penggunaan Variabel-variabel yang belum diinisialisasikan, portabilitas

kode sumber, dan pengumpulan sampah (garbage collection) secara

otomatis.