Bayangkan kamu
di kasih 5 data nilai hasil test dan kamu diminta untuk membuat program untuk
menentukan nilai rata – rata dari test tersebut juga nilai yang kurang dari nilai rata – rata test. Jika menggunakan rasional code yang akan kamu terapkan mungkin akan seperti ini.
Yaaa gak ? tapi itu untuk 5 data saja, kalau datanya ada 1000 ?! mau ngetik code if-nya sampe 1000x ?!! ada cara lain yang lebih efektif. Yuk bahas.
DATA TYPE
Simple Data Type : Variable dari tipe data tersebut hanya bisa memberikan 1 nilai pada satu waktu: int, char, float, bool, double.
Structured Data Type : Variable yang setiap datanya merupakan kumpulan dari data lainnya: array, string, struct.
ARRAY
- Array merupakan sejumlah kumpulan komponen tetap dengan tipe data yang sama
- One-dimensional array atau array satu dimensi adalah array dimana komponen disusun dalam bentuk daftar
- Syntax untuk menyatakan array
- dataType arrayName[intExp];
- int num[5];
- Syntax untuk mengakses atau memanggil array
- arrayName[indexExp];
- for(int i = 0; i < 5; ++)
- cout << num[i];
·
| Gambar Array 1 |
| Gambar Array 2 |
CONTOH 1
| Hasil compile |
Nilai pada local array akan berbeda beda, angka angka tersebut merupakan kode memori yang dipakai, mudahnya seperti nomor kamar dimana data akan disimpan.
CONTOH 2
| Hasil compile contoh 2 |
Seperti yang bisa dilihat dari gambar diatas, ketika jumlah data lebih sedikit dari jumlah indeks yang dimiliki array, maka ruang tersebut akan diisi nilai null dari masing2 tipe data. jika int, double atau apapun yang digunakan untuk bilangan maka akan diisi 0 jika tipe data yang digunakan untuk karakter maka akan diisi ' '.
| Ilustrasi ruang penyimpanan array |
Sampai sini paham ? oh yaa jangan biarkan size array-nya di kosongin yaa... soalnya nanti bakal jadi syntax error(compile error). contoh yang salah nih.
| contoh penulisan array yang menyebabkan error |
coba code diatas di ketik terus di compile deh. penyebab errornya adalah ukuran atau size array nya belum di declare atau dibatasi, beda kalo size yang ada di dalam kurung array di ganti angka. ini sama aja kamu mau bangun rumah tapi belom di tentuin mau ada berapa kamar didalemnya, yaa tukangnya bingung lah ngerjainya gimana. nah ada lagi cara penulisan size array yang menyebabkan run error.
| contoh lain penulisan array yang menyebabkan error |
Paham penyebabnya kan ? kalo belum coba di otak atik code nya sampe paham alasannya kenapa. sekarang kita coba buat code untuk soal di atas tadi dengan menggunakan array yaaa.
CONTOH 3
| jawaban soal di atas dengan menggunakan array |
| Hasil Compile and run |
coba di ketik dan dijalankan code ditas. lebih enak gak ? (Fyi, ini case sensitif yaa, jadi harus hati - hati ngetiknya jangan beda beda penulisannya, misal ada yang kapital ada yang huruf kecil kayak yang aku kasih diatas itu kalo di copas jadinya error hehehe).
ini ada sedikit cacatan dasar yang perlu diketahui.
- Indeks array dalam batas jika indeks >= 0 dan indeks <= SIZE - 1
- Indeks aaray diluar batas jika indeksnya > 0 atau indeks > SIZE - 1
- Dalam C++ tidak ada peringatan bahwa indeks terindikasi di luar batas
- Menjadi tanggung jawab programmer dalam memastikan bahwa indeks masih dalam batah
- C++ tidak mengijinkan operasi agregat dalam array
- Operasi agregat dalam array merupakan operasi lain yang memanipulasi keseluruhan array menjadi satu kesatuan
- Array tidak dapat di copy ke array laiinya secara keseluruhan walaupun keduanya memiliki ukuran yang sama
- int a[10], b[10];
- a = b; // illegal
- Kalau code ini kira kira benar atau tidak ?
- int a[3] = {10, 20, 30};
- cout << a;
- cin >> a;
- Array tidak bisa menjadi tipe data dari fungsi
- Array tidak bisa di kembalikan(return) dengan fungsi
Bingung ? hahaha sama ! pertama kali memang gitu, seiringnya jam terbang pasti nanti juga paham kok. santai aja. Masih kuat kan ? Untuk lebih jelasnya lagi yuk bahas code ini.
ARRAY SEBAGAI PARAMETER
| array sebagai parameter |
| hasi array sebagai parameter |
Array bisa di kirim ke fungsi sebagai parameter dan hanya dengan menggunakan reference. Karena array hanya bisa di lempar menggunakan reference kalian tidak perlu menggunakan simbol dan saat men-declare array sebagai parameter formal. perhatikan gambar di atas.
untuk mencegah function merubah parameter aktual, gunakan kata yang tersedia const. kita lihat contohnya
| penggunaan cost dalam fungsi |
ALAMAT DASAR ARRAY
Alamat dasar array adalah alamat awal memory dari array
int myList[5]
| gambaran alamat array |
- Nama array setara dengan alamat dasar
- alamat dasar adalah alamat awal memori dari array[0]
CONTOH 4
| code alamat array |
| alamat array |
CONTOH 5
Buatlah sebuah program untuk menggeser komponen dari array integer satu posisi ke kiri. Buat komponen yang paling kiri menjadi yang paling kanan. Gunakan hanya satu array.
| contoh soal contoh 5 |
| hasil akhir |
elemen data yang mana yang harus dipindahkan terlebih dahulu ?
| Cara 1 |
| Cara 2 |
untuk mengaplikasikan gambaran diatas ke dalam code, buat ke dalam psuedocode-nya dulu yuuk.
| psuedocode contoh soal 5 |
dari psueducode di atas apa paham untuk memasukkannya ke dalam code C++ ?
| code contoh soal 5 |
pada looping-an pertama merupakan proses memasukkan data yang di input-kan satu satu ke dalam array sesuai dengan jumlah data yang telah di inputkan (n). temp = arr[0] merupakan tahap untuk memindahkan data yang paling pertama atau yang paling kiri ke variable temp atau tempat sementara. Pada looping-an ke 2 itu lah tahap dimana seluruh data yang sudah dimasukan tadi di geser ke kiri. karena arr[0] sudah di amankan ke variable temp, maka tidak ada masalah jika arr[1] dipindahkan ke arr[0]. lalu pada looping-an terakhir itu merupakan tahap mencetak data array terakhir dimana data telah dipindahkan.
| hasil code contoh soal 5 |
MIND TWISTER
1. Buatlah sebuah program yang membalikkan konten dari array integer. dan hanya di izinkan menggunakan hanya satu array.
| soal 1 |
2. Buatlah sebuah program untuk menghitung jumlah siswa untuk masing - masing nilai ujian. Nilai yang valid untuk nilai ujian (0 to 100 inclusive). angka yang tidak valid akan dianggap sebagi end-of-file atau pengisian data selesai.
| soal 2 |
Oke sekian dari ane penjelasannya dan jangan lupa kerjakan bonus nya yaaa. biar makin pinter pemahamannya. InshaAllah ane lanjutkan ke materi C String (Array Karakter) kalo udah ada yang ngirim hasil kerjaannya dari Mind Twister-nya.
FYI : penjelasan diatas berdasarkan modul string and array yang pernah di kasih sama dosen ane yang super duper keren banget nget nget sewaktu ane numpang ngampus di UPH yaitu pak Thompson Susabda Ngoen waktu ane belajar algoritma and programming.
No comments:
Post a Comment