Upload presentasi
Presentasi sedang didownload. Silahkan tunggu
1
Konsep Pemgrograman LARIK
2
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
3
LARIK type menyatakan jenis data yang dapat ditampung larik.
type array_name [ size ]; type array_name[ size ] = {data1, data2, ..., data_n} ; type array_name[ ] = {data1, data2, ..., data_n} ; type menyatakan jenis data yang dapat ditampung larik. size menyatakan kapasitas larik. Larik
4
LARIK int blt_gb[2]; char kar_gb[2]; float pch_gb[2]; int main() {
0 0 a b c 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 %d\n", blt_gb[0], blt_gb[1]); printf("%d %d\n", kar_gb[0], kar_gb[1]); printf("%f %f\n", pch_gb[0], pch_gb[1]); printf("%d %d\n", blt[0], blt[1]); printf("%c %c %c\n", kar[0], kar[1], kar[2]); printf("%f %f\n", pch[0], pch[1]); return 0; } Larik
5
LARIK 10 20 ‘a’ ‘b’ 1.5 10 20 0 0 int main() { a b 0
int main() { int blt[4] = {10, 20}; char kar[3] = {'a', 'b'}; float pch[2] = {1.5}; printf("%d %d %d %d\n", blt[0], blt[1], blt[2], blt[3]); printf("%c %c %d\n", kar[0], kar[1], kar[2]); printf("%f %d\n", pch[0], pch[1]); return 0; } blt[0] blt[1] blt[2] blt[3] kar[0] kar[1] kar[2] pch[0] pch[1] 10 20 ‘a’ ‘b’ 1.5 Larik
6
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 maka harus berubah menjadi Gunakan satu larik saja. [0] [1] [2] [3] [4] [5] [6] 10 20 30 40 50 20 30 40 50 10 Larik
7
ROTASI SATU POSISI KE KIRI
Data mana yang pertama dipindahkan? 10? 50? [0] [1] [2] [3] [4] [5] [6] 10 20 30 40 50 Pindahkan 10, 50 akan tertimpa. 10 [0] [1] [2] [3] [4] [5] [6] 10 20 30 40 50 Pindahkan 10, 50 akan tertimpa. 50 Larik
8
ROTASI SATU POSISI KE KIRI
[0] [1] [2] [3] [4] [5] [6] 10 20 30 40 50 Larik
9
ROTASI SATU POSISI KE KIRI
[0] [1] [2] [3] [4] [5] [6] 10 20 30 40 50 Larik
10
ROTASI SATU POSISI KE KIRI
[0] [1] [2] [3] [4] [5] [6] 10 20 30 40 50 Larik
11
ROTASI SATU POSISI KE KIRI
[0] [1] [2] [3] [4] [5] [6] 10 20 30 40 50 Larik
12
ROTASI SATU POSISI KE KIRI
[0] [1] [2] [3] [4] [5] [6] 10 20 30 40 50 Larik
13
ROTASI SATU POSISI KE KIRI
[0] [1] [2] [3] [4] [5] [6] 10 20 30 40 50 Larik
14
ROTASI SATU POSISI KE KIRI
baca jumlah_data cacah 0 ulangi selama cacah < jumlah_data baca bilangan [cacah] cacah cacah + 1 akhir pengulangan temp bilangan [0] cacah 1 bilangan [cacah – 1] bilangan [cacah] bilangan [n – 1] temp cetak bilangan Larik
15
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 ? Larik
16
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
17
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
18
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("%2d ", larik[i][j]); printf("\n"); } return 0; Larik
19
LARIK DUA DIMENSI Struktur memori komputer untuk larik 2D. Fisikal
Konseptual Larik
20
LARIK DUA DIMENSI Row-major order. data baris ke-1 ? 5 10 15
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; data baris ke-1 ? data baris ke-2 ? Larik
21
LARIK 2D SEBAGAI PARAMETER
void cetak_larik (int a[2][3]) { int i, j; for (i = 0; i < 2; i++) { for (j = 0; j < 3; j++) printf("%2d ", a[i][j]); printf("\n"); } int main() { int arr[2][3], i, j; printf("ketik 6 bilangan :\n"); for (i = 0; i < 2; i++) scanf("%d", &arr[i][j]); cetak_larik(arr); return 0; dimensi ditulis lengkap ketik 6 bilangan : Larik
22
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-masing dilakukan pada sebuah function. a11 a12 a13 + b11 b12 b13 = c11 c12 c13 a21 a22 a23 b21 b22 b23 c21 c22 c23 Larik
23
PENJUMLAHAN MATRIKS # include <stdio.h>
# include <conio2.h> void isi_matriks (int a[10][10], int brs, int klm) { int i, j, posisi_brs; printf("Matriks %d x %d\n", 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
24
PENJUMLAHAN MATRIKS void jumlah_matriks (int a[10][10], int b[10][10],
int c[10][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][10], int brs, int klm) { for (i = 0; i < brs; i++) { printf("%3d ", a[i][j]); printf("\n"); Larik
25
PENJUMLAHAN MATRIKS int main () {
int mat_a[10][10], mat_b[10][10], mat_c[10][10]; int baris, kolom; printf("ukuran baris ? "); scanf("%d", &baris); printf("ukuran kolom ? "); scanf("%d", &kolom); isi_matriks(mat_a, baris, kolom); isi_matriks(mat_b, baris, kolom); jumlah_matriks(mat_a, mat_b, mat_c, baris, kolom); printf("Hasil jumlah:\n"); cetak_matriks(mat_c, baris, kolom); return 0; } ukuran baris ? 2 ukuran kolom ? 3 Matriks 2 x 3 Hasil jumlah: Larik
26
Buatlah data penjualan produk
2006 2007 2008 Produk 1 500 800 900 Produk 2 230 780 890 Produk 3 123 456 789
Presentasi serupa
© 2024 SlidePlayer.info Inc.
All rights reserved.