nama.docx

Post on 25-Apr-2015

19 Views

Category:

Documents

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Nama : Agus Gede Adi PrayogaNIM : 1104505095Kelompok : XX

PRAKTIKUM ALGORITMA DAN PEMROGRAMAN

MODUL IIPEMROGRAMAN MODULAR

2.1 Tujuan1. Memahami dasar-dasar pemrograman C++. 2. Memahami konsep variabel lokal dan variabel global dalam pemrograman.

3. Memahami konsep fungsi dan prosedur dalam pemrograman modular.

4. Memahami konsep passing by value dan passing by reference dalam pemrograman dengan fungsi maupun prosedur.

5. Memahami pengaplikasian pemrograman modular pada C++.

2.2 Tugas Pendahuluan2.2.1 Jelaskan tentang konsep variabel lokal dan variabel global serta

perbedaannya.2.2.2 Jelaskan tentang konsep fungsi dan prosedur, perbedaan keduanya, serta

aplikasinya dalam pemrograman dengan C++. 2.2.3 Jelaskan tentang konsep passing by value dan passing by reference,

perbedaannya, serta aplikasinya dalam pemrograman dengan Bahasa C++.2.2.4 Buatlah flowchart dan pseudocode (notasi algoritma) dari program pada soal

di bawah ini, lalu lakukan trace terhadap flowchart yang anda buat sehingga yakin bahwa flowchart tersebut sudah benar.

2.3 Jawaban2.3.1 Langkah-langkah dalam instalasi kompiler C++ dengan menggunakan

Borland Builder versi 6.0 di komputer.

Double klik master program Borland Builder versi 6. Setelah muncul jendela extracting archive, pilih Browse untuk meletakkan di direktori mana file yang telah di extract akan diletakkan kemudian klik Install.

File Borland akan diextract.

Setelah proses mengextract data selesai. Cari file yang telah diextract di direktori penyimpanan, lalu cari folder Borland C++ Builder Version 6 kemudian doble klik icon setup. Setup proses penginstalan.

Klik Next untuk tampilan jendela berikut.

Pada tampilan jendela berikut, isi Serial Number dan Authorization Key lalu klik Next.

Pilih I accept the terms in license agreement, kemudian klik Next.

Klik Next untuk tampilan jendela berikut.

Pada tampilan jendela berikut akan diminta untuk jenis instalasi yang diinginkan, untuk instalan secara umun dan dipakai oleh semua user pilih Typical. Klik Next.

Jika ingin menggunakan VisiBroker/CORBA support, klik Next.

Klik Office 2000 jika computer terinstal MS Office 2000 ke atas, lalu klik Next.

Jika ingin menggunakan jenis database Interbase Client pilih fitur ini, kemudian klik Next.

Pilih I agree with the terms of the license. Klik Next.

Untuk lebih mudah, biarkan tujuan tempat-tempat instalasi seperti semula (default), klik Next.

Biarkan pilihan default, klik Next.

Klik Instal, untuk memulai proses instalasi.

Borland akan melakukan proses penginstalan.

Klik Finish.

Contoh program sederhana perkalian dua bilangan.

Pseudocode

Kamus Lokal :x : floaty : floathasil : float

Algoritma :READ ← xREAD ← yhasil=x*yPRINT hasil

Trace

Input :x = 4y = 9

Proses :hasil = 4*9 = 36

Output :36

Flowchart

S T A R T

E N D

x, y

hasil = x*y

hasil

1.3.2 Tipe data adalah himpunan nilai yang dapat dimiliki oleh sebuah data. Tipe data menentukan apakah sebuah nilai dapat dimiliki sebuah data atau tidak, serta operasi apa yang dapat dilakukan pada data tersebut.Tipe data dasar adalah tipe data yang dapat langsung digunakan. Secara umum terdapat 2 tipe data dasar, yaitu numerik dan kategorik. Tipe data numerik terdiri atas angka/ kumpulan angka serta dapat mengalami operasi perhitungan, sedangkan tipe data kategorik dapat berupa angka maupun huruf namun tidak dapat mengalami operasi perhitungan.

Berikut beberapa tipe data dasar C++ :

Tipe Data KeteranganUkuran memori

Jangkauan

CharAbjad/karakter atau untuk bilangan bulat kecil

1 bytesigned: -128 to 127 unsigned: 0 to 255

Short intBilangan bulat dengan jangkauan pendek 2 byte

signed: -32768 to 32767unsigned: 0 to 65535

Int

Bilangan bulat

4 byte

signed: -2147483648 to 2147483647unsigned: 0 to 4294967295

Long int

Integer dengan jangkauan panjang

4 byte

signed: -2147483648 to 2147483647unsigned: 0 to 4294967295

BoolBoolean, dapat bernilai benar atau salah (true or false)

i byte1 (true) atau 0 (false)

FloatAngka dengan titik mengambang (bilangan cacah)

4 byte3.4e +/- 38 (7 digit)

DoubleBilangan cacah dengan ketelitian ganda

8 byte1.7e +/- 308 (15 digits)

Long doubleBilangan cacah dengan ketelitian ganda panjang

8 byte1.7e +/- 308 (15 digits)

Wchar_tKarakter lebar, biasa dipakai untuk Unicode karakter

2 byte1 karakter lebar

1.3.2.1 Tipe integer/ bilangan bulatInteger adalah tipe data dasar berupa bilangan yang tidak

mengandung pecahan desimal. Tipe data ini digunakan untuk data-data bilangan yang tidak mengandung angka dibelakang koma.

Tipe data yang termasuk tipe data integer yaitu tipe data short int, int dan long int.

1.3.2.2 Tipe real/ bilangan riilReal adalah tipe data dasar berupa bilangan yang memiliki pecahan

desimal. Tipe data ini digunakan untuk perhitungan yang melibatkan bilangan pecahan, seperti perhitungan kosinus, akar persamaan, dan sebagainya.

Tipe data yang termasuk tipe data real yaitu tipe data float, double, dan long double.

1.3.2.3 Tipe char/ karakterChar adalah tipe data dasar yang terdiri atas satu buah angka, huruf,

tanda baca atau karakter khusus. Untuk menyimpan sebuah karakter, diperlukan 1 byte atau 8 bit tempat didalam memori.

1.3.2.4 Tipe stringString adalah tipe data dasar yang berupa kumpulan karakter dengan

panjang tertentu. Meskipun berupa kumpulan karakter, karena tipe data string sering digunakan dalam pemrograman, string dianggap sebagai tipe data dasar. Untuk penyimpanan string didalam memori, dibutuhkan 1 byte untuk tiap karakternya.

1.3.2.5 Tipe Boolean/ logikaTipe data ini digunakan untuk data-data yang hanya mengandung

nilai logika (Boolean). Nilai logika itu sendiri hanya terdiri dari nilai benar (direpresentasikan dengan nilai 1) dan salah (direpresentasikan dengan nilai 0). Dalam pemrograman, nilai ini umumnya lebih dikenal dengan nilai true (benar) dan false (salah).

1.3.3 Struktur kontrol pada bahasa pemrograman C++ sangat diperlukan untuk membuat program dengan kondisi bersyarat atau proses pemilihan sesuai dengan kondisi yang digunakan. Untuk itu, bahasa pemrograman C++ menyediakan beberapa struktur kontrol, yaitu :

1.3.3.1 Statement IfPernyataan If akan menentukan sebuah pernyataan (blok kode) yang

akan eksekusi jika dan hanya jika bernilai benar (true). Perintah IF digunakan untuk menyatakan pernyataan kondisional.

Sintaks dapat ditulis sebagai berikut:

If (kondisi)

statement;

Flowchart

Salah

Benar

contoh penulisan programnya:

1.3.3.2 Statement If.elseApabila ingin mengeksekusi beberapa pernyataan dengan kondisi

true dan pernyataan yang lain dengan kondisi false.

Sintaksnya dapat ditulis sebagai berikut:

If (kondisi) {

Statemen1;

} else {

statemen2;

kondisi

statemen

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

cout <<"masukkan nilai : "; cin>>nilai;

if (nilai>50)

cout <<"lulus";

return 0;}

}

Flowchart

True false

contoh penulisan programnya:

#include <iostream>

using namespace std;

int main()

{

int nilai;

cout <<"berapa umur anda : "; cin>>umur;

if (umur>=17){

cout <<" anda sudah dewasa ";

}else{

if (umur<17)

cout <<" anda belum dewasa/anak-anak ";

}

return 0;

}

kondisi

Statemen1 Statemen2

1.3.3.3 Statement SwitchMengkonstruksikan cabang untuk beberapa kondisi dari nilai.

Sintaksnya dapat ditulis sebagai berikut:

switch (ekspresi) {case value1 : statement1; break;case value2 : statement2; break;case valueN : statementN; break;default : statement_alternatif; break; }

1.3.4 Penjelasan dan contoh statemen perulangan for, while, dan do while:

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

int bil;

