Struktur.

Slides:



Advertisements
Presentasi serupa
ARRAY.
Advertisements

Pemrograman Berorientasi Objek (Project)
Pointer.
Algoritma dan Struktur Data Daniel Riano Kaparang.
Struktur.
Struktur.
Algoritma & Struktur Data Pointer Evangs Mailoa.
Alokasi Memori Yuliana Setiowati.
Fungsi.
Pemrograman Dasar Pointers.
Algoritma & Struktur Data Linked List Evangs Mailoa.
POINTER (VAR.PENUNJUK)
Pertemuan 22 POINTER Bag.2 Dasar Pemrograman Renni Angreni, S.Kom.
KONSTRUKTOR & DESTRUKTOR
LINKED LIST by Yohana N.
Algoritma dan Struktur Data
STRUCT OF ARRAY Apabila hendak menggunakan 1 struct untuk beberapa kali, ada 2 cara : Deklarasi manual #include typedef struct Mahasiswa { char.
Friend. Adalah fungsi bukan anggota kelas yg dapat mengakses anggota kelas. Secara umum friend berguna jika terdapat suatu operasi yg hendak mengakses.
Pemrograman Berorientasi Obyek1 Sub Pokok Bahasan Pointer. Reference. Function Passing Parameter by Value, by Reference, by Pointer.
POINTER.
LINKED LIST.
Teknik Pemrog. Terstruktur 2
POINTER Bag.2 Pertemuan 22 Dibuat oleh : Renni Angreni, S.Kom. Triana Elizabeth, S.Kom.
Fungsi, Array dan String
03 Elemen Dasar Bahasa Java
1 Pertemuan 18 Template Matakuliah: T0456 ~ Algoritma dan Metode Object Oriented Programming Tahun: 2005 Versi: 5.
Pemrograman Berorientasi Objek C++ Object Oriented Programming Rachmansyah, S.Kom
Kelas A dapat memiliki referensi ke obyek dari kelas- kelas lain sebagai anggota. Kadang-kadang disebut sebagai hubungan “has-a”. Sebagai contoh, sebuah.
// Contoh program c++ dengan fungsi template
Pertemuan 12 Array (Larik) & struct Erna Sri Hartatik
ARRAY Array merupakan struktur data yang sering digunakan dalam pemrograman untuk menyimpan data yang akan diolah.
Linked List & POINTER Pertemuan POINTER
12.Objek S. Indriani L, M.T 12. Objek.
Pemrograman Terstruktur
Tipe Data By Serdiwansyah N. A..
Pemrograman Visual I Outline: ARRAY Array multidimensi
8. Singly Linear Linked List
Algoritma dan Struktur Data 1 pertemuan 4
Pertemuan 10 Inheritance Lanjutan
Informatique Engineering Ahmad Dahlan University May 17, 2004
PERTEMUAN 3 KONSEP TIPE DATA, OPERATOR DAN IDENTIFIER
KONSEP TIPE DATA, OPERATOR DAN IDENTIFIER
Algoritma dan Struktur Data
10. Kelas S. Indriani L, M.T.
S T R U K T U R.
KELOMPOK 9 ROBBY SETIAWAN AKBAR BAI ALIM WASSAHUA
TEAM 1 Cut Hayatul Wardani ( ) Saputri Phonna ( ) Azhary (140502)
FUNCTION Fungsi (Function) merupakan sekumpulan instruksi yang membentuk satu unit serta memiliki nama. Fungsi digunakan.
Struktur Data (Data Structure) – IS 2313
Operator overloading.
Pointer FARID WAJDI YUSUF.
Pertemuan 2 ARRAY DIMENSI 1 & 2.
Sumber : repository.binus.ac.id/content/T0454/T ppt
Elemen-elemen Dasar Pada Bahasa C++
Tipe Data Dasar Variabel dan Konstanta
As’ad Djamalilleil Array (Larik) As’ad Djamalilleil
QUIS Algoritma Pemrograman I
S. Indriani Lestariningati, M.T
Algoritma dan Struktur Data
~ PERTEMUAN 4 KONSEP TIPE DATA ~
Algoritma dan Struktur Data
Algoritma dan Struktur Data
Generic Data Type Pertemuan 25
KONSEP TIPE DATA, OPERATOR DAN IDENTIFIER
CLASS.
Materi 9 Pembahasan CLASS Dalam C++
Konstruktor dan Destruktor
Variable Static & Linked List
Inheritance (pewarisan)
Defri Kurniawan POINTER Defri Kurniawan
Transcript presentasi:

Struktur

