• Tidak ada hasil yang ditemukan

Array berdimensi banyak

Dalam dokumen MODUL PEMROGRAMAN BAHASA C (Halaman 56-64)

ARRAY / LARI K

2.3. Array berdimensi banyak

Bahasa C memungkinkan anda untuk membuat array yang berdimensi lebih dari dua. Adapun bentuk umum pendeklarasian array berdimensi banyak ini adalah sebagai berikut :

tipe nama_variabel[ukuran_x][ukuran_y]… [ukuran_n];

Dengan tipe untuk menyatakan tipe data dari elemen array itu sendiri, dan nama_variabel adalah nama dari elemen array yang akan dipergunakan, sedangkan ukuran_x, ukuran_y dan ukuran_n adalah menyatakan jumlah maksimal dari masing-masing elemen array yang dibutuhkan.

3. Tugas Pendahuluan

1. Jelaskan kegunaan dari fungs i array.

2. Jelaskan tentang array tak berukuran (tak berdimensi), kemudian berikan contoh sederhana penggunaanya dalam program.

3. Dalam menentukan batasan indeks array bolehkan jika pengaksesan indeks array lebih besar dari banyaknya elemen array, beri penjelasan singkat dengan contoh program.

4. Prosedure Percobaan

1. Buatlah program dengan menggunakan array berdimensi satu untuk memasukkan data berikut ini :

10, 20, 30, 40, 50, 60, 70, 80 ,90, 100

2. Dengan menggunakan array berdimensi satu, buatlah program untuk melakukan pengurutan data (dari nilai yang terkecil sampai nilai yang terbesar) sebagai berikut :

55, 34, 68, 84, 33, 21, 98, 56, 46, 95

3. Dengan menggunakan data pada soal ke dua buatlah pengurutan data dari nilai yang terbesar sampai nilai yang terkecil.

4. Buatlah program untuk menjumlahkan dua buah matrik berikut ini: Matrik A = 4 6 7 7 Matrik B = 5 8 5 3 5. Tugas Akhir

Buatlah laporan hasil dari percobaan yang anda lakukan dengan singkat dan jelas sesuai dengan prosedur pembuatan laporan akhir. Berikan bahasan sesuai dengan hasil praktikum yang anda lakukan. Dan jangan lupa sertakan pula hasil tampilan layar (print out) dari listing dan hasil running program, serta kesimpulan dari hasil percobaan anda yang anda lakukan.

LAMPIRAN – TC – 07

Contoh Program 7.1

/* Contoh program 7.1 */

/* Mencari nilai maksimum dan nilai minimum */ /* Deklarasi array dan variabel global */ #define N 20

float maks(), min(): int i;

main() {

float nl_max,nl_min, bil[N]; int jml_bil;

clrscr();

printf(“**** Mencari nilai maksimum dan minimum ****”); /* Input jumlah bilangan */

printf(“ Jumlah bilangan : ”); scanf(“%d”, &jml_bil);

/* Input data */

for (i = 0;i < jml_bil;++i) {

printf(“ Bilangan ke %d : “, i + 1); scanf(“%f”, &bil[i]);

}

/* Menentukan nilai maksimum dan minimum */ nl_max = maks(bil, jml_bil);

nl_min = min(bil, jml_bil);

/* Mencetak nilai maksimum dan minimum */

printf(“ Nilai maksimum : %.3f”, nl_max); printf(“ Nilai minimum : %.3f”, nl_min);

printf(“ Tekan sembarang tombol ”); getch();

}

/* Fungsi untuk menentukan nilai maksimum */ float maks(x,no)

float x[]; int no; {

float maksimum = x[0]; for (i = 0;i < no;++i) { if (x[i] > maksimum) maksimum = x[i]; } return(maksimum); }

/* Fungsi untuk menentukan nilai minimum */ float min(x,no)

float x[]; int no; {

float minimum = x[0]; for (i = 0;i < no;++i) { if (x[i] < minimum) minimum = x[i]; } return(minimum); } Contoh Program 7.2 /* Contoh program 7.2 */

/* File program: MATRIKS.C */

/* Contoh operasi penjumlahan dua buah matriks */

/* untuk data bertipe int */

#include <stdio.h> #define MAKS_KOLOM 5 #define MAKS_BARIS 5

void pemasukan_data_matriks(int matriks[][], int, int);

void penjumlahan_matriks(int matriks1[][], int matriks2[][], int mat_hasil[][], int, int);

void penampilan_matriks(int matriks[][], int,int); main()

{

int jum_kolom, jum_baris;

int mat1[MAKS_BARIS][MAKS_KOLOM], mat2[MAKS_BARIS][MAKS_KOLOM],

mat_hasil[MAKS_BARIS][MAKS_KOLOM]; puts(“ OPERASI PENJUMLAHAN MATRIKS:”); puts(“ =============================\n“);

printf(“ Banyak kolom dari elemen matriks(1..%d): ”, MAKS_KOLOM); scanf(“%d”, &jum_kolom);

printf(“ Banyak baris dari elemen matriks(1..%d): ”, MAKS_BARIS); scanf(“%d”, &jum_baris);

puts(“\ndata matriks 1\n”);

pemasukan_data_matriks(mat1, jum_baris, jum_kolom); puts(“\ndata matriks 2\n”);

pemasukan_data_matriks(mat2, jum_baris, jum_kolom);

penjumlahan_matriks(mat1, mat2, mat_hasil, jum_baris, jum_kolom); puts(“\nMATRIKS HASIL PENJUMLAHAN\n”);

penampilan_matriks(mat_hasil, jum_baris, jum_kolom); }

void pemasukan_data_matriks(int matriks[][MAKS_KOLOM], int jum_baris, int jum_kolom)

