Algoritma

download Algoritma

of 13

Transcript of Algoritma

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. 2.

Assembly BASIC:o o o o o

ASP BASIC COMAL Visual Basic Visual Basic for Applications

Universitas Sumatera Utara

o 3. 4. 5.

VBScript

Batch (MS-DOS) COBOL UNIX shell script:o o o o

Bourne shell (sh) script Bourne-Again shell (bash) script Korn shell (ksh) script C shell (csh) script

6.

C:o o o

C++ C# Visual 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

short struct

unsigned

break continue else

for

long

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

mutable

protected

true

wchar_t

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

Keterangan

Ukuran

Jangkauan

char

Abjad/karakter atau untuk bilangan bulat kecil

1 byte

signed: -128 to 127 unsigned: 0 to 255 signed: -32768 to 32767 unsigned: 0 to 65535 signed: -2147483648 to 2147483647

short int (short)

Bilangan bulat dengan jangkauan 2 byte pendek

int

Bilangan bulat

4 byte unsigned: 0 to 4294967295

long int (long)

signed: -2147483648 to 2147483647 Integer dengan jangkauan panjang 4 byte unsigned: 0 to 4294967295 Boolean, dapat bernilai benar atau salah (true or false) Angka dengan titik mengambang (bilangan cacah) i byte true or false

bool float

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

Universitas Sumatera Utara

double long double wchar_t

Bilangan cacah dengan ketelitian ganda Bilangan cacah dengan ketelitian ganda panjang Karakter lebar, biasa dipakai untuk Unicode karakter

8 byte 1.7e +/- 308 (15 digits) 8 byte 1.7e +/- 308 (15 digits) 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 Bentuk umum dari persamaan kuadrat adalah : Y = ax2 + bx + c ; dimana a0

berorde 2.

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

starta b c D x1 x2

Input a b c

D=b2+4ac

D=C?

D>C ?

X1=b/2a

X2=X1

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

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. 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. 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 J J

Universitas Sumatera Utara