Modul 6 Array [PDF]

  • 0 0 0
  • Suka dengan makalah ini dan mengunduhnya? Anda bisa menerbitkan file PDF Anda sendiri secara online secara gratis dalam beberapa menit saja! Sign Up
File loading please wait...
Citation preview

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 dan y = 2, maka c[x + y] sama dengan c[3].



Nama array



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: apartemen



[0]



[1]



[2]



[3]



[4]



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.



Baris 0 Baris 1 Baris 2







Kolom 0 X[0][0] X[1][0] X[2][0]



Kolom 1 X[0][1] X[1][1] X[2][1]



Kolom 2 X[0][2] X[1][2] 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}; Baris Baris Baris Baris



0 1 2 3



Kolom 0 Kolom 1 1 2 3 4 5 6 7 8



Array ini memiliki 4 baris dan 2 kolom



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 disebut field atau elemen struktur



mengawali & mengakhiri 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 Informasi, Kehadiran dan Tatap Maya Informasi 1. Perkuliahan



3.



Presensi Online Tatap Maya



Sumber Belajar 3.



Modul Ajar



4.



Slide



5.



Video Pendukung



2.



Aktifitas Belajar



Keterangan Mahasiswa melihat informasi terbaru terkait perkuliahan melalui menu Announcement Mahasiswa melakukan pengisian presensi online Mahasiswa melakukan tatap maya (web conference) sesuai dengan jadwal yang ditetapkan oleh dosen (opsional) Mahasiswa mempelajari materi kuliah melalui Modul Ajar Mahasiswa mempelajari intisari materi melalui slide presentasi Mahasiswa menyaksikan tayangan video pendukung yang berisi materi contoh pemrograman dengan menerapkan array, stuktur, dan rekaman.



6.



Latihan



7.



Tugas



8.



Tes Online



Mahasiswa mengerjakan Latihan membuat program sederhana. Mahasiswa mengerjakan tugas proyek dengan menerapkan array, stuktur, dan rekaman dalam menyelesaikan masalah sederhana. 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