P3 Dasar Struktur Data TIF42/SIF42
A. Sidiq P. Prodi teknik Informatika & Prodi Sistem Informasi
Fakultas Teknologi Informasi Universitas Mercu Buana Yogyakarta
Pembahasan • • • • • • • • • • • •
Struktur Data Primitif Struct Array String Pointer Referensi Fungsi Rekursif Pengenalan Object Overloading Inheritance Template Memisahkan definisi kelas dan implementasi fungsi anggota
SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
2
Struktur Data Primitif • Tipe data primitif = struktur data primitif Tipe Data
Keterangan
char
karakter, contoh : A, f, 9, g, *
1
double
bilangan real (akurasi=15 digit), rentang 10-308 - 10308
48
float
bilangan real (akurasi=6-7 digit), rentang 10-38 - 1038
4
short
bilangan bulat, rentang -32768 - 32768
2
int
bilangan bulat, rentang -2147483648 - 2147483647
4
long
bilangan bulat, rentang -2147483648 - 2147483647
4
long long
bilangan bulat, rentang -9232372036854775808 9232372036854775807
8
bool
nilai logika (true or false)
1
SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
Memory (byte)
3
Bagaimana menentukan jenis tipe data yang akan digunakan ?
SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
4
Struct • Struct -> Struktur data yang menampung beberapa tipe data yang tipenya bisa berlainan Mahasiswa Bertipe struct NIM
Nama 1111050
Budiyanto
IPK
SKS 3.51
24
Mahasiswa : Nama SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
5
• Deklarasi : struct nama_structure { tipe_data anggota_structure-1; tipe_data anggota_structure-2; . . . tipe_data anggota_structure-n; }
tipe struct variabel bertipe struct
• Ex : struct Mahasiswa { char NIM [8]; char Nama [30]; float IPK; int SKS; } struct Mahasiswa mhs;
strcpy(mhs.Nama, "Budiyanto");
SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
6
String •
Tipe data yg disediakan C++ untuk mengolah deretan karakter/string.
•
Penggabungan string dapat menggunakan operator "+".
•
Jika menggunakan string maka fungsi strcpy() tidak perlu digunakan. string
Definisi :
Variabel
string Nama_String; string Nama; Nama = "DnD"+""+SandyRa";
mhs.Nama = "DnD"+""+"SandyRa";
strcpy("mhs.Nama = "DnD SandyRa");
char[11]
SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
7
char [11]
string
#include
#include using namespace std;
#include #include <string> using namespace std;
int main() { char mhs[2][11];
int main() { string mhs[2];
}
strcpy(mhs[0], "Budiyanto"); strcpy(mhs[1], "Nanda");
mhs[0]="Budiyanto"; mhs[1]="Nanda";
for (int q=0; q<2;q++){ cout << q+1 << ". " << mhs[q] << endl; }
for (int q=0; q<2;q++){ cout << q+1 << ". " << mhs[q] << endl; }
return=0;
return=0; }
SQ - http://sidiq.mercubuana-yogya.ac.id - [email protected]
8
Pointer • Pointer = petunjuk • Pointer merupakan : – Tipe data yang digunakan untuk menunjuk ke suatu data/object lain. – Variabel pointer berisi alamat suatu data (bukan data). Pointer
Varieble Q
11 Alamat variable
Alamat variable
SQ - http://sidiq.mercubuana-yogya.ac.id - [email protected]
9
SQ - http://sidiq.mercubuana-yogya.ac.id - [email protected]
10
• Operator : – Operator & • Bersifat unary (hanya memerlukan satu operand saja). • Menghasilkan alamat dari operandnya.
– Operator * • Bersifat unary (hanya memerlukan satu operand saja). • Menghasilkan nilai yang berada pada sebuah alamat.
SQ - http://sidiq.mercubuana-yogya.ac.id - [email protected]
11
• Deklarasi
TipePointer *NamaPointer;
merupakan tipe data yg akan digunakan untuk mendeklarasikan variabel pointer. merupakan identifier yg digunakan untuk memberikan identitas/nama terhadap veriable pointer menunjukkan bahwa variable tersebut merupakan pointer.
• Contoh Int
*Pointer_1;
SQ - http://sidiq.mercubuana-yogya.ac.id - [email protected]
12
•
Keterangan : – int *x_pointer → variable x_pointer tidak berisi nilai (tipe data : integer) – variable x_pointer → berisi suatu alamat di memori. – apabila variable x_pointer diberi nilai integer (misal = 11), akan terjadi kesalahan. x_pointer = 11; z=*x_pointer;
SQ - http://sidiq.mercubuana-yogya.ac.id - [email protected]
13
Evaluasi 1. Buatlah sebuah program C++ dengan deklarasi berupa array yang selanjutnya diakses dengan array dan pointer. Dengan contoh output sebagai berikut :
SQ - http://sidiq.mercubuana-yogya.ac.id - [email protected]
14
2. Perhatikan program berikut :
• Pertanyaan : a. Kompilasi dan eksekusi program tersebut (sertakan NIM & Nama di print out) b. Analisislah dan ceritakan menurut pemahaman anda program tersebut, kenapa menghasilkan program tersebut.
SQ - http://sidiq.mercubuana-yogya.ac.id - [email protected]
15
• Note : – Tugas source code ditulis tangan, output di print – Dikumpulkan hari senin 14 Oktober 2014
SQ - http://sidiq.mercubuana-yogya.ac.id - [email protected]
16
Referensi • Munir. Rinaldi, “Algoritma & Pemrograman Dalam Bahasa Pascal dan C”, 2007, Bandung : Penerbit Informatika. • Utami, E., Raharjo, S., Sukrisno, "Struktur Data Konsep & Implementasinya Dalam Bahasa C & Free Pascal di GNU/Linux", 2007, Yogyakarta : Graha Ilmu. • Sianipar, R.H., Wiryajati, I.K., Mangiri, H.S., "Pemrograman & Struktur Data C", 2013, Bandung : Penerbit Informatika. • Hasbi, M., "Struktur Data dan Algoritma Dalam Pemrograman Turbo Pascal", 2003, Yogyakarta : Gava Media.
SQ - http://sidiq.mercubuana-yogya.ac.id - [email protected]
17
SQ - http://sidiq.mercubuana-yogya.ac.id - [email protected]
18
Thanks 4 Participating in My Class C U Next Week SQ - http://sidiq.mercubuana-yogya.ac.id - [email protected]
19