Minggu, 13 Desember 2015

Algoritma Array/Larik

Larik adalah struktur data yang statis, artinya, jumlah elemen larik harus sudah diketahui sebelumnya. Jumlah elemen larik tidak bisa diubah, ditambah, dikurangi selama running program. Mendefinisikan banyak elemen larik berarti memesan sejumlah tempat di memori dan memori akan mengalokasikan sejumlah lokasi memori sebanyak elemen larik bersangkutan.
Array tidak lepas dari looping, array juga ada beberapa macam, ada array 1 dimensi(string), ada juga array 2 dimensi(matriks). Lalu bagaimana membuat array 1&2 dimensi?

Contoh soal array 1 dimensi.

1. Menampilkan deret 1,4,9,16,25,... dengan disediakan array sebanyak 10.

Algoritma:
Program array1
Kamus
i : integer
a : array[10] of integer
Algoritma
for i=1 to 10 do
    a[i] <-- i^2
endfor

Bahasa C:
*untuk di bahasa c, pangkat 2 tidak ada maka diganti menjadi kali dengan variabel/bilangan yang sama.
Output/keluaran
2. Meminta masukan nilai dari user sebanyak n buah bilangan, lalu menampilkan nilai terkecil dari 1000 bilangan.

Algoritma:
Program array2
Kamus
n, min, i : integer
a : array[10] of integer
Algoritma
input(n)
for i=1 to n do
      input a[i]
endfor
min <-- 1000
    for 1=1 to n do
        if(min>a[i])then
            min <-- a[i]
endfor
        output(min)
endif

Bahasa C:
Output/keluaran

Contoh soal array 1 dimensi (String).

1. Meminta masukan kalimat dari user lalu minta masukan huruf yang akan dihitung, & menghitung jumlah huruf di dalam kata tersebut.

Algoritma:
Program huruf
Kamus
kalimat : string
hu, hg : character
i ; integer
Algoritma
input(kalimat)
input(hu)
input(hg)
for i=1 to len do
if(kalimat[i]=hu)then
kalimat[i] <-- hg
endif
endfor
output(kalimat)

Bahasa C:

*strlen adalah nama fungsi di bahasa C untuk menghitung banyaknya kata(string).

Output/keluaran:

Contoh soal array 2 dimensi.

1. Buat matriks dengan deret sbb:










Algoritama:
Program buatmatriks
Kamus
array c[4,4] of integer
d, e, f : integer
Algoritma
f <-- 1
for d=1 to 4 do
for e=1 to 4 do
     c[d,e] <-- f
     f <-- f+1
endfor
endfor
for d=1 to 4 do
for e=1 to 4 do
output c[d,e]
endfor
endfor

Bahasa C:




















2. Hitung 2 matriks 3x3 dengan menerima masukan dari user lalu menghitung jumlah, kurang, dan kali matriks tersebut.

Algoritma:
Program hitungmatriks
Kamus
array a[3,3] of integer
array b[3,3] of integer
array c[3,3] of integer
array d[3,3] of integer
array e[3,3] of integer
f, g :integer
Algoritma
for f=1 to 3 do
for g=1 to 3 do
    input a[f,g]
endfor
endfor
for f=1 to 3 do
for g=1 to 3 do
    input b[f,g]
endfor
endfor
for f=1 to 3 do
for g=1 to 3 do
    c[f,g] <-- a[f,g]+b[f,g]
    output c[f,g]
endfor
endfor
for f=1 to 3 do
for g=1 to 3 do
    d[f,g] <-- a[f,g]-b[f,g]
    output d[f,g]
endfor
endfor
for f=1 to 3 do
for g=1 to 3 do
    e[f,g] <-- a[f,g]*b[f,g]
    output e[f,g]
endfor
endfor

Bahasa C:
#include<stdio.h>
#include<iostream>
using namespace std;

int main()
{
int a[3][3];
int b[3][3];
int c[3][3];
int d[3][3];
int e[3][3];
int f;
int g;
int h;
for(f=0; f<3; f++){
for(g=0; g<3; g++){
printf("masukan matriks 1 :"); scanf("%d",& a[f][g]);
}
}
for(f=0; f<3; f++){
for(g=0; g<3; g++){
printf("masukan matriks 2 :"); scanf("%d",& b[f][g]);
}
}
for(f=0; f<3; f++){
for(g=0; g<3; g++){
c[f][g]=a[f][g]+b[f][g];
cout<<c[f][g]<<" ";
}
cout<<"\n";
}
for(f=0; f<3; f++){
for(g=0; g<3; g++){
c[f][g]=a[f][g]-b[f][g];
cout<<c[f][g]<<" ";
}
cout<<"\n";
}
for(f=0; f<3; f++){
for(g=0; g<3; g++){
for(h=0; h<3; h++){
c[f][g]=a[f][g]*b[f][g];
}
cout<<c[f][g]<<" ";
}
cout<<"\n";
}
return 0;
}

Tidak ada komentar:

Posting Komentar