Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Tipe Data Terstruktur Pengantar Logika dan Teknik Pemrograman Politeknik Negeri Jakarta Th.2012 Risna Sari

Presentasi serupa


Presentasi berjudul: "Tipe Data Terstruktur Pengantar Logika dan Teknik Pemrograman Politeknik Negeri Jakarta Th.2012 Risna Sari"— Transcript presentasi:

1 Tipe Data Terstruktur Pengantar Logika dan Teknik Pemrograman Politeknik Negeri Jakarta Th.2012 Risna Sari

2 Pengantar Variabel tunggal hanya bisa menyimpan satu data tunggal, lalu bagaimana jika datanya banyak? Struktur data digunakan untuk mempermudah implementasi algoritma. Stuktur data adalah sejumlah data yang berhubungan disusun dalam satu struktur. Tipe data terstruktur: – Array – Struct – Union

3 Array Array (larik) adalah penampung sejumlah data sejenis(homogen) yang menggunakan satu identifier. Elemen array diakses melalui indeks (subscript) dari nol sampai n-1 (n=jumlah elemen array). Pengolahan data array per elemen. Elemen array dapat diakses secara langsung (random). Berdasarkan banyaknya indeks array dibagi menjadi satu dimensi,dua/ multidimensi array

4 Array Satu Dimensi Array Satu Dimensi: menggunakan satu buah indeks. Deklarasi data_type array_name [size_elemen]; Deklarasi dengan NILAI AWAL data_type array_name [size_elemen]= {nilai1,nilai2, nilai3,…, nilaiN} int nilai[4]; char huruf[]= {‘a’,’b’,’c’};

5 Alamat Elemen Array Satu Dimensi Dari deklarasi variabel array pada slide sebelumnya, maka penyimpanan nilai pada memory seperti gambar disamping ini. Perhatikan bahwa array tidak langsung diinisialisasi setiap kali dipesan. Array bilangan tidak diNOLkan, array karakter tidak dijadikan spasi melainkan isi memory apa adanya.

6 C++: Implementasi Array Satu Dimensi

7

8 Implementasi Array 1 Dimensi

9 Array Dua Dimensi Array dua dimensi merupakan gabungan dari array-array satu dimensi. Array dua dimensi ini, misalnya mengilustrasikan sebuah bangunan yang terdiri dari tiga lantai, dan masing-masing lantai terdiri dari 7 ruangan. Disebut array dua dimensi, karena untuk menunjuk sebuah ruangan, diperlukan dua penunjuk yaitu nomor lantai dan nomor ruangan. Dari ilustrasi diatas terlihat,array terdiri dari 3 baris dan 7 kolom, dan jumlah elemennya = 3x7 = 21 elemen. Diebut juga MATRIKS,karena terdiri dari baris dan kolom

10 Menyiapkan Array Dua Dimensi Untuk menyiapkan array dua dimensi pada deklarasi bisa ditulis dengan beberapa pilihan yaitu: 1.Array numerik dengan isinya 2.Array numerik tanpa isinya 3.Array character dengan isinya 4.Array character tanpa isinya 5.Array character/ tidak ditentukan jumlah baris dan atau kolomnya

11 Implementasi Array 2 Dimensi

12 Lanjutan implementasi… Dari program yang tercetak terlihat bahwa array tercetak seperti gambar berikut: Di dalam memory ternyata tersusun “berderet kesamping”, dikatakan bahwa komputer menggunakan sistem Row Major Order(Urutan yang mengutamakan baris), apabila sistem menggunakan sistem column Major Order, maka urutan penyimpanannya mengutamakan kolom. 06

13 Penyimpanan Array Dua Dimensi Row Major Order Disimpan pada memory dengan mengutamakan baris. Dari contoh program pada slide sebelumnya, maka penyimpanan dimulai dari baris pertama,lalu baris kedua. Column Major Order Disimpan pada memory dengan mengutamakan kolomnya. Maka penyimpanan disimpan dari kolom pertama kemudian kolom kedua dan seterusnya.

