Anda di halaman 1dari 65

Array

Overview
• Memperkenalkan penggunaan array, class array dan arraylist,
serta perulangan foreach dalam program.
Objectives
• Setelah menyelesaikan Unit ini, mahasiswa diharapkan mampu:
• Memahami penggunaan array 1 dimensi
• Memahami penggunaan array multi dimensi
• Memahami penggunaan class array dan arraylist
• Memahami penggunaan perulangan foreach
Contents
• Array 1 Dimensi
• Array Multi Dimensi
• Class Array dan ArrayList
• Perulangan foreach
Pendahuluan
• Array merupakan sekumpulan variabel yang memiliki tipe data
yang sama.
• Sebagai contoh, apabila kita perlu menyimpan nilai 5 orang
siswa, kita tidak harus mendeklarasikan sebanyak 5 variabel,
tetapi kita dapat menyimpannya ke dalam suatu array.
• Variabel yang terkandung dalam sebuah array disebut sebagai
elemen dari array.
• Array dapat diakses dengan menggunakan nomor index yang
dimulai dari 0 (nol).

90 80 75 100 65

Element Element Element Element Element


0 1 2 3 4
Lesson Overview
• Array merupakan sekumpulan variabel yang memiliki tipe data
yang sama yang dapat diakses dengan menggunakan indeks.
Lesson Objectives
• Setelah mempelajari Lesson ini, mahasiswa diharapkan mampu:
• Memahami penggunaan array 1 dimensi
Array 1 Dimensi
• Array dapat dideklarasikan dengan beberapa cara.
• Cara 1:
basetype[] namaArray = { nilai-1, nilai-2, ... , nilai-n };

• Contoh:
int[] number = { 10, 20, 30, 40, 50 };

• Basetype dapat berupa tipe data, struktur, enumerasi ataupun


objek.
• Contoh di atas mendeklarasikan variabel array dengan tipe
integer dimana nilai dimasukkan secara langsung ke dalam array
ketika deklarasi.
Array 1 Dimensi (Cont.)
static void Main (string[] args)
{
double[] angka = { 7.2, 3.6, 8.9, 5.1, 4.7, 2.5 };
for (int i=0; i<6; i++)
{
Console.WriteLine("Angka ke-{0} = {1}", i+1, angka[i]);
}
Console.ReadKey();
}
Array 1 Dimensi (Cont.)
• Cara 2:
basetype[] namaArray = new basetype[ukuran];

• Contoh:
int[] number = new int[5];

• Contoh di atas mendeklarasikan variabel array dengan tipe


integer yang dapat menampung 5 buah data. Cara mengisi data ke
dalam array adalah dengan menggunakan indeks.

number[0] = 10;
number[1] = 20;
number[2] = 30;
number[3] = 40;
number[4] = 50;
Array 1 Dimensi (Cont.)
static void Main (string[] args)
{
int[] nilai = new int[5];
for (int i=0; i<5; i++)
{
Console.Write("Masukkan nilai ke-{0} : ", i + 1);
nilai[i] = int.Parse(Console.ReadLine());
}
Console.Clear();
for (int i=0; i<5; i++)
{
Console.WriteLine("Nilai ke-{0} = {1}", i+1, nilai[i]);
}
Console.ReadKey();
}
Array 1 Dimensi (Cont.)
Array 1 Dimensi (Cont.)
• Cara 3:
basetype[] namaArray = new basetype[ukuran] { nilai-1,
nilai-2, ... , nilai-n };

• Contoh:
int[] number = new int[5] { 10, 20, 30, 40, 50 };

• Contoh di atas menggabungkan cara 1 dan cara 2 dimana variabel


