MODUL V POINTER DAN STRING

dokumen-dokumen yang mirip
Pointer dan Referensi

Algoritma Pemrograman & Struktur Data

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

Algoritma dan Pemrograman Lanjut. Pertemuan Ke-10 Pointer 1

Konsep Array dalam PBO

Pengenalan C++ Oleh : Dewi Sartika

Identifier dan Tipe Data

Komentar, Identifier, Konstanta dan Variabel

Pointer, File Header & Makro

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

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

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

Seluruh elemen di dalam struktur array mempunyai tipe data yang sama. Random Access

POINTER DASAR PEMROGRAMAN

PEMROGRAMAN BERORIENTASI OBJEK

Larik/ Array int a1, a2, a3, a4, a5;

VARIABEL & TIPE DATA PEMROGRAMAN C++

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

ARRAY. Karakteristik

PRAKTIKUM 11 POINTER 1

Tipe bentukan dan pointer selanjutnya akan kita pelajari pada modul pemrograman 1 (akhir semester).

ALGORITMA DAN STRUKTUR DATA POINTER DAN FUNCTION

PSEUDOCODE TIPE DATA, VARIABEL, DAN OPERATOR

PERTEMUAN II Tipe Data, Variabel, Konstanta, Operator

BAB 5 PERULANGAN DAN ARRAY

Konsep Dasar Pemrograman Dan Pengenalan C++

PENGENALAN BAHASA C. A. Struktur Kode Program dalam Bahasa C Secara garis besar, suatu kode program dalam bahasa C memiliki struktur umum seperti ini:

VARIABEL, TIPE DATA DAN EKSPRESI Bab 2

Pointer. Objektif. Bahan Bacaan

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

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

Tipe data dasar merupakan tipe data yang disediakan oleh kompailer, sehingga dapat langsung dipakai Dalam algoritma dan pemrograman yang termasuk dala

PERTEMUAN 2 KONSEP DASAR PEMROGRAMAN

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

BAB VII. FUNCTION. A. Pengantar Function. #include <iostream.h> #include <conio.h> { clrscr(); // detail function

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LABSHEET ALGORITMA DAN STRUKTUR DATA

POINTER. Pemrograman Bahasa C++

Pointer 2 A. TUJUAN PEMBELAJARAN. 1. Memahami tentang Pointer to Array 2. Memahami tentang Pointer to String

Algoritma dan Struktur Data Praktikum 3. Pointer

LANGKAH-LANGKAH MENULISKAN PROGRAM DALAM TURBO C++

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

P3 Dasar Struktur Data TIF42/SIF42

POINTER. Praktikum 10 (3/5) A. TUJUAN 1. Menjelaskan tentang Pointer to Array 2. Menjelaskan tentang Pointer to String

PENGANTAR KOMPUTER & SOFTWARE II. Pengulangan (For) Tim Pengajar KU Institut Teknologi Sumatera

ARRAY PENGANTAR PROGRAM STUDI. Institut Teknologi Sumatera

PRAKTIKUM 11 POINTER 1

MAKALAH POINTER PADA BAHASA C

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

STRUKTUR DASAR PEMROGRAMAN

POINTER I. Oleh : Mike Yuliana PENS-ITS

A. Putting a Program Together

A. Putting a Program Together

Pemrograman Dasar C. Minggu 6

Konsep Pemrograman. Bab 12. Pointer 2. Konsep Pemrograman Politeknik Elektronika Negeri Surabaya 2006 PENS-ITS. Umi Sa adah

BAB VIII POINTER. Tujuan :

Array (Larik) Modul 7

Achmad Solichin.

Basic Input/Output Operator Yoannita

Bab 2. Dasar-Dasar Pemrograman C

POINTER. Tim Alpro Teknik Informatika

ALGORITMA DAN STRUKTUR DATA

BAB III POINTER. Type *variabel-name

Pertemuan 2 ARRAY DIMENSI 1 & 2

BAB 6 POINTER DAN REFERENCE

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

Tipe Data dan Operator

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

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

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

