Advertisement
loading...

 

 

Advertisement

 

MATERI PELATIHAN BERBASIS KOMPETENSI

SEKTOR TELEMATIKA

SUB SEKTOR PROGRAMMER KOMPUTER

 

 

MEMBUAT PROGRAM

APLIKASI BERBASIS C++

TIK.PR08.001.01

 

 

 

 

BUKU INFORMASI

 

 

 

 

 

 

DEPARTEMEN TENAGA KERJA DAN TRANSMIGRASI R.I.

DIREKTORAT JENDERAL PEMBINAAN PELATIHAN DAN PRODUKTIVITAS

Jl. Jend. Gatot Subroto Kav.51 Lt.7.B Jakarta Selatan

 

DAFTAR ISI

 

Daftar Isi                                                                                                      Hal

 

BAB I       PENGANTAR                                                                                     4

1.1   Konsep Dasar Pelatihan Berbasis Kompetensi                                 4

1.2   Penjelasan Modul                                                                        4

1.2.1  Isi Modul                                                                          5

1.2.2  Pelaksanaan Modul                                                            6

1.3   Pengakuan Kompetensi Terkini (RCC)                                           6

1.4   Pengertian Istilah-istilah                                                             7

 

BAB II     STANDAR KOMPETENSI                                                                     9

2.1   Peta Paket Pelatihan                                                                   9

2.2   Pengertian Unit Standar                                                              9

2.3   Unit Kompetensi Yang Dipelajari                                                10

2.3.1  Kode dan Judul Unit                                                        10

2.3.2  Deskripsi Unit                                                                10

2.3.3  Elemen Kompetensi                                                        11

2.3.4  Batasan Variabel                                                             12

2.3.5  Panduan Penilaian                                                          13

2.3.6  Kompetensi Kunci                                                           15

 

BAB III    STRATEGI DAN METODE PELATIHAN                                                16

3.1   Strategi Pelatihan                                                                    16

3.2   Metode Pelatihan                                                                     17

 

BAB IV     MATERI UNIT KOMPETENSI                                                             18

4.1   Tujuan Instruksional Umum                                                       18

4.2   Tujuan Instruksional Khusus                                                      18

 

4.3   Sekilas pemrograman dasar                                                       18

4.4   Dasar – Dasar pemrograman C++                                             18

4.5   Menerapkan Function                                                                19

4.6   Menerapkan Pointer                                                                 25

4.7   Menerapkan Concept Class                                                        27

4.8   Merancang Aplikasi berbentuk objek                                           31

4.9   Menerapkan System Call                                                           46

4.10 Network Programing                                                                47

4.11 Database Connection                                                                48

BAB V      SUMBER-SUMBER YANG DIGUNAKAN UNTUK MENCAPAI KOMPETENSI          60

5.1   Sumber Daya Manusia                                                               60

5.2   Literatur                                                                                  61

5.3   Lain-lain                                                                                  62

5.4   Daftar peralatan dan bahan yang digunakan                                62

DAFTAR PUSTAKA

 

 

 

 

 

 

 

 

 

 

 

 

 

 

BAB I

PENGANTAR

 

1.1        Konsep Dasar Pelatihan Berbasis Kompetensi

Pelatihan berbasis kompetensi adalah pelatihan yang memperhatikan pengetahuan, keterampilan dan sikap yang diperlukan di tempat kerja agar dapat melakukan pekerjaan secara kompeten. Lalu, apa arti kompeten di tempat kerja?

Jika Anda kompeten dalam pekerjaan tertentu, berarti Anda memiliki seluruh keterampilan, pengetahuan dan sikap yang perlu untuk ditampilkan secara efektif di tempat dimana Anda bekerja, sesuai dengan standar yang telah disetujui dan ditetapkan.

 

1.2        Penjelasan Modul

Modul ini dikonsep agar dapat digunakan pada proses Pelatihan Konvensional/Klasikal dan Pelatihan Individual/Mandiri. Yang dimaksud dengan Pelatihan Konvensional/Klasikal, yaitu pelatihan yang dilakukan dengan melibatkan bantuan seorang pembimbing atau guru seperti proses belajar mengajar sebagaimana biasanya dimana materi hampir sepenuhnya dijelaskan dan disampaikan pelatih/pembimbing yang bersangkutan.

Sedangkan yang dimaksud dengan Pelatihan Mandiri/Individual adalah pelatihan yang dilakukan secara mandiri oleh peserta sendiri berdasarkan materi dan sumber-sumber informasi dan pengetahuan yang bersangkutan. Pelatihan mandiri cenderung lebih menekankan pada kemauan belajar peserta itu sendiri. Singkatnya pelatihan ini dilaksanakan pseserta dengan menambahkan unsur-unsur atau sumber-sumber yang diperlukan baik dengan usahanya sendiri maupun melalui bantuan dari pelatih.

 

                   1.2.1   Isi Modul

Modul ini terdiri dari 3 bagian, antara lain sebagai berikut:

 

  1. a.   Buku Informasi

Buku informasi merupakan sumber materi pelatihan bagi pelatih maupun pserta pelatihan.

 

  1. b.   Buku Kerja

Buku kerja digunakan oleh peserta pelatihan untuk mencatat setiap pertanyaan dan kegiatan praktik baik dalam Pelatihan Konvensional maupun Pelatihan Individual/Mandiri.

Buku ini diberikan kepada peserta pelatihan dan berisi:

-      Kegiatan-kegiatan yang akan membantu peserta pelatihan untuk mempelajari dan memahami materi/informasi yang disajikan.

-      Kegiatan pemeriksaan yang digunakan untuk memantau pencapaian ketrampilan peserta pelatihan.

-      Kegiatan penilaian untuk menilai kemampuan peserta pelatihan dalam melaksanakan praktik kerja.

 

  1. c.    Buku Penilaian

Buku penilaian ini digunakan oleh pelatih untuk menilai jawaban dan tanggapan peserta pelatihan pada Buku Kerja dan berisi :

-      Kegiatan-kegiatan yang dilakukan oleh peserta pelatihan sebagai pernyataan keterampilan.

-      Metode-metode yang disarankan dalam proses penilaian keterampilan peserta pelatihan.

-      Sumber-sumber yang digunakan oleh peserta pelatihan untuk mencapai keterampilan.

-      Semua jawaban pada setiap pertanyaan yang diisikan pada Buku Kerja.

-      Petunjuk bagi pelatih untuk menilai setiap kegiatan praktik.

-      Catatan pencapaian keterampilan peserta pelatihan.

 

 

1.2.2           Pelaksanaan Modul

Pada Pelatihan Klasikal/Konvensional, pelatih akan :

-      Menyediakan Buku Informasi yang dapat digunakan peserta pelatihan sebagai sumber pelatihan.

-      Menyediakan salinan Buku Kerja kepada setiap peserta pelatihan.

-      Menggunakan Buku Informasi sebagai sumber utama dalam penyelenggaraan pelatihan.

-      Memastikan setiap peserta pelatihan memberikan jawaban/ tanggapan dan menuliskan hasil tugas praktiknya pada Buku Kerja.

Pada Pelatihan Individual/Mandiri, peserta pelatihan akan :

-      Menggunakan Buku Informasi sebagai sumber utama pelatihan.

-      Menyelesaikan setiap kegiatan yang terdapat pada buku Kerja.

-      Memberikan jawaban pada Buku Kerja.

-      Mengisikan hasil tugas praktik pada Buku Kerja.

-      Memiliki tanggapan-tanggapan dan hasil penilaian oleh pelatih.

 

1.3        Pengakuan Kompetensi Terkini

Pengakuan Kompetensi Terkini dikenal juga dengan RCC (Recognition of Current Competency). Jika Anda telah memiliki pengetahuan dan keterampilan yang diperlukan untuk elemen unit kompetensi tertentu, Anda dapat mengajukan pengakuan kompetensi terkini (RCC). Berarti Anda tidak akan dipersyaratkan untuk belajar kembali.

Anda mungkin sudah memiliki pengetahuan dan keterampilan, karena Anda telah :

  1. Bekerja dalam suatu pekerjaan yang memerlukan suatu pengetahuan dan keterampilan yang sama, atau
  2. Berpartisipasi dalam pelatihan yang mempelajari kompetensi yang sama, atau
  3. Mempunyai pengalaman lainnya yang mengajarkan pengetahuan dan keterampilan yang sama.

 

1.4        Pengertian Istilah-istilah

Berikut adalah pengertian dari beberapa istilah yang digunakan dalam Pelatihan Berbasis Kompetensi, antara lain :

  1. Profesi

Profesi adalah suatu bidang pekerjaan yang menuntut sikap, pengetahuan serta ketrampilan/keahlian kerja tertentu yang diperoleh dari proses pendidikan, pelatihan serta pengalaman kerja atau penguasaan sekumpulan kompetensi tertentu yang dituntut oleh suatu pekerjaan/jabatan.

  1. Standardisasi

Standardisasi adalah proses merumuskan, menetapkan serta menerapkan suatu standar tertentu.

  1. Penilaian / Uji Kompetensi