Struktur Digunakan untuk mengelompokkan data dengan type yg berbeda dalam beberapa bahasa pemrograman biasa nya disebut sebagai record contoh : struct data_tanggal { int tahun ; int bulan ; int tanggal ; } ; data_tanggal adalah nama dari struktur yg di buat dan tahun bulan tanggal disebut sebagai anggota dari struktur data_tanggal

Struktur Untuk mendefinisikan struct variable-name di gunakan cara seperti mendefinisikan typa data data_tanggal tgl_lahir data_tanggal adalah nama struktur nya tgl_lahir adalah variabel-name dari data_tanggal jadi tgl_lahir mempunyai 3 anggota yaitu : tahun,bulan,tanggal untuk mengakses nya di gunakan dot operator seperti tgl_lahir.tahun tgl_lahir.bulan tgl_lahir.tanggal

Struktur dapat pula suatu struktur berada dalam struktur misal struct data_pegawai { int nip ; char nama[25]; data_tanggal tgl_lahir; } rec_peg ; jadi untuk mengakses nya rec_peg.nip rec_peg.nama rec_peg.tgl_lahir.tahun rec_peg.tgl_lahir.bulan rec_peg.tgl_lahir.tanggal

Struktur dan Fungsi by value struct koordinat { int x ; int y ; }; void tampilkan_posisi(koordinat posisi) { cout << "posisi x = " << posisi.x << endl; cout << "posisi y = " << posisi.y << endl; } int main() koordinat posisi; posisi.x = 27; posisi.y = 55; tampilkan_posisi(posisi); return 0;

