Anda di halaman 1dari 21

Array,

Struct (Struktur)
Oleh :
Tim Penyusun MKU Pengantar Coding

Lisensi Dokumen:
Copyright © 2020 Universitas Negeri Padang
Seluruh dokumen di e-Learning Universitas Negeri Padang, hanya digunakan untuk kalangan
Internal Universitas, untuk kebutuhan Perkuliahan Online. Penggunaan dokumen ini di luar UNP tidak
diizinka dan tidak diperbolehkan melakukan penulisan ulang, kecuali mendapatkan ijin terlebih dahulu dari
Penulis dan Universitas Negeri Padang.

A. Capaian Pembelajaran*)
Setelah mempelajari materi ini diharapkan mahasiswa mampu mengenali,
memahami, menunjukan, menerapkan Tipe data bentukan Array dan struktur serta
operasi terhadapnya.

B. Indikator Pencapaian Kompetensi*)


Untuk mencapai kompetensi yang diharapkan, ditetapkan indikator sebagai berikut :
1. Mahasiswa dapat menjelaskan pengertian tipe data bentukan array berdimensi 1
dan 2 dengan tepat
2. Mahasiswa dapat membuat tipe data bentukan array berdimensi 1 dan 2 dengan
tepat
3. Mahasiswa dapat menentukan operasi-operasi terhadap array berdimensi 1 dan 2
dengan tepat
4. Mahasiswa dapat menjelaskan pengertian tipe data bentukan struktur atau
rekaman dengan tepat
5. Mahasiswa dapat membuat tipe data bentukan struktur atau rekaman dengan tepat
6. Mahasiswa dapat menentukan operasi-operasi terhadap struktur atau rekaman
dengan tepat.

C. Pokok – Pokok Materi*)


1. Array berdimensi satu
2. Array berdimensi dua

D. Uraian Materi*)

1. Array
Selama ini untuk menyimpan 1 buah nilai dengan tipe data tertentu dilakukan
dengan menggunakan satu variabel seperti:
int a1, a2, a3, a4, a5;
Deklarasi variabel tersebut digunakan untuk menyimpan 5 data integer dimana
masing-masing variabel diberi nama a1, a2, a3, a4, dan a5. Bagaimana bila
datanya berjumlah 10 data, 100 data integer bahkan mungkin data yang ingin
diproses tidak kita ketahui atau bersifat dinamis? Penggunaan variabel tersebut
tidak mungkin dilakukan.
Bagaimana jika ingin menghitung total dari variabel biasa?
total = x1 + x2 + x3 + x4 + x5 + … + xn;
Untuk mengatasi masalah tersebut dapat menggunakan Array.

Dalam matematika dikenal variabel berindeks x0, x1, x2, …, xn-1. Angka 0, 1, 2,
…, n-1 pada variabel x disebut sebagai indeks atau subscript.
Variabel berindeks diimplementasikan dalam program berupa array x[0], x[1],
x[2], …, x[n1], dengan n adalah ukuran array.
Selang nilai yang valid bagi indeks suatu variabel array berukuran n adalah 0
sampai dengan n-1.
Pengertian Array
Dalam beberapa literatur, array sering diterjemahkan sebagai larik. Array
merupakan kumpulan dari nilai-nilai data yang bertipe sama dalam urutan tertentu
yang menggunakan nama yang sama. Nilai-nilai data di suatu array disebut
dengan elemen-elemen array. Letak atau posisi dari elemen array ditunjukkan oleh
suatu index atau subscript. Dilihat dari dimensinya array dapat dibagi menjadi
Array berdimensi satu (1D), Array berdimensi dua (2D) dan Array berdimensi
banyak. Elemen array disimpan di memori secara berurutan.

Kegunaan Array
Array digunakan untuk menyimpan data-data yang diinputkan masing-masing
kedalam memory komputer secara bersebelahan.
Contoh kasus yang membutuhkan array:
✓ Daftar pegawai perusahaan tertentu
✓ Daftar nilai tes dari suatu matakuliah tertentu
✓ Daftar customer dan nomor teleponnya

a. Array Berdimensi 1 (Array 1D)


• Setiap elemen array dapat diakses melalui indeks.
• Indeks array secara default dimulai dari 0.
• Deklarasi Array
tipe nama_var[ukuran];
dimana :
tipe = menyatakan jenis elemen array (ex. char, int)
nama_var = nama variabel array
ukuran = menyatakan jumlah maksimal elemen array
Contoh :
int a[5];
Di bahasa C, semua array memiliki nol sebagai indeks elemen
pertamanya. Ini mendeklarasikan array integer yang memiliki
lima elemen, contoh [0] sampai contoh [4].
Contoh lain:
float x[10];
int d[3]={0};
int c[]={-40, 6, 0, 75, 1500};