Penilaian atau Uji Kompetensi adalah proses pengumpulan bukti melalui perencanaan, pelaksanaan dan peninjauan ulang (review) penilaian serta keputusan mengenai apakah kompetensi sudah tercapai dengan membandingkan bukti-bukti yang dikumpulkan terhadap standar yang dipersyaratkan.

  1. Pelatihan

Pelatihan adalah proses pembelajaran yang dilaksanakan untuk mencapai suatu kompetensi tertentu dimana materi, metode dan fasilitas pelatihan serta lingkungan belajar yang ada terfokus kepada pencapaian unjuk kerja pada kompetensi yang dipelajari.

  1. Kompetensi

Kompetensi adalah kemampuan seseorang untuk menunjukkan aspek sikap, pengetahuan dan keterampilan serta penerapan dari ketiga aspek tersebut ditempat kerja untuk mwncapai unjuk kerja yang ditetapkan.

  1. Standar Kompetensi

Standar kompetensi adalah standar yang ditampilkan dalam istilah-istilah hasil dsn memiliki format standar yang terdiri dari judul unit, deskripsi unit,

 

elemen kompetensi, kriteria unjuk kerja, ruang lingkup serta pedoman bukti.

  1. Sertifikat Kompetensi

Adalah pengakuan tertulis atas penguasaan suatu kompetensi tertentu kepada seseorang yang dinyatakan kompeten yang diberikan oleh Lembaga Sertifikasi Profesi.

  1. Sertifikasi Kompetensi

Adalah proses penerbitan sertifikat kompetensi melalui proses penilaian/uji kompetensi.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

BAB II

STANDAR KOMPETENSI

 

 

2.1        Peta Paket Pelatihan

Modul yang sedang Anda pelajari ini bertujuan untuk mencapai satu unit kompetensi. Adapun kompetensi ini termasuk dalam satu paket pelatihan, yang terdiri atas unit kompetensi berikut:

  1. TIK.PR08.001.01 Membuat Program Aplikasi Berbasis C++

 

 

2.2        Pengertian Unit Standar

Apakah Standar Kompetensi? Setiap Standar Kompetensi menentukan :

  1. Pengetahuan dan keterampilan yang diperlukan untuk mencapai kompetensi.
  2. Standar yang diperlukan untuk mendemonstrasikan kompetensi.
  3. Kondisi dimana kompetensi dicapai.

Sistem pelatihan berbasis kompetensi terfokus pada pencapaian kompetensi, bukan pada lamanya waktu. Namun diharapkan pelatihan ini dapat dilaksanakan dan dicapai dalam jangka waktu tidak lebih dari seminggu, tiga sampai lima hari. Pelatihan ini diperuntukkan bagi semua pengguna terutama yang tugasnya berkaitan dengan pemrograman berorientasi objek degan menggunakan C++.

 

Jika Anda belum mencapai kompetensi pada usaha/kesempatan pertama, Pelatih Anda akan mengatur rencana pelatihan dengan Anda. Rencana ini akan memberikan Anda kesempatan kembali untuk meningkatkan level kompetensi Anda sesuai dengan level yang diperlukan. Jumlah maksimum usaha/kesempatan yang disarankan adalah 3 (tiga) kali.

 

 

 

2.3        Unit Kompetensi Yang Dipelajari

Dalam sistem pelatihan, Standar Kompetensi diharapkan menjadi panduan bagi peserta pelatihan untuk dapat :

  1. Mengidentifikasikan apa yang harus dikerjakan peserta pelatihan.
  2. Memeriksa kemajuan peserta pelatihan.
  3. Menyakinkan bahwa semua elemen (sub-kompetensi) dan criteria unjuk   kerja telah dimasukkan dalam pelatihan dan penilaian.

2.3.1   Kode dan Judul Unit

Kode Unit   : TIK.PR08.001.01

Judul Unit   : Membuat Program Aplikasi Berbasis C++

 

2.3.2   Deskripsi Unit

Unit ini akan menentukan kompetensi yang diperlukan untuk   mengoperasikan perangkat aplikasi (bahasa pemrograman) berbasis C++. Kemampuan dalam mengoperasikan bahasa C++ dapat menggunakan Fungsi-fungsi seperti Function, Pointer dan Class. Kemampuan yang dimiliki pada tingkat ini adalah kemampuan untuk menerapkan network programming dan menerapkan database connection.

 

 

2.3.3   Elemen Kompetensi

 

ELEMEN KOMPETENSI

KRITERIA UNJUK KERJA

01  Menjelaskan dasar-dasar pemrograman C++ 1.1      Konsep control structure dijelaskan

1.2      Berbagai jenis input/output dijelaskan

02 Menerapkan function 2.1      Deklarasi fungsi dijelaskan

2.2      Deklarasi fungsi diaplikasikan pada program

 03     Menerapkan pointer

 

3.1         Konsep pointer dijelaskan dan diidentifikasi.

3.2         Konsep pointer dan array diaplikasikan pada program.

 

04 Menerapkan Concept Class 4.1    Tipe data dalam C++ diaplikasikan pada

program.

4.2    Deklarasi Class diaplikasikan pada

program.

4.3    Dynamic Memory Allocation diaplikasikan

pada program.

4.4    Polymorphism diaplikasikan pada program.

4.5    Inheritance diaplikasikan pada program.

 

05 Merancang aplikasi berorientasi obyek 5.1    Konsep abstract dijelaskan.

 

5.2    Class didefinisikan dalam aplikasi.

06 Menerapkan system call 6.1    Unix system call diaplikasikan pada

program.

 

6.2    File access dan I/O diaplikasikan pada

program.

 

07 Menerapkan Network Programming 7.1  TCP socket dan UDP socket diaplikasikan

pada program.

7.2   Socket programming diaplikasikan

08 Menerapkan Data Base connection 8.1  Konektivitas basis data C++ dan database  engine dengan penggunaan ODBC diaplikasikan pada program

2.3.4   Batasan Variabel

Batasan variabel unit kompetensi ini adalah sebagai berikut:

  1. Unit ini berlaku untuk seluruh sektor teknologi informasi dan komunikasi.
  2. Mengoperasikan bahasa pemrograman C++ pada bidang teknologi informasi dan komunikasi.

 

2.1.1   Panduan Penilaian

Panduan penilaian terdiri dari :

  1. Pengetahuan dan keterampilan penunjang

Untuk mendemontrasikan kompetensi, diperlukan bukti keterampilan dan pengetahuan dibidang berikut  ini :

1.1 Pengetahuan dasar yang dibutuhkan :

1.1.1    Pengoperasian software aplikasi C++.

1.1.2    On site training sesuai dengan perangkat lunak bahasa pemrograman yang digunakan.

1.1.3    Konsep C++.

  1. Konteks penilaian

Kompetensi harus diujikan di tempat kerja atau tempat lain secara teori dan praktek dengan kondisi kerja sesuai dengan keadaan normal.

  1. Aspek penting penilaian

Aspek yang harus diperhatikan

3.1   Kemampuan untuk prosedur dibuat dan diatur dengan menggunakan perintah standar pada C++.

3.2   Kemampuan membuat dan mengoperasikan prosedur dan fungsi.

3.3   Kemampuan menerapkan Function, Pointer, Concept Class, System Call, Network Programing, dan Database Connection.

3.4   Kemampuan mengoperasikan C++ dan merancang aplikasi berorientasi obyek.

 

  1. Kaitan dengan unit-unit lainnya

4.1 Unit ini didukung di dalam mengoperasikan bahasa pemrograman C++.

Pengembangan pelatihan untuk memenuhi persyaratan dalam unit ini perlu dilakukan dengan hati-hati. Untuk pelatihan pra kejuruan umum, institusi harus menyediakan pelatihan yang mempertimbangkan serangkaian konteks industri seutuhnya tanpa bias terhadap sektor tertentu. Batasan variabel akan membantu dalam hal ini. Untuk sektor tertentu/khusus, pelatihan harus disesuaikan untuk memenuhi kebutuhan sektor tersebut.

 

2.1.2   Kompetensi Kunci

NO KOMPETENSI KUNCI DALAM UNIT INI TINGKAT

1

Mengumpulkan, mengorganisir dan menganalisa informasi

3

2

Mengkomunikasikan ide-ide dan informasi

2

3

Merencanakan dan mengorganisir aktivitas-aktivitas

2

4

Bekerja dengan orang lain dan kelompok

2

5

Menggunakan ide-ide dan teknik matematika

3

6

Memecahkan masalah

3

7

Menggunakan teknologi

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

BAB III

STRATEGI DAN METODE PELATIHAN

 

3.1.      Strategi Pelatihan        

Belajar dalam suatu Sistem Berbasis Kompetensi berbeda dengan yang sedang “diajarkan” di kelas oleh Pelatih. Pada sistem ini Anda akan bertanggung jawab terhadap belajar Anda sendiri, artinya bahwa Anda perlu merencanakan belajar Anda dengan Pelatih dan kemudian melaksanakannya dengan tekun sesuai dengan rencana yang telah dibuat.