Struktur dan Fungsi by reff struct koordinat { int x ; int y ; }; void ubah_posisi(koordinat &posisi) { posisi.x = 51; posisi.y = 85; } int main() { koordinat posisi; // koordinat adalah type datanya posisi.x = 12; posisi.y = 34; cout << "awal "<<posisi.x<<" "<<posisi.y<<endl; ubah_posisi(posisi); cout << "akhir "<<posisi.x<<" "<<posisi.y<<endl; return 0; }

Tugas Baca Union digunakan untuk membagi memory untuk digunakan bersama Baca enum untuk memberi nilai pada suatu data yg jumlahnya terbatas

Managemen memori dinamis Pengalokasian memori dalam suatu program dapat dilakukan secara dinamis, Pada saat program dijalankan, suatu memori dapat dipesan utk digunakan, dan jika sudah selesai dapat dilepaskan kembali. Hal ini sangat bermanfaat jika kita ingin menggunakan struktur data link list dan tree Statement yg di gunakan adalah new dan delete

Tata letak memori Pada saat program dijalankan, program akan menempati sejumlah memori yg bebas di bagian heap. Memori di bagian inilah yg nantinya akan di gunakan untuk pengalokasian memori dinamis. Ukuran memori ini sangat bervariasi, tergantung pada model memori yg digunakan compiler small, tiny atau huge, juga sistem operasi yg digunakan MEMORY stack heap data kode

Managemen memori dinamis Misal didefinisikan int *ptr_i; //pointer bertype integer setelah pendefinisian pointer belum menunjuk suatu lokasi tertentu, agar supaya dapat menunjuk pada suatu lokasi di heap, harus dialokasikan lebih dahulu suatu tempat di heap dengan cara ptr_i = new int

penulisan int *ptr_i ; ptr_i = new int; Atau int *ptr_i = new int Penggunaan *ptr_i = 50 ; //mengisi var dinamis cout << “isi *ptr_i = “ << *ptr_i << endl;

Contoh array double *acak = new double [5] ; // definisikan array randomize(); // mengisi data secara random for (int i=0 ; i < 5 ; i ++) *(acak+i) = random (500); // menampilkan elemen array cout << *(acak + i) << endl;

Contoh string char *kalimat ; kalimat = new char [25]; cout << “masukkan kalimat “; cin.getline(kalimat,25); cout <<“kalimat yg ditulis : “ << kalimat ;

Memori heap penuh Pada suatu keadaan dimana kita tidak lagi dapat menjalankan program disebabkan penuhnya memori heap, apa yg harus dilakukan? Gunakan fungsi set_new_handler() ada di library <new.h> Tujuannya utk menggunakan memory bersama

Membuat memori penuh char *banjir; do { banjir = new char [15000]; if (banjir != NULL) cout << “memori sebesar 15000 berhasil dialokasikan” << endl; } while (banjir != NULL); Program akan berjalan sampai memori heap penuh dengan pesan “ Abnormal Program termination”

pencegahan Tambahkan suatu fungsi untuk menampung jika terjadi error void kesalahan_mem() { cerr << “memori habis “ << endl; exit (1); } Dan tambahkan pada main program set_new_handler(kesalahan_mem);

void kesalahan_mem() { cerr << "memori habis !! " << endl; exit(1); } int main() char *banjir; long ukuran; set_new_handler(kesalahan_mem) ; cout << "memori yg akan dialokasikan " ; cin >> ukuran; cout << endl; banjir = new char [ukuran]; cout << "pengalokasian memory berhasil " << endl; return 0;

Membebaskan memori Setelahsuatu var dinamis tidak di perlukan lagi, var dinamis dapat dihapus, sehingga memori dapat di gunakan var lain dengan statement delete var-ptr

contoh int main() { double *ptrd = new double (123.45); float *ptrf = new float (3.14); int *ptri = new int (6) cout << ptrd << endl; cout << ptrf << endl; cout << ptri << endl; // menghapus alokasi delete ptrd; delete ptrf; delete ptri;

Struktur dimnamis struct data_pegawai { int nip; char nama[25]; long int gaji; }; Mendefinisikan struktur dimanis data_pegawai *rec_peg; rec_peg = new data+pegawai;

Class Kelas merupakan struktur data dari objek yg mirip dengan struktur struct buku { char judul[20]; char pengarang[20]; int jumlah; } ; class Buku public :

#include <iostream.h> #include <string.h> struct buku { char judul[20]; char pengarang[20]; int jumlah; } ; int main() { buku novel ; // pendefinisian var struktur strcpy(novel.judul, "Ramayana"); strcpy(novel.pengarang, "Narayan"); novel.jumlah = 12; cout << novel.judul << endl; cout << novel.pengarang << endl; cout << novel.jumlah << endl; return 0; }

#include <iostream.h> #include <string.h> class Buku { public : char judul[20]; char pengarang[20]; int jumlah; } ; int main() { Buku novel ; // pendefinisian var struktur strcpy(novel.judul, "Ramayana"); strcpy(novel.pengarang, "Narayan"); novel.jumlah = 12; cout << novel.judul << endl; cout << novel.pengarang << endl; cout << novel.jumlah << endl; return 0; }

#include <iostream.h> #include <string.h> class Buku { private : char judul[20]; char pengarang[20]; int jumlah; public : void inisialisasi(char *Judul, char *Pengarang, int Jumlah) { strcpy(judul, Judul); strcpy(pengarang, Pengarang); jumlah = Jumlah; } void info() cout << "Judul : " << judul << endl; cout << "Pengarang : " << pengarang << endl; cout << "Jumlah : " << jumlah << endl; } ; // end class int main() { Buku novel ; // pendefinisian var struktur novel.inisialisasi("Ramayana", "Narayan", 12); novel.info(); return 0;

Class Penggunaan private digunakan pada kelas untuk memproteksi anggota-anggota tertentu pada kelas, agar tidak dapat diakses di luar kelas secara langsung

Contoh perhitungan luas segi empat class area { private: float a, b, c; public: float x, y ; area (float x, float y) //konstruktor {a = x; b = y; cout << "harga a : " << a << endl; cout << "harga b : " << b << endl << endl; } ; // fungsi utk cetak hrg parameter ~area() //destruktor { cout << "Stop " << endl; }; void hasil () { c = a * b; cout << "Hasil : " << c << endl; } int main() { area luas(2, 4.5); luas.hasil(); return 0; }

Membuat header // penulisan class sebagai header // harus didahului dengan statement #ifndef // dan diakhiri dengan #endif // disini digunakan konstruktor // nama konstruktor harus sama dengan nama class // konstruktor tidak mempunyai nilai balik termasuk tanpa void // dan harus diletakkan pada area public #ifndef __luas #define __luas .. #endif

#ifndef __luas #define __luas class area { private: float a, b, c; public: float x, y ; area (float x, float y) //konstruktor { a = x; b = y; cout << "harga a : " << a << endl; cout << "harga b : " << b << endl << endl; } ; // fungsi utk cetak hrg parameter ~area() //destruktor cout << "Stop " << endl; }; void hasil () { c = a * b; cout << "Hasil : " << c << endl; } #endif

// Program untuk menghitung luas segi empat // dengan menggunakan class #include <iostream.h> #include <math.h> #include "luas.h" int main() { area luas(2, 4.5); luas.hasil(); return 0; }

Konstruktor dan Destruktor

Konstruktor adalah suatu fungsi anggota yg mempunyai nama yg sama dengan nama class. kegunaan nya : - mengalokasikan ruang bagi sebuah object - memberi nilai awal thd anggota data sebuah object - membentuk tugas tugas umum lainnya contoh: class kompleks { private: double re; double im public: Kompleks(); void info(); };

Konstruktor Nama konstruktor sama dengan nama class Konstruktor tidak mempunyai nilai balik (bahkan tanpa void) Konstruktor harus diletakkan di bagian public