Praktikum 7
Praktikum 7
NURWAHYUDDI (12022038)
I.
TUJUAN PRAKTIKUM Adapun yang menjadi tujuan dalam Praktikum VII ini antara lain : 1. Mahasiswa dapat memahami implementasi konsep dasar pemrograman dengan alat bantu Tubro C++, 2. 3. 4. 5. Mahasiswa mampu menjelaskan struktur penyimpanan array, Mahasiswa mampu menjelaskan cara deklarasi array, Mahasiswa mampu menjelaskan cara mengakses eleman array, Mahasiswa dapat menyusun dan menjelaskan program menggunakan struktur penyimpanan array, 6. Mahasiswa dapat menjelaskan berbagai perintah untuk operasi pada variabel dengan tipe data string.
II.
DASAR TEORI Larik (array) merupakan struktur penyimpanan sekumpulan data secara beruntun
di dalam memori, tiap elemen data diacu menggunakan indeks. Indeks menyatakan posisi data relatif dalam kumpulannya. Array (larik) juga merupakan elemen data dengan tipe sama.
Contoh : Larik nilai suhu dengan 7 elemen yang tiap elemen berisi data suhu dengan tipe integer. indeks 0 1 2 3 4 5 6 nilai 32 31 30 32 33 32 31
1.
Deklarasi ARRAY
tipeData namaArray [jumlahElemen];
Artinya : array dengan nama nilaiSuhu memiliki 7 buah elemen dengan tipe int. Jumlah elemen larik harus sudah diketahui sebelum program dieksekusi, jumlah elemen larik tidak dapat diubah selama program dieksekusi. 2. Mengakses Elemen ARRAY Notasi untuk mengakses elemen array : Misal : mengakses eleman larik A : Mengakses elemen larik nilai Suhu :
namaArray[indeks]
Artinya akan membuat elemen pertama (indeksa 0) array nilaiSuhu diisi dengan nilai 35. 3. ARRAY Multidimensi Array multidimensi juga disebut arrays of arrays. Misalnya array dua dimensi bisa digambarkan sebagai tabel dua dimensi, yang berisi elemen dengan tipe data yang sama. Deklarasi : int data [7] [5]
Artinya array dua dimensi dengan 3 baris dan 5 kolom. indeks 0 1 2 cara mengakses : data [1] [3] 0 1 2 3 4
4.
LITERAL STRING String berarti deretan atau kombinasi sejumlah karakter, yang ditulis di
antara tanda petik ganda (). Contoh : Universitas Ahmad Dahlan Jln. Prof. Dr. Soepomo disebut string kosong
III. HASIL DAN PEMBAHASAN 1. Array pada Perhitungan Nilai Rerata Program VII-1
#include <iostream.h> main () { float rerata, a[3]; cout << "Masukkan 3 buah nilai = "; cin >> a[0] >> a[1] >> a [2]; rerata = (a(0)+a(1)+a(2))/3; cout << "Rerata = " << rerata; }
Baris 1. 2. 3. 4. 5.
Keterangan Menunjukkan tipe data yang akan dimasukkan berupa bilangan/float, dalam hal ini (a[3]). Merupakan perintah output/keluaran yang akan menampilkan tulisan
"Masukkan 3 buah nilai = .
Merupakan perintah input untuk memasukkan nilai a sebanyak 3 buah Merupakan rumus perhitungan rerata yang di input dalam Program Perintah keluaran/output untuk menampilkan Rerata= serta hasil rerata yang dihitung. Setelah Program dijalankan akan muncul Error message, yaitu : Call of
nonfunction in function main ( )(2). Ini terjadi karena penggunaan tanda ( ) tidak cocok untuk program diatas, dan seharusnya menggunakan tanda [ ] sebagai karakter yang memblok angka(3). Berikut listing program yang benar beserta hasil kompilenya :
#include <iostream.h> main () { float rerata, a[3]; cout << "Masukkan 3 buah nilai = "; cin >> a[0] >> a[1] >> a [2]; rerata = (a[0]+a[1]+a[2])/3; cout << "Rerata = " << rerata; }
Program VII-2
#include <iostream.h> main () { int N; float jumlah, rerata, a[5]; cout << "Banyaknya nilai = "; cin >> N; jumlah = 0; for (int i=0; i<N; i++) { cout << "Nilai ke-" << (i+1) << " = "; cin >> a[i]; jumlah = jumlah+a[i]; } rerata = jumlah/N; cout << "Rerata = " << rerata; }
Penjelasan skrip program diatas antara lain sebagai berikut : Baris 1. 2. 3. 4. 5. 6. 7. 8. 9. Keterangan (int N) menunjukkan tipe data N berbentuk bilangan bulat/integer, (float jumlah, rerata, a[5];) pengaksesan elemen larik jumlah, rerata, serta indeks a[5] yang dimasukkan bertipe bilangan/ float, (cout << "Banyaknya nilai = ")merupakan perintah output untuk menampilkan tulisan Banyaknya nilai, (cin >> N;) perintah input untuk memasukkan nilai N, (jumlah = 0) merupakan keterangan untuk jumlah = 0 tetapi tidak ikut ditampilkan, Merupakan struktur perulangan yang digunakan dengan perulangan yang dibatasi dimana kondisi i = 0 dan < N dimana nilai i akan dinaikan sebanyak 1 dari nilai awal oleh fungsi ++, Merupakan perintah output untuk menampilkan tulisan Nilai ke- serta nilai yang akan kita masukkan, (cin >> a[i]) perintah input untuk memasukkan nilai, Merupakan keterangan rumus jumlah yang dihitung oleh kompiler tetapi tidak ikut ditampilkan,
Merupakan rumus penghitungan rerata yang dihitung dari jumlah dibagi dengan banyaknya nilai, (cout << "Rerata = " << rerata) merupakan perintah keluaran/output untuk menampilkan tulisan "Rerata = " serta jumlah rerata yang dihitung, } merupakan akhir blok program.
Saat diisi banyaknya nilai = 4 dan nilai-nilainya diisikan pada program masih berjalan baik, tetapi saat diisi banyaknya nilai = 15 dan nilai-nilainya diisikan maka pada nilai ke-11 compiler langsung close. Hal ini karena terjadi runtime (bukan error pada saat dicompile). Terjadinya runtime karena pengaksesan komponen variabel array melebihi kapasitas (ukuran) yang telah ditetapkan pada pendefinisian. Diperbaiki dengan memodifikasi nilai pada baris : float jumlah, rerata, a[15]; Nilai konstanta dalam a adalah kapasitas array. Jadi disetting supaya bisa memiliki kapasitas yang besar tetapi harus sesuai porsinya (program digunakan untuk apa), misal untuk banyak nilai = 15 maka a[15](5).
2. Pengulangan FOR untuk mengisi dan menampilkan array Dua Dimensi (Matriks) Program VII-3
#include <iostream.h> main () { int N = 3; float A[5][5]; for (int i=0; i<N; i++) { for (int j=0; j<N; j++) { cout << "A(" << i << "," << j << ") = "; cin >> A[i][j]; } } cout << "Matriks A =\n"; for (i=0; i<N; i++) { for (int j=0; j<N; j++) { cout << "\t" << A [i][j]; } cout << endl ; } }
Berikut program untuk mengisi dan menampilkan matriks yang berukuran 4 baris x 5 kolom yang dimodifikasi dari program sebelumnya beserta hasil eksekusinya(6):
#include <iostream.h> main () { int N=4; float A[5][5]; for (int i=0; i<N; i++) { for (int j=0; j<=N; j++) { cout << "A(" << i << "," << j << ") = "; cin >> A[i][j]; } } cout << "Matriks A =\n"; for (i=0; i<N; i++) { for (int j=0; j<=N; j++) { cout << "\t" << A [i][j]; } cout << endl ; } }
10
Berikut hasil eksekusi dari program setelah memasukkan nama : Miko(7), miko(8), Ahmad Dahlan(9), Zainal(10), zainal, dan nama masing-masing(11) :
11
Menjadi :
cout << strset(nama2,'a') << endl;
Pengaruhnya yakni pada barisan eksekusi program terakhir yang bertuliskan huruf xxxxxx akan di gantikan dengan huruf aaaaaaa(12). Dan berikut penjelasan dari fungsi-fungsi : strlen(),strcpy(),strcat(),strcmp(),strlen(),strcspn(), strupr(),strlwr(),strrev(),strset(): strlen() : bentuk format strlen (const char *s) berfungsi menghitung panjang string s strcpy() : bentuk format strcpy (char*dest, const char*src) berfungsi mengkopi string src ke dest, strcat() : bentuk format strcat (char*dest, const char*src) berfungsi menambahkan kopian src ke bagian akhir dest, strcmp() : bentuk format strcmp (const char*s1, const char*s2) berfungsi melakukan perbandingan s1 dengan s2,
12
strcspn() : bentuk format strcspn (const char*s1, const char*s2)berfungsi menemukan bagian awal string s1 yang mengandung s2, strupr() : bentuk format strupr (const char*s) berfungsi mengubah string menjadi huruf CAPITAL (uppercase), strlwr() : bentuk format strlwr (const char*s) berfungsi mengubah string menjadi huruf biasa/kecil(lowercase), strrev() : bentuk format strrev (const char*s) berfungsi membalik semua karakter string, dari huruf terakhir menjadi huruf awal, strset() : bentuk format strset(const char*s, int ch) berfungsi menset semua karakter dalam s ke ch.
13
V.
KESIMPULAN
Adapun kesimpulan dari Praktikum VII ini antara lain sebagai berikut : 1. Larik/array merupakan struktur penyimpanan sekumpulan data secara beruntun didalam memori, yang tiap elemen datanya diacu menggunakan indeks, 2. Array atau larik memiliki berbagai fungsi maupun tahapan-tahapannya, antara lain mendeklarasi array, mengakses elemen array, array multidimensi, literal string, 3. Banyak fungsi-fungsi lain yang digunakan dalam praktikum ini, seperti strlen(),strcpy(),strcat(),strcmp(),strlen(),strcspn (), strupr(),strlwr(),strrev(),strset(), yang masing-
14
VI. REFERENSI Modul Praktikum Dasar Pemrograman Kartika Firdausy, S.T.,M.T http://www.cplusplus.com/ http://www.mcp.com
15