MODUL MATA KULIAH PEMROGRAMMAN I (BAHASA VISUAL C++)

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

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

MODUL PRAKTIKUM. MODUL I - VIII Modul penuntun dan bahan praktikum matakuliah algoritma dan pemograman

Tipe Data dan Operator

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

BAHASA PEMROGRAMAN C

LANGKAH-LANGKAH MENULISKAN PROGRAM DALAM TURBO C++

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

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

Konsep Dasar Pemrograman Dan Pengenalan C++

VARIABEL, TIPE DATA DAN EKSPRESI Bab 2

Bahasa C-M6 By Jamilah, Skom 1

Chapter 1 KONSEP DASAR C

STRUKTUR DASAR PEMROGRAMAN

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

Komentar, Identifier, Konstanta dan Variabel

Struktur Bahasa C dan C++

MATERI/BAHAN PRAKTIKUM PENDAHULUAN DAN PENGENALAN (IDENTIFIER)

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

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

VARIABEL & TIPE DATA PEMROGRAMAN C++

Achmad Solichin.

DASAR PEMROGRAMAN. Institut Teknologi Sumatera

ALGORITMA DAN STRUKTUR DATA POINTER DAN FUNCTION

Keg. Pembelajaran 2 : Mengenal Bahasa C++

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

Pertemuan 4 ELEMEN-ELEMEN BAHASA PEMROGRAMAN

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

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

Pengenalan C++ Oleh : Dewi Sartika

Bab 2. Dasar-Dasar Pemrograman C

SUMBER BELAJAR PENUNJANG PLPG

MODUL I PENDAHULUAN & PENGENALAN TURBO C++

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

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

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

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LABSHEET ALGORITMA DAN STRUKTUR DATA

PSEUDOCODE TIPE DATA, VARIABEL, DAN OPERATOR

Kisi-Kisi Ujian Tengah Semester Algoritma dan Pemrograman Lanjut

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

MODUL 1 PENGENALAN PROGRAM C++ DAN PERNYATAAN MASUKAN-KELUARAN

BAB 4 PENGENALAN BAHASA C

VI. FUNGSI. Fungsi Main ( ) Fungsi a ( ) Fungsi b ( ) Fungsi c ( ) Fungsi c1 ( ) Fungsi c2 ( ) Fungsi c3 ( ) Bentuk umumnya :

MODUL PRAKTIKUM ALGORITMA DAN STRUKTUR DATA PERTEMUAN 1

TEKNIK ELEKTRO FAKULTAS TEKNIK UNISMA

MODUL PRAKTIKUM ALGORITMA DAN PEMROGRAMAN

elemen Dasar Bahasa Pemrograman C

Operator untuk operasi aritmatika yang tergolong sebagai operator binary adalah: Perkalian Pembagian Sisa Pembagian (mod) Penjumlahan 6 2

Struktur Program C++ Preprocessor directive : perintah dalam bahasa c++ yang akan membuat dan mengkompilasi file perantara dengan program utama

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

PEMROGRAMAN TERSTRUKTUR OLEH : IR. H. SIRAIT, MT

MODUL 1 Alur Seleksi dengan C++

Algoritma dan Pemrograman

PENGENALAN C++ Bab 1

Tipe Data, Identifier, Operator dan Control Statement

PERTEMUAN 2 ALGORITMA & PEMROGRAMAN

BAB VI. STATEMENT CONTROL

IT234 - Algoritma dan Struktur Data. Ramos Somya

Basic Input/Output Operator Yoannita

PERTEMUAN 3 KONSEP TIPE DATA

Struktur Data adalah : suatu koleksi atau kelompok data yang dapat dikarakteristikan oleh organisasi serta operasi yang didefinisikan terhadapnya.

Struktur Program. Rinta Kridalukmana

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

KONSEP DASAR BAHASA C

Tipe Data, Variabel, Input/Output

PENGENALAN C++ DADANG MULYANA 2012

Identifier dan Tipe Data

ALGORITMA (KOMPUTER) : ATURAN PENULISAN DAN STRUKTUR DASARNYA

Algoritma & Pemrograman #3

Elemen Bahasa Pemrograman. Aditya Rizki Yudiantika, M.Eng.

OPERATOR DAN STATEMEN I/O

PEMROGRAMAN BERORIENTASI OBJEK

Modul IV Pemrograman Bahasa C ( bagian I )

PEMROGRAMAN TERSTRUKTUR PERTEMUAN VI KOMPONEN KOMPONEN PEMROGRAMAN TERSTRUKTUR

Pendahuluan Pemrograman Mikrokontroler

MODUL 1 PENGENALAN ENVIROMENT C++

Pengantar Bahasa C. Tim Pengajar ASD Semester I 2017/ /7/2017 FN/ASD/Sem /2018 1

StrukturDasarProgram Prosedural (dalambahasac++)

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LABSHEET ALGORITMA DAN STRUKTUR DATA

GARIS-GARIS BESAR PROGRAM PENGAJARAN (GBPP)

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

Struktur Program Bahasa 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:

STRUKTUR DASAR PHP ASUMSI 02/10/2014

OPERATOR-OPERATOR DALAM JAVA

MODUL. Perulangan (Looping) Modul Praktikum C++ Pemrograman Dasar. Semester Genap 2017/2018

8.1 FUNGSI, DEKLARASI DAN DEFINISI NYA

ALGORITHM 7 C++ Dahlia Widhyaestoeti, S.Kom dahlia74march.wordpress.com

MATA KULIAH : LOGIKA DAN ALGORITMA KONSEP DASAR ALGORITMA

REVIEW ARRAY. Institut Teknologi Sumatera

STRUKTUR DASAR ALGORITMA DAN PEMROGRAMAN STMIK AMIKOM YOGYAKARTA

PENGERTIAN VARIABEL, KONSTANTA DAN TIPE DATA

Modul Pelatihan Bahasa C++ PAKSIMA

MODUL. Variabel. Workshop Programming

# FOUR LOOPING. JAWABAN 1. #include <stdio.h> #include <conio.h> #define pi void main(){

Chapter 2 Tipe Data, Identifier, Operator dan Control Statement

TIPE, NAMA, DAN NILAI

Kuliah III - Dasar Pemrograman

Pengenalan Bahasa C++, Algoritma Pemrograman, Integrated Development Equipment (IDE) Visual C++ dan Dasar Dasar Bahasa C++

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

