Dasar-dasar Pemrograman : Array Dua Dimensi dan Latihan Soal

Dasar-dasar Pemrograman : Array Dua Dimensi dan Latihan Soal



Deklarasi Array Multidimensi 

Pada pembahasan lalu lalu anda telah melihat bagaimana array berdimensi satu dideklarasikan, perhatikan potongan kode pada gambar di bawah ini !



Perhatikan bahwa terdapat simbol [ ] disebelah kanan tipe data array! Simbol [ ] menandakan bahwa variabel yang dideklarasikan merupakan array. Tetapi, simbol [ ] juga menandakan banyak dimensi yang dimiliki array. Perhatikan potongan kode pada Gambar bawah ini !


Potongan kode pada Gambar di atas menunjukan pendeklarasian array multidimensi. Perhatikan bahwa terdapat dua simbol [ ] disebelah kanan tipe data array! Banyak simbol [ ] disebelahkan tipe data array menandakan banyak dimensi yang dimiliki array.

Bagaimana cara untuk mendeklarasikan sebuah array berdimensi 3 untuk menampung bilangan riil ?

Sama saja hanya tinggal menambahkan [] di kolom int sehingga menjadi seperti ini

int[][][] sebuahArray; 


Instansiasi Array Multidimensi 


Instansiasi array multidimensi pada Java tidak berbeda jauh dengan instansiasi array berdimensi satu. Perhatikan potongan kode pada Gambar di bawah ini !


Potongan kode pada Gambar di atas menunjukan instansiasi array berdimensi satu. Perhatikan bahwa pada instansiasi array berdimensi satu, angka yang terdapat pada di dalam simbol [ ] merupakan ukuran array. Pada instansiasi array multidimensi kita harus menentukan ukuran dari setiap dimensi array sebelum menggunakan array tersebut. Perhatikan potongan kode pada Gambar di bawah ini !


Pada potongan kode yang terdapat pada Gambar di atas, anda dapat melihat bahwa terdapat dua simbol [ ] pada instansiasi array berdimensi 2. Angka yang berada di dalam simbol [ ] merupakan ukuran dari setiap dimensi array. Angka di dalam simbol [ ] pertama (paling kiri) menentukan ukuran dimensi 1 pada array. Angka yang berada di dalam simbol [ ] kedua merupakan ukuran dari dimensi 2 pada array. Anda wajib menentukan ukuran dari setiap dimensi array sebelum menggunakan array tersebut.

Anda tentu dapat menggabungkan deklarasi dan instansiasi array multidimensi dalam satu baris seperti yang ditunjukan oleh potongan kode pada Gambar di bawah ini.



Mengakses Array Multidimensi

Seperti halnya pengaksesan array berdimensi satu, pengaksesan array multidimensi dilakukan dengan menentukan indeks elemen. Lain halnya dengan pengaksesan array berdimensi satu, pengaksesan array multidimensi membutuhkan indeks sebanyak dimensi yang dimiliki oleh array. Perhatikan potongan kode pada Gambar di bawah ini !


Potongan kode pada Gambar 6 menunjukan bagaimana cara mengakses suatu elemen pada array berdimensi dua. Perhatikan bahwa terdapat dua buah indeks yang berada di sebelah kanan nama array yang berada di dalam simbol [ ].

Angka yang berada didalam simbol [ ] selalu dapat diganti dengan semua ekspresi yang menghasilkan bilangan bulat positif. Ekspresi yang dimaksud dapat hanya berupa sebuah variabel atau berupa ekspresi aritmatika, contohnya perhatikan potongan kode pada Gambar 7!




1. Apa keluaran dari kode pada Gambar di atas ?

2. Elemen dengan indeks berapakah yang hanya diakses (baik baca dan tulis) satu kali ?

Latihan



Panen

Seorang petani sedang kebingungan bagaimana ia dapat memanen sawahnya karena saat ini petani tersebut sedang sakit. Oleh karena itu, petani tersebut meminta bantuan seekor wombat untuk memanen petak-petak sawahnya. Tentu saja sebagai wombat yang baik hati, wombat tersebut bersedia membantu petani. Sayangnya, tidak semua petak sawah bisa dipanen secara bersamaan. Sawah tersebut terdiri dari petak-petak sebanyak N x N dan hanya petak-petak yang terletak pada garis diagonal utama saja, dari kiri atas ke kanan bawah, yang dapat dipanen saat ini. Petani tersebut juga ingin mengetahui berapa berat total dari gabah yang dipanen. Bantulah wombat tersebut menghitung hasil panen petak-petak sawah sang petani.

Spesifikasi Masukan 

Masukan diawali oleh sebuah buah bilangan bulat positif n. Di mana n merupakan banyak kolom dan baris sawah. Selanjutnya masukan diikuti oleh n buah baris yang setiap barisnya terdiri dari n buah bilangan bulat positif yang merupakan berat gabah yang dapat dipanen dari petak tersebut. 

Spesifikasi Keluaran 

Keluarkanlah berat total dari gabah yang dapat dipanen oleh wombat. 

Contoh Masukan 


12 10 3 

5 5 8 

3 10 4 

Contoh Keluaran 

21 


Survei Skripsi

Seorang mahasiswa sedang melakukan survey untuk mengambil data yang akan digunakan pada skripsinya. Mahasiswa tersebut berniat untuk melakukan survey untuk mencari berapa banyak mahasiswa yang menitipkan tas dengan warna tertentu pada loker di depan lab komputasi. Sayangnya, mahasiswa tersebut tidak dapat melakukan survey sendiri karena ia tidak bisa membedakan warna. Bantulah mahasiswa tersebut melakukan survey.

Spesifikasi Masukan 


Masukan diawali oleh dua buah bilangan bulat n dan m. Di mana n merupakan banyak baris loker dan m merupakan banyak kolom loker. Selanjutnya masukan diikuti oleh n buah baris yang setiap barisnya terdiri dari m buah karakter yang dipisahkan spasi. Karakter-karakter tersebut melambangkan warna dari tas yang berada di loker. Warna tas berupa 1 dari 4 kemungkinan, yaitu M untuk merah, B untuk biru, H untuk hijau, dan P untuk putih. Masukan diakhiri oleh sebuah karakter yang merupakan warna tas yang akan disurvey.

Spesifikasi Keluaran 

Keluaran berupa sebuah bilangan bulat yang merupakan banyaknya tas pada loker dengan warna sesuai survey.

Contoh Masukan 

3 4 

M H B P 
M M B B 
P H M B 


Contoh Keluaran 


Map

Seorang anak sedang mencari alamat untuk sampai ke rumah temannya. Ia memiliki peta dan petunjuk untuk mencapai rumah temannya. Peta yang dimiliki oleh anak tersebut terbagi menjadi petak-petak area. Anak tersebut takut petunjuk yang diberikan temannya kurang akurat. Oleh karena itu, bantulah anak tersebut untuk memeriksa apakah petunjuk temannya dapat mencapai area yang tepat.
 
Spesifikasi Masukan 

Masukan diawali oleh sebuah bilangan bulat n, dimana n merupakan banyak baris dan kolom peta. Selanjutnya masukan diikuti oleh n buah baris yang setiap barisnya terdiri dari n buah karakter yang dipisahkan spasi. Setiap karakter dalam array dapat berupa titik (.), ‘s’, atau ‘t’. Karakter titik melambangkan lokasi kosong, karakter ‘s’ menandakan tempat anak tersebut berada, dan karakter ‘t’ menandakan tempat tinggal temannya. Selanjutnya masukan diikuti oleh sebuah string yang setiap karakter di dalamnya berupa petunjuk arah, yaitu R untuk kanan, L untuk kiri, U untuk atas, dan D untuk bawah. 

Spesifikasi Keluaran 

Keluaran berupa teks yang berisi ‘Akurat’ jika petunjuk tersebut akurat atau ‘Tidak akurat’ jika sebaliknya.

Contoh Masukan 1 


. . . . . 

. s . . . 

. . . . . 

. . . . t 

. . . . . 


DDRRR 


Contoh Keluaran 1

Akurat 

Contoh Masukan 2



. . . . . 

. . . s . 

. . . . . 

. . . . . 

. . t . . 

DLDLD 


Contoh Keluaran 2 


Tidak akurat


Simetri


Para wombat sedang belajar matematika tentang simetri. Supaya lebih menarik, sang guru tidak hanya memberikan contoh-contoh bangun datar, tapi juga berupa gambar. Gambar ini terbentuk dari NxN buah kotak kecil-kecil, yang berwarna hitam atau putih. Suatu gambar dikatakan simetri jika ia simetris terhadap sumbu X dan Y. Perhatikan contoh berikut ini


Bantulah guru wombat untuk memeriksa kunci jawaban dari soal-soal yang ia buat ! 

Spesifikasi Masukan 

Masukan diawali dengan ukuran gambar N, 2 ≤ N ≤ 100. N baris berikutnya masing-masing berisi N buah angka nol (melambangkan putih) atau 1 (melambangkan hitam). Setiap angka dipisahkan satu spasi.

Spesifikasi Keluaran 

Keluarkan tulisan “true” jika gambar berupa simetri, atau “false” jika bukan. 

Contoh Masukan 1 


0 1 1 1 0 
0 1 0 1 0 
1 0 0 0 1 
0 1 0 1 0 
0 1 1 1 0 

Contoh Keluaran 1 

true 

Contoh Masukan 2 


0 0 1 0 0 
0 1 0 1 0 
1 0 0 0 1 
0 1 0 1 0 
0 1 1 1 0 

Contoh Keluaran 2 

false 


WomboCard

Womi adalah seekor wombat programmer. Kali ini ia sedang mengembangkan sebuah program untuk menggambar menggunakan perintah-perintah sederhana. Karena masih dalam tahap awal, program ini baru bisa menggambar persegi hitam di atas kanvas putih. Perintah yang digunakan adalah RECTANGLE(x, y, sizeX, sizeY), di mana x dan y adalah koordinat ujung kiri atas persegi, sizeX dan sizeY adalah lebar dan tinggi persegi. Seperti pada program komputer pada umumnya, koordinat (1,1) terletak di ujung kiri atas, dan sumbu y positif mengarah ke bawah. Pada WomboCad, kanvas selalu berbentuk persegi dengan ukuran NxN

Perhatikan contoh kanvas berukuran 10x10 di samping ini. Misalnya dilakukan 2x perintah: 

RECTANGLE (2, 3, 4, 5) => menggambar kotak merah 
RECTANGLE (4, 5, 5, 2) => menggambar kotak hijau 

Maka akan terbentuk gambar akhir seperti yang diarsir biru. 

Bantulah Womi membuat program ini !

Spesifikasi Masukan 


Masukan diawali dengan ukuran kanvas N (1 ≤ N ≤ 100) dan banyaknya perintah R (0 ≤ R ≤ 10). R baris berikutnya masing-masing berisi 4 angka yang menunjukkan x, y, sizeX, dan sizeY. Setiap angka ini tidak ada yang melewati batas koordinat kanvas (antara 1 s.d. N).
Spesifikasi Keluaran

Keluaran berupa gambar hasil. Warna putih dilambangkan titik, warna hitam dilambangkan karakter #.

Contoh Masukan 

10 2 

2 3 4 5 

4 5 5 2 

Contoh Keluaran 

.......... 

.......... 

.####..... 

.####..... 

.#######.. 

.#######.. 

.####..... 

.......... 

.......... 

.......... 

Sumber

Modul dan Tugas Daspro

Post a Comment

Lebih baru Lebih lama