BAB 6 POINTER DAN REFERENCE

Ukuran: px
Mulai penontonan dengan halaman:

Download "BAB 6 POINTER DAN REFERENCE"

Transkripsi

1 BAB 6 POINTER DAN REFERENCE. 6.1 Pendahuluan Salah satu kelebihan dari bahasa C/C++ adalah karena bahasa ini mendukung sepenuhnya untuk pemanipulasian memori dengan menggunakan pointer. Namun di balik itu, pointer juga merupakan salah satu fitur C++ yang berbahaya karena dapat mengakibatkan sistem operasi pada komputer kita menjadi crash (rusak). Penggunaan pointer dengan cara yang salah juga dapat menyebabkan bug yang sangat sulit untuk ditemukan pada program kita. Bagian ini akan menjelaskan bagaimana pointer bekerja dan mengapa penggunaan pointer tersebut sangat dibutuhkan dalam program. Melalui bab ini diharapkan Anda dapat mengenal pointer secara lebih dalam dan mampu mengimplementasikannya pada kasus-kasus program yang Anda hadapi. 6.2 Variabel Pointer Sebelum melangkah lebih jauh, mungkin Anda bingung apa sebenarnya pointer? Secara definisi, pointer dapat dikatakan sebagai suatu variabel yang menyimpan alamat memori. Pada babbab sebelumnya kita sudah terbiasa dengan penggunaan variabel, tapi variabel-variabel tersebut hanya berisi nilai, bukan alamat. Pemrograman CM Bab 6: Pointer dan Reference

2 Jika kita mempunyai sebuah variabel dengan tipe data tertentu, maka untuk mendapatkan alamat dari variabel tersebut adalah dengan menggunakan operator &. Alamat inilah yang kemudian akan disimpan ke dalam variabel yang bertipe pointer. Sedangkan untuk mendeklarasikan variabel sebagai pointer, kita hanya menambahkan tanda asterisk (*) di depan nama variabel.berikut ini bentuk umum dari pendeklarasian variabel yang bertipe pointer. tipe_data *nama_pointer; Sebagai catatan bahwa penulisan di atas dapat diganti dengan tipe_data* nama_pointer atau tipe_data * nama_pointer. Tipe data di atas berguna untuk menyatakan bahwa pointer yang kita deklarasikan tersebut akan ditempati oleh data dengan tipe tertentu. Sebagai contoh, kita akan mendeklarasikan pointer P yang akan ditempati oleh tipe data long, maka bentuk pendeklarasiannya adalah sebagai berikut : long *P; // Mendeklarasikan pointer P 1 // yang akan menunjuk ke tipe long Jika kita mempunyai sebuah variabel yang bertipe long (misalnya X), maka kita dapat memerintahkan pointer P di atas untuk menunjuk ke alamat yang ditempati oleh variabel X. Adapun sintaks untuk melakukan hal tersebut adalah seperti yang terlihat di bawah ini. long X; // Mendeklarasikan variabel X dengan tipe long P = : &X; // Memerintahkan P untuk menunjuk alamat dari variabel x : " HHHHHHHHP "BHHBBBBHHHHHB Apabila kita analisis potongan sintaks di atas, sebenarnya konsepnya sangat sederhana. Kita tahu bahwa P adalah pointer (berisi alamat) dan &X juga berisi alamat, maka kita dapat menyimpan alamat dari variabel X tersebut ke dalam pointer P. Kita tidak diizinkan untuk memasukkan sebuah nilai (bukan alamat) ke dalam pointer P. Misalnya dengan menuliskan sintaks seperti berikut : P «X; // SAIAH, karena X berupa nilai (bukan berupa alamat) Jika kita memang ingin mengisikan nilai ke dalam alamat yang disimpan oleh pointer P, maka seharusnya kita menggunakan tanda asterisk (*) di depan nama pointer tersebut, yaitu dengan mengubah sintaks di atas menjadi seperti di bawah ini. *P.= X; // BENAR, karena *P adalah?; nilai // yang berada pada pointer P Pemrograman C++ Sebagai catatan bahwa * P ini disebut dengan dereference pointer. Untuk dapat lebih memahami konsep pointer. Berikut ini gambar yang mengilustrasikan kasus di atas. Pointer P Alamat X (&% Alamat 2 Alamat 3 Alamat 4 Memori Pada gambar di atas alamat 1 dari memori ditempati oleh variabel X yang bertipe long. Adapun nilai dari variabel X tersebut adalah 10. Di atas kita mempunayai pointer P yang menunjuk ke alamat X, maka untuk mendapatkan nilai X kita dapat menggunakan dereference pointer, yaitu dengan *P. Dengan demikian dapat disimpulkan bahwa jika : P'» &X; // Keduanya menyimpan alamat Maka : *P «: :..X // Keduanya menyimpan nilai Untuk membuktikan hal di ' atas, di sini kita akan mengimplementasikannya ke dalam sebuah program sederhana. Adapun sintaks program tersebut adalah sebagai berikut : long *P; long X; P = &X; X = 10; cout«"nilai X cout«"nilai *P Bab 6: Pointer dan Reference Kode Program 6-1 // Mengisikan nilai 10 ke dalam variabe x «X«endl; v «*P«endl; Niia

3 cout«"nilai P cout«"nilai &X *«P«endl; "«&X«endl ; f P = 200; // Mengisikan nilai 200 ke dalam *P cout«"nilai X cout«"nilai *P,cout«"Nilai P cout«"nilai &X ( «X«endl; x<*p«endl; 1 «P«endl; '«&X«endl, Contoh hasil yang akan diberikan dari program di atas adalah sebagai berikut: Nilai X Nilai *P Nilai P Nilai &X Nilai X Nilai *P Nilai P Nilai &X : 10 : 10 : 0065FDFC : 0065FDFC : 200 :200 : 0065FDFC : 0065FDFC Jika kita amati hasil program di atas, pada saat kita mengisikan variabel X dengan nilai 10, *P juga akan bernilai 10. Sedangkan pada saat kita memasukkan nilai ke dalam *P dengan nilai 200, variabel X juga akan berubah nilainya menjadi 200. Hal ini menunjukkan bahwa *P akan selalu sama dengan X, dan ini semua disebabkan karena *P dan variabel X tersebut menempati alamat yang sama. 6.3 Memasukkan Nilai pada Pointer Pada sub bab ini kita akan membahas bagaimana cara memasukkan nilai pada pointer. Nilai yang dimaksud di sini tentu berupa alamat, bukan berupa nilai data. Walaupun tampak mudah tapi kita juga harus berhati-hati dalam melakukan hal ini. Perlu diperhatikan bahwa tipe data dari pointer harus sama dengan tipe Pemrograman C++ data dari variabel yang akan menempatinya. Hal ini merupakan hal yang biasa terabaikan oleh para programmer pemula. Misalnya kita mendeklarasikan pointer P ke tipe double dan kita juga memiliki variabel X yang bertipe int. Pada kasus ini kita tidak diizinkan untuk menyimpan alamat dari variabel X ke pointer P karena tipenya berbeda. Berikut ini sintaks programnya. double *P; MMHHK*' int X; // Mendeklarasikan variabel yang bertipe int P = &X; /* SALAH, karena P hanya dapat menyimpan alamat dari variabel-variabel yang bertipe double saja 6.4 Pointer Tanpa Tipe Pada sub bab sebelumnya kita telah mengetahui bahwa pointer harus diisikan dengan alamat dari variabel yang bertipe sama dengan tipe pointer tersebut. Sebenarnya ada cara khusus yang untuk membuat pointer yang kita deklarasikan tersebut dapat menunjuk ke semua tipe data, yaitu dengan mendeklarasikan pointer tersebut sebagai pointer tanpa tipe. Pointer semacam ini sering dinamakan dengan void pointer. Adapun bentuk umum untuk mendeklarasikan pointer tanpa tipe ini adalah sebagai berikut : void *nama_pointer; Berikut ini contoh program yang dapat membuktikan bahwa pointer tanpa tipe (void pointer) dapat menyimpan alamat dari variabelvariabel yang bertipe apapun. void *P; Kode Program 6-2 // Mendeklarasikan pointer P // sebagai pointer tanpa tipe // Mendeklarasikan variabel X, Y dan Z dengan tipe berb int X; long Y; double Z; // Memerintahkan P untuk menunjuk ke alamat dari variabel X Bab 6: Pointer dan Reference

4 P = &X; X = 10; // Mengisikan variabel X dengan nilai 10 // Menampilkan has 11 cout«"nilai X : "«X«endl; cout«"nilai P : "«P«endl; cout«"nilai &X : "«&x«endl; cout«endl ; // Memerintahkan P untuk menunjuk ke alamat dari variabel Y P = &Y; Y = 2000; // Mengisikan variabel Y dengan nilai 2000 // Menampilkan has il cout«"nilai Y : "«Y«endl; cout«"nilai P : "«P«endl; cout«"nilai &Y : "«&Y«endl; cout«endl; // Memerintahkan P untuk menunjuk ke alamat dari variabel Z P o &Z; Z = ; // Mengisikan variabel Z dengan nilai // Menampilkan hasil cout«"nilai Z : "«Z«endl; cout«"nilai P : "«P«endl; cout«"nilai &Z : "«&Z«endl; return 0 ; Hasil yang akan diberikan dari program di atas adalah sebagai berikut : 6.5 Melakukan Inisialisasi pada Pointer Setiap kita mendeklarasikan sebuah pointer, maka pointer tersebut akan menunjuk lokasi acak di memori. Oleh karena itu kita harus mengeset pointer yang kita deklarasikan tersebut dalam keadaan NULL, atau tidak menunjuk lokasi manapun. Untuk membuktikan hal ini, jalankan program di bawah ini. int *P; Kode Program 6-3 // Mendeklarasikan pointer P // yang akan menunjuk tipe data int cout«"alamat yang ditunjuk oleh pointer P : "«p ; - Contoh hasil dari program di atas adalah sebagai berikut Alamat yang ditunjuk oleh pointer P : A4 Nilai X Nilai P Nilai &X Nilai Y Nilai P Nilai &Y Nilai Z Nilai P Nilai &Z FDFC 0065FDFC FDF8 0065FDF FDFO 0065FDFO Sekarang jika kita melakukan pengesetan (inisialisasi) terhadap pointer tersebut dengan nilai NULL, seperti pada program di bawah ini. ttinclude <iostream> int main{) { int *P; // Mendeklarasikan pointer P // yang akan menunjuk tipe data int P = NULL; // Mengeset pointer P dengan nilai NULL Seperti yang kita lihat di atas bahwa P dapat menunjuk ke tipe data yang berbeda-beda. Sebagai bukti dari hal ini adalah nilai P yang berbeda, yaitu sesiiai dengan alamat dari variabel yang ditunjuk. Pemrograman C++ cout«"alamat yang ditunjuk oleh pointer P : "«P; ) Bab 6: Pointer dan Reference

5 Maka hasil yang akan diperoleh adalah sebagai berikut Alamat yang ditunjuk oleh pointer P : Nilai di atas menunjukkan bahwa pointer tersebut tidak menunjuk ke lokasi acak di memori. PI = &X; / *P1 = 2; PI = &Y; // SALAH, karena nilai yang ditxmjuk oleh PI // (nilai *Pl) bersifat tetap // BENAR, karena pointer PI tidak bersifat tetaj 6.6 Konstanta pada Pointer Sama halnya seperti variabel biasa, pointer juga dapat bernilai konstan. Adapun caranya juga sama yaitu dengan menggunakan kata kunci const. Namun perlu untuk diperhatikan bahwa penempatan kata kunci const yang salah akan menyebabkan perbedaan arti. Kata kunci const dapat ditempatkan sebelum tipe data, sesudah tipe data ataupun pada keduanya (sebelum dan sesudah). Berikut ini adalah penggunaan kata kunci const pada pointer beserta arti yang dikandungnya Sebelum Tipe Data Bentuk umumnya adalah sebagai berikut : const tipe data * nama_pointer; Bentuk di atas berarti bahwa pointer akan menunjuk ke nilai dengan tipe data tertentu, dimana nilai tersebut bersifat tetap. Berikut ini contoh implementasi dari konsep di atas. f include <iostream> Kode Program 6-5 Pada program di atas kita melihat bahwa mula-mula Pi menunjuk alamat dari variabel X. Pendeklarasian const int *P1 menyatakan bahwa pointer PI menunjuk ke nilai yang tetap, bukan alamat yang tetap sehingga kita masih diizinkan untuk mengubah pointer PI supaya menunjuk ke alamat yang baru, yaitu alamat dari variabel Y Sesudah Tipe Data Bentuk umumnya adalah sebagai berikut: tipe_data * const nama_pointer; Berbeda dengan sebelumnya, di sini pointer bersifat tetap sehingga alamatnya tidak dapat diubah. Namun nilai dari variabel yang ditunjuk dapat diubah. Berikut ini contoh program yang mengimplementasikannya. ttinclude <iostream> int main(} { int X=5, Y=10; Kode Program 6-6 int * const P2 = &X;// P2 akan menunjuk ke alamat yang teta // yaitu alamat X const int *P1; "int X, Y; // PI akan menunjuk ke tipe data int // yang bersifat tetap *P2 = 2; // BENAR, karena nilai *P2 dapat diubah II P2 = &Y; // SALAH, karena pointer P2 tidak bersifat tetap Pemrograman C- Bab 6: Pointer dan Reference

6 Apabila kita amati program di atas, mula-mula X bernilai 5. Kemudian alamat X ditunjuk oleh pointer P2. Oleh karena pointer P2 merupakan pointer konstan (tetap) maka pernyataan P2 = &Y tidaklah diizinkan oleh kompiler. Namun kita masih diperbolehkan untuk mengubah nilai yang terdapat di dalam alamat tersebut Sebelum dan Sesudah Tipe Data Bentuk umumnya adalah sebagai berikut: const tipe^data * const nama_pointer; Bentuk yang ketiga ini merupakan bentuk gabungan dari bentuk yang pertama dan kedua. Artinya di sini kita mendeklarasikan pointer konstan yang menunjuk ke suatu nilai yang konstan pula. Dengan kata lain pointer ini menunjuk alamat yang tetap dimana alamat tersebut juga berisi nilai yang tetap. Berikut ini contoh penggunaannya dalam program. finclude <iostream> Kode Program 6-7 t const int * const P3 = &X; /* P2 akan menunjuk ke alamat yang tetap, yaitu alamat X dan nilai yang ditunjuk juga tetap */ II *P3 =2; // SALAH, karena nilai *P2 tidak dapat diubah II P3 = &Y; // SALAH, karena pointer P2 tidak bersifat tetap HHHH Mula-mula nilai X = 5, sedangkan alamat dari X ditunjuk oleh pointer P3. Oleh karena P3 adalah pointer yang bersifat tetap dan juga menunjuk ke nilai yang tetap, maka statemen *P = 2 dan P3 = &Y di atas tidaklah diizinkan oleh kompiler. Pemrograman C Pointer ke Pointer (Multiple Indirection) Dalam C/C+ +, kita dapat mempunyai pointer yang menunjuk ke pointer lain yang telah menunjuk ke alarnat tertentu. Situasi ini sering disebut dengan multiple indirection atau pointer ke pointer. Pointer ke pointer ini memang sering membingungkan, apalagi untuk seorang programmer pemula. Sebenarnya konsepnya sederhana, kita tahu bahwa pointer normalnya berisi alamat dari sebuah objek (variabel) yang menyimpan nilai berupa data. Sekarang kita mempunyai pointer lagi yang akan menunjuk ke pointer tadi. Sebagai gambaran, perhatikan gambar ilustrasi di bawah ini. Alamat Nilai Alamat Alamat Nilai Untuk mendeklarasikan sebuah pointer yang akan menunjuk ke pointer lain adalah dengan menggunakan tanda asterisk sebanyak dua kali (**). Sebagai contoh, jika kita mendeklarasikan pointer seperti pada potongan sintaks di bawah ini. int **P; Maka P bukan pointer yang menunjuk ke tipe data int, melainkan pointer yang menunjuk pointer ke tipe data int. Untuk dapat lebih memahaminya, perhatikan program di bawah ini. int X = 25, int *P1; int **P2; Bab 6: Pointer dan Reference Kode Program 6-8 // Mendeklarasikan variabel X // dengan nilai default 25 // Mendeklarasikan pointer PI // yang akan menunjuk ke tipe data int // Mendeklarasikan pointer P2

7 PI = &X; // yang akan menunjuk ke pointer Pi list dan pointer ke pointer masing-masing merupakan dua hal yang berbeda, sehingga keduanya memiliki konsep yang berbeda pula. P2 = &P1; // Menampi1kan nilai cout«"nilai X : cout«"nilai *P1 : cout«"nilai *P2 : cout«"nilai **P2 : cout«endl ; x «X«endl; 1 «*Pl«endl; v «*P2«endl; '«**P2«endl; // Menampilkan alamat cout«"nilai &X : w «&x«endl; cout«"nilai PI : "«Pl«endl; cout«"nilai P2 : "«P2«endl; Hasil yang akan diperoleh dari program di atas adalah sebagai berikut: Nilai X Nilai *P1 Nilai *P2 Nilai **P2 Nilai &X Nilai PI Nilai P FEOO FEOO 0065FEOO 0065FDFC 6.8 Pointer Aritmetika Sama seperti pada variabel biasa, pointer juga dapat berperan sebagai operand untuk operasi aritmetika. Situasi seperti ini lebih dikenal dengan sebutan pointer aritmetika. Namun untuk membahas pointer aritmetika ini kita perlu menyinggung sedikit tentang array dengan menggunakannya sebagai contoh. Pembahasan mengenai array sendiri akan dijelaskan secara detil pada bab selanjutnya (jbajb 7. Array) dalam buku ini. Jika kita mempunyai variabel A yang bertipe array yang berisi 5 elemen dari tipe int, maka untuk mengakses elemen-elemen array tersebut kita dapat juga menggunakan pointer (misalnya P), yaitu dengan melakukan operasi aritmetika ke dalamnya. Berikut ini gambar yang mengilustrasikan kasus tersebut. Arm - ft -L u J Arii A[1J A TOT A ^J AR1 Apj AMI A r*j inn onn ZUU ^nn juu 4nn ^nn Prtintpr P P i 1 T 1 P i 0 T P +? "P -1- A Apa yang dapat Anda simpulkan? Seperti yang kita lihat bahwa nilai X dapat diakses dengan menggunakan *P1 atau **P2, sedangkan alamat dari variabel X dapat diakses dengan menggunakan &X, P ataupun *P2 (catatan : *P2 merupakan nilai yang menempati alamat yang ditunjuk oleh pointer P2). Hal ini membuktikan bahwa pointer P2 tidak menunjuk ke tipe data int, melainkan menunjuk ke pointer Pi. Dan yang terakhir, P2 sendiri menyimpan alamat dari pointer PI. Untuk contoh di atas, P2 menyimpan alamat 0065 FDFC. Sebagai catatan bagi Anda yang pernah mempelajari struktur data lanjut seperti linked list yang menggunakan pointer, Anda jangan berasumsi bahwa hal ini sama dengan pointer ke pointer. Linked Pemrograman C++ Sebagai contoh untuk mengimplementasikan konsep pointer aritmetika, perhatikan program di bawah ini. tinclude <iostream> Kode Program 6-9 // Mendeklarasikan array dari tipe int sebanyak 5 elemen int A[5] = { 100, 200, 300, 400, 500 }; // Mendeklarasikan pointer P yang menunjuk ke tipe data i.nt int *P; Bab 6: Pointer dan Reference

8 ~ // Memerintahkan pointer P // untuk menunjuk elemen array pertama (elemen ke-0) P = &A [ 0 ] ; // Menampilkan nilai yang alamatnya ditunjuk oleh pointer P cout«"nilai *P : M «*P«endl; // Melakukan operasi aritmetika (penjumlahan) // terhadap pointer P P = P+2; // Menampilkan kembali nilai yang alamatnya ditunjuk // oleh pointer P cout«"nilai *P : "«*p«endl; // Melakukan operasi aritmetika (pengurangan) // terhadap pointer P P = P-l; // Menampilkan kembali nilai yang alamatnya ditunjuk // oleh pointer P cout«"nilai *P : "«*P«endl; // Melakukan operasi aritmetika (perkalian) terhadap pointer // P // P = P*4; // SALAH, hal ini tidak diizinkan oleh kompiler // Melakukan operasi aritmetika (pembagian) terhadap pointer // P // P = P / 2f // SALAH, hal ini tidak diizinkan oleh // kompiler Hasil yang akan diperoleh dari program di atas adalah sebagai berikut : Nilai *P : 100 Nilai *P : 300 Nilai *P : 200 Apabila kita analisis hasil dari program di atas, mula-mula pointer P menunjuk alamat dari A [ 0 ] sehingga nilai yang ditampilkan adalah 100. Kemudian kita melakukan penjumlahan pada pointer sebesar dua dengan statemen P = P + 2, hal ini akan menyebabkan pointer akan menunjuk ke alamat dari A [ 3 ] sehingga nilai yang ditampilkan adalah 300. Terakhir, kita melakukan pengurangan Pemrograman C++ terhadap pointer P sebesar 1 dengan statemen P = P 1;. Ingat, saat ini pointer P menunjuk ke alamat dari A [ 3 ] sehingga jika dilakukan pengurangan sebesar satu maka pointer tersebut akan menunjuk ke alamat dari A [ 2 ] sehingga nilai yang ditampilkan pun adalah 200. Sebagai catatan, operasi aritmetika yang dapat dilakukan terhadap pointer hanya operasi penjumlahan dan pengurangan saja, selain itu tidak diizinkan oleh kompiler. 6.9 Menggunakan Kata Kunci new Dalam bahasa C+ +, jika kita ingin mengalokasikan memori pada ruang yang masih kosong maka kita dapat menggunakan kata kunci new. Kata kunci ini akan diikuti oleh tipe data yang akan dialokasikan sehingga kompiler akan mengetahui seberapa besar ruang memori yang dibutuhkan untuk proses pengalokasian tersebut. Misalnya jika kita mengalokasikan tipe data long, maka ruang yang dibutuhkan adalah 4 byte sedangkan jika tipe data unsigned short hanya membutuhkan 2 byte. Begitu juga untuk mengalokasikan tipe data lainnya, ruang yang dibutuhkan tentu akan berbeda pula. Pada saat kita mengalokasikan memori, alamat memori yang dialokasikan tersebut tentu akan kita simpan ke pointer, sehingga sebelumnya kita harus mendeklarasikan pointer terlebih dahulu. Bentuk umum dari penggunaan kata kunci new adalah sebagai berikut: nama_pointer = new tipe_data; Namun jika kita ingin mengalokasikan n buah ruang memori, maka kita menggunakan bentuk umum di bawah ini. nama_pointer = new tipe_data [n]; Misalnya kita akan mengalokasikan 10 buah ruang memori dengan menggunakan tipe long (berukuran 4 byte), maka memori yang dibutuhkan adalah 10 x 4, yaitu 40 byte. Berikut ini contoh penggunaannya dalam program. #define MAX 5 int main(} { Bab 6: Pointer dan Reference

9 float *P1; int *P2; Pi = new float; // Mengalokasikan satu ruang memori // dan disimpan ke pointer PI *P1 =3.14; // Mengisikan nilai ke dalam ruang // yang telah dialokasikan // Menampilkan nilai dan alamat yang disimpan // dalam pointer PI cout«"nilai *P1 : "«*Pl«endl; cout«"nilai Pi : "«Pl«endl; cout«'\n'; Nilai P2ke-l Nilai *P2 ke-2 Nilai P2ke-2 Nilai *P2 ke-3 Nilai P2ke-3 Nilai *P2 ke-4 Nilai P2ke-4 : :30 : C :40 : SO :50 : * >..' i.,' "i r* \» * ^/ > ^-r V '/<: ' - f - T mmmu \><t^/ sef^^~^^s!^fki *i j"^' O ff/^&tto^\9l ** ; v*. F * JSS\ H^^^I o r "i 'f fg i^^'^m ] r" lu^^r. ^o? ^^\O x '~~- ^^iw >~ ^i'" 1 ' / 'OS^>^ "* J // Mengalokasikan 5 buah ruang memori dan disimpan // ke pointer P2 P2 = new int [MAX] ; // Mengisikan nilai ke dalam ruang-ruang memori // yang telah dialokasikan for (int C=0; C<5; C++) { *P2 = (C+l) * 10; P2 += 1; // Mengembalikan pointer P2 agar menunjuk ke alamat // dari elemen ke-0 P2 -= 5; // Menampilkan nilai dan alamat yang disimpan // dalam pointer P2 for (int c=0; c<5; C++) { cout«"nilai *P2 ke-"«c«" cout«"nilai P2 ke-"«c«" P2 += 1; Contoh hasil yang diberikan dari program di atas adalah sebagai berikut: Nilai *P1 Nilai PI :3.14 : 00682EB8 Nilai *P2 ke-0 : 10 Nilai P2 ke-0 : Nilai *P2 ke-1 : 20 Pemrograman C++ Apabila kita amati alamat dari setiap elemen yang terdapat pada pointer P2 ( , ,...), di situ selalu mendapat penambahan nilai 4. Hal ini disebabkan karena ukuran dari tipe data int adalah 4 byte. Selain menggunakan kata kunci new, C + + juga mendukung fungsi malloc () yang sebenarnya adalah milik dari bahasa C. Fungsi ini juga berguna untuk mengalokasikan memori. Untuk menggunakan fungsi ini kita harus mendefinisikan file header stdlib.h atau untuk kompiler C + + standar kita dapat menggunakan <cstdlib>. Berikut ini contoh penggunaannya dalam program. tinclude <cstdlib> Kode Program 6-11 int *P; // Mengalokasikan 10 ruang di memori untuk tipe data i P = (int *) malloc(10*sizeof(int)); // Mengisikan dan sekaligus menampilkan nilai yang disimpai for (int C=0; C<10; C++) { *P = (C+l)* 10; cout«*p«endl ; P += 1; // P menunjuk ke alamat berikutnya Hasil yang akan diperoleh dari program di atas adalah sebagai berikut: Bab 6: Pointer dan Reference

10 Menggunakan Kata Kunci delete Setelah memori yang kita alokasikan untuk keperluan tertentu sudah tidak digunakan lagi, maka sebaiknya jika mendealokasikan kembali memori tersebut. Hal ini baik untuk menghindari terjadinya pemborosan memori. Untuk melakukan ini, C + + menyediakan kata kunci delete. Bentuk umum dari penggunaan kata kunci delete adalah sebagai berikut : delete nama_pointer; Jika kita ingin mendealokasikan n buah ruang memori, maka kita menggunakan bentuk umum di bawah ini. delete [n] nama_pointer; // atau cukup ditulis delete [] nama_pointer; Berikut ini adalah contoh program yang menggunakan kata kunci delete di dalamnya. ttinclude <iostream> int *P; // Mendeklarasikan pointer P yang menunjuk // ke tipe data int // Melakukan alokasi memori P = new int; Pemrograman O :// Menggunakan memori yang telah dialokasikan *P = 100; cout«"nilai *.P '«*P«en.dl; // Melakukan deal okasi memori delete P; Hasil yang berikut: Nilai *P : 100 akan diperoleh dari program di atas adalah sebagai C++ juga mendukung fungsi dalam bahasa C yang berguna untuk mendealokasikan memori, yaitu fungsi free (). Fungsi ini merupakan fungsi kebalikan dari fungsi malloc(). Berikut ini contoh program yang menggunakan fungsi f ree (). ttinclude <cstdlib> int main (} { int *P; Kode Program 6*13 // Mengalokasikan memori sebesar 4 byte untuk tipe int P = {int-*) malloc(sizeof(int)); // Menggunakan ruang memori yang telah dialokasikan = 100; cout«"nilai *P : "«*P; // Mendealokasikan memori free(p); Hasil yang akan diperoleh dari program di atas adalah sebagai berikut : Nilai *P : 100 Bab 6: Pointer dan Reference

