Dalam tutorial sebelumnya kita telah membahas pengertian dan contoh kode program dari tipe data array dalam bahasa C. Untuk mengolah data yang lebih kompleks, array ini bisa dibuat menjadi 2 dimensi atau lebih. Inilah yang akan kita bahas dalam tutorial belajar bahasa pemrograman C di Duniailkom kali ini.
Pengertian Array 2 Dimensi
Array dua dimensi adalah sebutan untuk array yang penomoran index-nya menggunakan 2 buah angka. Analogi yang sering dipakai seperti titik koordinat dalam diagram kartesius.
Diagram kartesius merupakan diagram yang biasa kita pakai untuk membuat grafik. Disini terdapat sumbu X dan sumbu Y. Sebuah titik dalam diagram kartesius ini harus disebut secara berpasangan, seperti (2,3) atau (-3, 1).
Analogi lain adalah matriks. Dalam matematika, matrik terdiri dari kolom dan baris. Kembali, untuk menentukan nilai dari sebuah matriks, kita harus sebut secara berpasangan seperti baris 1 kolom 2, atau baris 3 kolom 1. Konsep seperti inilah yang menjadi dasar dari array 2 dimensi.
Untuk membuat array 2 dimensi di dalam bahasa C, kita membuat 2 kali tanda kurung siku setelah nama variabel, seperti contoh berikut:
int bilangan[2][2];
Baris diatas akan membuat array 2 dimensi dengan nama variabel: bilangan. Variabel bilangan ini akan berisi 4 element (2 x 2). Atau jika diibaratkan sebagai matriks, disini kita membuat matriks 2 x 2.
Untuk mengakses setiap element array, penulisan index juga harus ditulis 2 kali, seperti contoh berikut:
bilangan[0][0] = 100; bilangan[0][1] = 101; bilangan[1][0] = 110; bilangan[1][1] = 111;
Kita akan lihat contoh praktek dari array 2 dimensi ini sesaat lagi.
Contoh Kode Program Array 2 Dimensi Bahasa C
Berikut contoh kode program pertama dari pembuatan array 2 dimensi di dalam bahasa C:
#include <stdio.h> int main(void) { int bilangan[2][2]; bilangan[0][0] = 100; bilangan[0][1] = 101; bilangan[1][0] = 110; bilangan[1][1] = 111; printf("Isi array bilangan: \n"); printf("%d, %d \n",bilangan[0][0],bilangan[0][1]); printf("%d, %d \n",bilangan[1][0],bilangan[1][1]); return 0; }
Di awal kode program, saya membuat array bilangan dengan perintah int bilangan[2][2];. Artinya, array bilangan adalah sebuah array 2 dimensi dengan 4 element. Proses pengisian setiap element array dilakukan setelahnya, kemudian ditampilkan dengan perintah printf.
Pengisian element array 2 dimensi juga bisa dilakukan pada saat array itu di definisikan, seperti contoh berikut:
#include <stdio.h> int main(void) { int matrix[2][3] = {{1,2,3},{7,8,9}}; printf("Isi array matrix: \n"); printf("%d %d %d \n", matrix[0][0], matrix[0][1], matrix[0][2]); printf("%d %d %d \n", matrix[1][0], matrix[1][1], matrix[1][2]); return 0; }
Kali ini saya membuat sebuah array matrix dengan perintah int matrix[2][3] = {{1,2,3},{7,8,9}};. Perintah ini akan membuat array 2 dimensi dengan total 6 element (hasil dari 2*3). Selain itu proses pengisian nilai juga dilakukan langsung pada saat pendefinisian array.
Tanda kurung kurawal sebagai pemisah nilai array bersifat opsional dan boleh tidak ditulis. Saya juga bisa mengisi array tersebut dengan perintah berikut:
int matrix[2][3] = {1,2,3,7,8,9};
Hanya saja penggunaan tanda kurung kurawal akan mempermudah peletakan posisi dari setiap element array.
Pengertian Array Multi Dimensi
Tidak cukup dengan array 2 dimensi, kita juga bisa membuat array 3 dimensi bahkan lebih. Contoh penggunaan dari array 3 dimensi adalah seperti diagram kartesius 3 dimensi (dimensi ruang) yang butuh sumbu x (lebar), y (tinggi), dan z (kedalaman).
Cara pembuatan array 3 dimensi cukup mudah, kita tinggal menulis 3 kali tanda kurung siku setelah penulisan nama array:
int matrix[2][3][4]
Bagaimana dengan array 4 dimensi? Tidak masalah:
int matrix[2][3][4][5]
Kompleksitas array akan menjadi bertingkat jika sudah menggunakan multi dimensi. Sebagai contoh, baris diatas akan membuat sebuah array 4 dimensi yang beranggotakan 120 element!
Contoh Kode Program Array 3 Dimensi Bahasa C
Sebagai contoh dari konsep array multi dimensi, saya akan membuat sebuah array 3 dimensi. Berikut contoh kode programnya:
#include <stdio.h> int main(void) { int matrix[2][3][4] = { { {7, 4, 12, 3}, {-9, 29, 3, 11}, {6, 34, 23, 20} }, { {6, 15, 1, 5}, {17, 8, -3, 15}, {99, -1, 44, 9} } }; printf("Isi matrix[0][0][0]: %d \n",matrix[0][0][0]); printf("Isi matrix[0][1][0]: %d \n",matrix[0][1][0]); printf("Isi matrix[1][1][3]: %d \n",matrix[1][1][3]); printf("Isi matrix[1][2][3]: %d \n",matrix[1][2][3]); return 0; }
Disini saya membuat array matriks 3 dimensi dengan perintah int matrix[2][3][4], artinya array ini akan menampung 2*3*4 = 24 element, mulai dari element [0][0][0], [0][0][1], [0][0][2] hingga [1][2][3]. Ingat, penulisan nomor index dimulai dari 0.
Karena jumlah element array ini cukup banyak, saya hanya menampilkan beberapa nilai saja menggunakan perintah printf. Meskipun begitu saya yakin anda bisa menampilkan seluruh nilai element array ini. Caranya, cukup dengan mengubah nomor index.
Array 2 dimensi dalam bentuk matriks sangat sering dipakai untuk latihan logika. Soal-soal olimpiade komputer tidak jarang menggunakan array 2 dimensi seperti ini, dimana kita disuruh untuk menebak berapa hasil akhir array setelah serangkaian proses tertentu.
Selanjutnya, kita akan bahas tipe data String dalam bahasa C, yang tidak lain adalah array dari tipe data char.
Min kapan nulis untuk pembelajaran bahasa C++ mau blajar nih min :(
Siap request ditampung, rencana awal akan ke C++ jika tutorial dasar bahasa C sudah sampai ke operator dan function, tapi akan dipertimbangkan untuk membuatnya secara bersamaan..
Min C++ dong :(
Request ditampung ya….
Lanjutkan C min hehe
mas admin bisa rekomendasiin gak judul buku tentang C ini? atau duniailkom.jual ebooknya
Saya belum punya yang bisa direkomendasikan nih, soalnya udah jarang ke gramedia lagi. Untuk eBook bahasa C duniailkom mungkin suatu saat akan ada, tapi kayaknya belum bisa dalam waktu dekat… :)
Lanju min baasa c nya
Siap,..
Iya nih.. ada beberapa kesibukan akhir2 ini, jadi tutorial bahasa C-nya terpaksa dipending untuk sementara
Semangat min!!
Ditunggu next partnya
Pembelajarannya membantu kk. Lanjutin C nya kk, sama saya request C++ :v
Siap, request ditampung…
tulisan mas sangat enak dibaca, membuat saya cepat paham bahasa pemrograman C, btw kapan di lanjut lagi mas?? ada gak bakalan membahas lebih banyak ttg header" yg ada di C, habis itu perulangan sama percabangannya gimana? kalo boleh tau berapa bnayak lagi function" yg belum dibahas utk mencapai keseluruhan belajar C mas?
mas suatu saat saya ingin bikin game, jadi saya memutuskan buat belajar bahasa C terlebih dahulu, menurut mas betul gak langkah saya ini memilih belajar C lebih dulu?
bukannya bermaksud tidak sopan mas, ada gak rekomendasi situs" lain buat belajar bahasa C atau C++?
maaf saya banyak tanya mas. terima kasih sebelumnya.
Iya nih, berhubung kesibukan belum sempat nulis lanjutan tutorial bahasa C. Mudah2an nanti bisa sampai ke operator, percabangan dan perulangan.
Untuk game programming saya juga belum pernah coba, tapi kebanyakan memang menggunakan bahasa turunan C, seperti C++ atau C#. Mengenai web tutorial lain, saya juga belum punya rekomendasi nih. Boleh coba search di google dan di klik satu2 hasil yang keluar.
Sangat sering berkunjung kesini soalnya GAMPANG DIPAHAMIIIIII
makasih mimin tuhan membalas semua kebaikan mu…
Ngikutin biar bisa jadi tukang coding, biar bisa bersaing sama coding luar hahah
Hehe, pertahankan semangatnya…
Bang andre mohon pencerahannya, ini bahasa c kan bahasa bawah ya, dalam artian dekat dengan bahasa assembly atau mesin, berarti kalau kita bisa menguasai bahasa c ini kita bisa program apa pun?
Secara teori bisa, tapi itu tidak efektif. Ibaratnya semua baju terbuat dari benang, untuk bisa membuat baju batik jalurnya akan sangat panjang jika mulai belajar dari memintal benang. Akan lebih cepat kita beli kain batik yang sudah jadi dan belajar cara menjahit baju (karena tujuan akhirnya ingin membuat baju batik).
Bahasa C memang dasar dari mayoritas bahasa pemrograman modern, termasuk linux itu kode program dasarnya dibuat pakai bahasa C dan C++. Compiler atau "otak" dari bahasa PHP dan Java juga dibuat dari bahasa C/C++.
Tapi jika ingin membuat aplikasi web, akan lebih mudah jika langsung pakai PHP karena memang sudah dirancang sedemikian rupa untuk pemrosesan web. Jika mulai dari bahasa C, maka kita harus membuat dulu "bahasa PHP" ini, yang bisa jadi terdiri dari puluhan juta baris kode program.
Logika masuk,
Apakah semua itu (detail bahasa c) dibahas di subuah buku atau e book bang?? Ada recomenadasi ngga? Thanks in advance
Biasanya buku2 bahasa C yang berbahasa Indonesia hanya membahas konsep dasar saja (sebagai bagian dari materi algoritma). Aplikasi yang dihasilkan juga berbentuk aplikasi DOS seperti pada tutorial ini. Untuk buku advanced bahasa C sepertinya masih jarang yang berbahasa Indonesia.
kak, kalo cara pengintputan dari user nya bagaimana ya? terimakasih
saya buat penjumlahan di array 2d dan berhasil.
nah cara dibuat jadi pengurangan, perkalian, pembagian gimana ya??
dari kemarin ngotak ngatik gak nemu nemu
berikut source code nya :
#include<stdio.h>
int main(){
int matrix[3][3];
int barisAtas;
for(int ini = 0; ini < 3; ini++){
for(int itu = 0; itu < 3; itu++){
scanf("%d", &matrix[ini][itu]);
}
}
for(int ini = 0; ini < 3; ini++){
for(int itu = 0; itu < 3; itu++){
printf("%d ", matrix[ini][itu]);
}
printf("\n");
}
for(int ini = 0; ini < 3; ini++){
barisAtas += matrix[0][ini];
}
printf("Hasil Baris Atas : %d", barisAtas);
return 0;
}