Anda di halaman 1dari 14

Laporan Akhir Praktikum

Algoritma dan Komputasi Numerik

- AKN - 4 -
( Array )

Nama : Muhammad Ahyar


NPM : 140310160096
Hari/Tanggal : Kamis/30 Maret 2017
Waktu : 14.00-19.00
Asisten : Shinta Devi

LABORATORIUM KOMPUTER
DEPARTEMEN FISIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS PADJADJARAN
2017
V. Tugas Praktikum

5.1 Mencari nilai maksimum dan minimum dari array


a. Listing program
#include<stdio.h>
main()
{
int N, i,j, maks, min, A[15];
printf("Input Banyak Bilangan:", N);
scanf("%d", &N);
for(i=0;i<N;i++){
printf("A[%d]=",i);
scanf("%d", &A[i]);
}
maks=A[0];
min=A[0];
for(j=0;j<N;j++){
if(maks<A[j])
maks=A[j];
if(min>A[j])
min=A[j];
}
printf("Nilai Maksimum: %d", maks);
printf("Nilai Minimum: %d", min);
}

b. Tampilan program

c. Analisa program
pada program ini digunakan bubble short method untuk mencari urutan nilai dari
array, dimana pada array ini ditentukan indeks mana yang akan dinytakan sebagai
nilai maksimum atau minimumnya.

5.2 mengurutkan data array secara ascending dan descending


a. Listing Program
#include <stdio.h>
void input(int n, int bil[]);
void sort(int n, int bil[]);
void ascending(int n, int bil[]);
void descending(int n, int bil[]);
main()
{
int bil[15], n, max, min;
printf("Masukan banyak bil (maksimum 15) : ");
scanf("%d",&n);
input(n,bil);
sort(n,bil);
printf("\nAscending : ");
ascending(n,bil);
printf("\nDescending : ");
descending(n,bil); }
void input(int n, int bil[])
{ int i;
for(i=0;i<n;i++)
{ printf("bilangan ke %d : ",i+1);
scanf("%d",&bil[i]);
}
}
void sort(int n, int bil[])
{
int i,j,temp;
for(i=1;i<n;i++)
{
for(j=n-1;j>0;j--)
{ if(bil[j]<bil[j-1])
{ temp=bil[j];
bil[j]=bil[j-1];
bil[j-1]=temp;
}
}
}
} void ascending(int n, int bil[])
{
int i;
for(i=0;i<n;i++)
if(i<n-1)
printf("%d,",bil[i]);
else printf("%d",bil[i]);
}
void descending(int n, int bil[])
{
int i;
for(i=n-1;i>=0;i--)
if(i>0) printf("%d,",bil[i]);
else printf("%d",bil[i]);
}

b. tampilan program

c. Analisa program
Pada program ini, terdapat penggunaan array sebagai parameter dari suatu
fungsi. Perbedaan antara pengurutan descending dan ascending terletak pada
sekuensi “if” dimana ascending dan descending memiliki syarat yang berbeda
5.3 penjumlahan dan pengurangan array 2d
a. Listing Program
#include <stdio.h>
int main()
{
int B;
int K;
printf("Baris : ");
scanf("%d",&B);
printf("Kolom : ");
scanf("%d",&K);
int x;
int y;
int z;
int a[B][K];
int b[K][B];
printf("\n\n");for(x=0;x<B;x++)
{
for(y=0; y<K; y++)
{
printf("Elemen[%d][%d] : ",x,y);
scanf("%d",&a[x][y]);
}
} printf("\n");
for (x=0; x<K; x++)
{
for(y=0; y<B; y++)
{
b[x][y]=a[y][x];
}
}
printf("Matriks\n");
for(x=0; x<B; x++)
{
for(y=0;y<K;y++)
{
printf("%3d",a[x][y]);
}
printf("\n");
} printf("\n\nMatriks Transpose\n");
printf("\n");
for(x=0;x<K;x++)
{
for(y=0;y<B;y++)
{
printf("%3d",b[x][y]);
}
printf("\n");
}
}

b. tampilan program

c. Analisa program
Penjumlahan dan pengurangan array di program ini menggunakan syarat penjumlahan
di matriks dimana operasi penjumlahan dan pengurangan hanya dapat dikerjakan
terhadap dua elemen yang sama dari dua matriks yang berbeda. Matriks dapat dibuat
dengan memanfaatkan array 2d.

5.4 Transpose Matriks


a. Listing program
#include <stdio.h>
int main()
{
int B;
int K;
printf("Baris : ");
scanf("%d",&B);
printf("Kolom : ");
scanf("%d",&K);
int x;
int y;
int z;
int a[B][K];
int b[K][B];
printf("\n\n");for(x=0;x<B;x++)
{
for(y=0; y<K; y++)
{
printf("Elemen[%d][%d] : ",x,y);
scanf("%d",&a[x][y]);
}
} printf("\n");
for (x=0; x<K; x++)
{
for(y=0; y<B; y++)
{
b[x][y]=a[y][x];
}
}
printf("Matriks\n");
for(x=0; x<B; x++)
{
for(y=0;y<K;y++)
{
printf("%3d",a[x][y]);
}
printf("\n");
} printf("\n\nMatriks Transpose\n");
printf("\n");
for(x=0;x<K;x++)
{
for(y=0;y<B;y++)
{
printf("%3d",b[x][y]);
}
printf("\n");
}
}

b. Tampilan program

c. Analisa program
Pada program ini digunakan pertukaran data antara dua elemen pada suatu
matriks, dimana elemen yang ditukar adalah array baris dan array kolom.

5.5 Perkalian Matriks


a. listing program
#include <stdio.h>
main ()
{
int d,k,i,j,a[10][10],b[10][10],c[10][10],d2,k1;
printf("Perkalian matriks \n\n");
printf("Jumlah baris matrik a: ");scanf("%d",&d);
printf("Jumlah kolom matrik a: ");scanf("%d",&k);
printf("Jumlah baris matrik b: ");scanf("%d",&k1);
printf("Jumlah kolom matrik b: ");scanf("%d",&d2);
if(k==k1)
{
for(i=0;i<d;i++)
{
for(j=0;j<k;j++)
{
printf ("a[%d][%d] = ",i,j);
scanf("%d",&a[i][j]);
}
}
for(i=0;i<k1;i++)
{
for(j=0;j<d2;j++)
{
printf ("b[%d][%d] = ",i,j);
scanf("%d",&b[i][j]);
}
}
printf("\n");
printf("matrik a \n");
for(i=0;i<d;i++)
{
for(j=0;j<k;j++)
{
printf ("%d\t",a[i][j]);
}
printf("\n");
}
printf("\n");
printf("matrik b \n");
for(i=0;i<k1;i++)
{
for(j=0;j<d2;j++)
{
printf ("%d\t",b[i][j]);
}
printf("\n");
}
for(i=0;i<d;i++)
{
for(j=0;j<k;j++)
{
c[i][j]=(a[i][0] *b[0][j])+(a[i][1]*b[1][j]);
}
}
printf("\n");printf("Hasil matrik a dikali matrik b adalah
matrik c\n\n\n");
printf("matrik c \n");
for(i=0;i<d;i++)
{
for(j=0;j<d2;j++)
{
printf ("%d\t",c[i][j]);
}
printf("\n");
}
}
else
{
printf("UNTUK PERKALIAN, JUMLAH KOLOM MATRIK a HARUS SAMA
DENGAN BARIS MATRIK b ");
}
}

b. tampilan program
c. Analisa program
pada program ini digunakan syarat dimana jumlah kolo pada matriks A sama
dengan jumlah baris pada matriks B. syarat ini diinisialisasikan sebelum
operasi matriks berlanjut
VI. Tugas Akhir
6.1 deret Fibonacci dengan array 1 dimensi
a. Listing program
#include <stdio.h>
void fibonaci(int n, int bil[]);
void deret(int n, int bil[]);
main()
{int bil[20],n;
printf("Masukkan banyaknya bilangan yang akan ditampilkan
(maks. 20): ");
scanf("%d",&n);
printf("Masukkan bilangan pertama : ");
scanf("%d",&bil[0]);
printf("Masukkan bilangan kedua : ");
scanf("%d",&bil[1]);
fibonaci(n,bil);
printf("Deret : ");
deret(n,bil);
}
void fibonaci(int n,int bil[])
{
int i;
for(i=2;i<n;i++)
{
bil[i]=bil[i-1]+bil[i-2];
}
}
void deret(int n, int bil[])
{
int i;
for(i=0;i<n;i++)
printf("%d,",bil[i]);
}

b. Tampilan program

c. Analisa program
Pada program ini terdapat penggunaan array sebagai parameter dari suatu fungsi

6.2 perkalian matriks scalar

a. Listing Program
#include <stdio.h>
main ()
{
int d,k,i,j,a[10][10],c[10][10],x;
printf("==Perkalian matrik skalar==\n\n");
printf("Jumlah baris matrik a: ");
scanf("%d",&d);
printf("Jumlah kolom matrik a: ");scanf("%d",&k);
{
for(i=0;i<d;i++)
{
for(j=0;j<k;j++)
{
printf ("a[%d][%d] = ",i,j);
scanf("%d",&a[i][j]);
}
}
printf("\n");
printf("matrik a \n");
for(i=0;i<d;i++)
{
for(j=0;j<k;j++)
{
printf ("%d\t",a[i][j]);
}
printf("\n");
}
printf("\n");
printf("Masukan angka yang akan dikalikan dengan matrik a = ");
scanf("%d",&x);
for(i=0;i<d;i++)
{
for(j=0;j<k;j++)
{
c[i][j]=x*a[i][j];
}
}
printf("\n");
printf("Hasil dari %d dikali dengan matrik a ",x);
printf("\n");
printf("\n");
printf("matrik c \n");
for(i=0;i<d;i++)
{
for(j=0;j<k;j++)
{
printf ("%d\t",c[i][j]);
}
printf("\n");
}
}
}

b. Tampilan Program
d. Analisa Program
Pada program ini array 2d yang digunakan untuk membuat matriks kemudian
dioperasikan dengan dikali suatu scalar, dengan cara yakni setiap elemen pada
matriks dikalikan terhadap scalar dengan menggunakan perulangan

VII. KESIMPULAN

• Melalui praktikum ini, praktikan dapat memahami mengenai array dan


penggunaannya dalam pengolahan data. Dimana pada praktikum ini array
yang digunakan adalah array 2d dan memanfaatkan konsep matriks

Anda mungkin juga menyukai