You are on page 1of 38

LAPORAN PRAKTIKUM

ALGORITMA PEMROGRAMAN II
MODUL 6
ARRAY

Disusun Oleh :
Nama
: Nadila Ulfah
NIM
: 1315015017
Kelompok : 1 (satu)

Asisten Praktikum :

Azriana Sari

Nina Indahsari

NIM. 1215015004

NIM. 1215015014

JURUSAN TEKNIK INFORMATIKA


UP FAKULTAS TEKNOLOGI INFORMASI DAN KOMPUTER
UNIVERSITAS MULAWARMAN

2014
BAB I
DASAR TEORI
1.1. Array (Larik)
Array merupakan kumpulan dari nilai-nilai data yang bertipe sama
dalam urutan tertentu yang menggunakan nama yang sama. Letak atau
posisi dari elemen array ditunjukkan oleh suatu index. Dilihat dari
dimensinya array dapat dibagi menjadi Array dimensi satu, array dimensi
dua dan array multi-dimensi.
Array Dimensi Satu
Setiap elemen array dapat diakses melalui indeks.
Indeks array secara default dimulai dari 0.
Bentuk umum deklarasi Array :
Tipe_array nama_array[ukuran];
Contoh :
int Nilai[5];
Nilai[0]
70

Nilai[1]

Nilai[2]

Nilai[3]

Nilai[4]

80

82

60

75

Array Dimensi Dua


Array dua dimensi merupakan array yang terdiri dari m buah baris dan n
buah kolom.
Bentuknya dapat berupa matriks atau tabel.
Deklarasi array :
Tipe_array nama_array[baris][kolom];
Contoh :
Int X[3][4];
X[0][0]

X[0][1]

X[0][2]

X[0][3]

X[1][0]

X[1][1]

X[1][2]

X[1][3]

X[2][0]

X[2][1]

X[2][2]

X[2][3]

Cara mengakses array :


Untuk mengakses array, misalnya kita ingin mengisi elemen array baris 2
kolom 3 dengan 10 maka perintahnya adalah sbb :
X[1][2] = 10;
Untuk mengisi dan menampilkan isi elemen array ada dua cara yaitu :
Row Major Order (secara baris per baris)
Column Major Order (secara kolom per kolom)

Array Multi-Dimensi
Array multi-dimensi merupakan array yang mempunyai ukuran lebih dari
dua. Bentuk pendeklarasian array sama saja dengan array dimensi satu
maupun array dimensi dua.
Bentuk umumnya yaitu :
Tipe_array nama_array[ukuran1][ukuran2][ukuranN];
Contoh :
float X[2][4][3];
X[0][0][0]

X[0][0][1]

X[0][0][2]

X[1][0][0] X[1][0][1] X[1][0][2]

X[0][1][0]

X[0][1][1]

X[0][1][2]

X[1][1][0] X[1][1][1] X[1][1][2]

X[0][2][0]

X[0][2][1]

X[0][2][2]

X[1][2][0] X[1][2][1] X[1][2][2]

X[0][3][0]

X[0][3][1]

X[0][3][2]

X[1][3][0] X[1][3][1] X[1][3][2]

BAB II
PEMBAHASAN
2.1

Percobaan 1
Diagram Flowchart

Script Program
#include "stdio.h"
#include "conio.h"
void main()
{
int index, nilai[10];
clrscr();
/* input nilai mahasiswa */
printf("Input nilai 10 mahasiswa : ");
for(index=0; index < 10; index++)
{
printf("\nMahasiswa %i : ", index+1);
scanf("%i", &nilai[index]);
}
/* tampilkan nilai mahasiswa */
printf("\nNilai mahasiswa yang telah diinput\n");
for(index=0; index < 10; index++)
{
printf("%5.0i", nilai[index]);
}
getch();
}

Hasil Running Program

Analisis Program
1. Setiap elemen array dapat diakses melalui indeks. Indeks array
secara default dimulai dari 0.
2. For (index=0; index < 10; index++) merupakan struktur perulangan
pada bahasa c, dimana index=0 merupakan inisialisasi, yaitu
pernyataan untuk menyatakan keadaan awal dari variabel kontrol.
index<10 merupakan syarat, ekspresi relasi yang menyatakan
kondisi untuk keluar dari perulangan. Dan index++ merupakan
operator unary penambahan sebagai pengatur perubahan nilai
variabel kontrol.