array dideklarasikan ukuran dan isi datanya secara langsung.
Array 1 Dimensi (Cont.)
static void Main (string[] args)
{
string[] nama = new string[5] { "Ucok", "Butet", "Iyem",
"Jono", "Robi" };
for (int i=0; i<5; i++)
{
Console.WriteLine("Nama ke-{0} = {1}", i+1, nama[i]);
}
Console.ReadKey();
}
Array 1 Dimensi (Cont.)
Contoh program untuk menghitung dan menampilkan jumlah dan rata-rata
dari keseluruhan nilai pada elemen array.
static void Main(string[] args)
{
int n, total;
double rata;
Console.Write("Masukkan n : ");
n = int.Parse(Console.ReadLine());
int[] nilai = new int[n];
total = 0;
for (int i=0; i<n; i++)
{
Console.Write("Masukkan nilai ke-{0} : ", i + 1);
nilai[i] = int.Parse(Console.ReadLine());
total = total + nilai[i];
}
rata = (double)total / n;
...
Array 1 Dimensi (Cont.)
...
Console.Clear();
for (int i=0; i<n; i++)
{
Console.WriteLine("Nilai ke-{0} = {1}", i + 1, nilai[i]);
}
Console.WriteLine("Total = " + total);
Console.WriteLine("Rata-rata = " + rata.ToString("0.00"));
Console.ReadKey();
}
Latihan
1. Buatlah sebuah program untuk menyimpan dan menampilkan
data mahasiswa berupa NIM, Nama, Tanggal Lahir, dan Alamat.
Data mahasiswa di-input melalui keyboard dengan n sebagai
banyaknya mahasiswa.
2. Buatlah sebuah program untuk menyimpan dan menampilkan
data mahasiswa berupa NIM, Nama, Jurusan, dan Kelas. Jurusan
didapatkan melalui kode jurusan yang terdapat di NIM
mahasiswa yang di-input. Data mahasiswa di-input melalui
keyboard dengan n sebagai banyaknya mahasiswa.
3. Buatlah sebuah program untuk menghitung rata-rata suhu
udara selama seminggu dimana suhu setiap harinya di-input
oleh user melalui keyboard.
Latihan (Cont.)
4. Buatlah sebuah program untuk menghitung nilai huruf dari
sekumpulan mahasiswa yang datanya disimpan ke dalam
sebuah array. Data yang di-input adalah NIM, Nama, UTS, Tugas,
UAS. Data mahasiswa di-input melalui keyboard dengan n
sebagai banyaknya mahasiswa.
 Nilai Akhir = 30% x UTS + 30% x Tugas + 40% x UAS
 Nilai Huruf = “A”  90 < Nilai Akhir <= 100
 Nilai Huruf = “B+”  80 < Nilai Akhir <= 90
 Nilai Huruf = “B”  70 < Nilai Akhir <= 80
 Nilai Huruf = “C+”  60 < Nilai Akhir <= 70
 Nilai Huruf = “C”  50 < Nilai Akhir <= 60
 Nilai Huruf = “D”  Nilai Akhir <= 50
Latihan (Cont.)
5. Buatlah sebuah
program untuk
menampilkan pola
bintang seperti di
samping sesuai
NIM yang di-input
oleh user melalui
keyboard.
Lesson Summary
• Mahasiswa sekarang mampu
• Memahami penggunaan array 1 dimensi
Lesson Overview
• Array 2 dimensi berisi informasi yang disusun dalam bentuk baris
dan kolom sehingga menyerupai tabel.
Lesson Objectives
• Setelah mempelajari Lesson ini, mahasiswa diharapkan mampu:
• Memahami penggunaan array multi dimensi
Array Multi Dimensi
• Array 2 dimensi sering digunakan untuk merepresentasikan suatu
tabel berisi nilai. Tabel ini terdiri dari informasi yang disusun
dalam bentuk baris dan kolom.
• C# mendukung dua jenis array 2 dimensi, yaitu rectangular array
dan jagged array.
• Rectangular array dapat dideklarasikan dengan cara:
basetype[,] namaArray
• Contoh:
int[,] rect = { { 2, 4, 6 }, { 5, 10, 15 } };
int[,] rect = new int[2,3];
int[,] rect = new int[2,3] { { 2, 4, 6 }, { 5, 10, 15 } };
Array Multi Dimensi (Cont.)
• Untuk mengidentifikasi elemen tertentu dalam tabel, kita
memerlukan 2 buah indeks. Indeks pertama menandakan baris
elemen, sedangkan indeks kedua menandakan kolom elemen.
Kolom 0 Kolom 1 Kolom 2 Kolom 3
Baris 0 array[0,0] array[0,1] array[0,2] array[0,3]
Baris 1 array[1,0] array[1,1] array[1,2] array[1,3]
Baris 2 array[2,0] array[2,1] array[2,2] array[2,3]
• Array di atas memiliki 3 buah baris dan 4 buah kolom. Namun
demikian, indeks tetap dimulai dari 0.
• Pada rectangular array, setiap baris harus memiliki jumlah kolom
yang sama.
Array Multi Dimensi (Cont.)
static void Main (string[] args)
{
int[,] rect = {{2,4,6,8},{5,10,15,20},{7,14,21,28}};
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 4; j++)
{
Console.Write(rect[i, j] + "\t");
}
Console.WriteLine();
}
Console.ReadKey();
}
Array Multi Dimensi (Cont.)
• Jagged array merupakan array 1 dimensi yang setiap elemennya
merujuk pada array 1 dimensi lainnya.
• Dengan demikian, jagged array bersifat fleksibel karena setiap
baris dalam array tidak harus memiliki jumlah kolom yang sama.
• Jagged array dapat dideklarasikan sebagai berikut:
• Cara 1:
basetype[][] namaArray = {new basetype[] {nilai-1,nilai-2,...,nilai-n},
...
new basetype[] {nilai-1,nilai-2,...,nilai-n}}
• Contoh:
int[][] jagged = {new int[] {1,2}, //baris pertama - dua kolom
new int[] {3}, //baris kedua - satu kolom
new int[] {4,5,6}}; //baris ketiga - tiga kolom
Array Multi Dimensi (Cont.)
• Cara 2:
basetype[][] namaArray = new basetype[baris][];
namaArray[indeks] = new basetype[kolom];
...
namaArray[indeks] = new basetype[kolom];