14 Pengisian Array Dua Dimensi A[1][2]=17; //Atau I=1; J=2; A[I][J]=17; //Atau I=1; J=2; X=17; A[I][J]=X; Penggalan algoritma mengisi nilai 17 pada array A[1][2]. Penggalan algoritma mengisi nilai pada array A dengan nilai yang sama pada tiap barisnya. I=0; While( I<=2 ) { J=0; while (J<=4) { A[I][J] = J; J++; } I++; } Penggalan algoritma mengisi nilai pada array A dengan nilai yang berbeda pada tiap baris dan kolomnya. I=0; While( I<=2 ) { J=0; while (J<=4) { A[I][J] = I*5 + J+1; J++; } I++; }

15 Latihan Kelas Buatlah Penggalan Algoritma Untuk Array yang terbentuk Sebagai Berikut: Array A Array B Array C Array D Array E

16 Pointer Pointer dilihat dari fungsinya, diartikan sebagai suatu nilai yang menunjuk alamat suatu lokasi memori. Lokasi memori: bisa diwakili variabel atau tidak (lokasi bebas dalam memori). Variabel pointer: nilai pointer yang ditampung dalam variabel. (Nilai alamat suatu lokasi) Selanjutnya, Variabel pointer hanya disebut pointer.

17 Implementation of pointers “ It is common for programmers (and even textbook writers) to equate pointers with addresses, but this is a mistake. A pointer is a high level concept: a reference to an object. An address is a low-level concept: the location of a word in memory. Pointers are often implemented as addresses, but not always. On a machine with a segmented memory architecture, a pointer may consist of a segment id and an offset within the segment. In a language that attempts to catch uses of dangling references, a pointer may contain both an address and an access key. “ Implementation of pointers “ It is common for programmers (and even textbook writers) to equate pointers with addresses, but this is a mistake. A pointer is a high level concept: a reference to an object. An address is a low-level concept: the location of a word in memory. Pointers are often implemented as addresses, but not always. On a machine with a segmented memory architecture, a pointer may consist of a segment id and an offset within the segment. In a language that attempts to catch uses of dangling references, a pointer may contain both an address and an access key. “

18 Pointer & Array Secara internal array diterjemahkan ke dalam bentuk pointer. Array adalah pointer constant ke elemen pertama array, sehingga untuk memanipulasi elemen array dapat juga dilakukan dengan pendekatan pointer. Karena secara fisik elemen-elemen array diletakan berurutan dalam memory. Today the use of pointer arithmetic is mainly a matter of personal taste: some C programmers consider pointer-based algorithms to be more elegant than their array-based counterparts. Certainly the fact that arrays are passed as pointers makes it natural to write subroutines in the pointer style.

19 Pointer pada C++ Contoh-01 int A= 25, *P; (1) P = &A; (2) cout<<*P; (3) *(array_name + expression) array_name tanpa indeks ekuivalen dengan alamat elemen pertama array,maksudnya arr = &arr[0]. (1)Instruksi : int A =25,*P; A dengan tipe data integer, isi=25. P dengan tipe POINTER to integer (ditulis : “int*), untuk menyimpan alamat data yang bersifat integer. (1)Instruksi : P = &A; mengisi pointer P dengan alamat variabel A, disebut pointer P menunjuk variabel A. bila alamat A=H21EC, maka isi pointer P atau nilai pointer P = H21EC (1)Dengan cout << *P; mencetak isi variabel yang alamatnya ditunjuk oleh pointer P. sedangkan variabel yang alamatnya sedang ditunjuk oleh pointer P adalah variabel A.

20 Lanjutan … Contoh-02 Contoh lain: Baca E-Book C++ Programming halaman mulai

21 Struct/ Records(Structure) Adalah suatu struktur data yang menggabungkan beberapa data yang berbeda tipe(heterogen) tetapi berkaitan. Misal: data NIM,nama dan IPK seorang mahasiswa. Struct memiliki istilah berbeda-beda dalam bahasa pemrograman: – Algol 68, C++ dan C menggunakan istilah “structure” dalam recordnya – Fortran 90 menggunakan istilah “types”

