0% menganggap dokumen ini bermanfaat (0 suara)
71 tayangan

Modul 4 Pemrograman Array

Modul ini membahas konsep array dan struct dalam bahasa pemrograman. Modul ini menjelaskan pengertian array satu dan multidimensi, cara mendeklarasikan dan mengakses elemen array. Selain itu, modul ini juga menjelaskan pengertian struct, cara mendeklarasikan struct dan mengakses anggota struct. Langkah praktikum memberikan contoh kode untuk mengurutkan bilangan menggunakan array satu dimensi dan penjumlahan matriks menggunakan array dua

Diunggah oleh

fadhilkh
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
71 tayangan

Modul 4 Pemrograman Array

Modul ini membahas konsep array dan struct dalam bahasa pemrograman. Modul ini menjelaskan pengertian array satu dan multidimensi, cara mendeklarasikan dan mengakses elemen array. Selain itu, modul ini juga menjelaskan pengertian struct, cara mendeklarasikan struct dan mengakses anggota struct. Langkah praktikum memberikan contoh kode untuk mengurutkan bilangan menggunakan array satu dimensi dan penjumlahan matriks menggunakan array dua

Diunggah oleh

fadhilkh
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 12

Modul 4

Array (Larik)
1. Tujuan Praktikum
Setelah mempelajari bab ini mahasiswa diharapkan akan mampu :
 Mengetahui dan memahami penggunaan array
 Mengenali jenis-jenis array
 Memahami dan mengenali penggunaan struct
 Membuat program sederhana dengan menggunakan konsep array
 Membuat program sederhana dengan menggunakan konsep struct

2. Alat dan Bahan


 Text Editor (bebas, disarankan Visual Studio Code)
 Compiler (MinGW-w64)

3. Teori Dasar
Array adalah kumpulan atau koleksi data yang disimpan dengan nama yang sama
dan memiliki tipe yang sama dan setiap elemen diakses dengan indeks/subscript
yang berbeda. Setiap data yang terdapat dalam array menempati memory yang
berbeda namun ditempatkan secara berurutan pada memory. Indeks pada array
diapit dengan bracket(kurung siku) yang dimulai dari 0 sampai ke n-1.
Array dapat menyimpan data sehingga dapat mempermudah dan
mengefektifkan dalam penulisan syntax program. Array terbagi dua yaitu array
berdimensi satu dan array multidemensi dimana pada array multidimensi terdapat
array berdimensi dua, array berdimensi tiga dan array yang memiliki beberapa
indeks.
 Array berdimensi satu
Gambaran array berdimensi satu secara visual berupa garis (gambar 1). elemen
yang akan di akses pada array berdimensi satu hanya melalui 1 indeks/subscript.

Gambar 1 : array berdimensi satu

Sebelum digunakan array harus dideklarasikan terlebih dahulu.


Mendeklarasikan array terdiri dari tipe data, nama array dan jumlah indeks.
Contoh cara mendeklarasikan array:

Nama array

}
Int nilai[5];
}

Tipe data }
Jumlah
indeks

Gambar 2 : bentuk deklarasi array berdimensi satu


Dari pendeklarasian array diatas, maka array nilai dapat menyimpan data
bertipe int, sebanyak lima data dimulai dari indeks 0 sampai 4. Kita juga dapat
mendeklarasikan array dengan menyatakan nilainya sebagai contoh :

Int nilai[5]={89,90,45,8,23};
Gambar 3 : mendeklarasikan array dengan nilainya
Gambaran array dan indeks mengaksesnya adalah sebagai berikut:
Elemen-elemen array

Array nilai 89 90 45 8 23

0 1 2 3 4

Indeks array

Gambar 4 : gambaran array berdimensi satu


Setelah dideklarasikan elemen array dapat diakses dalam bentuk
nama_array[indeks]. Contoh:

nilai[3]
Gambar 5 : cara mengakses array
Dari penyebutan array di atas menyatakan “ elemen nilai dengan indeks sama
dengan 3”. Adapun pernyataan seperti
printf(“nilai ke-4= %d”, nilai[3]);

Dari pernyataan diatas akan menampilkan elemen berindeks 3 yang bertipe int
pada array nilai.

 Array multidimensi
i. Array Berdimensi Dua
Array bersimensi dua berfungsi untuk menyimpan data dalam bentuk table
(gambar 2.1). Elemen yang di akses pada array berdimensi dua memiliki 2
indeks, dimana indeks pertama menyatakan baris dan indeks yang kedua
menyatakan kolom.

Gambar 6 : array berdimensi dua


Array dua dimensi dapat dideklarasikan dengancara seperti pada gambar 2.2.
dari gambar 2.2 terdapat elemen yang bertipe data int dengan nama array
luas yang memiliki indeks1 dengan nilai 2 dan indeks2 dengan nilai 4.

Nama array indeks2


}
}

Int luas[2][4];
}
}

Tipe data indeks1


Gambar 7 : bentuk deklarasi array berdimensi dua
Dari pendeklarasian diatas dapat digambarkan indeks mengaksesnya
sebagai berikut:

Indeks 1
0

0 1 2 3

Indeks 2

Gambar 8 : gambaran array berdimensi dua


Setelah dideklarasikan elemen array dapat diakses dalam bentuk
nama_array[indeks1][indeks2]. Contoh:

luas[1][3]
Gambar 9: cara mengakses array
Dari penyebutan array di atas menyatakan “ mengakses elemen array luas
yang berada pada baris 1 dan kolom 3”.
ii. Array Berdimensi Tiga
Bentuk umum pendeklarasian pada array berdimensi 3 yaitu :

Nama array indeks2


}
}

Int angka[5][2][6];
}
}
}

Tipe data indeks1 Indeks 3


Gambar 10 : bentuk deklarasi array berdimensi tiga
Dari pendeklarasian diatas dapat disebutkan bahwa array angka dapat
menyimpan data bertipe int dengan jumlah baris sebanyak 5 elemen, jumlah
kolom sebanyak 2 elemen dan panjang karakter sebanyak 6 elemen. Array
yang memiliki dimensi lebih dari tiga, cara mendeklarasikannya yaitu
menambah indeks sesuai dengn dimensinya.

Struct adalah kumpulan dari berberapa type data yang berbeda dikelompokan
dengan nama yang sama menjadi satu deklarasi yang unik dan memiliki keterkaitan
satu sama lain. Bentuknya adalah sebagai berikut:
struct nama_struct
{
tipe1 field1;
tipe2 field2;
tipe3 field3;
} nama_objek;

Gambar 11 : bentuk umum struct


Dimana nama_struct adalah nama untuk tipe struct dan nama objek bersifat
pilihan sebagai variabel dengan objek struct tersebut. Diantara curly brackets { }
adalah tipe dan sub-identifiers yang bersesuaian dengan elemen-elemen yang
membentuk struct tersebut yang biasa disebut field atau anggota struct. Contoh :

struct produk
{
char nama [30];
float harga;
};
produk apel, orange, melon;

Gambar 12 : penulisan nama objek


1 melon adalah variabel yang memiliki struct products.
Dimana apple, orange, dan
atau dapat juga ditulis :

struct products
{
char nama [30];
float harga;
} apel, orange, melon;

Gambar 13 : penulisan nama objek


2
Dalam hal ini masing-masing variabel (apple, orange and melon) memiliki field
nama dan harga, dimana penulisannya adalah nama objek dan nama field dipisahkan
dengan suatu point (.) :

apel.nama

Gambar 14 : penyebutan member dari objek


4. Langkah Praktikum
4.1. Array Berdimensi Satu
Source Code
#include<stdio.h>

int main()
{
int data[] = { 5, 100, 20, 31, 77, 88, 99, 20, 55, 1 };
printf("Program Mengurutkan Bilangan\n");
int jum_data = sizeof(data) / sizeof(int);
printf("Data semula: \n");
for (int x = 0; x < jum_data; x++)
printf("%d ", data[x]);

printf("\n");

// Proses pengurutan
for (int i = 0; i < jum_data-1; i++)
for (int j = i; j < jum_data; j++)
if (data[i] > data[j])
{
// Tukarkan
int tmp = data[i];
data[i] = data[j];
data[j] = tmp;
}
printf("Data hasil pengurutan: \n");
for (int y = 0; y < jum_data; y++)
printf("%d ", data[y]);

printf("\n");

return 0;
}

Hasil Eksekusi Program


Program Mengurutkan Bilangan
Data semula:
5 100 20 31 77 88 99 20 55 1
Data hasil pengurutan:
1 5 20 20 31 55 77 88 99 100
4.2. Array Berdimensi Dua
Source Code
#include <stdio.h>
int main() {
int matriks1[10][10], matriks2[10][10], hasil[10][10];
int i, j, k, baris1, kolom1, baris2, kolom2, jumlah = 0;
printf("Masukkan jumlah baris matriks pertama: ");
scanf("%d",&baris1);
printf("Masukkan jumlah kolom matriks pertama: ");
scanf("%d",&kolom1);
printf("Masukkan jumlah baris matriks kedua: ");
scanf("%d",&baris2);
printf("Masukkan jumlah kolom matriks kedua: ");
scanf("%d",&kolom2);
if(kolom1 != baris2){
printf("Matriks tidak dapat dikalikan satu sama lain.\n");
} else {
printf("Masukkan elemen matriks pertama: \n");
for(i = 0; i < baris1; i++){
for(j = 0; j < kolom1; j++){
printf("Baris %d Kolom %d :",i+1,j+1);
scanf("%d", &matriks1[i][j]);
}
}
printf("Masukkan elemen matriks kedua: \n");
for(i = 0; i < baris2; i++){
for(j = 0; j < kolom2; j++){
printf("Baris %d Kolom %d :",i+1,j+1);
scanf("%d", &matriks2[i][j]);
}
}
printf("Matriks Pertama\n");
for(i = 0; i < baris1; i++){
for(j = 0; j < kolom1; j++){
printf("%d\t", matriks1[i][j]);
}
printf("\n");
}
printf("Matriks Kedua\n");
for(i = 0; i < baris2; i++){
for(j = 0; j < kolom2; j++){
printf("%d\t", matriks2[i][j]);
}
printf("\n");
}
//Proses Perkalian Matriks
for(i = 0; i < baris1; i++){
for(j = 0; j < kolom2; j++){
for(k = 0; k < kolom1; k++){
jumlah = jumlah + matriks1[i][k] * matriks2[k][j];
}
hasil[i][j] = jumlah;
jumlah = 0;
}
}
printf("Hasil perkalian matriks: \n");
for(i = 0; i < baris1; i++){
for(j = 0; j < kolom2; j++){
printf("%d\t", hasil[i][j]);
}
printf("\n");
}
}

return 0;
}

Hasil Eksekusi Program


Masukkan jumlah baris matriks pertama: 2
Masukkan jumlah kolom matriks pertama: 3
Masukkan jumlah baris matriks kedua: 3
Masukkan jumlah kolom matriks kedua: 4
Masukkan elemen matriks pertama:
Baris 1 Kolom 1 :12
Baris 1 Kolom 2 :34
Baris 1 Kolom 3 :2
Baris 2 Kolom 1 :15
Baris 2 Kolom 2 :9
Baris 2 Kolom 3 :22
Masukkan elemen matriks kedua:
Baris 1 Kolom 1 :1
Baris 1 Kolom 2 :2
Baris 1 Kolom 3 :6
Baris 1 Kolom 4 :3
Baris 2 Kolom 1 :24
Baris 2 Kolom 2 :4
Baris 2 Kolom 3 :1
Baris 2 Kolom 4 :9
Baris 3 Kolom 1 :0
Baris 3 Kolom 2 :4
Baris 3 Kolom 3 :7
Baris 3 Kolom 4 :3
Matriks Pertama
12 34 2
15 9 22
Matriks Kedua
1 2 6 3
24 4 1 9
0 4 7 3
Hasil perkalian matriks:
828 168 120 348
231 154 253 192

4.3. Struct
Source Code
#include<stdio.h>
#include<string.h>
#include<ctype.h>

struct mobil
{
char model[20];
char merek[15];
int cc;
};

int main()
{
const int MAKS_ELEMEN = 20;
struct mobil data_mobil[MAKS_ELEMEN]; // Array struktur

char model[20]; // Untuk pemasukan model


char merek[15]; // Untuk pemasukan merek
int cc; // Untuk pemasukan CC
int jum_data = 0; // Jumlah data
char tombol;
// Pemasukan data ke array struktur
printf("DATA MOBIL\n");
do
{
printf("\nModel : ");
gets(model);

printf("Merek : ");
gets(merek);

printf("CC : ");
scanf("%d", &cc);

fflush(stdin); // Hapus data sisa data di keyboard

// Simpan data di array


strcpy(data_mobil[jum_data]. model, model);
strcpy(data_mobil[jum_data]. merek, merek);
data_mobil[jum_data].cc = cc;

jum_data++;
if (jum_data == 20)
break; // Akhiri kalau array penuh

printf("\nMau memasukkan lagi (Y/T)? ");


tombol = toupper(getchar());
fflush(stdin); // Hapus data sisa data di keyboard
while (!( tombol == 'Y'|| tombol == 'T'))
{
printf("\nMau memasukkan lagi (Y/T)? ");
tombol = toupper(getchar());
fflush(stdin); // Hapus data sisa data di keyboard
}
} while(tombol == 'Y');

// Penampilan data mobil


int indeks;
printf("List Data Mobil\n");
for (indeks = 0; indeks<jum_data; indeks++)
printf("%-20s %-15s %4d\n",
data_mobil[indeks]. model,
data_mobil[indeks]. merek,
data_mobil[indeks]. cc);

return 0;
}
Hasil Eksekusi Program
DATA MOBIL

Model : Rush
Merek : Toyota
CC : 1496

Mau memasukkan lagi (Y/T)? y

Model : Ertiga
Merek : Suzuki
CC : 1500

Mau memasukkan lagi (Y/T)? y

Model : Pajero
Merek : Mitsubishi
CC : 2500

Mau memasukkan lagi (Y/T)? t


List Data Mobil
Rush Toyota 1496
Ertiga Suzuki 1500
Pajero Mitsubishi 2500

Anda mungkin juga menyukai