Array (LARIK) pada C++

Apakah Array?

Contoh Kasus : Suatu universitas ingin mendata nilai mahasiswa di sutau kelas dengan banyak mahasiswa 10 orang. Dari semua nilai yang  telah dimasukan tersebut ingin ditampilkan kembali dan dicari nilai rata-ratanya.

Untuk membuat program dengan ketentuan seperti diatas, ada beberapa cara untuk memecahkannya :

Program 1 : Tanpa menggunakan array

#include <stdio.h>

#include <conio.h>

void main()

{

int n1,n2,n3,n4,n5,n6,n7,n8,n9,n10;

float total, ratarata;

// Pembacaan semua nilai dari keyboard

printf(“Pemasukan data nilai mahasiswa : \n”);

printf(“Nilai mahasiswa Ke-1 : “);scanf(“%d”,&n1);

printf(“Nilai mahasiswa Ke-2 : “);scanf(“%d”,&n2);

/* diulang dari nilai ke-3 sampai terakhir */

printf(“Nilai mahasiswa Ke-10: “);scanf(“%d”,&n10;

// perhitungan total dan rata-rata

total=n1+n2+n3+n4+n5+n6+n7+n8+n9+n10;

ratarata=total/10;

// Menampilkan data nilai yang telah dimasukan

printf(“Nilai mahasiswa Ke-1 : %3d\n”,n1);

printf(“Nilai mahasiswa Ke-2: %3d\n”,n2);

/* diulang dari nilai ke-3 sampai terakhir */

printf(“Nilai mahasiswa Ke-10 : %3d\n”,n10);

// Menampilkan nilai rata-rata

printf(“Rata-rata kelas : %6.2f\n”,ratarata);

getch();

}

Dengan menggunakan cara diatas, sebenarnya programnya telah mencukupi, tetapi kalau nilai yang akan diolah menjadi lebih banyak, maka pendeklarasian variabel n harus dilakukan sebanyak yang diperlukan.  Jadi kalau data yang akan diolah sebanyak 100 buah, maka pendeklarasian dan pembacaan datanya pun dilakukan sebanyak 100 kali. Dan perhitungannya juga. Rumus perhitungan total pun menjadi berubah. Pemrograman di atas sebenarnya sederhana tetapi bisa sangat merepotkan. Oleh karena

 

 

 

Array 1 dimensi

Solusi kedua dari kasus diatas adalah dengan menggunakan array. Array adalah suatu variabel yang dapat menampung lebih dari satu data dengan tipe data yang sama dan dibedakan berdasarkan nomor indexnya. Dalam bahasa C, array selalu dimulai dari index ke-0 (nol).

Contoh deklarasi array :

 

     int N[10];

 

Deklarasi diatas berarti pendeklarasian variabel array bernama N yang mempunyai elemen sebanyak 10 buah dengan index dimulai dengan nomor 0 sampai 9. Dalam memori deklarasi tersebut dapat digambarkan seperti berikut :

 

N[0] N[1] N[2] N[3] N[4] N5] N[6] N[7] N[8] N[9]

 

Untuk memasukan suaut elemen data dalam array, perintah yang dilakukan ditulis seperti pembacaan data variabel biasa hanya perbedaannya harus ditulis untuk index ke berapa.

 

Contoh untuk pengisian data ke elemen array :

scanf(“%d”, &N[2]);

 

Perintah diatas berarti pembacaan data dari keyboard untuk data bertipe integer (%d) dan dimasukan ke variabel array index ke-2 (urutan ke-3).

 

Contoh-contoh lain pengisian ke suatu elemen array :

I=5; // variabel I diisi dengan nilai 5

N[I] = 7; // data ke-I dari variabel N diisi dengan nilai 7

scanf(“%d”,&N[N[I]]);

// pembacaan data untuk variabel N pada index ke-N[I] (7)

 

Karena nomor elmeen dari array bisa diisi dengan variabel, berarti kita bisa melakukan perulangan (loop) untuk melakukan pembacaan data dari elemen pertama sampai elemen terakhir.

 

Untuk lebih jelas, lihat program pada halaman berikutnya.

#include <stdio.h>

#include <conio.h>

void main()

{

int Nilai[10];

int index;

float total,ratarata;

 

// Pembacaan data dari keyboard

printf(“Pembacaan data nilai \n”);

for (index=0;index<10;index++)

{

printf(“Nilai mahasiswa ke-%d = “,index+1);

scanf(“%d”,&Nilai[index]);

}

// Perhitungan total dan rata-rata

total=0;

for (index=0;index<10;index++)

total=total+Nilai[index];// atau total+=Nilai[index];

ratarata=total/10;

 

// Menampilkan data yang telah dimasukan dan rata-rata.

for (index=0;index<10;index++)

printf(“Nilai mahasiswa ke-%d = %3d\n“,index+1,Nilai[index]);

printf(“Rata-rata = %6.2f\n”,ratarata);

 

getch();

 

}

 


Array 2 Dimensi

 

Array 2 dimensi biasanya digunakan untuk menyimpan data dalam bentuk matrik. Index Array 2 dimensi terdiri dari index baris dan kolom.

Pendeklarasian array 2 dimensi adalah :

Tipedata  namaarray[b][k];

Dimana : b adalahbanyak baris dan k adalah banyak kolom.

Contoh

int matrik[5][5];

 

Perintah di atas akan membuat sebuah array 2 dimensi yang kalau digambarkan adalah sebagai berikut :

index

0

1

2

3

4

0

0,0

0,1

0,2

0,3

0,4

1

1,0

1,1

1,2

1,3

1,4

2

2,0

2,1

2,2

2,3

2,4

3

3,0

3,1

3,2

3,3

3,4

4

4,0

4,1

4,2

4,3

3,3

Cara pengaksesan elemen array 2 dimensi dapat dilihat pada contoh di bawah ini :

      mat[0][0]=7;

      printf(“Masukan data : “);scanf(“%d”,&mat[2][1]);

      printf(“Data yang dimasukan : %d\n”,mat[2][1]);

Keterangan :

-          Baris pertama adalah mengisikan nilai 7 ke array mat pada baris 0 kolom 0.

-          Baris kedua adalah perintah untuk membaca data elemen matrik pada baris 2 kolom ke 1.

-          Baris ketiga adalah perintah untuk menampilkan data elemen matrik/array pada baris 2 dan kolom ke-1.

 

 

Pembacaan elemen-elemen array 2 dimensi melibatkan 2 perulangan. 1 perulangan baris dan 1 perulangan kolom. Untuk lebih jelas perhatikan program di bawah ini.

 

Contoh Program Array 2 Dimensi :

#include <stdio.h>

#include <conio.h>

#define maks 3

main()

{

    int mat[maks][maks];

    int b,k;

    printf(“Pengisian Array : \n”);

    for (b=0;b<maks;b++)

    {

        for (k=0;k<maks;k++)

        {

            printf(“Matrik [%d,%d] : “,b,k);

            scanf(“%d”,&mat[b][k]);

        }

    }

    printf(“Matrik yang telah dimasukan :\n”)

    for (b=0;b<maks;b++)

    {

        for (k=0;k<maks;k++)

        {

            printf(“%6d”,mat[b][k]);

        }

        printf(“\n”);

    }

    getch();

    return 0;

}

 

Contoh Program Operasi pertambahan 2 matrik.

#include <stdio.h>

#include <conio.h>

#define maks 3

main()

{

    int mat1[maks][maks], mat2[maks][maks], mathasil[maks][maks];

    int b,k;

    printf(“Pengisian Matrik 1 : \n”);

    for (b=0;b<maks;b++)

    {

        for (k=0;k<maks;k++)

        {

            printf(“Matrik [%d,%d] : “,b,k);

            scanf(“%d”,&mat1[b][k]);

        }

    }

   

 

 

 

    printf(“Pengisian Matrik 2 : \n”);

    for (b=0;b<maks;b++)

    {

        for (k=0;k<maks;k++)

        {

            printf(“Matrik [%d,%d] : “,b,k);

            scanf(“%d”,&mat2[b][k]);

        }

    }

    // awal operasi pertambahan matrik

   

    for (b=0;b<maks;b++)

        for (k=0;k<maks;k++)

            mathasil[b][k]=mat1[b][k]+mat2[b][k];

   

    // akhir operasi perhitungan

 

    printf(“Matrik 1 :\n”)

    for (b=0;b<maks;b++)

    {

        for (k=0;k<maks;k++)

        {

            printf(“%6d”,mat1[b][k]);

        }

        printf(“\n”);

    }

    printf(“Matrik 2 :\n”)

    for (b=0;b<maks;b++)

    {

        for (k=0;k<maks;k++)

        {

            printf(“%6d”,mat2[b][k]);

        }

        printf(“\n”);

    }

    printf(“Matrik Hasil :\n”)

    for (b=0;b<maks;b++)

    {

        for (k=0;k<maks;k++)

        {

            printf(“%6d”,mathasil[b][k]);

        }

        printf(“\n”);

    }

    getch();

    return 0;

}

 

 

Kasus Array 2 Dimensi

1.

Buatlah suatu program untuk menghitung jumlah anggota yang ada dalam suatu matrik.

Contoh :

2

3

4

5

6

2

1

3

4

Total Elemen matrik adalah 30

 

Catatan : Anggota elemen dimasukan dari keyboard

 

2.

Buatlah suatu program untuk menampilkan total elemen per baris dan per kolom.

Contoh :

Input :

2

3

4

5

6

2

1

3

4

 

Output :

2

3

4

9

5

6

2

13

1

3

4

8

8

12

10

 

 

3.

Buatlah suatu program untuk mengecek apakah suatu matrik simetris atau tidak.

Contoh 1 :

Input :

2

3

4

5

6

2

1

3

4

Matrik tidak simetris

 

Contoh 2 :

Input :

2

5

6

5

1

2

6

2

4

Matrik simetris

 

Catatan : Suatu matrik akan disebut simetris jika Mij = Mji, jadi satu elemen saja tidak terpenuhi berarti matrik tersebut tidak simetris.

 

4.

Buatlah program untuk melakukan perhitungan perkalian matrik. Matrik pertama dan Matrik kedua dimasukan dari keyboard, kemudian lakukan operasi perkalian dan kemudian tampilkan hasilnya.

 

About these ads

About ILMUKAMU

Anak pengangguran yang akan menjadi sukses!!

Posted on November 28, 2011, in C++ and tagged . Bookmark the permalink. Tinggalkan komentar.

Komentarnya Brow...

Isikan data di bawah atau klik salah satu ikon untuk log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Logout / Ubah )

Twitter picture

You are commenting using your Twitter account. Logout / Ubah )

Facebook photo

You are commenting using your Facebook account. Logout / Ubah )

Google+ photo

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

Ikuti

Get every new post delivered to your Inbox.

Bergabunglah dengan 32 pengikut lainnya.

%d blogger menyukai ini: