0% menganggap dokumen ini bermanfaat (0 suara)
5 tayangan17 halaman

07_Array

Dokumen ini membahas tentang pemrograman array dalam bahasa C, termasuk array satu dimensi, dua dimensi, dan banyak dimensi. Terdapat penjelasan tentang inisialisasi array, penggunaan array sebagai parameter fungsi, serta batasan nilai indeks array. Contoh kode disertakan untuk memperjelas konsep yang dijelaskan.

Diunggah oleh

ypurbolingga
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)
5 tayangan17 halaman

07_Array

Dokumen ini membahas tentang pemrograman array dalam bahasa C, termasuk array satu dimensi, dua dimensi, dan banyak dimensi. Terdapat penjelasan tentang inisialisasi array, penggunaan array sebagai parameter fungsi, serta batasan nilai indeks array. Contoh kode disertakan untuk memperjelas konsep yang dijelaskan.

Diunggah oleh

ypurbolingga
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/ 17

Pemrograman Dasar dan Lab

Array / Larik

1
Agenda

1. One Dimension Array


2. Two Dimension Array
3. Many Dimension Array
4. Not Sized Array Initialization
5. Arrays as Parameters
6. Limitation of Array Index Value

2
One Dimension Array

Bentuk umum array berdimensi satu :


tipe nama_variabel[ukuran];
Tipe untuk menyatakan jenis elemen array (misal :
char, int, unsigned).
Ukuran untuk menyatakan jumlah maksimal elemen
array.
Pada C, data array akan disimpan dalam memori
pada lokasi yang berurutan. Elemen pertama
mempunyai indeks bernilai 0.
Beberapa Pemrograman indeks dimulai dari 1
Bentuk umum pengaksesan elemen array :
nama_variabel[indeks]

3
One Dimension Array
(next…)
#include<stdio.h>
#define maksimum_tes 5
main()
{
int i;
float total_nilai, rata_rata, nilai_tes[maksimum_tes];
for (i = 0; i < maksimum_tes; i++)
{
printf("nilai tes ke-%d = ", i+1);
scanf("%f", &nilai_tes[i]);
}
total_nilai = 0;
for (i = 0; i < maksimum_tes; i++)
total_nilai = total_nilai + nilai_tes[i];
rata_rata = total_nilai / maksimum_tes;
printf("Nilai rata-rata = %.2f\n", rata_rata);
}
Hasil Eksekusi Program :
nilai tes ke-1 = 2
nilai tes ke-2 = 4
nilai tes ke-3 = 6
nilai tes ke-4 = 8
nilai tes ke-5 = 10
Nilai rata-rata = 6.00

4
One Dimension Array
(next…)
#include <stdio.h>
main()
{
static int jumlah_hari[12] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
int bulan, tahun, jum_hari;
printf("Masukkan bulan (1..12) = ");
scanf("%d", &bulan);
printf("Masukkan tahun = ");
scanf("%d", &tahun);
if (bulan == 2)
if ((tahun % 4 == 0) && (tahun % 100 != 0))
jum_hari = 29;
else
jum_hari = 28;
else
jum_hari = jumlah_hari[bulan-1];
printf("Jumlah hari = %d\n", jum_hari);
}
Hasil Eksekusi Program :
Masukkan bulan (1..12) = 2
Masukkan tahun = 2010
Jumlah hari = 28

5
Two Dimension Array
Bentuk umum array berdimensi dua :
tipe nama_variabel[ukuran1][ukuran2];
Bentuk umum pengaksesan elemen array :
nama_variabel[indeks_pertama][indeks_kedua];

6
Two Dimension Array
(next…)
#include <stdio.h>
main()
{
int tahun, kode_program; int data_lulus[4][3];
data_lulus[0][0] = 80, data_lulus[0][1] = 540, data_lulus[0][2] = 1032;
data_lulus[1][0] = 15, data_lulus[1][1] = 83, data_lulus[1][2] = 301;
data_lulus[2][0] = 8, data_lulus[2][1] = 12, data_lulus[2][2] = 15;
data_lulus[3][0] = 10, data_lulus[3][1] = 129, data_lulus[3][2] = 257;
puts("Masukkan tahun dari data yang ingin Anda ketahui");
printf("1986..1988 : "), scanf("%d", &tahun);
puts("Masukkan kode program dari data yang ingin Anda ketahui");
printf("1 = Intro, 2 = Basic, 3 = Cobol, 4 = dBase : "), scanf("%d", &kode_program);
printf("Total kelulusan = %d\n", data_lulus[kode_program - 1][tahun - 1986]);
}

Hasil Eksekusi Program :


Masukkan tahun dari data yang ingin Anda ketahui
1986..1988 : 1987
Masukkan kode program dari data yang ingin Anda ketahui
1 = Intro, 2 = Basic, 3 = Cobol, 4 = dBase : 1
Total kelulusan = 540

7
Two Dimension Array
(next…)
#include <stdio.h>
main()
{
int i, j;
static int huruf_A[8][8] =
{{1, 1, 1, 1, 1, 1, 1, 1}, {1, 1, 0, 0, 0, 0, 1, 1}, {1, 1, 0, 0, 0, 0, 1, 1}, {1, 1, 0, 0, 0, 0, 1, 1},
{1, 1, 1, 1, 1, 1, 1, 1}, {1, 1, 0, 0, 0, 0, 1, 1}, {1, 1, 0, 0, 0, 0, 1, 1}, {1, 1, 0, 0, 0, 0, 1, 1}};
for (i = 0; i < 8; i++)
{
for (j = 0; j < 8; j++)
if (huruf_A[i][j])
putchar('\xDB');
else
putchar(' ');
puts("");
}
}
Hasil Eksekusi Program :
████████
██ ██
██ ██
██ ██
████████
██ ██
██ ██
██ ██

8
Many Dimension Array

Bentuk umum array berdimensi banyak :


tipe nama_variabel[ukuran1] [ukuran2]…[ukuranN];
Sama halnya dengan array berdimensi satu atau dua, array
berdimensi banyak juga dapat diinisialisasi

9
Many Dimension Array
(next…)
#include <stdio.h>
main()
{
int i, j, k;
static int data_huruf[2][8][8] =
{{{1, 1, 1, 1, 1, 1, 1, 1}, {1, 1, 0, 0, 0, 0, 1, 1}, {1, 1, 0, 0, 0, 0, 1, 1}, {1, 1, 0, 0, 0, 0, 1, 1},
{1, 1, 1, 1, 1, 1, 1, 1}, {1, 1, 0, 0, 0, 0, 1, 1}, {1, 1, 0, 0, 0, 0, 1, 1}, {1, 1, 0, 0, 0, 0, 1, 1}},
{{1, 1, 1, 1, 1, 1, 1, 0}, {1, 1, 0, 0, 0, 1, 1, 0}, {1, 1, 0, 0, 0, 1, 1, 0}, {1, 1, 1, 1, 1, 1, 1, 1},
{1, 1, 0, 0, 0, 0, 1, 1}, {1, 1, 0, 0, 0, 0, 1, 1}, {1, 1, 1, 1, 1, 1, 1, 1}, {0, 0, 0, 0, 0, 0, 0, 0}}};
for (i = 0; i < 8; i++)
{
for (j = 0; j < 8; j++)
{
for (k = 0; k < 8; k++)
if (data_huruf[i][j][k])
putchar('\xDB');
else
putchar(' ');
puts("");
}
}
}

10
Not Sized Array Initialization

Inisialisasi array tidak berukuran dapat dilakukan untuk array


berdimensi satu atau lebih. Untuk array berdimensi lebih dari satu,
dimensi sebelah paling kiri yang boleh tidak berukuran. Dengan cara ini
tabel dalam array dapat diperluas atau dikurangi tanpa mengubah
ukuran array.

11
Not Sized Array Initialization
(next…)
#include <stdio.h>
#include <conio.h>
#define Enter 13
#define jumlah_kolom 2
main()
{
static char konversi[][jumlah_kolom] = {'A', 'T', 'a', 't', 'E', 'N', 'e', 'n', 'I', 'V', 'i', 'v', 'O', 'S', 'o', 's', 'U', 'J', 'u', 'j'};
char kalimat[256], karakter; int i = 0, j, jumlah_karakter, jumlah_penyandi;
printf("Kalimat : ");
while ((kalimat[i] = getche()) != Enter)
i++;
jumlah_karakter = i;
puts("Hasil setelah disandikan :");
jumlah_penyandi = sizeof(konversi)/(jumlah_kolom * sizeof(char));
for (i = 0; i < jumlah_karakter; i++)
{
karakter = kalimat[i];
for (j = 0; j < jumlah_penyandi; j++)
{
if (karakter == konversi[j][0])
{
karakter = konversi[j][1];
break;
}
if (karakter == konversi[j][1])
{
karakter = konversi[j][0];
break;
}
}
putchar(karakter);
}
puts("");
}

12
Arrays as Parameters

Array dapat juga dilewatkan sebagai parameter fungsi. Untuk


melakukan sorting (proses pengurutan data), cara yang dipakai yaitu
algoritma bubble sort (suatu algoritma pengurutan yang paling
sederhana dan memiliki kecepatan pengurutan yang sangat lambat).

13
Arrays as Parameters
(next…)
#include <stdio.h>
#define maksimum 20
void pemasukan_data(float x[], int *pJumlah); void pengurutan_data(float x[], int jumlah); void penampilan_data(float x[], int jumlah);
main()
{
float data[maksimum]; int jumlah_data; pemasukan_data(data, &jumlah_data); pengurutan_data(data, jumlah_data); penampilan_data(data,
jumlah_data);
}
void pemasukan_data(float x[], int *pJumlah)
{
int i, jum; printf("Jumlah data = "); scanf("%d", &jum);
for (i=0; i<jum; i++)
{
printf("data ke-%d = ", i+1); scanf("%f", &x[i]);
}
*pJumlah = jum;
}
void pengurutan_data(float x[], int jumlah)
{
int i, j; float sementara;
for (i=0; i<jumlah-1; i++)
for (j=i+1; j<jumlah; j++)
if (x[i]>x[j])
{
sementara = x[i]; x[i] = x[j]; x[j] = sementara;
}
}
void penampilan_data(float x[], int jumlah)
{
int i; puts("Data setelah diurutkan :");
for (i=0; i<jumlah; i++)
printf("data ke-%d, %g\n", i+1, x[i]);
}

14
Limitation of Array Index Value

Jika suatu array dideklarasikan misalnya sebagai


array berdimensi satu dengan banyak elemen 5
buah, pengaksesan terhadap array melalui indeks
array haruslah diusahakan agar tidak melebihi
nilai indeks terbesar. Pada array berdimensi satu
dengan 5 buah elemen, tentu saja nilai indeks
terbesar adalah 4. Jika hal ini tidak dilakukan,oleh
kompiler memang akan dibiarkan saja, akan
tetapi dapat menimbulkan kesalahan.

15
Limitation of Array Index Value
(next…)
#include <stdio.h>
main()
{
int x[5], jumlah;
jumlah = 5, x[5] = 60;
printf("jumlah = %d\n", jumlah);
printf("x[5] = %d\n", x[5]);
printf("alamat dari x[5] = %p\n", &x[5]);
printf("alamat dari jumlah = %p\n", &jumlah);
}
Hasil Eksekusi Program :
jumlah = 5
x[5] = 60
alamat dari x[5] = 0022FF34
alamat dari jumlah = 0022FF1C

16
Next…

17

Anda mungkin juga menyukai