Struktur Dasar Bahasa C Tipe Data Dalam bahasa C terdapat lima tipe data dasar, yaitu :

DASAR PEMROGRAMAN. PENGANTAR BAHASA C ( Sejarah, Struktur Pemrograman, Tipe Data, Operator ) Djoko Soerjanto, M.Kom

Praktikum Dasar Pemrograman 2014 MODUL 3: Array dan String

Keg. Pembelajaran 2 : Mengenal Bahasa C++

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

LARIK (ARRAY) Latar Belakang Array

Pertemuan 4 ELEMEN-ELEMEN BAHASA PEMROGRAMAN

Tabel Informasi. Hal di atas dapat dilakukan dengan menambah dan mengambil atribut identifier yang digunakan pada program, melalui tabel informasi.

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

PERTEMUAN 3 KONSEP TIPE DATA

I. Tipe Data - Variabel

ARRAY DIMENSI 1 & 2. Array dapat didefinisikan sebagai suatu himpunan hingga elemen yang terurut dan homogen.

TEKNIK ELEKTRO FAKULTAS TEKNIK UNISMA

Identifier Tipe Data Yoannita, S.Kom.

Algoritma dan Pemrograman Lanjut. Pertemuan Ke-11 Pointer 2

PEMROGRAMAN TERSTRUKTUR PERTEMUAN VI KOMPONEN KOMPONEN PEMROGRAMAN TERSTRUKTUR

MODUL 5 PERULANGAN (LOOPING)

Algoritme dan Pemrograman

PEMROGRAMAN JAVA. Petunjuk Penulisan Program Token Aturan Penamaan Identifier Lingkungan /Scope dari variabel Tipe Data (i) Yoannita

Array 1 Dimensi pada Java

DASAR STRING. Sama halnya seperti array-array sebelumnya, inisialisasi pada string adalah: char mystring[] = { 'H', 'e', 'l', 'l', 'o', '\0' };

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

Pointer. ted = &andy;

REVIEW ARRAY. Institut Teknologi Sumatera

1 MODUL 8 POINTER MODUL 8 POINTER

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

Variabel dan Tipe data Javascript

Fungsi 1. Ekohariadi FT Unesa

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

Modul Praktikum Bahasa Pemrograman 1

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

Transkripsi:

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 yang menunjuk pointer II DASAR TEORI 1 VARIABEL POINTER Pointer merupakan sebuah variabel yang menyimpan alamat memori Cara mendeklarasikan variabel pointer dengan menggunakan simbol asterisk (*) antara tipe data dan nama variabel Berikut ini bentuk umum dari pendeklarasian sebuah variabel pointer: tipe_data *nama_pointer; Pemberian spasi pada tanda * tidak akan mengubah arti, sehingga penulisan bentuk umum dari deklarasi variabel pointer dapat juga dituliskan sebagai berikut: tipe_data* nama_pointer; atau tipe_data * nama_pointer; Contoh: int *a; char *b; Pada pernyataan diatas, a dan b adalah variabel pointer a berisi alamat memori dari tipe int, dan b berisi alamat memori dari tipe char Secara umum a disebut variabel pointer dari tipe int, dan b disebut variabel pointer dari tipe char int *a, b; Pada pernyataan diatas, hanya a yang merupakan variabel pointer b merupakan variabel int, bukan variabel pointer int *a, *b; a dan b merupakan variabel pointer dari tipe int Operator Alamat (&) Simbol ampersand (&) disebut sebagai operator alamat, yang merupakan sebuah operator unary yang mengembalikan alamat dari operannya Contoh: int x; int *y; Pernyataan: y = &x; mengisikan alamat dari x ke y, sehingga x dan nilai dari y menunjuk ke alamat memori yang sama V - 1

Operator Dereference (*) Simbol asterisk (*) selain digunakan sebagai perkalian juga bisa digunakan debagai operator dereference atau operator indirection, yang menunjuk pada objek (nilai) dari operannya Contoh: int x = 25; int *p; p = &x; // mengisikan alamat dari x ke dalam p Pernyataan: cout << *p << endl; menampilkan nilai yang disimpan dalam ruang memori yang ditunjuk oleh p, yang merupakan nilai dari x Perhatikan pernyataan dibawah ini: int *p; int q; Pada pernyataan diatas, p adalah variabel pointer dari tipe int dan q adalah variabel dari tipe int (Gambar 51) Diasumsikan bahwa lokasi memori 1200 dialokasikan untuk p dan lokasi memori 1800 dialokasikan untuk q Pernyataan: q =78; menyimpan 78 didalam q, yaitu di lokasi memori 1800 (Gambar 52) Main memory p 1200 q 1800 1800 78 V - 2

2 TIPE STRING String digunakan untuk merepresentasikan data yang berupa teks String merupakan urutan dari satu atau lebih karakter Dalam C++, string diapit oleh tanda petik dua Sebelum menggunakan tipe data string, program harus menyertakan header string seperti berikut: #include <string> Pernyataan: string nama = Pemrograman Lanjut ; mendeklarasikan nama menjadi variabel string dan menginisialisasikan nama ke Pemrograman Lanjut Posisi dari karakter pertama, P, adalah 0; posisi karakter kedua, e, adalah 1; dst Posisi dari karakter pertama pada variable string dimulai dari 0, bukan 1 Perhatikan deklarasi dibawah ini: string str1, str2, str3; Pernyataan: str1 = Hello There ; menyimpan string Hello There pada str1 Pernyataan: str2 = str1; menyalin nilai str1 ke str2 Jika str1 = Sunny, pernyataan: str2 = str1 + Day ; menyimpan string Sunny Day kedalam str2 Jika str1 = Hello there, pernyataan: str1[6] = T ; mengganti karakter t dengan karakter T Posisi dari karakter pertama pada variabel string adalah 0 Jadi, karena t adalah karakter ketujuh di str1, posisinya adalah 6 Operasi string Tambahan Tipe data string terdiri dari beberapa fungsi untuk manipulasi string Lima fungsi diantaranya adalah: length, size, find, substr, dan swap 1) Fungsi length Fungsi length mengembalikan jumlah karakter di dalam string Sintaks untuk memanggil fungsi length adalah: nama_stringlength() dimana nama_string adalah nama variable dari tipe string 2) Fungsi size Fungsi size mempunyai kegunaan yang sama dengan fungsi length, yaitu untuk menunjukkan jumlah karakter string Sintaks-nya adalah sbb: nama_stringsize() dimana nama_string adalah nama variable dari tipe string V - 3

3) Fungsi find Substring dalam suatu string dapat dicari dengan menggunakan fungsi find Sintaks untuk memanggil fungsi find adalah sbb: nama_stringfind(ekspresi_string) atau nama_stringfind(ekspresi_string, pos) 4) Fungsi substr Fungsi substr digunakan untuk mengambil bagian teks dalam string Sintaks untuk memanggil fungsi substr adalah sbb: nama_stringsubstr(ekspresi1, ekpresi1) Contoh: string sentence; string str; sentence = It is cloudy and warm ; Pada pernyataan: cout << sentencesubstr(0, 5) << endl; outputnya adalah: It is Pada contoh diatas, fungsi substr digunakan untuk mengambil bagian teks dari karakter nol sampai karakter lima 5) Fungsi swap Fungsi ini digunakan untuk menukar isi dari dua variabel string Sintaks dari fungsi swap adalah sbb: nama_string1swap(nama_string2); V - 4

3 POINTER DAN STRING Hubungan antara pointer dan string ditunjukkan oleh contoh program 3 Contoh Program 3: using namespace std; int main() char *pkuliah = "Pemrograman Lanjut"; cout << "String yang ditunjuk oleh pkuliah = " << pkuliah << endl; pkuliah adalah variabel pointer yang menunjuk ke obyek bertipe char dan menempatkan konstanta Prolan dalam suatu memori Kemudian pointer pkuliah akan menunjuk ke lokasi string Prolan (Gambar 55) pkuliah Lokasi awal string Prolan P r o l a n \n Gambar 55 Pointer dan string Hubungan antara pointer dan string juga ditunjukkan oleh contoh program 1 Pada contoh program 1, terdapat dua fungsi yang digunakan untuk menyalin string ke karakter array Fungsi tersebut menyelesaikan tugas yang sama, tetapi diimplementasikan berbeda Pada contoh program1, fungsi copy1 menggunakan notasi subscript array untuk menyalin string s2 ke karakter array s1 Fungsi tersebut mendeklarasikan variabel pencacah integer i untuk digunakan sebagai subscript array Header struktur for menunjukkan operasi menyalin (copy) secara keseluruhan, sedangkan body dari struktur for adalah pernyataan kosong Header menetapkan bahwa i diinisialisasi ke nol dan bertambah satu pada setiap iterasi dari loop Kondisi for, (s1 [i] = s2 [i])!= '\ 0', melakukan operasi penyalinan (copy) karakter per karakter dari s2 ke s1 Ketika karakter null ditemui di s2, karakter null di-assign ke s1, dan loop berakhir, karena karakter null adalah sama dengan '\ 0' V - 5

Contoh Program 1: using std::cout; using std::endl; void copy1(char*, const char*); void copy2(char*, const char*); int main() char string1[10]; char *string2 = "Hello"; char string3[10]; char string4[] = "Good Bye"; copy1(string1, string2); cout << "string1 = " << string1 << endl; copy2(string3, string4); cout << "string3 = " << string3 << endl; void copy1(char *s1, const char *s2) for (int i = 0; (s1[i] = s2[i])!='\0';i++); void copy2 (char *s1, const char *s2) for (;(*s1 = *s2)!='\0';s1++, s2++); Fungsi copy2 menggunakan pointer dan aritmatika pointer untuk menyalin string s2 ke karakter array s1 Header struktur for melakukan seluruh operasi copy Header tidak termasuk inisialisasi variabel Seperti dalam fungsi copy1, kondisi (*s1 = s2)! = '\0' melakukan operasi copy Pointer s2 adalah dereference, dan karakter hasilnya di-assign ke pointer s1 dereference Setelah penugasan di dalam kondisi (setelah (* s1 = * s2)! = '\ 0' ), terdapat loop increment yang keduanya merupakan pointer (s1++, s2++), sehingga masing-masing menunjuk ke elemen berikutnya dari array s1 dan karakter berikutnya dari string s2 ketika loop menjumpai karakter null di s2, karakter null di-assign ke pointer s1 dereference dan loop berakhir Perhatikan bahwa "bagian increment" dari struktur for ini memiliki dua ekspresi increment yang dipisahkan oleh operator koma V - 6

4 Pointer ke pointer Dalam C++, sebuah pointer dapat menunjuk ke pointer lain yang telah menunjuk ke alamat tertentu Kondisi tersebut dinamakan multiple indirection atau pointer ke pointer Pointer Alamat Variabel Nilai Gambar 56 Single Indirection Pointer Alamat Pointer Alamat Variabel Nilai Gambar 57 Multiple Indirection Pada single indirection, pointer langsung menunjuk ke alamat dari suatu variabel Pada multiple indirection, terdapat pointer yang menunjuk ke pointer yang sedang menunjuk ke alamat dari suatu variabel Untuk mendeklarasikan pointer ke pointer, digunakan tanda asterisk sebanyak dua kali (**) Contoh pendeklarasian pointer ke pointer: int **p; Contoh pointer ke pointer dapat dilihat pada contoh program 2 Contoh Program 2: using namespace std; int main() int X = 25; int *P1; int **P2; P1 = &X; P2 = &P1; // Menampilkan nilai cout<<"nilai X : "<<X<<endl; cout<<"nilai *P1 : "<<*P1<<endl; cout<<"nilai *P2 : "<<*P2<<endl; cout<<"nilai **P2 : "<<**P2<<endl; cout<<endl; // Menampilkan alamat cout<<"nilai &X : "<<&X<<endl; cout<<"nilai P1 : "<<P1<<endl; cout<<"nilai P2 : "<<P2<<endl; V - 7

Output dari kode program diatas adalah sbb: Nilai X : 25 Nilai *P1 : 25 Nilai *P2 : 0x22ff08 Nilai **P2 : 25 Nilai &X Nilai P1 Nilai P2 : 0x22ff08 : 0x22ff08 : 0x22ff04 Pada contoh diatas, nilai X dapat diakses dengan menggunakan *P1 atau **P2, sedangkan alamat dari variable X dapat diakses dengan menggunakan &X, P, ataupun *P2 (*P2 merupakan nilai yang menempati alamat yang ditunjuk oleh pointer P2) Pointer P2 tidak menunjuk ke tipe data int, akan tetapi menunjuk ke pointer P1 P2 menyimpan alamat dari pointer P1 Untuk contoh diatas, P2 menyimpan alamat 0x22ff04 V - 8

III GUIDED 1 Pointer using namespace std; int main() int *p; int x = 37; cout << "Baris 1: x " << x << endl; //Baris 1 p = &x; cout << "Baris 3: *p = " << *p << ", x = " << x << endl; //Baris 3 *p = 58; cout << "Baris 5: *p = " << *p << ", x = " << x << endl; //Baris 5 cout << "Baris 6: Alamat dari p = " << &p << endl; //Baris 6 cout << "Baris 7: Nilai dari p = " << p << endl; //Baris 7 cout << "Baris 8: Nilai dari lokasi memori yang ditunjuk oleh *p = " << *p << endl; //Baris 8 cout << "Baris 9: Alamat dari x = " << &x << endl; //Baris 9 cout << "Baris 10: Nilai dari x = " << x << endl; //Baris 10 2 String #include <string> using namespace std; int main() string str1 = "Pemrograman Lanjut"; string str2 = "C++"; // Menampilkan panjang string cout<<"str1: "<<str1<<endl; cout<<"str2: "<<str2<<endl; cout<<"panjang string str1: " <<str1size()<<endl; cout<<"panjang string str2: " <<str2length()<<endl; cout<<"'lanjut' ditemukan pada indeks ke-" <<str1find("lanjut") <<endl; cout<<str1substr(0,9)<<endl; //menukar string str1swap(str2); cout<<"str1: "<<str1<<endl; cout<<"str2: "<<str2<<endl; V - 9

3 Pointer dan String using std::cout; using std::endl; void copy1(char*, const char*); void copy2(char*, const char*); int main() char string1[10]; char *string2 = "Hello"; char string3[10]; char string4[] = "Good Bye"; copy1(string1, string2); cout << "string1 = " << string1 << endl; copy2(string3, string4); cout << "string3 = " << string3 << endl; void copy1(char *s1, const char *s2) for (int i = 0; (s1[i] = s2[i])!='\0';i++); void copy2 (char *s1, const char *s2) for (;(*s1 = *s2)!='\0';s1++, s2++); 4 Pointer ke Pointer using namespace std; int main() int X = 25; int *P1; int **P2; P1 = &X; P2 = &P1; // Menampilkan nilai cout<<"nilai X : "<<X<<endl; cout<<"nilai *P1 : "<<*P1<<endl; cout<<"nilai *P2 : "<<*P2<<endl; cout<<"nilai **P2 : "<<**P2<<endl; cout<<endl; // Menampilkan alamat cout<<"nilai &X : "<<&X<<endl; cout<<"nilai P1 : "<<P1<<endl; cout<<"nilai P2 : "<<P2<<endl; V - 10

IV UNGUIDED 1 Buat program untuk menampilkan sebaris string berikut ini: Pemrograman Lanjut menggunakan variable pointer (pointer to string) 2 Buat potongan program untuk mencetak huruf ketiga ( m ) dari kata : Pemrograman Lanjut dengan menggunakan variabel pointer V - 11