Transkripsi:

MODUL MATA KULIAH PEMROGRAMMAN I (BAHASA VISUAL C++) Semester GANJIL Tahun Akademik 2007/ 2008 Penyusun : Yuyun Yumiarty PROGRAM DIPLOMA & SARJANA STMIK BANDUNG September 2007 1

MODUL 1 PENGENALAN LINGKUNGAN C++ Modul Perograman 1/ C++ SEJARAH SINGKAT C++ Berbicara tentang bahasa C++ biasanya tidak lepas dari bahasa C, sebagai pendahulunya. Bahasa C dikembangkan oleh Dennis M. Ritchie dan Brian W. Kernighan pada awal tahun 1970. Bahasa C berkembang dilingkungan UNIX (lebih kurang 90% sistem operasi UNIX ditulis dalam bahasa C). Bahasa C banyak dipakai untuk : 1. Membuat sistem operasi dan program-program sistem 2. Pemrograman yang dekat ke perangkat keras (misalnya kontrol peralatan ) 3. Membuat tool kit 4. Membuat program aplikasi (misalnya Dbase, WordStar, Lotus123) Kelebihan bahasa C, sehingga terpilih untuk aplikasi-aplikasi tersebut adalah kemampuannya untuk membuat kode yang compact, efisien tanpa mengorbankan readability (beda dengan bahasa assembly (bahasa mesin) yang efisien namun susah dibaca, atau bahasa tingkat tinggi lain yang enak dibaca namun tidak efisien. Walaupun tidak dapat diingkari bahwa program dalam bahasa C lebih sulit dibaca (karena compact) dibandingkan dengan bahasa tingkat tinggi yang lain. Selanjutnya pada tahun 1986, dikembangkan superset C (kompatibel dengan C, namun dilengkapi dengan kemampuan pemrograman berorientasi objek) oleh Bjarne Stroustrup yaitu bahasa C++ (C with Class). Tujuan utama pembuatan C++ adalah untuk meningkatkan produktivitas pemrogram dalam membuat aplikasi, sehingga Greg Perry (1993) sebagai salah satu pelopor industri C++ mengungkapkan bahwa C++ dapat meningkatkan produktivitas pemrogram lebih dari dua kali dibandingkan bahasa prosedural seperti C. Hal ini didasarkan kenyataan bahwa kode yang ditulis dengan C++ lebih mudah untuk digunakan kembali pada program lain (reusability). 2

LINGKUNGAN C++ Mengaktifkan C++ Program C++ diaktifkan dengan tahapan: Start Programs Visual Studio C++ versi C++ Selanjutnya akan tampil layar editor seperti pada gambar : Menu Bar Tool Bar Text Editor Meng-Compile dan Me-Link File Setelah kode program selesai dibuat maka langkah yang harus dilakukan pertama kali adalah meng-compile dan me-link file program. Proses Compile (Ctrl + F7) adalah mengubah file program anda (.cpp) menjadi file object (.obj). Dalam proses ini program anda akan digabungkan dengan file-file header yang diperlukan. Proses Link adalah mengubah file object (.obj) menjadi file eksekusi (.exe). Pada proses ini file-file library serta file object lain akan digabungkan ke dalam program anda. Dari kedua proses ini apabila pada kode program masih terdapat kesalahan maka, proses selanjutnya yaitu Run, tidak dapat dilakukan. Menjalankan Program (Run) -> Ctrl + F5 Program yang selesai di-compile dan di-link dengan sukses dapat dijalankan. Dari proses Run akan ditampilkan hasil program yang dibuat. 3

STRUKTUR PROGRAM DALAM C++ Berikut ini adalah struktur sebuah program utama dalam bahasa C++. //nama file : //identitas perancang/penulis //deskripsi ringkas dari program <tipe> main() //keterangan program //kamus //algoritma/ deretan instruksi yang executable Modul Perograman 1/ C++ return (<retval>); Keterangan : 1. Fungsi main() adalah nama fungsi yang menandai awal dan akhir eksekusi program. Suatu program dalam bahasa C++ harus mempunyai satu fungsi yang bernama main. 2. Return value main akan diberikan ke lingkungan yang menjalankan program (biasanya berupa angka integer). Kebanyakan program tidak mengembalikan nilai sehingga deklarasinya adalah : //body ; atau program yang mengembalikan nilai integer 0 int main() //body return 0 ; 4

JENIS KALIMAT (STATEMENT) DALAM C++ Kalimat dalam bahasa C selalu diakhiri dengan tanda titik koma (;). Kalimat dapat digolongkan menjadi dua yaitu kalimat yang tidak eksekusi (komentar) dan yang dieksekusi (instruksi). Kalimat (non-executable) : Komentar dituliskan diantara tanda // dan /* */. Disarankan agar setiap komentar dituliskan dalam satu baris, walaupun dalam bahasa C dimungkinkan untuk membuat komentar yang terdiri dari lebih dari satu baris. Komentar tidak akan dieksekusi oleh computer. Misal : Komentar dalam satu baris //Pembuat program : tim programmer stmik bandung Komentar dalam dua baris /*Deskripsi : Progam menerima inputan berupa data mahasiswa yang terdiri dari Nim, Nama dan Jurusan */ Kalimat (executable) : instruksi yang akan dikerjakan oleh komputer, meliputi pemberian harga, kondisional, pengulangan atau kalimat pencabangan sebagai berikut : assignment (dengan operator =) kondisional if (<kondisi>) ; if ( ) else ; switch pengulangan while do while for pencabangan - goto - break - continue - return 5

PROGRAM SEDERHANA DALAM C++ Layar editor Layar executable 6

MODUL 2 PERINTAH INPUT/OUTPUT DALAM C++ Modul Perograman 1/ C++ FUNGSI INPUT Fungsi input akan meneruskan suatu data agar diproses sebelum dikeluarkan sebagai output. Dalam hal ini kita akan mengenal tiga perintah input dahulu yaitu cin>>, getch() dan getche(). Format deklarasi fungsi cin>> : Cin>>nama_variabel; Cin>> seringkali dikombinasikan dengan Cout<< untuk sekedar memberikan keterangan tentang data apakah yang harus dimasukkan dalam Cin>> tersebut. Contoh : Cin>>Nim; Cin>>Nama; Getch() merupakan fungsi input satu karakter tanpa menampilkan karakternya dilayar. Perintah ini sering digunakan untuk menahan layar eksekusi sebelum kembali ke layar editor. Getche() merupakan fungsi input satu karakter dengan menampilkan karakternya dilayar. Menggunakan dua perintah tersebut (getch() dan getche()) harus dengan menginclude file header : #include<conio.h> FUNGSI OUTPUT Format deklarasi fungsi cout<< : Cout<< String Control <<argument; String Kontrol dapat berupa keterangan yang akan ditampilkan dilayar, argument dapat berupa variabel, Konstanta, bahkan ungkapan Contoh : Cout<< Nim anda : ; Cin>>Nim; Cout<< Nim yang diinputkan adalah : <<Nim<<endl; Untuk fungsi-fungsi input/output lain akan kita pelajari pada kasus-kasus lebih lanjut. 7

Latihan : 1. Menampilkan data yang diberikan untuk nilai integer. // Nama file : asign.cpp // Deskripsi : assigment nilai integer dan ditampilkan //kamus int i; //program cout<<"hello"<<endl; i=5; cout<<"ini nilai i : "<<i<<endl; 2. Membaca inputan dan menampilkannya // Nama file : mhs.cpp // Deskripsi : menginput variabel data mahasiswa dan ditampilkan #include<conio.h> // kamus char nim[7]; char nama[25]; int umur; // deklarasi data string nim // deklarasi data string nama // program cout<<"data mahasiswa : "<<endl; cout<< nim anda : ; cin>>nim; cout<< nama anda : ; cin>>nama; cout<< umur : ; cin>>umur; cout<<"data mahasiswa : <<nim<< <<nama<< <<umur<<endl; getch(); 8

TIPE DATA Penggunaan tipe data pada bahasa C++ erat kaitannya dengan penggunaan memori, perlu diperhatikan dalam penggunaanya. Terdapat tiga tipe data dalam bahasa C++ yaitu : 1. Tipe Data Dasar terdiri dari : Tipe Total bit Range Keterangan Char 8-128 s/d 127 Karakter Int 16-32768 s/d 32767 Integer Float 32 3.4E-38 s/d 3.4e+38 Bilangan Double 64 1.7e308 s/d Bilangan 1.7e+308 Void 0 - Tak Bertipe 2. Tipe Bentukan a. array : sekumpulan elemen bertipe sama b. struktur komposisi (record) : sebuah tipe yang terdiri dari komponenkomponen bertipe tertentu. 3. Pointer : berisi alamat mesin. Tipe bentukan dan pointer selanjutnya akan kita pelajari pada modul pemrograman 1 (akhir semester). ESCAPE SEQUENCES Disebut escape sequence karena notasi \ dianggap sebagai karakter escape (menghindar), dalam arti bahwa bukan karakter biasa. Escape sequence biasanya digunakan untuk mengatur tampilan output dilayar. Diantaranya : Escape sequence Pengertian \b backspace \n atau endl baris baru (akan sering digunakan) \t tab (default = 8 karakter) \\ backslash \ tanda kutip tunggal ( ) \ tanda kutip ganda ( ) \xaa kode ASCII dalam hexadecimal 9

\aaa (aa menunjukkan angka ASCII ybs) Kode ASCII dalam octal (aaa menujukkan angka ASCII ybs) VARIABEL DAN KONSTANTA Variabel Variabel adalah data pada suatu lokasi memori yang nilainya dapat berubahubah. Format Deklarasi veriabel dan tipe data : Tipe Nama_variabel; Contoh : int Umur; char Nama[30]; float Nilai_max; Hal-hal yang perlu diperhatikan dalam pemberian nama variabel yaitu : 1. Terdiri dari abjad, bilangan dan tanda hubung (_) 2. Boleh dimulai oleh tanda hubung(_) atau abjad 3. Tidak boleh dimulai oleh angka 4. Tidak boleh menggunakan operator aritmatika (+ - / * %) dan karakter khusus (; :, # @ $ ^! & dan titik (.)) 5. Tidak boleh mengandung spasi 6. Jangan menggunakan nama fungsi yang mempunyai arti khusus dalam c++ 7. C++ membedakan huruf besar dan huruf kecil Contoh : gaji dan GAJI dan Gaji merupakan tiga nama variabel yang berbeda Contoh penulisan nama variabel yang BENAR : nim nama_mhs _jurusan nilai_mhs1 k angkt_2005 10

Konstanta Konstanta adalah suatu data yang sifatnya tetap. Format deklarasi konstanta ada dua bentuk yaitu memakai deklarasi const atau memanfaatkan fasilitas makro #define. const [<tipe>] <nama> = <nilai> format ini ditulis pada kamus : Contoh : const double pi = 3.14; const int umur = 40; #define <nama> <nilai> format ini ditulis diluar main() : Contoh : #define pi 3.14 #define umur 40 OPERATOR Operator Numerik Operator Arti * kali / bagi % modulo (sisa bagi) - kurang ++ increment (plus 1) -- decrement (minus 1) Catatan : increment dan decrement dapat dilakukan sebelum ekspresi dievaluasi (pre-increment) atau setelah ekspresi dievaluasi (post-decrement) Contoh : Pre-increment : x = --i + 1; Post-increment : x = i++ + 1; 11

Operator Bit Operator Arti << shift left >> shift right & and or ^ xor ~ not Catatan : operator ini bekerja bit per bit (jadi tergantung kepada representasi bilangan), dibedakan dengan operator logika. Perhatikanlah contoh sebagai berikut : int a,b; /*ekspresi a&b akan berbeda hasilnya dengan a&&b*/ Operator Relational Operator Arti > lebih besar >= lebih besar atau sama dengan < lebih kecil <= lebih kecil atau sama dengan == sama dengan!= tidak sama dengan Catatan : Perhatikanlah bahwa test kesamaan dilakukan dengan operator == bukan =. Operator = dalam bahasa C++ berarti assignment. Contoh : Cek kesamaan nilai x dan y, kemudian increment x if (x==y) x++; untuk kasus ini, x++ akan dilakukan jika x sama dengan y. Operator Logika Operator Arti && and or! not 12

Catatan : operator logika adalah operator terhadap nilai boolean (true, false) C++ tidak mempunyai tipe data boolean. Dalam pengetasan kondisi untuk if-then, while, do-while, dan for, nilai satu dianggap true dan nilai nol dianggap false emulasi data boolean dapat dilakukan dengan beberapa cara : 1. mendefinisikan nilai true dan false lewat #define #define true 1 #define false 0 #define boolean unsigned char 2. menggunakan enumerasi enum boolean(false,true); atau enum boolean(true = 1; false = 0); cara memakai : boolean x; x=true; while(x).... dst Compound Assigment Compound assignment hanya dapat dilakukan untuk operator : *, /, %, +, -, <<, >>, &, ^, Operator Arti X = y Assignment nilai y ke x (x y) x *= y x x * y x /= y x x / y x %= y x x % y x += y x x + y x -= y x x - y dst.. 13

Operator Kondisional Operator Arti (k)?t : f Jika kondisi k benar (berharga!= 0), harga ekspresi adalah t, jika tidak harga ekspresi adalah f Catatan : operator ini biasanya dipakai untuk menghemat pemakaian kalimat if-then dan/ atau pemanggilan fungsi, dengan maksud agar dihasilkan kode yang lebih kompak dan efisien. Contoh : menentukan nilai terbesar dari dua bilangan x dan y (a > b)? a : b); Latihan 1. penggunaan operator aritmatika // Nama file : hitung.cpp // Deklarasi : penggunaan operator aritmatika #include <iostream.h> // kamus int x,y; // program cout<<"perhitungan aritmatika : <<endl; cout<<"nilai x : "; cin>>x; cout<<"nilai y : "; cin>>y; cout<<"x*y = "<<x*y<<endl; cout<<"x/y = "<<(float)x/(float)y)<<endl; cout<<"x+y = "<<x+y<<endl; cout<<"x-y = "<<x-y<<endl; Catatan : (float) x dan (float) y, berarti meng-casting tipe data integer menjadi float sebaliknya, float z; (int) z, berarti meng-casting tipe data float menjadi integer 14

2. Menghitung luas lingkaran dengan pemakaian konstanta // Nama file : luaslingk.cpp // Deskripsi : menghitung luas lingkaran dari jari-jari yang dibaca // latihan pemakaian konstanta dengan define #include<conio.h> #define pi 3.14 // kamus float r; float luas; // program // baca data cout<<"jari-jari lingkaran : "; cin>>r; // hitung dengan rumus luas = pi*r*r; // tampil hasil cout<<"luas lingkaran : "<<luas<<endl; cout<<"akhir program"<<endl; Tugas : Buat program untuk menghitung : 1. luas segi empat (luas = panjang * lebar) dan segi tiga (luas = ½ alas * tinggi) 2. menghitung nilai akhir mahasiswa (NA = 30%UTS + 30%UAS + 40% Tugas)/3) 3. menghitung total pembayaran belanja dengan ketentuan : pajak = 15%total_belanja diskon = 25%total_belanja total_bayar = total_belanja+pajak-diskon Perhatikan penggunaan tipe data. Setiap no soal dibuat dalam satu file program. Anda harus dapat menentukan mana variabel yang digunakan untuk input, proses dan output. Ingat konsep ALGORITMIK dalam hal SEKUENSIAL yaitu program dieksekusi sesuai urutannya! 15

MODUL 3 PENYELEKSIAN DALAM C++ Terdapat dua bentuk penyeleksian dalam bahasa C++ yaitu IF dan SWITCH. IF Pernyataan if membagi suatu alur menjadi dua cabang, berdasarkan persyaratan yang diberikan. Cabang yang pertama dijalankan bila persyaratan dipenuhi, sedangkan cabang yang kedua akan dipilih bila persyaratan tidak dipenuhi. Diagram alir if() else Ya IF Tidak Statement ; Statement ; Statement ; Statement ; format deklarasi kondisional if : if(<ekspresi>)<statement>; if(<ekspresi>)<statement> else <statement>; Latihan 1. Menyeleksi inputan berupa bilangan positif atau negatif // Nama file : if1.cpp // Deskripsi :contoh pemakain if dua kasus komplementer // Membaca sebuah nilai, // Menuliskan,' nilai a positif, nilai a', jika a>=0 // ' nilai a negatif, nilai a', jika a<0 #include <iostream.h> 16

//kamus int a; //program cout<<"contoh if dua kasus ; cout<<"ketikkan suatu nilai integer : "; cin>>a; if(a>=0) cout<<"nilai a positif <<a<<endl; else // a<0 cout<<"nilai a negatif"<<a<<endl; 2. Menyeleksi temperatur air // Nama file : tempair.cpp // Deskripsi : contoh pemakain if tiga kasus : wujud air // kamus int T; // program cout<<"contoh if tiga kasus "; cout<<"temperatur (derajat,c) : "; cin>>t; if(t<0) cout<<"wujud air = beku pada suhu"<<t<< derajat <<endl; else if ((T>=0) && (T<=100)) cout<<"wujud air = cair pada suhu <<T<< derajat <<endl; else /* T>100 */ printf("wujud air = gas/uap pada suhu <<T<< derajat"<<endl; 17

3. Membandingkan nilai maksimum dua bilangan // Nama file : max.cpp // Deskripsi : Mencari nilai maksimum dua bilangan yang dibaca #include <iostream.h> // kamus int a,b; // program cout<<"masukkan dua bilangan : <<endl; cout<< Bilangan 1 : "; cin>>a; cout<< Bilangan 2 : "; cin>>b; if(a>=b) cout<<"nilai yang maksimum adalah "<<a<<endl; else /*a<b)*/ cout<<"nilai yang maksimum adalah <<b<<endl; Tugas : Dengan mempelajari contoh program diatas, buatlah program untuk : 1. Menentukan bilangan ganjil dan bilangan genap 2. Menentukan nilai minimum dari 3 bilangan yang diinputkan 3. Dari contoh 3 diatas, gunakan operator kondisional (k)?t : f untuk mengganti perintah if-else SWITCH Perintah switch memiliki sifat yang hampir sama dengan if else, namun penggunaanya lebih sempit, karena perintah ini hanya khusus untuk memeriksa data yang bertipe karakter atau integer. Yang harus anda ingat format penulisan data berikut : 1, penulisan data integer (int) 1, penulisan data character (char) 1.0, penulisan data decimal (float) 18

nah, untuk switch ini yang digunakan format char dan int saja. Perintah switch ini juga digunakan untuk menyelesaikan program dengan banyak cabang atau alternatif. format deklarasi kondisional switch : switch(<ekspresi>) case<ekspresi-konstan-1> : <statement-1>; break; case<ekspresi-konstan-2> : <statement-2>; break; case<ekspresi-konstan-3> : <statement-3>; break;.... default : <statement>; keterangan : break artinya akan keluar dari kondisional switch apabila ekspresi benar sudah ditemukan default merupakan perintah apabila tidak ada ekspesi benar yang ditemukan maka statement default yang akan dijalankan. Latihan 1. menentukan harga barang sesuai kode barangnya [S,M,L], dengan parameter acuan berupa karakter (char) // Nama file : harga.cpp // contoh kasus dengan switch #include <iostream.h> // kamus int kode; long int harga; // program cout<<"ketikkan kode barang : "; cin>>kode; switch (kode) case S : harga = 50000; break; 19

case M : harga = 100000; break; case L : harga = 150000; break; default : cout<<"kode barang tidak ada...!!"<<endl; harga = 0; cout<<"harga barang dengan kode : <<kode<< Rp. <<harga<<endl; 2. Menyeleksi huruf vocal atau konsonan // Nama file : kon_vokal.cpp // Deskripsi : contoh kasus dengan switch menentukan huruf vocal atau // konsonan #include <iostream.h> // kamus char cc; // program cout<<"ketikkan sebuah huruf : "; cin>>cc; switch (cc) case 'a' : cout<<cc<< adalah huruf vocal"<<endl; break; case 'u' : cout<<cc<< adalah huruf vocal"<<endl; break; case 'i' : cout<<cc<< adalah huruf vocal"<<endl; break; case 'e' : cout<<cc<< adalah huruf vocal <<endl; break; case 'o' : cout<<cc<< adalah huruf vocal"<<endl; 20

break; default : cout<<"yang anda ketikkan adalah huruf konsonan"<<endl; Tugas : 1. Ubah program pada contoh 2 diatas ke dalam format if-else, selanjutnya apa pendapat anda? 2. Buatlah program menggunakan switch untuk menentukan nama hari dari bilangan hari yang dinput, output berupa : Masukkan bilangan hari : 2 SELASA 3. Buatlah program untuk menentukan nama bulan dari bilangan bulan yang diinput, output berupa : Masukkan bilangan bulan : 4 MARET 21

MODUL 4 PENGULANGAN DALAM C++ Format pengulangan (loop) bertujuan untuk menuliskan beberapa instruksi yang sama kedalam format yang lebih simple. Terdapat tiga bentuk pengulangan (loop) dalam bahasa C++ yaitu FOR, DO WHILE dan WHILE FOR Format deklarasi looping for : for (<ekspresi1>;<ekspresi2>;<ekspresi3>)<statement> dengan penjelasan : ekspresi1 : inisialisasi (nilai awal loop) ekspresi2 : kondisi keluar dari loop ekspresi3 : sebagai pengatur kenaikan variable pengendali loop namun, tidak aneh apabila nanti ditemukan ketiga ekspresi ini berada diluar format deklarasi loop for, sehingga ditemukan bentuk seperti : for (; ; )<statement>, hal ini akan dijelaskan lebih lanjut. Latihan 1. Menampilkan nilai integer sebanyak n, dengan nilai n static : n = 10 // Nama file : prifor.cpp // Deskripsi : baca n, print i s/d n dengan for // kamus int i; int n; // program for(i=1; i<=10; i++) cout<<i<<; cout<<"akhir program <<endl; 22

2. Menampilkan nilai integer sebanyak n, dengan nilai n ditentukan oleh user. // Nama file : prifor.cpp // Deskripsi : baca n, print i s/d n dengan for // kamus int i; int n; // program cout<<"baca n, tampilkan 1 s/d n"; cout<<"n : "; cin>>n; for(i=1; i<=n; i++) cout<<i<<; cout<<"akhir program "<<endl; Tugas : 1. Lakukan modifikasi kedua program diatas untuk menampilkan bilangan genap atau bilangan ganjil dalam range nilai n yang ditentukan oleh user 2. Menampilkan kalimat Hello World! sebanyak n kali ke layar DO WHILE Format deklarasi looping do while : do<statement>while<ekspresi> Latihan 1. Menampilkan nilai integer sebanyak n, dengan nilai n ditentukan oleh user // Nama file : prirep.cpp // Deskripsi : loop dengan do..while // kamus int n; int i; // program cout<< "input nilai n > 0 = "; 23

// inisialisasi cin>>n; i=1; cout<<"tampilkan I dengan REPEAT : ; do cout<<i<<; //proses i++; //elemen berikutnya while (i<=n); //kondisi pengulangan cout<<"akhir program "<<endl; 2. Menjumlahkan seluruh bilangan yang diinputkan oleh user dengan diakhiri oleh bilangan = 99 // Nama file : prxrep.cpp // Deskripsi : contoh baca nilai x // jumlahkan nilai yang dibaca dengan iterate // kamus int sum; int x; // program cout<<"masukkan nilai x (int), akhiri dengan 99 : "; cin>>x; if (x==99) cout<<"kasus kosong ; else //minimal ada satu data yang dijumlahkan sum=0; do sum = sum+x; //proses cout<<"masukkan nilai x (int), akhiri dengan 99 : "; cin>>x; //elemen berikutnya while (x!=99); //kondisi pengulangan cout<<"hasil penjumlahan = <<sum<<endl; //terminasi* cout<<"akhir program "; 24

Tugas : Lakukan modifikasi pada latihan no 2, untuk menghitung nilai rata-rata yang diinputkan oleh user. Kasus ini bisa dimanfaatkan untuk mencari nilai akhir rata-rata mahasiswa untuk matakuliah pemrograman 1 ini. WHILE format deklarasi while : while(<ekspresi>)<statement> statement akan dijalankan apabila ekspresi bernilai benar <true> looping akan terus dijalankan jika kondisi ini terus dipenuhi Latihan 1. Menampilkan nilai integer sebanyak n, dengan nilai n ditentukan oleh user // Nama file : priwhile1.cpp // Deskripsi : baca n, print i = 1 s/d n dengan WHILE (ringkas) // kamus int n; int i = 1; // program cout<< nilai n > 0 = "; cin>>n; cout<<"print i dengan WHILE (ringkas) : ; while (i<=n) cout<<i<<; i++; //i==n 2. menjumlahkan seluruh bilangan yang diinputkan oleh user dengan diakhiri oleh bilangan = 999 // Nama file : prxwhile.cpp // Deskripsi : contoh baca nilai x // jumlahkan nilai yang dibaca dengan while 25

// kamus int sum; int x; // program sum = 0; cout<<"masukkan nilai x (int), akhiri dengan 999 : "; cin>>x; while (x!=999) //kondisi berhenti sum = sum + x; //proses cout<<"masukkan nilai x (int), akhiri dengan 999 : "; cin<<x; cout<<"hasil penjumlahan = "<<sum<<endl; //terminasi Tugas : Menghitung besar honor karyawan yang harus dikeluarkan oleh perusahaan sesuaii dengan jumlah karyawan. 26

MODUL 5 ARRAY PENGERTIAN Array adalah sekumpulan elemen bertype sama, yang mempunyai sebuah nama (nama array) dan setiap elemen mengacu pada indeksnya. Array dengan satu indeks disebut array berdimensi satu, vector, larik, atau tabel. Array dengan dua indeks disebut array dua dimensi atau matriks. Array dapat mempunyai dimensi lebih dari dua. Yang harus diperhatikan adalah : nama array dimensi array ukuran array, Dalam bahasa C batas minimum nilai indeks selalu 0 Macam array Array static, array dengan ukurannya ditentukan saat kompilasi Array dinamik, array yang ukurannya didefinisikan pada saat run time dengan perintah alokasi memori. Untuk selanjutnya akan dibahas mengenai array static ARRAY STATIC Definisi static : <type> <nama> [<uk-1][<uk-2>], contoh definisi array static: float TabX[10]; int MatriksA[3][3]; <uk-n> menyatakan ukuran array di dimensi ke n dengan indeks selalu mulai dari 0 hingga <uk-n>-1 contoh deklarasi, inisialisasi dan cara mengacu : deklarasi : cara mengacu : float TabX[10]; TabX[2] int MatriksA[3][3]; MatriksA[0][0] melalui deklarasi : float TabX[10] = 5,3,4,6,2,1,7,9,10,8; TabX[] 5 3 4 6 2 1 7 9 10 8 Indeks ke- 0 1 2 9 27

IMPLEMENTASI TIPE DATA ARRAY 1. Deklarasi tipe data array dengan nama TabX, bertipe integer, berdimensi satu dengan ukuran 10 elemen. Selanjutnya data diinputkan dan ditampilkan menggunakan looping for. //file : array1.cpp //array static : menginput dan menampilkan data array #include<conio.h> int i; int TabX[10]; cout<< input data array : <<endl; for (i=0; i<10; i++) cout<< elemen ke <<i+1<< : ; cin>>tabx[i]; cout<<endl; cout<< tampil data array : <<endl; for (i=0; i<10; i++) cout<< elemen ke <<i+1<< : <<TabX[i]<<endl; getch(); 2. Array dengan nama TabY, datanya telah terisi pada saat deklarasi yaitu : 2, 5, 3, 7 dan 4. Berikut mengolah data array berdasarkan indeksnya. //file : array2.cpp //array static : manipulasi data array #include<conio.h> int i; int TabY[5] = 2,5,3,7,4; int a, b, c, d; cout<< tampil data array : <<endl; for (i=0; i<5; i++) cout<< elemen ke <<i+1<< : <<TabY[i]<<endl; 28

/*penjumlahan data array berdasarkan indeks*/ a=1; b=4; c=taby[a] + TabY[b]; d=taby[a-1] + TabY[b-2]; cout<< nilai c : <<c<<endl; cout<< nilai d : <<d<<endl; getch(); Coba anda tebak berapa data yang ditampilkan di layar??? 3. Mendeklarasikan tipe data array berdimensi dua (disebut juga matriks) dengan ukuran 2 X 3. Data matriks telah terisi pada saat deklarasi yaitu [ 2 4 6] dan [7 9 11] //file : matriks.cpp //array static multidimensi : menampilkan data matriks #include<conio.h> //kamus int i, j; int MatriksA[2][3]= 2,4,6, 7,9,11; cou<< tampil data matriks : <<endl; for (i=0; i<2; i++) for(j=0; j<3; j++) cout<< Matriks A << [ <<i<<, <<j<< ] << = <<MatriksA[i][j]<<endl; cout<<endl; getch(); Dapat dilihat bahwa data akan tampil dilayar : MatriksA [0,0] = 2 MatriksA [0,1] = 4 MatriksA [0,2] = 6 MatriksA [1,0] = 7 MatriksA [1,1] = 9 MatriksA [1,2] = 11 2 4 6 7 9 11 29

STUDI KASUS TIPE DATA ARRAY Studi kasus ini akan ditekankan pada penerapan tipe data array pada kasus tertentu yaitu pencarian data (searching) dan pengurutan (sorting) data. Pencarian data diimplementasikan untuk mencari data array bertipe integer yang maksimum dan minimum. Serta mencari nilai tertentu pada array. Pengurutan data diimplementasikan untuk mengurutkan data array bertipe integer yang diiurutkan secara terurut membesar (ascending) dan terurut mengecil (descending) PENCARIAN DATA (SEARCHING) Pencarain data akan diimplemetasikan dalam dua bentuk. Pertama dengan menyimpan data yang dicari ke dalam suatu variabel. Kedua menggunakan mekanisme ketemu (find) 1. Mencari nilai maksimum data array Menyimpan data yang dicari ke dalam suatu variabel Diagram alir : Maksimum = x[0] For (i=0;i<banyak;i++) Ya x[i]>maksimum Tidak Maksimum = x[i] Misal : int TabX[10] = 5,3,4,6,2 TabX[] 5 3 4 6 2 Indeks ke- 0 1 2 3 4 Berapa nilai maksimum?? 30

// file : arraymaks1.cpp // mencari nilai maksimum data array #include<conio.h> int bil[10]; int jml_bil,nilai_maks; int i; //input jumlah bilangan cout<<"input jumlah bilangan kurang dari 10 : ";cin>>jml_bil; //input data for (i=0;i<jml_bil;i++) cout<<bilangan ke"<<i+1<< : ; cin>>bil[i]; //menentukan nilai maks nilai_maks=bil[0]; for (i=0;i<jml_bil;i++) if (bil[i]>nilai_maks) nilai_maks=bil[i]; //mencetak nilai maks cout<<"nilai maksimum : "<<nilai_maks<<endl; cout<<endl; getch(); Latihan : Anda dapat menerapkan bentuk program diatas untuk mencari data minimumnya 2. Mencari nilai tertentu pada array Mencari data tertentu dengan mekanisme ketemu (find) // file : arrayfind.cpp // mencari nilai tertentu data array #include<conio.h> int bil[10]; int jml_bil,nilai_maks; int i,x,ketemu; 31

//input jumlah bilangan cout<<"input jumlah bilangan kurang dari 10: ";cin>>jml_bil; //input data for (i=0;i<jml_bil;i++) cout<<bilangan ke"<<i+1<< : ; cin>>bil[i]; //input data yang dicari cout<< masukkan bilangan yang akan dicari : "; cin>>x; //mencari data ketemu = 0; i = 0; while ((i<jml_bil) & (!ketemu) if(bil[i]==x) ketemu = 1; else i=i+1; Modul Perograman 1/ C++ if (ketemu) cout<<x<< ditemukan pada indeks ke"<<i<<endl; else cout<<x<< tidak ditemukan"<<endl; getch(); 32

PENGURUTAN DATA (SORTING) Ada beberapa teknik untuk mengurutkan data, salah satu diantaranya adalah metode bubble sort. Metode ini sangat terkenal karena kesederhanaannya. pengurutan dilakukan dengan membandingkan setiap elemen dengan seluruh elemen yang terletak sesudah posisinya. // file : arraysort.cpp // mengurutkan nilai secara ascending #include<conio.h> int bil[10]; int jml_bil, temp; int i,j; //input jumlah bilangan cout<<"input jumlah bilangan kurang dari 10: ";cin>>jml_bil; //input data for (i=0;i<jml_bil;i++) cout<<bilangan ke"<<i+1<< : ; cin>>bil[i]; //urut data for (i=0;i<jml_bil-1;i++) for(j=i+1;j<jml_bil;j++) if (bil[i]>bil[j]) temp=bil[i]; bil[i]=bil[j]; bil[j]=temp; //tampil data cout<<"bilangan yang sudah terurut : "<<endl; for (i=0;i<jml_bil;i++) cout<<"bilangan ke <<i+1<< : <<bil[i]; getch(); 33

MODUL 6 STRUKTUR KOMPOSISI (RECORD) Modul Perograman 1/ C++ PENGERTIAN Struktur adalah koleksi variabel yang dinyatakan dengan sebuah nama, setiap variabel dapat memiliki tipe yang berlainan. Definisi struktur komposisi (record) : struct Nama_Struktur tipe_1 anggota_1; tipe_2 anggota_2; tipe_n anggota_n; Variabel_struktur; Cara pengaksesan : Variabel_struktur.Nama_Anggota; Contoh definisi variabel berstruktur komposisi : Nama struktur adalah Jam. struct jam int hh; int mm; int ss; Jam_kerja; Pengaksesan struktur jam : Jam_kerja.hh = 8; Jam_kerja.mm = 15; Jam_kerja.ss = 30; IMPLEMENTASI TIPE DATA STRUKTUR 1. Tipe data struktur didefinisikan dengan nama jam, yang anggotanya terdiri dari hour (hh), minute (mm), second (ss) yang semuanya bertipe integer. //file : jam.cpp //input dan tampil data struktur jam #include<conio.h> struct jam int hh; int mm; int ss; Jam_kerja; 34

cout<<"input data jam : ; cout<< jam : "; cin>>jam_kerja.hh; cout<< menit : "; cin>>jam_kerja.mm; cout<< detik : "; cin>>jam_kerja.ss; cout<<"tampil data jam : ; cout<< jam kerja sekarang : "<< Jam_kerja.hh << : << Jam_kerja.mm << : << Jam_kerja.ss; getch(); 2. Tipe data struktur didefinisikan dengan nama data mhs, yang anggotanya terdiri dari nim, nama, dan umur. Data struktur akan diinputkan secara statis //file : mhs.cpp //input dan tampil data struktur mhs #include<conio.h> #include<string.h> struct data_mhs char nim[7]; char nama[30]; int umur; info; //input data mhs secara statis strcpy(info.nim, 1234567 ); strcpy(info.nama, Rocky ); Umur = 20; cout<<"data mahasiswa : ; cout<<info.nim<< <<info.nama<< <<info.umur<<endl; getch(); Latihan : 1. Implementasikan tipe data struktur komposisi (record) untuk data : a. Tanggal anggotanya : tanggal, bulan, tahun b. Titik (point) anggotanya : absis (x), ordinat (y) Lengkapi dengan input dan tampil data. 2. Implementasikan tipe data struktur komposisi (record) untuk data pegawai. Anggotanya terdiri dari nip, nama, dan jabatan. 35

MODUL 7 STRUKTUR ARRAY 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<conio.h> 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. 36

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<conio.h> 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 getch(); : "; cin>>info_mhs[i].tgl_lahir.thn; Latihan : 1. Lengkapi program info_mhs.cpp diatas dengan tampil data mahasiswa. 2. Implementasikan untuk data titik (point), sebanyak 5 titik. 37

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<conio.h> char teks[13]; //string dengan panjang maksimal 12 karakter cout<< masukkan sebuah kata : ; cin>>teks; cout<< kata yang anda masukkan : <<teks<<endl; getch(); 38

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<conio.h> 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<conio.h> char nama[20]; char alamat[30]; 39

cout<< nama anda : ; cin.getline(nama,sizeof(nama)); cout<< alamat anda : ; cin.getline(alamat,sizeof(alamat)); Modul Perograman 1/ C++ 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> 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 : Buat program untuk menghitung huruf a pada string selamat datang pagi 40

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<conio.h> #include<string.h> 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(); 41

MODUL 9 POINTER ILUSTRASI Terdapat 3 kotak yaitu merah, kuning dan hijau. Kotak merah terdapat di urutan pertama, selanjutnya kuning dan hijau. Merah Kuning Hijau 1 2 3 Misalkan ada dua orang bertanya yang pertama menanyakan apakah isi kotak merah?, orang kedua bertanya apakah isi kotak pertama?. Pertanyaan pertama mengacu ke nama variabelnya. 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 : ptr_x=&x; /* ptr_x menunjuk ke alamat dari x. 42

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. 10 *ptr_x 2300 ptr_x 10 12 2300 2400 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<conio.h> 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. Selanjutnya tipe data ini akan digunakan pada modul Fungsi dan Prosedur 43

MODUL 10 FUNGSI DAN PROSEDUR PENGERTIAN Fungsi dan prosedur adalah blok dari kode yang dirancang untuk melaksanakan tugas khusus, dengan tujuan : Program menjadi terstruktur, sehingga mudah dipahami dan mudah dikembangkan. Dapat mengurangi pengulangan kode (duplikasi kode) Bahasa C tidak mempunyai bentuk khusus untuk prosedur. Prosedur didefinisikan sebagai fungsi yang tidak mempunyai return value (return value bertipe void) Bentuk umum fungsi : Tipe_data nama_fungsi(daftar parameter/variabel) /*Deklarasi Parameter*/ tubuh fungsi; Penentu tipe tidak disebutkan maka keluaran fungsi berupa int. Fungsi yang dipanggil sebaiknya dideklarsikan terlebih dahulu (dengan menggunakan prototipe). Selanjutnya pada kuliah ini semua fungsi dan prosedur harus dideklarasikan prototipenya. Contoh : int luas(int pj, int lb); //fungsi void tukar(int *a, int *b); //prosedur ILUSTRASI a; //panggil fungsi a b; //panggil prosedur b Fungsi a; Prosedur b; c; // panggil fungsi c Fungsi c; 44

JENIS PARAMETER PADA FUNGSI DAN PROSEDUR Parameter Formal dan parameter actual Parameter formal : Parameter/ variabel yang ada pada daftar parameter definisi fungsi. Parameter actual : Parameter/ variabel (tidak selamanya menyatakan variabel) yang digunakan dalam pemanggilan fungsi. Parameter Lokal dan Parameter Global Parameter lokal : Parameter/ variabel yang dideklarasikan dalam fungsi (hanya dikenal oleh fungsi tempat variabel dideklarasikan) Parameter global : Parameter/ variabel yang dideklarasikan di luar fungsi (dapat dikenal oleh semua fungsi yang terdapat dibawahnya). Ada 2 cara untuk melewatkan parameter ke dalam fungsi yaitu : 1. Pemanggilan dengan nilai (call by value) : Pemanggilan fungsi dengan mengirimkan nilai. Nilai parameter actual akan disalin ke parameter formal. Dalam hal ini parameter actual tidak dapat berubah sekalipun nilai parameter formal berubah. 2. Pemanggilan dengan referensi (call by reference) Pemanggilan fungsi dengan mengirimkan alamat. alamat parameter formal akan mengacu ke alamat parameter formal. Perubahan nilai yang terjadi pada parameter formal akan mengubah nilai parameter actual. Return Digunakan untuk mengirimkan hasil atau nilai dari suatu fungsi kepada fungsi lain yang memanggilnya, return diikuti oleh argumen yang berupa nilai yang akan dikirim. Contoh : return (luas); return (*a,*b); IMPLEMENTASI FUNGSI DAN PROSEDUR PROSEDUR //file : prosesur1.cpp //program mengandung prosedur #include<conio.h> //prototype prosedur void judul(); Judul(); getch(); /*pemanggilan prosedur*/ 45

/*implementasi prosedur*/ void judul() printf( The C++ Programming Language\n ); Prosedur tidak mengembalikan nilai apa pun return valuenya bertipe void FUNGSI Program dibawah ini diimplementasikan menggunakan pemanggilan fungsi call by value //file : fungsi1.cpp //Program Mengandung Fungsi Hitung Luas Segi Empat #include<conio.h> //prototype fungsi int luas(int pj, int lb); int luas_se; cout<<"program menghitung luas segi empat"<<endl; luas_se = luas(2,3); /*pemanggilan dengan konstanta/ argumen*/ cout<< Luas segi empat = "<<luas_se<<endl; getch(); int luas(int pj, int lb) cout<<"panjang : <<pj<<endl; cout<< lebar : <<lb<<endl; return(pj*lb); Selanjutnya akan banyak modifikasi penulisan fungsi dan prosedur, perhatikan penjelasan yang akan diberikan!! Anda diharapkan mampu memilah kasus-kasus lain yang diberikan, mana yang harus menggunakan fungsi atau prosedur Latihan : Anda dapat mengimplementasikan program yang didalamnya terdapat fungsi : hitung luas Segitiga hitung pangkat 46

Program dibawah ini diimplementasikan menggunakan pemanggilan fungsi call by reference //file : fungsi2.cpp //Program Mengandung prosedur tukar 2 bilangan dengan pointer #include<conio.h> //prototype prosedur void tukar(int *x, int *y); int a,b; cout<<"nilai a : "; cin>>a; cout<<"nilai b : "; cin>>b; cout<<"nilai a dan b sebelum ditukar : "<<a<< <<b<<endl; tukar(&a,&b); //pemanggilan fungsi tukar cout<<"nilai a dan b setelah ditukar : "<<a<< <<b<<endl; getch(); void tukar(int *x, int *y) int z; z=*x; *x=*y; *y=z; Latihan : 1. Implementasikan program fungsi2.cpp tanpa menggunakan pointer. Bagaimana hasilnya. 2. Buat program untuk mengolah data mahasiswa terdiri dari nim, nama, UTS, UAS dan Tugas. yang didalamnya terdapat fungsi : - input data, untuk menginput data nim, nama, UTS,UAS dan Tugas - nilai akhir, untuk menghitung nilai akhir = (UTS + UAS + Tugas)/3 - tampil data, untuk menampilkan data nim, nama dan nilai akhir untuk menyelesaikan latihan ini kenali lagi jenis-jenis parameter yang digunakan didalam fungsi dan prosedur. 47

Rekursif Adalah kemampuan fungsi memanggil dirinya sendiri. Untuk ini akan diterapkan kasus perhitungan faktorial dari suatu bilangan. Misal : 3! = 3 x 2 x 1 = 6 4! = 4 x 3 x 2 x 1 = 24 dst //file : factorial.cpp //menghitung nilai factorial dari suatu bilangan #include<conio.h> //protype fungsi int fak(int n); int m; cout<<"bilangan : ";cin>>m; cout<<"faktorial dari : <<m<< adalah "<<fak(m)<<endl; getch(); int fak(int n) if (n==0) return (1); else return (n * fak(n-1)); 48

Selamat mempelajari modul ini, ingat jangan pernah bosan untuk mencoba hal-hal baru. 49