muhamad gunawan

Just another WordPress.com site

Diktat Logika Algoritma

DIKTAT MATAKULIAH

Logika Dan Algoritma / C++

 Perguruan Tinggi Raharja

 2011



STRUKTUR DASAR PENULISAN PROGRAM C++

File name: hello1.cpp

// Struktur penulisan dasar program C++

// Penggunaan \n sebagai linefeed

#include <iostream.h>  //untuk cout

 

int main() {

cout << “Hello World!\n”;

return 0;

}

File name: hello2.cpp

# Penggunaan endl sebagai linefeed

#include <iostream.h> //untuk cout

 

int main() {

cout << “Hello World” <<endl;

return 0;

}

File name: hello3.cpp

# Penanganan error

#include <iostream.h> //untuk cout

 

int main(){

cout << “Hello World!\n”;

return 0;

Catatan:

–          Perhatikan struktur dan kerangka penulisan program C++

–          Perhatikan bahwa pada C++ berlaku case sensitive (huruf besar dan huruf kecil adalah beda).

–          Perhatikan penggunaan \n dan endl

–          Perhatikan extension file source untuk C++ adalah   .cpp

–          Perhatikan langkah – langkah kompilasi program C++

–          Latih penangan error pada saat compile.

Coba pelajari syntax berikut, dan buat tampilan output dari program tersebut tanpa menjalankannya pada editor C++  !!!!

File name: Lat1.cpp

 

#include <iostream.h>

int main(){

int x = 5;

int y = 7;

cout “\n”;

cout << x + y << ” ” << x * y;

cout “\n”;

return 0;

}

Hasil atau tampilannya adalah:

 

 

 

 

 

 

 

 

 

 


VARIABEL & KONSTANTA

File name: var1.cpp

 

// Menampilkan kapasistas penyimpanan tiap tipe variable dalam memory

#include <iostream.h>

int main(){

cout << “The size of an int is:\t\t” << sizeof(int) << ” bytes.\n”;

cout << “The size of a short int is:\t” << sizeof(short)<< ” bytes.\n”;

cout << “The size of a long int is:\t” << sizeof(long) << ” bytes.\n”;

cout << “The size of a char is:\t\t” << sizeof(char) << ” bytes.\n”;

cout << “The size of a float is:\t\t” << sizeof(float) << ” bytes.\n”;

cout << “The size of a double is:\t” << sizeof(double) << ” bytes.\n”;

return 0;

}

File name: var2.cpp

 

// Mendeklarasikan variable

#include <iostream.h>

int main(){

// membuat var unsigned short and memberi nilai

unsigned short int Width = 5, Length; //Deklarasi variable

Length = 10;

// Area = Width x Length

unsigned short int Area  = Width * Length;

cout << “Width:” << Width << “\n”;

cout << “Length: “  << Length << endl;

cout << “Area: ” << Area << endl;

return 0;

}

Catatan:

–          Perhatikan tipe – tipe untuk variable dalam program C++

–          Perhatikan juga ukuran penyimpanan dari tiap tipe variable dalam memory.

File name: var3.cpp

// Deklarasi variable dengan tipe unsigned short int

#include <iostream.h>

int main(){

unsigned short int smallNumber;

smallNumber = 65535;

cout << “small number:” << smallNumber << endl;

smallNumber++;

cout << “small number:” << smallNumber << endl;

smallNumber++;

cout << “small number:” << smallNumber << endl;

return 0;

}

File name: var4.cpp

// Deklarasi variable dengan tipe short int

#include <iostream.h>

int main(){

short int smallNumber;

smallNumber = 32767;

cout << “small number:” << smallNumber << endl;

smallNumber++;

cout << “small number:” << smallNumber << endl;

smallNumber++;

cout << “small number:” << smallNumber << endl;

return 0;

}

Catatan:

–          Perhatikan perbedaan tipe variable unsigned short int dalam program C++

–          Perhatikan juga ukuran penyimpanan dari tiap tipe variable dalam memory.

Memanfaatkan typedef untuk mendefinisikan type

Syntax : typedef unsigned short int USHORT

File name: var5.cpp

 

// typedef  untuk membuat tipe buatan sendiri

#include <iostream.h>

typedef unsigned short int USHORT;       //typedef defined

void main(){

USHORT  Width = 5;

USHORT Length;

Length = 10;

USHORT Area  = Width * Length;

cout << “Width:” << Width << “\n”;

cout << “Length: “  << Length << endl;

cout << “Area: ” << Area <<endl;

}

Catatan:

–          Perhatikan pemanfaatan typedef dalam mendeklarasikan tipe buatan sendiri

Char

File name: var6.cpp

 

// variable char

#include <iostream.h>

int main(){

char chasil;

for (int i = 32; i<128; i++) //inline declaration

{

chasil = (char) i;

cout << chasil;

}

return 0;

}

Catatan:

–          Perhatikan pendeklarasian variable tipe char

–          Perhatikan deklarasi variabel inline

–          Perhatikan konversi nilai integer menjadi char

Konstanta Enumerasi

File name: var6.cpp

 

// deklarasi type enum

#include <iostream.h>

int main(){

enum Days {Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday};

Days DayOff;

int x;

cout << “What day would you like off (0-6)? “;

cin  >> x;

DayOff = Days(x);

if (DayOff == Sunday || DayOff == Saturday)

cout << “\nYou’re already off on weekends!\n”;

else

cout << “\nOkay, I’ll put in the vacation day.\n”;

return 0;

}

Catatan:

–          Perhatikan pendeklarasian variable tipe enum

–          Perhatikan dengan tipe enum kita bisa membuat tipe variable yang sudah memiliki nilai tertentu.

–          Perhatikan cara pengisian suatu nilai dalam variable tipe enum.


STATEMENTS

File name: Sta1.cpp

 

// statements

#include <iostream.h>

int main(){

int a=0, b=0, x=0, y=35;

cout << “a: ” << a << ” b: ” << b;

cout << ” x: ” << x << ” y: ” << y << endl;

a = 9;

b = 7;

y = x = a+b;

cout << “a: ” << a << ” b: ” << b;

cout << ” x: ” << x << ” y: ” << y << endl;

return 0;

}

OPERATOR

File name: Op1.cpp

 

// Penggunaan operator –

#include <iostream.h>

int main(){

unsigned int difference;

unsigned int bigNumber = 100;

unsigned int smallNumber = 50;

difference = bigNumber – smallNumber;

cout << “Difference is: ” << difference;

difference = smallNumber – bigNumber;

cout << “\nNow difference is: ” << difference <<endl;

return 0;

}

Catatan:

–          Statement setiap baris perintah dalam program

–          Pada C++ terdapat banyak operator, coba latihan dengan beberapa operator lainnya.

File name: Op2.cpp

 

// Penggunaan operator postfix (var++) dan prefix (++var)

#include <iostream.h>

int main(){

int myAge = 39;      // initialize two integers

int yourAge = 39;

cout << “I am: ” << myAge << ” years old.\n”;

cout << “You are: ” << yourAge << ” years old\n”;

myAge++;         // postfix increment

++yourAge;       // prefix increment

cout << “One year passes…\n”;

cout << “I am: ” << myAge << ” years old.\n”;

cout << “You are: ” << yourAge << ” years old\n”;

cout << “Another year passes\n”;

cout << “I am: ” << myAge++ << ” years old.\n”;

cout << “You are: ” << ++yourAge << ” years old\n”;

cout << “Let’s print it again.\n”;

cout << “I am: ” << myAge << ” years old.\n”;

cout << “You are: ” << yourAge << ” years old\n”;

return 0;

}

Catatan:

–          Perhatikan penulisan operator postfix dan prefix.

–          Buat kesimpulan, apa perbedaan antara operator postfix dan prefix

 


IF STATEMENT & RELATIONAL OPERATOR

File name: IF1.cpp

 

// Struktur penulisan flow control dengan IF statement

#include <iostream.h>

int main(){

int RedSoxScore, YankeesScore;

cout << “Enter the score for the Red Sox: “;

cin >> RedSoxScore;

cout << “\nEnter the score for the Yankees: “;

cin >> YankeesScore;

cout << “\n”;

if (RedSoxScore > YankeesScore)

cout << “Go Sox!\n”;

if (RedSoxScore < YankeesScore)

{

cout << “Go Yankees!\n”;

cout << “Happy days in New York!\n”;

}

if (RedSoxScore == YankeesScore)

{

cout << “A tie? Naah, can’t be.\n”;

cout << “Give me the real score for the Yanks: “;

cin >> YankeesScore;

if (RedSoxScore > YankeesScore)

cout << “Knew it! Go Sox!”;

if (YankeesScore > RedSoxScore)

cout << “Knew it! Go Yanks!”;

if (YankeesScore == RedSoxScore)

cout << “Wow, it really was a tie!”;

}

cout << “\nThanks for telling me.\n”;

return 0;

}

Catatan:

–          Perhatikan struktur if statement program di atas

–          Perhatikan operator relational yang digunakan pada if statement tersebut

–          Perhatikan tata penulisan if statement, hal ini berguna untuk debuging dan penelusuran pada program.

–          Perhatikan block ( {    } )dalam penulisan if statement.

File name: IF2.cpp

// Struktur penulisan flow control dengan if-else statement

#include <iostream.h>

int main(){

int firstNumber, secondNumber;

cout << “Please enter a big number: “;

cin >> firstNumber;

cout << “\nPlease enter a smaller number: “;

cin >> secondNumber;

if (firstNumber > secondNumber)

cout << “\nThanks!\n”;

else

cout << “\nOops. The second is bigger!”;

return 0;

}

File name: IF3.cpp

// Struktur penulisan flow control dengan nested if (if bersarang)

#include <iostream.h>

int main(){

int firstNumber, secondNumber;

cout << “Enter two numbers.\nFirst: “;

cin >> firstNumber;

cout << “\nSecond: “;

cin >> secondNumber;

cout << “\n\n”;

if (firstNumber >= secondNumber)

{

if ( (firstNumber % secondNumber) == 0)

{

if (firstNumber == secondNumber)

cout << “They are the same!\n”;

else

cout << “They are evenly divisible!\n”;

}

else

cout << “They are not evenly divisible!\n”;

}

else

cout << “Hey! The second one is larger!\n”;

return 0;

}

Catatan:

–          Perhatikan struktur if statement dari 2 program diatas.

–          Jalankan program dan isi kedua nilai dengan nilai yg sama, bandingkan hasil antara program IF2.cpp dan IF3.cpp

–          Mana yang lebih baik / lengkap struktur penulisannya?

File name: IF4.cpp

 

#include <iostream.h>

int main(){

int x;

cout << “Enter a number less than 10 or greater than 100: “;

cin >> x;

cout << “\n”;

if (x > 10)

if (x > 100)

cout << “More than 100, Thanks!\n”;

else

cout << “Between 10 and 100\n”;

else

cout << “Less than 10, Thanks!\n”;

return 0;

}

File name: IF5.cpp

 

#include <iostream.h>

int main(){

int x;

cout << “Enter a number less than 10 or greater than 100: “;

cin >> x;

cout << “\n”;

if (x > 10)

{

if (x > 100)

cout << “More than 100, Thanks!\n”;

else

cout << “Between 10 and 100\n”;

}

else

cout << “Less than 10, Thanks!\n”;

return 0;

}

Catatan:

–          Perhatikan struktur if statement dari 2 program diatas. Program IF5.cpp merupakan penulisan struktur if statement yang baik. (memudahkan dalam penanganan error)

–          Jalankan program dan isi kedua nilai dengan nilai yg sama, bandingkan hasil antara program IF4.cpp dan IF5.cpp

 


Conditional Operator

File name: IF6.cpp

 

#include <iostream.h>

int main(){

int x, y, z;

cout << “Enter two numbers.\n”;

cout << “First: “;

cin >> x;

cout << “\nSecond: “;

cin >> y;

cout << “\n”;

if (x > y) //penggunaan conditional operator dalam if statement

z = x;

else

z = y;

cout << “z: ” << z;

cout << “\n”;

z =  (x > y) ? x : y;       // Conditional operator

cout << “z: ” << z;

cout << “\n”;

return 0;

}

Catatan:

–          Perhatikan penulisan conditional operator pada program diatas.

–          Perhatikan pula penulisan conditional operator pada program Ifx.cpp yang lainnya.

–          Perhatikan statement z =  (x > y) ? x : y bandingkan dengan yang dilakukan oleh if statement.

–          (x > y) ? x : y merupakan conditional operator.


FUNCTION

Latih  kebiasaan anda dalam membuat program agar selalu membuat secara modular, untuk membuat modul dapat digunakan function dan class.

Berikut ini listing program dasar yang menggunakan function.

File name: func1.cpp

// Pemanfaatan fungsi dasar

#include <iostream.h>

typedef unsigned short USHORT;

USHORT FindArea(USHORT length, USHORT width); //function prototype

int main() {

USHORT lengthOfYard;

USHORT widthOfYard;

USHORT areaOfYard;

cout << “\nHow wide is your yard? “;

cin >> widthOfYard;

cout << “\nHow long is your yard? “;

cin >> lengthOfYard;

areaOfYard= FindArea(lengthOfYard,widthOfYard); //pemanggilan fungsi

cout << “\nYour yard is “;

cout << areaOfYard;

cout << ” square feet\n\n”;

return 0;

}

USHORT FindArea(USHORT l, USHORT w) {

return l * w;

}

Catatan:

–   Perhatikan pemanggilan fungsi yang disertai pengiriman parameter.

File name: func2.cpp

// Pemakaian fungsi bertipe

#include <iostream.h>

float Convert(float);

int main() {

float TempFer;

float TempCel;

cout << “Please enter the temperature in Fahrenheit: “;

cin >> TempFer;

TempCel = Convert(TempFer);

cout << “\nHere’s the temperature in Celsius: “;

cout << TempCel << endl;

return 0;

}

float Convert(float TempFer)

{

float TempCel;

TempCel = ((TempFer – 32) * 5) / 9;

return TempCel;

}

Catatan:

–   Perhatikan tipe fungsi dan bandingkan hasilnya dengan contoh program sebelumnya (func1.cpp).

File name: func3.cpp

//Dampak variable global

#include <iostream.h>

void myFunction();           // prototype

int x = 5, y = 7;            // global variables

int main() {

cout << “x from main: ” << x << “\n”;

cout << “y from main: ” << y << “\n\n”;

myFunction();

cout << “Back from myFunction!\n\n”;

cout << “x from main: ” << x << “\n”;

cout << “y from main: ” << y << “\n”;

return 0;

}

void myFunction()

{

int y = 10;

cout << “x from myFunction: ” << x << “\n”;

cout << “y from myFunction: ” << y << “\n\n”;

}

Catatan:

–   Perhatikan dampak dari pemakaian variabel global.


Scope variable dalam Block

File name: func4.cpp

//Pengujian cakupan variabel

#include <iostream.h>

void myFunc();

int main() {

int x = 5;

cout << “\nIn main x is: ” << x;

myFunc();

cout << “\nBack in main, x is: ” << x;

return 0;

}

void myFunc() {

int x = 8;

cout << “\nIn myFunc, local x: ” << x << endl;

{

cout << “\nIn block in myFunc, x is: ” << x;

int x = 9;

cout << “\nVery local x: ” << x;

}

cout << “\nOut of block, in myFunc, x: ” << x << endl;

}

Catatan:

–   Perhatikan cakupan dari tiap variable pada program di atas.

File name:func5.cpp

//Menggunakan passing parameter

#include <iostream.h>

void swap(int x, int y);

int main() {

int x = 5, y = 10;

cout << “Main. Before swap, x: ” << x << ” y: ” << y << “\n”;

swap(x,y);

cout << “Main. After swap, x: ” << x << ” y: ” << y << “\n”;

return 0;

}

void swap (int x, int y) {

int temp;

cout << “Swap. Before swap, x: ” << x << ” y: ” << y << “\n”;

temp = x;

x = y;

y = temp;

cout << “Swap. After swap, x: ” << x << ” y: ” << y << “\n”;

}

Catatan:

–   Perhatikan nilai variable akibat dari passing parameter pada program di atas.


Return Value

File name: func6.cpp

//Menggunakan return value

#include <iostream.h>

int Doubler(int AmountToDouble);

int main() {

int result = 0;

int input;

cout << “Enter a number between 0 and 10,000 to double: “;

cin >> input;

cout << “\nBefore doubler is called… “;

cout << “\ninput: ” << input << ” doubled: ” << result << “\n”;

result = Doubler(input);

cout << “\nBack from Doubler…\n”;

cout << “\ninput: ” << input << “   doubled: ” << result << “\n”;

return 0;

}

int Doubler(int original)

{

if (original <= 10000)

return original * 2;

else

return -1;

cout << “You can’t get here!\n”;

}

Catatan:

–   Perhatikan nilai variable result akibat dari return value pada program di atas.

File name: func7.cpp

//Menggunakan default parameter

#include <iostream.h>

int AreaCube(int length, int width = 25, int height = 1);

int main()

{

int length = 100;

int width = 50;

int height = 2;

int area;

area = AreaCube(length, width, height);

cout << “First area equals: ” << area << “\n”;

area = AreaCube(length, width);

cout << “Second time area equals: ” << area << “\n”;

area = AreaCube(length);

cout << “Third time area equals: ” << area << “\n”;

return 0;

}

AreaCube(int length, int width, int height)

{

return (length * width * height);

}

Catatan:

–   Perhatikan pengaruh dari default parameter terhadap return value dari function.


Function Recursion

File name: func7.cpp

//fungsi rekursi

#include <iostream.h>

int fib(int n);

int main() {

int n, answer;

cout << “Enter number to find: “;

cin >> n;

cout << “\n\n”;

answer = fib(n);

cout << answer << ” is the ” << n << “th Fibonacci number\n”;

return 0;

}

int fib (int n)

{

cout << “Processing fib(” << n << “)… “;

if (n < 3 )

{

cout << “Return 1!\n”;

return (1);

}

else

{

cout << “Call fib(” << n-2 << “) and fib(” << n-1 << “).\n”;

return( fib(n-2) + fib(n-1));

}

}

Catatan:

–   Perhatikan fungsi recursi pada program di atas.

–   RecursiFungsi adalah pemanggilan suatu fungsi dari dalam fungsi itu sendiri)