• Contoh:
int[][] jagged = new int[3][];
jagged[0] = new int[2] {1,2};
jagged[1] = new int[1] {3};
jagged[2] = new int[3] {4,5,6};
Array Multi Dimensi (Cont.)
static void Main (string[] args)
{
int[][] jagged = {new int[] {1,2},
new int[] {3},
new int[] {4,5,6}};
foreach (var row in jagged)
{
foreach (var element in row)
{
Console.Write(element + "\t");
}
Console.WriteLine();
}
Console.ReadKey();
}
Array Multi Dimensi (Cont.)
• Array multi dimensi boleh memiliki lebih dari 2 dimensi.
• Caranya adalah dengan menambahkan koma ke dalam deklarasi
array.
• Contoh:
int[,,] arr; → Array 3 dimensi
int[,,,] arr; → Array 4 dimensi
int[,,,,] arr; → Array 5 dimensi
dan seterusnya
Property Array
• Array memiliki beberapa property yang dapat dipakai, seperti:
.GetLength(dimensi) : untuk mengambil jumlah elemen yang
terdapat pada dimensi.
.GetLowerBound(dimensi) : untuk mengambil nilai indeks
terendah pada dimensi.
.GetUpperBound(dimensi) : untuk mengambil nilai indeks
tertinggi pada dimensi.
.Length : untuk mengambil jumlah elemen yang ada pada variabel
array secara keseluruhan.
.Rank : untuk mengambil jumlah dimensi yang ada pada variabel
array.
Property Array (Cont.)
static void Main (string[] args)
{
int[,] rect = new int[3, 4] {{2,4,6,8},{5,10,15,20},{7,14,21,28}};
Console.WriteLine("Banyak elemen pada dimensi-1 : " + rect.GetLength(0));
Console.WriteLine("Banyak elemen pada dimensi-2 : " + rect.GetLength(1));
Console.WriteLine("Indeks terendah pada dimensi-1 : " + rect.GetLowerBound(0));
Console.WriteLine("Indeks terendah pada dimensi-2 : " + rect.GetLowerBound(1));
Console.WriteLine("Indeks tertinggi pada dimensi-1 : " + rect.GetUpperBound(0));
Console.WriteLine("Indeks tertinggi pada dimensi-2 : " + rect.GetUpperBound(1));
Console.WriteLine("Banyak elemen keseluruhan : " + rect.Length);
Console.WriteLine("Banyak dimensi : " + rect.Rank);
Console.ReadKey();
}
Metode Array
• Array memiliki beberapa metode yang dapat dipakai, seperti:
.Max : untuk mengambil nilai tertinggi yang terdapat pada array.
.Min : untuk mengambil nilai terendah yang terdapat pada array.
.Sum : untuk mengambil total nilai yang terdapat pada indeks.

• Metode di atas hanya berlaku untuk array 1 dimensi yang


memiliki tipe data berupa angka seperti integer, double, byte, dll.
Metode Array (Cont.)
static void Main(string[] args)
{
int n;
double rata;
Console.Write("Masukkan n : ");
n = int.Parse(Console.ReadLine());
int[] nilai = new int[n];
for (int i = 0; i <= nilai.GetUpperBound(0); i++)
{
Console.Write("Masukkan nilai ke-{0} : ", i + 1);
nilai[i] = int.Parse(Console.ReadLine());
}
rata = (double)nilai.Sum() / nilai.Length;
...
Metode Array (Cont.)
...
Console.Clear();
for (int i = 0; i < nilai.Length; i++)
{
Console.WriteLine("Nilai ke-{0} = {1}", i + 1, nilai[i]);
}
Console.WriteLine("Total = " + nilai.Sum());
Console.WriteLine("Rata-rata = " + rata.ToString("0.00"));
Console.ReadKey();
}
Latihan
1. Bagaimana mendeklarasikan array-array berikut?

30 40 50 30 40 50

Baju Celana Z X c V B N
Sendok Garpu A S D F G H
Amplop Perangko q W e R t Y

0.1 2.4 4.7 6.9 8.5


3.8 6.5 9.3
7.2 6.0 5.1 4.4 3.6 1.2
Latihan (Cont.)
2. Buatlah program untuk menghitung dan menampilkan hasil
penjumlahan serta pengurangan dua matriks!

1 4 7 1 2 3 2 6 10
2 5 8 4 5 6 6 10 14
3 6 9 7 8 9 10 14 18

1 4 7 1 2 3 0 2 4
2 5 8 4 5 6 -2 0 2
3 6 9 7 8 9 -4 -2 0
Lesson Summary
• Mahasiswa sekarang mampu:
• Memahami penggunaan array multi dimensi
Lesson Overview
• Class Array dan ArrayList berisi sejumlah fungsi untuk mengelola dan
memanipulasi array.
Lesson Objectives
• Setelah mempelajari Lesson ini, mahasiswa diharapkan mampu:
• Memahami penggunaan class array dan arraylist
Class Array
• Class Array merupakan kelas yang berisi sejumlah fungsi
untuk mengelola array.
Perintah Fungsi

Array.Clear(...) Membersihkan isi array

Array.Copy(...) Menggandakan isi array

Array.IndexOf(...) Mencari isi array dari indeks 0

Array.LastIndexOf(...) Mencari isi array dari indeks terakhir

Array.Resize(...) Mengubah ukuran array

Array.Reverse(...) Membalikkan isi array

Array.Sort(...) Mengurutkan isi array secara ascending


Class Array (Cont.)
static void Main (string[] args)
{
int[] arr1 = new int[8] { 37, 54, 98, 12, 60, 41, 75, 8 };
int[] arr2 = new int[8];
Console.WriteLine("Awal\n" + new string('=',4));
Console.Write("Array 1:\t");
foreach (int element in arr1)
{
Console.Write(element + "\t");
}
Console.Write("\nArray 2:\t");
foreach (int element in arr2)
{
Console.Write(element + "\t");
}
Array.Copy(arr1, arr2, 8);
Array.Clear(arr1, 0, 8);
...
Class Array (Cont.)
...
Console.WriteLine("\n\nAkhir\n" + new string('=', 5));
Console.Write("Array 1:\t");
foreach (int element in arr1)
{
Console.Write(element + "\t");
}
Console.Write("\nArray 2:\t");
foreach (int element in arr2)
{
Console.Write(element + "\t");
}
Array.Sort(arr2);
Console.Write("\nSort :\t");
foreach (int element in arr2)
{
Console.Write(element + "\t");
}
...
Class Array (Cont.)
...
Array.Reverse(arr2);
Console.Write("\nReverse:\t");
foreach (int element in arr2)
{
Console.Write(element + "\t");
}
Console.ReadKey();
}
Class Array (Cont.)
static void Main(string[] args)
{
int[] arr1 = new int[8] { 37, 12, 98, 56, 60, 41, 12, 75 };
Console.WriteLine("IndexOf 12 : " + Array.IndexOf(arr1, 12));
Console.WriteLine("LastIndexOf 12: " + Array.LastIndexOf(arr1, 12));
Console.WriteLine("IndexOf 50 : " + Array.IndexOf(arr1, 50));
Console.WriteLine("LastIndexOf 50: " + Array.LastIndexOf(arr1, 50));
Console.ReadKey();
}
Class Array (Cont.)
static void Main(string[] args)
{
int[] arr1 = new int[8] { 37, 12, 98, 56, 60, 41, 12, 75 };
Console.Write("Array : ");
foreach (int element in arr1)
{
Console.Write(element + "\t");
}
Array.Resize(ref arr1, 5);
Console.Write("\nResize: ");
foreach (int element in arr1)
{
Console.Write(element + "\t");
}
...
Class Array (Cont.)
...
Array.Resize(ref arr1, 10);
Console.Write("\nResize: ");
foreach (int element in arr1)
{
Console.Write(element + "\t");
}
Console.ReadKey();
}
ArrayList
• Wajib melakukan import namespace dengan perintah:
using System.Collections;
• ArrayList berisi sejumlah fungsi untuk mengelola array.
Perintah Fungsi

.Add(...) Menambahkan elemen array

.Insert(...) Menyisipkan elemen array ke indeks tertentu

.Remove(...) Menghapus elemen tertentu

.RemoveAt(...) Menghapus elemen pada indeks tertentu

.Count Menghitung jumlah elemen array

.CopyTo(...) Menggandakan elemen array ke array lain

