Anda di halaman 1dari 13

BAB II

LANDASAN TEORI
2.1. Algoritma
Algoritma adalah : Cara yang dapat ditempuh oleh komputer dalam
mencapai suatu tujuan, terdiri atas langkah-langkah yang terdefinisi dengan baik,
menerima input, melakukan proses, dan menghasilkan output. Meskipun tidak
selalu, biasanya sebuah algoritma memiliki sifat bisa dihitung (computable) atau
bisa dihitung.

Sebuah algoritma dikatakan benar (correct), jika algoritma

tersebut berhasil mengeluarkan output yang benar untuk semua kemungkinan


input. Jika sebuah algoritma dikatakan 99% benar, algoritma tersebut tetap salah
(incorrect). Agar algoritma tersebut dikatakan benar, algoritma tersebut harus
benar 100%.
Sebagai contoh, ketika kita menulis surat, maka kita perlu melakukan beberapa
langkah sebagai berikut:
1. Mempersiapkan kertas dan amplop.
2. Mempersiapkan alat tulis, seperti pena atau pensil.
3. Mulai menulis.
4. Memasukkan kertas ke dalam amplop.
5. Pergi ke kantor pos untuk mengeposkan surat tersebut.
Dengan algoritma, kita dapat mengatasi masalah dari yang sederhana sampai
yang kompleks sekalipun. Namun, seorang user harus mampu membuat suatu
program dengan menggunakan bahasa yang difahami oleh komputer. Sebelum
disajikan dalam bentuk bahasa pemrogaman, sebaiknya kita membuat diagram
alir (Flow Chart) dan Pseudocode. Hal ini dimaksudkan agar dapat
mempermudah kerja atau mempermudah dalam membuat program. Selain itu,
algoritma dapat mengatasi masalah logika dan masalah matematika dengan cara
berurutan, tetapi kadang-kadang algoritma tidak selalu berurutan, hal ini dikenal
dengan proses percabangan.
Pada dasarnya, komputer adalah mesin digital, artinya komputer hanya
bisa mengenal kondisi ada arus listrik (biasanya dilambangkan dengan 1) dan

Universitas Sumatera Utara

tidak ada arus listrik (biasanya dilambangkan dengan 0). Dengan kata lain, kita
harus menggunakan sandi 0 dan 1 untuk melakukan pemrogaman komputer.
Bahasa pemrogaman yang menggunakan sandi 0 dan 1 ini disebut bahasa mesin.
Karena bahasa mesin sangat susah, maka muncul ide untuk melambangkan
untaian sandi 0 dan 1 dengan singkatan kata yang lebih mudah difahami manusia
biasa disebut dengan mnemonic code. Bahasa pemrogaman yang menggunakan
singkatan kata ini disebut bahasa assembly. Program algoritma harus komplit,
nyata, dan jelas. Meskipun tugas algoritma tidak menghasilkan solusi, tetapi
proses harus berakhir hal ini disebut dengan semi algorithm (prosedur akan
berjalan terus atau biasa disebut dengan perulangan). Intinya kita tidak boleh
menambah masalah, akan tetapi kita harus mampu menyelesaikan masalah
untuk mendapat hasil yang tepat.
Bilangan adalah suatu konsep matematika yang digunakan untuk
pencacahan dan pengukuran. Simbol ataupun lambang yang digunakan untuk
mewakili suatu bilangan disebut sebagai angka atau lambang bilangan. Dalam
matematika, konsep bilangan selama bertahun-tahun lamanya telah diperluas
untuk meliputi bilangan nol, bilangan negatif, bilangan rasional, bilangan
irasional, dan bilangan kompleks.
Prosedur-prosedur tertentu yang mengambil bilangan sebagai masukan
dan menghasil bilangan lainnya sebagai keluran, disebut sebagai operasi
numeris. Operasi uner mengambil satu masukan bilangan dan menghasilkan satu
keluaran bilangan. Operasi yang lebih umumnya ditemukan adalah operasi biner,
yang mengambil dua bilangan sebagai masukan dan menghasilkan satu bilangan
sebagai keluaran. Contoh operasi biner adalah penjumlahan, pengurangan,
perkalian, pembagian, dan perpangkatan. Bidang matematika yang mengkaji
operasi numeris disebut sebagai aritmetika.
Pemrograman merupakan proses mengimplementasikan urutan langkah
untuk menyelesaikan suatu masalah dengan menggunakan suatu bahasa

Universitas Sumatera Utara

pemrograman. Bahasa pemrograman, atau sering diistilahkan juga dengan


bahasa komputer, adalah teknik komando/instruksi standar untuk memerintah
komputer. Bahasa pemrograman ini merupakan suatu set aturan sintaks dan
semantik yang dipakai untuk mendefinisikan program komputer. Bahasa ini
memungkinkan seorang programmer dapat menentukan secara persis data
mana

yang

akan

diolah

oleh

komputer,

bagaimana

data

ini

akan

disimpan/diteruskan, dan jenis langkah apa secara persis yang akan diambil
dalam berbagai situasi.
2.2. Bahasa Pemrograman C++.
Bahasa Pemrograman merupakan notasi yang dipergunakan untuk
mendeskripsikan proses komputasi dalam format yang dapat dibaca oleh
komputer dan manusia. Proses komputasi umumnya didefinisikan secara formal
menggunakan konsep matematika dari Mesin Turing. Pada dasarnya bahasa
Pemrograman dirancang untuk memfasilitasi komunikasi antara manusia dengan
komputer.
Sebuah bahasa pemrograman disebut Turing Complete jika dapat
dipergunakan untuk mendeskripsikan semua komputasi yang dapat dilakukan
Mesin Turing, yaitu memiliki variable integer dan operator aritmatik, pernyataan
penugasan, pernyataan sekuensial, pernyataan seleksi, dan pernyataan iterasi
Berikut ini adalah daftar bahasa pemrograman komputer:
1.

Assembly

2.

BASIC:
o

ASP

BASIC

COMAL

Visual Basic

Visual Basic for Applications

Universitas Sumatera Utara

VBScript

3.

Batch (MS-DOS)

4.

COBOL

5.

UNIX shell script:

6.

Bourne shell (sh) script

Bourne-Again shell (bash) script

Korn shell (ksh) script

C shell (csh) script

C++

C#

Visual C++

C:

Dan dalam penyelesaian permasalahan ini penulis mencoba menggunakan


bahasa pemrograman C++.
C++ adalah salah satu bahasa pemrograman komputer. Dibuat pada tahun 1980an oleh Bell Labs (Bjarne Stroustrup) sebagai pengembangan dari Bahasa
pemrograman C. Salah satu perbedaan yang paling mendasar dengan bahasa C
adalah dukungan terhadap konsep pemrograman berorientasi objek (Object
Oriented Programming).
Bahasa pemrograman C merupakan salah satu bahasa pemrograman komputer.
Dibuat pada tahun 1972 oleh Dennis Ritchie untuk Sistem Operasi Unix di Bell
Telephone Laboratories.
Meskipun C dibuat untuk memprogram sistem dan jaringan komputer namun
bahasa ini juga sering digunakan dalam mengembangkan software aplikasi. C
juga banyak dipakai oleh berbagai jenis platform sistem operasi dan arsitektur
komputer, bahkan terdapat beberepa compiler yang sangat populer telah

Universitas Sumatera Utara

tersedia. C secara luar biasa mempengaruhi bahasa populer lainnya, terutama


C++ yang merupakan extensi dari C.

a. Kelompok pertama
C++ mempunyai 32 buah kata yang dipesan (reserved words). Kata kunci
kelompok pertama merupakan turunan dari bahasa C, di antaranya:

auto const