Persiapan/perencanaan

  1. Membaca bahan/materi yang telah diidentifikasi dalam setiap tahap belajar dengan tujuan mendapatkan tinjauan umum mengenai isi proses belajar Anda.
  2. Membuat catatan terhadap apa yang telah dibaca.
  3. Memikirkan bagaimana pengetahuan baru yang diperoleh berhubungan dengan pengetahuan dan pengalaman yang telah Anda miliki.
  4. Merencanakan aplikasi praktik pengetahuan dan keterampilan Anda.

 

Permulaan dari proses pembelajaran

  1. Mencoba mengerjakan seluruh pertanyaan dan tugas praktik yang terdapat pada tahap belajar.
  2. Merevisi dan meninjau materi belajar agar dapat menggabungkan pengetahuan Anda.

 

Pengamatan terhadap tugas praktik

  1. Mengamati keterampilan praktik yang didemonstrasikan oleh Pelatih atau orang yang telah berpengalaman lainnya.
  2. Mengajukan pertanyaan kepada Pelatih tentang konsep sulit yang Anda temukan.

 

 

 

Implementasi

  1. Menerapkan pelatihan kerja yang aman.
  2. Mengamati indikator kemajuan personal melalui kegiatan praktik.
  3. Mempraktikkan keterampilan baru yang telah Anda peroleh.

 

Penilaian

Melaksanakan tugas penilaian untuk penyelesaian belajar Anda.

 

3.2.          Metode Pelatihan      

Terdapat tiga prinsip metode belajar yang dapat digunakan. Dalam beberapa kasus, kombinasi metode belajar mungkin dapat digunakan.

Belajar secara mandiri

Belajar secara mandiri membolehkan Anda untuk belajar secara individual, sesuai dengan kecepatan belajarnya masing-masing. Meskipun proses belajar dilaksanakan secara bebas, Anda disarankan untuk menemui Pelatih setiap saat untuk mengkonfirmasikan kemajuan dan mengatasi kesulitan belajar.

 

Belajar Berkelompok

Belajar berkelompok memungkinkan peserta untuk dating bersama secara teratur dan berpartisipasi dalam sesi belajar berkelompok. Walaupun proses belajar memiliki prinsip sesuai dengan kecepatan belajar masing-masing, sesi kelompok memberikan interaksi antar peserta, Pelatih dan pakar/ahli dari tempat kerja.

 

Belajar terstruktur

Belajar terstruktur meliputi sesi pertemuan kelas secara formal yang dilaksanakan oleh Pelatih atau ahli lainnya. Sesi belajar ini umumnya mencakup topik tertentu.

 

 

BAB IV

MATERI UNIT KOMPETENSI

 

 

 

4.1        Tujuan Instruksional Umum

  • Siswa mampu membuat program aplikasi dengan C++.

4.2        Tujuan Instruksional Khusus

  • Siswa mengerti dan mampu menjelaskan apa yang dimaksud dengan dasar – dasar program C++
  • Siswa dapat menggolongkan perintah apa saja yang temasuk dalam C++
  • Siswa mengerti dan mampu menjelaskan apa yang dimaksud dengan Data types dan Operations
  • Siswa mengerti dan mampu menggunakan input dan output dalam C++
  • Siswa mengerti apa yang dimaksud dengan fungsi dan prosedur
  • Siswa mengetahui dan mampu menggunakan pointer dan array
  • Siswa mengetahui, mampu menjelaskan dan menggunakan deklarasi class
  • Siswa mengetahui, mampu menjelaskan dan menggunakan Dynamic memory alocation
  • Siswa mengetahui, mampu menjelaskan dan menggunakan Polymorphism
  • Siswa mengetahui, mampu menjelaskan dan menggunakan Inheritance
  • Siswa mampu merancang aplikasi berorientasi obyek
  • Siswa mampu menerapkan system call
  • Siswa mampu menerapkan network programming
  • Siswa mampu menerapkan database connection dengan C++.

4.3        Sekilas Tentang dasar pemrograman C++

C++, yang ditemukan oleh Bjarne Stroustrup, merupakan bahasa pemrograman yang berasal dari bahasa C. Bahasa pemrograman C++ berorientasi pada pengunaan obyek. Penambahan yang besar yang dibuat oleh C++ adalah pengenalan konsep class. Class mengijinkan programmer untuk membuat tipe data yang baru.

4.4        Menjelaskan dasar dasar pemrograman C++

  • Control Structure

              Hal pertama yang perlu kita pelajari dalam bahasa pemrograman adalah         Control Structure dan Data Types. Dalam proses berjalannya program, ada      saat pembuatan keputusan, mengulang suatu proses atau mengambil       keputusan. Untuk itu C++ menyediakan control structure. Beberapa jenis        control structure yaitu: if and else structure, iteration structures (loops)         and selective structures.

 

If and else structure

Bentuk dari if statement adalah:

if (kondisi) perintah

Dalam if structure, kondisi dievaluasi, jika kondisi terpenuhi, maka            perintah dijalankan. Sebagai contoh, program dibawah ini akan mencetak     dilayar “x adalah 100” jikalau variabel x adalah 100:

 

if(x==100)

cout << “x adalah 100”;

 

Jikalau kita ingin memberi perintah lebih dari satu baris, kita perlu menaruh        kurung {} diantara perintah.

 

if(x == 100)

{

cout << “x adalah 100”;

cout << “baris kedua”;

}

 

Bentuk control structure if dengan else:

 

if (kondisi) perintah 1 else perintah 2

 

Dalam if and else structure, kondisi dievaluasi, jika kondisi terpenuhi,        maka perintah 1 dijalankan, jika kondisi tidak terpenuhi, perintah 2 dijalankan.        Sebagai contoh, program dibawah ini akan mencetak dilayar “x adalah negatif”          jikalau variabel x dibawah 0 atau mencetak “x adalah positif” jikalau variabel x    diatas 0:

if (x < 0)

cout << “x adalah negatif”;

else

cout << “x adalah positif”;

iteration structures

Ada tiga jenis iteration/loop structures yaitu while structure, do-while                 structure, dan for structure.

 

Bentuk bentuk iteration structures:

while (condition) {

statement

}

do {

statement

}while (condition)

 

for (initialization; condition; increase) {

statement

}

 

Contoh while structures dibawah ini, selama n lebih besar dari 0, maka               perintah pencetakan “n lebih besar dari 0” dilayar akan diulang.

 

n=4;

while (n > 0) {

cout << “n lebih besar dari 0”;

n = n – 1;

}

 

Bentuk do-while structure dari contoh diatas adalah:

 

n=4;

do {

cout << “n lebih besar dari 0”;

n = n-1;

} while (n>0);

 

Bentuk for structure dari contoh diatas adalah:

for(n=4; n<0; n=n-1) {

cout << “n lebih besar dari 0”;

}

 

dalam contoh for structure diatas, n=4 adalah inisialisasi, n<0 adalah                 kondisi yang dicek setiap loop, dan n=n-1 adalah increase yang                          diberikan untuk mencapai kondisi.

 

Selective structure

 

Bentuk dari switch structure adalah:

 

switch (expression/variable)

{

case konstan1:

statement1;

break;

:

:

default:

statement;

}

Dalam switch structure, program memeriksa isi dari variable, lalu mulai memeriksa apakah isi variable tersebut sama dengan konstan1, jika                                               ya, maka statement1 akan dijalankan, dan seterusnya. Jika tidak ada                                                 konstan yang sama dengan isi dari variable, maka statement default akan                                        dijalankan.

 

  • Input / Output

                   Dalam C++, input/output dilakukan melalui stream. Stream   adalah                    sebuah obyek dimana program dapat memasukan dan mengambil                        karakter.

 

Standard output

Secara standard, output dari sebuah program adalah monitor, dan                      obyek stream untuk mencetak pada monitor yang dipakai adalah cout.

 

Contoh pertama pemakaian cout untuk mencetak berbagai hal                            kemonitor:

cout << “pertama”; // mencetak kata “pertama” kemonitor

cout << a; // mencetak isi variabel a kemonitor

Contoh kedua pemakaian cout untuk mencetak beberapa hal sekaligus:

 

cout << “isi variable a adalah “ << a;

 

Contoh pemakaian “\n” untuk memberikan spasi baris.

 

cout << “akan ada spasi baris\n”;

 

Contoh pemakaian “endl” untuk memberikan spasi baris.

 

cout << “akan ada spasi baris” << endl;

 

Standard Input

 

Secara standard, input kita dapatkan dari keyboard. Cin adalah obyek                 yang dipakai oleh c++ untuk mendapatkan input dari keyboard.

Contoh pengunaan cin untuk meminta input dari keyboard kepada user:

 

int age;

cin >> age;

 

Contoh program mengunakan input/output:

 

#include <iostream>

using namespace std;

int main () {

int age;

cout << “masukan umur anda: “;

cin >> age;

return 0;

}

 

ofstream, ifstream dan fstream

 

Dalam C++, stream yang dipakai untuk input/output terhadap sebuah       file adalah ofstream (stream untuk menulis pada file), ifstream(stream untuk    membaca suatu file), fstream (stream untuk membaca dan menulis pada file).

 

