Anda di halaman 1dari 16

LAPORAN PRAKTIKUM VII

( ARRAY/LARIK ) DASAR KOMPUTER DAN PEMROGRAMAN

NURWAHYUDDI (12022038)

Program Studi Teknik Elektro Fakultas Teknologi Industri

UNIVERSITAS AHMAD DAHLAN YOGYAKARTA 2012

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];

Larik diatas dapat dideklarasikan sebagai berikut :


Int nilaiSuhu[7];

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]

A[1], A[2], A[3] nilaiSuhu[0] = 35;

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

Artinya menyakses elemen dengan indeks baris = 1, dan indeks kolom = 3.

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; }

Berikut penjelasan skrip Program dari baris 1 5(1) :

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,

10. 11. 12.

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.

Berikut hasil kompile program VII-2 :

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 hasil eksekusi dari program diatas :

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 ; } }

IV. TUGAS Operasi pada String : Utak-atik Nama Program VII-4


#include <stdio.h> #include <iostream.h> #include <string.h> main () { char nama[80], nama2[80], tulisan[80]; int panjang, posisi; cout << "Masukkan nama = "; gets (nama); strcpy(tulisan, "Halo "); cout << strcat(tulisan, nama) << endl ; if (strcmp(nama, "Miko")== 0) { cout << "Namamu Miko kan" << endl; } else { cout << "Namamu bukan Miko" << endl; } panjang = strlen(nama); cout << "panjang namamu " << panjang << endl; posisi = strcspn(nama,"z"); if (posisi < panjang) { cout << "Huruf z pada posisi " << posisi + 1 << endl; } else { cout << "Tidak ada huruf z nya" << endl ; } strcpy(nama2,nama); cout << strupr(nama2) << endl; cout << strlwr(nama2) << endl; cout << strrev(nama2) << endl; cout << strset(nama2,'x') << 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

Hasil eksekusi setelah dilakukan penggantian pada baris :


cout << strset(nama2,'x') << endl;

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-

masingnya memiliki kegunaan tertentu.

14

VI. REFERENSI Modul Praktikum Dasar Pemrograman Kartika Firdausy, S.T.,M.T http://www.cplusplus.com/ http://www.mcp.com

15

Anda mungkin juga menyukai