130 likes | 268 Views
Praktikum Struktur Data. Pertemuan 1 Review. Agenda Praktikum. Program Data Array Pointer Struct. Program. Terdiri atas: Instruksi Data Data: Nonaddressable: Konstanta literal Addressable: Variabel Di mana kah data dan instruksi disimpan ketika program berjalan?. int main() {
E N D
Praktikum Struktur Data Pertemuan 1 Review
Agenda Praktikum • Program • Data • Array • Pointer • Struct
Program • Terdiri atas: • Instruksi • Data • Data: • Nonaddressable: Konstanta literal • Addressable: Variabel • Di mana kah data dan instruksi disimpan ketika program berjalan?
int main() { int a=1, b=2, c; c=a+b; printf("%d+%d=%d\n",a,b,c); printf("%d+%d=%d\n",1,2,1+2); printf("Hello...!\n"); getch(); return 0; }
Array • Definisi: kumpulan nilai dengan tipe data yang sama yang menggunakan nama sama. • Deklarasi:data-type variable-name[size]; • Array dapat dibedakan menjadi: • Array berdimensi satu (1D) vektor di Matematika • Array berdimensi dua (2D) matriks di Matematika • Array berdimensi banyak
Array • Dalam matematika dikenal variabel berindeks x0, x1, x2, …, xn-1. Angka 0, 1, 2, …, n-1 pada variabel x disebut sebagai indeks atau subscript. • Variabel berindeks diimplementasikan dalam program berupa variabel array x[0], x[1], x[2], …, x[n-1], dimana n adalah ukuran array. • Selang nilai yang valid bagi indeks suatu variabel array berukuran n adalah 0 sampai dengan n-1.
Tugas Array • Buatlah program untuk menghitung rataan, nilai maksimum dan minimum dari ndata. Jumlah data dan data diperoleh dari standar input. • Buatlah fungsi untuk menyalin array, tetapi dalam posisi terbalik. Fungsi memiliki 2 parameter yaitu array_sumber dan array_tujuan dengan ukuran array_sumber <= array_tujuan • Buat fungsi untuk menhitung jumlah elemen maksimum dari array.
Address and Pointers Address (alamat) • Tiapvariabelmemilikiduaatribut: alamat (address) dannilai (value). • Alamatadalahlokasidalammemorikomputer. • Padalokasitersebut, suatunilaidisimpan. • Operator untukmendapatkanalamatadalahampersand (&). • Format untukmenuliskanalamatadalah %p. Pointers • Pointer adalahvariabel yang nilainyaberupaalamat. • Pointer ke integer adalahvariabel yang dapatmenyimpanalamatdarisuatubilangan integer. • Operator untukmendeklarasikan pointer adalah asterisk (*)
Pointer • Pointer digunakanuntukmemanipulasimemorikomputer. • Pointer dideklarasikanmenggunakan asterisk (*). Contoh: int *a; berartivariabelaberisialamatmemori, dimanapadaalamatmemoritersebutberisibilangan integer. a=&x; 7 x int x=7; x a int *a; DEPARTEMEN ILMU KOMPUTER INSTITUT PERTANIAN BOGOR
Contoh penggunaanoperator * dan & #include <stdio.h> main() { int x; /* x adalah integer */ int *a; /* a adalah pointer ke integer */ x = 7; a = &x; /* a = alamatdari x */ printf( "Alamat x adalah %p" "\nNilai a adalah %p", &x, a); printf( "\n\nNilaidari x adalah %d" "\nNilaidari *a adalah %d", x, *a); return 0; } Alamat x adalah 0022FF74 Nilai a adalah 0022FF74 Nilaidari x adalah 7 Nilaidari *a adalah 7
Pointer dan array • Array dapatdidefinisikansebagai pointer keelemenpertamadari array. • Olehkarenaitu, pointer dan array merupakanduastruktur data yang salingberkaitandandapatsalingdipertukarkanpenggunaannya. • Deklarasi array dapatmenggunakan pointer seperticontohberikut: int x[]; atauint *x;