CLASS

File name : class1.cpp

 

//Struktur penulisan program dengan menggunakan class

#include <iostream.h>   // utk cout

class Cat                // deklarasi class

{

public:                 // members variable adalah public

int itsAge;

int itsWeight;

};

void main() {

//Deklarasi object Frisky dari class Cat

Cat Frisky;

Frisky.itsAge = 5;    // mengisi nilai member variable

cout << “Frisky is a cat who is ” ;

cout << Frisky.itsAge << ” years old.\n”;

}

Catatan:

–   Perhatikan penggunaan class dan deklarasi object terhadap suatu class pada program di atas.

–   Perhatikan pengisian variable member pada main()


Deklarasi private dan public

File name : class2.cpp

 

// Deklarasi class dan

// mendefinisikan mthod dari class

#include <iostream.h>      // untuk cout

#include <conio.h>      //untuk clrscr()

class Cat                   // declaration of the class

{

public:                   // begin public section

int GetAge();           // accessor function

void SetAge (int age);  // accessor function

void Meow();            // general function

private:                  // begin private section

int itsAge;             // member variable

};

int Cat::GetAge() {

return itsAge;

}

void Cat::SetAge(int age) {

itsAge = age;

}

// definisi method Meow

void Cat::Meow() {

cout << “Meow.\n”;

}

int main()

{

//Deklarasi object Frisky dari class Cat

Cat Frisky;

Frisky.SetAge(5);

Frisky.Meow();

clrscr() ;

cout << “Frisky is a cat who is ” ;

cout << Frisky.GetAge() << ” years old.\n”;

//Pemanggilan method Meow() dari object Frisky

Frisky.Meow();

return 0;

}

Catatan:

–   Perhatikan pemanggilan method dari suatu object.

–   Perhatikan pendeklarasi-an member variable secara private dan pemanggilannya.

–   Perhatikan nilai member variable itsAge hanya dapat diisi melalui method anggota class (karena merupakan variable private)

–   Members / Anggota class hanya akan dapat dipanggil oleh anggota class saja apabila di deklarasikan secara private.


Constructor dan Destructor

File name : class3.cpp

 

// Deklarasi constructors dan

// destructor untuk class Cat

#include <iostream.h>

#include <conio.h>

class Cat {

public:                                     // begin public section

Cat(int initialAge);            // constructor

~Cat();                   // destructor

int GetAge();         // accessor function / method

void SetAge(int age);        // accessor function / method

void Meow();                    // accessor function / method

private:                                    // begin private section

int itsAge;             // member variable

};

// constructor of Cat,

Cat::Cat(int initialAge) {

itsAge = initialAge;

}

