BAB X. Struct Dalam C++, kita dapat membuat sebuah tipe data baru. Maka penulisan variabel baru kita akan menjadi:

dokumen-dokumen yang mirip
Achmad Solichin.

Pointer dan Referensi

Kurikulum Qt. Chapter 5 Pointer dan References. Agenda. Apa itu Pointer? Memory Komputer. Mengambil Alamat Memory dari Variabel

MODUL. Pointer. Modul Praktikum C++ Dasar Pemrograman Komputer JURUSAN TEKNIK ELEKTRO FAKULTAS TEKNIK

PEMROGRAMAN BERORIENTASI OBJEK. Tipe Data. Budhi Irawan, S.Si, M.T

Komentar, Identifier, Konstanta dan Variabel

Function Template Pertama - tama mari kita membahas tentang function template.untuk itu marilah kita perhatikan contoh berikut.

PEMROGRAMAN BERORIENTASI OBJEK

PEMROGRAMAN BERORIENTASI OBJEK STRUCTURE & CLASS

BAB VI OBYEK DAN KELAS

BAB VI OBYEK DAN KELAS

Inheritance dan Polimorfisme

P3 Dasar Struktur Data TIF42/SIF42

BEBERAPA KEGUNAAN FUNGSI IF DALAM EXCEL

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LABSHEET ALGORITMA DAN STRUKTUR DATA

Michael Lionardi

Kisi-Kisi Ujian Akhir Semester Algoritma dan Pemrograman Lanjut

Chapter 9 Operator Types dan Operator Overloading

MODUL V POINTER DAN STRING

Penggunaan Private dan Public dalam C++

Konsep Dasar Pemrograman Dan Pengenalan C++

Pendahuluan Pemrograman Mikrokontroler

Membuat dan Menggunakan Class

Senarai berantai. linked list. Pertemuan keenam Struktur data st3telkom.ac.id. by : tenia wahyuningrum & Sisilia Thya Safitri

PEMROGRAMAN BERORIENTASI OBJEK OBJECT

PENGENALAN DAN PENERAPAN OOP PADA C++

PEMROGRAMAN BERORIENTASI OBJEK KONSEP PBO

LAPORAN RESMI. TIPE DATA ABSTRAK (TYPEDEF dan STRUCT)

Dasar Pemrograman Java

MODUL 1. Class, Object, Constructor dan Method

CLASS, METHOD DAN MODIFIER

LIST. Dewi Sartika, M.Kom

C V.S. C++ Oleh : Rasim

Achmad Solichin.

ilmu bahasa pemrograman ilmu c++ Copyright izie ilmu c++

M.Octaviano Pratama

OBJECT, CLASS DAN METHOD. 1. Mengetahui pengertian dari objek & class 2. Dapat membuat program sederhana dari java dengan menggunakna objek dan class

Pengenalan OOP. Object-Oriented programming (OOP) Menitikberatkan pada konsep object sebagai elemen dasar dari program.

Pemrograman Berorientasi Obyek (C++) Departemen Ilmu Komputer FMIPA IPB 2013

Kurikulum Qt. Chapter 8 - Polymorphism. Polimorfisme. Problema Pewarisan Tunggal (Single Inheritance)

Kurikulum Qt. Chapter 4 Function. Fungsi

ALGORITMA DAN PEMROGRAMAN 2. 3 SKS By : Sri Rezeki Candra Nursari

SUB PROGRAM P E N G A N TA R P R O G R A M S T U D I. Institut Teknologi Sumatera

Algoritma dan Struktur Data Praktikum 3. Pointer

BAHASA PEMROGRAMAN C

MODUL 1. CLASS, OBJECT, CONSTRUCTOR DAN METHOD

LINKED LIST. TUJUAN UMUM Memahami konsep linked list TUJUAN KHUSUS

pada program di atas, akan ditampilkan alamat memori dari variabel x, bukan nilai x.

ALGORITMA DAN STRUKTUR DATA POINTER DAN FUNCTION

FUNGSI & PROSEDUR. Pertemuan ke-12 dan 13

Minggu ke-10 Pointer. Pendahuluan. Objektif. Bahan Bacaan

KELAS DAN OBJEK KELAS

Pointer. ted = &andy;

ALGORITMA DAN STRUKTUR DATA

Program pendek dan simple = mudah dihandle. Program besar, banyak dan kompleks = tidak

Function. Function adalah satu blok instruksi yang dieksekusi ketika dipanggil dari bagian lain dalam suatu program. Format dari function :

Bab 8. Dasar-Dasar OOP

Modul II Object Oriented Programming

ABSTRACT DATA TYPE (ADT) Dr. Taufik Fuadi Abidin, M.Tech Irvanizam Zamanhuri, M.Sc

