56
PRAKTIKUM 1 STRUKTUR C++, TIPE DATA & VARIABEL A. TUJUAN 1. Memahami struktur dasar pemrograman bahasa C++. 2. Mengetahui beberapa tipe data dasar (jenis dan jangkauannya) 3. Memahami tentang variabel dan konstanta 4. Mengetahui aturan penggunaan variable dan konstanta 5. Dapat membuat program menggunakan variable dan konstanta untuk menyelesaikan suatu masalah B. DASAR TEORI Struktur Dasar Pemrograman C Program C terdiri dari satu / lebih fungsi, salah satu diantaranya harus main(). Fungsi terdiri dari sebuah header dan sebuah badan. Header berisi preprocessor statement seperti #include dan nama fungsi. Badan ditandai oleh {} dan berisi serangkaian pernyataan yang masing-masing diakhiri tanda ; Adapun bentuk umum dari program bahasa C adalah Keterangan: #include file : Merupakan nama file library yang fungsinya akan digunakan dalam program. # include file # define var konstan deklarasi fungsi main() { deklarasi variabel global : <pernyataan - pernyataan> : } nama fungsi (arg1, arg2,...) { deklarasi variabel lokal : < pernyataan - pernyataan> : }

Modul Praktikum Pemrograman Bu Anita-libre

Embed Size (px)

DESCRIPTION

Power

Citation preview

Page 1: Modul Praktikum Pemrograman Bu Anita-libre

PRAKTIKUM 1

STRUKTUR C++, TIPE DATA & VARIABEL

A. TUJUAN

1. Memahami struktur dasar pemrograman bahasa C++.

2. Mengetahui beberapa tipe data dasar (jenis dan jangkauannya)

3. Memahami tentang variabel dan konstanta

4. Mengetahui aturan penggunaan variable dan konstanta

5. Dapat membuat program menggunakan variable dan konstanta untuk

menyelesaikan suatu masalah

B. DASAR TEORI

Struktur Dasar Pemrograman C

Program C terdiri dari satu / lebih fungsi, salah satu diantaranya harus

main(). Fungsi terdiri dari sebuah header dan sebuah badan. Header berisi

preprocessor statement seperti #include dan nama fungsi. Badan ditandai oleh {}

dan berisi serangkaian pernyataan yang masing-masing diakhiri tanda ;

Adapun bentuk umum dari program bahasa C adalah

Keterangan:

#include file :

Merupakan nama file library yang fungsinya akan digunakan dalam program.

# include file # define var konstan deklarasi fungsi main() { deklarasi variabel global : <pernyataan - pernyataan> : } nama fungsi (arg1, arg2,...) { deklarasi variabel lokal : < pernyataan - pernyataan> : }

Page 2: Modul Praktikum Pemrograman Bu Anita-libre

#define var konstan :

Mendefinisikan sebuah nilai sebagai konstanta, dimana dalam program

nilainya selalu tetap.

Deklarasi fungsi:

Mendeklarasikan fungsi apa saja yang akan dipakai dalam program, selain

fungsi main().

main() :

Merupakan fungsi induk yang harus ada dalam program.

Deklarasi variabel:

Sebelum sebuah variabel digunakan dalam program maka harus

dideklarasikan yang maknanya adalah memesan tempat pada memori.

Banyaknya tempat yang dipesan bergantung pada tipe data apa yang

digunakan oleh variabel tersebut.

Pengenalan Fungsi-Fungsi Dasar C

a. Fungsi main()

Fungsi main() harus ada pada program, sebab fungsi inilah yang menjadi

titik awal dan titik akhir eksekusi program. Tanda { di awal fungsi menyatakan awal

tubuh fungsi dan sedangkan tanda } di akhir fungsi merupakan akhir tubuh fungsi.

b. Fungsi printf()

Fungsi printf() merupakan fungsi yang umum dipakai untuk menampilkan

suatu hasil pada layar. Dalam bentuk yang lebih umum, format printf()

printf(“string kontrol”, daftar argumen);

String kontroldapat berupa satu atau sejumlah karakter yang akan ditampilkan

ataupun berupa penentu format yang akan mengatur penampilan dari argumen

yang terletak pada daftar argumen. Mengenai penentu format di antaranya

berupa:

%d untuk menampilkan bilangan bulat (integer)

%f untuk menampilkan bilangan titik-mengambang (pecahan)

%c untuk menampilkan sebuah karakter

%s untuk menampilkan sebuah string

Page 3: Modul Praktikum Pemrograman Bu Anita-libre

Dalam string control dapat berisi karakter khusus yangbiasadisebutescape

sequencecharacters,yaitu :

Karakter Keterangan \0 Karakteerber-ASCIInol(karakternull) \a Karakterbell \b Karakterbackspace \f Karaktergantihalaman(formfeed) \n Karakterbaris baru(newline) \r Karaktercarriagereturn(keawalbaris ) \t Karaktertabhorizontal \v Karaktertabvertika \\ Karakter\ \’ Karakter‘ \” Karakter“ \? Karakter? \ooo Karakteryangnilaioktalnyaadalahooo(3digitoctal) \xhh Karakter yang nilai heksadesimalnya adalah hh (2 digit

heksadesimal)

Contoh:

#include <stdio.h> main( ) { printf(“No : %d\n”, 10); printf(“Nama : %s\n”, “Ali”); printf(“Nilai : %f\n”,80.5); printf(“Huruf : %c\n”,‘A’); }

Pengenalan Praprosesor #Include

#includemerupakan salah satu jenis pengarah praprosesor (preprocessor

directive). Pengarah praprosesor ini dipakai untuk membaca file yang diantaranya

berisi deklarasi fungsi dan definisi konstanta. File-file ini mempunyai ciri yaitu

namanya diakhiri dengan ekstensi .h.

Bentuk umum #include:

1.

2.

Bentuk pertama(#include<namafile>)mengisyaratkan bahwa pencarian file

dilakukan pada direktori khusus, yaitu direktori file include. Sedangkan bentuk kedua

#include <namafile>

#include “namafile”

Page 4: Modul Praktikum Pemrograman Bu Anita-libre

(#include “namafile”)menyatakan bahwa pencarian file dilakukan pertama kali pada

direktori aktif tempat program sumber dan seandainya tidak ditemukan pencarian

akan dilanjutkan pada direktori lainnya yang sesuai dengan perintah pada sistem

operasi.

Komentar Dalam Program

Untuk keperluan dokumentasi dengan maksud agar program mudah dipahami

di saat lain, biasanya pada program disertakan komentar atau keterangan mengenai

program. Dalam C, suatu komentar dapat ditulis dengan dua cara:

1. Ditulis dengan diawali dengan tanda /* ….*/.

Untuk penulisan dengan tanda ini, penulisan dapat lebih dari satu baris. Awal

komentar diberi tanda /* dan akhir komentar diberi tanda */

2. Ditulis dengan tanda //.

Penulisan dengan tanda ini hanya untuk satu baris komentar. Tanda //

diberikan diawal komentar saja.

Contoh :

// Tanda ini adalah komentar satu baris #include <stdio.h> main()

{ printf(“Coba\n”); /* Ini adalah program pertama,

komentar lebih dari satu baris */ }

Variabel

Suatu variabel digunakan dalam program untuk menyimpan suatu nilai dan

nilai yang ada padanya dapat berubah selama proses program berlangsung.

Namadari suatuvariabeldapatditentukansendiriolehpemrogramdenganaturan

sebagai berikut:

1. Karakter pertama berupa huruf (A-Z) atau (a-z) atau underscore (_)

2. Tidak boleh mengandung simbol khusus kecuali underscore ( _ )

3. Nama variabel tidak boleh sama dengan kata kunci C++

4. Nama variabel boleh terdiri dari kata kunci C++ yang digabungdengan kata lain .

5. Huruf besar dan kecil dari nama variabel akan dibedakan oleh bahasa C++

6. Nama variabel tidak boleh menggunakan operator aritmetika (+ - / * %)

7. Nama variabel tidak boleh mengandung spasi

Page 5: Modul Praktikum Pemrograman Bu Anita-libre

Deklarasi Variabel

Bentuk umum deklarasi variabel:

Contoh:

int n1; // deklarasi variabel integer n1

int n1,n2; // deklarasi dua variabel n1, n2

DeklarasiKonstanta

Berbedadenganvariabel,konstantatidakdapatdiubah jikatelah diinisialisasi.

Berikut beberapa cara untuk mendeklarasikan konstanta

a. Menggunakankeywordconst

Contoh:

void main() { const float phi = 3.141592; // deklarasi konstanta

float jari_jari, keliling, luas; jari_jari = 7.2; luas = phi * jari_jari * jari_jari; keliling = 2 * phi * jari_jari;

cout<<"Luas lingkaran adalah " << luas<<endl; cout<<"Keliling lingkaran adalah " << keliling;

}

b. Menggunakan#define

Keuntungan menggunakan #define apabila dibandingkan dengan const adalah

kecepatan kompilasi, karena sebelum kompilasi dilaksanakan, kompiler pertama

kalimencarisimbol #define.

Contoh :

#define phi 3.14152965 //deklarasi konstanta

void main() {

float jari_jari, keliling, luas; jari_jari = 7.2;

luas = phi * jari_jari * jari_jari; keliling = 2 * phi * jari_jari; cout<<"Luas lingkaran adalah " << luas<<endl; cout<<"Keliling lingkaran adalah " << keliling;

}

Nama_tipenama_variabel;

Page 6: Modul Praktikum Pemrograman Bu Anita-libre

Inisialisasi Variabel

Inisialisasi variabel adalah pemberian nilai awal variabel saat program dijalankan.

Inisialisasi dapat dilakukan saat deklarasi variabel atau setelah deklarasi. Contoh:

1. Deklarasi dan inisialisasi variabel dalam satu perintah

int n = 1;

2. Deklarasi dan inisialisasi dalam perintah berbeda.

int a; a = 10;

TipeData TipeDasar Ukuran Memori

(byte) JangkauanNilai JumlahDigitPresisi

Char 1 -128hingga+127 -

Short 2 -32768hingga+32767 -

Int/Long 4 -2.147.438.648hingga2.147.438.647 -

Float 4 3,4E-38hingga3,4E38 6- 7

Double 8 1.7E-308hingga1.7E308 15-16

longdouble 10 3.4E-4932hingga1.1E4932 19

C. TUGAS PENDAHULUAN

1. Pilihlah nama-nama variabel yang benar dan yang salah, mengapa ?

2. Buatlah flowchart untuk mengkonversikan ukuran panjang dalam centimeter

menjadi meter dan kelebihannya dalam centimeter (misalnya panjang 165 cm,

maka hasil konversi adalah 1 m 65 cm).

3. Dari soal no 2, buatlah deklarasi variable yang diperlukan jika akan dibuat

program dalam bahasa C++.

D. PRAKTIKUM

1. Carilah kesalahan dalam program di bawah ini :

main () { INT jumlah;

int char 6_05 floating _1312 calloc Xx A$ ReInitialize alpha_beta_routine xxx z

Page 7: Modul Praktikum Pemrograman Bu Anita-libre

/* PERHITUNGAN HASIL jumlah = 25 + 37 - 19;

/* TAMPILKAN HASIL printf("Berapa hasil perhitungan 25 + 37 - 19 ?\n); printf("Jawabannya adalah %d\n" jumlah); }

2. Program di bawah ini seharusnya menampilkan output satu baris sbb :

c * c = 25,000000

Namun, belum berhasil karena masih ada beberapa kesalahan. Temukan

minimal 3 kesalahan dalam program tersebut.

#include <Studio.h> main () { float a, b, c; a = 3; b = 4.0; c = a * a + b * b printf("c * c = %d", c); }

3. Berapakah nilai jawaban yang ditampilkan oleh program di bawah ini :

#include <stdio.h> main() { int jawab, hasil; jawab = 100; hasil = jawab - 10; printf("Jawabannya adalah %d\n", hasil + 6); }

E. TUGAS PRAKTIKUM

Tuliskan kesalahan program, perbaikan dan hasil yang dikeluarkan oleh program

dari praktikum yang sudah anda lakukan..

Page 8: Modul Praktikum Pemrograman Bu Anita-libre

PRAKTIKUM 2

OPERATOR & I/O

A. TUJUAN

1. Memahami operator pada bahasa C++.

2. Memahami berbagai fungsi perintah Input/Output pada bahasa C++.

3. Mengetahui aturan penggunaan operator dan fungsi-fungsi input/output

4. Dapat membuat program menggunakan operator dan fungsi input/output untuk

menyelesaikan suatu masalah

B. DASAR TEORI

Operator

Operator merupakan simbol atau karakter yang biasa dilibatkan dalam

program untuk melakukan sesuatu operasi atau manipulasi, seperti menjumlahkan

dua buah nilai, memberikan nilai ke suatu variabel, membandingkan kesamaan dua

buah nilai.

Operator Aritmatika

Operator untuk operasi aritmatika yang tergolong sebagai operator binary adalah :

* perkalian

/ pembagian

% sisa pembagian

+ penjumlahan

- pengurangan

Sedang operator berikut tergolong sebagai operator unary.

- tanda minus

+ tanda plus

contoh operator sisa pembagian seperti berikut:

Sisa pembagian bilangan 7 dengan 2 adalah 1 (7 % 2 1)

Sisa pembagian bilangan 6 dengan 2 adalah 0 (6 % 2 0)

Sisa pembagian bilangan 8 dengan 3 adalah 1 (8 % 3 2)

Operator Penurunan dan Kenaikan

Page 9: Modul Praktikum Pemrograman Bu Anita-libre

Masih berkaitan dengan operasi aritmatika, C menyediakan operator yang

disebut sebagai operator kenaikan dan operator penurunan, yaitu :

++ operator kenaikan

-- operator penurunan

Operator kenaikan digunakan untuk menaikkan nilai variabel sebesar satu.

Penempatan operator terhadap variabel dapat dilakukan di muka atau di

belakangnya, contohnya :

x = x+1; y = y-1; Dapat ditulis menjadi :

++x; --y;

atau :

x++; y--;

Prioritas Operator Aritmatika

Tabel di bawah ini memberikan penjelasan mengenai prioritas dari masing-masing

operator. Operator yang mempunyai prioritas tinggi akan diutamakan dalam hal

pengerjaan dibandingkan dengan operator yang memiliki prioritas lebih rendah.

Tabel Prioritas operator aritmatika dan urutan pengerjaannya

PRIORITAS OPERATOR URUTAN

Tertinggi

Terendah

( )

! ++ -- + -

* / %

+ -

= += -= *= /= %=

dari kiri ke kanan

dari kanan ke kiri *)

dari kiri ke kanan

dari kiri ke kanan *)

dari kanan ke kiri

*) Bentuk unary + dan unary – memiliki prioritas yang lebih tinggi daripada bentuk

binary + dan binary -

Operator Penugasan

Operator penugasan (assignment operator) digunakan untuk memindahkan

nilai dari suatu ungkapan (expression) ke suatu pengenal. Operator pengerjaan yang

Page 10: Modul Praktikum Pemrograman Bu Anita-libre

umum digunakan dalam bahasa pemrograman, termasuk bahasa C adalah operator

sama dengan (=). Contoh:

fahrenheit = celcius * 1.8 + 32;

Maka ‘=’ adalah operator penugasan yang akan memberikan nilai dari ungkapan :

celcius * 1.8 + 32 kepada variabel fahrenheit.

a = b = 15;

maka nilai variabel ‘a ‘ akan sama dengan nilai variabel ‘b‘ akan sama dengan 15.

Operator Kombinasi

C menyediakan operator untuk memendekkan penulisan operasi

penugasan.

Tabel Operator kombinasi dan padanannya

Fungsi Output

Fungsi printf()

Fungsi yang paling umum adalah digunakan dalam menampilkan data.

Berbagai jenis data dapat ditampilkan ke layar dengan memakai fungsi ini.

Format :

printf(“string kontrol”, daftar argumen);

String control terdiri dari 2 bentuk informasi

1. Karakter yang akan di cetak secara literal.

2. Data identifier = conversion specification.

Argumen1, argumen2 dll adl sesuatu yg akan mensubstitusi identifier bisa berupa.

x += 2; kependekan dari x = x + 2; x -= 2; kependekan dari x = x - 2; x *= 2; kependekan dari x = x * 2; x /= 2; kependekan dari x = x / 2; x %= 2; kependekan dari x = x % 2; x <<= 2; kependekan dari x = x << 2; x >>= 2; kependekan dari x = x >> 2; x &= 2; kependekan dari x = x & 2; x |= 2; kependekan dari x = x | 2; x ^= 2; kependekan dari x = x ^ 2;

Page 11: Modul Praktikum Pemrograman Bu Anita-libre

1. variabel, atau

2. konstanta, atau

3. ekspresi / ungkapan yang dievaluasi dahulu sebelum nilainya dicetak.

Contoh :

main() { printf ("saya belajar C"); string printf ('a'); character printf ("dua ditambah dua sama dengan %d",4); variabel }

Desimal dan panjang field yang diberikan dapat diatur. Cara mengatur lebar

field dan jumlah desimal yang ingin dicetak cukup dengan memberikan format

tambahan pada %f .

Contoh program:

main() { float bil = 2.5, nomor = 30.756; printf ("bilangan = %10.2f \n",bil); printf ("nomor = %10.2f, nomor); } Output :

bilangan = ------ 2.50

nomor = ----- 30.76

Fungsi puts()

Digunakan khusus untuk menampilkan data string ke layar. Sifat fungsi ini

adalah string yang ditampilkan secara otomatis akan diakhiri dengan \n (pindah

baris)

Contoh :

#include <stdio.h> main() {

puts("UNIVERSITAS NEGERI SURABAYA"); }

Output :

UNIVERSITAS NEGERI SURABAYA

Page 12: Modul Praktikum Pemrograman Bu Anita-libre

Fungsi putchar()

Fungsi putchar() digunakan khusus untuk menampilkan sebuah karakter ke

layar. Penampilan karakter tidak diakhiri dengan perpindahan baris.

Contoh :

putchar('A');

menghasilkan output yang sama dengan

printf("%c", 'A');

Fungsi output cout

Digunakan untuk menampilkan kelayar tanpa menggunakan string kontrol,

baik untuk string maupun identifier.Bentuk umum:

Argumen dapat berupa string, variabel atau suatu konstanta. Untuk menggunakan

fungsi cout diperlukan include iostream.h. Contoh: penggunaan fungsi cout :

void main() { int a=10; float b=78.9; char c='a'; cout<<a<<b<<c<<endl; cout<<"a = "<<a<<" b = "<<b<<" c = "<<c<<"\n"; cout<<20; cout<<endl; cout<<40.4; cout<<endl; cout<<'D';}

Fungsi Input

Fungsi scanf()

Fungsi scanf() merupakan fungsi yang dapat digunakan untuk membaca

data dari keyboard dan memasukkan ke dalam program. Daftar argumen dapat

berupa satu atau beberapa argumen dan harus berupa alamat. Untuk

menyatakan suatu alamat dari variabel di depan dapat ditambahkan tanda & ( tanda

& dinamakan sebagai operator alamat ). Contoh :

printf("masukkan bil. pertama : "); scanf() ("%10.2f",&bil);

scanf() menggunakan pointer ke variabel

1. Jika variabelnya bertipe data dasar, maka gunakan &

2. Jika variabelnya adalah string, tidak menggunakan &

cout<<argumen1<<argumen2<<…;

Page 13: Modul Praktikum Pemrograman Bu Anita-libre

contoh program dengan scanf:

#include <stdio.h> main() { float dolar,rupiah; printf ("berapa dollar uang anda ?\n"); scanf ("%f", &dolar); rupiah = dolar * 12000.00; printf ("uang anda setara dengan "); printf ("%2.2f rupiah \n",rupiah); }

Output :

berapa dollar uang anda ?

1.2

uang anda setara dengan 2400.00 rupiah.

Fungsi gets()

Fungsi input khusus untuk string.

Contoh :

#include <stdio.h> main() { char nama[20]; clrscr(); printf("Masukkan nama : "); gets(nama); printf("\n Nama anda %s",nama); }

Fungsi getch(), getche(), getchar()

Fungsi getch, getche dan getchar adalah input khusus untuk karakter.

getch() = input 1 karakter dan tidak ditampilkan

getche() = input 1 karakter, ditampilkan & tidak perlu Enter

getchar() = input 1 karakter, ditampilkan dan perlu Enter

Fungsi input cin

Bentuk umum :

cin>>argumen1>>argumen2>>…;

Page 14: Modul Praktikum Pemrograman Bu Anita-libre

Argumen berupa variable. Untuk menggunakan fungsi cin diperlukan include

iostream.h

Ada beberapa cara memasukkan data kedalam fungsi input cin yang mempunyai

beberapa argument:

1. Setiap argument dipisahkan dengan spasi

2. Setiap argument dipisahkan dengan enter

3. Pemisahan argument berdasar masukan sesuai dengan tipe data

argument masing-masing. Jika argumennya mempunyai tipe data

sama, cara ini tidak dapat digunakan.

Contoh:

#include <iostream> using namespace std; int main() {

int a = 10, b = 20,c = 30, d = 40; cout << "Enter four integers: "; cin >> a >> b >> c >> d; cout << "The numbers you entered are:"<< endl; cout<<"a = "<<a<<", b = "<<b<<", c = " << c <<", d = " << d; return 0;

}

C. TUGAS PENDAHULUAN

1. Buatlah flowchart untuk mengkonversi suhu dari Celcius ke Fahrenheit dengan

rumus

F = C * 1.8 + 32

2. Buat flowchart untuk menginputkan data berupa Nama, Umur dan Alamat.

Selanjutnya cetaklah data yang sudah diinputkan tadi

D. PRAKTIKUM

1. Buatlah program untuk tugas pendahuluan no 2 dengan menggunakan fungsi

input:

cin()

gets()

Cobalah dengan memasukkan nama lengkap saudara. Apakah ada perbedaan

hasilnya? Jelaskan.

Page 15: Modul Praktikum Pemrograman Bu Anita-libre

2. Cobalah program berikut:

#include <iostream> main() {

int fahrenheit; int celsius; cout << "Enter temperature in Fahrenheit: "; cin >> fahrenheit; cout << endl; celsius = 5 / 9 * (fahrenheit - 32); cout<< fahrenheit << " degree F = "<< celsius << " degree C.";

}

Cobalah dengan memasukkan nilai Fahrenheit 32 dan 110. Bagaimanakan

hasilnya? Apakah sesuai dengan perhitungan manual? Jika tidak sesuai

perbaikilah program tersebut.

E. TUGAS PRAKTIKUM

Sebuah toko mengambil keuntungan 30% dari sebuah barang yang akan dijualnya.

Buatlah program, untuk menentukan berapa keuntungan yang didapat toko tersebut

ketika seorang pembeli membeli sejumlah tertentu barang tersebut.

Sebelum membuat program , analisa masalah tersebut dengan menentukan input,

proses dan outputnya serta buatlah flowchartnya.

Page 16: Modul Praktikum Pemrograman Bu Anita-libre

PRAKTIKUM 3

KONDISIONAL

A. TUJUAN

1. Memahami konsep struktur dasar seleksi kondisi

2. Memahami aturan penulisan struktur kondisi

3. Dapat menerapkan struktur kondisi dalam algoritma penyelesain masalah

4. Dapat membuat program dengan struktur kondisi

B. DASAR TEORI

Struktur Kondisi If

Kondisi if memeriksa apakah suatu kondisi dinyatakan benar (true). Kondisi

merupakan suatu operasi logika. Jika kondisi bernilai true maka program akan

melakukan suatu pernyataan yang telah ditentukan untuk kondisi tersebut. Bentuk

umum dari kodisi if adalah:

Contoh program dengan kondisi if :

void main() { int Num1, Num2; cout<<“masukkan nilai 1:”; cin>>Num1; cout<<“masukkan nilai 2:”; cin>>Num2; if(Num1>Num2) cout<<Num1<<” + “<<Num2<<” = “<<Num1+Num2; }

Dalam contoh program diatas, diminta memasukkan 2 buah nilai integer,

kemudian dua buah nilai tersebut dibandingkan. Jika kondisi nilai pertama lebih

besar dari nilai kedua maka akan ditampilkan dilayar kedua nilai tersebut dan hasil

penjumlahan dari kedua nilai tersebut. Jika kondisi tersebut tidak terpenuhi tidak ada

yang dilakukan program.

Selain perbandingan dilakukan dengan angka, dapat juga dilakukan

perbandingan variabel dengan suatu konstanta. Berikut adalah contoh program

perbandingan yang dilakukan antara variabel dengan kostanta:

If (kondisi) pernyataan

Page 17: Modul Praktikum Pemrograman Bu Anita-libre

void main() { char c; cout<<“ketikkan sebuah huruf:”; cin>>c; if(c==’a’||c=’e’||c==’i’ ||c=’o’||c==’u’) cout<<“anda mengetik huruf vokal”; }

Dalam contoh diatas, program akan mencetak hasil dilayar hanya jika

masukan berupa karakter vokal. Masukan dibandingkan dengan karakter vokal ‘a’,

‘i’, ‘u’, ‘e’, ‘o’. Karena perbandingan dilakukan terhadap banyak nilai dan akan

bernilai benar jika masukan merupakan salah satu vokal, maka digunakan operator

or (||).

Struktur Kondisi if-else

Kondisi if melakukan operasi hanya berdasar satu kondisi, selain kondisi

tersebut akan diabaikan. Pada pernyataan kondisi if-else , jika kondisi yang

diinginkan tidak terpenuhi maka akan dilakukan suatu operasi lain. Bentuk umum:

Ketika dieksekusi, pertama yang dilakukan adalah memeriksa kondisi. Jika kondisi

bernilai true, sistem mengeksekusi pernyataan 1. Jika kondisi bernilai false sistem

akan mengeksekusi pernyataan 2 (sesudah else) dan kemudan melanjutkan dengan

sisa program.

Contoh program dengan struktur kondisi if-else:

void main() { int Num1, Num2; cout<<“masukkan nilai 1:”; cin>>Num1; cout<< “masukkan nilai 2:”; cin>>Num2; if(Num1>Num2) cout<<Num1<<” - “<<Num2<<” = “<<Num1-Num2; else cout<<Num2<<” – “<<Num1<<” = “<<Num2-Num1; }

if(kondisi) pernyataan1 else pernyataan 2

Page 18: Modul Praktikum Pemrograman Bu Anita-libre

Dalam contoh program diatas, diminta memasukkan 2 buah nilai integer, kemudian

dua buah nilai tersebut dibandingkan. Jika kondisi nilai pertama lebih besar dari nilai

kedua maka akan ditampilkan dilayar kedua nilai tersebut dan hasil pengurangan

nilai pertama di kurangi nilai kedua. Jika kondisi tersebut tidak terpenuhi maka akan

ditampilkan dilayar kedua nilai tersebut dan hasil pengurangan nilai kedua di kurangi

nilai pertama.

Selain dari if … else , juga dikenal bentuk if … else if . Contoh

penggunaan if .else if untuk mengimplementasikan program kalkulator sederhana

#include <stdio.h> main() { int valid_operator = 1;

char operator; float number1, number2, result; cout<<"Masukkan 2 buah bilangan dan sebuah operator"<<endl; cout<<"dengan format : number1 operator number2"<<endl; cin>>number1>>operator>>number2;

if(operator == '*') result = number1 * number2; else if(operator == '/') result = number1 / number2; else if(operator == '+') result = number1 + number2; else if(operator == '-')

result = number1 - number2; else valid_operator = 0; if(valid_operator) cout<<endl<<number1<<” “<<operator<<” “<<number2 <<” = ”<<result;

else cout<<"Invalid operator!"; }

Pernyataanswitch

Page 19: Modul Praktikum Pemrograman Bu Anita-libre

Pernyataanswich adalahpernyataanyangdigunakanuntukmenjalankansalah

satupernyataan daribeberapakemungkinanpernyataan,berdasarkannilaidarisebuah

ungkapandannilaipenyeleksian.Pernyataanif…elseif jamakdapatdibangundenganp

ernyataanswitch .BentukUmumnya:

Hal–halyangperludiperhatikanadalah:

1. Dibelakangkeywordcaseharus diikutiolehsebuahkonstanta, tidakbolehdiikuti

olehekspresiataupunvariable.

2. Konstanta yang digunakan bertipe int atau char

3. keyword break digunakan untuk keluar dari switch..case

4. default dieksekusi jika konstanta1 sampai konstanta N tidak ada yang

memenuhiekspresi.

Contoh penggunaan pernyataan switch untuk mengimplementasikan kalkulator

sederhana

#include <stdio.h>

main() { int valid_operator = 1; char operator; float number1, number2, result;

cou<<"Masukkan 2 buah bilangan dan sebuah operator\n";

switch(ekspresi) {

case konstanta1: pernyataan1; break;

case konstanta2: pernyataan2; break;

casekonstanta3: pernyataan3; break; : :

casekonstantaN:pernyataanN; break;

default: pernyataanlain;

}

Page 20: Modul Praktikum Pemrograman Bu Anita-libre

cou<<"dengan format : number1 operator number2\n\n"; cin>>number1>>operator>>number2; switch(operator) {

case '*' : result = number1 * number2; break; case '/' : result = number1 / number2; break; case '+' : result = number1 + number2; break; case '-' : result = number1 - number2; break; default : valid_operator = 0;

}

if(valid_operator) cout<< number1<<operator<< number2<<result; else cout<<”Invalid operator!\n"; } C. TUGAS PENDAHULUAN

Buatlah analisa dari ketiga tugas praktikum dibawah, tentukan input, output dan

prosesnya. Selanjutnya buat flowchart dari 3 tugas praktikum dibawah!

D. PRAKTIKUM

1. Perbaikilah program berikut sehingga memberikan hasil w = 21

const int SECRET = 5 main () {

int x, y, w, z; z = 9; if z > 10 x = 12; y = 5, w = x + y + SECRET; else x = 12; y = 4, w = x + y + SECRET; cout << "w = " << w << endl;

}

2. Apakah kesalahan dari program berikut? Perbaikilah sehingga program dapat

dijalankan.Apakah hasilnya?

main () {

int a, b; bool found; cout << "Enter two integers: ; cin >> a >> b;

Page 21: Modul Praktikum Pemrograman Bu Anita-libre

if a > a *b && 10 < b found = 2 * a > b; else { found = 2 * a < b; if found a = 3; c = 15; if b { b = 0; a = 1; }

}

3. int main() {

int testScore; cout << "Enter the test score: "; cin >> testScore; cout << endl; switch (testScore / 10) {

case 0: case 1: case 2: case 3: case 4: case 5: cout << "The grade is F." << endl; case 6: cout << "The grade is D." << endl; case 7: cout << "The grade is C." << endl; case 8: cout << "The grade is B." << endl; case 9: case 10:cout << "The grade is A." << endl; default:cout << "Invalid test score." << endl;

} return 0;

} Pada program ini jika dijalankan :

1. Enter the test score: 110 Invalid test score.

2. Enter the test score: -70 Invalid test score.

3. Enter the test score: 75 The grade is C. The grade is B. The grade is A. Invalid test score

Page 22: Modul Praktikum Pemrograman Bu Anita-libre

Dari ketiga hasil running program, untuk input diluar 1 sampai 100

memberikan hasil yang benar. Tetapi untuk input 1 sampai 100 hasilnya

salah. Untuk input 75 harusnya tercetakThe grade is C .

Apakah kesalahan dari program tersebut? Cobalah perbaiki sehingga

mendapatkan hasil yang benar.

E. TUGAS PRAKTIKUM

1. Sebuah supermarket membuat prrogram promo, dimana jika seorang pembeli

mempunyai total pembelanjaan Rp. 100.000,- keatas maka akan mendapat

potongan sebesar 10 %. Tulislah sebuah program untuk menentukan harga yang

harus dibayar oleh seorang pembeli dimana total pembelanjaan diinputkan dari

keyboard.

2. Buatlah program untuk menghitung diskriminan dan mencari akar-akar dari

persamaan kuadrat : ax2 + bx + c = 0, dengan ketentuan sbb :

D = b2 - 4ac

Jika D = 0 , maka terdapat 2 akar real yang kembar, yaitu : x1 = x2 = -b /

2a

Jika D > 0 , maka terdapat 2 akar real yang berlainan, yaitu :

x1 = (-b + sqrt(D)) / 2a

x2 = (-b - sqrt(D)) / 2a

Jika D < 0 , maka terdapat 2 akar imaginair yang berlainan, yaitu :

x1 = -b / 2a + (sqrt(-D) / 2a) i

x2 = -b / 2a - (sqrt(-D) / 2a) i

Input : a, b, c (float)

Output : Nilai Diskriminan serta nilai akar-akar persamaan tsb (x1& x2).

3. Buatlah program menggunakan switch-case untuk menampilkan menu dan

melakukan proses sbb :

Menu : 1. Menghitung volume kubus

2. Menghitung luas lingkaran

3. Menghitung volume silinder.

Jika pilihan selain 1, 2 & 3 (default) : Tampilkan pesan kesalahan.

Page 23: Modul Praktikum Pemrograman Bu Anita-libre

PRAKTIKUM 4

PERULANGAN

A. TUJUAN

1. Memahami kapan keadaan pengulangan digunakan.

2. Mengenal beberapa perintah pengulangan dalam C

3. Mengerti masing-masing format perintah pengulangan dalam C.

4. Dapat menerapkan perintah pengulangan dalam algoritma penyelesaian

suatu masalah

5. Dapat membuat program dengan perintah pengulangan.

B. DASAR TEORI

Struktur Pengulangan while

Pengulangan while digunakan untuk mengeksekusi beberapa instruksi jika

kondisinya bernilai true. Sehingga jika kondisi awal bernilai falsemaka perintah-

perintah dalam while tidak akan pernah dieksekusi.

Bentuk umum:

Ketika dieksekusi, instruksi while pertama memeriksa kondisi. Jika kondisi

memberikan nilai true , sistem akan mengeksekusi instruksi. Kemudian mengulangi

tes kondisi dan mengerjakan instruksi jika hasilnya masih true. Hal ini diulangi

sampai kondisi mengembalikan nilai false.

Contoh penggunaaan pengulangan dengan ‘while’ dalam program untuk

menjumlahkan 10 angka yang dimasukan:

void main() { int number, sum = 0, count = 0; while (count < 10) { cout<<"Masukkan angka"; cin>>number; sum += number; count++; } cout<<"jumlah: "<<sum; }

while (kondisi)

instruksi

Page 24: Modul Praktikum Pemrograman Bu Anita-libre

Dalam contoh program diatas, perulangan dilakukan 10 kali dengan instruksi while

(count < 10) , count < 10 adalah tes kondisi. Dalam hal ini tes

adalah:“apakahcount lebih kecil dari 10 ? “. Jika jawabannya “ya” maka instruksi di

pengulangan ‘while’ dieksekusi. Jika “tidak” maka perulangan tidak dilakukan lagi

dan menuju perintah selanjutnya yaitucout<<"jumlah: "<<sum;

Struktur Pengulangan do while

Pengulangan ‘do while ’ juga mengeksekusi beberapa instruksi berulang jika kondisi yang

telah ditentukan dipenuhi. Dalam perulangan ‘do while ’ tes kondisi dilakukan pada

akhir pengulangan. Bentuk umum pengulangan ‘do while ’ :

Berikut ini adalah contoh program untuk menghitung nilai count dimulai

dengan 0, dengan penambahan 2 dan akan berhenti pada 15

main() {

int Count = 0; do { cout<< Count * 2; Count++; } while( Count <= 15 );

} Pada contoh program diatas, pertama kali akan dicetak Count * 2 , kemudian

Count ditambahkan satu sebagai perubahan tes kondisi untuk menghitung berapa

kali pengulangan sudah dilakukan pengulangan. Tes kondisi dilakukan setelah

instruksi dalam pengulangan dilakukan dengan instruksi sebagai berikut ( Count

<= 15 ) , jika hasil tes kondisi bernilai true maka pengulangan dikerjakan jika

bernilai false maka pengulangan berhenti.

Struktur Pengulangan For

Struktur pengulangan ketiga adalah pengulangan ‘for’. Pengulangan ‘for’

dapat mengeksekusi instruksi berulang sejumlah yang sudah ditentukan. Bentuk

umumnya adalah sebagai berikut:

do { Instruksi instruksi } while (kondisi)

Page 25: Modul Praktikum Pemrograman Bu Anita-libre

Inisialisasi merupakan pemberian nilai awal pada variabel yang akan dilakukan tes

kondisi. Tes kondisi digunakan untuk menentukan apakah pengulangan bisa

dikerjakan. Dan yang terakhir perubahan nilai yaitu perubahan nilai untuk tes kondisi

sehingga pengulangan bisa mencapai batas untuk berhenti.

Berikut adalah contoh pengulangan ‘for’ untuk menghitung dari 1 sampai 10:

for (int count = 1; count <= 10; count++) { printf(“%d\n”, count); } Tes kondisi mungkin tidak berhubungan dengan variabel yang diinisialisi dan

diperbaharui. Pada contoh ini pengulangan menghitung sampai pemakai

memberikan respon untuk menghentikan pengulangan. Contoh seperti berikut:

for (count = 1; response != 'T'; count++) { printf(“%d\n”, count); printf("Lanjut (Y/T): "); scanf(“%c”,&response); }

Perulangan Bersarang (Nested Loop)

Pada sebuah perulangan didalamnya dapat terjadi perulangan juga, yang

dikenal dengan nested loop. Perulangan yang berada didalam (inner loop) harus

dieksekusi sejumlah perulangan yang berada diluarnya(outer loop).

Misalnya pada table perkalian berikut:

Pada baris 0 perkalian akan berulang dari kolom 0 sampai 9. Proses perkalian akan

diulang kembali untuk baris 1 dan seterusnya. Untuk permasalahan tersebut maka

diperlukan dua perulangan, perulangan yang berada didalam untuk mengulang

kolom dan perulangan diluar untuk mengulang baris. Berikut contoh programnya:

for(inisialisasi;tes kondisi;perubahan nilai) { instruksi; }

Page 26: Modul Praktikum Pemrograman Bu Anita-libre

void main() { int row; // Outer loop counter int col; // Inner loop counter for(row=1; row<=10; row++){ { for(col=1; col<=10; col++) cout << row*col << " "; cout << endl; } }

C. TUGAS PENDAHULUAN

Buatlah analisa dari ketiga tugas praktikum dibawah, tentukan input, output dan

prosesnya. Selanjutnya buat flowchart dari 3 tugas praktikum dibawah!

D. PRAKTIKUM

1. Program berikut mempunyai kesalahan dalam perulangan. Temukan

kesalahan tersebut dan perbaiki. Selanjutnya jalankan program yang sudah

diperbaiki, apakah hasil dari program tersebut?

void main()

( int i = 0, value = 0; while (i <= 20) {

if (i % 2 == 0 && i <= 10) value = value + i * i;

else if (i % 2 == 0 && i > 10) value = value + i;

else value = value - i;

} cout << "value = " << value << endl;

}

2. Rubahlah program no 1 menjadi bentuk for loop!

3. Rubahlah program berikut menjadi bentuk do while loop

int main() { int counter,sum,N; cout << "Enter the number of positive integers :”; cin >> N; sum = 0; for (counter = 1; counter <= N; counter++) sum = sum + counter;

Page 27: Modul Praktikum Pemrograman Bu Anita-libre

cout << "The sum of the first " << N << " positive integers is " << sum << endl; return 0; }

4. Program dibawah ini seharusnya menjumlahkan sejumlah bilangan integer

yang dimasukkan dan berhenti ketika bilangan yang dimasukkan adalah -1.

Kemudian menampilkan banyaknya data yang dimasukkan kecuali -1 dan

hasil penjumlahan semua data tersebut kecuali -1. Perbaikilah program

tersebut sehingga memberikan hasil yang benar. Cobalah dengan

memasukkan data 1 2 3 4 5 -1, jumlah data yang ditampilkan harusnya 5 dan

hasil penjumlahan adalah 15. apakah hasilnya sudah benar?

int main() {

int total = 0,count = 0,number; do{

cin >> number; total = total + number; count++;

}while (number != -1); cout<<"The number of data read is "<< count << endl; cout<<"The sum of the numbers entered is " << total; return 0;

}

E. TUGAS PRAKTIKUM

1. Buatlah program untuk menampilkan semua bilangan genap yang terletak antara

20 sampai dengan 120, dengan menggunakan perulangan while .

2. Buat program untuk menampilkan seperti contoh berikut dengan perulangan for :

jika n = 5 hasil: 55555

4444

333

22

1

n diinputkan

3. Buat program untuk membuat deret 11 sampai nn dimana n diinputkan. Contoh

jika n =3, maka output : 1 4 27. Gunakan fungsi looping do while .

Page 28: Modul Praktikum Pemrograman Bu Anita-libre

PRAKTIKUM 5

ARRAY

A. TUJUAN

1. Memahami pengertian array.

2. Memahami format penggunaan array dalam C..

3. Membuat program dengan menggunakan array.

B. DASAR TEORI

Array adalah sekelompok data yang mendeskripsikan sesuatu yang sejenis

dan disimpan ke dalam variabel dengan nama yang sama. Ada dua macam array

yaitu array satu dimensi dan array multi-dimensi.

Array Satu Dimensi

Deklarasi Arrray Satu Dimensi

Seperti variabel lain, bentuk umum pendeklarasian array adalah sebagai

berikut:

Identifer adalah tipe dari array. Kemudian diikuti dengan nama yang sesuai aturan C.

Tanda ‘[ ]’, berisi ukuran maksimal yang dapat ditampung array.

Contoh deklarasi array satu dimensi seperti berikut:

char Nama[12];

float Grade[100];

double Angle[360];

Inisialisasi Array Satu Dimensi

Seperti variabel lain, array dapat diinisialisasi. Bentuk umum inisialisasi array

satu dimensi adalah sebagai berikut:

Elemen1 menggambarkan elemen pertama dari array. Elemen dihitung dari 0

kemudian 1 dan seterusnya. Contoh inisialisasi array satu dimensi seperti berikut:

int angka[6] = { 0, 1, 2, 3, 4, 5 }; char Warna[5] = { 'H', 'I', 'T', 'A', 'M' };

identifier nama[ukuran]

identifier name[dimension] = { element1, element2, …, elementn};

Page 29: Modul Praktikum Pemrograman Bu Anita-libre

Pemrosesan Array Satu Dimensi

Pada Bahasa C++ indeks dimulai dari 0. Untuk menelusuri array, harus

diketahui index yang dimiliki array. Untuk memproses array satu dimensi dapat

digunakan perulangan. Seperti dalam contoh berikut

void main() { float Distance[]= { 44.14, 720.52, 96.08, 468.78 }; cout<<"Anggota array"<<endl; for(int i = 0; i < 4; ++i) cout<<”Distance [“<<i<”] = "<<Distance[i]; }

Array Dua Dimensi

Array berdimensi dua adalah array dari array berdimensi satu. Dengan kata

lain array dua dimensi adalah array dimana masing-masing anggotanya juga array.

Deklarasi Array Dua Dimensi

Array dua dimensi terdiri dari baris dan kolom. Masing-masing baris

menggambarkan suatu kategori dimana datanya mempunyai kategori lain yang

digambarkan pada kolom.

Karena array dua dimensi terdiri dari baris dan kolom maka, digunakan dua

tanda ‘[ ]’. Bentuk umum array dua dimensi:

Identifer adalah tipe dari array. Kemudian diikuti dengan nama berdasar aturan C.

Nama diikuti dengan dua tanda ‘[ ]’, dimana didalamnya terdapat dua ukuran tempat

yang dipesan untuk array tersebut. Ukuran1 menunjukkan ukuran baris yang

dipesan, sedang ukuran2 merupakan ukuran kolom dari array tersebut.

Contoh deklarasi array dua dimensi seperti berikut:

int MHSAngkProdi[4][5];

Deklarasi di atas menggambarkan jumlah mahasiswa dalam sebuah prodi pada

setiap angkatan. Ukuran 4 menggambarkan jumlah angkatan dan setiap angkatan

mempunyai 5 prodi.

identifier nama[ukuran1][ukuran2]

Page 30: Modul Praktikum Pemrograman Bu Anita-libre

Inisialisasi Array Dua Dimensi

Inisialisasi dilakukan sama seperti pada array satu dimensi. Karena array dua

dimesni digambarkan sebagai baris dan kolom maka jumlah elemen yang dimiliki

array dua dimensi dapat ditentukan dari hasil perkalian jumlah baris * jumlah kolom..

Bentuk umum inisialisasi array dua dimensi adalah sebagai berikut:

Contoh inisialisasi array berdimensi dua seperti berikut:

float bil[2] [3] = { 1,2,3, 4,5,6}

Dari contoh inisialisasi tersebut maka berarti bahwa elemen bil [0] [0] = 1, elemen bil

[0] [1] = 2, elemen bil [0] [2] = 3, elemen bil [1] [0] = 4, elemen bil [1] [1] = 5, elemen

bil [1] [2] = 6. Berikut adalah contoh program dimana terdapat inisialisasi array dua

dimensi:

#include <iostream> int main() {

float Distance[2][4] = {44.14, 720.52, 96.08, 468.78, 6.28, 68.04, 364.55, 6234.12};

printf("Anggota array"; printf( "\nDistance [0][0] %f: " , Distance[0][0]); printf("\nDistance [0][1] %f: " , Distance[0][1]); printf("\nDistance [0][2] %f: " ,Distance[0][2]); printf( "\nDistance [0][3] %f : " ,Distance[0][3]); printf( "\nDistance [1][0] %f : " , Distance[1][0]); printf( "\nDistance [1][1] %f : " , Distance[1][1]); printf("\nDistance [1][2] %f : " ,Distance[1][2]); printf( "\nDistance [1][3] %f : " ,Distance[1][3]); return 0; } Agar elemen array pada contoh di atas mudah dibaca ketika inisialisasi, maka nilai

dapat dapat diberi tanda ‘{ }’ untuk membedakan setiap barisnya, seperti berikut

float Distance[2][4] = { {44.14, 720.52, 96.08, 468.78,} //baris 1 {6.28, 68.04, 364.55, 6234.12 }}; //baris2

identifier nama[ukuran1][ukuran2] = { elemen1, elemen2, …, elemenn};

Page 31: Modul Praktikum Pemrograman Bu Anita-libre

Pemrosesan Array Dua Dimensi

Untuk menelusuri array, harus diketahui berapa kolom dan baris yang dimiliki

array. Untuk memproses array dua dimensi dapat digunakan dua perulangan for.

Seperti dalam contoh berikut

int main() { float Dist[][4] =

{ { 44.14, 720.52, 96.08, 468.78 }, { 6.28, 68.04, 364.55, 6234.12 } };

Cout<<"Anggota array"<<endl; for(int i = 0; i < 2; ++i) for(int j = 0; j < 4; ++j)

cout<<”Distance [“<<i<<”][“<<j<<”]:"<<Dist[i][j]; return 0; }

C. TUGAS PENDAHULUAN

Buatlah analisa dari ketiga tugas praktikum dibawah, tentukan input, output dan

prosesnya. Selanjutnya buat flowchart dari 3 tugas praktikum dibawah!

D. PRAKTIKUM

1. Cobalah program untuk mengisi dan menampilkan beberapa variabel

arrayberikut

main() { int nilai[10]; int indeks; /* menginisialisasi array supaya berisi 0 */ for(indeks=0; indeks<10; indeks++) nilai[indeks] = 0; nilai[0] = 197; nilai[2] = -100; nilai[5] = 350; nilai[3] = nilai[0] + nilai[5]; nilai[9] = nilai[5] / 10; --nilai[2]; for(indeks = 0; indeks < 10; indeks++) printf("nilai[%d] = %d\n", indeks, nilai[indeks]); }

Page 32: Modul Praktikum Pemrograman Bu Anita-libre

a. Pada program diatas, jika kondisi pada for diganti menjadi

indeks = 1; indeks <= 10; indeks++

apakah yang terjadi? Mengapa?

b. Rubahlah program diatas sehingga menampilkan nilai secara terbalik dari

indeks terbesar ke indeks terkecil.

2. Cobalah program untuk menjumlahkan dua buah array berikut:

main() { int jml,total = 0, kolom, baris; int bil[][5] = { {1, 2, 35, 7, 10}, {6, 7, 4, 1, 0} }; for(baris = 0; baris <2; baris++ ) for(kolom = 0; kolom < 5; kolom++ ) total += data[baris][kolom]; cout<<"Hasil penjumlahan 2 array tsb adalah = "<<total; }

a. Rubahlah program diatas dimana nilai array bil diinputkan.

b. Selanjutnya rubahlah program dengan jumlah baris dan jumlah kolom

diinputkan. (buat maks baris dan kolom = 10)

3. Cobalah Array dua dimensi untuk membentuk transpose matrik berikut:

main() { float X[2][2], swap; cout<<"Masukkan elemen matriks X"<<endl; cout<<"X[0][0] : X[0][1] = "; cin>>X[0][0]>>X[0][1]); cout<<"X[1][0] : X[1][1] = "; cin>>X[1][0]>>X[1][1]; swap = X[0][1]; X[0][1] = X[1][0]; X[1][0] = swap; cout<<endl<<”Transpose dari matriks X adalah:"; cout<<X[0][0]<<” “<<X[0][1]<<endl; cout<<X[1][0]<<” “<< X[1][1]; }

Page 33: Modul Praktikum Pemrograman Bu Anita-libre

Rubahlah program diatas dengan jumlah kolom dan baris matriks diinputkan. Data

dari setiap item matriks diinputkan juga. Selanjutnya cari transposenya.

E. TUGAS PRAKTIKUM

1. Buat program untuk menampilkan deret Fibonacci sbb :

Contoh : jumlah deret = 10

0 1 1 2 3 5 8 13 21 34

2. Buat program untuk menginputkan n bilangan Kemudian cetaklah semua

bilangan dimana bilangan yang sama cukup dicetak satu kali. Contoh, jika

diinputkan : 1 2 3 1 3 4, maka output : 1 2 3 4.

3. Buat program daftar rapor siswa, dimana pada rapor setiap siswa terdapat daftar

nilai semua pelajaran, nilai rata-rata kelas setiap pelajaran. Jumlah mata

pelajaran pada sejumlah 5. Jumlah siswa diinputkan.

Contoh, jika data siswa :

Siswa Nilai Pelajaran 1 80 70 90 100 60 2 70 60 70 80 90

Maka output:

Rapor siswa 1: Rapor siswa 2 Pelajaran 1: 80 Rata-rata kelas : 75 Pelajaran 1: 80 Rata-rata kelas : 75 Pelajaran 2: 70 Rata-rata kelas : 65 Pelajaran 2: 70 Rata-rata kelas : 65 Pelajaran 3: 90 Rata-rata kelas : 80 Pelajaran 3: 90 Rata-rata kelas : 80 Pelajaran 4: 100 Rata-rata kelas : 90 Pelajaran 4: 100 Rata-rata kelas : 90 Pelajaran 5: 65 Rata-rata kelas : 75 Pelajaran 5: 65 Rata-rata kelas : 75

Page 34: Modul Praktikum Pemrograman Bu Anita-libre

PRAKTIKUM 6

STRING

A. TUJUAN

1. Memahami tentang konsep string

2. Mengetahui cara mengakses elemen string

3. Mengetahui berbagai fungsi mengenai string dan dapat menerapkan dalam

program

4. Dapat membuat program dengan menggunakan string

B. DASAR TEORI

Untuk membuat suatu string diperlukan array karena C hanya mempunyai tipe

char.. Contoh deklarasi string:

char Name[20]; char BookTitle[40];

char WebReference[80]; char WeekDay[4];

Untuk inisialisasi variable string sama seperti inisialisasi data array. Contoh

inisialisasi string:

char Name[6] = { ‘F', 'a', ‘r', ‘i', 's' };

atau dapat dilakukan seperti berikut:

char Name[12] = “Faris";

Seperti array yang lain, masing-masing anggota array karakter dapat diakses

berdasar indeksnya.

Jika diperlukan daftar string lebih dari satu, maka digunakan array 2 dimensi,

dimana dimensi pertama merupakan jumlah string pada variabel tersebut dan

dimensi kedua menunjukkan banyaknya karakter untuk masing-masing string.

Contoh:

char NamaMhs[4][10] = { “Aditya", “Budi", “Charles", “Doni" };

NamaMhs adalah array dengan 4 string, dan tiap string mempunyai maksimal 9

karakter (+1 untuk karakter null-terminated).

Fungsi-fungsi untuk string

Fungsi strlen().

Untuk mengetahui banyaknya karakter pada suatu string.

syntax : int strlen(const char* Value);

Page 35: Modul Praktikum Pemrograman Bu Anita-libre

Fungsi strcat()

Untuk menambahkan dua string

syntax : char *strcat(char *Destination, const char *Source);

Fungsi strncat()

Untuk menambahkan sejumlah karakter pada satu string kesuatu string yang lain.

Syntax: char* strncat(char* Destination, const char* Source, int Number);

Fungsi strcpy()

Untuk menyalin satu string ke string yang lain.

syntax : char* strcpy(char* Destination, const char* Source);

Fungsi strncpy()

Untuk menyalin sejumlah karakter dari string yang lain.

syntax: char* strncpy(char* Destination, const char* Source, int Number);

Fungsi strcmp

Membandingkan 2 string

syntax: int strcmp(const char* S1, const char* S2);

Fungsi stricmp()

Membandingkan dua string tanpa memandang huruf besar atau huruf kecil

syntax : int stricmp(const char* S1, const char* S2);

Hasil perbandingan: negative jika S1 < S2

0 jika S1 dan S2 sama

positive jika S1 > S2

Fungsi strlwr()

Digunakan untuk mengkonversikan string ke huruf kecil

syntax : char *strlwr(const char *S);

Fungsi strupr()

Untuk mengkonversikan string ke huruf besar.

syntax : char *strupr(const char *S);

Fungsi strchr()

Memeriksa apakah huruf pertama pada string sesuai dengan karakter tertentu.

syntax : char* strchr(const char* S, char c);

Fungsi strrchr()

Memeriksa apakah huruf terakhir pada string sesuai dengan karakter tertentu

syntax : char* strrchr(const char* S, char c);

Page 36: Modul Praktikum Pemrograman Bu Anita-libre

C. TUGAS PENDAHULUAN

Buatlah analisa dari kedua tugas praktikum dibawah, tentukan input, output dan

prosesnya. Selanjutnya buat flowchart dari 2 tugas praktikum dibawah!

C. PRAKTIKUM

Cobalah program program dibawah ini :

1. Memasukkan data string dari keyboard #define MAKS 15 main() { char nama[MAKS]; printf("Masukkan nama Anda : "); gets(nama); printf("\nHalo, %s. Selamat belajar string.\n", nama); }

2. Variasi dalam menginisialisasi string.

main() { char kompiler_c[] = {'V','i','s','u','a','l',' ','C','+','+','\0'}; char kompiler_C[] = "Visual C++"; puts(kompiler_c); printf("%s\n", kompiler_C); }

3. Menyalin isi string1 ke string2 menggunakan fungsi strcpy().

main() { char str1[80]; char str2[]="ABCDE"; strcpy(str1, str2); //menyalin isi str2 ke str1 printf("String pertama adalah : %s\n", str1); printf("String kedua adalah : %s\n", str2); }

Page 37: Modul Praktikum Pemrograman Bu Anita-libre

4. Menghitung suatu string masukan menggunakan fungsi strlen().

#define MAKS 256 main() { char kal[MAKS]; printf("Masukkan kalimat yang akan dihitung panjangnya :\n"); fgets(kal, sizeof kal, stdin); printf("\nPanjang string tsb = %d karakter\n", strlen(kal)); }

5. Menggabungkan isi string1 dengan string2 menggunakan fungsi strcat().

#define PJG 15 main() { char str1[PJG], str2[PJG]; strcpy(str1, "sala"); //str1 diisi "sala" strcpy(str2, "tiga"); //str2 diisi "tiga" strcat(str1, str2); //tambahkan str2 ke akhir st1 printf("str1 --> %s str2 --> %s\n", str1, str2); }

6. Membandingkan isi string1 dengan string2 menggunakan fungsi strcmp().

main() { char str1[]="HALO"; char str2[]="Halo"; char str3[]="HALO"; printf("Hasil pembandingan %s dengan %s --> %d\n", str1, str2, strcmp(str1, str2)); printf("Hasil pembandingan %s dengan %s --> %d\n", str2, str1, strcmp(str2, str1)); printf("Hasil pembandingan %s dengan %s --> %d\n", str1, str3, strcmp(str1, str3)); }

Page 38: Modul Praktikum Pemrograman Bu Anita-libre

7. Mencari karakter dalam sebuah string menggunakan fungsi strchr().

main() { char str[]="ABcde"; char *hasil1; char *hasil2; hasil1 = strchr(str, 'B'); hasil2 = strchr(str, 'X'); printf("Dari string ABcde\n"); printf("Mencari karakter B = %s\n", hasil1); printf("Mencari karakter X = %s\n", hasil2); }

E. TUGAS PRAKTIKUM

1. Buat program untuk membalik string masukan. (Petunjuk : gunakan fungsi

strlen() untuk mendapatkan panjang kalimat)

Contoh :

Kalimat yang mau dibalik : Saya sedang belajar C

Hasil pembalikan kalimat : C rajaleb gnades ayaS

2. Buat program untuk memasukkan data nama mahasiswa dalam satu kelas.

Kemudian cetaklah daftar nama mahasiswa yang mempunyai huruf pertama

sesuai masukan.

Page 39: Modul Praktikum Pemrograman Bu Anita-libre

ReturnValue NamaFungsi(Argumen);

void NamaFungsi(Argumen);

PRAKTIKUM 7

FUNGSI

A. TUJUAN

1. Memahami konsep dasar dan definisi fungsi

2. Mengerti dan memahami cara deklarasi dan pemanggilan fungsi

3. Membuat algoritma yang memuat fungsi

4. Membuat program dengan mengaplikasikan fungsi untuk menyelesaikan suatu

masalah

D. DASAR TEORI

Deklarasi Fungsi

Bentuk umum deklarasi fungsi adalah sebagai berikut:

Jika diinginkan melakukan suatu permintaan fungsi tanpa menginginkan

suatu hasil, maka fungsi dikualifikasikan sebagai ‘void’ dan tidak mempunyai return

value. Deklarasinya seperti berikut:

Tetapi jika suatu fungsi diharapkan akan memberikan nilai tertentu maka return

value berupa tipe data tertentu, seperti int, float, double, atau char. Berikut adalah

contoh deklarasi fungsi yang mempunyai return value :

char NamaFungsi(Argumen);

float NamaFungsi(Argumen);

Nama sebuah fungsi mengikuti aturan penamaan variable dalam C.

Fungsi yang tidak membutuhkan sesuatu maka dalam ‘()’ kosong. Fungsi

dapat memerlukan lebih dari satu kebutuhan. Kebutuhan fungsi ini dinamakan

argumen. Argumen didefinisikan dengan tipe data dan nama argumen.

Page 40: Modul Praktikum Pemrograman Bu Anita-libre

Mendefinisikan Fungsi

Bentuk umum pendefinisian fungsi :

Contoh sebuah fungsi sederhana:

void Message() {printf(¨contoh Fungsi dalam C¨);

PEMANGGILAN FUNGSI

Untuk memanggil satu fungsi dari fungsi lain, dituliskan nama dari fungsi

tersebut serta dicantumkan argument jika diperlukan.

Contoh:

void main()

{ message(); //pemanggilan fungsi message()

}

PENEMPATAN FUNGSI DALAM PROGRAM

Ada dua cara untuk menempatkan definisi fungsi dalam program :

1. Definisi fungsi diletakkan setelah fungsi yang memanggil.

Untuk kondisi ini fungsi harus dideklarasikan terlebih dahulu sebelum dilakukan

pemanggilan. Bentuknya sebagai berikut:

ReturnValue NamaFungsi(Argumen) {Badan fungsi};

ReturnValue FungsiC();

main() { FungsiC(); }

ReturnValue FungsiC()

{

Badan FungsiC

}

Page 41: Modul Praktikum Pemrograman Bu Anita-libre

2. Deklarasi dan definisi fungsi dilakukan sebelum dilakukan pemanggilan.

Teknik Pengembalian Nilai

void

Fungsi yang tidak mempunyai return value dideklarasikan dan didefinisikan

sebagai ‘void’. Sebuah fungsi dapat bertipe void jika tidak diharapkan akan

memberikan nilai tertentu.

Return Value

Jika sebuah fungsi dideklarasikan untuk mengembalikan suatu nilai tertentu,

maka kompiler harus mengetahui nilai apa yang akan dihasilkan fungsi. Nilai yang

dihasilkan harus sesuai dengan tipe yang dideklarasikan. Bentuk umum dari fungsi

dengan pengembalian nilai tertentu adalah sebagai berikut:

ReturnValue FungsiC()

{

Badan FungsiC

}

main() { FungsiC(); }

ReturnValue FungsiC()

{

Pernyataan-pernyataan;

return Nilai;

}

void main() { variabel = FungsiC(); }

Page 42: Modul Praktikum Pemrograman Bu Anita-libre

Nilai yang merupakan pengembalian nilai dalam suatu fungsi dapat berupa :

1. Konstanta

2. Variabel

3. Ekspresi

Teknik Pengiriman Argumen

Untuk melakukan pekerjaannya, terdapat fungsi yang memerlukan argumen.

Pengiriman Argumen berdasarkan Nilai

Untuk menggunakan fungsi didalam fungsi lain maka harus dilakukan

pemanggilan fungsi dengan memanggil nama fungsi dan memberikan argumen yang

diperlukan. Hanya nama dari argumen yang diperlukan tanpa tipe datanya.

Contoh program sebagai berikut:

float jumlah(float, float); main() { float a, b,c; printf("Masukkan nilai a : "); scanf("%f", &a); printf("Masukkan nilai b : "); scanf("%f", &b); c = jumlah(a, b); printf("\nHasil penjumlahan a + b = %g\n", c); } float jumlah(float x, float y) / * definisi fungsi * / { return(x + y); }

Pengiriman Argumen dengan Referensi

C mengijinkan fungsi yang dipanggil untuk memodifikasi nilai argumen yang

dikirimkan jika diperlukan. Jika diperlukan fungsi yang dipanggil untuk merubah nilai

dari argumen yang dikirimkan dan memberikan hasil nilai yang sudah dirubah maka

argumen harus dikirimkan menggunakan referensinya.

Untuk mengirimkan argumen sebagai referensi, ketika mendeklarasikan

fungsi, nama argumen diawali dengan ´&´. Argumen yang dikirimkan sebagai

referensi biasa 0, satu, atau lebih atau bisa juga semua argumen.

Page 43: Modul Praktikum Pemrograman Bu Anita-libre

Berikut adalah contoh program untuk menukar nilai dengan argumen

berdasar referensi::

void tukar (&int, &int); main() { int a,b; a = 88; b = 77; printf("Nilai sebelum pemanggilan fungsi\n"); printf("a = %d b = %d\n", a, b); tukar(a,b); printf("\nNilai setelah pemanggilan fungsi\n"); printf("a = %d b = %d\n", a, b); } void tukar(int &x, int &y) { int z; z = x; x = y; y = z; printf("\nNilai di akhir fungsi tukar()\n"); printf("x = %d y = %d\n", x, y); }

C. TUGAS PENDAHULUAN

Buat Flowchart untuk tugas praktikum dibawah.

E. PRAKTIKUM

1. Cobalah program untuk memanggil fungsi berulang-ulang berikut :

void cetak_pesan(void); main() { int i; for(i=1; i<=5; i++) cetak_pesan(); printf("\n"); } void cetak_pesan() { printf("Cetak pesan ini\n");}

Rubahlah program diatas dengan banyaknya perulangan berdasar input.

Page 44: Modul Praktikum Pemrograman Bu Anita-libre

2. Perbaikilah program untuk menghitung nilai bilangan kuadrat berikut.

void square(float); //prototype function main() { printf("%f, %f, %f\n", square(1.), square(2.),square(3.)); } void square(float x) { cout<<x * x; } 3. Perbaikilah program untuk mengkonversi besaran sudut dari derajat ke radian

berikut.

#define PI 3.14159f float radian(float); //Prototype main() //Main function { float derajat; printf("Masukkan besar sudut dlm derajat : "); scanf("%f", &derajat); printf("%g derajat=%g radian\n", derajat, radian(derajat)); } float radian(float x) //The function { float hasil; hasil = x / 180.0f * PI; }

4. Cobalah program untuk menampilkan bilangan kuadrat secara random berikut.

Apakah kegunaan perintah srand() dan rand() ?

#include <stdio.h> #include <stdlib.h> #include <time.h> squareInt(int); randomInt(int);

main() { int rs;

Page 45: Modul Praktikum Pemrograman Bu Anita-libre

srand(time(NULL)); rs = squareInt(randomInt(10)); printf("Random Square = %d\n", rs); } randomInt(int y) { return 1 + rand() % y; } squareInt(int x) { return x * x; }

5. Perbaikilah program untuk mencari bilangan terkecil berikut.

float minimum (float); main() { float a, b, kecil; printf("Masukkan nilai a : "); scanf("%f", &a); printf("Masukkan nilai b : "); scanf("%f", &b); kecil = minimum(a); printf("\nBilangan terkecil antara %g dan %g adalah %g\n\n", a, b, kecil); } float minimum(float x, y) { if (x < y) return(x); else return(y); }

6. Cobalah dua program dibawah. Apakah perbedaannya? Apakah pengaruh

penggunaan tanda & (alamat) pada parameter fungsi untuk penukaran dua

bilangan ? Jelaskan

Page 46: Modul Praktikum Pemrograman Bu Anita-libre

a.

void tukar (int, int); main() { int a = 88, b = 77; printf("Nilai sebelum pemanggilan fungsi\n"); printf("a = %d b = %d\n", a, b); tukar(a,b); printf("\nNilai setelah pemanggilan fungsi\n"); printf("a = %d b = %d\n", a, b); } void tukar(int x, int y) { int z; z = x; x = y; y = z; printf("\nNilai di akhir fungsi tukar()\n"); printf("x = %d y = %d\n", x, y); }

b.

void tukar (int *, int *); /* prototype fungsi */ main() { int a,b; a = 88; b = 77; printf("Nilai sebelum pemanggilan fungsi\n"); printf("a = %d b = %d\n", a, b); tukar(&a,&b); /* alamat a dan alamat b */ printf("\nNilai setelah pemanggilan fungsi\n"); printf("a = %d b = %d\n", a, b); } void tukar(int *px, int *py) {

Page 47: Modul Praktikum Pemrograman Bu Anita-libre

int z; z = *px; *px = *py; *py = z; printf("\nNilai di akhir fungsi tukar()\n"); printf("x = %d y = %d\n", *px, *py); }

7. Cobalah program berikut. Mengapa variabel a pada main program dan pada

fungsi mempunyai nilai berbeda?

int OddEvenTest(int); main() { int a, hasil; a = 5; hasil = OddEvenTest(a); printf(“\n Dalam main program :\n); printf("a = %d; hasil = %d\n", a, hasil); } OddEvenTest(int b) { int a; a = b % 2; printf("nilai a dalam fungsi= %d\n", a); return a; }

F. TUGAS PRAKTIKUM

1. Buatlah fungsi untuk menghitung jumlah dan rata-rata dari tiga bilangan riil.

Tulislah sebuah program untuk menghitung jumlah luas dua bujursangkar. Rumus

bujursangkar terletak didalam fungsi.

2. Buatlah suatu fungsi ganjil() yang mengembalikan nilai 1 jika argumen yang

diberikan adalah bilangan ganjil dan mengembalikan nilai 0 jika argumen tsb bukan

bilangan ganjil.

Page 48: Modul Praktikum Pemrograman Bu Anita-libre

PRAKTIKUM 8

POINTER

A. TUJUAN

1. Memahami tentang konsep dari variabel pointer

2. Memahami tentang pointer dalam fungsi

3. Dapat menerapkan komputer dalam menyelesaikan masalah

4. Dapat membuat program dengan variabel pointer.

B. DASAR TEORI

Variabel pointer sering dikatakan sebagai variabel yang menunjuk ke obyek

lain. Pada kenyataan yang sebenarnya, variabel pointer berisi alamat dari suatu

obyek lain (yaitu obyek yang dikatakan ditunjuk oleh pointer). Sebagai contoh, px

adalah variabel pointer dan x adalah variabel yang ditunjuk oleh px. Kalau x berada

pada alamat memori (alamat awal) 1000, maka px akan berisi 1000.

Mendeklarasikan Variabel Pointer

Suatu variabel pointer dideklarasikan dengan bentuk sebagai berikut :

Sebagai contoh :

int px; / *contoh 1 */ char *pch1, *pch2; / *contoh 2 */

Contoh pertama menyatakan bahwa px adalah variabel pointer yang menunjuk ke

suatu data bertipe int, sedangkan contoh kedua masing pch1 dan pch2 adalah

variabel pointer yang menunjuk ke data bertipe char .

Mengatur Pointer agar Menunjuk ke Variabel Lain

Agar suatu pointer menunjuk ke variabel lain, mula-mula pointer harus diisi

dengan alamat dari variabel yang akan ditunjuk. Untuk menyatakan alamat dari

suatu variabel, operator & (operator alamat, bersifat unary) bisa dipergunakan,

tipe *nama_variabel

Page 49: Modul Praktikum Pemrograman Bu Anita-libre

dengan menempatkannya di depan nama variabel. Sebagai contoh, bila x

dideklarasikan sebagai variabel bertipe int , maka&xberarti “alamat dari variabel x ”.

Adapun contoh pemberian alamat x ke suatu variabel pointer px (yang

dideklarasikan sebagai pointer yang menunjuk ke data bertipe int ) yaitu :

Pernyataan di atas berarti bahwa px diberi nilai berupa alamat dari variabel x.

Setelah pernyataan tersebut dieksekusi barulah dapat dikatakan bahwa px

menunjuk ke variabel x .

Mengakses Isi Suatu Variabel Melalui Pointer

Jika suatu variabel sudah ditunjuk oleh pointer, variabel yang ditunjuk oleh

pointer tersebut dapat diakses melalui variabel itu sendiri (pengaksesan langsung)

ataupun melalui pointer (pengaksesan tak langsung). Pengaksesan tak langsung

dilakukan dengan menggunakan operator indirection (tak langsung) berupa simbol *

(bersifat unary). Contoh penerapan operator * yaitu :

*px yang menyatakan “isi atau nilai variabel/data yang ditunjuk oleh pointer px ” .

Contoh:

main() { int y, x = 87; /* x & y bertipe int */

int *px; /* var pointer yang menunjuk ke data yang bertipe int */

x = 87; px = &x; /* px diisi dengan alamat dari variabel x */ y = *px; /* y diisi dengan nilai yg ditunjuk oleh px */

printf("Alamat x = %p\n", &x); printf("Isi px = %p\n", px); printf("Isi x = %d\n", x); printf("Nilai yang ditunjuk oleh px = %d\n", *px); printf("Nilai y = %d\n", y);

}

px = &x;

Page 50: Modul Praktikum Pemrograman Bu Anita-libre

Contoh eksekusi :

Alamat x = 0012FF78 Isi px = 0012FF78 Isi x = 87 Nilai yang ditunjuk oleh px = 87 Nilai y = 87

Mengakses dan Mengubah isi Suatu Variabel Pointer

Contoh berikut memberikan gambaran tentang pengubahan isi suatu variabel

secara tak langsung (yaitu melalui pointer).

main() { float d = 54.5, *pd; printf("Isi d mula-mula = %g\n", d); pd = &d; // memberikan alamat dari d ke pd *pd += 10; printf("Isi d sekarang = %g\n", d); } hasil eksekusi : Isi d mula-mula = 54.5 Isi d sekarang = 64.5

Adapunpd = &d; berarti pd menunjukke variabeld.Sedangkan pernyataan berikutnya *pd = *pd + 10; berarti “jumlahkan yang ditunjuk pd dengan 10 kemudian berikan ke yang ditunjuk oleh pd”, atau identik dengan pernyataan d = d + 10;

Pointer dan Array

Hubungan antara pointer dan array pada C sangatlah erat. Sebab

sesungguhnya array secara internal akan diterjemahkan dalam bentuk pointer.

Pembahasan berikut akan memberikan gambaran hubungan antara pointer dan

array. Misalnya dideklarasikan di dalam suatu fungsi

int jumlah[3] = { 40, 45, 64 }; int *ptJml;

Kemudian diberikan instruksi

Page 51: Modul Praktikum Pemrograman Bu Anita-libre

ptJml = &jumlah[0];

maka ptJml akan berisi alamat dari elemen array jumlah yang berindeks nol.

Instruksi di atas bisa juga ditulis menjadi

ptJml = jumlah;

sebab nama array tanpa tanda kurung menyatakan alamat awal dari array.

Pointer sering digunakan untuk variable string karena string merupakan array,seperti

pada contoh berikut

main() { /* pkota menunjuk konstanta string “SURABAYA” */ char *pkota = “SURABAYA”;

printf(“String yang ditunjuk oleh pkota = ”); puts(pkota); }

Contoh eksekusi :

String yang ditunjuk oleh pkota = SURABAYA

Pointer Sebagai Parameter Fungsi

Jika parameter fungsi bertipe pointer, maka parameter tersebut merupakan

parameter pass by reference. Sehingga nilai suatu variabel internal dapat diubah

oleh fungsi yang dipanggil. Sebagai contoh dapat dilihat pada program berikut.

void naikkan_nilai(int *x, int *y); main() {

int a = 3; int b = 7; printf("SEMULA : a = %d b = %d\n", a, b); naikkan_nilai(&a, &b); printf("KINI : a = %d b = %d\n", a, b);

}

Page 52: Modul Praktikum Pemrograman Bu Anita-libre

void naikkan_nilai(int *x, int *y) { *x = *x + 2; *y = *y + 2;

}

Contoh hasil :

Semula : a = 3 b = 7 Kini : a = 5 b = 9

Dynamic Allocation

Kompailer dapat menyediakan memori ketika program dieksekusi, dengan

mendefinisikan identifier baru ke variable pointer sbb:

NamaPointer = new identifier;

Contoh:

ptrNum = new int;

jika tidak diperlukan lagi dapat dihapus dengan perintah delete .

delete NamaPointer;

Contoh:

delete ptrNum;

Variabel dinamik dibuat dan dihancurkan saat program berjalan. Berikut contoh

potongan program pembentukan variable dinamik.

int *p ; // deklarasi variable pointer integer p = new int ; // pointer p menunjuk ke suatutempat di

// memori yang akan berisi data integer *p = 25 ; // tempat yang ditunjuk pointer p diisi 25

Gambaran perintah diatas seperti berikut:

Page 53: Modul Praktikum Pemrograman Bu Anita-libre

Jika sudah tidak diperlukan, isi memori perlu dihapus agar dapat digunakan untuk

yang lain. Dapat digunakan operator delete seperti berikut:

delete p ; //Menghapus variabel dinamik yang ditunjuk p

Setelah dihapus, variable pointer p kembali menjadi variabel pointer yang menunjuk

ke NULL. Pointer dapat digunakan lagidengan mendefinisikan kembali

menggunakan perintah new.

Berikut contoh program dengan variable dinamik

void main() { int Umur; int *Age; Age = & Umur; *Age = 15;

cout<<"Umur = “<< Umur; cout<<"*Age =" <<*Age; Age = new int; *Age = 17; cout<<"Umur = “<< Umur; cout<<"*Age = “<< *Age ; delete Age; }

Dynamic array

Array dapat dibentuk saat program dijalankan, hal ini dinamakan dynamic

array. Untuk membuat dynamic arraydigunakan operator new. Contoh seperti berikut

:

int *p; //mendeklarasikan variable pointer int p

p = new int [10]; // p menunjuk ke suatu tempat di memori

//yang berisi 10 tempat yang berurutan

Operator new diatas membuat array bertipe int dan berukuran 10 dan p menunjuk

ke alamat array tersebut. Contoh perintah selanjutnya :

*p = 25; // nilai 25 akan disimpan pada array indeks pertama. p++; // p akan bergeser ke indeks selanjutnya

*p = 35; // nilai 35 disimpan ke lokasi array indeks kedua

Dengan perintah incerement dan decrement, pointer dapat bergeser naik atau turun

pada indeks array.

Page 54: Modul Praktikum Pemrograman Bu Anita-libre

Saat dynamic array tidak digunakan lagi dapat dihapus dengan perintah delete .

Contoh

Delete [] p;

Dynamic array dapat juga diisi tanpa menggeser letak pointer. Untuk itu dapat

diisi dengan menggunakan indeks pada pointer sama seperti pada aray biasa.

Contoh:

p[0] = 25; p[1] = 35;

C. TUGAS PENDAHULUAN

1. Misalkan terdapat deklarasi variable seperti berikut :

int *num; int N;

Tuliskan perintah untuk mengisi variable N melalui variable pointer num

2. Misalkan terdapat deklarasi variable seperti berikut : int *num;

a. Tuliskan perintah C++ untuk membuat dynamic array berukuran 10

b. Buatlah perintah untuk memasukkan data pada dynamic array tersebut

c. Tuliskan perintah untuk menghapus dynamic array tersebut.

D. PRAKTIKUM

1. Cobalah program untukmengakses isi suatu variabel melalui pointer berikut.

Perbaikilah jika terdapat kesalahan.

main() { int *pu;

int nu; int u = 1234; pu = &u; nu = *pu; cout<<”Alamat dari u = "<< *u<<endl; cout<<”Isi pu = "<< pu<<endl;

cout<<”Isi u = “<< u<<endl; cout<<”Nilai yang ditunjuk oleh pu = "<< *pu<<endl; cout<<”Nilai nu = "<< nu;

}

Page 55: Modul Praktikum Pemrograman Bu Anita-libre

2. Cobalah program untuk mengubah isi suatu variabel melalui pointerberikut.

Perbaikilah jika terdapat kesalahan.

main() { float d = 54.5; int *pd; cout<<"Isi d mula-mula = "<<d<<endl; pd = &d; *pd += 10; cout<<"Isi d sekarang = “<<d; }

3. Dimanakah letak kesalahan program berikut? Mengapa? Coba perbaiki sehingga

bisa dijalankan.

void main()

{ int *p; int *q; p = new int[5]; *p = 2; for (int i = 1; i < 5; i++) p[i] = p[i - 1] + i; q = p; delete [] p; for (int j = 0; j < 5; j++) cout << q[j] << " "; cout << endl;

}

4. Cobalah program di bawah. Bagaimana nilai a dan b sebelum dan sesudah

pemanggilan fungsi? jelaskan.

void naikkan_nilai(int *x, int *y); main() { int a = 3; int b = 7;

printf("SEMULA : a = %d b = %d\n", a, b); naikkan_nilai(&a, &b); printf("KINI : a = %d b = %d\n", a, b); }

Page 56: Modul Praktikum Pemrograman Bu Anita-libre

void naikkan_nilai(int *x, int *y) { *x = *x + 2;

*y = *y + 2; }

E. TUGAS PRAKTIKUM 1. Buat program untuk menampilkan sebaris string seperti contoh berikut ;

“Unesa Surabaya“

menggunakan variable pointer (pointer to string).

2. Buat program untuk mencetak huruf keempat ( V ) dari kata :

“UNIVERSITAS “ dengan menggunakan variabel pointer .

3. Buat program untuk memasukkan dan mencetak nilai sejumlah mahasiswa.

Gunakan variable pointer untuk menyimpan nilai tersebut. Jumlah mahasiswa

tergantung dari input