22 Syntax & Operation struct [type_name] { type mvar_name[,mvar_name, … ]; [type mvar_name [,mvar_name, … ];] } [svar_name]; //Keterangan: type_name adalah nama tipe struct. mvar_name adalah nama member atau field. svar_name adalah nama variabel struct. Deklarasi pada variabel struct dapat dilakukan pada saat deklarasi tipe struct(seperti diatas) Atau cara terpisah seperti dibawah ini: struct type_name svar_name [,svar_name, … ]; struct type_name svar_name = {value1, value2, value3, …, value_n};

23 Struct dalam C++ // Deklarasi Variabel struct struct { char nim[11]; char nama[26]; float ipk; }akad_mhs; // Deklarasi Variabel struct, apabila struct t_akad akan digunakan oleh variabel lain Struct t_akad { char nim[11]; char nama[26]; float ipk; }; struct akad_mhs;

24 Struct dalam C++: Lanjutan … // Deklarasi Variabel struct secara terpisah struct t_akad { char nim[11]; char nama[26]; float ipk; }; struct t_akad akad_mhs; // inisialisasi variabel struct struct t_akad { char nim[11]; char nama[26]; float ipk; }; void main() { struct t_akad akad_mhs1; struct t_akad akad_mhs2 ={“092094”.”Andi Jabar”, 3.55};... }

25 Struct dalam C++: Lanjutan … Untuk mengaksesf field struct gunakan dot operator yaitu nama variabel struct diikuti titik dan nama field. //Akses Field struct struct t_akad { char nim[11]; char nama[26]; float ipk; }; void main() { struct t_akad akad_mhs;... cin >> akad_mhs.nim; strcpy(akad_mhs.nama, “Budi Atmaja”);... }

26 Union/ Variant Records Union digunakan untuk kongsi memori, dimana nantinya suatu lokasi memori dapat ditempati oleh dua atau beberapa variabel dengan masing-masing tipe data yang berbeda. A variant record provides two or more alternative fields or collections of fields, only one of which is valid at any given time.

27 Syntax & Operation union [type_name] { type mvar_name; [type mvar_name; … ] } [uvar_name]; //Keterangan: type_name adalah nama tipe union. mvar_name adalah nama-nama variabel yang kongsi memori, min. 2 variabel. uvar_name adalah nama variabel union. // Union dari int dan char union t_bil { unsigned int di; unsigned char dc[2]; } bil_x; Elemen Union dapat diakses dengan bentuk variabel_union.nama_elemen seperti: bil_x.di atau bil_x.dc[1]

28 String String adalah kumpulan karakter ASCII. Dalam bahasa C terdapat dua cara mendeklarasikan variabel string yaitu: – Pointer to character – Array of character // deklarasi sebuah pointer yang akan berisi alamat awal sebuah string char*string_id; // deklarasi sebuah array of character char string_id[constant];

29 Manipulasi Array of Character // Fuction menyalin string dari src ke dest char strcpy(char*dest, const char*scr); // Function mengembalikan angka yang menyatakan panjang string s tanpa menghitung null character pada ujung string char string_id[const char*s]; // Function ini membandingkan string s1 dan s2 int strcmp(const char*s1, const char*s2); // Function ini membandingkan string s1 dan s2 tanpa membedakan huruf kecil int strcmpi(const char*s1, const char*s2); // Function ini menambahkan string src ke string dest char strcat(char*dest, const char*scr);

30 Linked List Dibahas pada pertemuan selanjutnya.

31 Files Input Output & Sequential File Dibahas pada pertemuan selanjutnya.

32 Latihan Barang Nilai Jual Triwulan ke - Total Nilai Penjualan 1234 Televisi Sound System Kipas Angin Penyejuk Udara Kulkas Elektronik Dapur Total Data penjualan triwulanan barang elektronik suatu perusahaan disajikan dalam bentuk tabel diatas. Untuk menampung nilai penjualan triwulanan berbagai komponen elektronik tersebut gunakan sebuah array dua dimensi berukuran 6 baris dan 4 kolom. Buat algoritmanya!


Download ppt "Tipe Data Terstruktur Pengantar Logika dan Teknik Pemrograman Politeknik Negeri Jakarta Th.2012 Risna Sari"

Presentasi serupa


Iklan oleh Google