INF-103 Pemrograman II VECTOR & STRING. Dr. Taufik Fuadi Abidin, M.Tech Irvanizam Zamanhuri, M.Sc. Program Studi Informatika FMIPA UNIVERSITAS KUALA

MODUL 7 FUNGSI A. Tujuan. B. Petunjuk. C. Dasar Teori

Bahasa Pemrograman :: Object Oriented Programming

Game Technology Design Course College of Multi Media Yogyakarta Spring Tri Anggraeni, S.Kom., M.Sc.

Class C++ Dasar. Harimurti Widyasena Deklarasi dan Definisi

STRUKTUR DASAR PEMROGRAMAN

Spesifikasi: Ukuran: 14x21 cm Tebal: 225 hlm Harga: Rp Terbit pertama: Februari 2005 Sinopsis singkat:

LANGKAH-LANGKAH MENULISKAN PROGRAM DALAM TURBO C++

PENGENALAN FUNGSI C++

Contoh function 1 : Output : // function example The result is 8 #include <iostream.h>

E STRUKTUR DATA & E PRAKTIK STRUKTUR DATA. Pointer & Function. Alfa Faridh Suni, S.T., M.T. PTIK

POINTER. Tim Alpro Teknik Informatika

Modul Praktikum Pemrograman Terstruktur LEMBAR PENYUSUN. Dosen Pengampu : Bambang Hermanto, M.Cs. Penyusun : Tim Asisten Pemrograman Terstruktur

PENGANTAR KOMPUTER & SOFTWARE II. Array (Part II) Tim Pengajar KU Institut Teknologi Sumatera

Pemrograman Lanjut. Constructor. Aryo Pinandito, ST, M.MT Team Teaching Pemrograman Lanjut

Memory Management 3 : Advance Pointers & References. Pertemuan 8

Konsep Array dalam PBO

BAB IV HASIL PENELITIAN DAN PENERAPAN

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LABSHEET ALGORITMA DAN STRUKTUR DATA

SOAL C++ Created by Yuli Astuti,S.Kom Copyright 2009

Part 2 - Algoritma & Pemrograman Konsep dasar Pemrograman

Bahasa C-M6 By Jamilah, Skom 1

OVERLOADING, CONSTRUCTOR DAN DESTRUCTOR. Dewi Sartika, M.Kom

Dasar-dasar C/C++ Ekohariadi FT Unesa

INTERAKSI ANTAR OBJECT

Krisna D. Octovhiana. 1.1 Mengenal Data dan Variabel.

SEKOLAH TINGGI MANAJEMEN INFORMATIKA & KOMPUTER JAKARTA STI&K SATUAN ACARA PERKULIAHAN

int fungsi_2() { int main() { fungsi_1(); fungsi_2(); return 0;

Krisna D. Octovhiana

Pemrograman Berorientasi. Class dan Obyek 2

Pemograman Berorientasi Objek. Week 4 Initialization dan Instance dalam Kelas

Fungsi : Dasar Fungsi

FUNGSI. tipe Tipe nilai yang dihasilkan oleh fungsi. Jika tidak dinyatakan, hasil fungsi dianggap bilangan bulat (int)

Program Menggabungkan 2 Tipe String

Basic Input/Output Operator Yoannita

2 Class dan Object (1)

PERTEMUAN III OBJEK DAN CLASS TUJUAN PRAKTIKUM

Abstrak. Pendahuluan. cerita. Pemrograman. mewakili semua. Struktur Bahasa. dan deklarasi. Mari. ilmuti.org Seluruh disertakan dalam

Classes. class class_name { permission_label_1: member1; permission_label_2: member2;... } object_name;

LAPORAN PRAKTIKUM RESMI QUEUE

VARIABEL & TIPE DATA PEMROGRAMAN C++

Transkripsi:

Lisensi Dokumen: Seluruh dokumen di IlmuKomputer.Com dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan bukan komersial (nonprofit), dengan syarat tidak menghapus atau merubah atribut penulis dan pernyataan copyright yang disertakan dalam setiap dokumen. Tidak diperbolehkan melakukan penulisan ulang, kecuali mendapatkan ijin terlebih dahulu dari IlmuKomputer.Com. BAB X. Struct Dalam C++, kita dapat membuat sebuah tipe data baru. Maka penulisan variabel baru kita akan menjadi: tipe_data_baru nama_variabel; Misalnya seperti di bawah ini: tipe_baru_guweh variabel_guweh; Hal ini, salah satunya, dapat dilakukan dengan struct. Syntak dari struct adalah sebagai berikut: struct nama_struct { //member, dan lain lain diletakkan disini ; Perhatikan contoh dibawah: #include <iostream> #include <string> using namespace std; struct tipe_baru_guweh { string nama_depan; string nama_belakang; int umur; ; //semicolon (titik koma) setelah definisi struct 1

void main () { tipe_baru_guweh variabel_guweh; variabel_guweh.nama_depan = "anthonio"; variabel_guweh.nama_belakang = "wirman"; variabel_guweh.umur = 25; cout << "halo, nama gw: " << variabel_guweh.nama_depan << " " << variabel_guweh.nama_belakang << "\n"; cout << "umur gw " << variabel_guweh.umur << "\n"; Hasilnya: Member dari tipe data baru yang dibuat dari struct hanya bisa diakses oleh object dari tipe data tersebut. Misalnya, variabel_guweh yang merupakan object dari tipe_baru_guweh. Object dari struct mengakses membernya dengan menggunakan 2

tanda titik (. ), misalnya umur yang merupakan member dari tipe_baru_guweh, diakses dengan cara: variabel_baru_guweh.umur Begitu juga dengan member member lainnya. Kita juga bisa menaruh fungsi di dalam struct. Misalnya, kita mau menghitung selisih umur antara dua buah variabel dari tipe data yang sama: #include <iostream> using namespace std; struct manusia { int umur; int selisih_umur (manusia n, manusia m) { if (n.umur < m.umur) return (m.umur - n.umur); else return (n.umur - m.umur); ; void main () { manusia manusia1, manusia2; manusia1.umur = 34; manusia2.umur = 16; cout << "selisihnya adalah: " << manusia1.selisih_umur (manusia1, manusia2) << "!\n"; Disini, selisih_umur menerima dua argumen dengan tipe manusia. Kemudian membandingkan dua member dari argumen tersebut (umur) dan mengembalikan hasil 3

pengurangannya / selisihnya, berdasarkan salah satu dari 2 kondisi yang dipersiapkan, yang bertipe integer. Kode di atas dapat ditulis dengan cara lain dengan hasil yang sama, yaitu: #include <iostream> using namespace std; struct manusia { int umur; int selisih_umur (manusia n, manusia m); //prototype fungsi ; int manusia::selisih_umur (manusia n, manusia m) { if (n.umur < m.umur) return (m.umur - n.umur); 4

else return (n.umur - m.umur); void main () { manusia manusia1, manusia2; manusia1.umur = 34; manusia2.umur = 16; cout << "selisihnya adalah: " << manusia1.selisih_umur (manusia1, manusia2) << "!\n"; Disini kita membuat prototype dari fungsi yang akan kita buat. Kemudian, definisinya kita buat di luar struct dengan cara memanggil fungsi tersebut dengan tanda :: (double colon = scope operator). Perhatikan penulisan: int manusia::selisih_umur (manusia n, manusia m) Perintah ini, mungkin, bisa diartikan: fungsi selisih_umur yang mengambil dua argumen (n dan m) bertipe manusia yang merupakan bagian dari (struct) manusia yang mengembalikan nilai bertipe int dan kemudian disusul definisi fungsi setelahnya. 5

BAB XI. Class Class mirip dengan struct. Salah satu perbedaaannya adalah sifat dasar dari class adalah private. Private adalah jenis akses dari sebuah struktur data (seperti struct dan class). Pembagian tingkat akses ini dibagi menjadi 3 bagian: Public, member bisa langsung diakses dari luar oleh objectnya Private, member hanya bisa diakses dari member lainnya dalam class dan dari friendnya Protected, seperti private, tapi juga bisa di akses dari member dari turunan class tersebut Untuk menentukan jenis jenis akses ini dapat juga dibuat sendiri dengan menuliskan keywordnya, masing masing sesuai dengan namanya. Default dari sebuah class adalah bersifat private. Contoh: class my_class { int a; int b; void my_function (int arg1, int arg2) { //definisi fungsi ; Jika definisi dari class seperti di atas, maka semua membernya bersifat private. Bedakan dengan contoh di bawah ini: class my_class { void my_function (int arg1, int arg2) { 6

; //definisi fungsi public: int a; int b; Definisi di atas bisa diartikan bahwa fungsi my_function bersifat private sedangkan variabel a dan b yang bersifat public. Constructor Kegunaan dari constructor adalah untuk melaksanakan hal hal tertentu ketika object dari sebuah class dideklarasikan. Nama dari constructor harus sama dengan nama classnya. Destructor Destructor adalah kebalikan dari constructor. Kalau constructor dipanggil pada waktu object dari suatu class dideklarasikan, maka destructor dipanggil ketika object dari class tersebut dihancurkan, scope pada sebuah fungsi sudah berakhir (misalnya fungsi tempat object itu digunakan telah sampai pada batas scopenya). Destructor ditandai dengan tanda ~ (tilde) dan nama dari destructor harus sama dengan nama classnya. Constructor dan destructor, tidak mengembalikan nilai apapun juga, bahkan void. Mengambil contoh dari kode yang telah kita gunakan di atas, maka contoh dari constructor dan destructor adalah: #include <iostream> using namespace std; 7

class my_class { int umur; public: my_class (int); //constructor int show_age() { return umur; ~my_class(); //destructor ; my_class::my_class (int age) { //definisi umur = age; my_class::~my_class() { //definisi umur = 0; void main () { my_class first(34); cout << first.show_age() << "\n"; 8

9

BAB XII. Pointer Salah satu kegunaan dari pointer adalah sebagai penunjuk dari sebuah variabel. Jadi tanpa mengakses langsung variabel tersebut, anda dapat merubah isi dari variabel tersebut. Contoh: int * pvar, var; pvar = &var; //cout << pvar << \n ; //cout << &var << \n ; *pvar = 20; cout << var << ini adalah nilai dari var setelah di ganti\n ; Output program tersebut adalah: 10

Variabel yang menjadi pointer dideklarasikan dengan memakai tanda asterisk ( * ). Pointer adalah variabel yang, biasanya, menunjuk ke sebuah variabel yang lain. Pointer menunjuk ke variabel lain dengan menunjuk ke alamat variabel tersebut (by reference). Dengan inisialisasi: pvar = &var; maka pvar akan menunjuk ke alamat var. Tanda & menandakan alamat dari variabel tersebut dalam memory komputer. Dimana inisialisasi di atas berarti pvar sama dengan alamat dari var. Kemudian dengan menggunakan tanda * untuk mengisi nilai, pointer tidak lagi menunjuk ke alamat dari var tapi langsung ke variabel itu sendiri / dereference (*pvar = 20;). Untuk membuktikan bahwa pvar dan &var memiliki hasil yang sama, komentar di atas bisa di-uncomment, dan hasilnya adalah seperti ini (tergantung alamat variabel tersebut pada komputer): 11

Dynamic Memory Penggunaan pointer bisa beragam. Ada kalanya kita ingin membuat sebuah variabel tapi tidak untuk digunakan secara permanen dalam program. Dengan pointer kita bisa membuat variabel variabel sementara, dimana kita dapat menggunakannya ketika diinginkan dan kemudian, ketika tidak diperlukan lagi, dihapus untuk menghemat penggunaan memory dan sumber daya dalam komputer. Hal ini dilakukan dengan perintah new dan delete. new Perintah ini digunakan untuk membuat sebuah alokasi memory baru dalam komputer. Syntak: nama_pointer = new tipe_data; nama_pointer = new [array] tipe_data; Misalnya, variabel yang ingin dibuat bertipe char. Maka: char *pchar; pchar = new char; /* atau pchar = new [4] char; <--- ini membuat pchar menjadi berarray 4 */ delete delete adalah kebalikan dari new. Dengan kata lain, delete, sesuai dengan namanya, adalah perintah untuk menghapus variabel. Ini mengakibatkan memory yang sudah terpakai dalam komputer dilepas lagi untuk efisiensi penggunaan memory komputer. Syntak: delete nama_pointer; delete []nama_pointer; 12

Pointer dari sebuah class Jika adan ingin mendeklarasikan pointer dari sebuah class, maka syntak dari deklarasi pointer tersebut tidak jauh berbeda dengan ketika anda mendeklarasikan pointer seperti biasanya, tapi tipe data yang digunakan adalah nama class tersebut: nama_class *nama_pointer; Kembali lagi ke contoh source code sebelumnya, maka contohnya adalah sebagai berikut: #include <iostream> #include <string> using namespace std; class my_class { int umur; string nama; public: my_class (int, string); ~my_class (); int show_age () { return umur; ; string show_name () { return nama; my_class::my_class(int age, string name) { 13

umur = age; nama = name; my_class::~my_class() { umur = 0; nama = ""; void main () { my_class first (21, "Andy"), *pfirst; pfirst = &first; /* pointer menunjuk ke fungsi sebuah variabel dari class dengan tanda "->" */ cout << "hi, namaku " << pfirst->show_name() << " umur " << pfirst->show_age() << " tahun\n"; 14

Referensi http://cplusplus.com/tutorial Biografi Penulis Wirman a.k.a Chipp. Adalah salah satu alumni S1 Universitas Katolik Atma Jaya Makassar jurusan Ekonomi Manajemen yang senang ngutak-ngatik komputer, terutama software. Sekarang bekerja dalam bidang yang sama sekali jauh dari dunia komputer, yaitu pelayaran (sebagai staff finance). Tidak mengaku expert (karena memang masih belajar), dan terus belajar untuk menjadi lebih baik. Email: anthonio_wirman@yahoo.com Blog: http://cyberianzone.blogspot.com http://just-wirman.blogspot.com 15