Algoritma Pemrograman Semester 1

Preview:

Citation preview

1.1 Sejarah Perkembangan Bahasa C

Bahasa CPenemu: Brian W. Kernighan

dan Denies M. Ricthie1972 di

Daerah Bell

Pengembangan Bahasa B

Penemu: Ken Thompson (1970)

Pertama kali: dioperasikan pada sistem operasi UNIX.

Bahasa pemrograman tingkat menengah atau Bahasa Tingkat

Menengah

Kemampuannya: misalnya dBASE, Word Star dan lain-lain

1.2 Sekilas Tentang Bahasa C++

Bahasa C

Menjadi:C with Classes

Tahun 1980 Oleh seorang ahli bernama Bjarne Stroustrup

Menjadi:C++

Tahun 1983 Oleh oleh Rick Mascitti

Dibuat di Laboratorium Bell, AT&T. C++ Rick Mascitti Bell, AT&T.

Penamabahan Konsep2 baru class dengan sifat-sifatnya yang disebut dengan Object

Oriented Programming (OOP),

Tujuan utama: membantu dan mengelola program yang besar dan kompleks.

1.3 Perbedaan C dan C++

Bahasa pemrograman prosedural

Bahasa pemrograman yang Bahasa pemrograman yang

memiliki sifat Object Oriented

Programming (OOP)

2. Pengenalan IDE (Integrated Development Environment) C++

Menulis Naskah Program

Mengkompilasi Program (Compile)Mengkompilasi Program (Compile)

Melakukan Pengujian Program (Debugging)

Mengaitkan Object dan Library ke Program (Linking)

Menjalankan Program (Running)

IDE TERBAGI 4

A. Baris Menu ( Menu Bar )

B. Baris Peralatan (Tools Bar)

C. Jendela EditorTERBAGI 4 C. Jendela Editor

D. Jendela Message

E. Baris Status (Status Bar)

3. Pengenalan Struktur program C++

[Kristanto:2009] Salah satu konsep yang penting dalam bahasa pemrograman C++

adalah Struktur. Struktur merupakan bentuk susunan dari suatu program yang

dibuat. Perhatikan contoh program berikut ini:

Contoh:

/*contoh program sederhana dengan C++*/

#include <stdio.h>

main()

{

Komentar program

praprosesor nama dari

fungsi,awal dari fungsi, blok

fungsi, akhir dari fungsi

{

printf(“Belajar Bahasa C++”);

}

Satu jenis pengarah praprosesor yang

dipakai untuk membaca file yang

dinamakan file judul (header file)

Borland C++ memiliki 7 tipe data dasar dan 3 tipe tambahan, diantaranya:

TipeData

UkuranMemori

Jangkauan NilaiJumlah

Digit

Char 1 Byte -128 s.d 127

Int 2 Byte -32768 s.d 32767Int 2 Byte -32768 s.d 32767

Short 2 Byte -32768 s.d 32767

Long 4 Byte -2,147,435,648 s.d 2,147,435,647

Float 4 Byte 3.4 x 10-38 s.d 3.4 x 10+38 5 – 7

Double 8 Byte 1.7 x 10-308 s.d 1.7 x 10+308 15 – 16

LongDouble

10 Byte 3.4 x 10-4932 s.d 1.1 x 10+4932 19

Tipe Data Tambahan, yang dimiliki oleh Borland C++, adalah :Unsigned digunakan bila data yang digunakan hanya data yang positifsaja.

TipeData

JumlahMemori

Jangkauan Nilai

Unsigned Integer 2 Byte 0 – 65535Unsigned Integer 2 Byte 0 – 65535

Unsigned Character 1 Byte 0 – 255

Unsigned Long Integer 4 Byte 0 – 4,294,967,295

[Kristanto:2009] pengertian deklarasi adalah memesan memori dan menentukan jenis data yang dapat disimpan di dalamnya.

Bentuk Umum:

Pada pendeklarasian variabel, daftar variabel dapat berupa sebuah variabel atau beberapa variabel yang dipisahkan dengan tanda koma.

Contoh:int jumlah;Float harga_per_satuan, total_harga;

[Kristanto:2009] untuk memberikan nilai ke suatu variabel yang telah

dideklarasikan, bentuk pernyataan yang digunakan adalah sebagai beriut:

nama_variabel = nilai;

Contoh berikut merupakan nilai 50 ke variabel jumlah dan 15,7 ke variabel

harga_per_satuan.

Jumlah=50;

harga_per_satuan=15.7;

Total_harga= jumlah * harga_per_satuan;Total_harga= jumlah * harga_per_satuan;

Contoh program:

#include <stdio.h>Main(){int jumlah;Float harga_per_satuan, harga_total;Jumlah=50;Harga_per_satuan=15.7;

harga_total= jumlah * harga_per_satuan;Printf(“Harga Total= %f \n “, harga_total);

}

[Kristanto:2009] konstanta menyatakan nilai numeris atau karakter yang tetap. Turbo

C++ mendukung empat kelas konstanta:

[Kristanto:2009] perintah ini digunakan untuk memasukan berbagai jenis data

kedalam program lewat keyboard dan dapat digunakan fungsi pustaka scanf, getch

maupun getche dan cin.

Bentuk Umum:Bentuk Umum:

Scanf(“string kontrol”, daftar argumen);

String kontrol dapat berupa:a. Penentu formatb. Karakter spasi putihc. Karakter bukan spasi putih

Contoh:

/*---------------------------------------------------------------*/

/*Program: Scanf.cpp */

/*---------------------------------------------------------------*/

#include <stdio.h>

Main()

{

int ilai, tugas;

printf(“Masukan sebuah nilai: “); scanf(“%d”,&nilai);

printf(“Masukan nilai tugas: “); scanf(“%d”,&tugas);

if (nilai>70 && tugas>=75)if (nilai>70 && tugas>=75)

printf(“Lulus \n”);

else

printf(“Tidak Lulus\n”);

}

Keterangan:Dari contoh diatas dapat dilihat bahwa untuk memasukan variabel nilai dan variabel tugaske dalam program menggunakan fungsi pustaka scanf dan semuanya itu di masukanmelalui keyboard

[Kristanto:2009] digunakan untuk membaca sebuah karakter tanpa diakhiri enter. Pada getch ini, karakter yang dimasukan tidak ditampilkan dilayar.

Contoh:

# include <stdio.h># include <conio.h>main( )main( ){char kar;clrscr( );printf("Masukan Sebuah Karakter Bebas = ");kar = getch( );printf("\nTadi Anda Memasukan karakter %c", kar);getch( );

}

[Kristanto:2009]Digunakan untuk membaca sebuah karakter tanpa diakhiri enter. Pada getche ini, karakter yang dimasukan akan ditampilkan dilayar.

Contoh:# include <stdio.h># include <conio.h>main( ){{char kar;clrscr( );

printf("Masukan Sebuah Karakter Bebas = ");kar = getche( );printf("\nTadi Anda Memasukan karakter %c", kar);getch ( );

}

Fungsi pustaka cin ini berpasangan fungsi pustaka cout. Dimana fungsinya adalah untuk memasukan nilai variabel ke dalam program melalui keyboard.

Contoh:# include <stdio.h># include <conio.h># include <iostream.h>main( ){{

int nilai1,nilai2, total;clrscr( );cout<<"Masukan Nilai 1 : ";cin>>nilai1;cout<<"Masukan Nilai 2 : ";cin>>nilai2;total=nilai1+nilai2;cout<<"Masukan Total Nilai : "<<total<<endl;getch( );

}

Digunakan untuk menampilkan hasil yang terformat dengan menggunakan format

spesification. Tabelnya adalah sebagai berikut:

TIPE DATAPenentu Format Untuk

printf( )Integer %dFloatingPointFloatingPoint

Bentuk Desimal %fBentuk Berpangkat %eBentuk Desimal dan Pangkat %g

Double Precision %lfCharacter %cString %sUnsigned Integer %uLong Integer %ldLong Unsigned Integer %luUnsigned Hexadecimal Integer %xUnsigned Octal Integer %o

Contoh:#include <stdio.h>#include <conio.h>#include<iostream.h>main( ){char nama =”dita”;int nilai = 100;int nilai = 100;clrscr( );printf(“hai %s, Kamu mendapatkan Nilai %i” , nama, nilai);

}

Fungsi ini hanya digunakan untuk menampilkan nilai string dan sudah

mengandung line feed/ Pindah baris otomatis.

Contoh:

/*-------------------------------------------------------------*/

/*Nama Program: puts.cpp */

/*-------------------------------------------------------------*//*-------------------------------------------------------------*/

#include <stdio.h>

Main()

{

char *nama;

nama=“Riani”;

puts(nama);

}

Fungsi ini untuk manampilkan hasil dapat digunakan fungsi pustaka putchar. Fungsi pustaka ini hanya digunakan untuk menampilkan nilai karakter dan tidak mengandung line feed.

Contoh:

#include <stdio.h>Main(){{

char a;a=‘B ‘;

putchar(a);putchar(‘\n’);putchar(‘-’);

}

[Kristanto:2009] putchar maupun puts untuk menampilkan hasil dapat digunakan

fungsi pustaka cout. Fungsi pustaka ini bentuknya agak sedikit berbeda dengan

bentuk pustaka output lainnya.

Perbedaannya terletak pada:

1. Praprosesor

Kalau fungsi pustaka printf, putchar maupun puts praprosesornyamenggunakan #include <stdio.h>, sedangkan fungsi pustakacoutpraprosesornyamenggunakan#include<iostream.h>

2. Komentar

3. Ganti Baris

praprosesornyamenggunakan#include<iostream.h>

Kalau fungsi pustaka printf, putchar maupun puts komentarnyamenggunakan simbol /* diakhiri */, sedangkan fungsi pustaka coutkomentarnya menggunakan simbol //

Kalau fungsi pustaka printf, putchar maupun puts ganti barismenggunakan \n, sedangkan fungsi pustaka cout ganti barismenggunakan simbol \n atau endl

1. Buatlah program untuk menghitung luas dan keliling suatu empat persegi panjang, dimana panjang dan lebar dimasukan melalui scanf????

2. Buatlah program untuk menghitung luas dan volume suatu balok, dimana panjang dan lebar serta tinggi dimasukan melalui scanf???scanf???

3. Dewi membeli buah jeruk sebanyak 9,5 kg. Harga per kg-nya adalah Rp 4.500, buatlah program untuk menghitung harga jeruk yang dibeli Dewi

[Kristanto:2009] Operator merupakan simbol atau kata yang dapat digunakan dalam

program untuk melakukan suatu operasi atau manipulasi, seperti menjumlahkan

dua buah nilai, memberikan nilai kesuatu variabel, membandingkan dua buah nilai

dan lain sebagainya.

Tanda operator dalam bahasa C++ dapat dikelompokan sebagai berikut:

