Pages

Minggu, 04 Mei 2014

landasan teori algoritma

BAB II
LANDASAN TEORI
 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
o BASIC
o COMAL
o Visual Basic
o Visual Basic for Applications Universitas Sumatera Utara
o VBScript
3. Batch (MS-DOS)
4. COBOL
5. UNIX shell script:
o Bourne shell (sh) script
o Bourne-Again shell (bash) script
o Korn shell (ksh) script
o C shell (csh) script
6. C:
o C++
o C#
o Visual C++
Dan dalam penyelesaian permasalahan ini penulis mencoba menggunakan bahasa pemrograman C++.
C++ adalah salah satu bahasa pemrograman komputer. Dibuat pada tahun 1980-an 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
short int (short)
Bilangan bulat dengan jangkauan pendek
2 byte
signed: -32768 to 32767
unsigned: 0 to 65535
int
Bilangan bulat
4 byte
signed: -2147483648 to 2147483647
unsigned: 0 to 4294967295
long int (long)
Integer dengan jangkauan panjang
4 byte
signed: -2147483648 to 2147483647
unsigned: 0 to 4294967295
bool
Boolean, dapat bernilai benar atau salah (true or false)
i byte
true or false
float
Angka dengan titik mengambang (bilangan cacah)
4 byte
3.4e +/- 38 (7 digit) 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 kata-kata 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 a≠0
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
Gambar1. Flowchart penentuan nilai diskriminan
start
a b c D x1 x2
Input a b c
D=b2+4ac
D=C?
D>C ?
Print x1 x2
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”
end

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. Jika 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. Jika diskriminan bersifat positif, akan terdapat dua akar berbeda yang kedua-duanya berupa bilangan riil.
X1 = (-b – sqrt(D)) / 2a
X2 = (-b – sqrt(D)) / 2a

0 komentar:

Posting Komentar