Konsep Pemgrograman LARIK LARIK Larik atau array Penampung
- Slides: 26
Konsep Pemgrograman LARIK
LARIK • Larik atau array – Penampung sejumlah data setipe – Masing-masing elemen data larik diakses dengan menggunakan indeks – Indeks dimulai dari 0 s. d. n-1 – Menempati lokasi memori yang menyatu (contigious) – Dikirim ke function selalu by reference, yang dikirim adalah alamat awal memori larik Larik 2
LARIK type array_name [ size ]; type array_name[ size ] = {data 1, data 2, . . . , data_n} ; type array_name[ ] = {data 1, data 2, . . . , data_n} ; type menyatakan jenis data yang dapat ditampung larik. size menyatakan kapasitas larik. Larik 3
LARIK int blt_gb[2]; char kar_gb[2]; float pch_gb[2]; int main() { int blt[4]; char kar[ ] = {'a', 'b', 'c'}; float pch[2] = {1. 5, 2. 6}; printf("%d printf("%f printf("%d printf("%c printf("%f return 0; %dn", blt_gb[0], blt_gb[1]); %dn", kar_gb[0], kar_gb[1]); %fn", pch_gb[0], pch_gb[1]); %dn", blt[0], blt[1]); %c %cn", kar[0], kar[1], kar[2]); %fn", pch[0], pch[1]); } Larik 0 0 0. 000000 0 2293672 a b c 1. 500000 2. 600000 4
LARIK 10 20 0 0 int main() { a b 0 int blt[4] = {10, 20}; 1. 500000 0 char kar[3] = {'a', 'b'}; float pch[2] = {1. 5}; printf("%d %dn", blt[0], blt[1], blt[2], blt[3]); printf("%c %c %dn", kar[0], kar[1], kar[2]); printf("%f %dn", pch[0], pch[1]); return 0; } blt[0] blt[1] blt[2] blt[3] 10 20 0 0 kar[1 kar[2 ] ] ] ‘a’ ‘b’ pch[ 0] 1] 0 1. 5 Larik 0 5
ROTASI SATU POSISI KE KIRI Tulis program untuk mengentri sejumlah bilangan ke dalam sebuah larik lalu rotasi bilangan-bilangan tersebut ke kiri satu posisi. Jika susunan elemen data larik adalah 10 20 30 40 50 maka harus berubah menjadi 20 30 40 50 10. Gunakan satu larik saja. [0] [1] [2] [3] [4] [5] [6] 10 20 30 40 50 10 Larik 6
ROTASI SATU POSISI KE KIRI Data mana yang pertama dipindahkan? 10? 50? [0] [1] [2] [3] [4] [5] [6] 10 20 30 40 50 10 Pindahkan 10, 50 akan tertimpa. [0] [1] [2] [3] [4] [5] [6] 10 20 30 40 50 50 Larik 7
ROTASI SATU POSISI KE KIRI [0] [1] [2] [3] [4] [5] [6] 10 20 30 40 50 10 Larik 20 30 40 50 8
ROTASI SATU POSISI KE KIRI [0] [1] [2] [3] [4] [5] [6] 10 20 30 40 50 10 10 Larik 20 30 40 50 9
ROTASI SATU POSISI KE KIRI [0] [1] [2] [3] [4] [5] [6] 10 20 30 40 50 10 Larik 20 30 40 50 10 20 30 30 40 50 10
ROTASI SATU POSISI KE KIRI [0] [1] [2] [3] [4] [5] [6] 10 20 30 40 50 10 Larik 20 30 40 50 10 20 30 40 40 50 11 50
ROTASI SATU POSISI KE KIRI [0] [1] [2] [3] [4] [5] [6] 10 20 30 40 50 10 Larik 20 30 40 50 10 20 30 40 50 12 50
ROTASI SATU POSISI KE KIRI [0] [1] [2] [3] [4] [5] [6] 10 20 30 40 50 10 20 30 40 50 50 20 30 40 50 10 Larik 13
ROTASI SATU POSISI KE KIRI baca jumlah_data cacah 0 ulangi selama cacah < jumlah_data baca bilangan [cacah] cacah + 1 akhir pengulangan temp bilangan [0] cacah 1 ulangi selama cacah < jumlah_data bilangan [cacah – 1] bilangan [cacah] cacah + 1 akhir pengulangan bilangan [n – 1] temp cetak bilangan Larik 14
ROTASI SATU POSISI KE KIRI int main() { int bil[100], j_data, i, temp; printf("jumlah data ? "); scanf("%d", &j_data); printf("bilangan ? "); for (i = 0; i < j_data; i++) scanf("%d", &bil[i]); temp = bil[0]; for (i = 1; i < j_data; i++) bil[i - 1] = bil[i]; bil[i - 1] = temp; for (i = 0; i < j_data; i++) printf ("%d ", bil[i]); return 0; } jumlah data ? 7 bilangan ? 10 20 30 40 50 60 70 10 Larik 15
LARIK DUA DIMENSI • Larik dua dimensi – Seakan-akan disusun dalam baris dan kolom. – Menggunakan dua indeks. type array_name [ row_size ] [ column_size ]; row_size menyatakan jumlah baris larik column_size menyatakan jumlah kolom larik Larik 16
LARIK DUA DIMENSI int main() { int larik_i [2][3] = {10, 20}; char larik_c [3][2] = {'a' , 'b', 'c'}; int i, j; for (i = 0; i < 2; i++) for (j = 0; j < 3; j++) printf("%d ", larik_i[i][j]); printf("n"); for (i = 0; i < 3; i++) for (j = 0; j < 2; j++) printf("%d ", larik_c[i][j]); return 0; } Larik 10 20 0 0 97 98 99 0 0 0 17
LARIK DUA DIMENSI int main() { int i, j, larik [3][4] = { {10, 20, 30 }, {30, 40} }; for (i = 0; i < 3; i++) { for (j = 0; j < 4; j++) printf("%2 d ", larik[i][j]); printf("n"); } return 0; } 10 20 30 40 0 Larik 18 0 0 0
LARIK DUA DIMENSI Struktur memori komputer untuk larik 2 D. Konseptual Larik Fisikal 19
LARIK DUA DIMENSI Row-major order. int main() { int a[2][3]; int b, k, i, *pi; for (b = 0; b < 2; b++) { printf("data baris ke-%d ? ", b + 1); for (k = 0; k < 3; k++) scanf("%d", &a[b][k]); } pi = &a[0][0]; for (i = 0; i < b * k; i++) printf("%d ", *(pi + i)); return 0; } Larik data baris ke-1 ? 5 10 15 data baris ke-2 ? 20 25 30 5 10 15 20 25 30 20
LARIK 2 D SEBAGAI PARAMETER void cetak_larik (int a[2][3]) { int i, j; for (i = 0; i < 2; i++) { dimensi for (j = 0; j < 3; j++) ditulis printf("%2 d ", a[i][j]); lengkap printf("n"); } } int main() { int arr[2][3], i, j; printf("ketik 6 bilangan : n"); for (i = 0; i < 2; i++) for (j = 0; j < 3; j++) scanf("%d", &arr[i][j]); ketik 6 bilangan : cetak_larik(arr); 5 15 25 35 45 55 return 0; 5 15 25 } 35 45 55 Larik 21
PENJUMLAHAN MATRIKS Tulis program untuk menjumlahkan dua matriks berukuran sama yang masing-masing berukuran tidak lebih dari 10 x 10. Proses mengentri data matriks, menjumlahkan matriks, mencetak isi matriks masing dilakukan pada sebuah function. a 11 a 12 a 13 a 21 a 22 a 23 Larik + b 11 b 12 b 13 b 21 b 22 b 23 22 = c 11 c 12 c 13 c 21 c 22 c 23
PENJUMLAHAN MATRIKS # include <stdio. h> # include <conio 2. h> void isi_matriks (int a[10], int brs, int klm) { int i, j, posisi_brs; printf("Matriks %d x %dn", brs, klm); posisi_brs = wherey(); for (i = 0; i < brs; i++) { for (j = 0; j < klm; j++) { gotoxy(j * 5 + 1, posisi_brs); scanf("%d", &a[i][j]); } posisi_brs++; } printf("n"); Larik } 23
PENJUMLAHAN MATRIKS void jumlah_matriks (int a[10], int b[10], int c[10], int brs, int klm) { int i, j; for (i = 0; i < brs; i++) for (j = 0; j < klm; j++) c[i][j] = a[i][j] + b[i][j]; } void cetak_matriks (int a[10], int brs, int klm) { int i, j; for (i = 0; i < brs; i++) { for (j = 0; j < klm; j++) printf("%3 d ", a[i][j]); printf("n"); } } Larik 24
PENJUMLAHAN MATRIKS int main () { int mat_a[10], mat_b[10], mat_c[10]; int baris, kolom; ukuran baris ? 2 ukuran kolom ? 3 printf("ukuran baris ? "); scanf("%d", &baris); kolom ? "); scanf("%d", &kolom); Matriks 2 printf("ukuran x 3 baris, kolom); 5 10 isi_matriks(mat_a, 15 baris, kolom); 20 25 isi_matriks(mat_b, 30 jumlah_matriks(mat_a, mat_b, mat_c, baris, kolom); jumlah: n"); Matriks 2 printf("Hasil x 3 baris, kolom); 11 22 cetak_matriks(mat_c, 33 0; 44 55 return 66 } Hasil jumlah: 16 32 48 64 80 96 Larik 25
Buatlah data penjualan produk Produk 2006 2007 2008 Produk 1 500 800 900 Produk 2 230 780 890 Produk 3 123 456 789
- Pengertian dari array/larik adalah?
- Apa itu larik
- Oogenesis
- Pengertian dari array/larik adalah
- Apa itu larik
- Jagged array
- Diketahui suatu array segitiga memiliki 4 baris dan kolom
- Associative array vs indexed array
- Pengertian array 1 dimensi dan 2 dimensi
- Land grid array vs pin grid array
- Broadside array and endfire array difference
- Photovoltaic array maximum power point tracking array
- Terdapat array a 3 4 2 maka jumlah elemen array tersebut
- Pengertian struktur data array
- Peranganing tembung ingkang mungel sakecap kawastanan
- Apa itu larik
- Larik adalah
- Seni menyusun nada atau bunyi disebut seni …….
- Penyimpangan penyimpangan atau error atau inkonsistensi
- Refential
- Peta konsep fungi jamur
- Relative file
- Peta konsep materi kewirausahaan
- Nilai abstrak
- Pengertian konsep seni rupa
- Sekumpulan konsep konsep untuk menerangkan data
- Perbedaan fbm dan abm