1. Operator pengerjaan (assignment operators)1. Operator pengerjaan (assignment operators)

2. Operator aritmetika (arithmatic operators)

3. Operator peningkatan dan penurunan (increament and decrement operators)

4. Operator bitwise (bitwise operators)

5. Operator hubungan (relational operators)

6. Operator logika (logical operators)

7. Operator alamat (address operators)

8. Operator koma (comma operators)

9. Operator gabungan

Operator untuk operasi aritmatika yang tergolong sebagai operator binary adalah:

Operator Keterangan Contoh* Perkalian 4 * 5/ Pembagian 8 / 2

% Sisa Pembagian (mod) 5 % 2+ Penjumlahan 7 + 2+ Penjumlahan 7 + 2− Pengurangan 6 − 2

Operator yang tergolong sebagai operator Unary, adalah:

Operator Keterangan Contoh

+ Tanda Plus −4

− Tanda Minus +6

#include <stdio.h>

#include <conio.h>

#include <iostream.h>

main( )

{

int x,y, a=0, b=0, c = 0, d = 0;

clrscr( );

cout<<"Masukan Nilai A : "; cin>>x;

Contoh:

Bentuk penulisan ekspresi aritmatika dikaitkan dengan pernyataan pemberi nilai. Bentuk Umum :

• Variabel, dikenal dengansebutan LValue (Left Value)

• Ekspresi Aritmatika dikenaldengansebutanRValue(Right

cout<<"Masukan Nilai A : "; cin>>x;

cout<<"Masukan Nilai B : "; cin>>y;

a=x+y; c = x% y;

b=x-y; d = x * y;

printf(“Hasil Dari A= X + Y= %i \n” , a);

printf(“Hasil Dari B=X - Y= %i \n”,b)

cout<<" Hasil dari C = X % Y = "<<c<<endl;

cout<<" Hasil dari D = X * Y = "<<d<<endl;

getch( );

}

dengansebutanRValue(RightValue)

• Tanda “ = “, dikenal dengan

sebagai Operator Pemberi

Nilai (Assignment Operator).

Operator Keterangan

++ Penambahan

-- Pengurangan

Tabel Operator Penambah & Pengurang

A = A + 1

atau A = A - 1

A ++

atau

A--

Keterangan :1. Penambahan: menambahkan 1 ke nilai

variable, prefix (++A) atau postfix (A ++)2. Pengurangan: mengurangkan 1 ke nilai

variabel, prefix (--A) atau postfix (A --)

Contoh Penggunaan Notasi Didepan Variabel:

/* Penggunaan Notasi Didepan Variabel*/#include <stdio.h>#include <conio.h>

main( ){int a = 10, b = 5;clrscr( );

/* Penggunaan Notasi Dibelakang Variabel*/#include<stdio.h>#include<conio.h>#include<iostream.h>main( ){int a = 10, b = 5;

Contoh Penggunaan Notasi Dibelakang Variabel:

clrscr( );

printf("Nilai A = %d", a);printf("\nNilai ++A = %d", ++a);printf("\nNilai B = %d", b);printf("\nNilai --B = %d", --b);getch( );

}

int a = 10, b = 5;clrscr( );

printf("Nilai A = %d", a);printf("\nNilai ++A = %d", a++);printf("\nNilai A = %d", a);printf("\nNilai B = %d", b);printf("\nNilai --B = %d", b--);printf("\nNilai B = %d", b);getch( );

}

Operator Relasi digunakan untuk membandingkan dua buah nilai. Hasil

perbandingan operator ini menghasilkan nilai numerik 1 (True) atau 0 (False).

Operator Keterangan

== Sama Dengan ( bukan pemberi nilai )

!= TidakSamadengan!= TidakSamadengan

> Lebih Dari

< Kurang Dari

>= Lebih Dari sama dengan

<= Kurang Dari sama dengan

#include <stdio.h>#include <conio.h>#include <iostream.h>main( ){

float a, b, c, d, e, f, x, y;clrscr( );cout<<"Masukan Nilai X = ";

Contoh:

cout<<endl;cout<<"Hasil dari "<<x<<" == <<y<<" = "<<a<<endl;cout<<"Hasil dari "<<x<<" != <<y<<" = "<<b<<endl;cout<<"Hasil dari "<<x<<" > "<<y<<" = "<<c<<endl;cout<<"Hasil dari "<<x<<" < cout<<"Masukan Nilai X = ";

cin>>x;cout<<"Masukan Nilai Y = "; cin>>y;a = x = = y;b = x != y;c = x > y;d = x < y;e = x >= y;f = x <= y;

cout<<"Hasil dari "<<x<<" < "<<y<<" = "<<d<<endl;cout<<"Hasil dari "<<x<<" >= "<<y<<" = "<<e<<endl;cout<<"Hasil dari "<<x<<" <= "<<y<<" = "<<f<<endl;getch( );}

Digunakan untuk mengekspresikan satu atau lebih data atau ekspresi logika(boolean), menghasilkan data logika (boolean) baru.

Operator Keterangan

&& Operator Logika AND

|| OperatorLogikaOR|| OperatorLogikaOR

! Operator Logika NOT

Operator logika AND digunakan untuk menghubungkan dua ataulebihekspresi relasi, akan dianggap BENAR, bila semua ekspresi relasi yangdihubungkan bernilai BENAR.

Operator logika OR digunakan untuk menghubungkan dua atau lebihekspresi relasi, akan dianggap BENAR, bila salah satu ekspresi relasiyang dihubungkan bernilai BENAR dan bila semua ekspresi relasi yangdihubungkan bernilai SALAH, maka akan bernilai SALAH.