11 6.11 Memory Leak Dalam pemanipulasian memori dengan menggunakan pointer, kita harus dapat mencegah terjadinya memory leak (=kebocoran memori). Secara definisi memory leak dapat diartikan sebagai suatu kejadian dimana terdapat memori yang terbuang sia-sia. Artinya memori tersebut masih berisi nilai, tetapi nilai ataupun alamatnya sudah tidak dapat diakses maupun didealokasikan lagi. Hal ini tentunya akan menyebabkan pemborosan memori. Untuk memahami konsepnya, perhatikan potongan sintaks program berikut. int *P; // Mengalokasikan ruang memori dan menyimpanny, // ke dalam pointer P P = new int; // Mengisikan nilai ke dalam alamat tersebut *P = 10; // Memerintahkan P untuk menunjuk ruang memori yang baru P = new int; :; // Mengisikan nilai ke dalam alamat yang baru *P = 25; Mula-mula pointer P menunjuk ke alamat yang dialokasikan pertama kali dan mengisikan nilai ke dalam alamat tersebut dengan 10. Untuk memudahkan pembahasan pada kasus ini alamat tersebut kita namakan alamat ke-1. Selanjutnya, tanpa mendealokasikan alamat ke-1 terlebih dahulu, program di atas memerintahkan pointer P untuk menunjuk ke alamat lain yang baru dialokasikan, yang kita sebut dengan alamat ke-2. Hal ini tentu akan menyebabkan alamat ke-1 (serta nilai yang terdapat di dalamnya) tidak dapat diakses maupun didealokasikan lagi. Kejadian semacam inilah yang dinamakan dengan memory leak. Untuk mencegah kejadian ini, sebelum memerintahkan P untuk menunjuk ke alamat ke-2 seharusnya kita mendealokasikan alamat ke-1 terlebih dahulu, sehingga memori tidak akan terbuang percuma. Oleh karena itu program di atas seharusnya dituliskan seperti berikut. // Mengalokasikan ruang memori dan menyimpannya // ke dalam pointer P P = new int; // Mengisikan nilai ke dalam alamat tersebut Pemrograman C++ 10; //Mendealokasikan terlebih dahulu alamat // yang ditunjuk.oleh pointer P delete P; // Memerintahkan P untuk menunjuk ruang memori yang baru P = new int; // Mengisikan nilai ke dalam alamat yang baru *P.= 25; 6.12 Reference Reference digunakan untuk membuat alias atau nama lain (julukan) dari sebuah variabel. Sebagai contoh jika terdapat seseorang yang bernama Bjarne Stroustrup, maka kita dapat membuat alias atau julukan dari nama tersebut, misalnya dengan alias BS. Oleh karena Bjarne Stroustrup dan BS sebenarnya adalah satu orang, maka apa yang dilakukan terhadap Bjarne Stroustrup, berarti itu juga terjadi pada BS. Setelah mendapat gambaran tersebut, sekarang kita kembali ke pokok permasalahan kita tentang reference. Untuk membuat reference adalah dengan menggunakan tanda & di belakang tipe data yang akan diacu. Berikut ini bentuk umum dari pembuatan reference. tipe_data& nama_alias = nama_variabel; Untuk dapat memahami lebih jauh mengenai perhatikan contoh program di bawah ini. ; int X; Kode Program 6-14 // Mendeklarasikan variabel X // Membuat alias dari variabel X dengan nama AliasX int& AliasX = X; /./ Mengisikan nilai ke dalam variabel X ;: x = 12 r Bab 6: Pointer dan Reference reference ini,

12 7/ Menampilkan nilai yang disimpan dalam variabel X dan // AliasX cout«"nilai X : "«X«endl; cout«"nilai AliasX : "«AliasX«endl ; cout«endl ; // Mengisikan nilai ke dalam AliasX AliasX = 35; // Menampilkan kembali nilai yang disimpan dalam variabel // dan AliasX cout«"nilai X : "«X«endl; cout«'"nilai AliasX : "«AliasX«endl; Hasil yang akan diperoleh dari program di atas adalah sebagai berikut : Nilai X Nilai AliasX Nilai X Nilai AliasX : 12 : 12 :35 :35 Apabila kita analisis hasil dari program di atas, tampak bahwa pada saat kita memasukkan nilai 12 ke dalam variabel X, AliasX juga akan bernilai 12. Begitu juga sebaliknya, pada saat kita memasukkan nilai 35 ke dalam AliasX, variabel X juga akan bernilai Alamat dari Reference Perlu untuk diperhatikan bahwa sebuah alias dan variabel yang diacu tersebut menempati alamat yang sama di memori, jadi keduanya bukanlah dua buah variabel yang berbeda, melainkan satu variabel yang mempunyai dua nama. Untuk membuktikan hal ini, perhatikan program di bawah ini. ttinclude <iostream> Kode Program 6-15 Pemrograman int main() // dengan nilai default 50 :// Membuat alias dari variabel X dengan nama AliasX int& AliasX = X; // Menampilkan nilai yang disimpan dalam variabel X dan // AliasX cout«"nilai X : "«X«endl;»cout:«"Nilai AliasX : "«AliasX«endl; cout«endl; // Menampilkan alamat dari variabel X dan AliasX cout«"alamat X : "«&X«endl; cout«"alamat AliasX : "«&AliasX«endl; Contoh hasil yang akan diberikan dari program di atas adalah sebagai berikut: Nilai X Nilai AliasX Alamat X Alamat AliasX : 50 : 50 :0065FEOO :0065FEOO Seperti yang kita lihat bahwa alamat dari variabel X dan alamat dari AliasX adalah sama. Hal ini disebabkan karena keduanya merupakan objek yang sama sehingga alamat yang ditempatinya pun pasti akan sama Konstanta pada Reference Dalam C + +, kita juga dapat mendefinisikan sebuah reference yang bersifat tetap (constant reference), artinya nilai dari reference ini tidak dapat diubah. Namun yang menjadi pertanyaan adalah apakah kita masih dapat mengubah nilai dari variabel yang diacu oleh reference tersebut, sedangkan reference tadi bersifat tetap? Jawabnya adalah 'ya', kita masih dapat memanipulasinya. Artinya yang menjadi konstanta di sini adalah hanya reference-nya, Bab 6: Pointer dan Reference

13 sedangkan variabelnya tidak bersifat konstan. Hal ini memang sedikit membingungkan, namun sebagai bukti dari pernyataan di atas, coba Anda perhatikan program di bawah ini. tinclu.de <iostream> Kode Program 6-T6 BAB 7 ARRAY int main{) { // Mendeklarasikan reference konstan const intfc AliasX = X; // Menampilkan nilai dari AliasX dan variabel X cout«"nilai X : "«X«endl; cout«"nilai AliasX : "«AliasX«endl«endl; // Mengubah nilai X X = 12; // BENAR, hal ini diperbolehkan karena X // tidak bersifat konstan // Menampilkan kembali nilai dari AliasX dan variabel X cout«"nilai X : "<<X«endl; cout«"nilai AliasX : "<<AliasX«endl«endl; // Mengubah nilai AliasX // AliasX «".25j.- // SALAH, hal ini tidak diizinkan // oleh kompiler Hasil yang akan diberikan dari program di atas adalah sebagai berikut: Nilai X Nilai AliasX Nilai X Nilai AliasX : 5,- : b : 12 : Pendahuluan Array adalah sebuah variabel yang menyimpan sekumpulan data yang memiliki tipe sama. Setiap data tersebut menempati lokasi atau alamat memori yang berbeda-beda dan selanjutnya disebut dengan elemen array. Elemen array itu kemudian dapat kita akses melalui indeks yang terdapat di dalamnya. Namun penting sekali untuk diperhatikan bahwa dalam C + +, indeks array selalu dimulai dari 0, bukan 1. Berikut ini gambar yang mengilustrasikan sebuah array. Nilai ke-1 Alamat ke-1 0 Nilai ke-2 Alamat ke Nilai ke-n Alamat ke-n N > Nilai elemen array >. Alamat elemen array Untuk mendeklarasikan sebuah array dalam C++, kita harus menggunakan tanda [] (bracket). Adapun bentuk umum dari pendeklarasiannya adalah sebagai berikut: tipe_data nama_array[jumlah_elemen]; Pemrograman

14 Sebagai contoh jika kita ingin mendeklarasikan sebuah array (misalnya dengan nama LARIK) yang memiliki 25 elemen dengan tipe data int, maka pendeklarasiannya adalah seperti yang tampak di bawah ini. Berikut ini contoh program yang di dalamnya terdapat proses pengisian array dengan menggunakan proses pengulangan. Ruang memori yang dibutuhkan untuk pendeklarasian array tersebut adalah 100 byte, yang berasal dari 25 x 4 byte (4 merupakan ukuran dari tipe data int). Sedangkan cara yang digunakan untuk mengakses elemennya adalah dengan menuliskan indeksnya. Misalnya kita ingin mengambil nilai yang terdapat pada elemen ke-10 dan menampung nilai tersebut ke dalam sebuah variabel yang bertipe int juga (misal X), maka kita harus menuliskan sintaks di bawah ini. Kenapa 9, bukan 10? Ingat, indeks array selalu dimulai dari 0 sehingga untuk mengakses elemen ke-10, maka indeks yang kita butuhkan adalah 10-1, yaitu Mengisikan Nilai ke dalam Elemen Array Untuk mengisikan nilai ke dalam elemen-elemen array, kita dapat melakukannya langsung untuk setiap elemen, misalnya seperti berikut. MO] :-,io A[l] = 20 A [2] = 30 dst Namun cara ini tidak direkomendasikan karena tidak efisien. Cara yang lebih umum dan banyak digunakan oleh para programmer untuk mengisikan nilai ke dalam elemen-elemen array adalah dengan menggunakan pengulangan (looping). Cara ini akan jauh lebih cepat dibandingkan cara manual seperti di atas. Sebagai contoh jika kita ingin melakukan pengisian 25 elemen array, maka kita dapat menuliskan sintaks seperti di bawah ini. for (int C=0; C<25; C++) { cout«"a[ w «C«"] «"; cin»a[c]; Pemrograman 7.3 Menampilkan Nilai yang Terdapat pada Array Setelah memahami cara mengisikan nilai ke dalam elemen array, sekarang kita akan membahas bagaimana cara untuk mengakses atau menampilkan nilai-nilai tersebut. Konsepnya sama seperti di atas, kita akan menggunakan pengulangan untuk menampilkannya. Berikut ini program yang akan mengisikan dan menampilkan nilai yang terdapat pada elemen array. ttinclude <iostream> Kode Program 7-2 // Mendeklarasikan array A dengan 5 buah elemen bertipe ini int A[5]; // Mengisikan nilai ke dalam elemen array cout«"masukkan nilai yang diinginkan"«endl; for (int C=0; C<5; C++) { cout«"a[ "«C«" ] = "; cin»a[c];

15 // Menampil] cout«"menampilkan nilai yang telah dimasukkan"«endl; for (int J=0; J<5? J++) { cout«"nilai yang terdapat pada elemen ke-"; cout«j+l«" : "«A[J] «endl; Contoh hasil yang akan diberikan dari program di atas adalah sebagai berikut: Masukkan nilai yang diinginkan A[0] = 10 A[l] =21 A[2] = 13 A[3] = 35 A[4] = 28 Menampilkan nilai yang telah dimasukkan Nilai yang terdapat pada elemen ke-1 : 10 Nilai yang terdapat pada elemen ke-2 : 21 Nilai yang terdapat pada elemen ke-3 : 13 Nilai yang terdapat pada elemen ke-4 : 35 Nilai yang terdapat pada elemen ke-5 : Melakukan Inisialisasi Array Pada saat kita mendeklarasikan sebuah array, kita dapat langsung melakukan inisialisasi nilai terhadap elemen-elemen array di dalamnya. Hal ini dimaksudkan untuk mengisikan nilai default pada eiemen array sehingga jika elemen bersangkutan tidak diisi dengan nilai baru, maka nilai yang digunakan adalah nilai yang telah ada. Adapun bentuk umum dari inisialisasi array adalah seperti yang tampak di bawah ini. tipe_data nama_array[n] = { nilail, nilai2,..., nilain }; Berikut ini adalah contoh program yang menunjukkan proses inisialisasi nilai pada elemen-elemen array. Pemrograman Kode Program 7-3.nt main{) { // Mendeklarasikan array // dan langsung menginisialisasi nilainya int A[5] = { 10, 20, 30, 40, 50 }; // Menampilkan nilai yang terdapat pada elemen array cout«"sebelum dilakukan perubahan nilai"«endl; cout«"a[0] = w «A[0]«endl; cout«"a[l] = "«A[l]«endl; cout«"a[2] = tt «A[2]«endl; cout«"a[3] = "«A[3]«endl; cout«"a[4] = "«A[4]«endl; // Mengubah elemen ke-1 dan ke-2 A[0] = 12; A[l] = 25; // Menampilkan kembali nilai yang terdapat pada elemen array cout«"setelah dilakukan perubahan nilai"«endl; cout«"a[0] > «A[0]«endl; cout«"a[l] V «A[1]«endl; cout«"a[2] '«A[2]«endl; cout«"a[3] V «A[3]«endl; cout«"a[4] x «A[4]«endl; Hasil yang akan diberikan dari program di atas adalah sebagai berikut: Sebelum dilakukan perubahan nilai Setelah dilakukan perubahan nilai

