makalah tentang algoritma lengkap

31
BAB I PENGENALAN ALGORITMA 1.1 Apakah Itu Algoritma? Ditinjau dari asal-usul katanya, kata Algoritma sendiri mempunyai sejarah yang aneh. Orang hanya menemukan kata algorism yang berarti proses menghitung dengan angka arab. Anda dikatakan algorist jika Anda menghitung menggunakan angka arab. Para ahli bahasa berusaha menemukan asal kata ini namun hasilnya kurang memuaskan. Akhirnya para ahli sejarah matematika menemukan asal kata tersebut yang berasal dari nama penulis buku arab yang terkenal yaitu Abu Ja’far Muhammad Ibnu Musa Al-Khuwarizmi. Al-Khuwarizmi dibaca orang barat menjadi Algorism. Al-Khuwarizmi menulis buku yang berjudul Kitab Al Jabar Wal- Muqabala yang artinya “Buku pemugaran dan pengurangan” (The book of restoration and reduction). Dari judul buku itu kita juga memperoleh akar kata “Aljabar” (Algebra). Perubahan kata dari algorism menjadi algorithm muncul karena kata algorism sering dikelirukan dengan arithmetic, sehingga akhiran –sm berubah menjadi –thm. Karena perhitungan dengan angka Arab sudah menjadi hal yang biasa, maka lambat laun kata algorithm berangsur-angsur dipakai sebagai metode perhitungan (komputasi) secara umum, sehingga kehilangan makna kata aslinya. Dalam bahasa Indonesia, kata algorithm diserap menjadi algoritma. 1.2 Definisi Algoritma “Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis dan logis”. Kata logis merupakan kata kunci dalam algoritma. Langkah-langkah dalam algoritma harus logis dan harus dapat ditentukan bernilai salah atau benar. Dalam beberapa konteks, algoritma adalah spesifikasi urutan langkah untuk melakukan pekerjaan tertentu. Pertimbangan dalam pemilihan algoritma adalah, pertama, algoritma haruslah benar. Artinya algoritma akan memberikan keluaran yang dikehendaki dari sejumlah masukan yang diberikan. Tidak peduli sebagus apapun algoritma, kalau memberikan keluaran yang salah, pastilah algoritma tersebut bukanlah algoritma yang baik. Pertimbangan kedua yang harus diperhatikan adalah kita harus mengetahui seberapa baik hasil yang dicapai oleh algoritma 1

Upload: lela-warni

Post on 18-Dec-2014

4.900 views

Category:

Education


28 download

DESCRIPTION

 

TRANSCRIPT

Page 1: makalah tentang algoritma lengkap

BAB I

PENGENALAN ALGORITMA

1.1  Apakah Itu Algoritma?

Ditinjau dari asal-usul katanya, kata Algoritma sendiri mempunyai sejarah yang aneh. Orang hanya menemukan kata algorism yang berarti proses menghitung dengan angka arab. Anda dikatakan algorist jika Anda menghitung menggunakan angka arab. Para ahli bahasa berusaha menemukan asal kata ini namun hasilnya kurang memuaskan. Akhirnya para ahli sejarah matematika menemukan asal kata tersebut yang berasal dari nama penulis buku arab yang terkenal yaitu Abu Ja’far Muhammad Ibnu Musa Al-Khuwarizmi. Al-Khuwarizmi dibaca orang barat menjadi Algorism. Al-Khuwarizmi menulis buku yang berjudul Kitab Al Jabar Wal-Muqabala yang artinya “Buku pemugaran dan pengurangan” (The book of restoration and reduction). Dari judul buku itu kita juga memperoleh akar kata “Aljabar” (Algebra). Perubahan kata dari algorism menjadi algorithm muncul karena kata algorism sering dikelirukan dengan arithmetic, sehingga akhiran –sm berubah menjadi –thm. Karena perhitungan dengan angka Arab sudah menjadi hal yang biasa, maka lambat laun kata algorithm berangsur-angsur dipakai sebagai metode perhitungan (komputasi) secara umum, sehingga kehilangan makna kata aslinya. Dalam bahasa Indonesia, kata algorithm diserap menjadi algoritma.

1.2  Definisi Algoritma

“Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis dan logis”. Kata logis merupakan kata kunci dalam algoritma. Langkah-langkah dalam algoritma harus logis dan harus dapat ditentukan bernilai salah atau benar. Dalam beberapa konteks, algoritma adalah spesifikasi urutan langkah untuk melakukan pekerjaan tertentu. Pertimbangan dalam pemilihan algoritma adalah, pertama, algoritma haruslah benar. Artinya algoritma akan memberikan keluaran yang dikehendaki dari sejumlah masukan yang diberikan. Tidak peduli sebagus apapun algoritma, kalau memberikan keluaran yang salah, pastilah algoritma tersebut bukanlah algoritma yang baik.

Pertimbangan kedua yang harus diperhatikan adalah kita harus mengetahui seberapa baik hasil yang dicapai oleh algoritma tersebut. Hal ini penting terutama pada algoritma untuk menyelesaikan masalah yang memerlukan aproksimasi hasil (hasil yang hanya berupa pendekatan). Algoritma yang baik harus mampu memberikan hasil yang sedekat mungkin dengan nilai yang sebenarnya.

Ketiga adalah efisiensi algoritma. Efisiensi algoritma dapat ditinjau dari 2 hal yaitu efisiensi waktu dan memori. Meskipun algoritma memberikan keluaran yang benar (paling mendekati), tetapi jika kita harus menunggu berjam-jam untuk mendapatkan keluarannya, algoritma tersebut biasanya tidak akan dipakai, setiap orang menginginkan keluaran yang cepat. Begitu juga dengan memori, semakin besar memori yang terpakai maka semakin buruklah algoritma tersebut. Dalam kenyataannya, setiap orang bisa membuat algoritma yang berbeda untuk menyelesaikan suatu permasalahan, walaupun terjadi perbedaan dalam menyusun algoritma, tentunya kita mengharapkan keluaran yang sama. Jika terjadi demikian, carilah algoritma yang paling efisien dan cepat.

1

Page 2: makalah tentang algoritma lengkap

1.3  Beda Algoritma dan Program

Program adalah kumpulan pernyataan komputer, sedangkan metode dan tahapan sistematis dalam program adalah algoritma. Program ditulis dengan menggunakan bahasa pemrograman. Jadi bisa disebut bahwa program adalah suatu implementasi dari bahasa pemrograman. Beberapa pakar memberi formula bahwa :

Program = Algoritma + Bahasa (Struktur Data)

Bagaimanapun juga struktur data dan algoritma berhubungan sangat erat pada sebuah program. Algoritma yang baik tanpa pemilihan struktur data yang tepat akan membuat program menjadi kurang baik, demikian juga sebaliknya.

Pembuatan algoritma mempunyai banyak keuntungan di antaranya :

Pembuatan atau penulisan algoritma tidak tergantung pada bahasa pemrograman manapun, artinya penulisan  algoritma independen dari bahasa pemrograman dan komputer yang melaksanakannya.

Notasi algoritma dapat diterjemahkan ke dalam berbagai bahasa pemrograman.

Apapun bahasa pemrogramannya, output yang akan dikeluarkan sama karena algoritmanya sama.

Beberapa hal yang perlu diperhatikan dalam membuat algoritma :

Teks algoritma berisi deskripsi langkah-langkah penyelesaian masalah. Deskripsi tersebut dapat ditulis dalam notasi apapun asalkan mudah dimengerti dan dipahami.

Tidak ada notasi yang baku dalam penulisan teks algoritma seperti notasi bahasa pemrograman. Notasi yang digunakan dalam menulis algoritma disebut notasi algoritmik.

Setiap orang dapat membuat aturan penulisan dan notasi algoritmik sendiri. Hal ini dikarenakan teks algoritma tidak sama dengan teks program. Namun, supaya notasi algoritmik mudah ditranslasikan ke dalam notasi bahasa pemrograman tertentu, maka sebaiknya notasi algoritmik tersebut berkorespondensi dengan notasi bahasa pemrograman secara umum.

Notasi algoritmik bukan notasi bahasa pemrograman, karena itu pseudocode dalam notasi algoritmik tidak dapat dijalankan oleh komputer. Agar dapat dijalankan oleh komputer, pseudocode dalam notasi algoritmik harus ditranslasikan atau diterjemahkan ke dalam notasi bahasa pemrograman yang dipilih. Perlu diingat bahwa orang yang menulis program sangat terikat dalam aturan tata bahasanya dan spesifikasi mesin yang menjalannya.

Algoritma sebenarnya digunakan untuk membantu kita dalam mengkonversikan suatu permasalahan ke dalam bahasa pemrograman.

2

Page 3: makalah tentang algoritma lengkap

Algoritma merupakan hasil pemikiran konseptual, supaya dapat dilaksanakan oleh komputer, algoritma harus ditranslasikan ke dalam notasi bahasa pemrograman. Ada beberapa hal yang harus diperhatikan pada translasi tersebut, yaitu :

a.  Pendeklarasian variabel

Untuk mengetahui dibutuhkannya pendeklarasian variabel dalam penggunaan bahasa pemrograman apabila    tidak semua bahasa pemrograman membutuhkannya.

b.  Pemilihan tipe data

Apabila bahasa pemrograman yang akan digunakan membutuhkan pendeklarasian variabel maka perlu hal ini dipertimbangkan pada saat pemilihan tipe data.

c.  Pemakaian instruksi-instruksi

Beberapa instruksi mempunyai kegunaan yang sama tetapi masing-masing memiliki kelebihan dan kekurangan yang berbeda.

d.  Aturan sintaksis

Pada saat menuliskan program kita terikat dengan aturan sintaksis dalam bahasa pemrograman yang akan digunakan.

e.  Tampilan hasil

Pada saat membuat algoritma kita tidak memikirkan tampilan hasil yang akan disajikan. Hal-hal teknis ini diperhatikan ketika mengkonversikannya menjadi program.

f.  Cara pengoperasian compiler atau interpreter.

Bahasa pemrograman yang digunakan termasuk dalam kelompok compiler atau interpreter.

1.4 Penyajian Algoritma

Penyajian algoritma secara garis besar bisa dalam 2 bentuk penyajian yaitu tulisan dan gambar. Algoritma yang disajikan dengan tulisan yaitu dengan struktur bahasa tertentu (misalnya bahasa Indonesia atau bahasa Inggris) dan pseudocode. Pseudocode adalah kode yang mirip dengan kode pemrograman yang sebenarnya seperti Pascal, atau C, sehingga lebih tepat digunakan untuk menggambarkan algoritma yang akan dikomunikasikan kepada pemrogram. Sedangkan algoritma disajikan dengan gambar, misalnya dengan flowchart. Secara umum, pseudocode mengekspresikan ide-ide secara informal dalam proses penyusunan algoritma. Salah satu cara untuk menghasilkan kode pseudo adalah dengan meregangkan aturan-aturan bahasa formal yang dengannya versi akhir dari algoritma akan diekspresikan. Pendekatan ini umumnya digunakan ketika bahasa pemrograman yang akan digunakan telah diketahui sejak awal.

1.5 Flowchart

Flowchart merupakan gambar atau bagan yang memperlihatkan urutan dan hubungan antar proses beserta pernyataannya. Gambaran ini dinyatakan dengan simbol. Dengan

3

Page 4: makalah tentang algoritma lengkap

demikian setiap simbol menggambarkan proses tertentu. Sedangkan antara proses digambarkan dengan garis penghubung. Dengan menggunakan flowchart akan memudahkan kita untuk melakukan pengecekan bagian-bagian yang terlupakan dalam analisis masalah. Di

samping itu flowchart juga berguna sebagai fasilitas untuk berkomunikasi antara pemrogram yang bekerja dalam tim suatu proyek.

Ada dua macam flowchart yang menggambarkan proses dengan komputer, yaitu :

Flowchart sistem yaitu bagan dengan simbol-simbol tertentu yang menggambarkan urutan prosedur dan proses suatu file dalam suatu media menjadi file di dalam media lain, dalam suatu sistem pengolahan data. Beberapa contoh Flowchart sistem:

Flowchart program yaitu bagan dengan simbol-simbol tertentu yang menggambarkan urutan proses dan hubungan antar proses secara mendetail di dalam suatu program.

- Kaidah-Kaidah Umum Pembuatan Flowchart Program

Dalam pembuatan flowchart Program tidak ada rumus atau patokan yang bersifat mutlak. Karena flowchart merupakan gambaran hasil pemikiran dalam menganalisis suatu masalah dengan komputer. Sehingga flowchart yang dihasilkan dapat bervariasi antara satu pemrogram dengan yang lainnya. Namun secara garis besar setiap pengolahan selalu terdiri atas 3 bagian utama, yaitu :

1. Input,2. Proses pengolahan dan3. Output

Untuk pengolahan data dengan komputer, urutan dasar pemecahan suatu masalah:

1. START, berisi pernyataan untuk persiapan peralatan yang diperlukan sebelum menangani pemecahan persoalan.

2. READ, berisi pernyataan kegiatan untuk membaca data dari suatu peralatan input.3. PROSES, berisi kegiatan yang berkaitan dengan pemecahan persoalan sesuai dengan

data yang dibaca.4. WRITE, berisi pernyataan untuk merekam hasil kegiatan ke peralatan output.

4

Page 5: makalah tentang algoritma lengkap

5. END, mengakhiri kegiatan pengolahan.

Walaupun tidak ada kaidah-kaidah yang baku dalam penyusunan flowchart, namun ada beberapa anjuran :

1. Hindari pengulangan proses yang tidak perlu dan logika yang berbelit sehingga jalannya proses menjadi singkat.

2. Jalannya proses digambarkan dari atas ke bawah dan diberikan tanda panah untuk memperjelas.

3. Sebuah flowchart diawali dari satu titik START dan diakhiri dengan END.

Berikut merupakan beberapa contoh simbol flowchart yang disepakati oleh dunia pemrograman :

Untuk memahami lebih dalam mengenai flowchart ini, akan diambil sebuah kasus sederhana.

Kasus : Buatlah sebuah rancangan program dengan menggunakan flowchart, mencari luas persegi panjang.

Solusi : Perumusan untuk mencari luas persegi panjang adalah :

L = p . l

di mana, L adalah Luas persegi panjang, p adalah panjang persegi, dan l adalah lebar persegi.

Keterangan :

5

Page 6: makalah tentang algoritma lengkap

1. Simbol pertama menunjukkan dimulainya sebuah program.2. Simbol kedua menunjukkan bahwa input data dari p dan l.3. Data dari p dan l akan diproses pada simbol ketiga dengan menggunakan perumusan

L = p. l.4. Simbol keempat menunjukkan hasil output dari proses dari simbol ketiga.5. Simbol kelima atau terakhir menunjukkan berakhirnya program dengan tanda End.

1.6  Struktur Dasar Algoritma

Algoritma berisi langkah-langkah penyelesaian suatu masalah. Langkah-langkah tersebut dapat berupa runtunan aksi (sequence), pemilihan aksi (selection), pengulangan aksi (iteration) atau kombinasi dari ketiganya. Jadi struktur dasar pembangunan algoritma ada tiga, yaitu:

1. Struktur Runtunan2. Digunakan untuk program yang pernyataannya sequential atau urutan.3. Struktur Pemilihan4. Digunakan untuk program yang menggunakan pemilihan atau penyeleksian kondisi.5. Struktur Perulangan6. Digunakan untuk program yang pernyataannya akan dieksekusi berulang-ulang.

Dalam Algoritma, tidak dipakai simbol-simbol / sintaks dari suatu bahasa pemrograman tertentu, melainkan bersifat umum dan tidak tergantung pada suatu bahasa pemrograman apapun juga. Notasi-notasi algoritma dapat digunakan untuk seluruh bahasa pemrograman manapun.

1.7  Tahapan dalam Pemrograman

Langkah-langkah yang dilakukan dalam menyelesaikan masalah dalam pemrograman dengan komputer adalah :

Definisikan Masalah Buat Algoritma dan Struktur Cara Penyelesaian Menulis Program Mencari Kesalahan Uji dan Verifikasi Program Dokumentasi Program Pemeliharaan Program

BAB II

PENGENALAN BAHASA C

Setiap program C++ mempunyai bentuk umum seperti di bawah, yaitu:

6# prepocessor directive

void main()

{

// Batang Tubuh Program Utama

Page 7: makalah tentang algoritma lengkap

Penjelasan :

1. Include

Adalah salah satu pengarah prepocessor directive yang tersedia pada C++.

Preprocessor selalu dijalankan terlebih dahulu pada saat proses kompilasi terjadi. Bentuk

umumnya :

# include <nama_file>

tidak diakhiri dengan tanda semicolon, karena bentuk tersebut bukanlah suatu bentuk

pernyataan, tetapi merupakan prepocessor directive. Baris tersebut menginstrusikan

kepada kompiler yang menyisipkan file lain dalam hal ini file yang berakhiran .h(file

header) yaitu file yang berisi sebagai deklarasi contohnya:

- # include <iostream.h> : diperlukan pada program yang melibatkan objek

cout

- # include <conio.h> : diperlukan bila melibatkan clrscr(),yaitu perintah

untuk membersihkan layar.

- # include <iomanip.h> : diperlukan bila melibatkan setw() yang bermanfaat

untuk mengatur lebar dari suatu tampilan data.

- # include <math.h> : diperlukan pada program yang menggunkan operasi

sqrt () yang bermanfaat untuk operasi matematika

kuadrat.

2. Fungsi main ()

Fungsi ini menjadi awal dan akhir eksekusi program C++. main adalah nama

judul fungsi. Melihat bentuk seperti itu dapat kita ambil kesimpulan bahwa batang tubuh

program utama berada didalam fungsi main( ). Berarti dalam setiap pembuatan program

utama, maka dapat dipastikan seorang pemrogram menggunakan minimal sebuah fungsi.

Pembahasan lebih lanjut mengenai fungsi akan diterangkan kemudian. Yang sekarang

coba ditekankan adalah kita menuliskan program utama kita didalam sebuah fungsi

7

# prepocessor directive

void main()

{

// Batang Tubuh Program Utama

Page 8: makalah tentang algoritma lengkap

main().

3. Komentar

Komentar tidak pernah dicompile oleh compiler. Dalam C++ terdapat 2 jenis

komentar, yaitu:

Jenis 1 : /* Komentar anda diletakkan di dalam ini

Bisa mengapit lebih dari satu baris */

Jenis 2 : // Komentar anda diletakkan disini ( hanya bisa perbaris )

4.Tanda Semicolon

Tanda semicolon “ ; ” digunakan untuk mengakhiri sebuah pernyataan. Setiap

pernyataan harus diakhiri dengan sebuah tanda semicolon.

5. Mengenal cout(dibaca : C out)

Pernyataan cout merupakan sebuah objek di dalam C++, yang digunakan untuk

mengarahkan data ke dalam standar output (cetak pada layar)

Contoh :

#include <iostream.h>

Void main ()

{

Cout << “HAI, selamat meggunakan C++ “;

}

Tanda “ << “ merupakan sebuah operator yang disebut operator “penyisipan/peletakan”

2.1 Variabel

Variabel adalah suatu pengenal (identifier) yang digunakan untuk mewakili suatu

nilai tertentu di dalam proses program. Berbeda dengan konstanta yang nilainya selalu

tetap, nilai dari suatu variable bisa diubah-ubah sesuai kebutuhan. Untuk memperoleh

nilai dari suatu variable digunakan pernyataan penugasan (assignment statement), yang

mempunyai sintaks sebagai berikut :

8

variable = ekspresi ;

Page 9: makalah tentang algoritma lengkap

Nama dari suatu variable dapat ditentukan sendiri oleh pemrogram dengan aturan sebagai

berikut :

1. Terdiri dari gabungan huruf dan angka dengan karakter pertama harus berupa

huruf. Bahasa C ++ bersifat case-sensitive artinya huruf besar dan kecil dianggap

berbeda. Jadi antara nim, NIM dan Nim dianggap berbeda.

2. Tidak boleh mengandung spasi.

3. Tidak boleh mengandung symbol-simbol khusus, kecuali garis bawah

(underscore). Yang termasuk symbol khusus yang tidak diperbolehkan antara lain

: $, ?, %, #, !, &, *, (, ), -, +, =dsb.

4. Panjangnya bebas, tetapi hanya 32 karakter pertama yang terpakai.

Contoh penamaan variabel yang benar :

NIM, a, x, nama_mhs, f3098, f4, nilai, budi, dsb.

Contoh penamaan variable yang salah :

%nilai_mahasiswa, 80mahasiswa, rata-rata, ada spasi, penting!, dsb

2.2 Deklarasi

Deklarasi diperlukan bila kita akan menggunakan pengenal (identifier) dalam

program. Identifier dapat berupa variable, konstanta dan fungsi.

2.2.1 Deklarasi Variabel

Bentuk umumnya :

Contoh :

int x; // Deklarasi x bertipe integer

char y, huruf, nim[10]; // Deklarasi variable bertipe char

float nilai; // Deklarasi variable bertipe float

double beta; // Deklarasi variable bertipe double

int array[5][4]; // Deklarasi array bertipe integer

Contoh :

#include <iostream.h>

Void main ()

{

9

Nama_tipe nama_variabel;

Page 10: makalah tentang algoritma lengkap

Int ;

n=66; // sama juga jika ditulis int n=66;

cout<<n<<endl; //n sebagai variabel

cout<<’n’<<endl; // end sebagai karakter

}

Outputnya :

66

n

2.2.2 Deklarasi Konstanta

a. Menggunakan keyword const

Contoh : const float PI = 3.14152965;

Berbeda dengan variable, konstanta bernama tidak dapat diubah

jika telah diinisialisasi

b. Menggunakan #define

Contoh : #define PI 3.14152965

Keuntungan menggunakan #define apabila dibandingkan dengan const adalah

kecepatan kompilasi, karena sebelum kompilasi dilaksanakan, kompiler pertama

kali mencari symbol #define (oleh sebab itu mengapa # dikatakan prepocessor

directive) dan mengganti semua Phi dengan nilai 3.14152965.

Contoh :

#include <iostream.h>

Void main ()

{

Const float phi = 3.14;

Float jari_jari, luas, keliling;

Jari_jari=7.0;

Luas = 0.5 * phi * jari_jari * jari_jari;

Keliling = 2 * phi * jari_jari;

Cout << “ Luas Lingkaran = “ << luas << endl;

Cout << “keliling lingkaran = “ << keliling;

}

2.3 Tipe Data

10

Page 11: makalah tentang algoritma lengkap

Tipe data dapat dikelompokkan menjadi atas dua macam :

1. Tipe Dasar.

2. Tipe Bentukkan.

2.3.1 Tipe Dasar

Adalah tipe yang dapat langsung dipakai.

Tipe Dasar Ukuran Memori (byte)

Jangkauan Nilai Jumlah Digit Presisi

Char 1 -128 hingga +127 -

Int 2 -32768 hingga +32767 -

Long 4 -2.147.438.648 hingga 2.147.438.647

-

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

Double 8 1,7E-308 hingga 1.7E308

15-16

Long Double 10 3.4E-4932 hingga 1.1E4932

19

NB : Untuk mengetahui ukuran memori dari suatu tipe digunakan fungsi sizeof(tipe)

Tipe data dapat diubah ( type cast ), misalkan:

float x = 3.345;

int p = int(x);

maka nilai p adalah 3 ( terjadi truncating ).

2.3.2 Tipe Bentukan

Merupakan tipe yang dibentuk dari tipe dasar. Seperti Tipe Struktur.

2.3.2.2 Tipe Struktur

Suatu tipe data yang merupakan kumpulan dari tipe data lainnya. Struktur terdiri

dari data yang disebut field. Field – field tersebut digabungkan menjadi satu tujuan untuk

kemudahan dalam operasi.

Bentuk umumnya :

11

tyedef struct{ tipe nama_field1;

tipe nama_field2;

tipe nama_field3;

. . . .

}nama_variabel;

Page 12: makalah tentang algoritma lengkap

2.4 Operator Bahasa C

Operator adalah symbol yang biasa dilibatkan dalam program untuk melakukan

sesuatu operasi atau manipulasi.

2.4.1 Operator penugasan

Operator Penugasan (Assignment operator) dalam bahasa C++ berupa tanda sama dengan

(“=”).

Contoh :

nilai = 80;

A = x * y;

Penjelasan :

variable “nilai” diisi dengan 80 dan

variable “A” diisi dengan hasil perkalian antara x dan y.

2.4.2 Operator Aritmatika

Operator Deskripsi

+ Penjumlahan (Add)

- Pengurangan (Substract)

* Perkalian (Multiply)

/ Pembagian (Divide)

% Sisa Pembagian Integer (Modulus)

2.4.3 Operator Hubungan (Perbandingan)

Operator Hubungan digunakan untuk membandingkan hubungan antara dua buah

operand (sebuah nilai atau variable). Operator hubungan dalam bahasa C++.

Operator Arti Contoh

== Sama dengan (bukan assignment) X==y Apakah x sama dengan y

!= Tidak sama dengan X!=y Apakah x sama dengan y

> Lebih besar X > y Apakah x lebih besar dari y

< Lebih kecil X < y Apakah x lebih kecil dari y

>= Lebih besar atau sama dengan X >= y Apakah x kurang dari sama

12

Page 13: makalah tentang algoritma lengkap

dengan y

<= Lebih kecil atau sama dengan

2.4.4 Operator Naik Dan Turun ( Increment Dan Decrement )

Operator increment ++

Operator decrement --

Contoh :

#include <iostream.h>

Void main ()

{

Int m = 44, n =66;

Cout<<”m = “<<m<<”, n = “<<n<<endl;

++m; --n;

Cout<<”m = “<<m<<”, n = “<<n<<endl;

M++; n--;

Cout<<”m = “<<m<<”, n = “<<n<<endl;

}

Outputnya :

M = 44, n = 66

M = 45, n = 65

M = 46, n = 64

2.4.5 Operator Bitwise

Operator Deskripsi Contoh

<< Geser n bit ke kiri M << n

>> Geser n bit ke kanan M >> n

& Bitwise AND M & n

I Bitwise OR M I n

^ Bitwise XOR M ^ n

~ Bitwise NOT ~m

NB : Seluruh operator bitwise hanya bisa dikenakan pada operand bertipe data int atau

Char.

2.4.6 Operator Logika

Operator logika digunakan untuk menghubungkan dua atau lebih ungkapan menjadi

sebuah ungkapan berkondisi.

13

Page 14: makalah tentang algoritma lengkap

Operator Deskripsi Contoh&& Logic AND M && nII Logic OR M II n! Logic NOT !m

2.4.7 Operator Unary

- : unary minus++ : peningkatan dengan penambahan nilai 1 -- : penurunan dengan pengurangan nilai 1 Sizeof : Ukuran dari operand dalam byte ! : unary NOT & : menghasilkan alamat memory operand * : menghasilkan nilai dari pointer

2.5 Operator Input dan Output

I Menampilkan Data / Informasi Ke Layar

Untuk menampilkan data / informasi, fungsi yang digunakan adalah sama dengan

dengan turbo c, yaitu printf( ), puts( ), dan putchar( ).

1. Printf( )

Bentuk umum pernyataan printf adalah:

Printf(“string kontrol”, argumen1,argumen2,…);

String kontrol dapat berupa keterangan yang akan ditampilkan beserta penentu

format (seperti %d, %f, dll). Argumen adalah data yang akan ditampilkan ke layar

yang dapat berupa variabel, konstanta, bahkan ungkapan.

Misal:

Printf(“%d”,20); // argumen berupa konstanta

Printf(“%d”,a); // argumen berupa variabel

Printf(“%d”,a+20); // argumen berupa ungkapan

Contoh :

#include<stdio.h>

main()

{

unsigned int segmen_grafik=0xB800;

float x=251000.0;

printf("Nilai segmen grafik (oktal) : %o\n",segmen_grafik);

printf("Nilai segmen grafik (desimal) : %u\n",segmen_grafik);

14

Page 15: makalah tentang algoritma lengkap

printf("Nilai segmen grafik (heksadesial) : %x\n",segmen_grafik);

printf("\nFormat e -> %e\n",x);

printf("Format f -> %f\n",x);

printf("Format g -> %g\n",x);

}

2.Puts( ) dan Putchar( )

Fungsi puts( ) digunakan untuk menampilkan data string ke layar. Sifat fungsi ini

secara otomatis akan diakhiri dengan \n (pindah baris). Berbeda dengan fungsi Putchar( ) yang khusus untuk menampilkan sebuah karakter dan tidak diakhiri dengan perpindahan baris.

Contoh penggunaan:

Puts(“Belajar Turbo C++);

Putchar(‘A’);

I Memasukkan Data Dari Keyboard

Untuk input data digunakan fungsi scanf( ), getch( ) dan getche( ).

1. Scanf( )

Bentuk umum scanf( ) adalah:

Scanf(“string kontrol”, daftar argumen);

Untuk penentu format, bentuknya sama seperti pada printf( ). Sedangkan untuk

daftar argumen, haruslah berupa alamat yang ditambahkan tanda & (operator

alamat).

2. Getch( ) dan Getche( )

Fungsi getch( ) digunakan untuk membaca sebuah karakter, dengan sifat karakter

yang dimasukkan tak perlu diakhiri dengan ENTER. Disamping itu, karakter yang

dimasukkan tak akan ditampilkan pada layar.

Sedangkan fungsi getche( ), karakter yang dimasukkan akan ditampilkan pada

layar. Berikut ini contoh penggunaan fungsi getch( ) dan getche( ):

#include<stdio.h>

#include<conio.h>

main()

{

15

Page 16: makalah tentang algoritma lengkap

char huruf1,huruf2;

printf("Masukkan sebuah karakter: ");

huruf1=getche(); // karakter yang dimasukkan akan terlihat di layar

printf("\nKarakter yang Anda masukkan adalah: %c",huruf1);

printf("\nMasukkan sebuah karakter lagi: ");

huruf2=getch(); // karakter yang dimasukkan tidak terlihat di layar

printf("\nKarakter yang Anda masukkan adalah: %c",huruf2);

getch();

}

BAB III

STRUKTUR KONTROL

3.1 Struktur Kondisi “If…”

16

Page 17: makalah tentang algoritma lengkap

Struktur if dibentuk dari pernyataan if dan sering digunakan untuk menyeleksi suatu

kondisi tunggal. Bila proses yang diseleksi terpenuhi atau bernilai benar, maka

pernyataan yang ada di dalam blok if akan diproses dan dikerjakan. Bentuk umum

struktur kondisi if adalah:

If(kondisi)

Pernyataan;

Buat program baru dan ketik code berikut:

#include<stdio.h>

main()

{

double tot_pemb,korting;

printf("Total Pembelian : Rp ");

scanf("%lf",&tot_pemb);

korting=0; // Tentukan nilai awal variabel korting

if(tot_pemb>=50000)

korting=0.5*tot_pemb;

printf("Besarnya Korting : Rp %.2lf\n",korting);

}

Namun jika menggunakan if…else akan memuat dua perintah yaitu perintah dimana jika penyataan terpenuhi dan tidak terpenuhi.

Penulisan : if(kondisi) else //apabila statement A tidak terpenuhi

Contoh :Bila jumlah mahasiswa yang membolos lebih dari 10 maka tampilkan hasil “tidak boleh mengikuti ujian”,jika tidak maka “boleh mengikuti ujian”.

if(bolos>10)   printf(“tidak boleh ujian”);else  printf(“boleh ujian);

jika ingin menggunakan alternatif kondisi lebih dari satu dapat digunakan else if. Contoh: if(ukuran>=80)   printf(“XL”);else if(ukuran<=20)  printf(“M”);else  printf(“S”);

17

Page 18: makalah tentang algoritma lengkap

3.2 Perulangan (Looping)

perulangan digunakan untuk melakukan suatu proses secara berulang-ulang, jika suatu kondisi dipenuhi atau sebaliknya. Proses looping yang menggunakan penghitungan dapat dibuat menggunakan pernyataan FOR.

Bentuk umum :

for (ungkapan1; keadaan; ungkapan 3) {pernyataan;}Bentuk diatas berarti:

a)      Ungkapan 1 adalah inisialisasi terhadap variabel pengendali looping b)      Keadaan adalah kondisi untuk keluar dari loopingc)      Ungkapan 3 adalah pengatur kenaikan atau penurunan nilai variabel pengendali looping

Contoh :#include #include void main () {   for (int n=10; n>0; n--){   cout<<”, “;}   cout<<”STOP!”;   getch ();}

Hasilnya adalah: 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, STOP!

3. Perintah do....while

Perintah ini menyatakan pengulangan proses selama kondisi tertentu.

Bentuk umum :Do {Pernyataan;Pernyataan;}While (keadaan)

Setiap loop dikerjakan maka kondisi akan dicek. Jika masih benar, proses loop dilakukan lagi dan jika salah maka proses loop berhenti dan berlanjut pada perintah selanjutnya.

contoh: #include #include

18

Page 19: makalah tentang algoritma lengkap

void main () {   int a;   a =1;   do{   cout<<”ayu”;   a++}  while (a<=5);   getch();}

4. Perintah WHILE

Perintah WHILE prinsipnya sama dengan perintah DO...WHILE hanya pengujian kondisinya terletak pada awal loop.

Bentuk umum:

While (keadaan) Pernyataan;AtauWhile (keadaan){Pernyataan;Pernyataan;}

Pernyataan dapat berupa pernyataan tunggal atau beberapa pernyataan yang dibatasi dengan tanda {}.

Pernyataan itu akan dijalankan jika kondisinya masih benar. Keadaan disini boleh merupakan sembarang pernyataan yang mengandung nilai suatu

variabel, pernyataan binari, pernyataan aritmatik, atau nilai return hasil dari memanggil suatu fungsi.

Contoh:#include #include void main (){int n;cout<<”masukkan angka untuk mulai : “;cin>>n;while (n>0){cout<< n << “, “;--n;}cout <<”STOP!”;getch ();}

Hasilnya adalah:

Masukkan angka untuk mulai : 4 4, 3, 2, 1, STOP!

5. Perintah CONTINUE

Perintah ini digunakan untuk mengarahkan jalannya program ke iterasi (proses) berikutnya pada loop yang sama

19

Page 20: makalah tentang algoritma lengkap

Bentuk umum:

While (kondisi) {. . . . . . . . . . . . CONTINUE;. . . . . . . . }. . . .

Contoh program perintah CONTINUE:

#include #include void main (){for (int n=10; n>0; n--){if (n==5) continue;cout<<<”, “;}cout<<”STOP!”;getch ();}

Hasilnya adalah:

10, 9, 8, 7, 6, 5, 4, 3, 2, 1, STOP!

6.Struktur Selektif (switch)

Logika menggunakkan switvh sama dengan logika menggunakkan if .

Bentuk Umum            :

switch (pilihan) {  case nilai 1:  blok pernyataan1  break;  case nilai 2 :  blok pernyataan nilai 2  break;  -  -  default :  blok pernyataan default}

Contoh :             switch (a){          case 1:          cout<<”a adalah 1”;          break;

20

Page 21: makalah tentang algoritma lengkap

          case 2:          cout<<”a adalah 2”;          break;          default:          cout<<”error”;}

3.3 Array

Pengertian Array adalah tipe data terstruktur yang berguna untuk menyimpan sejumlah data yang bertipe sama. Bagian penyusun aray disebut elemen array yang masing-masing elemen dapat di akses tersendiri melalui index array yang dapat berupa integer atau string.

3.3.1 Deklarasi Array

Variabel array dideklarasikan dengan mencantumkan tipe dan nama variabel yang diikuti dengan banyaknya lokasi memori yang ingin dibuat. Dengan demikian, deklarasi untuk variabel array D di atas adalah:            Int d[7];

C++ secara otomatis akan menyediakan lokasi memori sesuai dengan yang dideklarasikan,nomor indeks selalu dimulai dari 0. Nilai suatu variabel array dapat juga diinisialisasi secara langsung pada saat deklarasi, misalnya:             Int d[7] = {-45, 0, 6, 72, 1543, 43, 4};

setiap lokasi memori dari variabel array c langsung diisi dengan nilai-nilai yang dituliskan di dalam tanda kurung kurawal. Banyaknya lokasi memori dapat secara otomatis disediakan sesuai dengan banyaknya nilai yang akan dimasukkan, seperti contoh berikut yang tentunya membuat variabel array dengan 10 lokasi memori:            Int x[ ] = {10, 15, 12, 5, 13, 9, 6, 17, 25, 31};