Operator logika NOT akan memberikan nilai kebalikkan dari ekspresi yangdisebutkan. Jika nilai yang disebutkan bernilai BENAR makaakanmenghasilkan nilai SALAH, begitu pula sebaliknya.

A B Not A Not B

T F F TT F F T

F T T F

T F F T

Operator logika Xor akan menghasilkan nilai True jika ekspresi di sebelahkiri Xor berbeda dengan ekspresi di sebelah kanannya. Jadi,operator logikaXor dapat diartikan "jika beda" akan bernilai True

A B A Xor B

T T F

F F FF F F

T F T

String merupakan bentuk data yang biasa dipakai dalam pemrogramanguna menampung dan memanipulasi data teks[Kristanto:2009].Contoh program string:

/*program string*/#include <stdio.h>main(){{

char nama[20];printf(“Masukan Nama

Anda:”);gets(nama);pringt(“Nama Anda Adalah: %s

\n”,nama);}

[Kristanto:2009] fungsi ini dipakai untuk menyalin string asal ke variabel string

tujuan, variabel tujuan harus memiliki ukuran yang dapat menampung seluruh

karakter string asal.

Bentuk Umum:

strcpy(tujuan,asal);

{char huruf[20];strcpy(tujuan,asal);

Contoh:

#include <stdio.h>#include <conio.h>#include <string.h>#include <iostream.h>

main( )

char huruf[20];char pindah[20];clrscr( );cout<<"Masukkan Sembarang Kata = ";gets(huruf);/* Proses */strcpy(pindah, huruf);cout<<"Pemindahannya = "<<pindah;getch( );}

[Kristanto:2009] fungsi ini dipakai untuk menghitung jumlah karakter

argumennya.

Bentuk Umum:

strlen(str);

Contoh:

#include <stdio.h> cout<<"MasukkanSembarangKata= #include <stdio.h>

#include <conio.h>

#include <string.h>

#include <iostream.h>

main( )

{

char huruf[20];

char pindah[20];

clrscr( );

cout<<"MasukkanSembarangKata= ";gets(huruf);cout<<"Panjang Kata Yang Diinputkan= ";cout<<strlen(huruf);getch( );}

[Kristanto:2009] fungsi ini dipakai untuk membandingkan string str1 dengan string

str2. Hasil dari fungsi ini bertipe int berupa nilai negatif (str1 kurang dari str2),

nol(str1=str2), positif(str1 lebih dari str2).

Bentuk Umum:

var_int = strcmp(str1, str2);

Contoh: cout<<"Hasil Perbandingan "<<a1<<" dan"<<a2<<"->";

#include <string.h>#include <iostream.h>#include <conio.h>main( ){char a1[ ] = "BSI";char a2[ ] = "Bsi";char b1[ ] = "BSI";clrscr( );

"<<a2<<"->";cout<<strcmp(a1,a2)<<endl;cout<<"Hasil Perbandingan "<<a2<<" dan"<<a2<<"->";cout<<strcmp(a2,a1) <<endl;cout<<"Hasil Perbandingan "<<a1<<" dan"<<b1<<"->";cout<<strcmp(a1,b1) <<endl;getch( );}

1. Buatlah Source Code dari tampilan dibawah ini:

2. Buatlah Source Code dari tampilan dibawah ini, dimana nilai “m”

ditentukan sendiri oleh mahasiswa

3. Buatlah program untuk menghitung panjang kata berikut ini:Akademi Manajemen Informatika dan Komputer Bina SaranaInformatika

4. Bulatlah program untuk menggabungkan dua buah stringKalimat1 = ManajemenKalimat2 = Informatika

Menjadi seperti berikut:ManajemenInformatika

[Kristanto:2009] perintah if berguna untuk memilih satu dari 2 atau lebihalternatif jawaban yang tersedia. Jika perintah if tersebut terdiri dari 2 ataulebih pernyataan.

Bentuk Umum:if (kondisi)

{ pernyataan }

Contoh:discount=0;

If(nilai_beli>10000)

{ discount=(10/100)*nilai_beli;

bonus=“Payung”

}

Arti dari source code disamping adalah jika nilai pembelian lebih dari 10000 maka akan mendapat discount 10%. Selain itu juga akan mendapatkan bonus payung.

Bentuk Umum:

if(kondisi)

pernyataan1

else

#include <stdio.h>

Main()

{

int nilai,tugas;

printf(“Masukan Sebuah Nilai: “);scanf(“%d”,&nilai);

pernyataan2printf(“Masukan Sebuah Nilai: “);scanf(“%d”,&nilai);

printf(“Masukan Nilai Tugas: “); scanf(“%d”,&tugas);

if(nilai>70)

printf(“Lulus \n”);

else

printf(“Tidak Lulus \n”);

getch();

}

Bentuk Umum:

if (kondisi){

perintah-1;...

}else

{

#include <stdio.h>

#include <conio.h>

#include <iostream.h>

main( ){perintah-2;

...}

main( )

{

char gol, jab[10];

long gapok=0;

clrscr( );

cout<<endl<<" Data Jabatan"<<endl

<<" = = = = = = = = = = = = = = = ="<<endl;

cout<<" Masukan Golongan [1/2]: ";cin>>gol;

if(gol=='1'){ strcpy(jab,"Direktur");

gapok=5000000;}

else if(gol=='2'){

strcpy(jab,"Manajer");strcpy(jab,"Manajer");gapok=4000000;

}cout<<" Jabatan = "<<jab<<endlcout<<" Gaji Pokok =

"<<gapok<<endl;getch ( );

}

Perintah if dalam if sering disebut nested-if. Perintah ini mempunyai bentuk

umum sebagai berikut:

Else{

if(kondisi2){

pernyataan1;}

If(kondisi1){

if(kondisi2)

{pernyataan1; }

else{pernyataan2;

}}

pernyataan1;}else{pernyataan2;

}}

#include<stdio.h>#include<conio.h>#include<iostream.h>

main( ){

char kode,ukuran,merk[15];long harga=0;

clrscr( );

else if (kode=='2'){strcpy(merk," Adidas");if (ukuran=='S' || ukuran == 's')harga=65000;elseharga=75000;}elsecout<<”Salah Kode Baju”<<endl;clrscr( );

cout<<"Kode Baju : ";cin>>kode;cout<<"Ukuran : ";cin>>ukuran;

if (kode=='1'){strcpy(merk,"H & R");if (ukuran=='S' || ukuran =='s')harga=45000;elseharga=60000;}

cout<<”Salah Kode Baju”<<endl;

cout<<"------------------------"<<endl;cout<<"Merk Baju : "<<merk<<endl;cout<<"Harga Baju : "<<harga<<endl;getch();

}

1. Buatlah program dengan tampilan sebagai berikut:

Input:

Output:

Pendapatan Jasa Komisi

<=Rp 200.000 Rp 10.000 10% * Pendapatan

<=Rp 500.000 Rp 20.000 15% * Pendapatan

>Rp 500.000 Rp 30.000 20% * Pendapatan

total=pend+komisi+jasa;

2. Buatlah program dengan tampilan sebagai berikut:

Input:

Output:

Kode Pesawat

Nama Pesawat

Kelas Pesawat

Harga Tiket Pesawat

MPT Merpati 1 Rp 1.500.000

2 Rp 900.000

3 Rp 500.000

GRD Garuda 1 Rp 1.200.000

2 Rp 800.0002 Rp 800.000

3 Rp 400.000

BTV Batavia 1 Rp 1.000.000

2 Rp 700.000

3 Rp 300.000

total Bayar=harga*jumlah;

[Kristanto:2009] perintah ini merupakan pernyataan yang dirancang untukmenangani pengambilan keputusan yang melibatkan sejumlahpilihanalternatif yang diantaranya untuk menggantikan pernyataan if bertingkat.Bentuk Umum:

switch (ekspresi integer atau karakter ){

case konstanta-1 :… perintah;… perintah;… perintah;break;

case konstanta-2 :… perintah;… perintah;break;

default :… perintah;… perintah;

}

#include <stdio.h>#include <conio.h>#include <iostream.h>main(){char kode,lagi;atas:clrscr();cout<<"MASUKAN KODE BARANG [A..C]: ";

case 'B':case 'b':

cout<<"Alat Elektronik";break;

case 'C':case 'c':

cout<<"Alat Masak";break;

default:[A..C]: ";kode = getche();cout<<'\n';switch (kode)

{case 'A':

case 'a':cout<<"Alat Olah Raga";

break;

default:cout<<"Anda Salah

Memasukan Kode";}

cout<<'\n';cout<<"\nIngin Pilih Lagi [Y/T]: ";lagi = getche();if(lagi == 'Y' || lagi =='y')

goto atas;getch();}

1. Buatlah Program dengan tampilan sebagai berikut

Masukkan Kode Buku [1|2|3] : <input>Jumlah Pembelian Buku Anda : <input>

**** TOKO BUKU HALIFI***JL. Keadilan No. 16

---------------------------------------------------------------------------Nama Buku : <nama buku>Nama Buku : <nama buku>Harga Buku : <harga buku>Potongan : <potongan>Bonus : <bonus>Total Bayar : <total bayar>PPN : <ppn>---------------------------------------------------------------------------

**** T E R I M A K A S I H***Apa mau Input data lagi ????

Ketentuan Soal :

1. Untuk BUKU :• Jika kode buku 1 maka nama buku = “ Sukses Belajar Borland

C++”, harga = 50000.• Jika Kode buku 2 maka nama buku = ” Kunci Pribadi Yang

Sukses ”, harga = 35000.• Jika kode buku 3 nama buku = ” Mencari Mutiara Di Dasar Hati ”, • Jika kode buku 3 nama buku = ” Mencari Mutiara Di Dasar Hati ”,

harga = 45000.2. Akan Mendapat potongan 10% jika Jumlah pembelian lebih dari 5

buku, dan mendapat bonus ” Note Book”, tetapi jika pembelian kurang dari 5 maka tidak dapat potongan serta akan tampil pesan ”Maaf Tidak Dapat Bonus”.

3. Semua Pembelian akan dikenakan PPN Sebesar 10% dari Total Pembelian.

4. Gunakan Switch-Case dan IF-else.

2. Buatlah Program dengan tampilan sebagai berikut

DAFTAR PEMESANAN TIKET KERETA

*********************************************

Nama Pemesan : <input>

Nama Kereta : <output>

Kelas Kereta : <output>

Harga Per Tiket : <output>

Jumlah Pemesanan Tiket : <input>Jumlah Pemesanan Tiket : <input>

Biaya Tambahan Fasilitas : <output>

Pembayaran : <output>

Discount : <output>

*********************************************

Total Pembayaran : <output>

Uang Bayar : <input>