.Clear(...) Menghapus semua elemen array


ArrayList (Cont.)
Perintah Fungsi

.IndexOf(...) Mencari elemen array dari indeks terdepan

.LastIndexOf(...) Mencari elemen array dari indeks terakhir

.Sort(...) Mengurutkan elemen secara ascending

.Reverse(...) Membalikkan urutan elemen array


ArrayList (Cont.)
static void Main(string[] args)
{
ArrayList arr = new ArrayList();
Console.Write("ArrayList 1 : ");
for (int i = 0; i < 10; i++)
{
arr.Add(i * 10);
Console.Write("{0} ", arr[i]);
}
arr.Insert(3, 25);
arr.Insert(9, 75);
Console.Write("\nArrayList 2 : ");
...
ArrayList (Cont.)
...
foreach (int element in arr)
{
Console.Write("{0} ", element);
}
arr.Remove(90);
arr.RemoveAt(0);
Console.Write("\nArrayList 3 : ");
foreach (int element in arr)
{
Console.Write("{0} ", element);
}
Console.Write("\nJumlah : {0}", arr.Count);
arr.Clear();
...
ArrayList (Cont.)
...
Console.Write("\nArrayList 4 : ");
foreach (int element in arr)
{
Console.Write("{0} ", element);
}
Console.Write("\nJumlah : {0}", arr.Count);
Console.ReadKey();
}
Lesson Summary
• Mahasiswa sekarang mampu:
• Memahami penggunaan class array dan arraylist
Lesson Overview
• Perulangan foreach merupakan perulangan khusus yang dalam
banyak kondisi dapat menyederhanakan pemrosesan array.
Lesson Objectives
• Setelah mempelajari Lesson ini, mahasiswa diharapkan mampu:
• Memahami penggunaan perulangan foreach
Perulangan foreach
• C# menyediakan perulangan khusus yang dalam banyak kondisi
dapat menyederhanakan pemrosesan array, yaitu perulangan
foreach.
• Ketika kita menggunakan perulangan foreach dalam array,
perulangan akan dilakukan untuk setiap elemen dalam array.
 Sebagai contoh, apabila kita menggunakan perulangan foreach pada array
yang memiliki 5 elemen, maka perulangan akan dilakukan sebanyak 5
kali.
• Karena perulangan foreach secara otomatis mengetahui jumlah
elemen dalam array, kita tidak perlu menggunakan counter
variable seperti dalam perulangan biasa.
Perulangan foreach (Cont.)
• Perulangan foreach didesain untuk bekerja dengan variabel
sementara dan readonly yang dikenal sebagai iteration variable.
Pada setiap perulangan, isi elemen array akan di-copy ke iteration variable.
Sehingga pada perulangan pertama, iteration variable berisi elemen 0, pada
perulangan kedua, iteration variable berisi elemen 1, dan seterusnya.

• Sintaks penulisan:
foreach (datatype iterationVariable in arrayName)
{
Pernyataan / Aksi
}
Perulangan foreach (Cont.)
static void Main(string[] args)
{
int[] nilai = { 10, 20, 30, 40, 50 };
string[] buah = { "apel", "jeruk", "pir", "melon", "nenas" };
foreach (int element in nilai)
{
Console.Write(element + "\t");
}
Console.WriteLine();
foreach (string element in buah)
{
Console.Write(element + "\t");
}
Console.ReadKey();
}
Perulangan for vs foreach
• Apabila kita ingin membaca nilai yang tersimpan pada array dari
elemen pertama sampai elemen terakhir, lebih mudah
menggunakan perulangan foreach daripada perulangan for,
karena kita tidak perlu mengkhawatirkan ukuran array dan kita
tidak perlu membuat counter variable.
• Akan tetapi, ada kalanya perulangan foreach tidak dapat dipakai
karena keterbatasan iteration variable yang bersifat readonly.
• Perulangan foreach tidak dapat dipakai jika kita ingin melakukan:
Mengubah isi elemen array
Bekerja dengan elemen array dalam urutan reverse (terbalik)
Mengakses beberapa elemen array (bukan semua elemen)
Bekerja dengan 2 atau lebih array secara bersamaan dalam perulangan
• Untuk kasus-kasus di atas, gunakanlah perulangan for.
Lesson Summary
• Mahasiswa sekarang mampu
• Memahami penggunaan perulangan foreach
Summary
• Sekarang mahasiswa mampu:
• Memahami penggunaan array 1 dimensi
• Memahami penggunaan array multi dimensi
• Memahami penggunaan class array dan arraylist
• Memahami penggunaan perulangan foreach
Question & Answers

Anda mungkin juga menyukai