ALGORITMA dan
STRUKTUR DATA
Array
Pengantar Array
o Pemrograman membutuhkan variabel untuk menyatakan suatu kegiatan proses
tertentu
o Dalam kondisi tertentu, terkadang membutuhkan kumpulan data yang sama
dalam tipe, dikenal dengan nama array
o Array mempunyai keterbatasan, yaitu harus memdefinisikan banyaknya data
yang dibutuhkan. Dengan demikian, array disebut kumpulan variabel berindeks
terhingga yang mempunyai tipe data yang sama
Pengenalan Array
Misalkan kita memiliki tiga data yang berbeda dan kita simpan dalam variabel yang
berbeda
int number1;
int number2;
int number3;
0 1 2
number1 = 1; Number :
number2 = 2; 1 2 3
number3 = 3;
Bagaimana jika terdapat banyak data yang berbeda yang memiliki tujuan yang sama, dan
bagaimana cara menyimpannya ?
Di C# dan bahasa pemrograman lainnya, ada satu kemampuan dimana kita dapat
menggunakan satu variabel untuk menyimpan sekumpulan data dan memanipulasinya
lebih efisien disebut dengan Array
Array
Array adalah object yang digunakan untuk menyimpan banyak data dengan tipe
yang sama.
Tipe dari array bisa : tipe data primitif atau class
Terdapat 3 langkah untuk membuat array :
1. Mendeklarasikan variabel array
2. Memcreate array beserta ukurannya.
3. Memberikan sebuah nilai pada setiap element array.
Pengantar Array
Sebuah array memiliki sifat sebagai berikut:
o Setiap elemen dari array harus memiliki tipe data yang sama.
o Sebuah array dapat berupa Single-Dimensi, Multidimensional atau Jagged.
o Jumlah dimensi dan panjang masing-masing dimensi ditetapkan ketika ketika
array dibuat. Nilai-nilai tersebut tidak dapat diubah jika sudah dideklarasikan.
o Nilai default dari elemen array numerik adalah 0, dan elemen string diatur ke
null.
o Jagged array adalah array di dalam array, artinya elemen dari array tersebut
berupa array juga.
o Array adalah sebuah zero indexed, artinya elemen dari array itu diindex dari 0
sampai jumlah elemen-1. Misalkan jumlah elemen 5, maka indeknya adalah 0, 1,
2, 3, 4.
Membuat Array (Deklarasi)
int[] ints ;
double[] dubs ;
Dimension[] dims ;
float[][] twoDee ;
Yang tidak legal
int [5] scores;
Membuat Array (Create)
Karena array adalah sebuah object, maka create array dengan operator new.
Besar array ditentukan pada saat runtime
int[] ints ;
ints = new int[25] ;
int[] ints = new int[25] ;
Pada saat array di buat, isi array diinisialisasi dengan default value.
Membuat Array (Memberi Nilai)
Untuk mengakses data/elemen di array kita menggunakan indeks. Data ke-1 disimpan di
array indeks ke-0
Isi dari array : nilai primitif
int scores = new int[3];
scores[0] = 75;
scores[1] = 80;
scores[2] = 100;
Isi dari array : object
Student students[] = new Students[3]
students[0] = new Student();
students[1] = new Student();
students[2] = new Student();
Membuat Array
int[] ints = new int[25] ;
ints 0 0
1 0 • data dimasukkan ke array mulai dari indeks
ke•-0
2 0 • int[] ints = new int[25] ; data
3 0 disimpan mulai dari indeks 0 sampai 24
• Pada saat array di buat, isi array diinisialisasi
. 0
dengan default value, nilai default untuk
. 0 int adalah 0
. 0
24 0
Jenis Array
Array dimensi 1 menyimpan sekumpulan elemen
Array dimensi 2 (multi dimensi), dapat dianggap seperti tabel elemen dengan baris
dan kolom
Dimensi 1 Dimensi 2
Array
Variabel dengan kapasitas tertentu yang dapat digunakan untuk menyimpan
sekumpulan data
Sebuah array digunakan untuk menyimpan data yang terbentuk dari class atau
struktur yang sama
Slot pertama selalu dimulai dari 0
- int[] arrNilaiSiswa;
arrNilaiSiswa = new int[3];
// var array utk menyimpan data berjenis int sebanyak 3
- int[] arrNilaiSiswa = new int[3];
- int[] arrNomor = new int[4] (10, 11, 12, 13);
Contoh Array
// contoh pembuatan array
Int arrNomor = new int[4];
// pengisian nilai kedalam array pada indeks 2 dan 3
arrNomor[2] = 900;
arrNomor[3] = 75;
//pengembalian nilai dari array pada indeks 2 dan mengisikan
//pada array di indeks 1
arrNomor[1] = arrNomor[2] + 100;
//nilai yg didapatkan dr array dpt diproses secara matematis
//dan disimpan dalam variabel biasa. Misalkan :
Double total = arrNomor[1] + arrNomor[3];
Contoh Array
int[] Nilai = {90, 86, 54, 27, 63, 98, 75, 25, 48, 89};
int NilaiX, NilaiY, NilaiXY = 0;
NilaiX = Nilai[0];
NilaiY = Nilai[0];
for (int i = 0; i <= [Link]-1 ; i++)
{
if (Nilai[i] > NilaiX)
NilaiX = Nilai[i];
if (Nilai[i] < NilaiY)
NilaiY = Nilai[i];
NilaiXY = NilaiXY + Nilai[1];
}
[Link] = [Link]();
[Link] = [Link]();
[Link] = [Link](NilaiXY / [Link]);
[Link] = [Link]();
Array - Multidimensi
o Untuk array 2 dimensi dapat dianggap seperti tabel elemen dengan baris dan
kolom
int[,] duadim = new int[4,5];
int[,] array2Da = new int[4, 2] { { 1, 2 }, { 3, 4 }, { 5, 6 }, { 7, 8 }
};
o Array multidimensi dapat juga berbentuk tabel 3D
int[, ,] array3Da = new int[2, 2, 3] { { { 1, 2, 3 }, { 4, 5, 6 } }, { {
7, 8, 9 }, { 10, 11, 12 } } };
Array List
Merupakan salah satu collection yang bisa digunakan untuk menampilkan daftar
atau list nilai/value, yang bersifat dinamis dan juga dapat dimodifikasi
Ukuran pada ArrayList dapat diubah dengan cara menambahkan (add) atau
menghapusnya (remove)
Tidak seperti Array pada umumnya, pada ArrayList kita tidak dapat menggunakan
tipe data primitive, seperti int, char, boolean, float, dsb
ArrayList merupakan collection yang menjadi bagian dari [Link]
Cara Mendefinisikan
Using [Link];
ArrayList deret = new ArrayList();
Perbedaan Array List vs Array
Array List ArrayList bersifat fleksible dan mudah digunakan dalam berbagai kasus
untuk penyimpanan Data yang tidak tentu jumlahnya. Dan juga ArrayList umumnya
hanya bisa menyimpan value dengan tipe data Object
Bersifat dinamis, ukuran datanya dapat di ubah dengan menambahkan atau hapus
Mampu menyimpan data dengan tipe yang berbeda
Tidak dapat menggunakan tipe data primitive
Array Array biasa tidak bersifat fleksible yang berarti mau gimana pun Anda perlu
mendeklarasikannya dengan jumlah elemen yang dibatasi
Bersifat statis ukuran data nya tidak bisa berubah sesuai dengan saat pertama kali
dibuat/definisikan
Tidak mampu menyimpan data dengan tipe yang berbeda
Dapat menggunakan tipe data primitive, seperti init, boolean, char, float,dsb
Perintah Dasar Array List
Add(), untuk menambah elemen baru
AddRange(), untuk menambah sejumlah elemen di akhir ArrayList
Capacity(), untuk menyimpan cacah elemen ArrayList
Clear(), untuk menghapus semua elemen dan data pada ArrayList
CopyTo(), untuk menyalin seluruh atau sebagian isi ArrayList ke Larik yang lain
Count(), untuk mengetahui jumlah elemen pada ArrayList
Insert(), untuk menyisipkan elemen ArrayList pada index tertentu
InsertRange(), untuk menyisipkan sejumlah elemen ArrayList pada index tertentu
Item(), untuk mengambil (Get) atau pengaturan (Set) elemen ArrayList index tertentu
Remove(), untuk menghapus elemen yang berada pada posisi pertama ArrayList
RemoveAt(), untuk menghapus elemen yang pada index tertentu ArrayList
Sort(), untuk pengurutan dari kecil ke besar ArrayList
ToArray(), untuk menyalin elemen ArrayList ke sebuah Larik lain
TrimToSize(), untuk mengatur capacity sesuai isi data ArrayList
Bit Array
Merupakan salah satu collection yang bisa digunakan untuk menampilkan daftar
atau list nilai/value, yang merepresentasikan bit dalam bentuk angka biner
Setiap bit direpresentasikan sebagai nilai boolean dimana nilainya benar jika bit
aktif (1) dan salah jika bit tidak aktif (0)
ArrayList merupakan collection yang menjadi bagian dari [Link]
Cara Mendefinisikan
Using [Link];
BitArray deret = new BitArray(ukuran);
Tumpukan / Stack
Stack atau tumpukan merupakan salah satu algoritma dalam Struktur data yang
dapat di analogikan sebagai koleksi data atau object
Algoritma Stack ini menggunakan prinsip LIFO atau Last In First Out, merupakan
konsep tumpukan yang mana Data yang di inputkan terakhir kali maka di
keluarkan terlebih dahulu
1. Seorang buruh cuci dalam suatu warung makan sedang mencuci 5 buah piring, katakan
saja piring A sampai dengan piring E ( A, B, C, D, E ), setiap selesai mencuci satu piring
buruh cuci tersebut menumpuk piring piring tersebut, misal urutan dari paling bawah
adalah A, B, C, D, E.
2. Setelah selesai semua piring tersebut diantarnya ke meja pelayanan. Beberapa saat
kemudian ada pelanggan datang dan mengambil piring paling atas terlebih dahulu
3. Beginilah konsep dari LIFO ( Last In First Out ).
Stack merupakan collection bagian dari [Link]
Cara Mendefinisikan
Using [Link];
Stack my_stack = new Stack();
Perintah Dasar Stack
Push(), untuk memasukkan elemen ke stack
Pop(), untuk mengambil elemen dari stack
Peek(), untuk melihat data teratas pada stack
Count(), untuk mengetahui jumlah elemen stack
Antrian / Queue
Queue atau antrian merupakan salah satu algoritma dalam Struktur data yang
dapat di analogikan sebagai koleksi data atau object
Algoritma Queue ini menggunakan prinsip Fifo atau First In First Out, merupakan
konsep antrian yang mana Data yang di inputkan pertama kali maka di keluarkan
terlebih dahulu
1. Dalam proses masuk ke gedung bisokop, maka orang yang telah memiliki tiket akan
segera mendekati pintu masuk untuk segera masuk ke gedung bioskop
2. Petugas akan memasukkannya ke dalam gedung bioskop satu persatu dimulai dari
urutan yang paling depan
3. Beginilah konsep dari FIFO ( First In First Out ).
Stack merupakan collection bagian dari [Link]
Cara Mendefinisikan
Using [Link];
Queue my_stack = new Queue();
Perintah Dasar Queue
Enqueue(), untuk memasukkan elemen ke queue
Dequeue(), untuk mengambil elemen dari queue
Peek(), untuk melihat data teratas pada queue
Count(), untuk mengetahui jumlah elemen queue
Terima Kasih
Algoritma dan Struktur Data
UNIJA