TEL 2103 Dasar Komputer & Pemograman Larik (Array) Dosen: Abdillah, MIT Email: abdill01@gmail.com Website: http://abdill01.wordpress.com
Tujuan Mahasiswa mampu menggunakan larik untuk memecahkan masalah dan mentranslasikannya ke dalam program.
Apa itu Larik? Larik adalah struktur data yang menyimpan sekumpulan elemen yang bertipe sama. Setiap elemen mempunyai indeks yang bertipe data berurutan (integer atau karakter). Contoh: Larik A berukuran 5 buah elemen 0 1 2 3 4 A[0], A[1], A[2], A[3] dan A[4].
Kapan Menggunakan Larik? Larik digunakan jika kita memiliki sejumlah data yang bertipe sama dan kita perlu menyimpan sementara data itu untuk selanjutnya data itu dimanipulasi. Selama pelaksanaan program, larik tetap menyimpan nilai-nilai. Dengan menggunakan larik kita menghindari penggunaan nama peubah yang banyak.
Mendeklarasikan Larik Sebelum digunakan larik harus dideklarasikan dengan cara mendefinisikan ukuran larik dan tipe elemen larik. Ukuran larik dapat didefinisikan langsung atau dideklarasikan sebagai sebuah konstanta Elemen larik dapat berupa tipe dasar atau tipe bentukan.
Mendeklarasikan Larik Contoh deklarasi larik bertipe dasar: A adalah larik berukuran 100 buah elemen yang bertipe integer. NamaMhs adalah larik berukuran 10 buah elemen yang bertipe string yang panjangnya 25 karakter. /* DEKLARASI */ int A [100]; char NamaMhs [10] [25];
Mendeklarasikan Larik Contoh deklarasi larik bertipe bentukan: LarikInt adalah nama sebuah tipe baru untuk larik yang bertipe integer dan berukuran 100 elemen. String adalah nama sebuah tipe baru untuk larik yang bertipe karakter dan berukuran 25 elemen. /* DEKLARASI */ typedef int LarikInt [100]; LarikInt A; typedef char String [25]; String NamaMhs [10];
Mendeklarasikan Larik Contoh deklarasi ukuran larik sebagai konstanta: Nmaks adalah nama sebuah konstanta untuk ukuran tipe bentukan LarikInt yang bertipe integer. /* DEKLARASI */ const int Nmaks = 100; typedef int LarikInt [Nmaks]; LarikInt A;
Mendeklarasikan Larik Contoh deklarasi larik bertipe terstruktur: /* DEKLARASI */ const int Nmaks = 100; typedef struct { int NIM; char NamaMhs [25]; float IPK; } Mahasiswa typedef Mahasiswa TabMhs [Nmaks]; TabMhs Mhs;
Cara Mengacu Elemen Larik Elemen larik diacu melalui indeksnya. Nilai indeks harus terdefinisi, seperti contoh berikut: A[4] ← 10 NamaMhs[2] ← ‘Ahmad’
Pemrosesan Larik Pemrosesan beruntun pada larik adalah pemrosesan yang dimulai dari elemen pertama larik, berturut-turut pada elemen berikutnya, sampai elemen terakhir dicapai, yaitu elemen dengan indeks terbesar.
Menginisialisasi Larik Menginisialisasi larik adalah memberikan nilai awal untuk seluruh/sebagian elemen larik. Untuk larik bertipe numerik, inisialisasi berupa pengisian elemen larik dengan nol atau nilai lainnya. Sedangkan pada larik karakter, inisialisasi berupa pengisian elemen larik dengan spasi atau karakter kosong (null).
Larik Karakter (String) String adalah larik karakter dengan panjang dinamis, artinya ukuran larik baru ditentukan pada saat program dieksekusi. Larik karater diakhiri dengan null (‘\0’). String kosong adalah larik yang panjangnya 0 dan isinya hanya karakter ‘\0’.
Latihan Buatlah algoritma dan program C yang membaca N buah data integer dari papan ketik, menyimpannya dalam sebuah array, dan menentukan bilangan terbesar dari N buah data integer tsb. Nilai N ditentukan maksimum 20.
Algoritma Program Utama PROGRAM Cari_Maximum {Menentukan bilangan terbesar dari N buah data integer} DEKLARASI N = 20, bil[N], nmax, jml, i : integer function Max (input X[ ],k : integer) → integer ALGORITMA: read (jml) for i 0 to jml do read ( bil[i] ) endfor nmax Max(bil,jml) write (nmax)
Algoritma Fungsi Max function Max (input X[ ],k : integer) → integer { Mengembalikan nilai maximum } DEKLARASI maximum : integer ALGORITMA: maximum ← X[0] for i 1 to k do if X[i] > maximum then maximum ← X[i] endif endfor return (maximum)
Program Cari_Maximum #include <stdio.h> #define N 20 int Max(int X[],int k); int i; main() { int jml, nmax, bil[N]; printf("Jumlah bilangan (maks 20) : "); scanf("%d",&jml); for (i=0;i<jml;i++) { printf("Bilangan ke %d : ",i+1); scanf("%d",&bil[i]); } nmax = Max(bil,jml); printf("Nilai maximum adalah : %d", nmax);
Program Fungsi Max int Max(int X[],int k) { int maximum = X[0]; for (i=1;i<k;i++) if (X[i] > maximum) maximum = X[i]; } return maximum;