Академический Документы
Профессиональный Документы
Культура Документы
0751001
1. PENDAHULUAN
Ilmu komputer secara umum diartikan sebagai ilmu yang mempelajari baik tentang
komputasi, perangkat keras (hardware) maupun perangkat lunak (software). Ilmu komputer
mencakup beragam topik yang berkaitan dengan komputer, mulai dari analisa abstrak
algoritma sampai subyek yang lebih konkret seperti bahasa pemrograman, perangkat lunak,
termasuk perangkat keras. Sebagai suatu disiplin ilmu, Ilmu Komputer lebih menekankan
pada pemrograman komputer, dan rekayasa perangkat lunak (software), sementara teknik
komputer lebih cenderung berkaitan dengan hal-hal seperti perangkat keras komputer
(hardware). Namun demikian, kedua istilah tersebut sering disalah-artikan oleh banyak
orang. Ilmu Komputer mempelajari apa yang bisa dilakukan oleh beberapa program, dan apa
yang tidak (komputabilitas dan intelegensia buatan), bagaimana program itu harus
mengevaluasi suatu hasil (algoritma), bagaimana program harus menyimpan dan mengambil
bit tertentu dari suatu informasi (struktur data), dan bagaimana program dan pengguna
berkomunikasi (antarmuka pengguna dan bahasa pemrograman).
Ilmu komputer berakar dari elektronika, matematika dan linguistik. Dalam tiga dekade
terakhir dari abad 20, ilmu komputer telah menjadi suatu disiplin ilmu baru dan telah
mengembangkan metode dan istilah sendiri. Dalam matematika dan komputasi, algoritma
merupakan kumpulan perintah untuk menyelesaikan suatu masalah. Perintah-perintah ini
dapat diterjemahkan secara bertahap dari awal hingga akhir. Masalah tersebut dapat berupa
apa saja, dengan catatan untuk setiap masalah, ada kriteria kondisi awal yang harus dipenuhi
sebelum menjalankan algoritma. Algoritma akan dapat selalu berakhir untuk semua kondisi
awal yang memenuhi kriteria, dalam hal ini berbeda dengan heuristik. Algoritma sering
mempunyai langkah pengulangan (iterasi) atau memerlukan keputusan (logika Boolean dan
perbandingan) sampai tugasnya selesai. Desain dan analisis algoritma adalah suatu cabang
khusus dalam ilmu komputer yang mempelajari karakteristik dan performa dari suatu
algoritma dalam menyelesaikan masalah, terlepas dari implementasi algoritma tersebut.
Dalam cabang disiplin ini algoritma dipelajari secara abstrak, terlepas dari sistem komputer
atau bahasa pemrograman yang digunakan. Algoritma yang berbeda dapat diterapkan pada
suatu masalah dengan kriteria yang sama.
Kompleksitas dari suatu algoritma merupakan ukuran seberapa banyak komputasi yang
dibutuhkan algoritma tersebut untuk menyelesaikan masalah. Secara informal, algoritma
yang dapat menyelesaikan suatu permasalahan dalam waktu yang singkat memiliki
kompleksitas yang rendah, sementara algoritma yang membutuhkan waktu lama untuk
menyelesaikan masalahnya mempunyai kompleksitas yang tinggi.
Jenis-jenis Algoritma
Terdapat beragam klasifikasi algoritma dan setiap klasifikasi mempunyai alasan
tersendiri. Salah satu cara untuk melakukan klasifikasi jenis-jenis algoritma adalah dengan
memperhatikan paradigma dan metode yang digunakan untuk mendesain algoritma tersebut.
Beberapa paradigma yang digunakan dalam menyusun suatu algoritma akan dipaparkan
dibagian ini. Masing-masing paradigma dapat digunakan dalam banyak algoritma yang
berbeda.
a. Divide and Conquer, paradigma untuk membagi suatu permasalahan besar menjadi
permasalahan-permasalahan yang lebih kecil. Pembagian masalah ini dilakukan terus
menerus sampai ditemukan bagian masalah kecil yang mudah untuk dipecahkan.
Singkatnya menyelesaikan keseluruhan masalah dengan membagi masalah besar dan
kemudian memecahkan permasalahan-permasalahan kecil yang terbentuk.
b. Dynamic programming, paradigma pemrograman dinamik akan sesuai jika
digunakan pada suatu masalah yang mengandung sub-struktur yang optimal (, dan
mengandung beberapa bagian permasalahan yang tumpang tindih . Paradigma ini
sekilas terlihat mirip dengan paradigma Divide and Conquer, sama-sama mencoba
untuk membagi permasalahan menjadi sub permasalahan yang lebih kecil, tapi secara
intrinsik ada perbedaan dari karakter permasalahan yang dihadapi.
c. Metode serakah. Sebuah algoritma serakah mirip dengan sebuah Pemrograman
dinamik, bedanya jawaban dari submasalah tidak perlu diketahui dalam setiap tahap;
dan menggunakan pilihan "serakah" apa yang dilihat terbaik pada saat itu.
Operasi tanpa mengalami perubahan sintak sama sekali. Matlab merupakan singkatan dari
Matric Laboratory, yakni merupakan bahasa
pemrograman haig perpomace, bahasa pemrograman level tinggi yang khususnya untuk
komputasi teknis. Bahasa ini mengintegrasikan kemampuan komputasi, visualisasi dan
pemrograman dalam sebuah lingkungan yang tunggal dan mudah digunakan.
a. Algoritma mempunyai awal dan akhir. Suatu algoritma harus berhenti setelah
mengerjakan serangkaian tugas atau dengan kata lain suatu algoritma memiliki
langkah yang terbatas.
b. Setiap langkah harus didefinisikan dengan tepat sehingga tidak memiliki arti ganda
(not ambiguous).
c. Memiliki masukan (input) atau kondisi awal.
d. Memiliki keluaran (output) atau kondisi akhir.
e. Algoritma harus efektif; bila diikuti benar-benar akan menyelesaikan persoalan.
Algoritma bisa ditemukan dalam kehidupan sehari-hari, misalnya sebagai berikut:
Agar bentuk algoritma dan proses penyusunannya dapat mulai dipahami maka
berikut ini akan diuraikan proses pembuatan algoritma mulai bentuk yang menggunakan
bahasa sehari-hari, disusul penjelasan format algoritma yang dapat dijadikan acuan, dan
beberapa contoh pembuatan algoritma yang mengikuti format tersebut.
Contoh : Susun algoritma untuk mencari angka terbesar (maksimum) dari suatu
Kumpulan bilangan bulat yang terbatas jumlahnya.
Solusi:
1. Anggaplah angka pertama dalam kumpulan tersebut adalah yang terbesar
(maksimum).
2. Bandingkan angka maksimum ini dengan angka berikutnya dalam kumpulan. Bila
angka berikut tersebut lebih besar maka jadikanlah maksimum.
3. Ulangi langkah 2 ini sehingga tidak ada lagi angka yang tersisa dalam himpunan.
4. Hentikan pembandingan setelah semua angka selesai dibandingkan sehingga angka
terbesar dalam himpunan tersebut adalah angka maksimum terakhir.
Solusi tersebut dalam bentuk simbol instruksi adalah sebagai berikut :
andaikan N = banyaknya angka dalam himpunan
index = 1
maksimum = angka(index)
selama index < N , lakukan:
oindex = index + 1
obila angka(index) > maksimum maka maksimum = angka (index)
oulangi lagi untuk index berikutnya
angka terbesar dalam himpunan adalah maksimum terakhir.
Struktur Algoritma
Bagian Kepala (Header): memuat nama algoritma serta informasi atau keterangan
tentang algoritma yang ditulis.
Bagian Deklarasi/Definisi Variabel: memuat definisi tentang nama variabel, nama
tetapan, nama prosedur, nama fungsi, tipe data yang akan digunakan dalam
algoritma.
oBagian Deskripsi /Rincian Langkah: memuat langkah-langkah penyelesaian
masalah, termasuk beberapa perintah seperti baca data, tampilkan, ulangi, yang
mengubah data input menjadi output, dan sebagainya
Fungsi Secan
Secan x sec (x): Arc secan x asec (x)
Secan hiperbolik x sech (x) : Arc secan hiperbolik asech (x)
Fungsi Cosecan
Cosecan x csc (x) : Arc cosecan x acsc (x)
Cosecan hiperbolik x csch (x) :Arc cosecan hiperbolik x acsch (x)
Fungsi Cotangen
Cotangen x cot (x) : Arc Cotangen x acot (x)
Cotangen hiperbolik x coth (x) : Arc cotan hiperbolik x acoth (x)
1ogy (x) , fungsi ini digunakan untuk mencari nilai logaritma berbasis y. Jadi,
logaritma berbasis 10 tidak seperti biasanya yaitu ditulis dengan log x saja, tetapi
dianggap sebagai bilangan y. Jadi, dalam MATLAB 1og x di tul is log10 (x).
Akar pangkat dua: sqrt (x), fungsi ini berguna untuk mencari akar pangkat
dua dari x.
atau -x
kompleks
Nilai imajiner , digunakan untuk mengambil nilai
3.1.4. Pembulatan menuju integer terdekat: round (x), fungsi ini digunakan
Fungsi pembulatan dan sisa dalam MATLAB, digunakan untuk
untuk membulatkan x ke nilai integer terdekat.
Misal :
round (3.84) menghasilkan 4 dan round (-3.84) menghasilkan -4
round (0.52) menghasilkan 1 dan round (-0.52) menghasilkan -1
Pendekatan menuju nol : → fix (x), fungsi ini digunakan untuk membulatkan
x ke nilai yang lebih dekat 0.
Misal:
fix (3.84) menghasilkan 3 dan fix (-3. 84) menghasilkan -3
fix (5.32) menghasilkan 5 dan fix (-5.32) menghasilkan – 5
fix (0.52) menghasilkan 0 dan fix (-0.52) menghasilkan 0
Pembulatan menuju -∞ : → flor (x), fungsi ini digunakan untuk membulatkan x
ke nilai yang lebih mendekati -∞.
Misal:
flor (3.84) menghasilkan 3 dan f lor(-3.84) menghasilkan -4
flor (5.32) menghasilkan 5 dan flor (-5.32) menghasilkan -5
flor (0.52) menghasilkan 0 dan f lor (-0.52) menghasilkan -1
Pembulatan menuju +∞ : → ceil (x), fungsi ini digunakan untuk membulatkan
x ke nilai yang lebih dekat +∞.
Misal:
ceil (3.84) menghasilkan 4 clan ceil (-3.84) menghasilkan -4
ceil (5.32) menghasilkan 5 clan ceil (-5.32)menghasilkan -5
ceil (0.52) menghasilkan 4 clan ceil (-0.52) menghasilkan 0
Sisa setelah pembagian: → rem (x, y), fungsi ini digunakan untuk mengambil sisa
dari x/y dengan tanda yang sama dengan x.
Misal:
rem (15.2) menghasilkan 1 clan rem (-15.2)menghasilkan -1
rem (-13.5) menghasilkan - 3 dan rem (13.5) menghasilkan 3
Relasi Deskripsi
| OR (atau)
~ NOT (negasi)
Relasi Deskripsi
== Sama dengan
Beberapa penggunaan operator aritmatika antara dua operand (A dan B) ditunjukkan pada
tabel berikut ini :
Beberapa fungsi matematika lainnya yang dapat kita gunakan untuk operasi matematika
antara lain sebagai berikut:
abs(x) : fungsi untuk menghasilkan nilai absolut dari x
sign(x) : fungsi untuk menghasilkan nilai -1 jika x<0, 0 jika x=0 dan 1 jika x>1
exp(x) : untuk menghasilkan nilai eksponensian natural,
3.3. Statement if
Statement if akan mengeksekusi sekumpulan instruksi apabila suatu kondisi yang
diisyaratkan bemilai benar. Statement if diakhiri dengan end. Jika ada kondisi yang
berlawanan (false), statement if dapat diikuti dengan statement else atau elseif.
Contoh :
x=input('Masukan bilangan bulat x=')
if rem(x,2)==0
x=' == GENAP==’
else
x=' == GANJIL =='
end
Contoh ini akan mengidentifikasi sifat bilangan X, apakah termasuk bilangan ganjil
atau genap.
pada window di atas dapat dilakukan akses-akses ke command- command MATLAB dengan
cara mengetikkan barisan-barisan ekpresi MATLAB, seperti mengakses help window dan
lain-lainnya.
Jika perintah-perintah yang sudah diketikkan dan hasil yang ditampilkan pada layar
command window akan disimpan maka dapat dilakukan dengan menggunkan command
diary. Sebagai contoh jika ingin disimpan output
m =
1 2 3
5 2 1
direktori c:\backup dengan nama file mydata.txt, maka dapat dilakukan dengan mengetikan :
» m=[1 2 3;5 2 1]
m =
1 2 3
5 2 1
» diary 'c:\backup\mydata.txt'
dan jika ingin menutup file ini maka ketikkan
» diary off
x =
x =
1 4
x =
1 4 9
x =
1 4 9 16
x =
4 9 16 25
Perhatikanlah hasil keluaran yang terbentuk bila tanda ditambahkan tanda (;) pada
perintah di antara for-end
Bandingkan bila penulisan perintah perhitungan x(n) = n^2 ditulis x = n^2.
Operasi perkalian 2 buah vector
>> x = [1 2 3];
>> y = [4 5 6];
>> sum = 0;
>> for i = 1:3
sum = sum + x(i)*y(i)
end
sum =
4
sum =
14
sum =
32
4.2.3. If-Statement
Bentuk umum:
if if_ekspresi
perintah-perintah
end
If_ekspresi juga mengikuti bentuk hubungan e1•e2. Perintah-perintah di antara baris if dan
end dikerjakan jika semua elemen di dalam ekspresi benar.
Contoh permasalahan
Sebuah toko yang menjual buah-buahan menetapkan akan memberikan potongan harga
sebesar 20% bila pelanggannya membeli apel lebih dari 10.
clc
if apel > 5
bayar = (1-20/100)*bayar;
end
disp(['Jumlah yang harus dibayar = Rp ', num2str(bayar)])
Running Program:
Apel yang dibeli = 5
Jumlah yang harus dibayar = Rp 5000
if NR > 60
ket = 'lulus';
else
ket = 'gagal';
end
disp(' ')
disp(['Nama = ', nama])
Nama = A
Nilai rata-rata = 65
Hasil akhir = lulus
Jika terdapat 3 atau lebih pilihan, konstruksi if-else-end mengambil bentuk:
if if_ekspresi1
perintah dikerjakan jika if_ekspresi1 benar
elseif if_ekspresi2
perintah dikerjakan jika if_ekspresi2 benar
elseif if_ekspresi3
perintah dikerjakan jika if_ekspresi3 benar
elseif if_ekspresi4
perintah dikerjakan jika if_ekspresi4 benar
elseif ……
.
.
else
perintah dikerjakan jika tidak ada if_ekspresi yang benar
end
4.2.4. Switch-case-otherwise
Bentuk umum:
switch ekspresi
case ekspresi1
perintah-perintah
case ekspresi2
perintah-perintah
case ….
.
otherwise
perintah-perintah
end
contoh aplikasi
clc
disp('1. Metoda Substitusi Berurut')
disp('2. Metoda Newton-Raphson')
disp('3. Metoda Tali Busur')
a =
0 0 0
0 0 0
>> b = ones(1,3)
b =
1 1 1
>> c = rand(2,2)
c =
0.9501 0.6068
0.2311 0.4860
d =
>> e = eye(3,3)
e =
1 0 0
0 1 0
0 0 1
Untuk memanggil isi dari suatu data matriks, gunakan tanda kurung ‘()’ dengan isi indeks
dari data yang akan dipanggil. Contoh penggunaan :
>> c(2,2)
ans =
0.4860
Untuk pemanggilan data berurutan seperti a(1,2,3) dapat disingkat dengan
menggunakan tanda titik dua ‘:’ sehingga menjadi a(1:2). Penggunaan tanda titik dua ‘:’ juga
dapat digunakan untuk memanggil data matriks perbaris atau perkolom.
Contoh penggunaan:
c(2:5) = memanggil data matrik baris 2 sampai baris 5
a(1,:) = memanggil data matriks pada baris pertama
b(:,3) = memanggil data matris pada kolom ketiga
evalgint.m
function y=evalgint(A)
y = A(1)^2 + A(2)^2;
multgint.m
function [a,b]=multgint(A,B)
a1 = A(1)+A(2)*i;
a2 = B(1)+B(2)*i;
a = real(a1*a2);
b = imag(a1*a2);
subrat.m
function [x1,x2]=subrat(a,b)
c = ceil(abs(a)/b);
if (a < 0)
x1 = -x1;
x2 = -x2;
end;
divalggint.m
function [P,R]=divalggint(A,B)
P = zeros(1,2);
R = zeros(1,2);
v1 = evalgint(A);
v2 = evalgint(B);
if (v1 < v2)
P(1) = 0;
P(2) = 0;
R(1) = A(1);
R(2) = A(2);
else
d = evalgint(B);
c1 = A(1)*B(1) + A(2)*B(2);
c2 = A(2)*B(1) - A(1)*B(2);
P(1) = e1;
P(2) = e3;
R(1) = r1/d;
R(2) = r2/d;
end;
Pada program ini, Gaussian Integer dinyatakan sebagai matriks berukuran 1 x 2, misalkan a +
bi ϵ Z [i] maka matriks yang dimaksud adalah [ a b ] .
Fungsi evalgint digunakan sebagai fungsi evaluasi v , yaitu evalgint ([a b]) = a2 + b2
Fungsi multgint digunakan sebagai fungsi untuk menghitung perkalian x,y dengan x,y ∈ Z[i],
yaitu multgint ([a b], [c d]) = [(ac – bd) (bc + ad)].
Fungsi divalggint digunakan untuk mencari nilai p,r ∈ Z [i] yang memenuhi a = bp + r
dengan r = 0 atau v ( r ) < v ( y ).
Contoh penggunaan program
>> evalgint([3 -1])
ans =
10
Artinya, mencari nilai
m1 =
-10
m2 =
10
Artinya, menghtung perkalian ( -4 + 2i ) dengan ( 3 – 1 ), yaitu (-4 + 2i ) ( 3 – I )
=
>> [a,b]=subrat(3,4)
a =
b =
-1
Artinya,
P =
-2 -1
R =
2 0
Artinya, (-5 + I ) = ( 3 – i ) ( -2 – i ) + 2