Array
struktur data yang mengandung type data yang mempunyai type sama.
Berupa sekelompok memori yang berhubungan (contiguous).
Array mempunyai nama dan type yang sama.
Untuk merujuk lokasi tertentu atau elemen dalam array nama array + indeks
IT INCLUDES THE PROPER DESCRIPTION AND TYPES OF TECHNICAL REPORTS . I HAVE DISCUSSED ABOUT HISTORY OF TECHNICAL REPORTS AND BASICS OF TECHNICAL REPORTS ARE ALSO MENTIONED . MOREOVER THE OVERVIEW OF ALL TYPES ,STRUCTURE OF A TECHNICAL REPORT AND CHECKLIST FOR A REPORT ARE ALSO INCLUDED
Array
struktur data yang mengandung type data yang mempunyai type sama.
Berupa sekelompok memori yang berhubungan (contiguous).
Array mempunyai nama dan type yang sama.
Untuk merujuk lokasi tertentu atau elemen dalam array nama array + indeks
IT INCLUDES THE PROPER DESCRIPTION AND TYPES OF TECHNICAL REPORTS . I HAVE DISCUSSED ABOUT HISTORY OF TECHNICAL REPORTS AND BASICS OF TECHNICAL REPORTS ARE ALSO MENTIONED . MOREOVER THE OVERVIEW OF ALL TYPES ,STRUCTURE OF A TECHNICAL REPORT AND CHECKLIST FOR A REPORT ARE ALSO INCLUDED
1. Praktikum III : Array Statis dan Dinamis halaman 9
PRAKTIKUM III
ARRAY STATIS dan DINAMIS
Kompetensi dasar
Mahasiswa mampu membedakan penggunaan array statis dan array dinamis
Indikator
1. data member array statis dan array dinamis
2. cara kerja konstruktor array statis dan array dinamis
3. cara pembuatan operator overloading input dan output untuk array statis dan
array dinamis dan tata cara memanipulasinya
A. Landasan Teori
Array adalah struktur data yang mengandung type data yang mempunyai type
sama. Suatu array adalah sekelompok memori yang berhubungan. Array mempunyai
nama dan type yang sama. Untuk merujuk lokasi tertentu atau elemen dalam array;
nama array dan angka posisi (disebut subscript atau indeks) dari elemen tersebut dalam
array. Pada dasarnya, array menyimpan data secara statis artinya pada saat dikompilasi
sudah ditentukan berapa memori yang diperlukan dan pada saat program dieksekusi
kita tidak dapat mengubah banyaknya memori yang dibutuhkan.
Secara umum, array statis dideklarasikan dalam bentuk :
Tipe_data var_array[banyaknya tempat yang dipesan];
Sebagai contoh untuk memesan tempat sebanyak 10 satuan memori pada array x yang
menyimpan data bertipe int dideklarasikan menggunakan pernyataan :
int x[10];
yang perlu diingat indeks array dalam C++ dimulai dari 0 sampai dengan n-1, jika kita
memesan memori sebanyak n tempat.
B. Langkah Praktikum
Tulis dan buat program di bawah ini. Untuk mengetahui konsep array statis,
perhatikan program di bawah ini. Kelas Array1D merupakan tipe data abstrak untuk
array statis. Perhatikan pada bagian data member, kita akan mengamati perilaku array
yang menyimpan data bertipe char.
2. Praktikum III : Array Statis dan Dinamis halaman 10
geser.cpp
1. #include <iostream.h>
2. #define maks 5
3. class Array1D {
4. friend ostream& operator<<(ostream&, const Array1D&);
5. friend istream& operator>>(istream&, Array1D&);
6. public :
7. Array1D();
8. void cetak();
9. void geser_kiri();
10. void geser_kanan();
11. private :
12. char A[maks];
13. };
Kelas Array1D mempunyai 1 konstruktor, dan 3 method. Method geser_kiri dan
geser_kanan digunakan untuk memanipulasi array, sedangkan method cetak digunakan
untuk mencetak array. Perhatikan bahwa method cetak sebenarnya sama dengan
operator overloading output <<. Perhatikan pula dialek cara membuat operator
overloading.
14. Array1D::Array1D() {
15. for (int i=0; i<maks; i++)
16. A[i] = '0';
17. }
18. void Array1D::cetak() {
19. for (int i=0; i<maks; i++)
20. cout << A[i] << " ";
21. }
22. ostream& operator<<(ostream& out, const Array1D& x) {
23. for (int i=0; i<maks; i++)
24. cout << x.A[i] << " ";
25. cout << endl;
26. return out;
27. }
28. istream& operator>>(istream& in, Array1D& x)
29. { int posisi;
3. Praktikum III : Array Statis dan Dinamis halaman 11
30. cout << "Mengisi array pada posisi ke : ";
31. in >> posisi;
32. if (posisi > 0 && posisi <= maks) {
33. cout << "Masukkan elemen array-nya : ";
34. in >> x.A[posisi-1];
35. }
36. else
37. cout << "Anda memasukkan posisi di luar range ... ";
38. return in;
39. }
40. void Array1D::geser_kanan()
41. {
42. int n = maks;
43. int temp = A[n-1];
44. for (int i=n-1; i >= 0; i--)
45. A[i+1] = A[i];
46. A[0] = temp;
47. }
48. void Array1D::geser_kiri()
49. {
50. int n = maks;
51. int temp = A[0];
52. for (int i=0; i < n; i++)
53. A[i] = A[i+1];
54. A[n-1] = temp;
55. }
56. main() {
57. Array1D x;
58. cout << "Array masih kosong : " << x;
59. cin >> x;
60. cout << "Isi Array saat ini : " << x;
61. x.geser_kiri();
62. cout << "Isi Array setelah digeser ke kiri : " << x;
63. x.geser_kanan();
64. cout << "Isi Array setelah digeser ke kanan : " << x;
65. return 0;
66. }
4. Praktikum III : Array Statis dan Dinamis halaman 12
Bila kita melakukan operasi penghapusan elemen indeks 0, maka akan terjadi
pergeseran elemen ke kiri. Sebaliknya, bila kita menambah elemen di depan maka akan terjadi
pergeseran elemen ke kanan.
Pretest
1. Jelaskan pengertian array ! [ nilai 20]
2. Gambarkan array dengan 7 elemen, yaitu (5,1,2,3,6,4,7) dengan cara menambah
elemen di depan tiap kali menambah elemen baru. [nilai 30]
3. Kemudian, hapuslah elemen di depan 3 kali dan gambarkan prosesnya.
Setiap gambar dalam bentuk tabel beserta index dan nilainya [nilai 30]
4. Pelajari karakteristik data member array dinamis. Apakah perbedaan bagian data
member dari array statis dan array dinamis [nilai 20]
POSTEST
Diberikan file program yang mengimplementasikan konsep array statis dan dinamis (link
diberikan di forum). Cobalah program tersebut, amati perbedaan dan kesamaannya.
Dengan menggunakan contoh dari file di atas, buat program untuk mensimulasikan
operasi menambah dan menghapus elemen di depan (yaitu operasi SELALU diberlakukan pada
elemen array dengan indeks 0). Setiap kali ada operasi (baik menambah atau menghapus)
tampilkan outputnya di layar. Pada meja praktikum sebelah kiri : array statis dan kanan : array
dinamis. Sharinglah hasil postes anda dengan teman semeja.
5. Praktikum III : Array Statis dan Dinamis halaman 13
LEMBAR PRE dan POST-TEST MINGGU III
Nilai Pretes : ________Tgl : ________ Nilai Postes : ________ Tgl : ________
Asisten,
___________________
Nama :
Nim :