INF202: Struktur Data TIPE DATA ARRAY · 2020. 1. 23. · •Buatlah algoritma dan program untuk...
Transcript of INF202: Struktur Data TIPE DATA ARRAY · 2020. 1. 23. · •Buatlah algoritma dan program untuk...
Pertemuan 4:
INF202: Struktur Data
TIPE DATA ARRAY
Dosen: Wayan Suparta, PhD
PENGERTIAN ARRAY
• Array (larik) 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.
• Cara penulisan Array : A [1,2,3,4,5]
• Ini menyatakan bahwa array A berisi data 1,2,3,4,5 dengan
mempunyai lima buah elemen. Elemen Array dimulai dari
indeks ke 0 bukan ke 1.
ARRAY SATU DIMENSI • Setiap elemen array dapat diakses melalui indeks.
• Deklarasi Array
tipe nama_var[ukuran];
dimana :
tipe = menyatakan jenis elemen array (ex. char, int)
nama_var = nama variabel, seperti nilai, x, y, z, dstnya
ukuran = menyatakan jumlah maksimal elemen array
(indeks)
Contoh :
int Nilai [5];
Penerapan Array Pada Bahasa C++
Deklarasi Keterangan
int cacah[4]; Array dengan nama cacah mempunyai 4
elemen bertipe int char vocal[5]; Array vocal mempunyai 5 buah elemen
bertipe char char kota[6][20]; Array kota mempunyai 6 buah elemen tipe
string dengan penjang karakter maksimal
20 karakter
Dalam hal ini jumlah_elemen harus berupa konstanta
Ingat = Array selalu menghitung dari angka 0 bukan 1
Contoh Program Array Satu Dimensi #include <iostream>
using namespace std;
int main() {
int i, nilai[5];
//Pengisian elemen array
nilai[0] = 55;
nilai[1] = 58;
nilai[2] = 67;
nilai[3] = 78;
nilai[4] = 92;
//Menampilkan data ke layar
for (i=0; i<5; i++) // for (i=0; i<=4; i++)
//printf ("%d\n",nilai[i]);
cout << nilai[i] << "\n"; return 0;
}
Total 5 elemen
#include <iostream>
int main()
{
int i;
int nilai[5];
printf ("Inputan Data:\n");
//Pengisian elemen array
for (i=0;i<5;i++)
scanf("%d",&nilai[i]);
//Menampilkan data ke layar
printf ("\nOutput Data\n");
for (i=0;i<5;i++)
printf ("%d\n",nilai[i]);
}
LANJUTAN CONTOH ARRAY DGN SCANF ‘NUMERIK’
#include <iostream>
using namespace std;
int main()
{
int i;
char kar[5];
printf ("Inputan Data:\n");
//Pengisian elemen array
for (i=0;i<5;i++)
scanf("%c",&kar[i]);
//Menampilkan data ke layar
printf ("\nOutput Data\n");
for (i=0;i<5;i++)
printf ("%c\n",kar[i]);
}
LANJUTAN CONTOH ARRAY DGN SCANF ‘CHAR’
• Buatlah algoritma dan program untuk menyimpan data berikut ke dalam array 10 4 2 5 3 8 9 2 9 5
Kemudian carilah bilangan yang terbesar.
Jawab :
Algoritma:
Data [10,4,2,5,3,8,9,2,9,5]
Terbesar Data[0]
Untuk i 1 s/d 9
Jika data[i] > terbesar maka
Terbesar Data[i]
Akhir-jika
Akhir untuk
Tampilkan(terbesar)
Jawab :
Algoritma:
Data [10,4,2,5,3,8,9,2,9,5]
Terbesar Data[0]
Untuk i 1 s/d 9
Jika data[i] > terbesar maka
Terbesar Data[i]
Akhir-jika
Akhir untuk
Tampilkan(terbesar)
Buatlah algoritma dan program untuk menyimpan data berikut ke dalam
array 10 4 2 5 3 8 9 2 9 5. Kemudian carilah bilangan yang terbesar.
#include <iostream>
using namespace std;
int main()
{
int data[] =
{10,4,2,5,3,8,9,2,9,5};
int i, terbesar;
terbesar = data[0];
for (i = 0; i < 10 ; i++)
if(data[i] > terbesar)
terbesar = data[i];
cout <<”terbesar = “ << terbesar
<< “\n” ;
return 0;
}
Buatlah sebuah program untuk membaca data secara berulang dari keyboard dan meletakkannya ke dalam sebuah array. Jumlah maksimal yang dapat dimasukkan ke dalam array adalah 10 buah. Setelah itu tampilkan seluruh data yang dimasukkan dari keyboard tadi.
Jawab :
Algoritma Jumdata 10
Untuk i 0 s/d 9
Masukkan (Data[i])
Tampilkan(“memasukkan lagi (Y/T)?”) Masukkan(jawaban)
Jika jawaban = “T” atau “t” maka
Jumdata I +1
Keluar dari perulangan
Akhir jika
Akhir untuk
Untuk i 0 s/d jumdata-1
Tampilkan(Data[i])
Akhir Untuk
#include <iostream>
using namespace std;
int main()
{
double data[10];
int i, jumdata;
char jawaban;
jumdata = 0;
for(i=0;i<10;i++){
cout << “masukkan sembarang
bilangan : ”;
cin >> data[i];
cout << “memasukkan lagi (Y/T) ??”;
cin >> jawaban;
if (jawaban == ‘T’ || jawaban ==
‘t’){ jumdata = i+1; break; }
}
for (i=0;i<jumdata;i++)
cout<< data[i] << “\n”;
return 0;
}
Ketiklah program ini dan apa hasilnya?
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];
• Cara mengakses array :
Contoh : int X[3][4];
0 1 2 3
0 23 44 54 33
1 86 56 97 36
2 34 75 69 88
X[0][3] = 33; X[2][0] = 34;
X[1][2] = 97; X[3][2] = ?
LANJUTAN ARRAY DIMENSI DUA
Contoh Program 2D #include <iostream>
using namespace std;
void cetakarray(int [][3]);
int main(){
int matrik1[2][3]={{1,2,3},{4,5,6}},
matrik2[2][3]= {1,2,3,4,5},
matrik3[2][3]= {{1,2}, {4}};
cetakarray(matrik1);
cetakarray(matrik2);
cetakarray(matrik3);
return 0;
}
void cetakarray(int a[][3]){
int i,j;
for (i=0; i<=1;i++){
for(j=0;j<=2;j++)
cout<<" "<<a[i][j];
cout<<"\n";}}
Contoh Pemakaian Array 2 Dimensi
/* File program : Tampilan2array.cpp */
#include <iostream>
using namespace std;
int main()
{
int bilangan[3][4]={ {1,2,3,4}, {5,6,7,8}, {9,10,11,12}};
for (int a=0;a<3;a++ ){
for (int b=0;b<4;b++){
cout << "Pada index ke-" << a << "," <<
b << " adalah " << bilangan[a][b] << endl;
}
}
return 0;
}
Contoh Array String /* File program : Array String */ #include <iostream>
using namespace std;
int main()
{
int i,j;
char hari[7][10] = {"Minggu", "Senin", "Selasa", "Rabu",
"Kamis", "Jumat", "Sabtu”};
// Tampilkan data
for (i=0; i<7; i++) {
for (j=0; j<10; j++)
printf ("%c", hari[i][j]);
printf("\n");
}
}
Contoh Penerapan 2D
Buatlah algoritma dan
program yang
menyimpan pasangan
data Negara dan ibukota
seperti berikut :
Indonesia - Jakarta
Filipina - Manila
Prancis - Paris
Pakistan - Islamabad
Jawab :
Algoritma:
Negara[0][0] = “Indonesia”
Negara[0][1] = “Jakarta”
Negara[1][0] = “Filipina”
Negara[1][1] = “Manila”
Negara[2][0] = “Francis”
Negara[2][1] = “Paris”
Negara[3][0] = “Pakistan”
Negara[3][1] = “Islamabad”
Untuk baris = 0 s/d 4
Jika Negara[baris][0][0] = “P” maka
Tampilkan(Negara[baris][0], Negara[baris][1])
Akhir jika
Akhir untuk
Realisasi Programnya: #include <iostream>
#include<string>
using namespace std;
int main(){
char Negara[4][2][15] = {{“Indonesia”,”Jakarta”},{“Filipina”,”Manila”}, {“Francis”,”Paris”},{“Pakistan”,”Islamabad”}};
For (int baris = 0;baris <4 ;baris++){
if (Negara[baris][0][0]==’P’){
cout<< Negara[baris][0] << “ – “
<<Negara[baris][1] << “\n”;
return 0;
}
}
}
Matrik 3 input dengan keyboard #include <iostream>
using namespace std;
int main()
{
int bil[2][3];
for (int a=0;a<2;a++){
for (int b=0;b<3;b++){
cout << "Matriks " <<a<<","<<b<< " = ";
cin >> bil[a][b];
}
}
cout << "\n============================================" << endl;
cout << "Hasil yang anda masukan, Tampilannya Adalah " << endl;
cout << "============================================" << endl;
for (int a=0;a<2;a++){
for(int b=0;b<3;b++){
cout << bil[a][b]<< " ";
}cout << endl;
}
}
ARRAY TIGA DIMENSI
• Array tiga dimensi merupakan array yang terdiri dari x buah
baris, y buah kolom, dan z panjang karakter.
• Deklarasi array :
tipe nama_array[x][y][z];
Deklarasi ARRAY 3D
Contoh 3D dengan Angka #include <iostream>
using namespace std;
int main(){
//Mendeklarasikan array
int angka[2][3][5]={{{10,2},{8,20},{2,79},{4,67},{8,21}},
{{10,27},{27,48},{83,28},{2,73},{4,98}}};
//Menampilkan array
for(int i = 0; i<=1; i++){
cout<<i+1<<".\n";
for(int j = 0; j<=4; j++){
for(int k = 0; k<=1; k++){
cout<<angka[i][j][k]<<"\t";
}
cout<<endl;
}
cout<<endl;
}
}
Contoh 3D dengan String #include <iostream>
#include <string>
using namespace std;
int main(){
string huruf[2][3][2]={{{"Tutor-All Programming","Tutorial bahasa
pemrograman"},{"Visi Misi","Memberikan Tutorial Program Yang
Sederhana"},{"Artikel Tentang","Array 3 Dimensi"}},
{{"Mata Kuliah","Struktur
data"},{"Semester","Genap"},{"Fokus","Pemrograman"}}};
//Memanggil array
for(int i = 0; i<=1; i++){
cout<<i+1<<".\n";
for(int j = 0; j<=2; j++){
cout<<j+1<<".";
for(int k = 0; k<=1; k++){
cout<<" "<<huruf[i][j][k]<<"\t\t "; }
cout<<endl; }
cout<<endl;
}
}
LATIHAN 7 A. Buat masukan data integer dengan array, kemudian hitung
rata-ratanya.
B. Buat elemen array sebanyak 10 buah, masukkan nilai 8 pada
array yang berbeda, kemudian buat program untuk
menampilkan posisi array yang bernilai 8 tersebut.
C. Buatlah sebuah program penjumlahan dengan angka yang
dijumlahkan sesuai dengan masukan user dengan tampilan
sebagai berikut.
D. Buat matriks 2 dimensi, inputkan datanya kemudian
tampilkan.
LATIHAN 8 A. Buat penjumlahan dua matrik dengan input dari keyboard dan
hasilnya seperti:
B. Buat program pengurangan 2 matriks berordo 2 x 3, inputkan datanya
kemudian tampilkan.
C. Buatlah algoritma dan program untuk mengalikan matriks dengan vektor dengan matriks dengan array dimensi dua, dan vektor dengan menggunakan matriks berdimensi satu.
D. Buatlah algoritma dan program untuk menghasilkan transpose suatu matriks.
LATIHAN 9