Contoh program untuk menulis pada file (penjelasan diberikan langsung dalam    program):

 

#include <iostream.h>

#include <fstream.h>       //kita perlu include fstream.h untuk melakukan                                         //input/output kepada file

using namespace std;

 

int main()

ofstream file1(“filetest.txt”);        // membuka file “filetest.txt” untuk output

if(file1.is_open()) {                     // memeriksa apakah file “filetext.txt” dapat                                                      //dibuka. “file1.is_open()” akan                                                                       // mengembalikan nilai true/false

 

file1 << “write a line in this file”;

// perintah diatas adalah untuk menulis                                                            // sesuatu kepada file

file1.close();                               // close() dipanggil untuk menutup file

}

else {

cout << “can’t open file”;

}

return 0;

}

 

Contoh program untuk membaca file:

 

#include <iostream.h>

#include <fstream.h>       //kita perlu include fstream.h untuk melakukan                                         //input/output kepada file

using namespace std;

 

int main()

string line;

ifstream file1(“filetest.txt”);         // membuka file “filetest.txt” sebagai input

if(file1.is_open()) {                     // memeriksa apakah file “filetext.txt” dapat                                                      //dibuka. “file1.is_open()” akan                                                                       // mengembalikan nilai true/false

 

while ( ! file1.eof()) {        // function eof() akan return true jika file                                                          // sudah selesai dibaca, dan false jika belum                                                     // selesai dibaca.

getline(file1, line);   // perintah ini untuk membaca satu baris                                                          // dari file

}

file1.close();                     // close() dipanggil untuk menutup file

}

else {

cout << “can’t open file”;

}

return 0;

}

 

 

4.5        Menerapkan Function

                   Dengan function di C++, kita dapat membuat program yang lebih   terstruktur (dengan modul-modul). Function adalah suatu grup perintah yang      dijalankan ketika di panggil/eksekusi. Bentuk dari function adalah:

 

returntype fname (param1, param2, … paramn) {perintah}

 

-         returntype adalah jenis data/data types yang akan dikembalikan oleh function tersebut ketika di panggil. Jika tidak ada yang perlu dikembalikan oleh function tersebut, maka data types yang digunakan dalam returntype adalah void.

-         fname adalah nama function

-         parameter adalah data type diikuti oleh nama variabel. Dengan adanya parameter, pemakai function dapat memberikan argument dalam eksekusi.

-         Perintah adalah hal-hal yang dijalankan oleh function ketika dipanggil.

 

Contoh penggunaan function (kita akan membuat function multiply yang   menerima dua parameter, yaitu a dan b):

 

#include <iostream>

using namespace std;

 

int multiply (int a, int b) // deklarasi function

{

int m=0;      // mendeklarasikan bahwa m adalah int bernilai 0

m=a*b;        // m = a * b

 

return m;      // mengembalikan nilai m pada program yang memanggil

}

 

int main ()

{

int a1= 5;

int b1= 3;

int mult = 0;

 

mult = multiply(a1, b1); // memanggil function multiply dengan argument

// a1 dan b1. A1 dan b1 adalah int, sama                                                         // seperti parameter a dan b di function multiply

cout << “hasil perkalian a1 dan b1 adalah: “ << mult;

return 0;

}

 

          Program diatas akan mencetak kemonitor:

hasil perkalian a1 dan b1 adalah: 15

 

Function overloading adalah sebuah konsep dimana sebuah nama    function bisa digunakan lebih dari satu kali dalam satu program atau kelas,      selama setiap function yang bernama sama memiliki parameter yang berbeda          beda.

 

Contoh yang dapat kita lihat dari program diatas adalah constructor. Dalam        class Rectangle, ada dua constructor:

 

Rectangle::Rectangle();              dan

Rectangle::Rectangle(int inputX, int inputY);

 

Sebuah program dapat mengakses function yang benar dengan mencocokan        parameter yang diberikan.

 

Ketika program diatas mendeklarasikan “Rectangle rectangle1”, maka        constructor “Rectangle::Rectangle()” pun dipanggil, menginisialisasi value x                          dan y menjadi 1. Sedangkan ketika program diatas mendeklarasi                                                 “Rectangle rectangle2(3,4)”, maka constructior “Rectangle(int inputX, int                            inputY)” pun dipanggil, menginisialisasi value x dan y sesuai dengan inputX                                           dan inputY.

 

4.6        Menerapkan Pointer

                   Pointer adalah sebuah jenis variable yang menyimpan alamat memory       suatu data. Dengan pointer, kita dapat mengetahui data dan juga alamat          memory yang menyimpan data tersebut. Penggunaan pointer sangatlah           penting dalam C++.

 

Cara mendeklarasikan penggunaan pointer:

type *pointer_name;

 

-         type adalah jenis data yang disimpan oleh alamat memory

-         pointer_name adalah nama variabel untuk pointer

 

Contoh:

int a = 3;                         // mendeklarasikan int biasa

int *pointer_to_int;          // mendeklarasikan pointer pada integer

 

pointer_to_int = &a;        // menyamakan alamat memory pointer_to_int

// pada alamat memory a

cout << “isi dari a =” << *pointer_to_int;

 

Contoh diatas akan mencetak dimonitor:

isi dari a=3

 

Dalam contoh diatas, pointer_to_int menyimpan alamat memory sebuah   integer. Untuk mengakses data didalam alamat memory tersebut, kita         memakai *. jadi *pointer_to_int membuat kita mengakses data dalam alamat         memory pointer_to_int.

 

Sedangkan jika simbol ‘&’ dipakai sebelum sebuah variable biasa(bukan      pointer), alamat memory variabel tersebut akan didapatkan. Jadi ‘&a’ akan     memberikan kita alamat memory dari variabel a. Oleh karena itu,          *pointer_to_int diatas akan berisikan nilai yang sama dengan variabel a,       karena alamat memory a telah dicopy pada pointer_to_int (dengan perintah       pointer_to_int = &a). Ketika isi dari pointer_to_int diganti, maka isi variable a          otomatis ikut berubah, karena pointer_to_int menunjuk mada alamat memory          yang sama.

 

Sebelum pemakaian pointer, kita perlu mengalokasikan sebuah alamat       memory yang bebas pakai. Cara meninitialisasi pointer (mengalokasikan    sebuah alamat memory yang bebas pakai):

pointer_name = new type;

 

Contoh:

int *pointer_to_int;          // mendeklarasikan pointer pada integer

pointer_to_int = new int;   // mengalokasikan memory yang bebas pakai

*pointer_to_int = 5;

cout << “isi dari *pointer_to_int =” << *pointer_to_int;

 

Contoh diatas akan mencetak dimonitor:

isi dari *pointer_to_int=5

 

Untuk memperjelas penggunaan pointer, kita lihat contoh diatas.             *pointer_to_int =5 akan mengset isi dari alamat memory tersebut menjadi                                      angka 5. Catatan: kalau kita memberi perintah pointer_to_int = 5, yang kita                                         lakukan bukanlah mengset isi dari alamat memory tetapi mengganti alamat                                  memory tersebut.

 

Array adalah suatu struktur data untuk menyimpan sejumlah jenis data      yang sama dalam suatu alamat memory yang berurutan. Ini memudahkan        akses terhadap suatu data didalam array tersebut. Kita dapat          memvisualisasikan array sebagai berikut:

 

0       1      2       3       4     …….   n

             

Int    int     int     int     int    …….  int

 

Cara mendeklarasikan Array:

 

type arrayname[number_of_element];

-   type adalah jenis data yang disimpan array

-   number_of_element adalah jumlah data yang ingin disimpan

 

Cara menginisialisasi Array:

 

type arrayname[number_of_element] = {element1, element2, …, elementN};

atau

type arrayname[] = {element1, element2, …, elementN};

-   element1-N adalah data yang ingin disimpan

-   catatan: dalam inisialisasi, jika number_of_element tidak diberikan, maka secara otomatis jumlah memory yang dialokasikan adalah sejumlah N

 

Contoh:

 

int example_array[3] = {20, 13, 100};   // inisialisasi sebuah array

example_array[0] =  101;                     // isi array pertama berubah dari 20 menjadi 101

example_array[1] = example_array[1] + example_array[2];

 

cout << “isi array pertama=” << example_array[0];

cout << “isi array kedua=” << example_array[1];

cout << “isi array ketiga=” << example_array[2];

Contoh diatas akan mencetak monitor:

isi array pertama=101;

isi array kedua=113;

isi array ketiga=100;

 

Untuk lebih mengerti pemakaian array, mari kita lihat contoh diatas. Untuk mengakses element dari array kita gunakan arrayname[offset]. Dimana offset                                   adalah sebuah angka yang menunjukan posisi yang kita ingini, yang dimulai                                       dari 0 (untuk element pertama) dan seterusnya.

 

 

 

 

 

4.7        Menerapkan Concept Class

 

4.7.1   Tipe Data

                               Dalam C++, Data Types adalah jenis data yang dapat disimpan    didalam memory. Ada beberapa jenis data types di C++. Dibawah ini                                          adalah beberapa jenis data dalam C++.

 
Nama Deskripsi Ukuran memory Jarak
char Character or small integer. 1byte signed: -128 to 127
unsigned: 0 to 255
short int (short) Short Integer. 2bytes signed: -32768 to 32767
unsigned: 0 to 65535
int Integer. 4bytes signed: -2147483648 to 2147483647
unsigned: 0 to 4294967295
long int (long) Long integer. 4bytes signed: -2147483648 to 2147483647
unsigned: 0 to 4294967295
bool Boolean value. It can take one of two values: true or false. 1byte true or false
float Floating point number. 4bytes 3.4e +/- 38 (7 digits)
double Double precision floating point number. 8bytes 1.7e +/- 308 (15 digits)
long double Long double precision floating point number. 8bytes 1.7e +/- 308 (15 digits)
wchar_t Wide character. 2bytes 1 wide character

 

                    Dalam data type diatas: int, short int, long int dapat menyimpan tipe                 data berupa angka bulat, sedangkan: float, double, long double dapat              menyimpan tipe data berupa angka desimal. Bool hanya dapat                     menyimpan data true/false. Char dapat menyimpan data berupa satu            karakter dan juga tipe data berupa angka bulat. wchar_t dapat                           menyimpan data berupa kumpulan karakter.

Jika kita menyimpan angka decimal dalam data type int (yang                            seharusnya untuk angka bulat), maka akan ada pembulatan yang                        terjadi. Oleh karena itu, sebaiknya kita mengunakan data types yang                  tepat untuk maksud yang kita inginkan. Sebelum kita dapat memakai             data types didalam program, kita perlu   terlebih dahulu                                       mendeklarasikannya. Bentuk pendeklarasian adalah:

 

type identifier = initial_value;

 

dimana type adalah tipe data, identifier adalah nama variabel/data                     types,           initial_value adalah isi dari variable tersebut;

 

Contoh:

char             a= ‘w’;

int               a= 100;

boolean        a= true;

double                   a=42.000;

wchar_t        a=”abc”;

Catatan: ada batasan batasan tertentu yang diberikan untuk                              identifier(nama variabel), seperti tidak boleh memakai spasi.

 

4.7.2   Class

                             Dalam program C++, selain data types dasar (contoh: int, float)              yang telah dijelaskan, kita bisa membuat suatu data type baru yang                bernama “class”. Dalam class, kita membuat suatu definisi data yang                    baru dengan menggabungkan pengunaan data types yang ada.

 

“Obyek” dapat dijelaskan seperti variable dari data type yang baru                      tersebut.

 

Sebagaimana kita dapat mendeklarasian sebuah variable berbentuk int,               maka kita juga dapat  mendeklarasikan sebuah obyek baru berbentuk             data type baru yang kita bentuk melalui class.

 

Cara mendeklarasikan class:

 

class classname {

access_specifier1:

member1…N;

access_specifier2:

member1…N;

} objectnames;

-         access_specifier adalah ijin untuk mengakses member yaitu:

-         private: member hanya dapat diakses oleh member lain dalam kelas tersebut atau oleh friends.

-         protected: member hanya dapat diakses oleh member lain dalam kelas tersebut, oleh friends, dan juga oleh anak-anak kelas.

-         public: member dapat diakses dari mana saja.

Contoh aplikasi class:

 

#include <iostream>

using namespace std;

 

// mendeklarasikan sebuah kelas

class Rectangle {

private:

int x;  // member dari class Rectangle

int y;  // member dari class Rectangle

public:

// Members dari class Rectangle yang berupa function

Rectangle();                               //constructor 1

Rectangle(int inputX, int inputY); //constructor 2

 

~Rectangle(int inputX, int inputY);        //destructor

void setX (int inputX);

void setY(int inputY);

int area();

};

 

// definisi dari function constructor 1

Rectangle::Rectangle () {

x = 1;

y = 1;

}

 

// definisi dari function constructor 2

Rectangle::Rectangle (int inputX, int inputY) {

x = inputX;

y = inputY;

}

 

//definisi dari function destructor: dalam hal ini, tidak melakukan apa-                apa

Rectangle::~Rectangle () {

}

 

// pemrograman function setX()

void Rectangle::setX(int inputX) {

x = inputX;

}

 

// pemrograman function setY()

void Rectangle::setY(int inputY) {

y = inputY;

}

// pemrograman function area()

int Rectangle::area();

return x*y;

}

 

int main() {

Rectangle rectangle1;        //mendeklarasi dan menginisialisasi rectangle1                                                 //yang merupakan data type Rectangle (data type                                             //baru yang  kita buat). Constructor pertama akan                                            //dipanggil.

Rectangle rectangle2(3,4); //mendeklarasi dan menginisialisasi rectangle2                                                 //yang merupakan data type Rectangle.                                                            //Constructor kedua akan dipanggil

 

int areaRectangle1 = rectangle1.area(); //memanggil function area dari kelas                                                               //Rectangle untuk menghitung area                                                                  //rectangle1 (yaitu 1*1)

 

cout << “area rectangle1 = “ <<  areaRectangle1;

 

rectangle2.setX(10);                   //memanggil function setX dari kelas                                                                //Rectangle untuk mengubah besar value x                                                        //dari rectangle2

 

int areaRectangle2 = rectangle2.area(); //memanggil function area dari kelas                                                               //Rectangle untuk menghitung area                                                                  //rectangle2 (yaitu 10*4)

cout << “area rectangle2 = “ << rectangle2.area();

}

 

program diatas akan mencetak dimonitor:

area rectangle1 = 1

area rectangle2 = 40

 

Untuk lebih mengerti tentang class, kita lihat contoh diatas. Dalam           pemrograman C++, mungkin kita membutuhkan suatu jenis data type yang         baru, untuk mempermudah pemrograman (dengan bersifat object-oriented).         Untuk itu kita mendeklarasikan class, yang adalah data type yang baru yang       kita buat khusus untuk pemakaian kita (dalam hal ini class Rectangle). Class           Rectangle memiliki beberapa member yaitu x dan y yang menyimpan data panjang dan lebar dari sebuah persegi panjang. Lalu ada beberapa function, yaitu setX() dan setY(), untuk mengubah value x dan y.

 

Setelah kita mendeklarasikan kelas Rectangle beserta membernya. Kita      memberi definisi pada functionnya dengan:

 

void Rectangle::setX(int inputX) {

x = inputX;

}

void Rectangle::setY(int inputY) {

y = inputY;

}

int Rectangle::area();

return x*y;

}

 

Dengan function diatas, kita dapat mengubah value x dan y dengan          memanggil fungsi setX() dan setY(), dan menghitung area sebuah

persegi panjang dengan area().

 

Contoh pemakaian class ditunjukan dalam function main(). Perintah “Rectangle rectangle1(2,2)”, mendeklarasikan sebuah  obyek(rectangle1) dari data type Rectangle dan menginisialisasikan value x=2 dan y=2. Sedangkan perintah “Rectangle rectangle2(3,4)”mendeklarasikan obyek rectangle2 dan menginisialisasikan value x=3 dan y=4;

 

Ketika kita mendeklarasikan beberapa obyek berbentuk data type Rectangle, maka value x dan y dari obyek-obyek tersebut tidak berhubungan, mengubah isi x/y dari obyek yang satu tidak akan mempengaruhi yang lain, demikian juga ketika penghitungan area dilakukan pada satu obyek, maka hasilnya tidak     akan dipengaruhi value x/y dari obyek yang lain.

 

Ketika function rectangle1.area() dipanggil, maka area persegi panjang               rectangle1pun dihitung (2*2), dan hasilnya dikembalikan.

 

Ketika function rectangle2.setX(10) dipanggil, maka value x dari obyek rectangle2pun diubah dari 3 menjadi 10 (ingat, rectangle1 dan rectangle2 tidak berhubungan, value x dan y mereka berbeda. Value x dari rectangle1        tidak berubah ketika rectangle2.setX(10) dipanggil).

 

Ketika function rectangle2.area() dipanggil, maka area persegi panjang               rectangle2pun dihitung (10*4) dan hasilnya dikembalikan.

 

Terakhir kita ingin melihat function constructor dan destructor, constructor adalah sebuah function untuk menginisialisasi data type baru yang kita buat (dalam hal ini Rectangle), sedangkan destructor adalah sebuah function untuk melakukan apa yang diperlukan ketika sebuah obyek dari Rectangle dihancurkan(baik karena perintah yang kita panggil untuk menghapus obyek tersebut, maupun karena masa aktifnya habis, contoh: obyek dibentuk dalam satu function dan functionnya selesai dijalankan).

 

4.7.3   Memory Allocation

                   Dalam banyak program, kita dapat mengalokasikan memory                               yang ingin kita pakai sebelum program dirun. Tetapi ada juga banyak              kasus dimana kita perlu mengalokasikan sejumlah memory ketika                             program sedang running(berjalan). Pengalokasian dalam runtime ini            dinamakan Dynamic Memory Allocation.Dalam C++, kita menggunakan                   perintah new dan delete, untuk mengalokasikan dan menghapus                         memory dalam runtime.

 

 

Cara menggunakan perintah new:

apointer = new type;        -> untuk mengalokasikan satu elemen

apointer = new type[];      -> untuk mengalokasikan lebih dari satu                                                                    elemen (array)

 

menggunakan perintah delete:

delete apointer;                -> membebaskan memory yang dipakai satu                                                              elemen

delete [] apointer;            -> membebaskan memory suatu array

 

contoh program:

#include <iostream>

using namespace std;

 

int main() {

int element_number;

float *float_array;

 

cout << “type in number of element for the float array: “;

cin >> element_number;

float_array = new float[element_number];

for(int i=0; i<element_number; i++) {

float_array[i] = 0;

}

delete [] float_array;

}

 

Dalam contoh diatas, jumlah elemen dari array yang diingini ditanyakan              pada user, lalu pengalokasian memory dilakukan dengan perintah:

 

float_array = new float[element_number];

 

Setelah pengalokasian, array dapat digunakan secara normal seperti array biasa. Lalu, sebelum program selesai, pembebasan dari memory dilakukan dengan perintah:

 

delete [] float_array;

 

Dynamic Memory Allocation juga dapat dilakukan pada class.

 

 

4.7.4   Polymorphism

                   Polymorphism adalah sebuah konsep yang luar biasa dan menjadi                       kekuatan tersendiri untuk Object-Oriented Programming.

 

Contoh Program menjelaskan Polymorphism:

 

1 #include <iostream>

2 using namespace std;

 

3 // mendeklarasikan class Polygon

4 class Polygon {

5        protected:

7                 int width, height;

8        public:

9                 Polygon(int inputWidth, inputHeight) {

10                         width = inputWidth;

11                         height = inputHeight;

12                }

 

13                virtual int area() {

14                         return 0;

15                }

16 };

 

17 class Rectangle: public Polygon {

18      public:

19                Rectangle(int a, int b) {

20                         width = a;

21                         height = b;

22                }

23                int area() {

24                         return width*height;

25                }

26 };

 

27 class Triangle: public Polygon {

28      public:

29                Triangle(int a, int b) : Polygon (a, b);

30                float area() {

31                         return (width*height/2);

32                }

33 };

 

34 int main() {

35      Rectangle rectangle1(3, 4);

36      Triangle triangle1(4, 5);

37      Polygon polygon1(2,2);

 

38      Polygon *polygon_pointer1 = &rectangle1;

39      Polygon *polygon_pointer2 = &triangle1;

40      Polygon *polygon_pointer3 = &polygon1;

 

41      cout << polygon_pointer1->area() << endl;

42      cout << polygon_pointer2->area() << endl;

43      cout << polygon_pointer3->area() << endl;

44 }

 

Kita akan mempelajari konsep polymorphism dari contoh diatas. Contoh diatas terdapat urutan angka disamping kiri untuk mempermudah penjelasan.

 

Diprogram diatas ada satu base class(Polygon), dan dua children class(Rectangle dan Triangle). Dalam function main (baris 35, 36 dan 37), obyek Rectangle, Triangle dan Polygon pun dibuat. Dalam baris 38, 39 dan 40,         konsep polymorphism dimulai. Pointer kepada obyek polygon dibentuk (polygon_pointer1, polygon_pointer2, polygon_pointer3), lalu dibuat untuk      menunjuk pada obyek rectangle1, triangle1 dan polygon1. Hal ini dapat     dilakukan karena Rectangle dan Triangle adalah anak class (berarti sejenis)      dengan Polygon.

 

Pada baris 41, ketika polygon_pointer1 (yang menunjuk pada rectangle1) memanggil function area(), secara otomatis, program akan memanggil   function area() milik Rectangle dan bukan milik Polygon atau Triangle.   Sedangkan pada baris 42, ketika polygon_pointer2 (yang menunjuk pada        triangle1) memanggil function area(), secara otomatis, program akan   memanggil function area() milik Triangle. Demikian juga pada baris 43,     function area() yang terpanggil oleh polygon_pointer3 adalah function area()         milik Polygon. Inilah konsep polymorphism, yaitu bahwa dengan satu jenis base class pointer (dalam hal ini pointer pada Polygon), program dapat secara        otomatis membedakan function mana yang harus dipanggil (function area()     dari Rectangle, Triangle, atau Polygon) dengan melihat obyek apa yang     sedang ditunjuk pointer tersebut. Kita lihat dari baris 13, 14 dan 15, ada         pendefinisian function area() dalam kelas Polygon. Juga kita lihat ada keyword           virtual yang dipakai. Ini digunakan agar ketika pemanggilan function area()           dipanggil, secara otomatis pemilihan function area() dapat dilakukan           tergantung dari obyek apa yang ditunjuk oleh pointer tersebut. Class yang mendeklarasikan membernya dengan virtual disebut polymorphic class.

 

4.7.5   Inheritance

Inheritance adalah sebuah jenis hubungan ibu dan anak antar kelas. Dimana ketika sebuah anak kelas melakukan inheritance kepada ibu kelas(base class), maka anak kelas tersebut memiliki juga member-member yang dapat diakses(protected dan public) pada base class selain dari member-membernya yang didefinisikan dalam kelasnya sendiri. Konsep ini biasa digunakan ketika ada suatu kesamaan dari properti dari kelas tersebut. Contoh yang akan diberikan adalah Polygon(base class) dan Rectangle (sebagai anak kelas) dan Triangle (sebagai anak kelas). Ada kesamaan properti dari Rectangle(persegi panjang) dan Triangle (segitiga),     yaitu panjang dan tinggi.

 

Cara mendeklarasikan inheritance suatu kelas:

class child_class: public base_class;

 

Contoh program:

 

#include <iostream>

using namespace std;

 

// mendeklarasikan class Polygon

class Polygon {

protected:

int width, height;

public:

// pendeklarasian dan pendefinisian constructor. Dalam contoh                          // sebelumnya kita lakukan pendeklarasian dan pendefinisian terpisah,                    // tidak ada bedanya, keduanya dapat dilakukan.

Polygon(int inputWidth, inputHeight) {

width = inputWidth;

height = inputHeight;

}

};

 

class Rectangle: public Polygon {

public:

Rectangle(int a, int b) {

width = a;

height = b;

}

int area() {

return width*height;

}

};

 

class Triangle: public Polygon {

public:

Triangle(int a, int b) : Polygon (a, b);

float area() {

return (width*height/2);

}

};

 

int main() {

Rectangle rectangle1(3, 4);

Triangle triangle1(4, 5);

 

cout << “area of rectangle1=” << rectangle1.area();

// area of rectangle1 is counted by calling Rectangle’s                                        // function of area(), width*height

cout << “area of triangle1=” << triangle1.area();

// area of triangle1 is counted by calling Triangle’s                                             // function of area(), width*height/2

}

Program diatas akan mencetak dimonitor:

area of rectangle1=12

area of triangle1=10

 

Dari contoh diatas, kita dapat melihat bagaimana inheritance digunakan. Kelas Rectangle dan Triangle mempunyai kesamaan properti yaitu width dan height,          namun memiliki rumus yang berbeda untuk menghitung area. Melalui   inheritance, mereka dapat memiliki properti width dan height dari class       Polygon, namun memiliki member function area() yang berbeda.

Pertama, class Polygon didefinisikan secara biasa, namun member width dan height dideklarasikan dengan akses proctected, agar dapat dimiliki juga oleh       anak kelas.

 

Kedua, dalam pendeklarasian class Rectangle, inheritancepun digunakan    dengan bentuk “class Rectangle : public Polygon”. Maka width dan height    menjadi member class Rectangle secara otomatis. Constructor Rectanglepun           didefinisikan melalui:

 

Rectangle(int a, int b) {

width = a;

height =b;

}

 

Ketiga, dalam class Triangle, inheritancepun digunakan terhadap class Polygon. Namun ada perbedaan dalam pendeklarasian constructor Triangle dengan class Rectangle:

 

Triangle (int a, int b) : Polygon(a, b);

 

Dalam constructor Triangle, class Triangle menggunakan constructor milik class Polygon, dengan memanggil constructor Polygon melalui cara diatas.

 

Jadi, dalam menggunakan inheritance, kita dapat menggunakan constructor ibu kelas, atau juga mendefinisikan constructor sendiri.

 

Keempat, obyek Rectangle dan Trianglepun dibuat dalam function main(). Dengan perintah:

rectangle1.area();

 

function area() dari class Rectanglepun dijalankan.

 

Sedangkan dengan perintah:

triangle1.area();

 

function area() dari class Trianglepun dijalankan.

 

Kita dapat melihat kegunaan inheritance dari contoh diatas, dimana walaupun class Rectangle dan Triangle dapat berbagi kesamaan properti dari class Polygon, namun memiliki perbedaan dalam function area().

 

4.8        Merancang aplikasi berorientasi obyek

                   Kita lihat kalau “virtual function area()” diatas memiliki definisi yaitu          “return 0”.  Namun contoh sebuah abstract class adalah sebagai berikut:

 

class Polygon {

protected:

int width, height;

public:

Polygon(int inputWidth, inputHeight) {

width = inputWidth;

height = inputHeight;

}

virtual int area() = 0;

};

 

Kita lihat kalau diatas function “virtual int area()” tidak memiliki definisi     melainkan hanya dibuat “= 0”. Kelas seperti ini disebut abstract class.

 

Dalam abstract class, kita tidak dapat membuat obyek kelas tersebut secara        langsung, namun kita dapat membuat pointer pada kelas tersebut. Jadi dalam contoh abstract class Polygon diatas:

 

Polygon polygon1;                     => tidak valid

Polygon *pointer_to_polyton      => valid

Jadi, sebuah abstract class hanya berguna untuk inheritance dan     polymorphism seperti yang dijelaskan diatas.

 

4.9        Menerapkan System call

                   HEADING: Unix System Call dalam C++

Jika kita menjalankan program C++ dalam environment unix/linux, kita dapat     memanggil suatu perintah seolah-olah langsung dari command line. Kita         menggunakan perintah “system”.

 

Contoh program:

 

#include <stdlib.h>                   // Perlu include stdlib.h untuk mengunakan                                                       perintah

// “system”

using namespace std;

 

int main() {

cout << “file yang ada dalam directory: “ << endl;

system(“ls -l”);

}

 

Program diatas akan menjalankan command line “ls -l” dari unix/linux, yaitu suatu perintah untuk memberi daftar file dalam suatu                                                              directory/folder.

 

4.10     Menerapkan network programing

                   Dalam network programming, socket adalah alat untuk berkomunikasi       terhadap program/computer lain.

Ada dua jenis socket yang kita akan pelajari: TCP (Transmission Control    Protocol), yang adalah suatu jenis transmisi data dimana data akan sampai   dengan urutan yang sama dengan pengiriman data. TCP adalah jenis         komunikasi dua arah (setelah pengiriman, ada pengecekan dari penerima data         dan pengiriman status kembali kepada pengirim).  Sedangkan UDP (User   Datagram Protocol), adalah suatu jenis data transmisi dimana data akan         sampai dengan urutan yang tidak selalu sama dengan pengiriman data. UDP        disebut connectionless, karena komunikasi tidak perlu terus menerus terbuka       setelah pengirim selesai mengirim data.

 

Dalam program client-server TCP, ada beberapa langkah yang perlu dilakukan.    Langkah yang diperlukan untuk sebuah server untuk melakukan komunikasi adalah:

  1. Membuat socket dengan memanggil socket()
  2. mengaitkan socket dengan alamat/port dengan bind()
  3. menunggu koneksi dengan listen()
  4. menerima koneksi dengan accept()
  5. berkomunikasi

 

Langkah-langkah yang diperlukan untuk client:

  1. membuat socket dengan memanggil socket()
  2. membuat koneksi dengan server dengan memanggil connect()
  3. berkomunikasi (ada beberapa cara, bisa dengan read() dan write())

 

Dibawah adalah contoh program client-server menggunakan TCP(diambil dari           www.cs.rpi.edu/courses/sysprog/sockets/sock.html). Didalam program dibawah   terdapat langkah-langkah komunikasi client-server yang dijelaskan diatas.     Dalam program dibawah, setelah server membuka socket, ia akan menunggu       client untuk mengirim data. Setelah menerima data, server akan   mengkonfirmasi dengan pesan “I got your message” pada client.

 

Sebagai dasar network programming, banyak syntax/perintah dibawah yang       tidak dapat dijelaskan dalam unit ini secara detail. Dan juga begitu banyak        perbedaan antara setiap environment (unix/windows), sehingga perlunya        pendalaman khusus.

 

Contoh Program Server TCP:

 

#include <stdio.h>

#include <sys/types.h>

#include <sys/socket.h>

#include <netinet/in.h>

 

void error(char *msg)

{

perror(msg);

exit(1);

}

 

int main(int argc, char *argv[])

{

int sockfd, newsockfd, portno, clilen;

char buffer[256];

struct sockaddr_in serv_addr, cli_addr;

int n;

if (argc < 2) {

fprintf(stderr,”ERROR, no port provided\n”);

exit(1);

}

sockfd = socket(AF_INET, SOCK_STREAM, 0);      // 1. membuat socket

if (sockfd < 0)

error(“ERROR opening socket”);

bzero((char *) &serv_addr, sizeof(serv_addr));

portno = atoi(argv[1]);

serv_addr.sin_family = AF_INET;

serv_addr.sin_addr.s_addr = INADDR_ANY;

serv_addr.sin_port = htons(portno);

if (bind(sockfd, (struct sockaddr *) &serv_addr,    // 2. mengikat socket

sizeof(serv_addr)) < 0)

error(“ERROR on binding”);

listen(sockfd,5);                                                 // 3. menunggu panggilan

clilen = sizeof(cli_addr);

newsockfd = accept(sockfd,                                // 4. menerima panggilan

(struct sockaddr *) &cli_addr,

&clilen);

if (newsockfd < 0)

error(“ERROR on accept”);

bzero(buffer,256);

n = read(newsockfd,buffer,255);                         // 5. membaca message client

if (n < 0) error(“ERROR reading from socket”);

printf(“Here is the message: %s\n”,buffer);

n = write(newsockfd,”I got your message”,18);     // 6. memberi message pada                                                                           // client

if (n < 0) error(“ERROR writing to socket”);

return 0;

}

Contoh Program Client TCP:

#include <stdio.h>

#include <sys/types.h>

#include <sys/socket.h>

#include <netinet/in.h>

#include <netdb.h>

 

void error(char *msg)

{

perror(msg);

exit(0);

}

 

int main(int argc, char *argv[])

{

int sockfd, portno, n;

struct sockaddr_in serv_addr;

struct hostent *server;

 

char buffer[256];

if (argc < 3) {

fprintf(stderr,”usage %s hostname port\n”, argv[0]);

exit(0);

}

portno = atoi(argv[2]);

sockfd = socket(AF_INET, SOCK_STREAM, 0);       // membuat socket

if (sockfd < 0)

error(“ERROR opening socket”);

server = gethostbyname(argv[1]);

if (server == NULL) {

fprintf(stderr,”ERROR, no such host\n”);

exit(0);

}

bzero((char *) &serv_addr, sizeof(serv_addr));

serv_addr.sin_family = AF_INET;

bcopy((char *)server->h_addr,

(char *)&serv_addr.sin_addr.s_addr,

server->h_length);

serv_addr.sin_port = htons(portno);

if (connect(sockfd,&serv_addr,sizeof(serv_addr)) < 0)      // connect pada server

error(“ERROR connecting”);

printf(“Please enter the message: “);

bzero(buffer,256);

fgets(buffer,255,stdin);

n = write(sockfd,buffer,strlen(buffer));                            // mengirim data pada

// server

if (n < 0)

error(“ERROR writing to socket”);

bzero(buffer,256);

n = read(sockfd,buffer,255);                                          // membaca data dari

// server

if (n < 0)

error(“ERROR reading from socket”);

printf(“%s\n”,buffer);

return 0;

}

 

Ada sedikit perbedaan antara program client-server UDP dan TCP. Dalam program server UDP, tidak ada listen() dan accept(). Sedangkan dalam       program client UPD, tidak ada panggilan connect(). Perinta recvfrom() dan          sendto() digunakan untuk menggantikan read() dan write() baik dalam client maupun server.

 

Contoh Program Server UDP:

#include <sys/types.h>

#include <sys/socket.h>

#include <netinet/in.h>

#include <netdb.h>

#include <stdio.h>

 

void error(char *msg)

{

perror(msg);

exit(0);

}

 

int main(int argc, char *argv[])

{

int sock, length, fromlen, n;

struct sockaddr_in server;

struct sockaddr_in from;

char buf[1024];

 

if (argc < 2) {

fprintf(stderr, “ERROR, no port provided\n”);

exit(0);

}

sock=socket(AF_INET, SOCK_DGRAM, 0);                        // membuat socket

if (sock < 0) error(“Opening socket”);

length = sizeof(server);

bzero(&server,length);

server.sin_family=AF_INET;

server.sin_addr.s_addr=INADDR_ANY;

server.sin_port=htons(atoi(argv[1]));

if (bind(sock,(struct sockaddr *)&server,length)<0)                    //mengikat socket                                                                                          //dengan address

error(“binding”);

fromlen = sizeof(struct sockaddr_in);

while (1) {

n = recvfrom(sock,buf,1024,0,(struct sockaddr *)&from,&fromlen);

//menerima data

//dari client

if (n < 0) error(“recvfrom”);

write(1,”Received a datagram: “,21);

write(1,buf,n);

n = sendto(sock,”Got your message\n”,17,                   //mengirim data kepada                                                                                  //client

0,(struct sockaddr *)&from,fromlen);

if (n  < 0) error(“sendto”);

}

}

Contoh program client UDP:

#include <sys/types.h>

#include <sys/socket.h>

#include <netinet/in.h>

#include <arpa/inet.h>

#include <netdb.h>

#include <stdio.h>

 

void error(char *);

