PRAKTEK VII
ARRAY
Mata Kuliah : Bahasa Pemrograman (TEI 027)
Seksi : 201521300019
Nama : Chintia Sary
Nim : 15130042
UNP 2016
1. Apa
pengertian array, jenis-jenis array, dan penggunaan array dalam program? Sertai
dengan contoh
2. Apa
kelebihan dan kekurangan array?
3. Kerjakan
minimal 5 studi kasus pada halaman 188-190
Jawab
Array
(larik) adalah kumpulan dari nilai-nilai data bertipe sama dalam urutan
tertentu yang menggunakan sebuah nama yang sama. Array dapat digunakan untuk
menyimpan beberapa nilai tipe data lain data (char, int, float, double, long,
dll) yang sama dengan satu nama saja. Nilai-nilai data di suatu array disebut
dengan elemen-elemen larik. Letak urutan dari suatu elemen larik ditunjukkan
oleh suatu subscript atau suatu index.
Menurut dimensinya,
array dapat dibedakan menjadi :
1. Array berdimensi satu
- Setiap elemen array
dapat diakses melalui index
- Index array secara
default dimulai dari 0
Deklarasi array :
Tipe_array
nama_array[ukuran]
Contoh
program :
#include
<stdio.h>
#include <conio.h>
main(){
int n,jum=0, nilaiSiswa[10];
double rata;
printf("\n\tCONTOH PROGRAM ARRAY SATU
DIMENSI\n\n");
printf("Input nilai berapa banyak?
"); scanf("%d",&n);
printf("\n");
for(int i=0;i<n;i++){
printf("Nilai ke-%d : ",i);
scanf("%d",&nilaiSiswa[i]);
}
printf("\nHASIL NILAI YG DIINPUTKAN
USER");
for(int i=0;i<n;i++){
printf("\nNilai ke-%d = %d",
i,nilaiSiswa[i]);
}
for(int
i=0;i<n;i++){
jum=jum+nilaiSiswa[i];
rata=jum/n;
}
printf("\nHasil penjumlahan kesemua nilai
= %d",jum);
printf("\nRata-rata nya = %f",
rata);
}
2. Array berdimensi dua
Merupakan
array yang terdiri dari m buah baris dan n buah buah kolom. Bentuknya dapat
berupa matriks atau tabel.
Deklarasi array :
Tipe_array nama_array
[baris][kolom]
Contoh
program :
#include conio.h
#include stdio.h
#include
iostream.h
void main()
{
clrscr();
int
a[50][50],b[50][50];
int m,n,p,q,j,k;
cout<<"Jumlah
baris Matrik A = ";cin>>m;
cout<<"Jumlah
kolom Matrik A = ";cin>>n;
cout<<"Jumlah
baris Matrik B = ";cin>>p;
cout<<"Jumlah
kolom Matrik B = ";cin>>q;
clrscr();
cout<<"Input
Matriks A\n";
for(j=0;j
for(k=0;k {
cout<<"A"<>a[j][k];
}
cout<<"Input
Matriks B\n";
for(j=0;j
for(k=0;k {
cout<<"B"<>b[j][k];
}
clrscr();
cout<<"Matrik
A \n";
for(j=0;j{
for(k=0;k
cout< cout<<"\n";
}
cout<<"\n\nMatrik
B \n";
for(j=0;j
{
for(k=0;k
cout<
cout<<"\n";
}
getch();
}
3. 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]
Contoh
program :
#include
<stdio.h>
#include
<conio.h>
main(){
int
b,k,A[20][20],B[20][20],jum[20][20],kur[20][20];
printf("\n\tCONTOH PROGRAM ARRAY
MULTIDIMENSI\n\n");
printf("Masukkan jumlah baris dan
kolom\n");
printf("Baris? ");
scanf("%d",&b);
printf("Kolom? ");
scanf("%d",&k);
printf("\n");
for(int i=0;i<b;i++)
{ for(int
j=0;j<k;j++){
printf("A[%d][%d]= ",i,j);
scanf("%d",&A[i][j]); }
printf("\n");
for(int i=0;i<b;i++){
for(int j=0;j<k;j++){
printf("B[%d][%d]= ",i,j);
scanf("%d",&B[i][j]);
}
}
//penjumlahan matriks
for(int i=0;i<b;i++){
for(int j=0;j<k;j++){
jum[i][j]=A[i][j]+B[i][j];
}
}
//pengurangan matriks
for(int i=0;i<b;i++){
for(int j=0;j<k;j++){
kur[i][j]=A[i][j]-B[i][j];
}
}
printf("\nPenjumlahan matriks A &
B\n");
for(int i=0;i<b;i++){
for(int j=0;j<k;j++){
printf(" %d ",jum[i][j]);
}
printf("\n");
}
printf("\nPengurangan matriks A &
B\n");
for(int i=0;i<b;i++){
for(int j=0;j<k;j++){
printf(" %d ",kur[i][j]);
}
printf("\n");
}
getch();
}
KELEBIHAN DAN
KEKURANGAN ARRAY
A.
Kelebihan
1.
Array sangat baik jika digunakan
untuk mengakses secara acak (random). Karena secara acak index di array dapat
secara langsung tanpa melalui indek yang lainnya
2.
Jika berada di suatu lokasi indek
sangatlah mudah untuk mencari ke indeks yang sama.
3.
Jika indeks array adalah
nilai-nilai tersendiri dan semuanya harus terjaga, maka penggunaan
penyimpanannya sangatlah tepat
4.
Tidak mudah crash
5.
Cepatnya mengeksekusi data
6.
Tidak banyak memakan memori
B.
Kekurangan
1.
Ukuran file yang sangat besar
2. Tidak efisien dalam penggunaan memori
3.
Jika array bertipe homogen, maka
user tidak dapat mempunyai array dimana satu indeks adalah karakter utamanya.
PROGRAM
v Program membalik kata
a)
Algoritma
1.
Mulai
2.
Masukkan kata
3.
Set hitung = strlen(kata)
4. for(hitung-1;hitung>0;hitung—
cetak kata yang telah dibalik
5. selesai
b)
Kode
program
#include
<stdio.h>
#include
<string.h>
main()
{
int
i=0;
int
hitung;
char
kata[100];
printf("\t\tprogram
membalik kata\n\n");
printf("masukkan
kata yang ingin dibalik : ");
scanf("%s",
&kata);
hitung=strlen(kata);
printf("kata
setelah dibalik : ");
for(hitung-1;hitung>0;hitung--)
{
printf("%c",
kata[hitung-1]);}
printf("\n");
}
c)
Output

d) Analisa
Dari
contoh program di atas, user memasukkan kata chintya, setelah dibalik menjadi
aytnihc.
v Program
Menginput Nilai Matriks dan Menampilkan Matriks
a) Algoritma
1.
Mulai
2.
For (i = 0, i < 5, i ++)
3.
Massukkan
nilai elemen
4.
Cetak
matrik
5.
Selesai
b) Kode
Program
#include <iostream>
#include <conio.h>
#include <iomanip>
using namespace std;
int main ()
{
int a[5], i;
//input elemen matriks
cout << "Silahkan input elemen Matriks : \n";
cout << "------------------------------- \n";
for (i=0; i<5; i++)
{
cout << "Elemen ( " << (i+1) << " " ")
:";
cin >> a[i];
}
//cetak matriks
cout << "\nMatriks X = [";
for (i=0; i<5; i++)
{
cout << setw(4) << a[i];
}
cout << " ]";
cout << endl;
getch ();
}
c) Output

v Program
menghitung huruf vokal dan huruf konsonan
a) Algoritma
1.
Mulai
2. Masukkan
kalimat
3. count_vocal=print_if_match(str,key_vocal)
cetak
huruf vokal
4. count_konsonan=print_if_match(str,key_konsonan)
cetak
huruf konsonan
5.
count_symbol=print_if_match(str,key_symbol)
cetak simbol
6. selesai
b) Kode
Program
#include <stdio.h>
#include <string.h>
#include <conio.h>
int print_if_match(char *str, char *key)
{
char *pCh;
int found=0;
pCh = strpbrk (str,
key);
while (pCh != NULL)
{
printf ("%c
" , *pCh);
pCh = strpbrk
(pCh+1,key);
found++;
}
return found;
}
int main ()
{
char str[100];
char key_vocal[] =
"aeiou";
char key_konsonan[] =
"bcdfghjklmnpqrstvwxyz";
char key_symbol[]=
"`~!@#$%^&*()-_=+[{]}\\|'\";:/?.>,<";
int count_vocal = 0;
int count_konsonan = 0;
int count_symbol = 0;
printf (" Program Menghitung Huruf
\n\n");
printf
("%s","Masukkan Kalimat: ");
scanf("%[^\n]",str);
printf("%s","\nHuruf Vokal: ");
count_vocal=print_if_match(str,key_vocal);
printf("\nJumlah
Huruf Vokal: %d\n",count_vocal);
printf("%s","\nHuruf Konsonan: ");
count_konsonan=print_if_match(str,key_konsonan);
printf("\nJumlah
Huruf Konsonan: %d\n",count_konsonan);
printf("%s","\nHuruf Symbol: ");
count_symbol=print_if_match(str,key_symbol);
printf("\nJumlah Symbol:
%d\n",count_symbol);
printf ("\n");
getch();
return 0;
}
c) Output

v Program
Penjumlahan, Pengurangan, dan Perkalian Matriks
a) Kode
Program
#include <iostream>
#include <conio.h>
#include <stdlib.h>
using namespace std;
int main()
{
char salah;
double a[10][10];
double b[10][10];
double hasil[10][10];
int
i,j,r,bb,k,b2,k2,p;
do
{
//program bikin pusing
chintya 42
cout<<"==========================\n";
cout<<"inputkan banyak baris a: "; cin>>bb;
cout<<"inputkan banyak kolom a: "; cin>>k;
cout<<"inputkan banyak baris b: "; cin>>b2;
cout<<"inputkan banyak kolom b: "; cin>>k2;
cout<<"==========================\n";
if
((bb==b2)&&(k==k2))
{
cout<<"INPUT ELEMEN
MATRIK A: "<<endl;
for (i=0;i<bb;i++)
for (j=0;j<k;j++)
{
cout<<"A["<<(i+1)<<","<<(j+1)<<"]=";cin>>a[i][j];
}
cout<<"INPUT ELEMEN
MATRIK B: "<<endl;
for (i=0;i<bb;i++)
for (j=0;j<k;j++)
{
cout<<"B["<<(i+1)<<","<<(j+1)<<"]=";cin>>b[i][j];
}
cout<<"--------------------------------------------\n";
cout<<"pilih
(1=jumlah,2=kurang,3=perkalian) : ";cin>>p;
cout<<"--------------------------------------------\n";
if(p==1)
{
cout<<"TAMPIL MATRIK : "<<endl;
cout<<"Matriks A
Matriks B"<<endl;
for
(i=0;i<bb;i++)
{
for
(j=0;j<k;j++)
{
cout<<a[i][j]<<"
";
}
if (i==0)
{
cout<<"+";
cout<<" ";
for (j=0;j<k;j++)
{
cout<<b[i][j]<<"
";
}
}
if
(i>0)
{
cout<<" ";
for
(j=0;j<k;j++)
cout<<" "<<b[i][j]<<" ";
}
cout<<endl;
}
for
(i=0;i<bb;i++)
for
(j=0;j<k;j++)
{
hasil[i+1][j+1]=(a[i][j]+b[i][j]);
}
cout<<endl<<"HASIL AKHIR= "<<endl;
for
(i=0;i<bb;i++)
{
for
(j=0;j<k;j++)
{
cout<<hasil[i+1][j+1]<<" ";
}
cout<<endl;
}
}
else if(p==2)
{
cout<<"TAMPIL MATRIK : "<<endl;
cout<<"Matriks A
Matriks B"<<endl;
for
(i=0;i<bb;i++)
{
for
(j=0;j<k;j++)
{
cout<<a[i][j]<<"
";
}
if (i==0)
{
cout<<"-";
cout<<" ";
for
(j=0;j<k;j++)
{
cout<<b[i][j]<<"
";
}
}
if (i>0)
{
cout<<" ";
for
(j=0;j<k;j++)
cout<<" "<<b[i][j]<<" ";
}
cout<<endl;
}
for
(i=0;i<bb;i++)
for
(j=0;j<k;j++)
{
hasil[i+1][j+1]=(a[i][j]-b[i][j]);
}
cout<<endl<<"HASIL AKHIR= "<<endl;
for
(i=0;i<bb;i++)
{
for
(j=0;j<k;j++)
{
cout<<hasil[i+1][j+1]<<" ";
}
cout<<endl;
}
}
else if(p==3)
{
cout<<"TAMPIL MATRIK : "<<endl;
cout<<"Matriks A
Matriks B"<<endl;
for
(i=0;i<bb;i++)
{
for
(j=0;j<k;j++)
{
cout<<a[i][j]<<"
";
}
if (i==0)
{
cout<<"x";
cout<<" ";
for
(j=0;j<k;j++)
{
cout<<b[i][j]<<"
";
}
}
if (i>0)
{
cout<<" ";
for
(j=0;j<k;j++)
cout<<"
"<<b[i][j]<<"
";
}
cout<<endl;
}
hasil[i+1][j+1]=0;
for
(i=0;i<bb;i++)
{
for
(j=0;j<k;j++)
{
hasil[i+1][j+1]=0;
for
(r=0;r<k;r++)
{
hasil[i+1][j+1]=hasil[i+1][j+1]+a[i][r]*b[r][j];
}
}
}
cout<<endl<<"HASIL AKHIR= "<<endl;
for
(i=0;i<bb;i++)
{
for (j=0;j<k;j++)
{
cout<<hasil[i+1][j+1]<<" ";
}
cout<<endl;
}
}
else
{
cout<<"-->kode yang anda masukkan
salah<--"<<endl;
cout<<"APAKAH ANDA INGIN MENGULANG?(Y/T) ";
cin>>salah;
cout<<"-----TEKAN ENTER-----"<<endl;
}
} //tutup kurung dari if (bb=k)
else
{
cout<<"Maaf....ORDO tidak sama!!!!"<<endl;
cout<<"APAKAH ANDA INGIN MENGULANG?(Y/T) ";
cin>>salah;
cout<<"-----TEKAN ENTER-----"<<endl;
}
cout<<"APAKAH ANDA INGIN MENGULANG?(Y/T) ";
cin>>salah;
cout<<"-----TEKAN ENTER-----"<<endl;
system("CLS");
} //tutup kurung dari do-while
while(salah=='y'||salah=='Y');
getch();
}
b) Output




c) Analisa
Dari
hasil output program di atas, dapat diketahui pada output pertama, user
memasukkan banyak baris dan matrik a yaitu 2, 2 sedangkan untuk matriks b
yaitu 1,1. Program akan menjalankan perintah else yaitu ordo tidak sesuai
karena untuk menjalankan penjumlahan, pengurangan matrik maka nilai ordo harus
sama. Pada gambar ke 2, 3, dan 4, user memilih pilihan penjumlahan,
pengurangan, dan perkalian matriks dan menghasilkan output seperti gambar di
atas.
v Program
menghitung total,rata-rata, maksimum dan minimum
a) Algoritma
1.
Mulai
2.
Masukkan
jumlah data
3.
Masukkan
nilai data
4.
If nilai [10] > max, max = nilai [10]
5.
If nilai [10] > min, min = nilai [10]
6.
Sum =
sum + nilai [10]
7.
Rata=(double)
sum / jjumlah data
8.
Cetak
total, rata- rata, nilai maksimum, dan nilai minimum
9.
Selesai
b) Kode
Program
#include<cstdlib>
#include<iostream>
using namespace std;
int main(void)
{
int
nilai[10],sum=0,max=0,min=0,i=1,jml_data;
double rata;
cout<<"Jumlah Data : ";cin>>jml_data;
max=nilai[10];
min=nilai[10];
sum=sum+nilai[10];
for(i=0;i<=jml_data;i++)
{
cout<<"Masukan Nilai Ke-"<<i<<" :
";cin>>nilai[10];
if(nilai[10]>max)
max=nilai[10];
if(nilai[10]<min)
min=nilai[10];
sum=sum+nilai[10];
i++;
}
rata=(double)sum/jml_data;
cout<<"\nTotal : "<<sum<<endl;
cout<<"Nilai Terendah : "<<min<<endl;
cout<<"Nilai Tertinggi : "<<max<<endl;
cout<<"Rata-Rata : "<<rata<<endl;
system("PAUSE");
return 0;
}
c) Output

d) Analisa
Pada
program di atas, user menentukan jumlah data mahasiswa yang akan diinputkan
adalah 10 orang. Setelah user menginputkan masing – masing data, maka program
akan menjalankan proses ke 4 sampai 8 pada algoritma.