16 Seperti yang kita lihat di atas bahwa elemen ke-3, 4 dan 5 tidak dilakukan perubahan sehingga nilai yang digunakan adalah nilai default. if (A[jj == BID { cout«"nilai yang dicari terdapat pada indeks ke-««j ; break; 7.5 Melakukan Pencarian pada Elemen Array Salah satu permasalahan yang sering muncul pada saat kita menggunakan array adalah tuntutan untuk melakukan pencarian elemen array. Misalnya di jumsan kimia dari perguruan tinggi tertentu, terdapat sekumpulan data mahasiswa yang disimpan dalam sebuah array, kemudian kita akan melakukan pencarian data mahasiswa yang bernama Budi Raharjo dari array tersebut. Contoh lainnya adalah pencarian data rekening bank, serta masih banyak lagi yang lainnya. Kasus-kasus semacam ini banyak dijumpai jika kita telah berhubungan dengan data. Maka dari itu, pada bagian ini kita akan membahas bagaimana cara melakukan pencarian elemen tertentu pada sebuah array. Berikut ini contoh program yang akan melakukan pencarian nilai dari sekumpulan data yang bertipe int. Kode Program 7-4 int main( ) { // Mendeklarasikan array // dengan melakukan inisialisasi nilai ke dalamnya int A[10] = {12, 24, 13, 25, 10, 13, 21, 20, 15, 18 } ; int BIL; // Variabel untuk menampung nilai yang akan // dicari' // Menampilkan nilai yang terdapat // pada elemen- elemen array di atas for (int C=0, C<10; C++) { cout«a [ C ] «endl; } cout«endl ; // Memasukkan nilai yang akan dicari cout«"masukkan nilai yang akan dicari // Melakukan pencarian data for (int J=0; J<10; J++) r { Pemrograman Contoh hasil yang diberikan dari program di atas adalah sebagai berikut : Masukkan nilai yang akan dicari: 13 Nilai yang dicari terdapat pada indeks ke-5 Sebenarnya nilai 13 ditemukan pada elemen array ke-6, namun karena indeksnya dimulai dari 0, maka indeks yang akan diberikan untuk data tersebut adalah 5. Contoh lain yang dapat kita ambil untuk menerangkan proses pencarian di dalam sebuah array adalah program yang dapat menentukan suatu kata apakah merupakan palindrom atau bukan. Adapun yang dinamakan dengan palindrom itu sendiri adalah kata yang dibaca dari depan maupun dari belakang menghasilkan kata yang sama, misalnya KATAK, KODOK, dan masih banyak lagi lainnya. Adapun program yang dimaksud adalah sebagai berikut: #include <cstring> Kode Program 7-5

17 / Mendeklarasikan variabel untuk men f kata yang akan diperiksa char* S = "KATAK"; // Mendeklarasikan variabel j dan k // untuk mendefinisikan indeks larik int j, k; // Melakukan inisialisasi terhadap variabel j da 1=0; k = strlen(s) ; // Melakukan pengecekan polindrom terhadap S while ( ( j <= k) && (S[j] = S[k-l])) { int main{) { // Mendeklarasikan sebuah array // dan melakukan inisialisasi ke dalamnya int AtlO] = { 12, 34, 54, 32, 10, 67, 98, 11, 20, 22 } /* Mendeklarasikan variabel max dan min untuk menampung nilai maksimum dan minimum */ int max = A[0], min = A[0] ; // Menentukan nilai maksimum for (int C=l; C<10; C++) { if (A[C] > max) { max = A[C] ; if (j > k) { cout«s«" merupakan kata palindrom"; } else { cout«s«" bukan kata palindrom"; // Menentukan nilai minimum for (int c=l; c<10; C++) { if (A[c] < min) { min = A [ c ] ; return 0 ; Hasil yang akan diberikan dari program di atas adalah sebagai berikut: KATAK merupakan kata palindrom Namun jika kita mengganti nilai dari variabel S dengan nilai "KIMIA", maka program akan memberikan hasil seperti berikut. KIMIA bukan kata palindrom Sebagai tambahan dan latihan bagi Anda, berikut ini dituliskan sebuah contoh program yang akan melakukan pencarian nilai maksimum dan minimum dari sebuah array yang bertipe int. Adapun sintaks programnya adalah seperti yang tampak di bawah mi. ftinclude <iostream> :. Kode Program 7-6 Pemrograman // Menampilkan nilai maksimum dan minimum // yang ditemukan dalam array ;COUt«"Nilai maksimum : w «max«endl; cout«"nilai minimum : "«min; Hasil yang akan diberikan dari program di atas adalah sebagai berikut: Nilai maksimum : 98 Nilai minumum : 10 Apabila sebelumnya Anda telah mempelajari algoritma, maka Anda pasti telah mengetahui bahwa elemen larik dapat diurutkan dengan beberapa buah metode, diantaranya metode gelembung (bubble sort), maksimum-minimum (maximum-minimum sort), sisip (insertion sort), heap sort, dan masih banyak lagi yang lainnya. Di sini kita tidak akan membahas apa perbedaan dari metode-metode

18 pengurutan tersebut, melainkan kita hanya akan berkonsentrasi pada bagaimana C + + melakukan pengurutan sebuah array dengan menggunakan metode-metode tersebut. Namun, dalam buku ini kita akan membatasi pembahasan dengan menggunakan dua buah metode saja, yaitu metode gelembung dan metode maksimumminimum. Alasannya adalah karena kedua metode ini merupakan metode yang sering digunakan dalam pemrograman. Salah satu dari kegunaan suatu pengurutan data adalah untuk mempermudah dan mempercepat proses pencarian data. Untuk lebih memahaminya, perhatikan dua buah program di bawah ini yang masing-masing akan mengurutkan elemen array dengan metode gelembung dan maksimum-minimum Menggunakan Metode Gelembung int main ( ) { Kode Program 7-7 // Mendeklarasikan array dengan 7 buah elemen // yang bertipe int int A [ 7 ] ; // Mendeklarasikan variabel-variabel bantu yang diperlukan int j, k, C, temp; // Memasukkan nilai array cout«"masukkan nilai pada elemen array :"«endl; for (C=0; C<7; C++) { cout«"a[ "«C<<" ] = w ; cin»a[c] ; // Menampi 1 kan nilai sebelum diurutkan cout«"\nnilai elemen array sebelum diurutkan :"«endl; for (C=0; C<7; C++) { cout«"a[ "«C«"] = "«A[C]«endl; Melakukan pengurutan elemen array dengan metode gelembunc Eor (j=0; j<6; j++) { for (k=7; '->0; k--) { if (A[k. < A[ktemp - A[k] Pemrograman C+^ A[k] = A[k-l] temp; // Menampilkan nilai setelah diurutkan cout«"\nnilai elemen array setelah diurutkan :"«endl; for (C=0; C<7; C++) { cout«"a[ w «c«"j = "«AtC]«endl; return 0 ; Contoh hasil yang akan diberikan dari program di atas dalah sebagai berikut : Masukkan nilai pada elemen array : A[0] = 70 A[l] = 10 A[2] = 40 A[3] = 20 A[4] = 30 A[5] = 60 A[6] = 50 Nilai elemen array sebelum diurutkan A[0] = 70 A[l] = 10 A[2] = 40 A[3] = 20 A[4] = 30 A[5] = 60 A[6] = 50 Nilai elemen array setelah diurutkan : A[0] = 10 A[l] = 20 A[2] = 30 A[3] = 40 A[4] = 50 A[5] = 60 A[6] = 70

19 7.6.2 Menggunakan Metode Maksimum-minimum using namespace std? Kode Program 7-8 I// Mendeklarasikan array dengan 7 buah elemen!// yang bertipe int lint A[7]; // Mendeklarasikan variabel-variabel bantu yang diperlukan int j, k, C, temp; I// Memasukkan nilai array jcout«"masukkan nilai pada elemen array :"«endl; ]for (C=0; C<7; C++) { cout«"a["«c«" ] = "; cin»a[c]; // Menampilkan nilai sebelum diurutkan cout«" \nnilai elemen array sebelum diurutkan :"«endl; for {C=0; C<7; C++) { cout«"a["«c«"] = "«A[C]«endl; // Melakukan pengurutan elemen array // dengan metode maksimum-minimum int jmaks, U=6; for (j=0; j<6; j++) { jmaks = 0; for (k=l; k<=u; k++) { if (A[k] > A[jmaks]) { jmaks = k; Contoh hasil yang akan diberikan dari program di atas adalah sebagai berikut: Masukkan nilai pada elemen array : A[0] = 6 A[2] = 7 A[3] = 2 A[4] = 5 A[5] = 1 A[6] = 4 Nilai elemen array sebelum diurutkan A[0] = 6 A[2] = 7 A[3] = 2 A[4] = 5 A[5] = 1 A[6] = 4 Nilai elemen array setelah diurutkan A[0] = 1 All] = 2 A[2] = 3 A[3] = 4 A[4] = 5 A[5] = 6 A[6] = 7 temp = A[U] ; A[U] = A [jmaks] ; A [jmaks] = temp; U--; / Menampilkan nilai setelah diurutkan cout«"\nnilai elemen array setelah diurutkan :"«endl for (C=0; C<7; C++) { cout«"a[ w «C«"] = "«A[C]«endl; } >**4 7.7 Array yang Bersifat Konstan Nilai dalam elemen array dapat dibuat tetap, yaitu dengan mendefinisikannya sebagai konstanta. Caranya sama seperti pada saat kita membuat konstanta dari identifier, yaitu dengan menggunakan kata kunci const di depan nama array yang didefinisikan. Berikut ini contoh program yang menunjukkan hal tersebut. Pemrograman

20 tinclude <iostream> Kode Program 7-9 // Mendeklarasikan array yang bersifat konstan const int A[5] = { 10, 20, 30, 40, 50 }; // Menampilkan nilai yang terdapat pada array A for (int C=0; C<5; C++) { cout«"a[ "«c«"] = "«A[C]«endl; return Hasil yang akan diberikan dari program di atas adalah sebagai berikut: A[0] = 10 A[l] = 20 A[2] = 30 A[3] = 40 A[4] = 50 Nilai-nilai yang ditampilkan di atas akan bernilai tetap karena kita mendefinisikan array A tersebut dengan nilai konstan. Untuk membuktikan hal ini, coba Anda tuliskan program berikut. tinclude <iostream> int main()- { int C; Kode Program 7-10 // Mendeklarasikan array yang bersifat konstan const int A[5] = { 10, 20, 30, 40, 50 }; // Mengubah nilai pada elemen array menjadi 1, 2, 3, 4 dan 5 for (C=0; C<5; C++) { A[C] = C+l; Pemrograman I// Menampilkan nilai yang terdapat pada array A for (C=0; :.C<5; C++) { cout«"a["«c«"] = "«A[C]«endl; Coba Anda perhatikan statemen for (C=0; C<5; C++) { A[C] = C+l; // SALAH, tidak diizinkan oleh kompiler Statemen A[C] = C+l; di atas jelas akan menimbulkan kesalahan, karena berusaha untuk mengubah nilai dari elemen array yang didefinisikan sebagai nilai konstan. 7.8 Array Sebagai Tipe Data Bentukan Dalam C+ +, array juga dapat digunakan sebagai tipe data bentukan seperti halnya struktur dan enumerasi. Untuk melakukan hal ini kita hams menggunakan kata kunci typedef, dimana berfungsi untuk memberikan nama lain dari array yang dideklarasikan. Berikut ini bentuk umum untuk membuat array sebagai tipe data bentukan. typedef tipe_data nama_arraycjxunlah_elemen]; Untuk lebih memahaminya, perhatikan contoh program di bawah ini dimana terdapat sebuah array yang didefinisikan sebagai tipe data bentukan. finclude <iostream> // Mendeklarasikan tipe data berbentuk array dengan nama // LARIK typedef int LARIK[5]; // Menggunakan,tipe data LARIK // untuk mendeklarasikan variabel A LARIK A; int C; // Variabel bantu untuk melakukan pengulangan

21 // Mengisikan nil for (C=0; ;C<5; C++ MOO; bel typedef LARIK[5] ; // Membuat tipe data LARIK A, B, C/ D, E; // Deklarasi variabel.n~e // Menampilkan nilai elemen yang terdapat pada variabel A for (C=0; C<5; C++) { cout«"a["«c«"] = "«A[C]«endl; Program di atas akan memberikan hasil seperti berikut. A[0] = 100 A[l] = 200 A[2] = 300 A[3] = 400 A[4] = 500 Seperti yang kita lihat di atas bahwa sebuah array dapat digunakan untuk mendeklarasikan variabel lain. Pada kasus ini kita membuat sebuah tipe data bentukan dengan nama LARIK, selanjutnya kita menggunakan tipe tersebut untuk mendeklarasikan variabel A. Apabila kita amati, sebenarnya kita dapat langsung mendeklarasikan variabel A tersebut dengan tipe array, yaitu dengan sintaks di bawah ini. Mungkin Anda bingung kenapa harus dituliskan sebagai tipe data? Jawabnya adalah karena tipe tersebut dapat digunakan untuk mendeklarasikan variabel dengan cepat. Misalnya kita akan mendeklarasikan lima buah variabel (dengan nama A, B, C, D dan E) yang bertipe array dari tipe int dan terdiri dari 5 elemen, maka jika ditulis dengan deklarasi biasa, sintaksnya adalah seperti berikut. int A[5] int B[5] int C[5] : int D[5] BB Namun, jika sebelumnya kita mendefinisikan sebuah tipe data yang berbentuk array (misalnya dengan nama LARIK), maka sintaksnya akan lebih mudah dan terlihat lebih rapi, yaitu seperti di bawah ini. Pemrograman CM 7.9 Array dari Karakter Dalam C + +, kumpulan karakter disebut dengan string (teks). Dan untuk mendeklarasikan array dari tipe karakter kita tentu akan menuliskannya ke dalam bentuk umum seperti di bawah ini. char nama_array[jumlah_elemen] ; Dengan demikian, apabila kita ingin melakukan deklarasi variabel string (misalnya dengan nama TEKS) yang terdiri dari 5 buah karakter, maka sintaksnya adalah sebagai berikut: char TEKS15] - { 'B', 'U', 'D', 'I', ' \0' }; v Karakter terakhir, \ 0 ', disebut dengan karakter null, yaitu karakter yang digunakan sebagai terminator dari sebuah string di dalam C+ +. Namun, karena bentuk tersebut susah untuk ditulis dan riskan terhadap terjadinya sebuah kesalahan, maka C+ + memperbolehkan kita untuk dapat menuliskan karakter-karakter tersebut dalam sebuah string yaitu dengan cara seperti di bawah ini. char TEKS [5] = "BUDI"; Kita tahu bahwa ukuran dari tipe data char adalah 1 byte sehingga ukuran memori yang dibutuhkan untuk proses pendeklarasian array di atas adalah 5 byte, yaitu 4 byte untuk string "BUDI" dan 1 byte untuk karakter null. Untuk membuktikan hal di atas, perhatikanlah contoh program di bawah ini. Kode Program 7-12 // Mendeklarasikan array A dari tipe karakter char A[5] = { 'B','U','D','I','\0' }; // Mendeklarasikan B sebagai string : char B[5] = "BUDI";

22 I// Menampilkan nill^fjjari [for (int C=0; C<5; cout«a[c] ; elemen array A Untuk lebih memperjelas, berikut ini program yang di dalamnya terdapat sebuah array yang elemen-elemennya bertipe Struktur. lcout«endl ; // Menampilkan nilai dari variabel B jcout«b; cout«"\n\n" ; // Menampilkan ukuran dari A dan B cout«"ukuran A : "«sizeof (A) «endl ; "Cout«"UkuraiL ii L i ;, J "«sizeo Hasil yang akan diberikan dari program di atas adalah seperti yang terlihat di bawah ini. BUDI BUDI Ukuran A : 5 Ukuran B : 5 int C; // Mendeklarasikan variabel C // sebagai indeks pengulangan // Menderinisikan tipe data bertipe Struktur typedef struct SISWA { long NIM; char Nama[25] ; char Kota[30]; // Mendeklarasikan array A dengan tipe SISWA // dan jumlah elemennya tiga SISWA A[3]; // Mengisikan nilai pada elemen array for (C=0; C<3; C+ + ) { cout«"nim : "; ein»a[c].nim; Nama : "; cin»a[c].nama; cin»a[c].kota; Seperti yang kita lihat bahwa kedua bentuk deklarasi di atas akan memberikan hasil yang sama, begitu juga dengan ukuran memori yang dibutuhkannya Array dari Struktur dan Struktur dari Array Bagi kebanyakan programmer pemula terkadang istilah array dari Struktur (array of structure) dan Struktur dari array (structure of array) ini agak sedikit membingungkan. Sebenarnya konsepnya sederhana, array dari Struktur berarti kita mendeklarasikan sebuah array dimana nilai dari setiap elemennya bertipe Struktur. Sedangkan Struktur dari array berarti kita mendeklarasikan sebuah Struktur dimana anggota dari Struktur tersebut bertipe array. Pemrograman C++ // Menampilkan nilai yang telah dimasukkan // ke dalam elemen array for (C=0; C<3; C++) { cout«a[c].nim«endl; cout«a[c].nama«endl; cout«a[c].kota«endl; cout«' \n' ; Contoh hasil yang akan diberikan dari program di atas adalah sebagai berikut: NIM : 1 Nama : BUDI Kota : BANDUNG

23 NIM Nama Kota NIM Nama Kota 1 BUDI BANDUNG 2 ARISTA CIREBON 3 LINDA BOGOR 2 ARISTA CIREBON 3 LINDA BOGOR Seperti yang kita lihat bahwa setiap elemen array A bertipe struktur yang mempunyai tiga anggota yaitu NIM, Nama dan Kota. Hal ini menyebabkan pada saat kita mengakses setiap elemen array tersebut, maka data yang diminta juga ada tiga. Sekarang kita akan membahas mengenai struktur dari array (structure of array). Untuk lebih jelasnya, perhatikan program di bawah ini. Kode Program 7-14 // Mendeklarasikan struktur yang data anggotanya bertipe // array struct STRUKTUR { int A [ 3 ] ; int B[3]; STRUKTUR X; int C; // Memasukkan nilai ke dalam variabt for (C=0; C<3; C++) { 'X.A[C] = C+l; X.B[C] = (C+l) * 100; // Menampilkan nilai yang telah dimasukkan ke dalam variabel // X for (C=0; C<3; C++) { cout«"x.a["«c«"j = "«X.A[C]«endl; cout«"x.b["«c«"] = w «X.B[C]«endl; COUt«' \n' ; return 0 ; Hasil yang akan diberikan dari program di atas adalah sebagai berikut : X. A[0] = 1 X.B[0] = 100 X.A[1] = 2 X.B[1] = 200 X.A[2] = 3 X.B[2] = Array dari Pointer dan Pointer ke Array Dalam C + +, elemen array dapat berbentuk pointer dan pointer juga dapat menunjuk ke tipe array. Anda tidak perlu bingung akan hal ini karena sebenarnya konsep yang dikandung di dalamnya sederhana. Apabila kita membuat array dari pointer, artinya kita mendeklarasikan pointer sebanyak jumlah elemen array yang ditentukan. Berikut ini contoh pendeklarasian array dari pointer. *P[5] ;.;.- :-:.fs" : // Mendeklarasikan varlabel X yang bertipe STRUKTUR Pemrograman C++

24 Sintaks di atas menunjukkan bahwa kita akan mempunyai 5 buah alamat memori yang akan ditunjuk oleh pointer P. Namun, tentunya P tidak memmjuk alamat-alamat tersebut secara sekaligus, melainkan harus kita atur terlebih dahulu dengan menggunakan operator new dan delete. Untuk lebih memahami hal ini, perhatikanlah program di bawah ini dengan teliti. // Mendeklarasikan array dari pointer int *P[5]; for (int C=0; C<5; C++) { P[C] = new int; cout«p [ C ] «endl ; delete P; int A[5]j int *P = &A[0]; Sintaks tersebut berarti bahwa pointer P akan menunjuk ke elemen pertama array, yaitu A [ 0 ]. Untuk membuktikan hal tersebut, perhatikanlah program di bawah ini. ttinclude <iostream> int A [ 5 ] ; int *P = A; cout«"nilai &A[0] = "«&A[Q]«endl; cout«"nilai P = "«P; Contoh hasil yang akan diberikan dari program di atas adalah sebagai berikut: Contoh hasil yang akan diberikan dari program di atas adalah sebagai berikut: Nilai &A[0] Nilai P = 0065FDEC = 0065FDEC 00682EB EC Sekarang apabila kita mendeklarasikan pointer ke array, itu artinya kita mendeklarasikan sebuah pointer yang akan digunakan untuk menunjuk ke variabel yang bertipe array. Berikut ini contoh pendeklarasiannya. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ int A[5]; // Array yang terdiri dari lima buah elemen //bertipe int int *P * A; //Mendeklarasikan pointer P untuk menunjuk array A Mungkin Anda bingung, kenapa ditulis P = A bukan P = &A? Hal ini disebabkan karena array sendiri adalah suatu pointer. Jadi sintaks di atas sama saja jika dituliskan seperti di bawah ini. Pemrograman 7.12 Array Multidimensi Array multidimensi yaitu array yang terdiri dari beberapa subskrip array. Sebagai contoh, array 2 dimensi adalah array yang mempunyai 2 subskrip array, 3 dimensi mempunyai 3 subskrip array dan seterusnya. Array seperti ini sering digunakan untuk pemrosesan matrik. Pada bagian ini kita akan mempelajari bagaimana C++ dapat memproses sebuah array yang terdiri dari dua subskrip array atau lebih Array Dua Dimensi Seperti yang telah dikemukakan sebelumnya bahwa array dua dimensi adalah array yang mempunyai dua buah subskrip, yaitu

25 baris dan kolom. Bentuk umum pendeklarasian sebuah array dua dimensi di dalam C++ adalah sebagai berikut: tlpe_data nama_array[jumlah_elemen_baris] [jumlah_elt _koiom] ; Misalnya, jika kita akan melakukan penjumlahan 2 buah matrik ordo 3x2, maka contoh sintaks program yang akan kita tuliskan adalah seperti yang terlihat di bawah ini. tinclude <iostream> int main ( ) { // Mendefinisikan tipe data yang berbentuk array dua dimensi typedef int MATRIK32 [3][2J; // Mendeklarasikan array A sebagai array dua dimensi MATRIK32 A, B, C; Mendeklarasikan variabel untuk indeks pengulangan //Mengisikan nilai ke dalam elemen-elemen array A for (j = 0; j<3; for (k=0; k<2; k++) { cout«"a[ "«j«."j ["«k«"j = "; cin»a[ j ] [k] ; // Mengisikan nilai ke dalam elemen-elemen array for (j=0; j<3; for (k=0; k<2; k++) { = "; cin»b[ j ] [k] ; // Melakukan penjumlahan A dan B // dan menyimpan hasilnya ke dalam array C for (j=0; j<3; for (k=0; k<2; k++) { C[j] [k] = A[j] [k] + B[j] [k]; return [kj«en.' Contoh hasil yang akan diberikan dari program di atas adalah sebagai berikut : A[0][0] = 1 A[0][l] = 2 A[2][0] = 5 B[0][0] = 1 B[0][l]=2 B[l][0] = 3 B[l][l] =4 B[2][0] - 5 = 6 C[0][0] = 2 C[0][l]=4 = 6 = 8 C[2][0] = 10 C[2)[l] = 12 Secara matematis, contoh hasil dari program di atas dapat dituliskan seperti di bawah ini. ~1 2" "1 2~ = "2 4 " // Menampilkan hasil penjumlahan Pemrograman C++

26 Inisialisasi pada Array Multidimensi Sama seperti array satu dimensi, pada array multidimensi juga dapat dilakukan inisialisasi nilai ke dalam elemen-elemennya. Adapun cara melakukannya adalah seperti contoh yang terlihat di bawah ini. int A[3][3] - { 1,2,3,4,5,6,7,8,9 }; Namun, untuk memudahkan proses inisialisasi, C++ mengizinkan kita untuk melakukan pengelompokkan untuk setiap baris, yaitu dengan sintaks seperti berikut. int A[3][3] = { {1"}2,3},- {4,5,6}, (7,8,9 } }; ^: :;> Untuk membuktikan hal tersebut, perhaktian contoh program di bawah ini. A[l][0]=4 AHiri] = 5 A[l][2] = 6 A[2][0] = 7 A[2][l] = 8 A[2][2] = 9 Secara matematis, array di atas sebenarnya adalah sebuah matrik dengan ordo 3x3, yang dapat dituliskan seperti di bawah ini int main{) { // Melakukan inisialisasi nilai // ke dalam elemen-elemen array dua dimensi inta[3][3] = { {1,2,3}, {4,5,6}, {7,8,9} }; // Mendeklarasikan variabel untuk indeks pengulangan int j, k; // Menampilkan nilai yang tersimpan dalam elemen array I for (j=0; j<3; j++) { for (k=0; k<3; k++) { cout«"a[ "«j«" ] [ "«k«" ] = "«A[ j ] [k] «endl ; } cout«endl; Hasil yang akan diberikan dari program di atas adalah sebagai berikut: A[0][0] = 1 A[0][l] = 2 A[0][2] = 3 Pemrograman

Konsep Array dalam PBO

Konsep Array dalam PBO PEMROGRAMAN BERORIENTASI OBJEK Konsep Array dalam PBO Budhi Irawan, S.Si, M.T PENDAHULUAN Array (Larik) merupakan hal fundamental yang sering dijumpai dalam banyak kasus didunia pemrograman, maka dari

Lebih terperinci

Pointer dan Referensi

Pointer dan Referensi PEMROGRAMAN BERORIENTASI OBJEK Pointer dan Referensi Budhi Irawan, S.Si, M.T PENDAHULUAN Pointer merupakan salah satu fitur C++ yang relatif cukup berbahaya karena dapat mengakibatkan sistem operasi pada

Lebih terperinci

MODUL V POINTER DAN STRING

MODUL V POINTER DAN STRING MODUL V POINTER DAN STRING I TUJUAN 1 Mahasiswa dapat menjelaskan tentang konsep dari variabel pointer 2 Mahasiswa dapat menjelaskan tentang pointer dan string 3 Mahasiswa dapat menjelaskan tentang pointer

Lebih terperinci

Komentar, Identifier, Konstanta dan Variabel

Komentar, Identifier, Konstanta dan Variabel PEMROGRAMAN BERORIENTASI OBJEK Komentar, Identifier, Konstanta dan Variabel Budhi Irawan, S.Si, M.T KOMENTAR PROGRAM Dalam proses pengembangan sebuah program, pasti akan disibukan dengan penulisan kode-kode

Lebih terperinci

Pengenalan C++ Oleh : Dewi Sartika

Pengenalan C++ Oleh : Dewi Sartika Pengenalan C++ Oleh : Dewi Sartika Pendahuluan Bahasa Pemrograman C++ merupakan bahasa tingkat menengah dimana bahasa ini didasarkan atas bahasa C, keistimewaan dari bahasa C++ adalah bahasa ini mendukung

Lebih terperinci

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LABSHEET ALGORITMA DAN STRUKTUR DATA

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LABSHEET ALGORITMA DAN STRUKTUR DATA Hal 1 dari 12 A. KOMPETENSI 1. Mampu membuat komentar dalam kode program 2. Memahami konstanta, variabel dalam C++ 3. Mampu membuat inisialisasi nilai ke dalam variabel B. ALAT DAN BAHAN 1. PC/ Laptop

Lebih terperinci

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

PEMROGRAMAN BERORIENTASI OBJEK. Tipe Data. Budhi Irawan, S.Si, M.T PEMROGRAMAN BERORIENTASI OBJEK Tipe Data Budhi Irawan, S.Si, M.T TIPE DATA Tipe Data berfungsi untuk merepresentasikan jenis dari nilai yang terdapat dalam program. Contoh apabila mempunyai suatu data

Lebih terperinci

Pemrograman I Bab III Tipe Data, Variabel, dan Operasi Perhitungan. Adam Mukharil Bachtiar, S.Kom. Universitas Komputer Indonesia

Pemrograman I Bab III Tipe Data, Variabel, dan Operasi Perhitungan. Adam Mukharil Bachtiar, S.Kom. Universitas Komputer Indonesia Pemrograman I Bab III Tipe Data, Variabel, dan Operasi Perhitungan Adam Mukharil Bachtiar, S.Kom. Universitas Komputer Indonesia Tipe Data 1. Tipe data karakter 2. Tipe data bilangan bulat 3. Tipe data

Lebih terperinci

DISUSUN OLEH BAB XI POINTER. alamat. memori. sepenuhnya. pointer. dan Pointer. menggunakan. menyebabkan. Alamat. untuk.

DISUSUN OLEH BAB XI POINTER. alamat. memori. sepenuhnya. pointer. dan Pointer. menggunakan. menyebabkan. Alamat. untuk. DISUSUN OLEH : ADAM MUKHARIL BACHTIAR, S..Kom. DIKTAT MATAA KULIAH PEMROGRAMAN I BAB XI POINTER IF Pendahuluan Pointer Secara konsep pointer adalah sebuah variabel yang menyimpan suatu alamat memori yang

Lebih terperinci

PERTEMUAN VI POINTER 6.1 Tujuan Praktikum 6.2 Teori Penunjang Pointer

PERTEMUAN VI POINTER 6.1 Tujuan Praktikum 6.2 Teori Penunjang Pointer PERTEMUAN VI POINTER 6.1 Tujuan Praktikum Praktikan mengenal type data Pointer, mengerti tentang konsep dasar dari pointer, dapat mendeklarasikan pointer di Pascal serta dapat menggunakannya di dalam sebuah

Lebih terperinci

Tipe Data dan Operator

Tipe Data dan Operator Tipe Data dan Operator Dasar Algoritma dan Pemrogrman Eka Maulana, ST, MT, MEng. Klasifikasi Tipe Data 1 Tipe Data Tipe data adalah jenis data yang dapat diolah oleh komputer untuk memenuhi kebutuhan dalam

Lebih terperinci

Array (Larik) Modul 7

Array (Larik) Modul 7 Array (Larik) Modul 7 Array adalah suatu tipe data terstuktur yang berupa sejumlah data sejenis (bertipe data sama) yang jumlahnya tetap dan diberi suatu nama tertentu, elemen-elemen array tersusun secara

Lebih terperinci

PEMROGRAMAN BERORIENTASI OBJEK. Pengulangan. Budhi Irawan, S.Si, M.T

PEMROGRAMAN BERORIENTASI OBJEK. Pengulangan. Budhi Irawan, S.Si, M.T PEMROGRAMAN BERORIENTASI OBJEK Pengulangan Budhi Irawan, S.Si, M.T PENGULANGAN Pengulangan adalah suatu proses yang melakukan perulangan statement-statement dalam sebuah program secara terus-menerus sampai

Lebih terperinci

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

Kurikulum Qt. Chapter 5 Pointer dan References. Agenda. Apa itu Pointer? Memory Komputer. Mengambil Alamat Memory dari Variabel Chapter 5 Pointer dan References Agenda Pada chapter ini kita akan membahas beberapa topik yang berhubungan dengan pointer dan reference yaitu: Penggunaan Pointer. Pointer dan Array. Mengalokasikan memory

Lebih terperinci

1. Tipe Data Sederhana Hanya dimungkinkan untuk menyimpan sebuah nilai data dalam sebuah variabel Ada 5 macam : int, float, double, char, boolen

1. Tipe Data Sederhana Hanya dimungkinkan untuk menyimpan sebuah nilai data dalam sebuah variabel Ada 5 macam : int, float, double, char, boolen Pokok Bahasan Pengantar Struktur Data Pengertian Struktur Data Struktur data adalah cara menyimpan atau merepresentasikan data di dalam komputer agar bisa dipakai secara efisien Sedangkan data adalah representasi

Lebih terperinci

PEMROGRAMAN BERORIENTASI OBJEK

PEMROGRAMAN BERORIENTASI OBJEK PEMROGRAMAN BERORIENTASI OBJEK Fungsi Budhi Irawan, S.Si, M.T 10/27/2017 9:12:31 AM 1 PENDAHULUAN Fungsi merupakan kumpulan statemen yang dikelompokan menjadi satu bagian kode (blok program) untuk menyelesaikan

Lebih terperinci

Pendahuluan Pemrograman Mikrokontroler

Pendahuluan Pemrograman Mikrokontroler Pendahuluan Pemrograman Mikrokontroler Pokok Bahasan: 1. Pemrograman C 2. Pengalokasian Memory Tujuan Belajar: Setelah mempelajari dalam bab ini, mahasiswa diharapkan mampu: 1. Memahami dan Menjelaskan

Lebih terperinci

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

SOAL C++ Created by Yuli Astuti,S.Kom Copyright 2009 SOAL C++ 1. Penulisan Preprocessor yang benar di awali dengan tanda pound atau tanda : a. # c. @ b. & d. = 2. Contoh penulisan file header yang benar yaitu : a. &include c. =include

Lebih terperinci

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

Senarai berantai. linked list. Pertemuan keenam Struktur data st3telkom.ac.id. by : tenia wahyuningrum & Sisilia Thya Safitri Senarai berantai linked list Pertemuan keenam Struktur data st3telkom.ac.id by : tenia wahyuningrum & Sisilia Thya Safitri Senarai berantai Dalam pemakaian sehari-hari istilah senarai berantai (list) adalah

Lebih terperinci

ALGORITMA DAN STRUKTUR DATA POINTER DAN FUNCTION

ALGORITMA DAN STRUKTUR DATA POINTER DAN FUNCTION ALGORITMA DAN STRUKTUR DATA POINTER DAN FUNCTION POINTER POINTER ADALAH SUATU VARIABEL PENUNJUK, BERISI NILAI YANG MENUNJUK ALAMAT SUATU LOKASI MEMORI TERTENTU. JADI POINTER TIDAK BERISI NILAI DATA, MELAINKAN

Lebih terperinci

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LABSHEET ALGORITMA DAN STRUKTUR DATA

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LABSHEET ALGORITMA DAN STRUKTUR DATA Hal 1 dari 10 A. KOMPETENSI 1. Memahami pengertian dan manfaat fungsi 2. Memahami fungsi tanpa nilai balik 3. Memahami fungsi dengan nilai balik 4. Memahami jenis parameter: masukan, keluaran, dan masukan/keluaran

Lebih terperinci

DISUSUN OLEH BAB III OPERAS. macam, yaitu: baru. karakter. Tipe. Tipe Data. Tetapi. dataa tersebut. HAL 1

DISUSUN OLEH BAB III OPERAS. macam, yaitu: baru. karakter. Tipe. Tipe Data. Tetapi. dataa tersebut. HAL 1 DISUSUN OLEH : ADAM MUKHARIL BACHTIAR, S..Kom. DIKTAT MATAA KULIAH PEMROGRAMAN I BAB III TIPE DATA, VARIABEL, DAN OPERAS SI PERHITUNGAN IF Tipe Data Pembuatan sebuah program dimaksudkan untuk mengolah

Lebih terperinci

Array Dimensi Satu. Pendahuluan. Slamet Kurniawan, S.Kom

Array Dimensi Satu. Pendahuluan. Slamet Kurniawan, S.Kom Array Dimensi Satu Slamet Kurniawan, S.Kom Pendahuluan Selama ini kita menggunakan satu variabel untuk menyimpan 1 buah nilai dengan tipe data tertentu. int a1, a2, a3, a4, a5; Deklarasi variabel diatas

Lebih terperinci

Array 1 Dimensi pada Java

Array 1 Dimensi pada Java Array 1 Dimensi pada Java A. PENGENALAN ARRAY Dalam mendeklarasikan variabel, kita sering menggunakan tipe data yang sama namun dengan nama variabel atau identifier yang berbeda-beda. Sebagai contoh, kita

Lebih terperinci

REVIEW ARRAY. Institut Teknologi Sumatera

REVIEW ARRAY. Institut Teknologi Sumatera REVIEW ARRAY DASAR PEMROGRAMAN Institut Teknologi Sumatera TUJUAN PERKULIAHAN Mahasiswa mengingat kembali konsep dan cara kerja array Mahasiswa mampu membuat program menggunakan array PRE TEST Tuliskan,

Lebih terperinci

ARRAY PENGANTAR PROGRAM STUDI. Institut Teknologi Sumatera

ARRAY PENGANTAR PROGRAM STUDI. Institut Teknologi Sumatera ARRAY PENGANTAR PROGRAM STUDI Institut Teknologi Sumatera TUJUAN PERKULIAHAN Mahasiswa memahami konsep dan cara kerja array Mahasiswa mampu membuat program sederhana menggunakan array satu dimensi PRE

Lebih terperinci

LSP Telematika. Cover

LSP Telematika. Cover LSP Telematika Cover Daftar Isi Daftar Isi... 2 Kata Pengantar... 5 C++... 6 Bab I Pengenalan C++... 7 1.1 Konsep Kompilasi dan Eksekusi Progam... 8 1.2 Kerangka Program C++... 8 1.3 Komentar /(Comment)...

Lebih terperinci

SL 1201 Materi tentang Fungsi

SL 1201 Materi tentang Fungsi SL 1201 Materi tentang Fungsi Program merupakan kumpulan dari fungsi-fungsi baik yang didefinisikan langsung maupun yang disimpan dalam file header. Dalam program C++ selalu terdapat fungsi utama yang

Lebih terperinci

P3 Dasar Struktur Data TIF42/SIF42

P3 Dasar Struktur Data TIF42/SIF42 P3 Dasar Struktur Data TIF42/SIF42 A. Sidiq P. Prodi teknik Informatika & Prodi Sistem Informasi Fakultas Teknologi Informasi Universitas Mercu Buana Yogyakarta Pembahasan Struktur Data Primitif Struct

Lebih terperinci

LANGKAH-LANGKAH MENULISKAN PROGRAM DALAM TURBO C++

LANGKAH-LANGKAH MENULISKAN PROGRAM DALAM TURBO C++ I.PENDAHULUAN 1. 1. ALGORITMA Algoritma adalah urutan aksi-aksi yang dinyatakan dengan jelas dan tidak rancu untuk memecahkan suatu masalah dalam rentang waktu tertentu. Setiap aksi harus dapat dikerjakan

Lebih terperinci

PEMROGRAMAN BERORIENTASI OBJEK STRUCTURE & CLASS

PEMROGRAMAN BERORIENTASI OBJEK STRUCTURE & CLASS PEMROGRAMAN BERORIENTASI OBJEK STRUCTURE & CLASS Budhi Irawan, S.Si, M.T PENDAHULUAN Dalam C++, struktur dan kelas adalah dua hal yang sebenarnya saling memiliki hubungan, artinya dapat dibuat kelas dengan

Lebih terperinci

KU-1072 Pengenalan Teknologi Informasi - B. Materi: Array. Fakultas Ilmu dan Teknologi Kebumian

KU-1072 Pengenalan Teknologi Informasi - B. Materi: Array. Fakultas Ilmu dan Teknologi Kebumian KU-1072 Pengenalan Teknologi Informasi - B Materi: Array Fakultas Teknik Sipil dan Lingkungan Fakultas Ilmu dan Teknologi Kebumian Definisi Array [1] Array adalah suatu set dari alokasi data, dengan jenis

Lebih terperinci

PEMROGRAMAN BERORIENTASI OBJEK. Operator. Budhi Irawan, S.Si, M.T

PEMROGRAMAN BERORIENTASI OBJEK. Operator. Budhi Irawan, S.Si, M.T PEMROGRAMAN BERORIENTASI OBJEK Operator Budhi Irawan, S.Si, M.T OPERATOR Operator adalah tanda yang digunakan untuk melakukan operasi operasi tertentu didalam program. Dengan adanya operator maka dapat

Lebih terperinci

Algoritma dan Pemrograman Lanjut. Pertemuan Ke-10 Pointer 1

Algoritma dan Pemrograman Lanjut. Pertemuan Ke-10 Pointer 1 Algoritma dan Pemrograman Lanjut Pertemuan Ke-10 Pointer 1 Disusun Oleh : Wilis Kaswidjanti, S.Si.,M.Kom. Jurusan Teknik Informatika Fakultas Teknologi Industri Universitas Pembangunan Nasional Veteran

Lebih terperinci

MAKALAH STRUKTUR DATA. DOSEN PEMBIMBING Nisa miftachurohmah, S.kom., M.Si PENYUSUN SITI JAMILATUL MU ADDIBAH ( )

MAKALAH STRUKTUR DATA. DOSEN PEMBIMBING Nisa miftachurohmah, S.kom., M.Si PENYUSUN SITI JAMILATUL MU ADDIBAH ( ) MAKALAH STRUKTUR DATA DOSEN PEMBIMBING Nisa miftachurohmah, S.kom., M.Si PENYUSUN SITI JAMILATUL MU ADDIBAH (14.1.03.03.0024) FAKULTAS TEKNIK PROGRAM STUDI SISTEM INFORMASI UNIVERSITAS NUSANTARA PGRI KEDIRI

Lebih terperinci

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

MODUL. Pointer. Modul Praktikum C++ Dasar Pemrograman Komputer JURUSAN TEKNIK ELEKTRO FAKULTAS TEKNIK MODUL 7 Pointer Modul Praktikum C++ Dasar Pemrograman Komputer Semester Genap 2017/2018 JURUSAN TEKNIK ELEKTRO FAKULTAS TEKNIK MODUL 7 POINTER A. Tujuan Setelah mempelajari bab ini diharapkan mahasiswa

Lebih terperinci

Algoritma dan Struktur Data. Ramos Somya, S.Kom., M.Cs.

Algoritma dan Struktur Data. Ramos Somya, S.Kom., M.Cs. Algoritma dan Struktur Data Ramos Somya, S.Kom., M.Cs. Penggunaan record dalam jumlah yang banyak alokasi memory konvensional tidak bisa diandalkan. Misal kita akan bekerja dengan file yang menyimpan sangat

Lebih terperinci

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

E STRUKTUR DATA & E PRAKTIK STRUKTUR DATA. Pointer & Function. Alfa Faridh Suni, S.T., M.T. PTIK E3024015 - STRUKTUR DATA & E3024016 PRAKTIK STRUKTUR DATA Pointer & Function Alfa Faridh Suni, S.T., M.T. PTIK - 2014 Pointer Pointer adalah suatu variabel penunjuk, berisi nilai yang menunjuk alamat suatu

Lebih terperinci

Konsep Dasar Pemrograman Dan Pengenalan C++

Konsep Dasar Pemrograman Dan Pengenalan C++ PRAKTIKUM 1 DAN 2 Konsep Dasar Pemrograman Dan Pengenalan C++ I. KONSEP DASAR PEMROGRAMAN Program adalah deretan instruksi yang digunakan untuk mengendalikan komputer, sehingga komputer dapat melakukan

Lebih terperinci

Cara pertama adalah pada saat deklarasi variabel ditambahkan ke- yword const sebelum nama tipe data seperti

Cara pertama adalah pada saat deklarasi variabel ditambahkan ke- yword const sebelum nama tipe data seperti KONSTANTA Menghitung besaran-besaran fisis dalam bidang fisika memerlukan suatu konstantakonstanta. Bahasa C dan C++ menyediakan tipe data tambahan sehingga variabel yang kita gunakan merupakan konstanta

Lebih terperinci

Kisi-Kisi Ujian Akhir Semester Algoritma dan Pemrograman Lanjut

Kisi-Kisi Ujian Akhir Semester Algoritma dan Pemrograman Lanjut Kisi-Kisi Ujian Akhir Semester 2015.2 Algoritma dan Pemrograman Lanjut A. Materi Ujian Tengah Semester 1. Array Array adalah kumpulan data yang bertipe sama yang menggunakan nama yang sama. Dengan menggunakan

Lebih terperinci

VARIABEL & TIPE DATA PEMROGRAMAN C++

VARIABEL & TIPE DATA PEMROGRAMAN C++ VARIABEL & TIPE DATA PEMROGRAMAN C++ ruliriki@gmail.com VARIABEL Suatu nama yang menyatakan tempat dalam memori komputer Menyimpan nilai yang dapat diubah VARIABEL Pengenal (identifier) yang digunakan

Lebih terperinci

Algoritma dan Struktur Data Praktikum 3. Pointer

Algoritma dan Struktur Data Praktikum 3. Pointer Pointer Tujuan : mahasiswa dapat mendefinisikan pointer mahasiswa dapat memahami operasi pada pointer mahasiswa dapat menerapkan pointer pada contoh kasus Pengertian Pointer merupakan variabel yang digunakan

Lebih terperinci

PRAKTIKUM 2. perubah (variabel), konstanta, fungsi, atau obyek lain yang didefinisikan oleh

PRAKTIKUM 2. perubah (variabel), konstanta, fungsi, atau obyek lain yang didefinisikan oleh PRAKTIKUM 2 1. Variabel Pengenal (identifier) merupakan nama yang biasa digunakan untuk suatu perubah (variabel), konstanta, fungsi, atau obyek lain yang didefinisikan oleh pemrogram. Variabel adalah suatu

Lebih terperinci

Achmad Solichin.

Achmad Solichin. Pemrograman Bahasa C dengan Turbo C Sh-001@plasa.com Lisensi Dokumen: Seluruh dokumen di IlmuKomputer.Com dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan bukan komersial (nonprofit),

Lebih terperinci

LAPORAN PRAKTIKUM RESMI QUEUE

LAPORAN PRAKTIKUM RESMI QUEUE LAPORAN PRAKTIKUM RESMI QUEUE Disusun oleh : Amin Setyaningrum 201301052 Dosen pengampu : Yosef Murya Kusuma Ardhana.S.T., M.Kom JURUSAN SISTEM INFORMASI SEKOLAH TINGGI ILMU KOMPUTER YOS SUDARSO PURWOKERTO

Lebih terperinci

Identifier dan Tipe Data

Identifier dan Tipe Data Identifier dan Tipe Data Identifier Identifier atau pengenal merupakan nama yang biasa digunakan untuk : - Variable - Konstanta bernama - Fungsi - Dll Aturan yang berlaku bagi suatu pengenal secara umum

Lebih terperinci

PEMROGRAMAN BERORIENTASI OBJEK. Percabangan. Budhi Irawan, S.Si, M.T

PEMROGRAMAN BERORIENTASI OBJEK. Percabangan. Budhi Irawan, S.Si, M.T PEMROGRAMAN BERORIENTASI OBJEK Percabangan Budhi Irawan, S.Si, M.T PERCABANGAN Salah satu permasalahan yang akan dijumpai dalam pembuatan program adalah percabangan. Percabangan yang dimaksud adalah suatu

Lebih terperinci

By : Agus Priyanto, M.Kom ST3 Telkom Purwokerto Structure and Pointer

By : Agus Priyanto, M.Kom ST3 Telkom Purwokerto  Structure and Pointer By : Agus Priyanto, M.Kom ST3 Telkom Purwokerto www.st3telkom.ac.id Structure and Pointer UDT (User Defined Type) Tipe Data Bentukan User Bahasa pemrograman bisa memiliki tipe data: Built-in : sudah tersedia

Lebih terperinci

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LABSHEET ALGORITMA DAN STRUKTUR DATA

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LABSHEET ALGORITMA DAN STRUKTUR DATA Hal 1 dari 14 A. KOMPETENSI 1. Mampu memahami jenis-jenis dan penggunaan tipe dasar di dalam C++ 2. Mendefinisikan tipe data bentukan (array, struktur, dan enumerasi) 3. Memahami null terminated string

Lebih terperinci

BAHASA PEMROGRAMAN C

BAHASA PEMROGRAMAN C BAHASA PEMROGRAMAN C A. Pengenalan Bahasa C diciptakan oleh Dennis Ritchie tahun 1972 di Bell Laboratories. Kelebihan Bahasa C: - Bahasa C tersedia hampir di semua jenis computer. - Kode bahasa C sifatnya

Lebih terperinci

Bahasa C-M6 By Jamilah, Skom 1

Bahasa C-M6 By Jamilah, Skom 1 BAB 1 KONSEP DASAR BAHASA C 1.1 SEJARAH DAN STANDAR C Akar dari bahasa C adalah bahasa BCPL yang dikembangkan oleh Martin Richard pada tahun 1967. Bahasa ini memberkan ide kepada ken thompson yang kemudian

Lebih terperinci

Chapter 1 KONSEP DASAR C

Chapter 1 KONSEP DASAR C Chapter 1 KONSEP DASAR C Sejarah Dan Standar C Akar dari bahasa C adalah BCPL (dikembangkan oleh Martin Richard tahun 1967). Kemudian Tahun 1970, Ken Thompson mengembangkan bahasa tersebut yang di kenal

Lebih terperinci

Instalasi Code::Blocks, Tipe Data, Variabel, Konstanta, Operator, Input-Output dan Flowchart

Instalasi Code::Blocks, Tipe Data, Variabel, Konstanta, Operator, Input-Output dan Flowchart Instalasi Code::Blocks, Tipe Data, Variabel, Konstanta, Operator, Input-Output dan Flowchart Pertemuan ke-1 Praktikum Algoritma dan Pemrograman Laboratorium Pemrograman dan Informatika Teori Pengumuman

Lebih terperinci

Algoritma dan Struktur Data. Ramos Somya

Algoritma dan Struktur Data. Ramos Somya Algoritma dan Struktur Data Ramos Somya Penggunaan record dalam jumlah yang banyak alokasi memory konvensional tidak bisa diandalkan. Misal kita akan bekerja dengan file yang menyimpan sangat banyak record,

Lebih terperinci

Pengenalan Array. Array Satu Dimensi

Pengenalan Array. Array Satu Dimensi Bab 1 Array/ Larik Pengenalan Array Array adalah suatu data terstruktur yang terdiri dari sejumlah elemen yang memiliki tipe data yang sama. Elemen-elemen array tersusun secara sekuensial dalam memori

Lebih terperinci

BAB III Pengenalan Tipe Data dan Bahasa Pemrograman C/C++

BAB III Pengenalan Tipe Data dan Bahasa Pemrograman C/C++ BAB III Pengenalan Tipe Data dan Bahasa Pemrograman C/C++ Pendahuluan Pada bab ini dileaskan tipe data dan operasi baca tulis data, juga dijelaskan struktur pemrograman pada bahasa C/C++ Penyajian 31 Tipe

Lebih terperinci

Identifier Tipe Data Yoannita, S.Kom.

Identifier Tipe Data Yoannita, S.Kom. DASAR PEMROGRAMAN Identifier Tipe Data. 1 IDENTIFIER (pengenal) Nama tipe (di bagian deklarasi Type) Tempat penyimpanan suatu data : variable jika isinya dapat berubah dalam kisaran tertentu konstanta

Lebih terperinci

PEMROGRAMAN TERSTRUKTUR D3MI 2016

PEMROGRAMAN TERSTRUKTUR D3MI 2016 MATERI V LOOPING PERULANGAN Pengulangan adalah suatu proses yang melakukan statemen-statemen dalam sebuah program secara terus menerus sampai terdapat kondisi untuk menghentikannya. Struktur perulangan

Lebih terperinci

Tipe Data, Variabel, Input/Output

Tipe Data, Variabel, Input/Output Tipe Data, Variabel, Input/Output Pendahuluan Untuk membuat program dengan bahasa pemrograman C harus memperhatikan struktur dasarnya. Strukturnya diawali dengan bagian preprocessor directive yang biasanya

Lebih terperinci

ELEMEN DASAR C++ C++ mempunyai cara untuk menyatakan karakter-karakter yang tidak mempunyai kode tombol (seperti karakter tombol) misalnya \n.

ELEMEN DASAR C++ C++ mempunyai cara untuk menyatakan karakter-karakter yang tidak mempunyai kode tombol (seperti karakter tombol) misalnya \n. 1 ELEMEN DASAR C++ HIMPUNAN KARAKTER Himpunan karakter pada C++ terdiri huruf, digit maupun simbol-simbol lainnya (termasuk spasi dan karakter kontrol). Huruf, contoh : A s/d Z dan a s/d z Digit, contoh

Lebih terperinci

PERTEMUAN V PEMROGRAMAN TERSTRUKTUR DENGAN VISUAL C Setiap bahasa C mempunyai satu fungsi dengan nama main (program utama).

PERTEMUAN V PEMROGRAMAN TERSTRUKTUR DENGAN VISUAL C Setiap bahasa C mempunyai satu fungsi dengan nama main (program utama). PERTEMUAN V PEMROGRAMAN TERSTRUKTUR DENGAN VISUAL C++ 6.0 STRUKTUR BAHASA C Setiap bahasa C mempunyai satu fungsi dengan nama main (program utama). Setiap program akan dieksekusi dimulai dari statement

Lebih terperinci

POINTER. Tim Alpro Teknik Informatika

POINTER. Tim Alpro Teknik Informatika POINTER Tim Alpro Teknik Informatika Pointer Pointer merupakan salah satu keunggulan dari bahasa C. Komputer mengalokasikan sebuah area pada memori ketika sebuah variabel dideklarasikan. Area tersebut

Lebih terperinci

ARRAY. contoh : A[1] := 10; var A : array[1..10] of integer; A[nomer_indeks]

ARRAY. contoh : A[1] := 10; var A : array[1..10] of integer; A[nomer_indeks] ARRAY Array adalah tipe data kompleks yang elemen-elemennya mempunyai tipe data yang sama. Jumlah elemen array bersifat tetap dan tidak bisa ditambah atau dikurangi setelah pendeklarasiannya. Tiap elemen

Lebih terperinci

PEMROGRAMAN BAHASA C++ ASEP MUHIDIN. Penerbit ZEYRANK OFFSET. Aa Oon Pemrograman Bahasa C++ 1

PEMROGRAMAN BAHASA C++ ASEP MUHIDIN. Penerbit ZEYRANK OFFSET. Aa Oon Pemrograman Bahasa C++ 1 PEMROGRAMAN BAHASA C++ ASEP MUHIDIN Penerbit ZEYRANK OFFSET Aa Oon Pemrograman Bahasa C++ 1 MODUL KULIAH PEMROGRAMAN BAHASA C++ Penyusun : ASEP MUHIDIN Penerbit : Zeyrank Offset Percetakan : Adjie Group

Lebih terperinci

Algoritma Pemrograman & Struktur Data

Algoritma Pemrograman & Struktur Data MODUL PERKULIAHAN Algoritma Pemrograman & Struktur Data Array Fakultas Program Studi Tatap Muka Kode MK Disusun Oleh Fakultas Ilmu Informatika Komputer 02 87042 Abstract Penjelasan mengenai array dan penggunaannya

Lebih terperinci

Algoritma Pemrograman & Struktur Data

Algoritma Pemrograman & Struktur Data MODUL PERKULIAHAN Algoritma Pemrograman & Struktur Data Stack Fakultas Program Studi Tatap Muka Kode MK Disusun Oleh Fakultas Ilmu Informatika Komputer 04 87042 Abstract Penjelasan mengenai stack dan penggunaannya

Lebih terperinci

KARAKTER DAN STRING, ARRAY, STRUCT DAN REVIEW PADA BAHASA C

KARAKTER DAN STRING, ARRAY, STRUCT DAN REVIEW PADA BAHASA C KARAKTER DAN STRING, ARRAY, STRUCT DAN REVIEW PADA BAHASA C Disusun oleh: Bachtiar Maulana (58411782) Marlinda Dwi Cahya (54411318) Muh. Mahlani (5411622) Muzaky Bakri Salim (55411060) UNIVERSITAS GUNADARMA

Lebih terperinci

Pemrograman Dasar C. Minggu 10

Pemrograman Dasar C. Minggu 10 Pemrograman Dasar C Minggu 10 Topik Bahasan Pointer: Pointer ke array Penggunaan untuk mengirim ke fungsi Arithmatika pointer Pointer ke pointer Pointer dan Structure Penggunaan untuk mengirim ke fungsi

Lebih terperinci

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

pada program di atas, akan ditampilkan alamat memori dari variabel x, bukan nilai x. Bab 3 Pointer Mengenal Pointer Pointer adalah suatu variabel penunjuk, berisi nilai yang menunjuk alamat suatu lokasi memori tertentu. Jadi pointer tidak berisi nilai data, melainkan berisi suatu alamat

Lebih terperinci

Kisi-Kisi Ujian Tengah Semester Algoritma dan Pemrograman Lanjut

Kisi-Kisi Ujian Tengah Semester Algoritma dan Pemrograman Lanjut Kisi-Kisi Ujian Tengah Semester Algoritma dan Pemrograman Lanjut 1. Pengenalan Bahasa C++ a. Elemen Bahasa C+ Bahasa C++ ditulis dari beberapa elemen, antara lain: Pernyataan Satu atau beberapa ekspresi

Lebih terperinci

LARIK (ARRAY) Latar Belakang Array

LARIK (ARRAY) Latar Belakang Array LARIK (ARRAY) Latar Belakang Array Sejauh ini cuplikan program yang kita pelajari masih sangat terbatas, karena statement assignment hanya berupa pemberian satu nilai pada satu variabel Padahal sering

Lebih terperinci

TEKNIK ELEKTRO FAKULTAS TEKNIK UNISMA

TEKNIK ELEKTRO FAKULTAS TEKNIK UNISMA modul_kuliah ALGORITMA PEMROGRAMAN & STRUKTUR DATA dengan C++ oleh : MUHAMMAD TAQIYYUDDIN ALAWIY, ST. MT TEKNIK ELEKTRO FAKULTAS TEKNIK UNISMA 2006 2 MODUL 1 1. PENGANTAR CFF C++ diciptakan oleh Bjarne

Lebih terperinci

Pointer dan Array Dinamik. IF2121 / Algoritma dan Struktur Data Sem /2018

Pointer dan Array Dinamik. IF2121 / Algoritma dan Struktur Data Sem /2018 Pointer dan Array Dinamik IF2121 / Algoritma dan Struktur Data Sem. 1 2017/2018 1 Tujuan Mahasiswa memahami sintaks dan pengertian pointer (dalam bahasa C) Mahasiswa mengerti penggunaan pointer dengan

Lebih terperinci

LIST. Dewi Sartika, M.Kom

LIST. Dewi Sartika, M.Kom LIST PENDAHULUAN Linked List adalah sejumlah objek yang dihubungkan (linked) satu dengan yang lainnya membentuk suatu list. Objek adalah gabungan dari beberapa data (variable) yang dijadikan satu kelompok

Lebih terperinci

Pointer (Part 1) Alamat dan Pointer. Dadang mulyana. sederhana.

Pointer (Part 1) Alamat dan Pointer. Dadang mulyana. sederhana. Pointer (Part 1) Dadang mulyana Alamat dan Pointer Konsep pointer sebenarnya cukup sederhana. Pointer sesungguhnya berisi alamat dari suatu data, bukan data sebagaimana variabel yang telah anda kenal.

Lebih terperinci

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

BAB X. Struct Dalam C++, kita dapat membuat sebuah tipe data baru. Maka penulisan variabel baru kita akan menjadi: 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

Lebih terperinci

POINTER. Tim Alpro Teknik Informatika

POINTER. Tim Alpro Teknik Informatika POINTER Tim Alpro Teknik Informatika Pointer Pointer merupakan salah satu keunggulan dari bahasa C. Komputer mengalokasikan sebuah area pada memori ketika sebuah variabel dideklarasikan. Area tersebut

Lebih terperinci

PENGERTIAN VARIABEL, KONSTANTA DAN TIPE DATA

PENGERTIAN VARIABEL, KONSTANTA DAN TIPE DATA PENGERTIAN VARIABEL, KONSTANTA DAN TIPE DATA Haida Dafitri, ST, M.Kom Ta. 2016 2017 T. Informatika STT Harapan Medan TUJUAN PEMBELAJARAN Setelah menyelesaikan bab ini, anda diharapkan : Mengenal dan Mengetahui

Lebih terperinci

BAHASA PEMROGRAMAN 1 (PERTEMUAN 3)

BAHASA PEMROGRAMAN 1 (PERTEMUAN 3) BAHASA PEMROGRAMAN 1 (PERTEMUAN 3) ARRAY KUMPULAN SOAL LATIHAN PREPARED BY CHANDRA 092110187 05 06 2010 (REVISED) PENGENALAN ARRAY Array dari Pesawat Array dari Serangga Array dari Kartu Array dari Karakter

Lebih terperinci

Pengenalan Struktur Data. Farah Zakiyah Rahmanti 2014

Pengenalan Struktur Data. Farah Zakiyah Rahmanti 2014 Pengenalan Struktur Data Farah Zakiyah Rahmanti 2014 Definisi Skema organisasi, seperti struktur dan array, yang diterapkan pada data sehingga data dapat diinterprestasikan dan sehingga operasoperasi spesifik

Lebih terperinci

Chapter 2 Tipe Data, Identifier, Operator dan Control Statement

Chapter 2 Tipe Data, Identifier, Operator dan Control Statement Chapter 2 Tipe Data, Identifier, Operator dan Control Statement Tipe Data dan Identifier Program adalah kumpulan instruksi yang disusun sedemikian rupa sehingga mempunyai urutan nalar yang tepat untuk

Lebih terperinci

P 4 Bab 3 : Dasar Pemrograman C

P 4 Bab 3 : Dasar Pemrograman C Kampus II, Jl. Jembatan Merah, Nomor.C. Gejayan, Yogyakarta, Telp: (0), Fax (0) 00 P Bab : Dasar Pemrograman C. Tujuan Mahasiswa mampu mengetahui dan memahami identifier, keyword, variable, tipe data,

Lebih terperinci

VARIABEL, TIPE DATA DAN EKSPRESI Bab 2

VARIABEL, TIPE DATA DAN EKSPRESI Bab 2 VARIABEL, TIPE DATA DAN EKSPRESI Bab 2 2.1 IDENTIFIER Indentifier adalah nama yang diberikan untuk nama objek, nama fungsi, nama variable, dll ( sifatnya case sensitive ). Identifier pada C++ terdiri dari

Lebih terperinci

elemen Dasar Bahasa Pemrograman C

elemen Dasar Bahasa Pemrograman C Elemen-elemen elemen Dasar Bahasa Pemrograman C Algoritma dan Pemrograman Tahar Agastani Teknik Informatika UIN - 2008 Identifier : Elemen Dasar C Nama pengenal (identifier) adalah nama-nama yang ditentukan

Lebih terperinci

Basic Input/Output Operator Yoannita

Basic Input/Output Operator Yoannita DASAR PEMROGRAMAN Basic Input/Output Operator Yoannita Standard Output (cout) cout

Lebih terperinci

ALGORITMA DAN STRUKTUR DATA

ALGORITMA DAN STRUKTUR DATA Modul ke: 03 Fitrianingsih, Fakultas FASILKOM ALGORITMA DAN STRUKTUR DATA OLEH : Skom., MMSI Program Studi Sistem Informasi Bagian Isi POINTER POINTER DAN ADDRESS POINTER DAN FUNCTION LINKED LIST ALGORITMA

Lebih terperinci

SORTING. Struktur Data S1 Sistem Informasi. Ld.Farida

SORTING. Struktur Data S1 Sistem Informasi. Ld.Farida SORTING Struktur Data S1 Sistem Informasi Ld.Farida INTRO Sorting (Pengurutan) diartikan sebagai penyusunan kembali sekumpulan objek ke dalam urutan tertentu Tujuan: Mendapatkan kemudahan dalam pencarian

Lebih terperinci

PRAKTIKUM 4 PERCABANGAN

PRAKTIKUM 4 PERCABANGAN PRAKTIKUM 4 PERCABANGAN Tujuan: Dapat menggunakan instruksi percabangan di dalam pemecahan masalah I. PERCABANGAN Salah satu permasalahan yang pasti akan dijumpai dalam pembuatan program adalah percabangan.

Lebih terperinci

Sejarah C. Dirancang oleh Denis M. Ritchie tahun 1972 di Bell Labs.

Sejarah C. Dirancang oleh Denis M. Ritchie tahun 1972 di Bell Labs. Sejarah C Dirancang oleh Denis M. Ritchie tahun 1972 di Bell Labs. Pengembangan dari bahasa BCPL(Martin Richard, 1967) dan bahasa B (Ken Thompson, 1970) Dibantu Brian W. Kernighan, Ritchie menulis buku

Lebih terperinci

STRUKTUR DASAR PEMROGRAMAN

STRUKTUR DASAR PEMROGRAMAN STRUKTUR DASAR PEMROGRAMAN P E N G E N A L A N P R O G R A M S T U D I Institut Teknologi Sumatera 15/09/2017 PENGANTAR PROGRAM STUDI 1 TUJUAN KULIAH Subtopik Input Proses Output dalam program Deklarasi

Lebih terperinci

ARRAY / LARIK. Oleh : Agus Priyanto, M.Kom SEKOLAH TINGGI TEKNOLOGI TELEMATIKA TELKOM. Smart, Trustworthy, And Teamwork

ARRAY / LARIK. Oleh : Agus Priyanto, M.Kom SEKOLAH TINGGI TEKNOLOGI TELEMATIKA TELKOM. Smart, Trustworthy, And Teamwork ARRAY / LARIK Oleh : Agus Priyanto, M.Kom SEKOLAH TINGGI TEKNOLOGI TELEMATIKA TELKOM Smart, Trustworthy, And Teamwork Tujuan Mahasiswa memahami makna dan kegunaan array (tabel) Mahasiswa dapat menggunakan

Lebih terperinci

Turbo C adalah tool yang dipakai untuk membuat code program dalam bahasa C ataupun C++. Berikut adalah jendela utama Turbo C

Turbo C adalah tool yang dipakai untuk membuat code program dalam bahasa C ataupun C++. Berikut adalah jendela utama Turbo C 1. Pendahuluan Lingkungan Turbo C++ 4.5 Turbo C++ 4.5 adalah tool yang dipakai untuk membuat code program dalam bahasa C ataupun C++. Berikut adalah jendela utama Turbo C++ 4.5. 1 2 3 4 1 : Menu Utama

Lebih terperinci

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

Pemrograman Berorientasi Obyek (C++) Departemen Ilmu Komputer FMIPA IPB 2013 Pemrograman Berorientasi Obyek (C++) Departemen Ilmu Komputer FMIPA IPB 2013 C++ C diambil sebagai landasan dari C++ Mendukung Pemrograman Berorientasi Obyek (PBO) Bersifat Reusability (kemudahan untuk

Lebih terperinci

A. TUJUAN PEMBELAJARAN

A. TUJUAN PEMBELAJARAN Praktikum 4 Alokasi Memori A. TUJUAN PEMBELAJARAN Setelah mempelajari materi dalam bab ini, mahasiswa diharapkan mampu: 1. Memahami perbedaan penggunaan tipe data array dengan pointer menggunakan alokasi

Lebih terperinci

Algoritma dan Struktur Data. Linked List

Algoritma dan Struktur Data. Linked List Algoritma dan Struktur Data Linked List Syntax: struct nama_struct { tipe_data_1 nama_var_1; tipe_data_2 nama_var_2; tipe_data_3 nama_var_3; }; 2 KONSEP ALOKASI MEMORY DINAMIS 1. Deklarasikan pointer yang

Lebih terperinci

Pointer. Objektif. Bahan Bacaan

Pointer. Objektif. Bahan Bacaan Pointer Pointer merupakan variabel yang dapat memegang alamat dari suatu objek dalam memori. Pointer digunakan dalam program untuk mengakses dan manipulasi data pada alamat tertentu. Dalam ANSI/C, array

Lebih terperinci

BAB 5 PERULANGAN DAN ARRAY

BAB 5 PERULANGAN DAN ARRAY Bab 5 Perulangan dan Array 66 BAB 5 PERULANGAN DAN ARRAY TUJUAN PRAKTIKUM 1. Praktikan mengerti apa yang dimaksud dengan perulangan 2. Praktikan mengerti apa yang dimaksud dengan seleksi kondisi 3. Praktikan

Lebih terperinci

PEMROGRAMAN BERORIENTASI OBJEK OBJECT

PEMROGRAMAN BERORIENTASI OBJEK OBJECT PEMROGRAMAN BERORIENTASI OBJEK OBJECT Budhi Irawan, S.Si, M.T OBJEK SEBAGAI PARAMETER DALAM SEBUAH FUNGSI Dalam C++, objek dapat juga berperan sebagai parameter dalam pendefinisian sebuah fungsi. Objek

Lebih terperinci

STRUKTUR DATA MENGGUNAKAN C++ Windha Mega PD, S.Kom

STRUKTUR DATA MENGGUNAKAN C++ Windha Mega PD, S.Kom STRUKTUR DATA MENGGUNAKAN C++ Windha Mega PD, S.Kom DASAR PEMROGRAMAN C++ Bahasa C++ adalah bahasa yang menggunakan kompiler untuk translator dari kode program menjadi bahasa mesin. Bahasa C++ mempunyai

Lebih terperinci