• Tidak ada hasil yang ditemukan

Pada bahasan ini, akan dijelaskan bagaimana mengkombinasikan tipe data struktur komposisi (record) dengan tipe data array dapat disebut dengan istilah struktur array. Berikut program untuk mengolah data jam kerja yang terdiri dari 5 data jam. Diimplementasikan menggunakan struktur array.

//file : jam_kerja.cpp

//input dan tampil data struktur array jam #include<iostream.h> #include<conio.h> void main() { int i; struct jam { int hh; int mm; int ss; }Jam_kerja[5];

cout<<"input data jam : “; for (i=0;i<5;i++) { cout<<”jam : "; cin>>Jam_kerja[i].hh; cout<<”menit : "; cin>>Jam_kerja[i].mm; cout<<”detik : "; cin>>Jam_kerja[i].ss; }

cout<<"tampil data jam : “; for (i=0;i<5;i++)

{

cout<<”jam kerja sekarang ke "<< i+1 << ”:” << Jam_kerja[i].hh << ”:” << Jam_kerja[i].mm << ”:” << Jam_kerja[i].ss;

getch(); }

Latihan :

Implementasikan tipe data struktur array untuk data : a. Tanggal anggotanya : tanggal, bulan, tahun b. Titik (point) anggotanya : absis (x), ordinat (y) Lengkapi dengan input dan tampil data.

Berikut program struktur array yang dilengkapi dengan data struktur di dalam struktur. Terdapat :

ƒ Struktur data_tanggal terdiri dari : tanggal, bulan dan tahun.

ƒ Struktur data_mahasiswa terdiri dari : nama dan tanggal lahir. Struktur data_tanggal digunakan untuk format tanggal lahir mahasiswa.

ƒ Program diimplementasikan untuk 3 orang mahasiswa //file : info_mhs.cpp

//input data struktur array mhs #include<iostream.h> #include<conio.h> void main() { int i; struct data_tanggal { int tgl; int bln; int thn; }; struct data_mahasiswa { char nama[30];

struct data_tanggal tgl_lahir; };

struct data_mahasiswa info_mhs[3]; cout<<"input data mahsiswa : “; for (i=0;i<3;i++) { cout<<”nama : "; cin>>info_mhs[i].nama; cout<<”tanggal lahir : "; cout<<”tanggal : "; cin>>info_mhs[i].tgl_lahir.tgl; cout<<”bulan : "; cin>>info_mhs[i].tgl_lahir.bln; cout<<”tahun : "; cin>>info_mhs[i].tgl_lahir.thn; } getch(); } Latihan :

1. Lengkapi program info_mhs.cpp diatas dengan tampil data mahasiswa. 2. Implementasikan untuk data titik (point), sebanyak 5 titik.

MODUL 8

STRING

PENGERTIAN

String digunakan untuk menangani data yang bertipe teks, dalam bahasa C++ dianggap sebagai array dari karakter. Assigment secara langsung pada objek bertipe string tidak boleh dilakukan.

Konstanta string dituliskan di antara tanda petik ganda. Contoh : “ Ini sebuah string”

Definisi String

Deklarasi string sama seperti mendeklarasikan array bertipe char Bentuk :

Char nama_var[ukuran]; Misal :

Char nama[20];

ƒ artinya string nama akan mampu menampung karakter maksimum sebanyak 19 char karena, string adalah suatu rangkaian karakter yang diakhiri oleh karakter null (‘\0’), karakter NULL secara otomatis akan ditambahkan ke dalam string nama.

Mengakses data string : Misal :

strcpy(nama,”Rocky”); // ini merupakan assignment data string (strcpy) R o c k y \0

Indeks 0 1 2 … 19

Untuk menggunakan fungsi-fungsi string dapat menuliskan : #include<string.h> Memasukkan data string dari keyboard

//file : info_mhs.cpp

//input data struktur array mhs #include<iostream.h>

#include<conio.h> void main()

{

char teks[13]; //string dengan panjang maksimal 12 karakter

cout<<”masukkan sebuah kata : “; cin>>teks; cout<<”kata yang anda masukkan : “<<teks<<endl; getch();

Cin hanya membaca sebuah kata

Hal ini dikarenakan karakter-karakter yang terletak sesudah spasi tidak bisa ditampung oleh variabel teks seperti pada contoh diatas. Ini disebabkan operator << pada cin hanya bisa membaca masukkan hingga terdapat spasi, tab atau enter. Fungsi cin.get()

Agar tidak hanya sebuah kata yang terbaca, solusinya penggunaan fungsi anggota get() pada objek cin (cin.get()).

Penggunaan fungsi cin.get() //file : string1.cpp //input data string kata #include<iostream.h> #include<conio.h> void main()

{

char teks[30]; //string dengan panjang maksimal 30 karakter

cout<<”masukkan sebuah atau beberapa kata: “; cin.get(teks,30);

cout<<”kata yang anda masukkan : “<<teks<<endl; getch();

} Bentuk :

cin.get(teks,30) dapat juga ditulis menjadi :

cin.get(teks, sizeof(teks));

Fungsi cin.getline()

Penggunaan cin.get() lebih dari satu kali menyebabkan fungsi ini tidak bekerja sebagaimana mestinya. Hal ini disebabkan karena fungsi cin.get() yang pertama kali digunakan tidak membuang sisa data yang tidak dibaca oleh karena itu fungsi cin.get() untuk kasus ini dapat diganti dengan fungsi cin.getline().

Penggunaan fungsi cin.getline() //file : string2.cpp

//input data string nama dan alamat #include<iostream.h> #include<conio.h> void main() { char nama[20]; char alamat[30];

cout<<”nama anda : “; cin.getline(nama,sizeof(nama)); cout<<”alamat anda : “; cin.getline(alamat,sizeof(alamat));

cout<<”data yang anda masukkan : “<<endl;

cout<<”nama : “<<nama<<”dengan alamat : “<<alamat<<endl; getch();

}