double float int

break continue else

for

long

short struct

unsigned

signed switch void

case default

enum goto register sizeof typedef volatile

char do

extern if

return static union

while

b. Kelompok kedua
Kata yang dipesan kelompok kedua berjumlah 30. Kata-kata ini adalah baru dan
hanya ada di bahasa C++.

asm

dynamic_cast namespace reinterpret_cast try

bool

explicit

new

static_cast

typeid

catch

false

operator

template

typename

class

friend

private

this

using

Universitas Sumatera Utara

const_cast inline

public

throw

virtual

delete

protected

true

wchar_t

mutable

Kata-kata yang dipesan tersebut di atas tidak boleh dipakai sebagai nama
variable, class, enum, macro, dan struct.
2.2.1. Tipe data dasar

Untuk menyimpan suatu variabel diperlukan tempat khusus di dalam memori


komputer. Besar dan tipe dari variabel-variabel di dalam standar program C++
dispesifikasikan sebagai berikut.

Nama

char

short int
(short)

Keterangan

Abjad/karakter atau untuk


bilangan bulat kecil

Ukuran

1 byte

Jangkauan

signed: -128 to 127


unsigned: 0 to 255

Bilangan bulat dengan jangkauan


2 byte
pendek

signed: -32768 to 32767


unsigned: 0 to 65535
signed: -2147483648 to
2147483647

int

Bilangan bulat

4 byte
unsigned: 0 to
4294967295
signed: -2147483648 to
2147483647

long int
(long)

Integer dengan jangkauan panjang 4 byte

bool

Boolean, dapat bernilai benar


atau salah (true or false)

i byte

float

Angka dengan titik mengambang


(bilangan cacah)

4 byte 3.4e +/- 38 (7 digit)

unsigned: 0 to
4294967295
true or false

Universitas Sumatera Utara

double

Bilangan cacah dengan ketelitian


ganda

8 byte 1.7e +/- 308 (15 digits)

long double

Bilangan cacah dengan ketelitian


ganda panjang

8 byte 1.7e +/- 308 (15 digits)

wchar_t

Karakter lebar, biasa dipakai


untuk Unicode karakter

2 byte 1 karakter lebar

2.2.2. Variabel
Aturan penulisan pengenal untuk sebuah variabel, konstanta atau fungsi yang di
definisikan oleh pemrogram adalah sebagai berikut :

Pengenal harus di awali dengan huruf (A..Z, atau a..z ) atau karakter garis
bawah (_)

Selanjutnya dapat berupa huruf, digit ( 0..9 ) atau karakter garis bawah
atau tanda dollar ($).

Panjang pengenal boleh lebih dari 31 karakter, tetapi hanya 31 karakter


pertama yang akan di anggap berarti.

Pengenal tidak boleh menggunakan nama yang tergolong sebagai katakata cadangan ( reserved words ) seperti int, if , while dan sebagainya.

2.2.3. Mendeklarasikan Variabel


Variabel digunakan dalam program untuk menyimpan suatu nilai, dan nilai
yang ada padanya dapat di ubah-ubah selama eksekusi program berlangsung.
Variabel yang akan digunakan dalam program haruslah dideklaraasikan
terlebih dahulu. Pengertian deklarasi di sini berarti memesan memori dan
menentukan jenis data yang bisa di simpan di dalamnya.

2.2.4. Tipe daftar-variabel


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

Universitas Sumatera Utara

Contoh:
int var_bulat1;
float var_pecahan1, var_pecahan2;

2.2.5. Memberikan Nilai Ke Variabel


Untuk memberikan nilai ke variabel yang telah di deklarasikan, maka bentuk
umum pernyataan yang digunakan adalah :
nama_variabel = nilai ;
contoh :
int var_bulat = 10 ;
double var_pecahan = 10.5;
2.2.6. Inisialisasi Variabel
Adakalanya dalam penulisan program, setelah dideklarasikan, variabel langsung
diberi nilai awal. Sebagai contoh yaitu variabel nilai :
int nilai;
nilai = 10 ;
Dua pernyataan diatas sebenarnya dapat di singkat melalui pendeklarasian yang
di sertai penugasan nilai, sebagai berikut :
int nilai = 10;
Cara seperti ini banyak dipakai dalam program C, disamping menghemat
penulisan pernyataan, juga lebih memberikan kejelasan, khususnya untuk
variabel yang perlu diberi nilai awal (diinisialisasi ).

2.2.7. Konstanta.
Konstanta menyatakan nilai yang tetap. Berbeda dengan variabel, suatu
konstanta tidak di deklarasikan. Namun seperti halnya variabel, konstanta juga
memiliki tipe. Penulisan konstanta mempunyai aturan tersendiri, sesuai dengan
tipe masing-masing.

Universitas Sumatera Utara

Konstanta karakter misalnya ditulis dengan diawali dan di akhiri


dengan tanda petik tunggal, contohnya : 'A' dan '@'.

Konstanta integer ditulis dengan tanda mengandung pemisah


ribuan dan tak mengandung bagian pecahan.

Konstanta real (float dan double) bisa mengandung pecahan (


dengan tanda berupa titik ) dan nilainya bisa di tulis dalam bentuk
eksponensial ( menggunakan tanda e ), contohnya : 27.5f ( untuk
tipe float ) atau 27.5 ( untuk tipe double ) dan 2.1e+5 .

Konstanta string merupakan deretan karakter yang diawali dan