Uang Kembali : <output>

*********************************************

Mau Input Data Lagi [Y / T] ?? : <input>

3. Buatlah Program dengan tampilan sebagai berikut

Layar Input

PENGINAPAN PASTI BETAH

**************************

Nama Penyewa : <input>

Kode Kamar [A/B/M] : <input>

Layar Keluaran

PENGINAPAN PASTI BETAH

Nama Penyewa : <output>

Kode Kamar [A/B/M] : <output>

lama Menginap : <input>

******************************

Tipe Kamar : <output>

lama Menginap : <input> hari

Souvenir : <output>

Biaya Sewa : <output>

Total Biaya Sewa : <output>

******************************

Uang Bayar : <input>

Uang Kembali : <output>

Ingin Input Lagi [Y/T] = <input>

Kode Kamar Tipe Kamar Harga Sewa Per Malam

A Anggrek 300000B Bougenville 250000M Mawar 200000

•Kode kamar dapat diinput dengan huruf besar ataupun kecil•Jika salah memasukan kode kamar maka akan muncul pesan” Kode kamar

yangandamasukansalah”, ”Ingin input lagi [ Y / T ] ?”yangandamasukansalah”, ”Ingin input lagi [ Y / T ] ?”Pilih ’Y’ berarti mulai menginput lagi dari awal, Pilih ’T’ b erarti keluardari program

•Untuk penyewaan kamar lebih dari atau sama dengan 1 minggu maka akanmendapat souvenir ”Payung Cantik”, selain itu tidak dapat souvenir

•Semua biaya sewa penginapan ditambah dengan biaya administrasi sebesar200000

•Pada akhir tampilan terdapat pesan“Mau Input Data Lagi [Y / T] ??”Pilih ’Y’ berarti mulai menginput lagi dari awal, Pilih ’T’ b erarti keluardari program

[Kristanto:2009] proses looping yang menggunakan perhitungan (counter)

yang sudah pasti (misalnya variabel k=1,2,...,n; j=m, m-1,...,5; dan sebagainya)

dapat dibuat menggunakan pernyataan for.

Bentuk Umum:

for ( inisialisasi; syarat pengulangan;pengubah nilai pencacah ){

pernyataan / perintah;pernyataan / perintah;pernyataan / perintah;pernyataan / perintah;

}

Kegunaan dari masing-masing argumenfor diatas adalah :• Inisialisasi; merupakan bagian untuk memberikan nilai awal untuk

variabel-variabel tertentu.• Syarat Pengulangan; memegang kontrol terhadap pengulangan,

karena bagian ini yang akan menentukan suatu perulanganditeruskan atau dihentikan.

• Pengubah Nilai Pencacah; mengatur kenaikan atau penurunannilaipencacah.

{Contoh:

/* --------------------------- *//* Program for - bilangan naik *//* --------------------------- */#include<stdio.h>#include<conio.h>#include<iostream.h>main( )

{int a;clrscr( );for(a = 1; a <= 10; ++a)cout>>a;getch( );

}

Pernyataaan Nestedfor adalah suatu perulangan for didalam perulangan foryang lainnya. Bentuk umum pernyataanNested for sebagai berikut :

for ( inisialisasi; syarat pengulangan; pengubah nilai pencacah )

{

for ( inisialisasi; syarat pengulangan; pengubah nilai pencacah)

{

pernyataan / perintah;

}}

}

#include<stdio.h>#include<conio.h>main( ){

int a, b;clrscr( );for(a = 1; a <= 5; a++){

printf("\n");for(b = a; b <= 5; b++)printf(" %d ",a);

}getch();}

Pernyataan goto merupakan instruksi untuk mengarahkan eksekusi program ke-pernyataan yang diawali dengan suatu label. Label merupakan suatu pengenal (identifier) yang diikuti dengan tanda titik dua ( : ). Bentuk pemakaian goto sebagai berikut:Contoh:

goto label;

#include<iostream.h>#include<stdio.h>

cout>>"Masukkan Bilangan = ";cin<<a;#include<stdio.h>

#include<conio.h>main( ){

int a, b;char lagi;

atas:clrscr( );

cin<<a;b = a % 2;printf("Nilai %d %%2 adalah = %d",a, b);printf("\n\nIngin Hitung Lagi [Y/T] : ");lagi = getche() ;if (lagi == 'Y' || lagi == 'y')

goto atas;getch( );

}

Pernyataan perulanganwhile merupakan instruksi perulangan yangmirip dengan perulanganfor. Bentuk perulanganwhile dikendalikanoleh syarat tertentu, yaitu perulangan akan terus dilaksanakan selamasyarat tersebut terpenuhi.Bentuk umum perulanganwhile, sebagai berikut:

while ( syarat )

Pernyataan / Pernyataan / perintah ;

Bentuk umum perulangan while, dengan lebih dari perintah / pernyataan,

sebagai berikut: while ( syarat )

{

Pernyataan / perintah ;

Pernyataan / perintah ;

}

#include <stdio.h>#include <conio.h>main( ){

int bil=1;clrscr( );while(bil<=10){{

printf(" %d ",bil);++bil;

}getch( );

}

Pernyataan perulangando - while merupakan bentuk perulangan yangmelaksanakan perulangan terlebih dahulu dan pengujian perulangandilakukan dibelakang.Bentuk umum perulangando - while, sebagai berikut :

do

pernyataan / perintah ;

while ( syarat );while ( syarat );

Bentuk umum perulangan do - while, dengan lebih dari perintah / pernyataan, sebagai berikut:

do{

Pernyataan / perintah ;Pernyataan / perintah ;

} while ( syarat );

#include <stdio.h>#include <conio.h>main( ){

int bil=2;clrscr( );

do{

printf(" %d ",bil);printf(" %d ",bil);bil+=2;

}while(bil<=10);

getch( );}

1. Bulatlah program untuk menghitung 10 deret bilangan genap dengan

hasilnya :

2 + 4 + 6 + 8 + 10 + 12 + 14 + 16 + 18 + 20 = 110

2. Bulatlah program untuk menghitung penjumlahan deret bilangan

genap membentuk segitiga siku dengan hasilnya :

2 = 2

2 + 4 = 62 + 4 = 6

2 + 4 + 6 = 12

2 + 4 + 6 + 8 = 20

2 + 4 + 6 + 8 + 10 = 30

3. Bulatlah program untuk menghitung perkalian deret bilangan ganjil

membentuk segitiga siku dengan hasilnya :

1 = 1

1 * 3 = 3

1 * 3 * 5 = 15

1 * 3 * 5 * 7 = 105

1 * 3 * 5 * 7 * 9 = 9451 * 3 * 5 * 7 * 9 = 945

Variabel Larik atau lebih dikenal dengan ARRAY

adalah Tipe terstruktur yang terdiri dari sejumlah

komponen-komponen yang mempunyai tipe sama.

Suatu Array mempunyai jumlah komponen yang

banyaknya tetap. Banyaknya komponen dalam suatu larik

ditunjukan oleh suatu indeks untuk membedakan variabelditunjukan oleh suatu indeks untuk membedakan variabel

yang satu dengan variabel yang lainnya

Variabel array dalam Borland C++, dapat

digolongkan menjadi dua buah dimensi:

• Array Berdimensi Satu.

• Array Berdimensi Dua

Array Dimensi 1

Bentuk Umum pendeklarasian array

Inisialisasi / pemberian nilai awal

array dimensi 1

Dan pengaksesan pemanggilan datanya bisa

menggunakan/memanggil subindeksnya

Contoh programnya (hal.91)

Contoh penggunaan array(lanjutan) hal 92

Proses Looping input variabel array :

7/23/2013

Proses output judul kolom :

Proses Looping output variabel array :

Array Dimensi 2

Bentuk Umum pendeklarasian array

Array dimensi dua tersusun dalam bentuk baris dan kolom,

dimana indeks pertama menunjukan baris dan indeks kedua

menunjukan kolom. Array dimensi dua dapat digunakan

seperti pendatan penjualan, pendataan nilai dan lain

sebagainya.

Bentuk Umum pendeklarasian array

Contoh penulisan array dimensi 2 :

Inisialisasi Array Dimensi 2 (hal 94)

Contoh penggunaan array dimensi 2

7/23/2013

Latihannya :

kerjakan latihan hal 100 no. 1

POINTER

Merupakan sebuah variabel yang berisialamat dari variabel lain. Suatu pointerdimaksudkan untuk menunjukan ke suatualamat memori sehingga alamat dari suatuvariabel dapat diketahui dengan mudahvariabel dapat diketahui dengan mudah

• Operator Pointer

Terdapat dua macam operator pointer yang

disediakan oleh Borland C++:

1. Operator dereference ( & )

2. Operator reference ( * )

Operator dereference ( & )

• Operator ini biasa disebut dengan “address of” atau

operator alamat. Dengan menggunakan operator

dereference(&) ini, suatu variabel akan menghasilkan

alamat lokasi memori.

Operator reference ( * )

• Operator ini biasa disebut dengan “value pointedby”. Dengan menggunakan operator reference (*)ini, menghasilkan nilai yang berada pada suatualamat memori

Penggunaan Pointer

• Dapat digunakan untuk mendeklarasikan

variabel bertipe data string tanpa harus

dideklarasikan batasan karakternya.

• Dapat digunakan dalam penggunaan FUNGSI• Dapat digunakan dalam penggunaan FUNGSI

yaitu saat pemanggilan secara nilai dan

refernsi

• Contoh listing dapat di lihat di bab 7 Pointer

halaman 103 - 110

MACRO• Preprocessor Directives

Preprocessor directive merupakan suatu perintah yangtermasuk kedalam program, tetapi bukanlah instruksidari program itu sendiri, tetapi untuk preprocessor

– #define

– #include– #include

– #if #endif

– #if #else #endif

– #elif

– #undef

– #ifdef #ifndef

Lihat penjelasan di modul C++ halaman 111-116

Pembuatan File Header

• File Header adalah suatu file dengan akhiran .h

• File ini sebenarnya berisikan deklarasi fungsi dandefinisi konstanta. Selain file-file header standar yangdisediakan oleh C++, kita dapat juga membuat fileheader sediri, dengan cara yang sama seperti membuatdisediakan oleh C++, kita dapat juga membuat fileheader sediri, dengan cara yang sama seperti membuatfile editor. Yang harus diperhatikan pada saatmenyimpan file header yang telah dibuat harusdigunakan akhiran .h

• Contoh listing dapat di lihat di bab 8 Macro halaman117 - 118

Fungsi (Function) merupakan blok dari kode yang

dirancang untuk melaksanakan tugas khusus.

Kegunaan dari fungsi ini adalah untuk:

• Mengurangi pengulangan penulisan program yang• Mengurangi pengulangan penulisan program yang

berulangan atau sama.

• Program menjadi lebih terstruktur, sehingga mudah

