Minggu, 23 Oktober 2016



Nama    : Manipan Alfanso Aritonang
NIM      : 153303030435




1. Deret Geometri


Jumlah dari n suku pertama suatu barisan geometri disebut sebagai deret geometri. Jika suku ke-n dari barisan geometri dirumuskan: an = a1rn – 1, maka deret geometri dapat dituliskan sebagai,

 

Jika kita mengalikan deret tersebut dengan –r kemudian menjumlahkannya dengan deret aslinya, kita mendapatkan


Sehingga kita memperoleh Sn – rSn = a1 – a1rn. Dengan menyelesaikan persamaan tersebut untuk Sn, kita mendapatkan


Jumlah n Suku Pertama Barisan Geometri
Diberikan suatu barisan geometri dengan suku pertama a1 dan rasio r, jumlah n suku pertamanya adalah

Atau bisa dikatakan: Jumlah dari barisan geometri sama dengan selisih dari suku pertama dan suku n + 1, kemudian dibagi dengan 1 dikurangi rasionya.

Contoh 1: Menghitung Deret Geometri


Hitunglah jumlah 9 suku pertama dari barisan an = 3n.
Pembahasan Jumlah 9 suku pertama dapat juga dinotasikan ke dalam notasi sigma sebagai berikut.


Dari deret tersebut kita dapat memperoleh suku pertama a1 = 3, rasio r = 3, dan banyaknya suku n = 9. Dengan menggunakan rumus jumlah n suku pertama, kita mendapatkan


Jadi, jumlah sembilan suku pertama dari barisan an = 3n adalah 29.523.


2. Algoritma sequential search.

procedure PencarianBeruntun(input a1, a2, ..., an : integer, x :integer,
                            output idx : integer)
Deklarasi
  k : integer
  ketemu : boolean   { bernilai true jika x ditemukan atau false jika x tidak ditemukan }

Algoritma:
  k¬1
  ketemu ¬ false
  while (k £ n) and (not ketemu) do
    if ak = x then                                  
      ketemu¬true
    else   
      k ¬ k + 1
    endif
  endwhile
  { k > n or ketemu }

  if ketemu then   { x ditemukan }
     idx¬k
  else
     idx¬ 0       { x tidak ditemukan }
  endif



1. Kasus terbaik: ini terjadi bila a1 = x.
Tmin(n) = 1

2 Kasus terburuk: bila an = x atau x tidak ditemukan.

 Tmax(n)  = n

3. Kasus rata-rata: Jika x ditemukan pada posisi ke-j, maka operasi perbandingan (ak = x)akan dieksekusi sebanyak j kali.

     Tavg(n) =

Minggu, 16 Oktober 2016

Menghitung Kompleksitas Waktu Asimptotik Nilai Maksimum dan Minimum



Nama : Manipan Alfanso Aritonang
NIM   : 153303030435
Fakustal Teknologi dan Informasi


Procedure Min Maks1 (input A : Tabel Int, n : integer, output min, maks : integer)
(Mencari nilai minimum dan maksimum di dalam tabel A yang berukuran n elemen, secara brute force.

Masukan: tabel A yang sudah terdefinisi elemen-elemennya
Keluaran: nilai maksimum dan nilai minimum tabel ).

Deklarasi
   i : integer

Algoritma:
       min ← Ai  ( inisialisasi nilai minimum )
       maks ← Ai  (inisialisasi nilai maksimum )
for i ←2 to n do

  if Ai  < min then
   min ← Ai
  endif

  if Ai  > maks then
   maks ← Ai
  endif

endfor

Hitung Kompleksitas Waktu Asimptotik. T(n) dari algoritma tersebut diatas

Jawab:

if i=j then { 1 elemen }
min←Ai
maks←Ai
else
if (i = j-1) then { 2 elemen }
if Ai < Aj then
maks←Aj
min←Ai
else
maks←Ai
min←Aj
endif

else { lebih dari 2 elemen }
k←(i+j) div 2 { bagidua tabel pada posisi k }
MinMaks2(A, i, k, min1, maks1)
MinMaks2(A, k+1, j, min2, maks2)
if min1 < min2 then
min←min1
else
min←min2
endif
if maks1<maks2 then
maks←maks2
else
maks←maks2
endif

Penyelesaian




Asumsi: n = 2k, dengan k bilangan bulat positif












Selasa, 11 Oktober 2016

Tugas I Analisa Dan Desain Algoritma

Nama       : Manipan Alfanso Aritonang
Fakultas   : Teknologi  & Informasi Komputer
                 UNIVERSITAS PRIMA INDONESIA



A. EUCLIDEAN
Algoritma Euclidean adalah salah satu metode yang mangkus dalam mencari Pembagi Bersama Terbesar (greates), disingkat menjadi PBB. Algoritma ini sudah dikenal sejak berabad-abad yang lalu. Euclid ,penemu Algoritma Euclidean, adalah seorang matematikawan yunani yang menuliskan algoritmanya tersebut dalam bukunya yang terkanal yang berjudul Element. Secara formal algoritma Euclidean dirumuskan sebagai berikut.
Misalkan m dan n adalah bilangan bulat
tak negatif dengan m ≥ n. Misalkan r0 = m
dan r1 = n , lakukan secara berturut –
turut pembagian seperti dibawah ini.

r0 = r1q1 + r2 0≤ r2 ≤ r1
            r1 = r2q2 + r3 0≤ r3 ≤ r2
Euclidean ini biasanya diterapkan pada 2 dimensi dan 3 dimensi. Tapi juga sederhana jika diterapkan pada dimensi yang lebih tinggi.

1 dimensi
Semisal ingin menghitung jarak Euclidean 1 dimensi. Titip pertama adalah 4, titik kedua adalah -10. Caranya adalah kurankan -10 dengan 4. sehingga menghasilkan -14. Cari nilai absolut dari nilai -14 dengan cara mempangkatkannya sehingga mendapat nilai 196. Kemudian diakarkan sehingga mendapatkan nilai 14. Sehingga jarak euclidean dari 2 titik tersebut adalah 14.

2 dimensi
Caranya hampir sama. Misalkan titik pertama mempunyai kordinat (3,5). Titik kedua ada di kordinat (5,-3). Caranya adalah kurangkan setiap kordinat titik kedua dengan titik yang pertama. Yaitu, (5-3,-3-5) sehingga menjadi (2,-8). Kemudian pangkatnya sehingga memperoleh (4,64). Kemudian tambahkan semuanya sehingga memperoleh nilai 64+4 = 68. Hasil ini kemudian diakarkan menjadi 8.25. Sehingga jarak euclideannya menjadi 8.25.
 
 
B. POLI NOMIAL

polinomial adalah sebuah ungkapan aljabar yang variabel (peubahnya) berpangkat Bilangan bulat non negative. 

Bentuk umum :


   y = F(x) = a0xn + a1xn-1 + a2xn-2 + … + an-1x + an


Dengan n Ð„ bilangan bulat
                        an ≠ 0
Pengertian-pengertian:
a0, a1, a2 ,…, an-1 , an
Disebut koefisien masing-masing bilangan real (walaupun boleh juga bilangan kompleks)

Derajat Suku Banyak adalah pangkat tertinggi dari pangkat-pangkat pada tiap-tiap suku, disebut n.Untuk suku banyak nol dikatakan tidak memiliki derajat.

Suku : a0xn , a1xn-1 , a2xn-2 , … , an-1x , an
Masing-masing merupakan suku dari suku banyak

Suku Tetap (konstanta)
Aadalah suku tetap atau konstanta, tidak mengandung variabel/peubah. Sedangkan anxn adalah suku berderajat tinggi.

C.  OPP (Object Oriented Programing) VS Modular
OOP (Object Oriented Programming) adalah suatu metode pemrograman yang berorientasi kepada objek. Tujuan dari OOPdiciptakan adalah untuk mempermudah pengembangan program dengan cara mengikuti model yang telah ada di kehidupan sehari-hari

OOP memiliki beberapa keuntungan dalam pemrograman, di antaranya:

OOP menyediakan struktur modular yang jelas untuk program sehingga OOP sangat bagus digunakan untuk mendefinisikan tipe data abstrak di mana detil implementasinya tersembunyi.

OOP akan mempermudah dalam memaintain dan memodifikasi kode yang sudah ada. Objek yang baru dapat dibuat tanpa mengubah kode yang sudah ada.

OOP menyediakan framework untuk library kode di mana komponen software yang tersedia dapat dengan mudah diadaptasi dan dimodifikasi oleh programmer. Hal ini sangat berguna untuk mengembangkan GUI (Graphical User Interfaces).


Sedangkan beberapa kelemahan OOP antara lain adalah sebagai berikut:
1. Tidak memperbolehkan implementasi yang kuat pada reuse
2. Properti software tidak terikat dalam satu unit fungsional, sehingga harus
crosscut di antara komponennya.
3. Crosscut tersebut mengakibatkan sulitnya pengembangan dan pemeliharaan.

 Modular 
 modular adalah gaya desain/layout yang menggunakan bentuk sisi empat vertikal dan horizontal, yang seimbang, untuk semua elemen halaman

Kelebihan Modular 
   1. Teknik pemrograman modular memungkinkan kita membangun program besar dan  kompleks.
    2.     Teknik Pemrograman modular membantu dalam pengembangan algoritma
    3.     Pemrograman modular memudahkan orang lain memahami algoritma yang kita buat.