2.2

Percobaan 3
Diagram Flowchart

Script Program
/* Program menginput nilai(bilangan) ke dalam array dimensi dua
dan menampilkannya */
#include "stdio.h"
#include "conio.h"
void main()
{
int baris, kolom, matriks[3][4];
clrscr();
// Input elemen array secara Row Major Order
printf(Input elemen Array : \n);
for(baris=0; baris<3; baris++)
{
for(kolom=0; kolom<4; kolom++)
{
printf("matriks[%i][%i]", baris+1, kolom+1);
scanf("%i", &matriks[baris][kolom]);
}
printf("\n");
}
// Tampilkan elemen Array secara Row Major Order
printf(Isi array : \n);
for(baris=0; baris<3; baris++)
{
for(kolom=0; kolom<4; kolom++)
{
printf("%i", &matriks[baris][kolom]);
}
printf("\n");
}
getch();
}

Hasil Running Program

Analisis Program
1. Array dua dimensi merupakan array yang terdiri dari m buah baris
dan n buah kolom. Bentuknya dapat berupa matriks atau tabel.
2. For (baris=0; baris< 3; baris++) dan for (kolom=0; kolom< 4;
kolom++) merupakan struktur perulangan pada bahasa c, dimana
baris=0 dan kolom=0 merupakan inisialisasi, yaitu pernyataan untuk
menyatakan keadaan awal dari variabel kontrol. baris<3 dan
kolom<4 merupakan syarat, ekspresi relasi yang menyatakan
kondisi untuk keluar dari perulangan. Dan baris++ dan kolom++
merupakan operator unary penambahan sebagai pengatur perubahan
nilai variabel kontrol.

10

2.3

Percobaan 4
Diagram Flowchart

11

12

13

14

Script Program
/* Program penjumlahan matriks dua dimensi */
#include "stdio.h"
#include "conio.h"
void main()
{
int A[3][4], B[3][4], X[3][4], i, j;
clrscr();
/******* Masukkan matriks A *******/
for(i=0;i<3;i++)
{
for(j=0;j<4;j++)
{
printf("input data matrik A[%i][%i] : ",i+1,j+1);
fflush(stdin); scanf("%i",&A[i][j]);
}
}
/******** Masukkan matriks B ********/
for(i=0;i<3;i++)
{
for(j=0;j<4;j++)
{
printf("input data matrik B[%i][%i] : ",i+1,j+1);
fflush(stdin); scanf("%i",&B[i][j]);
}
}
/******** Proses penjumlahan matriks A dan B ********/
for(i=0;i<3;i++)
{
for(j=0;j<4;j++)
{
X[i][j]=A[i][j]+B[i][j];
}
}
/******** Cetak isi matriks A ********/
printf("\n matrik A\n");
for(i=0;i<3;i++)
{
for(j=0;j<4;j++)
printf("%6i",A[i][j]); printf("\n");
} printf("\n");
/******** Cetak isi matriks B *******/
printf("\n matrik B\n");
for(i=0;i<3;i++)
{
for(j=0;j<4;j++)
printf("%6i",B[i][j]); printf("\n");
} printf("\n");
/******** Cetak hasil penjumlahan matriks A dan B *******/
printf("\n matrik penjumlahan A+B\n");
for(i=0;i<3;i++)
{
for(j=0;j<4;j++)
printf("%6i",X[i][j]); printf("\n");
}
printf("\n\n");
getch();
}

15

Hasil Running Program

Analisis Program
1. Array dua dimensi merupakan array yang terdiri dari m buah baris
dan n buah kolom. Bentuknya dapat berupa matriks atau tabel.
2. Int merupakan data variabel, sedangkan A, B, X merupakan
pendeklarasian dari variabel int dimana A, B, X dengan angka di

16

dalam kurung merupakan penggunaan array dua dimensi dimana


angka pada dalam kurung menunjukkan baris dan kolom yang ingin
ditampilkan. Sedangkan i dan j pendeklarasian dari variabel int.
3. For (i=0; i<3; i++) dan for (j=0; j<4; j++) merupakan struktur
perulangan pada bahasa c, dimana i=0 dan j=0 merupakan
inisialisasi, yaitu pernyataan untuk menyatakan keadaan awal dari
variabel kontrol. i<3 dan j<4 merupakan syarat, ekspresi relasi yang
menyatakan kondisi untuk keluar dari perulangan. Dan i++ dan j++
merupakan operator unary penambahan sebagai pengatur perubahan
nilai variabel kontrol.

17

2.4

Percobaan 5
Diagram Flowchart

18

Script Program
/* MENGHITUNG INVERS MATRIKS DENGAN METODE GAUSS-JORDAN */
#include "stdio.h"
#include "conio.h"
void main()
{ float p[20], a[20][20], t;
int m, i, j, k, x;
clrscr();
printf("\nMasukkan ukuran matriks : \n");
scanf("%d", &m);
printf("\nMasukkan nilai elemen matriks yang akan diinvers ");
printf("\nsecara baris per baris\n");
/* Membaca matriks asli */
for(i=1; i<=m; i++)
{ printf("\n");
for(j=1; j<=m; j++)
{ printf("A(%d,%d)= ",i, j);
scanf("%f", &a[i][j]);
}
}
/* Mencetak Matriks asli */
printf("\nMatriks asli : ");
for(i=1; i<=m; i++)
{ printf("\n");
for(j=1; j<=m; j++)
printf(" %.2f", a[i][j]);
}
/* Proses inversi */
for(i=1; i<=m; i++)
{ p[i] = a[i][i];
a[i][j] = 1;
for(j=1; j<=m; j++)
{ a[i][j] = a[i][j]/p[i];
}
for(k=1; k<=m; k++)
{ if(k != i)
{ t = a[k][i];
a[k][i] = 0;
for(x=1; x<=m; x++)
a[k][x] = a[k][x] - a[i][x] * t;
}
}
}
/* Mencetak matriks hasil inversi*/
printf("\n\nMatriks inversi : \n");
for(i =1; i <=m; i++)
{ for(j=1; j<=m; j++)
printf(" %.1f", a[i][j]);
printf(" \n");
}
getch();
}

19

Hasil Running Program

Analisis Program
1. Array dua dimensi merupakan array yang terdiri dari m buah baris
dan n buah kolom. Bentuknya dapat berupa matriks atau tabel.
2. Int merupakan data variabel, sedangkan m, i, j, k, x merupakan
pendeklarasian dari variabel int.
3. Maksud dari For (i=1; i<=m; i++) adalah untuk setiap baris sama
dengan 1 sampai dengan batas matriks yang kita tentukan, maka
akan terjadi perulangan baris.
4. Sedangkan maksud dari For (j=1; j<=m; j++) adalah untuk setiap
kolom sama dengan 1 sampai dengan batas yang kita tentukan, maka
akan terjadi perulangan kolom.

20

5. Pada awalnya program ini terdapat kesalahan dalam penulisannya,


sehingga membuat program ini tidak bisa menampilkan hasil dari
matriks inversi saat dirunningkan. Kesalahan ada pada proses
inversi, pada syntax tertulis p[i]= a[i] [j] dan a[i] [j] = 1.
6. Karena program ini menggunakan metode Gauss Jordan yang akan
menjadikan matriks bernilai 1, maka pada proses inversi akan
diganti syntaxnya menjadi p[i] = a[i] [i]. Setelah diganti, program
ini sudah bisa menampilkan matriks inversi.

21

2.5

Percobaan 6
Diagram Flowchart

22

Script Program
#include "stdio.h"
#include "conio.h"
void main()
{
int i, j, k;
static int data_huruf[2][8][8] =
{
{
{ 1, 1, 1, 1, 1, 1, 1, 0 },
{ 1, 1, 0, 0, 0, 0, 1, 0 },
{ 1, 1, 0, 0, 0, 0, 0, 0 },
{ 1, 1, 1, 1, 1, 1, 1, 0 },
{ 0, 0, 0, 0, 1, 1, 1, 0 },
{ 1, 0, 0, 0, 1, 1, 1, 0 },
{ 1, 1, 1, 1, 1, 1, 1, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0 }
},
{
{ 1, 1, 0, 0, 0, 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, 0 },
{ 1, 1, 1, 0, 0, 1, 1, 0 },
{ 1, 1, 1, 0, 0, 1, 1, 0 },
{ 1, 1, 1, 0, 0, 1, 1, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0 }
}
};
/* Tampilkan Huruf */
for(i=0; i<2; i++)
{ for(j=0; j<8; j++)
{ for(k=0;k<8; k++)
if(data_huruf[i][j][k])
putchar('\xDB');
else
printf(" "); /* spasi */
puts("");
}
puts("");
}
getch();
}

23

Hasil Running Program

Analisis Program
1. Array multi-dimensi merupakan array yang mempunyai ukuran
lebih dari dua. Bentuk pendeklarasian array sama saja dengan array
dimensi satu maupun array dimensi dua.
2. Maksud dari static int data_huruf[2] [30] [40] adalah static dari data
huruf yang dimasukkan maksimal berjumlah 2 dengan banyak baris
maksimal sebesar 8, dan banyak kolom maksimal 8 kolom.
3. Maksud dari For (i=0; i<2; i++) adalah untuk setiap data static yang
dimasukkan sama dengan 0 sampai 2, maka akan terjadi perulangan
data static tersebut.
4. Maksud dari For (j=0; j<8; j++) adalah untuk setiap baris sama
dengan 0 sampai dengan 8, maka akan terjadi perulangan kolom.

24

5. Sedangkan maksud dari for (k=0;k<8;k++) adalah untuk setiap


kolom sama dengan 0 sampai 8, maka akan terjadi perulangan
kolom.
6. Maksud dari putchar('\xDB') adalah jika program ini dirunningkan
maka akan memunculkan symbol untuk setiap data yang bernilai
benar atau 1.
7. Pada data static terdapat angka 0 dan 1, jika angka 0 yang kita
masukkan maka ketika dirunningkan, program tidak akan
menampilkan apapun karena bernilai 0 (salah) tetapi jika angka 1
yang kita masukkan maka ketika dirunningkan program akan
menampilkan data yang kita masukkan berupa symbol dari putchar.

25

BAB III
TUGAS PRAKTIKUM
3.1.

Tugas 1
Buatlah sebuah program untuk menginput, menghitung dan mencetak
perkalian matriks 3 x 3!
Diagram Flowchart

26

27

28

29

30

Script Program
/* Program penjumlahan matriks dua dimensi */
#include "stdio.h"
#include "conio.h"
void main()
{ int A[3][3], B[3][3], X[3][3], Y[3][3], C[3][3], Z[3][3], i,
j;
clrscr();
/******* Masukkan matriks A *******/
for(i=0;i<3;i++)
{ for(j=0;j<3;j++)
{ printf("input data matrik A[%i][%i] : ",i+1,j+1);
fflush(stdin);scanf("%i",&A[i][j]);
}
}
/******** Masukkan matriks B ********/
for(i=0;i<3;i++)
{ for(j=0;j<3;j++)
{ printf("input data matrik B[%i][%i] : ",i+1,j+1);
fflush(stdin);scanf("%i",&B[i][j]);
}
}
/******** Proses penjumlahan matriks A dan B ********/
for(i=0;i<3;i++)
{ for(j=0;j<3;j++)
{ Z[i][j]=A[i][j]+B[i][j];
}
}
/*Proses Perkalian*/
for(i=0;i<3;i++)
{ for(j=0;j<3;j++)
{
X[i][j]=(A[i][0]*B[0][j])+(A[i][1]*B[1][j])+(A[i][2]*B[2][j]);
}
}
/******** Cetak isi matriks A ********/ printf("\n matrik A\n");
for(i=0;i<3;i++)
{ for(j=0;j<3;j++) printf("%6i",A[i][j]); printf("\n");
}
printf("\n");
/******** Cetak isi matriks B *******/ printf("\n matrik B\n");
for(i=0;i<3;i++)
{ for(j=0;j<3;j++)
printf("%6i",B[i][j]);printf("\n");
}

31

printf("\n");
/******** Cetak hasil penjumlahan matriks A dan B *******/
printf("\n matrik penjumlahan A+B\n");
for(i=0;i<3;i++)
{ for(j=0;j<3;j++)
printf("%6i",Z[i][j]);printf("\n");
}
printf("\n");
/******** Cetak hasil perkalian matriks A dan B *******/
printf("\n matrik perkalian A*B\n");
for(i=0;i<3;i++)
{ for(j=0;j<3;j++)
printf("%6i",X[i][j]);printf("\n");
}
printf("\n\n");
getch();
}

Hasil Running Program

32

3.2.

Tugas 2
Apa yang tercetak dari program berikut ini :
#include <stdio.h>
#define SIZE 10
int whatIsThis(int [], int);
void main() {
int total, a[SIZE] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
total = whatIsThis(a, SIZE);
printf("\nNilai variabel total adalah %d", total); getch();
}
int whatIsThis(int b[], int size) {
if (size == 1) return b[0]; else
return b[size-1] + whatIsThis(b, size-1);

33

Diagram Flowchart

Script Program
#include <stdio.h>
#include <conio.h>
#define SIZE 10
int whatIsThis(int [], int);
void main() {
int total, a[SIZE] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
total = whatIsThis(a, SIZE);
printf("\nNilai variabel total adalah %d", total);
getch();
}
int whatIsThis(int b[], int size)
{
if (size == 1) return b[0]; else
return b[size-1] + whatIsThis(b, size-1);
}

Hasil Running Program

34

3.3.

Tugas 3
Buatlah program menampilkan nama kalian masing-masing dengan
menggunakan array multidimensi
Diagram Flowchart
Script Program

#include "stdio.h"
#include "conio.h"
void main()
{ int i, j, k;
static int data_huruf[2][50][50] =
{
{
{ 0, 0, 1, 1, 1, 1, 0, 0, 0, 0,
0, 1, 1, 1, 1, 0},
{ 0, 0, 1, 0, 0, 0, 1, 0, 0, 0,
1, 0, 0, 0, 0, 1},
{ 0, 0, 1, 0, 0, 0, 0, 1, 0, 0,
1, 0, 0, 0, 0, 1},
{ 0, 0, 1, 0, 0, 0, 0, 1, 0, 0,
1, 1, 1, 1, 1, 1},
{ 0, 0, 1, 0, 0, 0, 0, 1, 0, 0,
1, 0, 0, 0, 0, 1},
{ 0, 0, 1, 0, 0, 0, 1, 0, 0, 0,
1, 0, 0, 0, 0, 1},
{ 0, 0, 1, 1, 1, 1, 0, 0, 0, 0,
1, 0, 0, 0, 0, 1}
},
};

1, 0, 0, 1, 0, 0, 0, 0, 0,
1, 0, 0, 1, 0, 0, 0, 0, 0,
1, 0, 0, 1, 0, 0, 0, 0, 0,
1, 0, 0, 1, 0, 0, 0, 0, 0,
1, 0, 0, 1, 0, 0, 0, 0, 0,
1, 0, 0, 1, 0, 0, 0, 0, 0,
1, 0, 0, 1 ,1 ,1 ,1, 0, 0,

/* Tampilkan Huruf */
for(i=0; i<2; i++)
{ for(j=0; j<50; j++)
{ for(k=0;k<50; k++)
if(data_huruf[i][j][k])
putchar('\x3');
else
printf(" "); /* spasi */
puts("");
}
puts("");
}
getch();
}

35

Hasil Running Program

36

BAB IV
KESIMPULAN

Dalam Bahasa C terdapat array (larik). Array adalah suatu tipe data
tersutruktur yang dideklarasikan dengan nama variable yang sama, dan mampu
menyimpan banyak data yang tergantung kepada elemen-elemen/nilai-nilai data
yang ditentukan. Kemudian, data tersebut disimpan kedalam memori secara
berurutan (kontigu). Dalam bahasa lain array pun dikenal dengan larik.
Adapun macam-macam dimensi array antara lain, array berdimensi satu,
array berdimensi dua dan array multidimensi.
Array dapat mempunyai sejumlah nilai, sedangkan tipe data lain hanya
dihubungkan dengan sebuah nilai saja. 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.

37

DAFTAR PUSTAKA

Modul 6 Algoritma Pemograman


http://agamrustiawan.wordpress.com/2012/10/08/array-dalam-bahasa-c/
http://tutorialpemrograman.wordpress.com/2008/02/12/array-dalam-bahasa-c/

38

You might also like