Contoh program array             /*Program:array1. Cpp*/     #include      #define SIZE 12     main() {int a [SIZE] = {1, 3, 5, 4, 7, 2, 99, 16, 45, 67, 89, 45};          int indeks, total = 0;          for (indeks=0 ; indeks<=SIZE-1 ; indeks++)              total += a [indeks];printf (“\nTotal setiap elemen array adalah %d”, total);          return 0;     }

Bila program diatas dijalankan, akan muncul hasil:

Total setiap elemen array adalah 383

3.3.2 Array Dimensi Satu

Struktur array mempunyai satu dimensi, sehingga variabelnya disebut dengan variabel array berdimensi satu Bentuknya :             Tipe nama_var [ukuran];

Dengan:             Tipe     : menyatakan jenis elemen array (int, char,unsigned, dll)

21

Page 22: makalah tentang algoritma lengkap

            Ukuran            : menyatakan jumlah maksimal elemen array.

Contoh:             Float nilai_angka[5];

Pada turbo C++, array disimpan dalam memori secara berurutan. Elemen pertama berindeks nol digambarkan sebagai berikut :

Nilai_angka[0] Nilai_angka[1] Nilai_angka[2] Nilai_angka[3] Nilai_angka[4]

Masing-masing bertipe float dan berjumlah 5 elemen.

Selain itu, deklarasi array juga dapat berupa:             Static int angka [9] = {1, 2, 3, 4, 5, 6, 7, 8, 9}

Sesuai dengan deklarasi array diatas, maka isi variabel array telah ditentukan yaitu:             angka[0] bernilai 1            angka[1] bernilai 2            angka[2] bernilai 3            angka[3] bernilai 4            angka[4] bernilai5            angka[5] bernilai 6            angka[6] bernilai 7            angka[7] bernilai 8            angka[8] bernilai9            }

3.3.3 Array Dimensi Dua

Array berdimensi lebih dari satu, yang sering disebut dengan array berdimensi dua.

Sebagai contoh, sebuah matrik C berukuran 2 x 3 dapat dideklarasikan dalam C seperti berikut: int c[2][3] = {{2,4,1},{5,3,7}};

akan menempati lokasi memori dengan susunan sebagai berikut : 

0 1 2 0 2 4 1 1 5 3 7 Dan definisi variabel untuk setiap elemen tersebut adalah :

Sebagai implementasi dari keterangan diatas, perhatikan program berikut ini:

22

0 1 2 0 b[0][0] b[0][1] b[0][2] 1 b[1][0] b[1][1] b[1][2]

Page 23: makalah tentang algoritma lengkap

Contoh program array dimensi dua

/*Program: array3 .cpp*/ #includevoid printArray (int [] [3]),main() {     int matrik1 [2] [3] = { {1, 2, 3}, {4, 5, 6} }           matrik2 [2] [3] = { 1, 2, 3, 4, 5},           matrik3 [2] [3] = { {1, 2}, {4} };     printarray (matrik1);printarray (matrik2);printarray (matrik3);return 0;}void printArray (int a[] [3]) {     int i, j;     for (i=0; i<=1; i++) {          for (j=0; j<=2; j++)              printf(“%d”, a[i][j] );;          printf (“\n”);     }}

Bila program diatas dijalankan, akan muncul hasil: 123456123450120400

3.3.4 Array Dimensi Banyak Array ini seperti array dimensi dua tetapi dapat memiliki ukuran yang lebih besar. Sebenarnya array dimensi banyak ini tidak terlalu sering digunakan, tetapi sewaktu-waktu kalau dimensi yang dibutuhkan banyak, maka array ini sangat memegang peranan yang penting.

DAFTAR PUSTAKA

http://ruly.blogdetik.com/2009/10/04/pengertian-dasar-logika-dan-algoritma/

23

Page 24: makalah tentang algoritma lengkap

http://yusriel.wordpress.com/2008/09/24/pertemuan-1-pengertian-dasar-logika-dan-algoritma/

http://lecturer.ukdw.ac.id/anton/download/strukdat1.pdf

http://usupress.usu.ac.id/file

http://bab-01SDCpp-Tipedata.com/download

http://modul_terstruktur_d3/

http://www.cs.caltech.edu/~cs138/

http://www.lehigh.edu/~tkr2/teaching/ie170/

http://hercule.csci.unt.edu/~ian/classes/fall03/csci4450/info.html

24