Menghitung panjang string

Menghitung panjang string yang diinput oleh user dapat menggunakan fungsi strlen(). Misalnya didefinisikan :

char bunga[15] = “mawar”;

int panjang;

maka :

panjang = strlen(bunga);

akan memberikan panjang string yang tersimpan pada variabel bunga ke panjang yaitu 5.

Atau menghitung sendiri menggunakan panjang string mulai posisi pertama hingga string[i] bernilai NULL (“\0”)

// file : string3.cpp

//deskripsi : menghitung panjang string #include<iosteam.h> #include<stdlib.h> #include<string.h> void main() { char nm[30]; int i=0;

cout<<"masukkan nama : "; cin.get(nm,sizeof(nm)); while (nm[i]!='\0')

{

cout<<"nama ke "<<i<<”adalah”<<nm[i]<<endl;

i++;

}

printf<<"panjang string : "<<nm<<”adalah”<<i<<endl; getch();

}

Latihan :

Membandingkan dua buah string

Membandingkan isi varibel string menggunakan fungsi strcmp(). Misal, s1 dan s2 berupa variabel string maka :

strcmp(s1,s2)

akan bernilai integer : - negatif, apabila s1 < s2 - nol, apabila s1 == s2 - positif, apabila s1 > s2 Penggunaan fungsi strcmp()

//file : string4.cpp

//membandingkan isi variabel string #include<iostream.h> #include<conio.h> #include<string.h> void main() { char teks[30];

cout<<”masukkan sebuah kata: “; cin.get(teks,30);

if(!(strcmp(teks,”hello”)) {

cout<<”Benar, itu kata hello”<<endl; }

else {

cout<<”Salah, itu bukan kata hello”<<endl; }

getch(); }

MODUL 9

POINTER

ILUSTRASI

Terdapat 3 kotak yaitu merah, kuning dan hijau. Kotak merah terdapat di urutan pertama, selanjutnya kuning dan hijau.

1 2 3

Merah Kuning Hijau

Misalkan ada dua orang bertanya yang pertama menanyakan “apakah isi kotak merah ?”, orang kedua bertanya “apakah isi kotak pertama ?”.

y Pertanyaan pertama mengacu ke nama variabelnya.

y Pertanyaan kedua mengacu pada letak atau alamat kotak tadi, cara berfikir ini sama dengan cara berfikir pointer.

Jadi bekerja dengan pointer adalah bekerja dengan alamat. PENGERTIAN

Pointer atau lengkapnya variabel pointer adalah :

Variabel yang nilainya berupa alamat atau lokasi memori dari data atau variabel lain. Isi pointer berupa alamat.

Definisi variabel pointer :

Tipe * Nama_Variabel_Pointer Misalnya :

int *ptr_x;

artinya variabel pointer ptr_x akan menunjuk pada variabel lain yang bertipe int. jadi disini bukan ptr_x yang bertipe integer, melainkan variabel lain yang ditunjuk yang bertipe integer.

Inisialisasi pointer : int x;

int *ptr_x;

ptr_x=&x; /* inisialisasi pointer*/ atau

int *ptr_x=&x; Penjelasan :

Antara nilai dan alamat float x = 10;

float *ptr_x; ptr_x=&x;

disini x diberi nilai 10, sedangkan variabel pointer ptr_x diberi nilai alamat dari x. Jika x disimpan pada lokasi memori 2300, maka nilai ptr_x juga 2300. Sedangkan penulisan nama variabel pointer didahului oleh tanda (*), menandakan NILAI dari variabel yang sedan ditunjuk.

2300 2400 *ptr_x

12

10

2300

10

ptr_x

Mengakses nilai dan alamat variabel melalui pointer Dideklarasikan dua variabel yaitu :

ƒ Vint // variabel bukan pointer ƒ Pint // variabel pointer

//file : pointer1.cpp

//mengakses nilai dan alamat variabel melalui pointer #include<iostream.h> #include<conio.h> void main() { int Vint = 55; int *Pint;

Pint = &Vint; //pointer menunjuk ke Vint

// mengakses nilai variabel Vint cout<<”nilai Vint : “<<Vint<<endl;

cout<<”nilai yang ditunjuk oleh Pint : “<<*Pint<<endl; //mengakses alamat variabel Vint

cout<<”alamat Vint : “<<&Vint<<endl;

cout<<”alamat yang ditunjuk oleh Pint : “<<Pint<<endl; getch();

}

Latihan :

Lakukan pengujian program diatas, bagaimana pemahaman anda terhadap tipe data pointer.

MODUL 10

Dokumen terkait