Dokumen tersebut membahas konsep array dan penerapannya dalam algoritma dan pemrograman C++. Terdapat penjelasan tentang pendefinisian array, pengaksesan elemen, operasi dasar seperti penjumlahan dan pertukaran elemen, serta contoh kasus penerapannya.
2. Daftar Pustaka
1) Goodrich, M.T., Tamassia, R., Mount, D. M. Data Structures and
Algorithms in C++ 2nd Edition. Addison-Wiley. 2011.
2) Sedgewick, R. Algorithms in C++, Parts 1-4: Fundamentals, Data
Structure, Sorting, Searching, Third Edition 3rd Edition. Addison-
Wesley Professional. 1998.
3) Simamora, S.N.M.P. “Diktat Kuliah Algoritma dan Pemrograman-I”,
Program studi Teknik Informatika. Fak. Teknik. UTAMA. Bandung.
2013.
4) Simamora, S.N.M.P. “Diktat Kuliah CE113 Sistem Komputer”. Program
studi Teknik Komputer. Politeknik TELKOM. Bandung. 2007.
5) Simamora, S.N.M.P. “Diktat Kuliah TIK-1102 Algoritma &
Pemrograman-I". Program studi Teknik Informatika, Fak. Teknologi
Informasi. UNAI. Bandung. 2006.
6) Simamora, S.N.M.P. “Diktat TIF301 Algoritma dan Pemrograman-1”.
Program studi T. Informatika, FTI. Univ. BALE Bandung. 2011.
3. Array (larik) merupakan sebuah variabel
yang berisikan sekelompok data dengan
tipe-data yang sama, dimana diurutkan
mulai indeks ke-0.
Dalam
matematika,
suatu array
identik dengan
sebuah
himpunan.
Namun secara
math-based,
indeks dimulai
ke-1
Misalkan: diketahui suatu var: A1 berisikan: -2,3,1,-2,0;
maka dapat diuraikan (secara math-based):
A1[1] berisikan bilangan -2;
A1[2] berisikan bilangan 3;
A1[3] berisikan bilangan 1;
A1[4] berisikan bilangan -2;
A1[5] berisikan bilangan 0;
Dan panjang-array A1 = 5;
Algoritma dan pemrograman C++:
Tampilan jalannya program:
4. Alternatif
penulisan
Alokasi N panjang-array pada variabel adalah
min: senilai panjang-array tsb, maksimal
seukuran main-memory, namun bisa
dikosongkan apabila isi array terdefinisi.
5. Misalkan: diketahui suatu var: A1 berisikan: -2,3,1,-2,0; maka dapat diuraikan (secara
math-based):
A1[1] berisikan bilangan -2;
A1[2] berisikan bilangan 3;
A1[3] berisikan bilangan 1;
A1[4] berisikan bilangan -2;
A1[5] berisikan bilangan 0;
Dan panjang-array A1 = 5;
Menampilkan (math-based) A1[3] dengan algoritma dan pemrograman C++:
Tampilan jalannya program:
6. Teknik swapping ⇒ mempertukarkan isi dua
variabel, sehingga membutuhkan sebuah
temporary-variable (temp_var).
Contoh: ada dua variabel, A=3 dan B=-12; jika akan dipertukarkan isi kedua variabel
tersebut maka diuraikan sebagai berikut:
x←temp_var;
x←A;
A←B;
B←x;
Algoritma dan pemrograman C++: Tampilan jalannya program:
7. Misalkan: diketahui suatu var: A berisikan: -1.2,3,1.2,-2,0,1; maka dapat diuraikan
(secara math-based):
A[1] berisikan bilangan -1.2;
A[2] berisikan bilangan 3;
A[3] berisikan bilangan 1.2;
A[4] berisikan bilangan -2;
A[5] berisikan bilangan 0;
A[6] berisikan bilangan 1;
Dan panjang-array A = 6;
Mempertukarkan (math-based) A[1] ↔A[6] dengan algoritma dan pemrograman C++:
Tampilan jalannya program:
8. Misalkan: diketahui suatu var: H berisikan: -1.2,3.1,1.2,-2,0,1,0; maka dapat diuraikan
(secara math-based):
H[1] berisikan bilangan -1.2;
H[2] berisikan bilangan 3.1;
H[3] berisikan bilangan 1.2;
H[4] berisikan bilangan -2;
H[5] berisikan bilangan 0;
H[6] berisikan bilangan 1;
H[7] berisikan bilangan 0;
Dan panjang-array H = 7;
Menampilkan isi z sebanyak 3x secara vertikal dengan algoritma dan pemrograman
C++:
apabila var: z menampung perkalian H[2] dengan
H[6]; (math-based)
Tampilan jalannya program:
9. Penerapan metode array pada karakter untuk penanganan kasus string
(menampilkan kata/kalimat). String merupakan sekumpulan karakter yang
dikelompokkan menjadi mengandung sebuah makna.
Misalkan: sebuah var: dX ∈ 's','u','k','s','e','s'; maka dapat diuraikan (indeks secara
math-based):
dX[1] berisikan karakter ‘s’;
dX[2] berisikan karakter ‘u’;
dX[3] berisikan karakter ‘k’;
dX[4] berisikan karakter ‘s’;
dX[5] berisikan karakter ‘e’;
dX[6] berisikan karakter ‘s’;
Dan panjang-array dX = 6;
10. Alternatif
penulisan lain
Misalkan: sebuah var: dX ∈ 's','u','k','s','e','s'; maka dapat diuraikan (indeks secara
math-based):
dX[1] berisikan karakter ‘s’;
dX[2] berisikan karakter ‘u’;
dX[3] berisikan karakter ‘k’;
dX[4] berisikan karakter ‘s’;
dX[5] berisikan karakter ‘e’;
dX[6] berisikan karakter ‘s’;
Dan panjang-array dX = 6;
11. Sebuah variabel, zK, diisikan kata: ”rosalina”. Apabila karakter ‘3’ disisipkan
ke setiap indeks genap (math-based), maka tuliskan algoritma dan
pemrograman C++ untuk menyelesaikan persoalan ini. Tampilkan juga kata
baru setelah proses penyisipan dilakukan.
Kasus:
Solusi: Konstruksi-algoritma: zK←”rosalina”;
var: zK ∈ ‘r',‘o',‘s',‘a',‘l',‘i',‘n',‘a'; maka dapat diuraikan (indeks secara math-based):
zK[1] berisikan karakter ‘r’;
zK[2] berisikan karakter ‘o’;
zK[3] berisikan karakter ‘s’;
zK[4] berisikan karakter ‘a’;
zK[5] berisikan karakter ‘l’;
zK[6] berisikan karakter ‘i’;
zK[7] berisikan karakter ‘n’;
zK[8] berisikan karakter ‘a’;
Dan panjang-array zK = 8;
disisip ‘3’;
disisip ‘3’;
disisip ‘3’;
disisip ‘3’;
setelah disisipkan="r3s3l3n3";
Algoritma dan pemrograman C++:
Tampilan jalannya program:
12. Sebuah variabel, s1, diisikan bilangan: 9,-2,2,-2,3,0. Apabila masing-masing
isi s1 ditambahkan dengan enam bilangan yang masing-masing diisikan oleh
end-user, maka tuliskan algoritma dan pemrograman C++ untuk menampilkan
hasil penjumlahan tersebut apabila keenam bilangan ini ditampungkan
kembali ke s1.
Kasus:
Solusi: Konstruksi-algoritma: Misalkan var: S1 menampung keenam bilangan yang di-
input-kan
Tampilan jalannya program:
AlgoritmadanpemrogramanC++:
Asumsi math-based: s1[1]←s1[1]+S1[1];
s1[2]←s1[2]+S1[2];
...
s1[6]←s1[6]+S1[6];
13. Tampilkanlah sebuah kata dengan panjang lima karakter dimana kata
tersebut didapatkan dengan input-value by end-user. Kelima karakter
tersebut ditampungkan ke var: K. Sertakan dengan tampilan jalannya
program.
Kasus:
Solusi: Konstruksi-algoritma: asumsi math-based: K[1]←”...”;
K[2]←”...”;
K[3]←”...”;
Algoritma dan pemrograman C++:
Tampilan jalannya program:
...
K[5]←”...”;
14. Ada lima bilangan yang akan ditampungkan ke var array z. Jika setiap
bilangan adalah penjumlahan akumulatif dengan bilangan pertama adalah
input-an dari end-user, maka tampilkan isi z dan total nilai akumulatif
penjumlahan kelima bilangan tersebut.
Kasus:
set i=indeks;
set x=0;
masukkan a?;
x=x+a;
z[1]←x;
... s.d i=5;
Solusi: Konstruksi-algoritma: asumsi math-based:
Misalkan lima bilangan yang akan dimasukkan: 2,3,2,-1,2;
Maka dapat diuraikan sbb:
i=1; x←0+2; z[1]←2;
i=2; x←2+3; z[2]←5;
i=3; x←5+2; z[3]←7;
i=4; x←7+-1; z[4]←6;
i=5; x←6+2; z[5]←8;
dan, total=8;
Algoritma dan pemrograman C++:
Tampilan jalannya
program:
15. Tuliskan sebuah aplikasi pemrograman apabila ditetapkan kriteria berikut
ini:
Jika memutuskan pilihan-1: mengerjakan statement berikut:
z←A[i]+3; dimana z adalah variabel array;
dan A∈{5,-1,2,5,-2};
Jika memutuskan pilihan-2: menampilkan kata:”widyatama” dengan metode
array dan struktur kendali proses: looping/repetition.
Jika memutuskan pilihan-3: mengerjakan statement berikut:
z←B[i]⊕3; dimana z adalah variabel array;
dan B∈{0x5,1,0,02,2};
Kasus:
⇒
⇒
⇒
Solusi: Pada persoalan yang dikemukakan ditunjukkan bahwa pilihan-1 dan 3 untuk
operand-hasil pada statement tersebut ditampungkan pada variabel yang
sama yakni: var: z.
Pada pilihan No.1: (asumsi math-based) z[1]←5+3; z[1]=8;
z[2]←-1+3; z[2]=2;
z[3]←2+3; z[3]=5;
z[4]←5+3; z[4]=8;
z[5]←-2+3; z[5]=1;
Pada pilihan No.3: (asumsi math-based) z[1]←0x5 ⊕ 3; z[1]=6;
z[2]←1 ⊕ 3; z[2]=2;
z[3]←0 ⊕ 3; z[3]=3;
z[4]←02 ⊕ 3; z[4]=1;
z[5]←2 ⊕ 3; z[5]=1;
17. Apabila diketahui sebuah statement berikut ini:
z←A[i]+3; dimana z adalah variabel non-array;
dan A∈{0.5,1,-0.2,7,-2};
Tentukan z, dan tampilkan proses counter di z untuk statement tersebut.
Sertakan dengan tampilan jalannya program.
Kasus:
i=1;
z=z+A[1]+3;
tampilkan z; ↵
i=2;
z=z+A[2]+3;
tampilkan z; ↵
i=3;
z=z+A[3]+3;
tampilkan z; ↵
i=4;
z=z+A[4]+3;
tampilkan z; ↵
i=5;
z=z+A[5]+3;
tampilkan z; ↵
Solusi: Apabila z adalah variabel non-array, maka ditetapkan lakukan proses
akumulatif dan tampilkan isi z setiap hasil counter dieksekusi.
Konstruksi-algoritma:
(1) ⇒ 0.5+3=3.5;
(2) ⇒ 3.5+1+3=7.5;
(3) ⇒ 7.5+(-0.2)+3=10.3;
(4) ⇒ 10.3+7+3=20.3;
(5) ⇒ 20.3+(-2)+3=21.3;
Algoritma dan pemrograman C++:
Tampilan jalannya program:
18. Ada dua variabel array, masing-masing: a1 dan a2; dengan rincian sebagai
berikut:
a1∈ {-1.5,2,0,-1,1,2,2,3};
a2∈ {-1,0.5,1.2,0,-1,0};
Tentukan A apabila ditetapkan statement: A←a1[i]+a2[j]; dimana A adalah
variabel array dengan panjang sama dengan var: a2.
Kasus:
Solusi: Konstruksi-algoritma: asumsi math-based:
Jika N adalah panjang-array dari suatu variabel, maka:
N(a1) = 8;
N(a2) = 6;
N(A) = N(a2) = 6;
A[1] ← -1.5 + -1;
A[2] ← 2 + 0.5;
A[3] ← 0 + 1.2;
A[4] ← -1 + 0;
A[5] ← 1 + -1;
A[6] ← 2 + 0;
Disimulasikan sbb:
Algoritma dan pemrograman C++:
Tampilan jalannya program:
Statement:
A[j]←a1[i]+a2[j]; i=j=1...6;