int main(int argc, char *argv[])

{

int sock, length, n;

struct sockaddr_in server, from;

struct hostent *hp;

char buffer[256];

if (argc != 3) { printf(“Usage: server port\n”);

exit(1);

}

sock= socket(AF_INET, SOCK_DGRAM, 0);             //membuat socket

if (sock < 0) error(“socket”);

 

server.sin_family = AF_INET;

hp = gethostbyname(argv[1]);

if (hp==0) error(“Unknown host”);

 

bcopy((char *)hp->h_addr,

(char *)&server.sin_addr,

hp->h_length);

server.sin_port = htons(atoi(argv[2]));

length=sizeof(struct sockaddr_in);

printf(“Please enter the message: “);

bzero(buffer,256);

fgets(buffer,255,stdin);

n=sendto(sock,buffer,                                          //mengirim data pada server

strlen(buffer),0,&server,length);

if (n < 0) error(“Sendto”);

n = recvfrom(sock,buffer,256,0,&from, &length);    //menerima data dari server

if (n < 0) error(“recvfrom”);

write(1,”Got an ack: “,12);

write(1,buffer,n);

}

 

void error(char *msg)

{

perror(msg);

exit(0);

}

 

 

4.11     Menerapkan database connection

                   ODBC adalah sebuah spesifikasi yang disediakan untuk Konektivitas           sebuah bahasa pemrograman dengan database engine. ODBC mengspesifikasikan penggunaan bahasa SQL dalam bahasa pemrograman        procedural(seperti c++) untuk mengakses database.

 

Dengan ODBC, C++ dapat melakukan koneksi dan komunikasi dengan      database engine dalam bahasa yang mirip SQL. Namun, sekali lagi seperti      dalam network programming, pemakaian ODBC bervariasi tergantung        environment yang ada (unix/windows). Dalam unit ini, penjelasan detail dari           syntax tidak dapat dijelaskan.

 

Contoh Program Database Connection dengan ODBC (diambil dari           www.easysoft.com/developer/languages/c/odbc_tutorial.html):

 

 

#include <stdio.h>

#include <sql.h>

#include <sqlext.h>

 

/*

* see Retrieving ODBC Diagnostics

* for a definition of extract_error().

*/

static void extract_error(

char *fn,

SQLHANDLE handle,

SQLSMALLINT type);

 

main() {

SQLHENV env;

SQLHDBC dbc;

SQLHSTMT stmt;

SQLRETURN ret; /* ODBC API return status */

SQLCHAR outstr[1024];

SQLSMALLINT outstrlen;

 

/* Allocate an environment handle */

SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &env);

/* We want ODBC 3 support */

SQLSetEnvAttr(env, SQL_ATTR_ODBC_VERSION, (void *) SQL_OV_ODBC3, 0);

/* Allocate a connection handle */

SQLAllocHandle(SQL_HANDLE_DBC, env, &dbc);

 

/* Connect to the DSN mydsn */

  ret = SQLDriverConnect(dbc, NULL, “DSN=mydsn;”, SQL_NTS,

                         outstr, sizeof(outstr), &outstrlen,

                         SQL_DRIVER_COMPLETE);

                                                                   // SQLDriverConnect                                                                                 // memberikan konektivitas                                                                     // dengan database

if (SQL_SUCCEEDED(ret)) {

printf(“Connected\n”);

printf(“Returned connection string was:\n\t%s\n”, outstr);

if (ret == SQL_SUCCESS_WITH_INFO) {

printf(“Driver reported the following diagnostics\n”);

extract_error(“SQLDriverConnect”, dbc, SQL_HANDLE_DBC);

}

SQLDisconnect(dbc);         /* disconnect from driver */

} else {

fprintf(stderr, “Failed to connect\n”);

extract_error(“SQLDriverConnect”, dbc, SQL_HANDLE_DBC);

}

/* free up allocated handles */

SQLFreeHandle(SQL_HANDLE_DBC, dbc);

SQLFreeHandle(SQL_HANDLE_ENV, env);

}

Example output of the above program :

Connected

Returned connection string was: DSN=mydsn;SERVERPORT=server:8888;TARGETDSN=test;UID=dbuser;PWD=dbpass; LOGONUSER=fred;LOGONAUTH=mypass;

 

BAB V

SUMBER – SUMBER YANG DIPERLUKAN

UNTUK PENCAPAIAN KOMPETENSI

 

 

5.1        Sumber Daya Manusia

Dalam proses pencapaian kompetensi sumber yang dapat diandalkan adalah sumber daya manusia. Sumber daya manusia yang dimaksud disiini adalah orang-orang yang dapat mendukung proses pencapaian kompetensi yang dimaksud, antara lain:

  • Pembimbing

Pembimbing Anda merupakan orang yang dapat diandalkan karena beliau memiliki pengalaman. Peran Pembimbing adalah untuk :

  1. Membantu Anda untuk merencanakan proses belajar.
  2. Membimbing Anda melalui tugas-tugas pelatihan yang dijelaskan dalam tahap belajar.
  3. Membantu Anda untuk memahami konsep dan praktik baru dan untuk menjawab pertanyaan Anda mengenai proses belajar Anda.
  4. Membantu Anda untuk menentukan dan mengakses sumber tambahan lain yang Anda perlukan untuk belajar Anda.
  5. Mengorganisir kegiatan belajar kelompok jika diperlukan.
  6. Merencanakan seorang ahli dari tempat kerja untuk membantu jika diperlukan.

 

  • Penilai

Penilai Anda melaksanakan program pelatihan terstruktur untuk penilaian di tempat kerja. Penilai akan :

  1. Melaksanakan penilaian apabila Anda telah siap dan merencanakan proses belajar dan penilaian selanjutnya dengan Anda.

 

 

  1. Menjelaskan kepada Anda mengenai bagian yang perlu untuk diperbaiki dan merundingkan rencana pelatihan selanjutnya dengan Anda.
  2. Mencatat pencapaian / perolehan Anda.

 

  • Teman kerja/sesama peserta pelatihan

Teman kerja Anda/sesama peserta pelatihan juga merupakan sumber dukungan dan bantuan. Anda juga dapat mendiskusikan proses belajar dengan mereka. Pendekatan ini akan menjadi suatu yang berharga dalam membangun semangat tim dalam lingkungan belajar/kerja Anda dan dapat meningkatkan pengalaman belajar Anda.

 

5.2        Literatur

Disamping dengan belajar dengan orang-orang seperti yang disebutkan diatas, Anda tentu perlu juga terus menambah wawasan dan pengetahuan Anda dari sumber-sumber bacaan seperti buku-buku yang berkaitan dengan kompetensi yang Anda pilih, jurnal-jurnal, majalah, dan sebagainya.

Literatur dalam hal ini tentu bukan saja material berupa bacaan atau buku melainkan termasuk pula material-material lainnya yang menjadi pendukung proses pembelajaran ketika peserta pelatihan sedang menggunakan Pedoman Belajar ini. Misalnya rekaman dalam bentuk kaset, videp, dan sebagainya.

Buku referensi, lembar kerja, tugas-tugas kerja juga dapat digunakan dalam proses pencapaian kompetensi. Peserta boleh mencari dan menggunakan sumber-sumber alternatif lain yang lebih baik atau sebagai pendukung tambahan atau jika ternyata sumber-sumber yang direkomendasikan dalam pedoman belajar ini tidak tersedia/tidak ada.

Untuk referensi mengenai materi-materi yang dapat digunakan, Anda dapat melihat dari Daftar Pustaka yang terlampir dihalaman terakhir modul ini.

 

 

 

5.3        Lain-lain

Untuk memahami dan dapat membuat program aplikasi berbasis C++ secara baik dan benar yaitu dengan cara mempraktekan secara langsung cara cara yang diajarakan didalam modul ini.

Aplikasi yang digunakan adalah Borland C++

 

 

5.4         Daftar Peralatan dan Bahan yang digunakan

 

  1. Judul/Nama Pelatihan        :    Membuat program aplikasi berbasis C++
  2. Kode Program Pelatihan    :    TIK.PR08.001.01

 

NO

UNIT

KOMPETENSI

KODE UNIT

DAFTAR PERALATAN

DAFTAR BAHAN

KETERANGAN

1.

Membuat program aplikasi berbasis C++

TIK.PR08.001.01

- Unit PC (Personal Computer) dengan Software

- PC dengan sistem operasi Windows XP

- Keyboard dan mouse

 

- CD installer untuk burn Borland C++.

- Buku informasi atau manual installation C++.

 

-

 

 

 

 

 

 

 

DAFTAR PUSTAKA

 

 

 

 

 

Testimoni

Advertisement
  1. Toko Kain Batik Cap Terbaik di Solo
  2. Toko Baju Batik Terbaik di Solo
  3. Aneka Kain Batik dengan Harga Murah
  4. Baju Batik Sarimbit Terbaik
  5. Dapatkan Kain Batik Berkualitas dengan Diskon 25%
  6. Aneka Baju Batik Seragam Kantor
  7. Pembuatan Seragam Batik Berlogo
slideseragambatik
Filed under : blog, tags: