Home

Rabu, 05 Oktober 2011

Pengertian Dasar Logika dan Algoritma


     Algoritma adalah langkah-langkah pemecahan suatu masalah atau tahapan penyelesaian suatu pekerjaan yang dinyatakan secara sistematis, rinci, dan jelas sehingga bila dilaksanakan pada kondisi awal tertentu akan berakhir dalam selang waktu yang terbatas dan menghasilkan keluaran yang diharapkan.
Keuntungan membuat Algoritma :
-          Mempermudah Pemrograman
Yaitu pada saat perancangan Algoritma kita hanya memikirkan cara terbaik untuk menyelesaikan persoalan.
-          Pemrograman independen
Yaitu pada saat perancangan Algoritma kita tidak terkait dengan aturan penulisan dan keterbatasan kemampuan bahasa pemrograman.
-          Pemrograman Modulan
Yaitu pemrograman secara bertahap mulai dari pemecahan global sampai rinci dan mudah diterapkan pada pengembangan Algoritma.
-          Menginplementasikan dalam bahasa pemrograman
Yaitu cukup merancang 1 Algoritma kemudian menerjemahkan kedalam setiap bahasa pemrograman yang digunakan.
Sifat-sifat Algoritma :
-          Terstruktur
Algoritma terstruktur dibentuk dari sejumlah langkah-langkah blok, prosedur, dan fungsi yang mempunyai hanya satu pintu keluar.
-          Efisiensi
Algortima akan efisiensi bila mengoptimasi penggunaan memori dan pekerjaan pusat pemproses. Memori digunakan untuk menyimpan program dan struktur data yang digunakan selama pelaksanaan program.
-          Terperinci
Setiap perintah didalam Algoritma dinyatakan dengan rinci dalam arti mudah dinyatakan dengan 1 atau beberapa perintah bahasa pemrograman biasa, karena setiap langkah dinyatakan secara rinci dan algoritma tidak menimbulkan keraguan makna.
-          Independen
-          Sifat algoritma adalah independen terhadap bahasa pemrograman karena tidak menyatakan dengan bahasa pemrograman tertentu.                                                                       




                                                                          BAB 1
Algoritma dapat didefinisikan sebagai urutan langkah-langkah sistematis yang berisi suatu perintah-perintah/instruksi logis untuk melakukan suatu perhitungan atau penyelesaian suatu masalah. Algoritma digunakan sebagai rancangan awal pembuatan suatu program untuk dijalankan pada komputer.
Konsep algoritma pada awalnya digunakan sebagai alat untuk merekam suatu prosedur dalam menyelesaikan permasalahan matematika. Hasil yang diperoleh adalah langkah-langkah sistematis sehingga solusi permasalahan dapat ditemukan dengan cepat. Permasalahan-permasalahan yang dicari penyelesainnya adalah : menentukan pembagi dari dua bilangan, menentukan kelipatan dari dua bilangan, menentukan nilai terbesar atau terkecil dari sekelompok bilangan, dan lain sebagainya. Saat ini penggunaan konsep algoritma semakin luas, tidak lagi digunakan hanya pada bidang matematika. Beberapa penggunaan konsep algoritma diantaranya adalah mengenai ”decission problem” (David Hilbert, 1928), “effective calculability” (Kleene, 1943), “effective method” (Rosser, 1939), dan lain-lain.
Seiring perkembangan teknologi dan kemajuan kebudayaan, algoritma sudah mulai digunakan dalam berbagai bidang, termasuk dalam kehidupan sehari-hari, kita sebenarnya tanpa sadar telah menggunakan algoritma. Contohnya adalah ketika kita sedang bersiap menuju kampus, kantor atau tempat lainnya. Terdapat banyak hal yang kita lakukan dari mulai mempersiapkan diri hingga tiba di tempat tujuan. Sebenarnya jika kita kumpulkan hal-hal yang dikerjakan tadi, maka akan ditemukan langkah-langkah terurut dan sistematis, dimana gabungan dari keseluruhan langkah tersebut dinamakan prosedur. Suatu prosedur yang memuat langkah-langkah intruksi terurut dan sistematis, dapat dikatakan sebagai algoritma.
langkah-langkah instruksi tersebut secara umum kita kenal dengan ALGORITMA.

1.2 kriteria pemilihan algoritma
kriteria atau sifat-sifat algoritma yang terbaik:

  • ada output. mengacu pada definisi algoritma,suatu algotma haruslah mempunyai output yang harus mempunyai solusi masalah yang sedang selesaikan.
  • efektifitas dan efisiensi, dikatakan efektif jika algoritma tersebut menghasilkan suatu solusi yangsesuai dengan masalah yang diselesaikan dalam arti algoritma harus tetap huna.
  • jumlah langkahnya berhingga,maksudnya adalah barisan instruksi yang dibuat harus dalam suatu urutan tertentu yang harus berhingga agar masa;ah yang dihadapi dapat diselesaikan dengan tidak memerlukan waktu relatif lama.
  • berakhir, proses di dalam mencari penyelesaian suatu masalah harus berenti dan berakhir dengan hasil ahir yang merupakn solusinya  atau berupa informasi yang tidak diketemukan solusinya,
eterstruktur, yaitu urutan barisan langkah-langkah  yang digunakan harus disususn sedemikian rupa agar prose penyelesaian tidak berbelit-belit sedemikian sehingga bagian-bagian proses dapat dibedakan dengan jelas mana bagian input,proses, dan output sehingga memudahkan user melakukan pemeriksaan ulang.

best case adalah harus menghasilkan output yang tetap guna(efektif) dalam waktu yang relatif singkat dan penggunaan memori yang relatif sedikit efesien dengan langkah yang berhingga dan prosedurnya berahir baik dalam keadaan diperoleh suatu solusi ataupun tidak ada solusinya.

1.3 studi lanjut tenang algoritma:

a. bagaiman merencanakan suatu algoritma: menetukan beberapa model atau desain sebagai penyelesaian dari suatu masalah untuk mendapat sebuah solusi yang mungkin. dengan demikian, akan banyak terdapat variasi desain atau model yang terdapat diambil yang baik.
b. bagaimana menyatakan suatu algoritma: menentukan model suatu algoritma yang digunakan sehingga dapat membuat barisan langkah secara beurutan guaa mendapatkan solusi penyelesaian maslah.
menentukan model tersebut agr dapat digunakan, dengan cara:
  • Dengan bahasa semu(pseudocode), yaitu dengan menggunakn bahasa sehari-sehari tetapi harus jelas dan berstruktur, seperti telah penulis sebutkn pada contoh-contoh sebelumnya.
  • Dengan diagram alur (flowchart),yaitu dengan membuat suatu penulisanm yang menyajikan algoritrma berupa diagram yang menggambarkan susunan alur logika dari permasalahn.
c.    bagaiman vadilitas suatu algoritma
       yakni jika penyelesaiannya memenuhi solusi yang sebenarnya, artintya solusi yg didapat           merupakan penyelesaian suatu maslah dan bukannya membuat masalah baru.

d. bagaimana menganalisa suatu algotima
      caranya meliahat running time atau waktu tempuh yang gunakn dalam menyelesaikan masalah serta jumlah memori yang digunakan dalam penyelesaian masalah tersebut.

e.bagaimana menguji program dari suatu algoritma.
     yaitu dengan cara menyajkan nya dalam salah satu bahasa pemograman, misalnya BASIC,PASCA,FORTRAN,dBASE, atau yang lainnya.
ada beberapa tahap yaitu:

  1. Fase Debugging, yaitu fasedari suatu program elsekuso yang akan melakukan koreksi terhadap keslahan program.
  2. Fase Profilling, yaitu fase yang akan bekerja jika program tersebut sudah benar atau telah melalui proses pada fase debugging.
A. waktu tempuh atau running time dari suatu algoritma
  1. banyaknya langkah
  2. besar dan jenis input data
  3. jenis operasi
  4. komputer dan komplitor,
  5. jumlah memori yang digunakan.
1.4 Keadaan dari kompleksitas waktu
     dibedakan menjadi 3 kondisi yaitu:

  1. worst case, merupakan waktu tempuh  yang bernilai maksimum dari suatu fungsi F(N) untuk setiap input yang mungkin. keadaan ini dapat disebut juga denagn suatu keadaan analog terburuk.
  2. average case, merupakan suatu keadaan dari suatu waktu tempuh yang equivalen dengan nilai ekspektasi dari fungsi F(N) untuk setiap input data yang mungkin
  3. best case, merupakn waktu tempuh yang bernilai minimum dari suatu fungsi F(N) uuntuk setiap input yg mungkin.ia sebut juga suatu keadaan yg terbaik dari suatu prpses di dalam algoritma.
1.5 sifat-sifat algoritma 
  1. banyaknya langkah instruksi harus berhingga
  2. langkah atau instruksi harus jelas
  3. proses harus jelas dan mempunyai batasan,
  4. input dan output harus mempunyai batasan,
  5. efektifitas,
  6. adanya batasan ruang lingkup.
           
                                                                           BAB II

  1. MENGENAI PASCAL
  2. STRUKTUR PROGRAM PASCAL
  3. KONSEP DATA PASCAL
dalam konsep pascal ada 4 yaitu:
tipe sederhana: disebut tipe data skalar, yakni bahwa dalam sebuah perubah hanya dimungkinkan untuk menyimpan sebuah nilai data, yakni bahwa tipe data skalar menejukan untuk data tersebut nilainya terbentuk menurut suatu urutan tertetntu:
a. tipe ordinal adalah sebuah subset dari tipe data sederhana.

  1. merupakn himpunan berurutan (ordered set)dan nuilai berkaitan dengan ordinalitasinya, yaitu nilai integral.
  2. fungsi standar ORD atau ordinalitasnya dapat diterapkan pada sembarang tipe ordinal untuk mengetahui ordinalnya,
  3. fungsi standar PRED atau prodecessor dapat diterapkan untuk mengetahui pendahuluannya.
  4. fungsi standar SUCC atau successor dapat diterapkan untuk mengetahui nilai penerusnya.
b. tipe integer adalah tipe data yang nilainya tidak memiliki titik deasimal.


   2. tipe string adalah data yang berisi sederatan karakter yg banyaknya bs berubah2 sesuai kebutuhan dgn besarnya adalah antara 1 sampai dgn 255 karakter.
   3. tipe struktur adalah pada tipe ini setiapperubah dapat menyimpan sebuah nilai data yg msing" nilia data disebut dengan komponen.
 pada tipe ini terdapat 4 buah tipe data berstruktur, yaitu larik,rekaman,himpunan, dan berkas.

  • tipe larik(array tipe) 
  • tipe record
  • tipe set/humpunan
  • tipe file atau berkas
  • tipe pointer
  • tipe terbilang atau enumerated.
 4.Type subjangkauan atau subrange merupakan batas nilai suatu variabel dari tipe data yg telah didefinisikan.
5. Tipe  Real adalah suatu bilangan yg berisi titik desimal.

                                                                            BAB III

Diagram alur atau flowchart

1.definisi
    pemakaian komputer dewasa telah demikian pesatnya sejalan dgn kemajuan tehnpologi komputer itu sendiri.

2. Diagram alur/flowchart secara umum.
 mulai +ambil ban serep+ambil kinci" & dongkrak+mobil didongkrak+buat baut ban+lepas ban pecah+pasang ban serep+pasang baurt ban+lepas dongkrak+simpan ban pecah, kunci & dongkrak=selesai

3.diagram alur untuk program konmputer
pada dasarnya suatu program komputer umumnya terdiri atas:

  1. pembacaan/pemasukan data ke dalam komputer
  2. melakukan komputasi/perhutungan terhadap dta tersebut.
  3. mengeluarkan/mencetak/menampilkan hasilnya.
4. struktur flowchart
alat yg banyak digunakan untuk membuat algoritma dalam pembuatan program adalah diagram alur atau sering disebut dengan flowchart.
dalam membuat langkah algoritma pemograman adalah.

  • proses
  • input
  • terminal
  • decision
  • uotput
  • conector
  • flowline
5. menberi harga kepada suatu variabel
  • C<-P-Q
  • N<-N+1
  • S<-S+T
variabel terbagi 2 macam yaitu:
  1. variabel numerik/bilangan yaitu variabel yg hanya nerisi atau diberi berupa bilangan nyata/real.
  2. variabel untai kata/string yaitu variabel yg berharga untayan kata/string yg mengandung diantaranya !,*,;!,?< huruf A sampai Z, angka 0 sampai 9(sebagai simbol)

6. struktur branching
diagram yg alurnya ada/banyakm terjadi alih kontrol berupa percabangan dan terjadi apabila kita dihadapkan dengan suatu kondisi dengan 2 pilihan yaitu BENAR dan SALAH.

7.Struktur alih jalur bersyarat
percabangan atau peralihan alur ke statement lain karena terdpat kondisi yg harus diopenuhi.
struktur ini terbagi atas beberapa bagian yaitu:

  1. struktuir: IF-THEN-ELSE
  2. struktur: IF-THEN
  3. srtuktur: branch atau cabang atau keputusan tersususn pada struktur ini akan terdpat breberapa alternatif sebagai pilihan pada suatu kondisi yg ditetapkan,dengan menggunakan struktur bersarang atau tersusun dari IF-THEN-ELSE-yaitu bahwa didalam IF-THEN-ELSE terdapat IF-THEN-ELSE yg lain. 
8. struktur looping
disebut jg pemutaran kembali.
prose loop akn menimbulkan pengaruh yg bersifat kumulatif.

                                                                         BAB IV


1. STRUKTUR REKURSIF
rekursif atau recursion adalah suatu proses dari suatu subprogram yg dpt berupa fungsi atau prosedur yg memanggil dirinya sendiri.

2. FAKTORIAL
proses menghitung nilai faktorial dari bilangan bulat positif seperti contoh dibawah ini:
0!=1
N!=N*(N-1)!untukl N>0

3.KONSEP MENARA HANOI
salah satu permasalahan rekursf yg terkenal dan pertama kali ditemuakn atau menjadi bahan pemikiran seorang pendeta bugha di hanoi,vietnam- yg kemudian konsep tersebut dikenal dengan konsep menara hanoi(the tower of hanoi)

                                                                          BAB V


LARIK DAN ARAY

1. DEKLARASI TIPE INDEKS
menunjuikan maksimum banyaknya elemen dari larik itu sendiri.

  • akan mendeklarasikan array gaji yg bertipe raeal.
  • akan mendeklarasikan array nilai angka yg berupa real
  • akan mendeklarasikan array nilai yg bertipe integer
  • deklarasi indeks array bertipe subjangkauan unteger
  • deklarasi indeks array bertipe terbilang
2. LARIK DIMENSI BANYAK
    pada pembahasan sebelumnya, indeks atau subcript pd larik jumlahnya hanya sebuyah dan larik array tersebut disebut dgn larik dimensi satu(one dimensional array).

BAB VI 

1. METODE CEVIDE AND CONQUER
banyak digunakan dalam berbagai pemecahansolusi dalam permasalahan yaitu:

  • searching adalah suatu teknik dalam memilihdan menyelesaikan beberapa data sdari semua data yg ada.
  • sorting adlah suat u teknik mengurutkan data ke dalam suatu urutan tertentu, dar8i kecil ke bedar atau sebaliknya.
2. SEARCHING
memberiakn informasi yg diperlukan dgn cepat.

sistem komputer terbagi dalam 3 teknik yaitu:

  1. teknik binary search
  2. teknik sequential search
  3. teknik devide and conquer
  • binary search maxmin
prosesnay biasa digunakan untik mencari data atau elemen maksimal dan minimal pd himpunan data yg telah maksimal dan minimal pd himpunan data yg telah diurutkan dari besar ke kecil maupun sebaliknya.
waktu yg ditempuh atau time complexity yg digunakn untuuk menyelesaikan pencarian hingga mendapatkan solusi yg optiaml terbagi ayas best casae,average case, dan worst case.

  1. BEST CASE
keadaan yg hanya akan tercapai jk elemen" pd humpunan A disusun secara increasing(menarik) dari kecil ke besar karena banyaknya perbandinagn" elemen untuk mendapatkan solusinya yg diharapkan,dgn perbandingan n-1 kali satuan operasi.

     2. WORST CASE
susunan elemen dalam himpunan array disusun secar descreaing(menurun) dari besar ke kecil.
solusi yg diharapkan dapat dicapai dgn melakukan operasi perbandingan sebanyak 2(n-1)kali satuan operasi.

    3. AVERAGE CASE
keadaan yg menghasilkan waktu tempuh average case adalah jika pencarian elemen maksimal dan minimal dilakukan pd elemen" vdalam himpunan array yg tersususn secara acak (tidak descreasingf atau jarak tidak increasing).
rata" yg ditempuh best case dan worst case, yaitu sebesar 1/2[(n-1)+2(n-1)]=(3n/2-1)kali satuan operasi.

3.BINARY SEARCH GIVEN
proses digunakn tuk mencari sebuah data pd himpunban data yg telah tersusun secara urut.

4.SEARCHING DENGAN TEKNIK DANC 
dengn prinsip dasar metode devide and conquer yg telah penulis jabarkan pd awal bab.

5. SORTING
usaha tuk melakukan pengurutan (sorting) sekelompok data dalam suatu array.
 metode tersebut adalah:

  1. metode selection sort
  2. metode buble sort
  3. metode merge sort
  4. metode Quick sort
  5. metode insertion.

                                                                       BAB VII

1. OPTIAMAL STRORAGE ON TARES PROBLEM
permasalahn yg harus diselesaikan disini adalah bagaimana mengopyimalkan strorge atau memory yg adac dalam komputer agar data yg akn disimpan nantinaya dapat termuat dengan optimal. 
2.MASALAH KNAPSACK
kasus yg akan dipecahkan di sini dimisalkan terdapat n objek dgn masing objeknya dikatakn sebagai(Xi;i=1,2,3,......n) yg masing" objek tersebut mempunyai berat atau disebut Wi.

  • penyelesaian secara matematika
 dalam beberapa literatur, istialah lain dari fungsi tujuan dapat disebut sebagai fungsi utama atau juga fungsi objektif yaitu fungsi yg menjadi penyelesaian permasalahn dengan mendpatkan solusi yg optimal.
  • penyelesaian dengan kriteria greedy
 untuk mendapatkan solusi yg optimal dengan depat,efisien,dan efektif akan kita gunakan konsep kriteria yg dirtawarkan oleh metode greedy yaitu:
>. pilih objek(barang) gdengan nilai Pi maksimal atau terbesar
>. pilih objek(barang) pilih objek(barang) dgn perbandingan dr nilai dgn beratnya yaitu Pi/Wi yg terbesar.

  • penyelesaian dengan algoritma pemograman greedy
yg akn menimbulkan dilema tuk suatu permasalahan yg ruang lingkupnya sangat luas.

3.MINIMUM SPANNING TREE PROBLEM
  kasus yg akan dipecahkan pd minimum spanning tree problem adalah mencari minimum biaya(cosy) spanning tree dari setiap ruas (edge) suatu graph yg membentuk pohon (tree)

4. SHORTTEST PATH PROBLEM
permasalhan umum adalah menentuaknm atau menghitung jalur terpendek dari sebuah graph berarah. kriteria yg harus dipenuhi untuk mendapatjan solusi opyimal dari shortest path hampir sama fdegan kriteria permasalahn pada minimum spanning tree, hanya terdapat sedikit perbedaan.
kriteria tuk permasalahn jalur terpendek atau shortest path problem tersebut antara lain adalah:

  • setiap ruas pada graph harus mempunyai nilai (label graph)
  • setiap ruas graph pada tidak harus terhubung(unconnected)
  • setiap ruas pada graph tersebut harus mempunyai arah(graph berarah)





Kutipan : 

http://ilmuti.com/2011/04/24/pengertian-algoritma/