Nomor posisi dalam tanda kurung


siku disebut subcript. Sebuah
subskrip bisa berupa integer atau
ekspresi integer. Misalnya jika x = 1
Nama array dan y = 2, maka c[x + y] sama
dengan c[3].
Indeks merupakan posisi yang dimulai dari 0

Ada 2 cara untuk inisialisasi array, yaitu selama kompilasi dan selama
eksekusi.
Selama Kompilasi:
• int arr[ ] = {1, 2, 3, 4, 5};
array yang tidak ditentukan ukurannya elemennya. Hanya dapat
mendefenisikan berapa elemen yang diinginkan karena ukuran array
tidak diberikan.
• int arr[3] = {10, 21, 35};
Dapat didefinisikan hanya 3 elemen karena ukuran array telah
diberikan yaitu 3
• int arr[5] = {2, 5};
inisialisasi 2 elemen awal yaitu 2 dan 4, dan elemen yang lain
diinisialisasi dengan nol.
• int arr[5] = {0};
inisialisasi semua elemen array dengan nol.

Selama Eksekusi:
• Menggunakan loop untuk inisialisasi semua elemen dengan nol

• Menggunakan loop dan menanyakan user untuk menentukan nilai


dari setiap elemen.
Pengaksesan elemen array:
nama_var[indeks];
Contoh :
nilai[0] = 34;
nilai[1] = 56;
nilai[2] = 63;
nilai[3] = 77;
nilai[4] = 98;
Cara lain :
int nilai[5] = {34,56,63,77,98};
scanf ("%d", &nilai[3]); → input nilai dari keyboard

Contoh code:

Penentuan nilai pada elemen array:


• Penandaan nilai pada elemen array tertentu dengan menggunakan
nomor indeknya.
Contoh: misalkan kita memiliki array yang mewakili jumlah penghuni
di 5 unit apartemen.
int apartemen[5] = {3, 2, 5, 4, 6};

• Inisialisasi tersebut mengindikasikan bahwa ada 3 orang yang tinggal


di apartemen nomor 0, 2 orang di apartemen nomor 1, 5 orang di
apartemen no 2, dan seterusnya.
• Misalkan ada bayi yang baru lahir di apartemen no 3, sehingga perlu
perubahan jumlah penghuni yang tinggal di apartemen no 3.
int apartemen[3] = apartemen[3] + 1;

• Sehingga didapat nilai berikut dalam array:


[0] [1] [2] [3] [4]
apartemen 3 2 5 5 6

Membaca Nilai dari Elemen Array:


• Nilai dari elemen array tertentu dengan mengacu pada indeks.
• Contoh, misalkan untuk mengetahui berapa banyak orang yang
tinggal di apartemen 3, secara sederhana dengan cara:
int apartemen[5] = {3, 2, 5, 4, 6};
int jumlah_orang;
jumlah_orang = apartemen[3];
printf("Apartemen 3 memiliki %d orang", jumlah_orang);

• Code C diatas akan menghasilkan output:


Contoh Code:

Code 1: Mencari Total Penghuni

Output:

Code 2: Menampilkan jumlah penghuni tiap apartemen

Output:
Pencarian Data
• Pencarian adalah proses untuk menentukan apakah sebuah array berisi
nilai yang cocok dengan nilai kunci / kunci pencarian tertentu.
• Proses menemukan elemen tertentu dari sebuah array disebut pencarian.
• Ada lebih dari satu algoritma yang dapat digunakan untuk melakukan
pencarian.
• Teknik pencarian yang paling umum digunakan adalah pencarian linier
dan pencarian biner.

Pencarian Linier
• Kunci Pencarian adalah elemen data dengan jenis yang sama seperti daftar
elemen.
✓ Jika kunci pencarian == daftar nilai elemen, pencarian dikatakan
berhasil.
✓ Jika tidak, maka pencarian tidak berhasil.
• Pencarian linier adalah algoritma pencarian sederhana dimana:
✓ data disimpan dalam array
✓ kunci pencarian dibandingkan dengan setiap elemen dalam array yang
dimulai dari elemen pertama.
Contoh:
Output:

Latihan

1) Modifikasi contoh code 1 diatas, tulislah sebuah program yang mencetak


jumlah rata-rata penghuni apartemen.
2) Diberikan daftar urutan bilangan floating point berikut, tulis program
untuk menentukan median dan standar deviasi.
∑(𝑥−𝑥̅ )2
Standar deviasi, 𝑠 = √
𝑛−1

{1.0, 6.0, 18.0, 39.0, 86.0}

b. Array Berdimensi 2 (Array 2D)


Array 2D adalah struktur yang lebih menarik dibandingkan dengan array satu
dimensi. Cara termudah untuk memahami atau memikirkan tentang array 2D
adalah dengan memvisualisasikan tabel dengan baris dan kolom (misalnya,
papan catur, spreadsheet, dsb). Bahasa C mengimplementasikan array 2D
sebagai array 1D dengan penunjuk ke array 1D lainnya. Untuk memudahkan
pemahaman, bayangkan array 2D sebagai kisi atau tabel seperti yang
disebutkan diatas.
Array 2D dibuat mirip dengan array 1D, tetapi dengan satu pengecualian:
array 2D harus dideklarasikan dengan dua nomor elemen terpisah (nomor
kolom dan nomor baris) seperti yang ditunjukkan berikutnya:
int X[3][3];

Deklarasi array di atas membuat total 9 elemen (ingat bahwa indeks array
dimulai dengan angka 0). Array 2D diakses dengan dua nomor elemen, satu
untuk kolom dan satu untuk baris.
Kolom 0 Kolom 1 Kolom 2
Baris 0 X[0][0] X[0][1] X[0][2]
Baris 1 X[1][0] X[1][1] X[1][2]
Baris 2 X[2][0] X[2][1] X[2][2]

• Array dua dimensi merupakan array yang terdiri dari m buah baris dan n
buah kolom.
• Bentuknya dapat berupa matriks atau tabel.
• Deklarasi array :
tipe_array nama_array[baris][kolom];
contoh:
int myarray[4][2] = {1, 2, 3, 4, 5, 6, 7, 8};
Kolom 0 Kolom 1
Baris 0 1 2
Baris 1 3 4 Array ini memiliki 4 baris dan 2 kolom
Baris 2 5 6
Baris 3 7 8

Inisialisasi variabel dapat juga dilakukan dengan cara:


int myarray[4][2] = {{1, 2}, {3, 4}, {5, 6}, {7, 8}};
metode ini tidak terlalu membingungkan, karena pembagian baris dan kolom
dapat dilihat lebih jelas.
Untuk menginisialisasi array 2D selama eksekusi, perlu menggunakan for
loop bersarang:

Inisialisasi Array 2D
Array 2D dapat diinisialisasi dimensi dengan beberapa cara. Pertama,
Inisialisasi array 2D dengan deklarasi, seperti yang ditunjukkan berikut:
int X[3][3] = { {0, 1, 2}, {0, 1, 2}, {0, 1, 2} };
Setiap kelompok braces (kurung kurawal) menginisialisasikan sebuah baris
tunggal elemen. Sebagai contoh, X[0][0] bernilai 0, X[0][1] bernilai 1, dan
X[0][2] bernilai 2. Tabel 5.1 menunjukkan nilai yang ditetapkan untuk array

2D diatas.
Tabel 5.1 Nilai array 2D setelah inisialisasi
Referensi Elemen Nilai
X[0][0] 0
X[0][1] 1
X[0][2] 2
X[1][0] 0
X[1][1] 1
X[1][2] 2
X[2][0] 0
X[2][1] 1
X[2][2] 2

Selain itu, untuk inisialisasi array 2D dapat menggunakan struktur


perulangan, seperti perulangan for. Untuk menginisialisasi atau mencari array
2D sedikit rumit. Pada dasarnya, harus membuat struktur perulangan
bersarang untuk mencari atau mengakses setiap elemen, seperti yang
ditunjukkan di program berikut:
Output:

Dari program diatas, loop bersarang diperlukan untuk mencari array 2D. Pada
contoh sebelumnya, kombinasi pertama dari struktur perulangan
menginisialisasi setiap elemen ke variabel m ditambah variabel n. Selain itu,
loop luar mengontrol jumlah iterasi melalui baris (ada tiga baris). Setelah
berada di dalam loop pertama, loop dalam mengambil alih dan mengulang
tiga kali untuk setiap loop luar. Loop dalam menggunakan variabel terpisah,
m, untuk mengulang setiap nomor kolom dari baris saat ini (tiga kolom di
setiap baris). Pengelompokan loop terakhir mengakses setiap elemen dan
mencetak ke output standar menggunakan fungsi printf ().