// destructor, takes no action

Cat::~Cat() {

}

// method GetAge

int Cat::GetAge() {

return itsAge;

}

// method SetAge

void Cat::SetAge(int age) {

itsAge = age;

}

// method Meow

void Cat::Meow()

{

cout << “Meow.\n”;

}

int main()

{

Cat Frisky(5);

Frisky.Meow();

cout << “Frisky is a cat who is ” ;

cout << Frisky.GetAge() << ” years old.\n”;

Frisky.Meow();

Frisky.SetAge(7);

cout << “Now Frisky is ” ;

cout << Frisky.GetAge() << ” years old.\n”;

return 0;

}

Catatan:

–   Perhatikan penulisan constructor dan destructor.

–   Perhatikan nilai member variabel itsAge di isi ulang.


Class sebagai File External

File name : cat.hpp

 

// Membuat class sebagai file header (external class)

#include <iostream.h>

#include <conio.h>

class Cat {

public:                                     // begin public section

Cat(int initialAge);      // constructor

~Cat();             // destructor

int GetAge();               // accessor function / method

void SetAge(int age);  // accessor function / method

void Meow();              // accessor function / method

private:                                    // begin private section

int itsAge;                   // member variable

};

Cat::Cat(int initialAge) {

itsAge = initialAge;

}