{

int i, j;

for (i = 0; i < Jum_Baris; i++) for(j = 0; j < jum_kolom; j++) {

printf(“Data baris %d kolom %d: ”, i+1, j+1); scanf(“%d”, &matriks[i][i]);

} }

void penjumlahan_matriks(int matriks1[][MAKS_KOLOM], int matriks2[][MAKS_KOLOM], int mat_hasil[][MAKS_KOLOM], int jum_baris, int jum_kolom) {

int i, j;

for(i = 0; i < jum_baris; i++)

for (j = 0; j < jum_kolom; j++)

mat_hasil[i][j] = matriks1[i][j] + matriks2[i][j]; }

void penampilan_matriks(int matriks[][Maks_KOLOM], int jum_baris, int_jum_kolom)

{

int i, j;

for(i = 0; i < jum_baris; i++) { for (j = 0; j < jum_kolom; j++) printf(“%7d”, matriks[i][j]); puts(“”); } }

Ø M O D U L - T C - 0 8

P o i n t e r

1. Tujuan

Mengenal, mempelajari dan memahami fungsi penggunaan pointer dalam bahasa pemrograman C.

2. Teori Dasar

Pointer banyak sekali dilibatkan dalam bahasa pemrograman C, misalnya untuk melewatkan string dari suatu fungsi ke fungsi yang lain. Penerapan fungsi pointer yang paling umum yaitu untuk menciptakan variabel dinamis yang memungkinkan untuk memakai memori (memori yang belum terpakai) selama proses eksekusi program. Variabel pointer sering disebut sebagai variabel yang menunjuk ke obyek lain. Pada kenyataaannya variabel pointer (atau disingkat pointer) berisi alamat dari suatu obyek lain (yaitu obyek yang dikatakan ditunjuk oleh pointer). Sebagai contoh, jika px adalah pointer dan x adalah variabel yang ditunjuk oleh px. Jika x berada pada alamat memori 1000, maka px akan berisi 1000. Bentuk umum dari deklarasi pointer adalah sebagai berikut :

tipe *nama_variabel;

Dimana tipe adalah tipe data yang akan dipakai oleh pointer, tanda * menyatakan deklarasi adalah pointer, dan nama_variabel adalah nama dari variabel pointer.

Jika suatu variable sudah ditunjuk oleh pointer, variable yang ditunjuk oleh pointer dapat diakses melalui variable itu sendiri (akses secara langsung) ataupun melalui pointer (akses secara tidak langsung). Perlu diingat bahwa antara tipe data pointer (sesuai dengan pada saat dideklarasikan) dan tipe data objek yang ditunjuk oleh pointer itu haruslah bertipe data yang sejenis. Misalkan pointer px digunakan untuk menunjuk data bertipe int, maka data yang akan ditunjuk oleh pointer px juga harus bertipe int. Sebuah kesalahan

akan terjadi jika misalnya pointer bertipe data float digunakan untuk menunjuk data bertipe int.

Berikut ini adalah contoh untuk mengubah isi suatu variable secara tidak langsung (melalui pointer). Mula -mula pd dideklarasikan sebagai pointer yang menunjuk ke suatu data bertipe float dan d sebagai variable yang bertipe float. Kemudian variable d diberi nilai :

d = 54.5;

Sedangkan pada pointer pd diberi nilai : pd = &d;

Yang digunakan untuk memberikan alamat dari d ke pointer pd. Dengan demikian pointer

pd menunjuk ke variable d.

Dalam bahasa pemrograman C, hubungan antara array da n pointer sangatlah erat. Dikarenakan sesungguhnya array secara intelektual akan diterjemahkan dalam bentuk pointer. Suatu array dapat digunakan untuk menyimpan sejumlah pointer. Adapun contoh deklarasi pemakaiannya dalam program dapat dilihat sebagai berikut :

char *namahari[7];

Dimana namahari terdiri dari 10 elemen berupa pointer yang menunjuk ke data yang bertipe char. Pointer juga dapat menunjuk ke pointer lain. Contoh dari pendeklarasiannya dalam program adalah sebagai berikut :

int var_x; int *ptr1; int **ptr2;

dimana var_x adalah variable bertipe int, ptr1 adalah variable pointer yang menunjuk ke data bertipe int, dan ptr2 adalah variable pointer yang menunjuk ke pointer int (itu sebabnya deklarasinya berupa : int **ptr2;).

3. Tugas Pendahuluan

1. Jelaskan kegunaan variable pointer dibanding dengan penggunaan array.

2. Tuliskan bentuk umum dari pendeklarasian dari variable pointer, dan berikan contoh program pointer yang sederhana.

3. Dapatkan kita menggunakan variable pointer untuk melakukan proses penguruta n data baik itu secara menaik (ascending) maupun menurun (descending).

4. Prosedure Percobaan

1. Buatlah program sederhana menggunakan variable pointer untuk menunjuk pada tipe data char, dengan nilai dari variable tersebut adalah input dari nama anda. 2. Dengan menggunakan gabungan antara array dan variable pointer buatlah program

input data dan program untuk menampilkan data berikut ini : 10, 30, 50, 70, 90

output yang ditampilkan : 90, 70, 50, 30, 10

5. Tugas Akhir

Buatlah laporan hasil dari percobaan yang anda lakukan dengan singkat dan jelas sesuai dengan prosedur pembuatan laporan akhir. Berikan bahasan sesuai dengan hasil praktikum yang anda lakukan. Dan jangan lupa sertakan pula hasil tampilan layar (print out) dari listing dan hasil running program, serta kesimpulan dari hasil percobaan anda yang anda lakukan.

LAMPIRAN – TC – 08

Dalam dokumen MODUL PEMROGRAMAN BAHASA C (Halaman 56-64)

Dokumen terkait