diakhiri dengan tanda petik ganda (") contohnya :"Pemrograman
Dasar C ".

2.2.8. Operator
Operator merupakan simbol atau karakter yang bisa dilibatkan dalam program
untuk melakukan sesuatu operasi atau manipulasi, seperti menjumlahkan dua
buah nilai, memberikan nilai ke suatu variabel, membandingkan kesamaan dua
buah nilai.
Simbol + merupakan operator untuk melakukan operasi penjumlahan dari kedua
operandnya (yaitu a dan b). Karena operator penjumlahan melibatkan dua
operator ini tergolong operator binary. Simbol - (minus) juga merupakan
operator. Simbol ini termasuk sebagai operator unary, yaitu operator yang hanya
memiliki sebuah operand ( yaitu c pada contoh ini ).
2.2.9. Operator Aritmatika.
Operator untuk operasi aritmatika yang tergolong sebagai operator binary
adalah :
* artinya perkalian
/ artinya pembagian
% artinya sisa pembagian
+ artinya penjumlahan

Universitas Sumatera Utara

Adapun operator yang tergolong sebagai operator binary


- artinya tanda minus
+ artinya tanda plus
Contoh pemakaian operator aritmatika misalnya untuk memperoleh nilai
diskriminan dari suatu persamaan kuadrat dan juga penentuan bilangan ganjil
dan bilangan genap.
Dalam bab ini akan dibahas mengenai teori-teori yang dapat menunjang serta
menjadi acuan dalam pembuatan skripsi ini. Bagian tersebit dikelompokkan
menjadi beberapa bab yaitu

: Logika dan algoritma, masalah-masalah dan

algoritmanya, struktur data dan flowchart.


Dalam

perumusan

algoritma

yang

dibahas

adalah

beberapa

bentuk

permasalahan matematika yaitu :


1. Penentuan bilangan ganjil dan bilangan genap
bilangan-bilangan yang paling dikenal adalah bilangan bulat yaitu : ....., -2,
-1, 0, 1, 2, . Dan bilangan-bilangan asli yaitu : 1, 2, 3, . Keduanya sering
digunakan untuk

behitung dalam aritmetika

algoritma untuk

menentukan suatu bilangan termasuk bilangan genap atau bilangan


ganjil.
Bilangan genap adalah bilangan bulat yang habis (tidak bersisa) jika dibagi
2. Sedangkan bilangan ganjil adalah bilangan bulat yang tidak bisa habis
dibagi 2.
2. Penentuan diskriminan dan akar-akar persamaan kuadrat
Matriks adalah suatu kumpulan besaran (variabel dan konstanta) yang
dapat dirujuk melalui indeknya, yang menyatakan posisinya dalam
representasi umum yang digunakan, yaitu sebuah tabel persegipanjang.
Matriks merupakan suatu cara visualisasi variabel yang merupakan
kumpulan dari angka-angka atau variabel lain, misalnya vektor. Dengan
representasi matriks, perhitungan dapat dilakukan dengan lebih

Universitas Sumatera Utara

terstruktur. Pemanfaatannya misalnya dalam menjelaskan persamaan


linier, transformasi koordinat, dan lainnya. Matriks seperti halnya variabel
biasa dapat dimanipulasi, seperti dikalikan, dijumlah, dikurangkan dan
didekomposisikan.

Persamaan kuadrat adalah suatu persamaan polynomial

berorde 2.

Bentuk umum dari persamaan kuadrat adalah :


Y = ax2 + bx + c ; dimana a0
Huruf a, b, dan c disebut sebagai koefisien. Koefisien kuadrat a adalah
koefisien dari x2, koefisien linier b adalah koefisien dari x, dan c adalah
koefisien konstan atau koefisien bebas.
Rumus kuadrat dikenal pula dengan nama rumus abc, karena digunakan
untuk menghitung akar-akar pesamaan kuadrat yang tergantu dari nilai a,
b, dan c dari suatu persamaan kuadrat. Rumus yang dimaksud memiliki
bentuk :

Algoritma untuk menghitung determinan dan akar-akar persamaan


disajikan dalam bentuk :
Masukkan koefisien-koefisien dan konstanta persamaan kuadrat a,b, dan c
. Harga. a tidak sama dengan nol.
1. Mulai
2. Baca data a,b,c
3. Hitung diskriminan persamaan D = b^2 4 x a x c
4. Cek harga diskriminan IF D > 0 Jika ya, hitung akar-akar
persamaan
X1 = ((-b) + SQRT(D)) / (2 x a)
X2 = ((-b) - SQRT(D)) / (2 x a)

Universitas Sumatera Utara

Lanjutkan ke langkah-5
Cek harga diskriminan
IF D = 0
Jika ya, hitung akar-akar persamaan
X1X2 = ( -b ) / (2 x a)
5. Cetak hasil X1 dan X2 atau X12 atau pesan (akar-akar
imajiner)
6. Selesai

start
a b c D x1 x2

Input a b c

D=b2+4ac

D=C?

D>C ?

X1=b/2a

X1=(-b + sqrt(D)) /
2a
X2 (b
t(D)) /

X2=X1

X1=-b2/a + sqrt(D)) / 2a
X2 = -b2/a sqrt(D)) / 2a

Print x1i
x2i

Print x1
x2

end
Gambar1. Flowchart penentuan nilai diskriminan

Universitas Sumatera Utara

Determinan adalah nilai yang berada dalam akar (sqrt) pada rumus abc. Dalam
hal ini diskriminan menentukan jumlah dan sifat dari akar-akar persamaan
kuadrat. Terdapat tiga kasus yang mungkin terjadi :
1.

J
ika diskriminan bersifat nol, terdapat eksak satu akar, dan akar yang
dimaksud merupakan bilangan riil. Hal ini kadang disebut sebagai akar
ganda, dimana nilainya adalah :
X1 = X2 = -b/2a

2.

J
ika diskriminan bersifat positif, akan terdapat dua akar berbeda yang
kedua-duanya berupa bilangan riil.
X1 = (-b sqrt(D)) / 2a
X2 = (-b sqrt(D)) / 2a

Universitas Sumatera Utara

Anda mungkin juga menyukai