widget

Sunday, December 13, 2015

ARRAY pada Bahasa C



ALGORITMA DAN PEMOGRAMAN 3

Kelompok 7:
1.      ANGGI ED’DRIANA PUTRI
2.      ASDI PRAYUDHA RAHADI
3.      CEISARDO GABE
4.      M. DANI HAWARI
5.      RINTO IRAWAN
Kelas :  2IA07
Tugas : Array


Universitas  Gunadarma
A.      ARRAY

Array adalah sekelompok data sejenis yang disimpan ke dalam variabel dengan nama yang sama, dengan memberi indeks pada variabel untuk membedakan antara yang satu dengan yang lain.

a)      Variabel Array

            nama_variabel[indeks]

ketentuan nama variabel arrray sama dengan nama variabel biasa.
indeks menunjukkan nomor dari variabel .

b)     Deklarasi Variabel Array

BU                  : tipe nama_variabel[indeks];

Contoh            : float bil[10];

            Deklarasi variabel array dengan nama bil yang akan menampung 10 data     yang
bertipe  float.  Indeks  10  menunjukkan  variabel  bil  terdiri  dari  10 elemen, dimana
setiap elemen akan menampung sebuah data.
Indeks array dimulai dari nol(0) , sedang nomor elemen biasanya dimulai dari satu(1). Nomor elemen dapat dibuat sama dengan nomor indeks untuk mempermudah pembuatan program yaitu dengan memberi indeks satu lebih banyak dari jumlah data yang dibutuhkan dan Setiap elemen array dapat diakses melalui index, sehingga menjadi :
float bil[11]

B.     INISIALISASI  ARRAY 1 DIMENSI

Inisialisasi  dapat dilakukan bersama dengan deklarasi atau tersendiri. Inisialisasi suatu array adalah dengan meletakkan elemen array di antara tanda kurung kurawal {}, antara elemen yang satu dengan lainnya dipisahkan koma.

            int bil[2] = {4,1,8}

            bil[0] = 4
            bil[1] = 1
            bil[2] = 8



a)      Automatic Array

Automatic Array adalah Inisialisasi array dilakukan di dalam fungsi tertentu. Hanya  compiler C yang berstandar ANSI C yang dapat menginisialisasikan automatic array.
Cara menginisialisasikan  array dari compiler yg tidak mengikuti standar  ANSI C:

1. Diinisialisasikan di luar fungsi sebagai variabel GLOBAL/EXTERNAL ARRAY.
            int bil[2]={0,0,0};
            main()
           

2. Diinisialisasikan didlm fungsi sebagai variabel LOKAL/STATIC ARRAY.
            main()
            {
                        static int bil[2]={0,0,0};
                        .........

Pada automatic array yang tidak diinisialisasikan , elemen array akan memiliki nilai yang tidak beraturan. Bila global & static array tidak diinisialisasi maka semua elemen array secara otomatis akan diberi nilai nol(0).

Contoh :

 
OUTPUT:



b)     Mendefinisikan Jumlah Elemen Array Dalam Variabel

Besarnya variabel indeks dapat ditentukan dengan menggunakan
preprocessor directives #define
#define N 40
main()
{
            int no[N],gaji[N],gol[N],status[N],juman[N];

Bila besari indeks akan diubah menjadi 50, cukup diganti dengan
#define N 50


C.      ARRAY 2 DIMENSI

            nama_variabel [indeks1][indeks2]

indeks1            : jumlah/nomor baris
indeks2            : jumlah/nomor kolom
Jumlah elemen yang dimiliki array 2 dimensi dapat ditentukan dari hasil perkalian indeks1 * indeks2

misal : array A[2][3] akan memiliki 2*3 = 6 elemen.

main()
{
            float  bil [5] [5]
            .......

dapat dituliskan dengan #define
#define N 5
main()
{
            float bil [N]  [N]
            .......

a)      Inisialisasi Array 2 Dimensi

main()
{
            float bil[2] [3] =
            { { 1,2,3},       /*baris 0*/
              { 4,5,6},        /*baris 1*/
            }
elemen bil [0] [0] = 1
elemen bil [0] [1] = 2
elemen bil [0] [2] = 3
elemen bil [1] [0] = 4
elemen bil [1] [1] = 5
elemen bil [1] [2] = 6

Contoh :

main()
{
            int x[3][5];
            int y,z;
            int hitung=0;
            for(y=0;y<3;y++)

            {
                        printf("y = %d\n",y);
                        for(z=0;z<5;z++)
                        {
                                    hitung+=z;
                                    x[y][z] = hitung;
                                    printf("%/t%3d - %3d\n",z,x[y][z]);
                        }
            }
}

OUTPUT:

y = 0
   0-  0
   1-  1
   2-  2
   3-  6
   4-  10

y = 1
   0-  10
   1-  11
   2-  13
   3-  16
   4-  20

y = 2
  0-  20
  1-  21
  2-  23
  3-  26
  4-  30



D.      ARRAY MULTIDIMENSI
Array multidimensi merupakan array yang mempunyai ukuran lebih dari dua. Bentuk pendeklarasian array multidimensi sama saja dengan deklarasi array dimensi satu maupun dimensi dua.
  Deklarasi array :  Tipe_array nama_array [ukuran 1][ukuran 2] . . . [ukuran N]

Perbedaan array dengan tipe data lain :
1.      Array dapat mempunyai sejumlah nilai, sedangkan tipe data lain hanya dihubungkan dengan sebuah nilai saja.
2.      Array dapat digunakan untuk menyimpan beberapa nilai tipe data lain data (char, int, float, double, long, dll) yang sama dengan satu nama saja. Selain itu, array dapat berupa  satu dimensi atau lebih, sedangkan tipe data lain hanya berupa satu dimensi.
Array juga dapat digunakan sebagai parameter. Jenisnya :
a)      Array dimensi satu sebagai parameter
Pengiriman parameter berupa array dimensi satu merupakan pengiriman secara acuan/referensi, karena yang dikirimkan adalah alamat dari elemen pertama arraynya, bukan seluruh nilai-nilai elemenya. Alamat elemen pertama dari array dapat ditunjukkan oleh nama lariknya yang tidak ditulis dengan indeknya.
      Contoh:
#include <stdio.h> 
#include <conio.h> 

int length(char x[]);

int main()
{
char string[256];
printf(“Ketikkan sembarang kalimat <maks.256 karakter> : “);
   gets(string);
Lstring=length(string);
getch();  
return(0);
}

int length(char x[])
{
    int i, cek, L=0;   
    for(i=0;i<256;i++)
    {
        if (x[i]!=”)
            L+=1;
        else break;
    } 
    return(L);     
}
b)     Array dua dimensi sebagai parameter :
–     Pengiriman parameter berupa array dua dimensi hampir sama dengan pengiriman parameter array satu dimensi, hanya saja perbedaannya adalah dalam array dua dimensi harus menyebutkan baris dan kolom array dimensi dua tersebut, mendeklarasikan MAX_ROWS dan MAX_COLS yang digunakan untuk pengiriman parameter array dua dimensi dan pada saat pengiriman parameter formal array dua dimensi, kita harus menyebutkan banyaknya dimensi array untuk kolom, sehingga ukuran kolom dapat diketahui, hal ini berkaitan dengan pemesanan variabel array di memori.
Contoh:
#include <stdio.h>
#include <conio.h> 
void isi_matriks(int m[10][10],int b,int k);
int main()
{
int m1[10][10];
   printf(“Masukkan baris dan kolom Matriks I  <maks. 10 x 10> : “);
   scanf(“%d x %d”,&b1,&k1);
   printf(“Masukkan baris dan kolom Matriks II <maks. 10 x 10> : “);
   scanf(“%d x %d”,&b2,&k2);
   printf(“Masukkan isi Matriks I : \n”);
   isi_matriks(m1,b1,k1);
getch();
     return(0);
}
void isi_matriks(int m[10][10],int b,int k)
{
     int i,j;
     for (i=1;i<=b;i++)
     {
               for(j=1;j<=k;j++)
                 scanf(“%d”,&m[i][j]);
     }
     printf(“Matriks I : \n”);
     for (i=1;i<=b;i++)
     {
               for(j=1;j<=k;j++)
                 printf(“%8d”,m[i][j]);
               printf(“\n”);
 }

}







E.     STRING dan ARRAY

1. Pada string   terdapat karakter null(\0) di akhir string
2. String sudah pasti array, array belum tentu string

CONTOH - CONTOH :
1. array dengan pengisian input melalui keyboard
            baca_input()
            {
                        float nilai[10];
                        for(i=0;i<10;i++)
                        scanf("%d",&nilai[i]);
            }

2. Fungsi yang mencetak isi array dari akhir ke awal
            cetak_array()
            {
                        float nilai[10];
                        for(i=9;i>=0;i--)
                        scanf("%3f",nilai[i]);
            }
3. Menghitung rata - rata isi array nilai
            rata_rata()
            {
                        float nilai[10],jum*rata;
                        for(i=0,jum=0;i<=9;i++)
                                    jum+=nilai[i];
                                    rata=jum/i;
            }

4. Mencari nilai terbesar
            besar()
            float temp,nilai[10];
            {
                        for(temp=nilai[0],i=1;i<=9;i++)
                        if(nilai[i] > temp)
                                    temp=nilai[i];
            }
            return(temp)


           

No comments:

Post a Comment