Searching Array 2D
Konsep di balik pencarian array dua dimensi mirip dengan pencarian array
1D. Nilai yang dapat ditelusuri harus diterima, seperti masukan pengguna,
lalu menelusuri konten array hingga nilai ditemukan atau seluruh arrat telah
dicari tanpa kecocokan.
Saat mencari array 2D, harus menggunakan teknik perulangan bersarang yang
telah jelaskan sebelumnya. Konstruksi perulangan bersarang memungkinkan
pencarian setiap elemen array secara individual.
Program berikut menunjukkan bagaimana mencari array 2D
Output:

Arsitektur struktur perulangan bersarang sebelumnya adalah tema yang


berulang saat menangani array 2D. Lebih khusus lagi, harus menggunakan
dua loop untuk mencari array 2D: satu loop untuk mencari baris dan loop
dalam untuk mencari baris loop luar di setiap kolom.
Selain menggunakan array multidimensi, digunakan array 1D, yang disebut
iFoundAt, untuk menyimpan lokasi baris dan kolom dari array 2D jika nilai
pencarian ditemukan. Jika nilai pencarian ditemukan, makan pengguna diberi
tahu di mana nilainya ditemukan.
2. Struct (Struktur)
Definisi Struktur
Struktur yaitu pengelompokan dari variabel-variabel atau sejumlah data dengan
tipe yang berlainan yang bernaung dalam satu nama yang sama. Struktur biasa
digunakan untuk mengelompokkan beberapa informasi yang berkaitan dengan
sebuah kesatuan, atau biasanya disebut dengan record.
Variabel-variabel yang membentuk suatu struktur, selanjutnya disebut sebagai
elemen dari struktur atau field. Dengan demikian dimungkinkan suatu struktur
dapat berisi elemen-elemen data berbeda tipe seperti char, int, float, double, dan
lain-lain. Contoh sebuah struktur adalah informasi data tanggal (date) yang berisi:
• day
• month, dan
• year

Mendefinisikan & Mendeklarasikan Struktur


Suatu struktur didefinisikan dengan menggunakan kata kunci struct. Contoh
pendefinisian sebuah tipe data struktur:

yang mendefinisikan sebuah tipe data struktur bernama date yang memiliki tiga
buah elemen (field) berupa:
• day
• month
• year
kata kunci nama tipe struktur

masing-masing
mengawali & disebut field atau
mengakhiri elemen struktur
elemen-elemen
struktur

Untuk mendeklarasikan sebuah variabel today yang bertipe struktur date


pernyataan yang diperlukan adalah sebagai berikut:

struct date today;

nama tipe struktur variabel struktur

Pernyataan tersebut menyatakan bahwa variabel today bertipe struktur date.


Dalam mendefinisikan sebuah struktur, elemen yang terkandung di dalamnya bisa
juga berupa sebuah struktur, contoh :

Diagram struktur data dari variabel mhs dapat digambarkan sbb :


Mengakses Elemen Struktur
Elemen dari suatu variabel struktur dapat diakses dengan menyebutkan nama
variabel struktur diikuti dengan operator titik (‘.’) dan nama dari elemen
strukturnya. Cara penulisannya sebagai berikut:
variabel_struktur.nama_field

Untuk memberikan data nama ke field name dari variabel student di atas, maka
pernyataan yang diperlukan misalnya adalah :
strcpy(mhs.name, "MUHAMMAD IHSAN");
Pada pernyataan di atas, mhs.name dapat dibaca sebagai "field name dari mhs".
Contoh berikut merupakan instruksi untuk mengisikan data pada field birthday :
mhs.birthday.day = 10;

Sedangkan untuk mendapatkan isi suatu field dari variabel struktur, contohnya :
• tgl = mhs.birthday.day;
• puts(mhs.name);
Contoh pertama merupakan instruksi untuk memberikan isi dari field day ke
variabel tgl. Sedangkan contoh kedua merupakan instruksi untuk menampilkan isi
dari field name.
Berikut merupakan contoh yang melibatkan variabel struktur. Mula-mula field
dari struktur diisi dengan suatu data, kemudian isinya ditampilkan.
Output:

Menginisialisasi Struktur
Sebuah struktur juga bisa diinisialisasi pada saat dideklarasikan. Hal ini serupa
dengan inisialisasi array, yaitu elemen-elemennya dituliskan di dalam sepasang
kurung kurawal (‘{ }‘) dengan masing-masing dipisahkan dengan koma.
Deklarasi struktur didahului dengan kata kunci static, contoh
static struct zodiak bintang =
{"Sagitarius", 22, 11, 21, 12};
Selengkapnya lihat contoh berikut:

Output:

Latihan
Buatlah potongan program untuk soal-soal di bawah ini
1) Definisikan sebuah struktur (misalkan namanya = record) yang memiliki 3
buah field berupa sebuah integer (misalkan namanya = loop), sebuah array
karakter dengan 5 elemen (misalkan namanya = word) dan sebuah float
(misalkan namanya = sum).
2) Deklarasikan sebuah variabel struktur (misalkan namanya = sample) yang
didefinisikan memiliki tipe struktur record.
3) Masukkan nilai 10 kepada field loop dari struktur sample yang bertipe
struktur record tsb.
4) Tampilkan ke layar (menggunakan fungsi printf()) string yang tersimpan
dalam array word dari struktur sample.
5) Definisikan sebuah struktur (misalkan namanya = date) yang memiliki 3 field
bertipe int (misalkan namanya = day, month dan year). Kemudian tuliskan
potongan program untuk memasukkan 5 buah tanggal yang disimpan dalam
sebuah array struktur yang bertipe date.

E. Aktivitas Pembelajaran*)
Untuk menunjang keberhasilan pembelajaran daring dan luring, maka
mahasiswa dapat mengikuti aktifitas pembelajaran sebagai berikut :
Menu Aktifitas Keterangan
Informasi, Kehadiran dan Tatap Maya
1. Informasi Mahasiswa melihat
Perkuliahan informasi terbaru terkait
perkuliahan melalui menu
Announcement
2. Presensi Mahasiswa melakukan
Online pengisian presensi online
3. Tatap Maya Mahasiswa melakukan
tatap maya (web
conference) sesuai dengan
jadwal yang ditetapkan
oleh dosen (opsional)
Sumber Belajar
3. Modul Ajar Mahasiswa mempelajari
materi kuliah melalui
Modul Ajar
4. Slide Mahasiswa mempelajari
intisari materi melalui slide
presentasi
5. Video Mahasiswa menyaksikan
Pendukung tayangan video pendukung
yang berisi materi contoh
pemrograman dengan
menerapkan array, stuktur,
dan rekaman.
Aktifitas Belajar
6. Latihan Mahasiswa mengerjakan
Latihan membuat program
sederhana.
7. Tugas Mahasiswa mengerjakan
tugas proyek dengan
menerapkan array, stuktur,
dan rekaman dalam
menyelesaikan masalah
sederhana.
8. Tes Online Mahasiswa mengikuti Tes
yang dilakukan pada akhir
topik bahasan materi
(Opsional)

F. Rangkuman*)
Array merupakan kumpulan dari nilai-nilai data yang bertipe sama dalam
urutan tertentu yang menggunakan nama yang sama. Nilai-nilai data di suatu
array disebut dengan elemen-elemen array. Letak atau posisi dari elemen array
ditunjukkan oleh suatu index atau subscript. Dilihat dari dimensinya array dapat
dibagi menjadi Array berdimensi satu (1D), Array berdimensi dua (2D) dan
Array berdimensi banyak.
Array digunakan untuk menyimpan data-data yang diinputkan masing-masing
kedalam memory komputer secara bersebelahan.
Contoh kasus yang membutuhkan array:
✓ Daftar pegawai perusahaan tertentu
✓ Daftar nilai tes dari suatu matakuliah tertentu
✓ Daftar customer dan nomor teleponnya
Struktur yaitu pengelompokan dari variabel-variabel atau sejumlah data dengan tipe
yang berlainan yang bernaung dalam satu nama yang sama. Struktur biasa digunakan
untuk mengelompokkan beberapa informasi yang berkaitan dengan sebuah kesatuan,
atau biasanya disebut dengan record.
G. Latihan/Kasus/Tugas**)
Tugas
Jika sebuah buku memiliki judul, nama pengarang, jumlah halaman, penerbit,
dan tahun terbit maka:
1. Deklarasikan sebuah struct untuk menghimpun data buku tersebut.
2. Deklarasikan array berukuran 5 bertipe struct tersebut.

H. Tes Formatif & Kunci Jawaban**)


Tes formatif (10 soal)
I. Daftar Rujukan**)

*) Ditulis dalam modul ini yang kemudian saat dipublikasikan ke e-Learning di upload dalam format PDF
**) Di tulis dalam dokumen terpisah dan dijadikan sebagai bagian dari Aktifitas pada e-Learning

Anda mungkin juga menyukai