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.
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
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
Contoh code:
Output:
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
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 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
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:
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 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.
*) 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