Cat::~Cat() {

}

int Cat::GetAge() {

return itsAge;

}

// method SetAge

void Cat::SetAge(int age) {

itsAge = age;

}

void Cat::Meow(){

cout << “Meow.\n”;

}

Catatan:

–   Perhatikan extension untuk program di atas adalah .hpp bukan .cpp

–   Program di atas tidak dapat langsung dijalankan, harus dipanggil melalui program yang memanggilnya.

–   File cat.hpp ini nanti akan dipanggil oleh program cat.cpp berikut:

File name : cat.cpp

 

#include “d:\data\gury\tcpp\class\cat.hpp” //memanggil file header

int main()

{

Cat Frisky(5);

Frisky.Meow();

cout << “Frisky is a cat who is ” ;

cout << Frisky.GetAge() << ” years old.\n”;

Frisky.Meow();

Frisky.SetAge(7);

cout << “Now Frisky is ” ;

cout << Frisky.GetAge() << ” years old.\n”;

return 0;

}

Catatan:

–   Perhatikan program cat.cpp memanggil file header cat.hpp agar class cat dapat digunakan.

–   Pemanggilan file header melalui perintah #include.

–   Pemanggilan harus disertai alamat lengkap tempat file header tersebut berada.

Single Post Navigation

Tinggalkan Balasan

Please log in using one of these methods to post your comment:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: