Pertemuan 1 Konsep Struktur Data Array STRUKTUR DATA
- Slides: 41
Pertemuan 1 Konsep Struktur Data & Array
STRUKTUR DATA Struktur Data adalah : suatu koleksi atau kelompok data yang dapat dikarakteristikan oleh organisasi serta operasi yang didefinisikan terhadapnya. Pemakaian Struktur Data yang tepat didalam proses pemrograman, akan menghasilkan Algoritma yang lebih jelas dan tepat sehingga menjadikan program secara keseluruhan lebih sederhana.
Pada garis besarnya, Data dapat dikategorikan menjadi : A. Type Data Sederhana / Data Sederhana Terdiri dari : 1. Data Sederhana Tunggal Misalnya : Integer, Real/Float, Boolean dan Character 2. Data Sederhana Majemuk Misalnya : String B. Struktur Data Terdiri dari : 1. Struktur Data Sederhana Misalnya Array dan Record
2. Struktur Data Majemuk Terdiri dari : a. Linier Misalnya : Stack, Queue dan Linear Linked List. b. Non Linier Misalnya : Pohon (Tree), Pohon Biner (Binary Tree), Pohon Cari Biner (Binary Search Tree), General Tree serta Graph.
TYPE DATA SEDERHANA (Dalam Program C++) 1. INTEGER Merupakan Bilangan Bulat dan tidak mengandung pecahan. seperti : . . . -3, -2, -1, 0, 1, 2, 3, . . Type data Integer Type Range Ukuran (Byte) Integer - 32768. . 32767 2 Long - 2147483648. . 2147483647 4 Contoh : int bil; long bil 2 =50000;
Contoh : program #include <iostream. h> #include <conio. h> tercetak void main() { int a=150; int b=250; a=a*b; cout<<"hasilnya adalah : " << a; getche(); } ? Mengapa yang tercetak = -28036 , hasil perkalian a=150, b=250 adalah 37500 + karena integer memiliki ukuran = 2 byte (16 bit) dengan jangkauan angka - 32768. . 32767 sehingga kapasitas tampung = 216 = 65536. maka yg tercetak adalah = 37500 – 65536 = -28036
2. REAL / FLOATING POINT Type data yang merupakan bilangan pecahan. Jenis Data Real/float ditulis dgn menggunakan titik(koma) desimal. Misalnya : 0. 32 4, 35 -131. 128 Type Real dapat juga ditulis dengan Rumus : M * Re = X M = Pecahan, R = Radix, e = Exponen, X = Hasil Bilangan, Misalnya : 3. 2 * 10 -1 = 0. 32 4. 35 * 102 = 435
Type data REAL Type Range Ukuran (Byte) Float 3. 4 x 10 -38 s/d 3. 4 x 10 +38 4 Double 1. 7 x 10 -308 s/d 1. 7 x 10 +308 8 Long Double 3. 4 x 10 -4932 s/d 1. 1 x 10 + 4932 10 Contoh : float disc; double kurs =1. 02;
3. BOOLEAN ATAU LOGICAL Type data yang hanya mempunyai dua bentuk keluaran yaitu nilai True dan False (Benar dan Salah) yang dinyatakan dengan 1 dan 0, Sehingga satuan data yang terpakai cukup satu bit saja. Operator yang digunakan adalah : And, Or, Not, XOR (ekslusif or/ bernilai 1 jika a≠b atau b≠ a) Input Operator Logika NOT (!) AND (&&) OR (||) A B C !A !B !C A&&B&&C A||B||C 0 0 0 1 1 1 0 0 1 0 1 0 1 1 1 0 0 0 1 1 0 1 0 0 1 1 1 0 0 0 1 1
4. CHARACTER Type data yang terdiri dari aksara (simbol) yang meliputi digit numerik, character alfabetik dan spesial character. Untuk menuliskan tipe char, karakter perlu ditulis di dalam tanda petik tunggal ( ‘ ) Contoh : ‘A’ karakter berupa huruf A ‘ 1’ karakter berupa angka 1 ‘*’ karakter simbol *
5. STRING Merupakan type data majemuk yang terbentuk dari kumpulan character sebanyak 256 (default) dengan jangkauan niai 0 - 255. Kumpulan character yang digunakan untuk membentuk
B. Struktur Data Array Dimensi 1 & 2 Array / Larik : Struktur Data Sederhana yang dapat didefinisikan sebagai pemesanan alokasi memory sementara pada komputer. Array dapat didefinisikan sebagai suatu himpunan hingga elemen yang terurut dan homogen. Terurut : Dapat diartikan bahwa elemen tersebut dapat diidentifikasi sebagai elemen pertama, elemen kedua dan seterusnya sampai elemen ke-n. Homogen : Adalah bahwa setiap elemen dari sebuah Array tertentu haruslah mempunyai type data yang sama.
Definisi Array Sebuah Array dapat mempunyai elemen yang seluruhnya berupa integer atau character atau String bahkan dapat pula terjadi suatu Array mempunyai elemen berupa Array. Karakteristik Array : 1. Mempunyai batasan dari pemesanan alokasi memory (Bersifat Statis) 2. Mempunyai Type Data Sama (Bersifat Homogen) 3. Dapat Diakses Secara Acak
Definisi Array 3 Hal yang harus diketahui dalam mendeklarasikan array : a. Type data array b. Nama variabel array c. Subskrip / index array Jenis Array (yang akan dipelajari) adalah : a. Array Dimensi Satu (One Dimensional Array) b. Array Dimensi Dua (Two Dimensional Array) c. Array Dimensi Tiga (Thee Dimensional Array)
1. ARRAY DIMENSI SATU (One Dimensional Array) Dapat disebut juga dengan istilah vektor yang menggambarkan data dalam suatu urutan Deklarasi : Type_Data Nama_Variabel [index] Misalnya : int A[5]; Penggambaran secara Logika : Elemen Array A[1] A[2] A[3] A[4] A[5] 0 4 1 2 Subscript / Index 3
Array Dimensi Satu #include <iostream. h> #include <conio. h> void main() { int bil [5]; clrscr; cout<<"Masukkan 5 bilangan genap : "<<endl; for (int i = 1; i <= 5; i++) { cout<<"Bilangan "<<i<<" : "; cin>> bil[i]; cout<<endl; } cout<<"5 bilangan yang dimasukkan : "<<endl; for (int i = 1; i <=5; i++) cout<<" "<<bil[i]; getch(); }
Function BU: type name ( parameter 1, parameter 2, . . . ) { statements } #include <iostream. h> #include <conio. h> void isiarray (int arg[], int length) // function isi array// { for (int n=1; n<=length; n++) { cout <<" bilangan ke-" <<n<< " "; cin >> arg[n] ; } } void cetakarray (int arg[], int length) // function cetak array// { for (int n=1; n<=length; n++) cout << arg[n] << " "; cout << "n"; } void main () {// program utama // int bil[5]; int y; cout<<"Masukkan bilangan genap (max 5 bilangan) : "; cin>>y; isiarray (bil, y); cetakarray (bil, y); getch(); }
Array Dimensi Satu Rumus untuk menentukan jumlah elemen dalam Array : n = Perkalian dari elemen sebelumnya (Elemen Array) (untuk array dimensi dua & tiga) i=1 Contoh : Suatu Array A dideklarasikan sbb : int A[10]; maka jumlah elemen Array dimensi satu tersebut adalah = 10
Rumus : @A[i] = B + (i – 1) * L PEMETAAN (MAPPING) ARRAY DIMENSI SATU KE STORAGE Dimana : @A[i] : Posisi Array yg dicari B : Posisi awal index di memory komputer i : Subkrip atau indeks array yg dicari L : Ukuran / Besar memory suatu type data Contoh : Suatu Array A dideklarasikan sebagai berikut : int A[5]; dengan alamat awal index berada di 0011 (H) dan ukuran memory type data integer = 2 Tentukan berapa alamat array A[3] ?
Rumus : @A[i] = B + (i – 1) * L Diketahui : @A[i] = A[3] B = 0011 (H) i = 3 L = 2 0 1 2 Penyelesaian : A[3] = 0011(H) + (3 – 1) * 2 = 0011(H) + 4 (D) = 0011(H) + 4 (H) = 0015(H) 3 4 A[1] A[2] A[3] A[4] A[5] 0011 0013 0015 0017 0019 4 Desimal = 4 Hexa
KONVERSI BILANGAN 1. Decimal adalah bilangan berbasis sepuluh yang terdiridari 0, 1, 2, 3, 4, 5, 6, 7, 8, dan 9 2. Hexadecimal adalah bilangan berbasis enam belas yang terdiri dari 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, dan F Tabel di bawah adalah contoh konversi bilangan Decimal, dan Hexadecimal
Contoh KONVERSI ANTAR BILANGAN Konversi Bilangan Decimal ke Hexadecimal Contoh 254 (10) =. . . . (16) Caranya dengan membagi bilangan tersebut dengan enam belas sampai bilangan tersebut tidak bisa lagi dibagi enam belas (kurang dari enam belas) dengan mencatat setiap sisa pembagian. 254 : 16 = 15 sisa 14 atau E (lihat tabel di atas) 15 : 16 = sisa 15 atau F (lihat tabel di atas) Jadi 254 (10) = FE (16) diurutkan dari sisa pembagian terakhir.
Cara lain mengenal alamat elemen array 1. Terdapat array 1 dimensi dengan char A[10]. Diketahui &A[0] = 1000(H). Berapa alamat array untuk posisi A[7]? Jawab : Tipe char = 1 byte Perpindahan=7 -0=7 elemen * 1 byte=7 Byte, jadi &A[7]=1000(H) + 0007 H=1007(H)
2. Terdapat array 1 dimensi dengan int A[10]. Diketahui &A[0] = 1000(H). Berapa alamat array untuk posisi A[7]? Jawab : Tipe int = 2 byte Perpindahan=7 -0=7 elemen * 2 byte =14 Byte, jadi &A[7]=1000(H) + 000 E(H)=100 E(H)
Array Dimensi Dua 2. ARRAY DIMENSI DUA (Two Dimensional Array) Sering digunakan dalam menterjemahkan matriks pada pemrograman. Deklarasi : Type_Data Nama_Variabel [Index 1] [index 2]; Misal : int A[3][2]; Penggambaran secara Logika : 0 0 1 2 1
Menentukan jumlah elemen dalam Array dimensi dua: n = Perkalian dari elemen sebelumnya (Elemen array) (untuk array dimensi dua & tiga) i=1 Contoh : Suatu Array X dideklarasikan sbb : int X[4][3]; maka jumlah elemen Array dimensi dua tersebut adalah : (4) * (3) = 12
PEMETAAN (MAPPING) ARRAY DIMENSI DUA KE STORAGE Terbagi Dua cara pandang (representasi) yang berbeda : 1. Secara Kolom Per Kolom (Coloumn Major Order/CMO) @M[i][j] = M[0][0] + {(j - 1) * K + (i - 1)} * L 2. Secara Baris Per Baris (Row Major Order / RMO) @M[i][j] = M[0][0] + {(i - 1) * N + (j - 1)} * L Keterangan : @M[i][j] = Posisi Array yg dicari, M[0][0] = Posisi alamat awal index array, i = Baris, j = kolom, L = Ukuran memory type data K = Banyaknya elemen per kolom, N = Banyaknya elemen per baris
Penggambaran secara logika Misal : int M[3][2]; (Array dengan 3 Baris & 2 Kolom) 0 1 2 Berdasarkan Cara pandang : 1. Kolom Per Baris (Row Major Order / RMO) M[0, 0] M[0, 1] M[1, 0] M[1, 1] M[2, 0] M[2, 1] Jumlah elemen per baris = 2 2. Baris Per Kolom (Coloumn Major O rder / CMO) M[0, 0] M[1, 0] M[2, 0] M[0, 1] Jumlah elemen per kolom = 3 M[1, 1] M[2, 1]
Contoh Pemetaan : Suatu Array X dideklarasikan sebagai berikut : Float X[4][3], dengan alamat index X[0][0] berada di 0011(H) dan ukuran type data float = 4 Tentukan berapa alamat array X[3][2] berdasarkan cara pandang baris dan kolom ? 0 0 1 1 2 2 3 3 index 1 1 0011(H) ? ? 2 2 index
Lanjutan Contoh Pemetaan : Penyelesaian : Secara Baris Per Baris (Row Major Oder / RMO) @M[i][j] = @M[0][0] + {(i - 1) * N + (j - 1)} * L X[3][2] = 0011(H) + {(3 – 1) * 3 + (2 – 1)} * 4 = 0011(H) + 28 (D) 1 C (H) = 0011(H) + 1 C (H) = 002 D(H) Keterangan : @M[i][j] = Posisi Array yg dicari, M[0][0] = Posisi alamat awal index array, i = Baris, j = kolom, L = Ukuran memory type data K = Banyaknya elemen per kolom, N = Banyaknya elemen per baris
Lanjutan Contoh Pemetaan : Penyelesaian : Secara Kolom Per Kolom (Coloumn Major Oder / CMO) @M[i][j] = @M[0][0] + {(j - 1) * K + (i - 1)} * L X[3][2] = 0011(H) + {(2 – 1) * 4 + (3 – 1)} * 4 = 0011(H) + 24 (D) 18 (H) = 0011(H) + 18 (H) = 0029(H) Keterangan : @M[i][j] = Posisi Array yg dicari, M[0][0] = Posisi alamat awal index array, i = Baris, j = kolom, L = Ukuran memory type data K = Banyaknya elemen per kolom, N = Banyaknya elemen per baris
Contoh program array dua dimensi #include<stdio. h> #include<conio. h> main() { int a[3][5]; for (int i=0; i<3; i++) { for (int j=0; j<5; j++) { printf("%x ", &a[i][j]); } printf("n"); } getch(); }
Contoh Array dimensi 2 adalah seperti program input matrik dengan hasil output seperti berikut : Nilai 1 nilai 2 70 70 80 60 60 70 70 75 Array hasil pendefinisian diatas dapat dinyatakan seperti di bawah ini :
#include <iostream. h> #include <iomanip. h> #include <conio. h> void isiarray (int arg[][2], int length) /*function isi array, angka[2] sebagai batasan kolom array*/ { for (int n=0; n<length; n++) for ( int i=1; i<=2; i++){ cout <<" nilai ke "<<i<<" "; cin >>arg[n][i] ; } } void cetakarray (int arg[][2], int length) /* function cetak array, angka[2] sebagai batasan kolom array */ { for (int n=0; n<length; n++) { for (int i=1; i<=2; i++) cout << arg[n][i] << " "<<endl; cout << "n"; } } main () { int nilai[5][2]; int y; cout<<"Masukkan jumlah baris data nilai (max 5) : "; cin>>y; isiarray (nilai, y); cetakarray (nilai, y); getch(); }
Latihan : 1. Suatu array A dideklarasikan sbb : int A[50] dengan alamat awal berada di 0011(H). Tentukan berapa alamat array A[20] dan A[40]? 2. Suatu array X dideklarasikan sbb : Float X[4][5] dengan alamat awal berada pada 0011(H). Tentukan berapa alamat array X[4][3], berdasarkan cara pandang baris dan kolom?
Latihan Soal Struktur Data (Pertemuan 1) 1. Tipe data int memiliki nilai jangkauan antara. . . a. -32768. . 32767 d. 32342. . 32768 b. 32766. . 32829 e. 32342… 32829 c. -32500. . 32500 2. Tipe Data yang terdiri dari aksara (simbol) yang meliputi digit numerik, alfabetik adalah tipe data? . . . a. Float d. Character e. String b. Integer c. BOOL
2. Tipe Data yang terdiri dari aksara (simbol) yang meliputi digit numerik, alfabetik adalah tipe data? . . . a. Float d. Character e. String b. Integer c. BOOL
3. void main() {. . (a). . x, y, z; clrscr(); cout<<"n input nilai X="; cin >>x; cout<<"n input nilai Y="; cin >>y; z = x + y; cout <<"n hasil penjumlahan ="<<z; getch(); } Type data yang tepat untuk (a) adalah. . a. Boolean b. String a. c. Char d. Integer e. Array
4. Terdapat Array : A [2][2] maka jumlah elemen Array tersebut adalah …… a. 2 d. 15 b. 4 e. 20 c. 22 5. Diketahui float A[5] dan lokasi awal terletak di alamat 00 F (H) , maka lokasi A[3] adalah …. . d. 01 B(H) a. 00 FC(H) e. 111(H) b. 017(H) c. 071(H)
5. Diketahui float A[5] dan lokasi awal terletak di alamat 00 F(H) , maka lokasi A[3] adalah …. . a. 00 FC(H) b. 017(H) c. 071(H) d. 01 B(H) e. 111(H) 1. Tipe data int memiliki nilai jangkauan antara. . . d. 32342. . 32768 a. -32768. . 32767 e. 32342… 32829 b. 32766. . 32829 c. -32500. . 32500
- Dari gambar diatas yang termasuk trail adalah
- Array 3 dimensi
- Apakah struktur sederhana dalam array
- Lga vs pga
- Jagged array vs multidimensional array
- Associative array vs indexed array
- Compare broadside and endfire array
- Arik adalah
- Diketahui suatu array segitiga memiliki 4 baris dan kolom
- Array 1 dimensi
- Photovoltaic array maximum power point tracking array
- Contoh aplikasi array dimensi dua adalah…..
- Tugas pertemuan 9 metode perancangan program
- Sumbu datar pada diagram batang menyatakan
- 4 pendekatan pendidikan multikultural
- Pertemuan multikultural
- Denah ruang pertemuan
- Pleonasme adalah
- Creat by
- Pada pertemuan kali ini kita
- Pertemuan ini
- Pertemuan 9
- Susunan acara pkh
- Spk latihan pertemuan 6
- Sel adalah pertemuan antara titik-titik dan titik-titik
- Sell adalah pertemuan antara
- Filosofi pertemuan
- Logo pertemuan
- Pertemuan permintaan barang dan jasa
- Peranan atau fungsi etika
- Pengertian model data
- Sekumpulan konsep konsep untuk menerangkan data
- Traversing algorithm in array
- An array is an example of a structured data type.
- Polynomial addition using array in data structure
- Data array in statistics
- Array data analysis
- Array is derived data type
- Representation of linear array in data structure
- Derived data structure
- Reviu konsep-konsep dalam perencanaan sdm
- Peta konsep dasar profesi