cout <<"masukkan sebuah bilangan (1-5): "; cin>>bil;

switch (bil) {

case 1: cout <<"bhs jepang "<<bil<<" : adalah ichi"; break;

case 2: cout <<"bhs jepang "<<bil<<" : adalah ni"; break;

case 3: cout <<"bhs jepang "<<bil<<" : adalah san"; break;

case 4: cout <<"bhs jepang "<<bil<<" : adalah yon"; break;

case 5: cout <<"bhs jepang "<<bil<<" : adalah go"; break;

default: cout <<"tidak terdapat bhs jepang "<<bil;

}

return 0;}

1.3.4.1 Statement ForPerulangan for merupakan perulangan yang sudah diketahui jumlah

perulangannya serta memiliki kondisi awal dan kondisi akhir.//untuk perulangan yang sifatnya naik (increment)

for (variable = nilai awal; kondisi; variable++) {statemen yang akan diulang; }

//untuk perulangan yang sifatnya menurun (decrement)

for (variable = nilai awal; kondisi; variable--) {statemen yang akan diulang; }

Sebagai catatan, jika kita melakukan perulangan yang sifatnya naik maka nilai awal dari variable yang kita definisikan haruslah lebih kecil dari nilai akhir yang dituliskan dalam kondisi. Sebaliknya, jika kita akan melakukan.

perulangan yang sifatnya menurun maka nilai awal harus lebih besar dari nilai akhir. Berikut ini contoh program yang menunjukkan perulangan dengan menggunakan struktur for.

Program diatas jika dijalankan hasilnya adalah:

Saya mahasiwa TISaya mahasiwa TI

#include <iostream>

using namespace std;

int main()

{

int i;

for (i=0; i<4; i++) {

cout <<" Saya mahasiwa TI "<<endl;

}

return 0;

}

Saya mahasiwa TISaya mahasiwa TI

Penjelasan: statemen ‘Saya mahasiwa TI’ akan diulang sebanyak 4 kali yaitu dengan menghitung dari nilai a ke-0 sampai a ke-2.

1.3.4.2 Statement WhilePerulangan while merupakan perulangan dengan pengecekan kondisi

dilakukan di awal perulanggan.

While (kondisi) {Statemen yang akan diulang;}

Berikut ini contoh program yang menunjukkan perulangan dengan menggunakan struktur while.

bila program diatas dijalankan maka hasilnya akan seperti ini:Universitas Udayana Universitas Udayana Universitas UdayanaUniversitas Udayana

#include <iostream>

using namespace std;

int main()

{

int i;

i=0;

while (i<4){

cout <<" Universitas Udayana "<<endl; i++;

}

return 0;

}

1.3.4.3 Statement Do whileStruktur perulangan do-while hampir sama dengan perulangan while,

hanya saja struktur perulangan do while pengecekan kondisi perulangan dilakukan di akhir perulangan.

do {Statemen yang akan diulang;} while (kondisi);

Berikut ini contoh program yang diambil dari kasus sebelumnya namun disini kita akan menggunakan struktur do-while.

1.3.5 Flowchart, pseudocode, dan dari program-program di bawah ini adalah:

1.3.5.1 Buatlah program untuk menghitung akar-akar persamaan kuadrat x1dan x2 dari persamaan ax2 + bx + c. Program bisa menampilkan keterangan apakah akar-akar tersebut apakah real atau imajiner (ditentukan dari determinan D = b2 – 4ac), dan apakah akar-akar tersebut kembar atau

#include <iostream>

using namespace std;

int main()

{

int i=0;

do {

cout <<" Universitas Udayana "<<endl; i++;

} while (i<4);

return 0;

}

berbeda. Input program berupa nilai a, b dan c. Output berupa nilai x1dan x2, real atau imajiner dan kembar atau berbeda.

Flowchart:

t

yt

y

start

inputa,b,c

D←b*b-4*a*c

D>0

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

D=0

x1,x2=(-b)/2*a print x1,x2, “akar real berbeda”

print x1,x2, “akar real kembar”

print “akarimaji

ner”stop

Pseudocode:

Deklarasia,b,c:integer;D,x1,x2:real;

Prosesinputa,b,cD=b*b-4*a*cif D>0x1=(-b+sqrt(D))/2*ax2=(-b-sqrt(D))/2*aprint x1, x2, “akar real berbeda”elseif D=0x1, x2=(-b)/2*aprint x1, x2, “akar real kembar”elseprint “akarimajiner”end if

trace:Input : a = 1

b = 6 c = 8

Proses: D = (6*6) – (4*1*8) = 4 x1 = (- 6 + sqrt (4)) / 2*1 = - 1

x2 = (- 6 – sqrt(4)) / 2*1 = - 5

Output : x1 = - 1x2 = - 5

“akar real berbeda”

1.3.5.2 Buatlah program untuk menentukan nilai huruf akhir suatu matakuliah dengan ketentuan : NilaiAngka = (NilaiTugas x 35%) + (Nilai Middle x 30%) + (NilaiUjian x 35%) Nilaihurufditentukandenganketentuanberikut. (NA = NilaiAngka) 0 ≤ NA < 45 → E 45 ≤ NA < 55 → D 55 ≤ NA < 65 → C 65 ≤ NA < 80 → B 80 ≤ NA < 100 → A

Input program berupa nilai tugas, nilai middle dan nilai ujian. Output berupa nilai angka dan nilai huruf yang didapat dengan ketentuan diatas.

Flowchart:

start

nilaitugas, nilai middle,

nilaiujian

NA← (nilai tugas*0.35)+(nilai middle*0.30)+(nilai

ujian*0.35)

print NA

NA<45

NA<65

NA<55

NA<80

print “E”

print “A”

print “B”

print “C”

print “D”

stop

Pseudocode:

Deklarasinilai tugas,nilai middle,nilai ujian:integer;NA:real;

Prosesinput nilaitugasinput nilaimiddleinput nilaiujianNA=(nilaitugas x 35%) + (nilai middle x 30%) + (nilaiujian x 35%)print NAif NA<45 print “E”elseif NA<55 print “D”elseif NA<65 print “C”elseif NA<80print “B”elseprint “A”end if

trace:

Input : nilaitugas = 80nilai middle = 85nilaiujian = 87

Proses:

NA = (75*0.35)+(95*0.30)+(80*0.35)= 82.75

Output: “A”

1.3.5.3 Buatlah program untuk menampilkan deret bilangan prima dan Fibonacci dari n buah bilangan yang diinputkan. Input merupakan sembarang bilangan n. Output merupakan deret n buah bilangan prima dan Fibonacci.

Flowchart bilangan prima

ty

y

t

t

y

Pseudocode Deret Bilangan Prima

programderet_bil_prima;

var

Start

Input N

x=2, y=i-1

For i= 2 to

i>=2

B

i=2

For x to y

M= i%xPrint i

i++

M>0

B

x++

i++

End

a,c,j,i:integer;

begin

write('Masukanangka :');

readln(a);

for j=1 to a do

begin

c:=0;

for i:=1 to j do

begin

if j mod i = 0 then

c:=c+1;

end;

if c=2 then

write(j,' ')

end;

readln;

end.

Flowchart bilangan Fibonacci

Start

Fibo [ ], i, n, jwb

Input n

Fibo [0]=0

Fibo [1]=1

Print

Fibo[0], fibo[1]

i=2 ; i<n

Fibo [i] = fibo[i-1] + fibo[i-2]

Print

Fibo[i]

End

Pseudocode

programfibonacci;

var

a,b,c,d,e:integer;

begin

writeln('masukanbilangan : ');readln(a);

c:=1;

d:=1;

for b:=1 to a do

begin

if (b=1)or(b=2) then

write(c,' ')

else

begin

e:=c+d;

c:=d;

d:=e;

write(e,' ');

end;

end;

readln;

end.

1.3.6 Seni penulisan program dapat dilihat sebagai berikut:1.3.6.1 tiap baris perintah (statement) diakhiri dengan tanda ; kecuali

penggunaan file Header dan Deklarasi kostanta.1.3.6.2 memiliki main( ) sebagai blok main program, blok main program dimulai

dengan symbol { dan diakhiri dengan symbol }1.3.6.3 Untuk mendeklarasikan lebih dari satu variabel, variabel tersebut

dipisah dengan tanda koma (,).1.3.6.4 Untuk menambahkan pernyataan/komentar dalam source

menggunakan tanda // untuk perbaris, sedangkan apabila banyak maka menggunakan blok /* diakhir pernyataan */.

1.3.6.5 Perhatikan struktur dan kerangka penulisan program C++1.3.6.6 Perhatikan bahwa pada C++ berlaku case sensitive (huruf besar dan

huruf kecil adalah beda).1.3.6.7 Perhatikan penggunaan \n dan endl1.3.6.8 Perhatikan extension file source untuk C++ adalah.cpp1.3.6.9 Perhatikan langkah – langkah kompilasi program C++1.3.6.10 Latih penangan error padasaat compile.

top related