dipahami dan dapat lebih dikembangkan

Pemanggilan Fungsi dapat berulang-ulang dengan cara

memanggil nama fungsinya.

• Fungsi dapat dibedakan menjadi 2.

* Fungsi sederhana(tanpa parameter)

* Fungsi Berparameter

Contoh Fungsi Sederhana :

Prototype Fungsi adalah mejelaskan kepada

kompiler tentang tipe data fungsi, jumlah

parameter, tipe data dari masing-masing parameter.

Parameter Fungsiadalah suatu pendefinisian nilai-nilai dari objek-objekyang dideklarasikan pada bagian argumen di fungsi.Nilai-nilai pada objek-objek tersebut didapat darivariabel-variabel yang barada pada program utama

Yang Perlu diperhatikan dalam pembuatan Fungsi berparameter :

1. Jumlah Parameter aktual dan parameter formal harus sama

2. Tipe data yang digunakan oleh parameter harus sama

3. Tipe pemanggilan fungsi

Pemanggilan Fungsi Berparameter

1. Pemanggilan Secara Nilai

2. Pemanggilan Secara Reference

3. Pemanggilan Return3. Pemanggilan Return

Pemanggilan Secara Nilai(by Value)pemanggilan fungsi dengan nilai akan menyebabkannilai parameter aktual tidak akan berubah, walaupunnilai parameter formalnya berubah.

Pemanggilan Secara Referencepemanggilan fungsi dengan nilai akan menyebabkan nilai parameter

aktual berubah, dengan cara merubah nilai parameter formalnya. Untuk

pemanggilan by reference memerlukan sebuah pointer ( * ) didepan

nama parameter formalnya, dan ( & ) untuk nama parameter aktualnya.

Pemanggilan Secara ReturnDilakukan untuk melakukan pengiriman suatu nilai atau nilai dari suatu fungsi

kepada fungsi yang lain yang memanggilnya.

Buatlah rancangan perhitungan luas segitiga dengan

tampilan seperti berikut :

Contoh Penggunaan Fungsi

Dimana perhitungan luas nya dilakukan di dalam fungsi

luas_segitiga dan penggunaan fungsi garis

Contoh Penggunaan FungsiPenjelasannya : input nilai

alas ( a) dan tinggi ( t ), lalu

untuk proses hasil dilakukan

pemanggilan fungsi segitiga

dan mengirimkan nilai a dan

t kedalam fungsi segitiga,

dimana ( a ) sebagai alas dandimana ( a ) sebagai alas dan

( t ) sebagai tinggi. Lalu

didalam fungsi segitiga di

proses hitung luas

segitiganya. Lalu dengan

fungsi return nilainya di

kirim kembali sebagai hasil.

Struktur digunakan untuk mengelompokan sejumlah data yang

mempunyai tipe data yang berbeda. Variabel-variabel yang membentuk

sebuah struktur dinamakan elemen struktur. Penggunaan Struktur

menggunakan bentuk umum :nama_structurenya.nama_variabelnya

Bentuk Umum Struktur

Contoh

1a

Contoh

1b

Perbedaan dari 2 contoh diatas adalah

perbedaan penggunaan dari bentuk umum.

Contoh 1a menggunakan bentuk umum yang

ke 2, sehingga penggunaan nama struktur

bisa langsung digunakan tanpa harus

dideklarasikan nama variabel lain. sedangkandideklarasikan nama variabel lain. sedangkan

contoh 1b, menggunakan bentuk umum yang

ke 1, sehingga penggunaannya harus

dideklarasikan lagi oleh nama variabel lain

yang menggunakan tipe dari nama struktur

itu sendiri.

Menggabungkan struktur dengan

array dan function

Catatan : jml_index array dideklarasikan bisa di nama struktur

atau di elemen struktur. Perbedaannya adalah jika di letakkan

di nama struktur maka ketika digunakan yang punya pelaku

perulangan adalah nama struktur. Sedangkan jika diletakkan

di elemen struktur maka ketika digunakan yang punya pelaku

perulangan adalah elemen strukturnya

Contoh 2

Catatan : Penggunaan Struktur dengan array, dapat

dilakukan dengan mengelompokkan variabel-variabel

array kedalam nama struktur. Sehingga bisa terlihat

bedanya variabel array dengan variabel biasa.

LATIHAN(Struktur,Fungsi, Array dan Seleksi

Kondisi ) Ketentuan Soal .

BENTUK TAMPILAN OUTPUT

OOP adalah pemrograman yang

menitikberatkan kepada objek-objek untuk

menyelesaikan tugas atau proses dari program

tersebut. Sedangkan penitik beratkan ini

dimaksudkan adanya interaksi pengirimandimaksudkan adanya interaksi pengiriman

nilai, pesan atau pernyataan antar objek.

Kemudian objek yang merespon hasil dari

interaksi tersebut akan membentuk suatu

tindakan atau aksi

Pembuatan project akhir untuk nilai

tugas PRA UAS dapat disesuaikan

temanya oleh masing-masing

Instruktur.

Sebagai contoh di slide berikutnya

pembuatan project dengan tema

penyewaan pakaian adat

• Project yang akan di buat dengan penggunaan

structure, label, seleksi kondisi (nested if),

sintaks input dan output

• Bertujuan untuk latihan mahasiswa

menggunakan sintaks yang di bahas untukmenggunakan sintaks yang di bahas untuk

ujian UAS.

Bentuk Tampilan Awal

Bentuk Tampilan Input

Bentuk Tampilan Output