Translate

Selasa, 25 November 2014

Makalah Logika dan Algoritma


BAB II
PEMBAHASAN

2.1 PENGERTIAN LOGIKA DAN ALGORITMA
A.     Pengertian Logika
         Di perkenalkan pertama kali oleh aristoteles (384-322 SM).
Logika berasal dari
bahasa Yunani Kuno yaitu logos yang berarti ilmu.
Pengertiannya yaitu hasil pertimbangan akal pikiran yang diutarakan lewat kata dan dinyatakan dalam bahasa.
B.      Pengertian Algoritma
Diperkenalkan Oleh Ahli Matematika : Abu Ja’far Muhammad Ibnu Musa Al Khawarizmi. Seorang ilmuan Persia yang menulis kitab al jabr w’al muqabala (rules of restoration and reduction) sekitar tahun 825 M.
Algoritma adalah kumpulan instruksi yang dibuat secara jelas untuk menunjukan langkah-langkah penyelesaian suatu masalah. Pada umumnya algoritma kurang lebih sama dengan suatu prosedur yang sering dilakukan setiap hari, misalnya prosedur untuk mengganti ban bocor atau pecah, prosedur pemakaian telepon umum, prosedur membuat kue dan lain-lain.
C.    Definisi Logika
Secara umum definisi logika sebagai berikut:
1.     Penalaran atau bentuk pemikiran.
2.     Ilmu yang memberikan perinsip-prinsip yang harus di ikuti agar dapat berfikir valid menurut aturan yang berlaku.
D.    Definisi Algoritma
Sedangkan untuk definisi algorima adalah sebagai berikut:
1.    Langkah-langkah yang di lakukan agar solusi masalah dapat di peroleh.
2.    Suatu prosedur yang merupakan urutan langkah-langkahyang berintegrasi.
3.     Suatu metode khusus yang di gunakan untuk menyelesaikan suatu masalah yang nyata.(Webster Dictionary).
E.    Kriteria Pemilihan Algoritma
Dalam pemilihan suatu algoritma harus memperhatikan hal-hal berikut ini:
1. Ada Output
2. Efektifitas dan Efesiensi
3. Jumlah Langkahnya Berhingga
4. Berakhir
5. Terstruktur.
Suatu Algoritma yg terbaik (The Best) : “ Suatu algoritma harus menghasilkan output yang tepat guna (efektif) dalam waktu yang relatif singkat & penggunaan memori yang relatife sedikit (efesien) dengan langkah yang berhingga & prosedurnya berakhir baik dlm keadaan diperoleh suatu solusi ataupun tidak ada solusinya. “

2.2 SYARAT-SYARAT ALGORITMA
Syarat-syarat suatu algoritma yaitu:
1. Finiteness (Keterbatasan)
     Algoritma harus berakhir setelah melakukan sejumlah langkah proses.
2. Definitenes (kepastian)
Setiap langkah Algoritma harus didefinisikan dengan tepat dan hasil yang diperoleh harus berkualitas tinggi  dan  benar tidak   menimbulkan   makna   ganda.
3. Portability (portabilitas yang tinggi)
Prosedur pada algoritma harus cukup dikonversikan kedalam program komputer.
4. Prices (Tepat,  Betul, Teliti)
Setiap intruksi harus ditulis dengan seksama dan tidak ragu – ragu dengan demikian setiap intruksi harus dinyatakan secara jelas dan tidak  ada bagian  yang dihilangkan karena proses dianggap sudah mengerti.                                                                                                                                   Contohnya: Tambahkan 1 atau 2 pada x ( intruksi tersebut terdapat keraguan).
5. Input (Masukan)
Sebuah Algoritma memiliki nol atau lebih masukan yang diberikan kepada algoritma sebelum dijalankan.
6. Output (Keluaran)
Setiap Algoritma memberikan satu atau beberapa kali hasil keluaran.
7. Efektiveness (Efektivitas)
Langkah – langkah Algoritma dikerjakan dalam waktu yang wajar, tidak boleh ada intruksi yang tidak mungkin dikerjakan oleh pemrosesnya.
Cotoh peyelesaian dengan Algoritma :
Diberikan dua gelas (A dan B) gelas A berisi  air kopi dan gelas B berisi air  teh. Pertukarkan isi gelas tersebut sehingga menghasilkan gelas A semula berisi air kopi mejadi berisi air  teh dan gelas B yang semula berisi air teh menjadi berisi air kopi dan, untuk penyelesaiannya diperlukan gelas C untuk penampungan sementara.
Deskripsi dari contoh algoritma tersebut :
- Tuangkan isi gelas A ke gelas C
- Tuangkan isi gelas B ke gelas  A
- Terakhir tuangkan isi gelas C ke gelas B.
Gambar :


2.3 STRUKTUR DASAR ALGORITMA
Algoritma yang kita susun akan terdiri dari proses runtunan (sequencial process), proses pemilihan (selection process) dan proses perulangan (repetition process). Proses-proses ini termasuk kedalam konstruksi atau struktur dasar algoritma.
A.     Sequence Process (Proses Runtunan)
Proses beruntun (sequence) adalah sederetan pernyataan yang urutan pelaksanaannya / eksekusinya dilakukan secara beruntun dari baris pertama, kedua dan seterusnya hingga baris terakhir.
Jika diaplikasikan kedalam sebuah diagram alir (flowchart) maka akan menjadi seperti gambar di bawah ini.
proses runtunan
flowchart di atas menggambarkan proses mencari nilai kuadrat dari bilangan x yang diinput. Proses tersebut dijalankan secara berurutan mulai dari input x, mengalikan x dan menyimpannya di variabel hasil selanjutnya variable hasil tersebut akan dicetak.
B.     Selection Process (Proses Pemilihan)
Saat algoritma kita dijalankan ada saat dimana suatu instruksi baru boleh dijalankan jika kondisi tertentu terpenuhi. Contohnya saat kita menerima raport atau nilai semester, disana akan ada kondisi yang menyatakan jika nilai kita lebih besar dari 80 maka kita mendapat A, jika nilai lebih besar dari 70 maka kita mendapat B, dan seterusnya. Kasus pemilihan seperti ini sudah biasa kita alami di kehidupan sehari-hari, namun bagaimana jika kita ingin mengimplementasikannya kedalam bentuk algoritma?. Dibawah ini merupakan contoh proses pemilihan untuk menentukan ukuran dua buah bilangan yang saya buat kedalam bentuk diagram alir.
proses seleksi
Penjelasan :
Pada awal proses kita akan menginput nilai untuk variable A dan variable B. setelah itu nilai yang telah kita input akan diseleksi jika nilai A lebih besar dari B maka nilai A akan diisikan kedalam variable lain yang bernama maks, sedangkan jika nilai A tidak lebih besar dari B maka akan diseleksi lagi dan jika nilai B yang lebih besar dari A maka nilai B akan diisikan kedalam variable maks. Variable maks yang telah berisi nilai A atau B tersebut nantinya akan ditampilkan. Namun jika nilai B juga tidak lebih besar dari A itu artinya nilai A dan B adalah sama dan komputer tidak akan menampilkan output apa-apa.
C.      Repetition Process ( Proses Perulangan )
Salah satu manfaat penggunaan komputer adalah kemampuan mengulang sesuatu dengan cepat dan akurat. Kondisi perulangan seperti ini sering kita jumpai pada kehidupan sehari-hari seperti bangun tidur, sarapan setiap pagi, berangkat sekolah, pulang hingga tidur kembali.
Dalam algoritma, struktur perulangan ini sangat bermanfaat jika kita ingin melakukan sebuah proses yang sama berulang-ulang dengan kondisi tertentu, contohnya jika kita ingin program yang kita buat terus berjalan selama pengguna tidak memilih pilihan keluar, contoh sederhana lainnya adalah jika kita ingin mencetak bilangan dari 1 sampai 100 dan masih banyak lagi yang lainnya.
Untuk lebih mempermudah pemahaman anda, dibawah ini merupakan gambar flowchart yang menggunakan struktur perulangan untuk menampilkan bilangan 1 sampai 100.
proses looping
Penjelasan :
pada flowchart diatas kita memiliki variabel angka yang terlebih dahulu kita isi dengan nilai 1, setelah itu komputer akan mencetak variabel angka tersebut dan mengisi angka dengan nilai hasil penjumlahan angka tersebut dengan nilai 1 (angka=angka+1). Setelah itu kondisi akan diperiksa untuk mengetahui apakah angka memiliki nilai yang lebih besar dari 100 atau tidak, jika tidak komputer akan kembali untuk mencetak angka dan melakukan penjumlahan lagi sedangkan jika tidak maka proses akan berhenti.
Pada contoh kasus diatas menunjukan bahwa proses akan terus dilakukan selama kondisi belum terpenuhi.




2.4 PENULISAN ALGORITMA
A.    Menggunakan Bahasa Natural
Menggunakan bahasa natural adalah alat yang cukup efisien untuk menggambarkan algoritma dengan menggunakan  Bahasa Indonesia dimana urutan barisan langkah-langkah yang digunakan harus disusun sedemikian rupa agar proses 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.        
Contoh:
Menghitung Luas Segitiga
Luas sebuah segitiga didapatkan dengan mengalikan alas dengan tinggi lalu dibagi dua
1.Mulai
2.Masukkan nilai alas
3.Masukkan nilai tinggi
4.Hitung luas segitiga dengan alas kali tinggi dibagi dua
5.Tampilkan hasil perhitungan luas
 6.Selesai

B.   Menggunakan Kode Semu (Pseudo-Code)
Pseudo code adalah cara penulisan algoritma yang hampir menyerupai bahasa pemrograman. Selain itu biasanya pseudo code menggunakan bahasa yang mudah dipahami secara universal dan juga lebih ringkas dari pada penulisan algoritma menggunakan struktur bahasa.
Jadi pseudo code digunakan untuk menggambarkan logika urutan-urutan dari program tanpa memandang bagaimana bahasa pemrogrammannya.
Contoh penulisan algoritma menggunakan struktur bahasa dan pseudo code "Mencari Luas Segitiga :
1.  Start
2.  Input (Alas)
3.  Input (Tinggi)
4.  Nilai Luas = 1/2*Alas * Tinggi
5.  Output (Luas)
6.  End

Catatan : Untuk penulisan menggunakan pseudo code boleh tidak mengunakan Numbering .
Contoh :
Start
Input (Alas)
Input (Tinggi)
Nilai Luas = 1/2*Alas * Tinggi
Output (Luas)
End

Jadi , di penulisan menggunakan pseudo code itu perintah perintahnya sudah lebih mengarah kepada bahasa pemrograman seperti : input,output,mod, dll

C.   Menggunakan diagram alir (flow chart)

Definisi Flowchart adalah sebagai berikut:
1. Flowchart atau Bagan Alir adalah suatu skema / gambar yang memperlihatkan urutan urutan instruksi atau kegiatan dan hubungan antar proses beserta instruksinya.
2. Flowchart adalah penyajian yang sistematis tentang proses dan logika dari kegiatan penanganan informasi , Gambaran ini dinyatakan dengan symbol. Dengan demikian setiap symbol menggambarkan proses tertentu.Sedangkan antara proses digambarkan dengan Garis penghubung.

Kegunaan Flowchart adalah :
1. Untuk Mendesain Program
2. Untuk Mempresentasikan Program
Maka Flow chart harus dapat mempresentasikan komponen-komponen dalam bahasa pemrogramman.

Simbol-simbol dalam flow chart:
No
Gambar
Keterangan
1
Digunakan untuk menunjukan awal dan akhir program
2
Digunakan untuk pengolahan aritmatika
3
Digunakan untuk mewakili operasi perbandingan logika
4
Digunakan untuk menyatakan proses input dan output
5
Digunakan untuk menyatakan urutan pelaksanaan atau alur proses
6
Penghubung pada halaman yang sama
7
Digunakan untuk menyatakan cetak hasil




Contoh untuk menghitung luas segitiga

MULAI
SELESAI
INPUT ALAS
HITUNG LUAS = ½ *ALAS*TINGGI
INPUT TINGGI
OUTPUT LUAS SEGITIGA
 






                            


















2.5 TEKS ALGORITMA
Struktur teks algoritma terdiri dari:
A.    Bagian Judul
Judul adalah bagian yang terdiri atas nama program dan penjelasan (spesifikasi) tentang program tersebut. Judul diawali dengan kata kunci PROGRAM dan nama program X.
Contoh :
PROGRAM HelloWorld
{ Program untuk mencetak "Hello, world"
Masukan program ini tidak ada. Keluarannya adalah tulisan 'Hello, world' tercetak di layar.

B.    Bagian Deklarasi
Bagian ini digunakan untuk mengumumkan semua nama yang dipakai di dalam algoritma beserta propertinya (misalnya type). Nama tersebut bisa berupa nama konstanta, nama peubah, nama tipe, nama prosedur dan nama fungsi. Semua nama yang dipakai di dalam algoritma harus dikenali sebelum mereka digunakan.
Contoh : (untuk Program Fahrenheit Celcius)
DEKLARASI
F,C : real
x,y, step : integer

F,C,x,y, dan step adalah nama-nama perubah yang digunakan di dalam bagian algoritma. Nama-nama peubah ini berserta tipenya harus diumumkan di bagian deklarasi sebelum mereka digunakan.

C.   Bagian Algoritma
Inilah bagian inti dari sebuah program. Bagian ini berisi instruksi-instruksi pemecahan masalah dalam notasi pseudo-code.
Program HelloWorld mengandung bagian algoritma yang hanya berisi satu baris instruksi saja :
Algoritma
     write("Hello, world")
Program FahrenheitCelcius mengandung bagian algoritma yang berisi beberapa baris instruksi :
Algoritma
     read(x,y,step)
     F <- x
     while F <= y do
            C=5/9 * (F-32)
            write(F,C)
            F <- F + step
     Endwhile

2.6 TIPE DATA
A.   Tipe Data Dasar
Adalah tipe data yang selalu tersedia data setiap bahasa pemrograman.antara lain bilangan buat (interger) bilangan biasa (real) bilangan tetap (const) karakter (character) atau (chat) logik (logic dan boolean)

1.Bilangan Bulat (integer)
·         Bilangan atau angka yang tidak memiliki titik atau pecahan seperti 10, ±255, -1024, +32767.
·         Tipe dituliskan sebagai interger atau int.
·         Jangkauan nilai tergantung pada implementasi perangkat keras komputer misalnya dari:-32768 s/d  +32767 untuk algoritma tidak kita batasi.
·         Operasi arimetik: tambah (+), kurang (-), kali(*), bagi (/), sisa hasil bagi (contoh: 10/3=3, 1 = mod)
·         Operasi pembandingan: lebih kecil (<) lebih kecil atau sama( < =) , lebih besar (>), lebih besar atau sama ( > =) , sama ( = ), tidak sama (><) .

Contoh :  1. Umur : interger  20, 21, 22→ bulat
                2. NIM : interger → 2013804130→ bulat

2. Bilangan Biasa / Float (real)
·      Bilangan atau angka yang bisa memiliki titik desimal atau pecahan dan ditulis sebagai : 235,45 + 1023,55 - 987,3456 atau dalam notasi ilmiah seperti :  1.245.E+03,7,45E-02.+2.34E-04 dsb.
·      Tipe dituliskan sebagai real.
·      Jangkauan nilai bergantung pada implementasi perangkat keras komputer , misalnya dari -2.9E-39 s/d + 1.7E+38, untuk algoritma tidak kita batasi.
·      Operasi arimatik dan perbandingan juga berlaku bagi bilangan biasa.

Contoh :
1.lingkaran =  x
                   = 3,14 x
                   =  3,14 x 4
                   = 12,36 → real

 2. nilai akhir = 0,1 (Abs) + 0,2 (Tgs) + 0,3 (UTS) + 0,4 (UAS)
                     =        ,      real

3. Bilangan tetap (const)
·         Bilangan tetap (const) adalah tipe bilangan baik bernilai bulat maupun tidak yang nilainya tidak berubah selama algoritma dilaksanakan
·         Tipe dituliskan sebagai const
·         Jangkauan nilai meliputi semua bilagan yang mungkin

Contoh :
1.    Const  =  phi
                    = 3,14 )
1      Const  = X,Y, Z   => Pasword/kata kunci

4.Karakter (character)

·            Karakter adalah data tunggal yang mewakili semua huruf ,simbol baca dan juga simbol angaka yang tidak dapat dioperasikan secara otomatis, misalnya : “A”, “B” ,....”Z”,”a”,”b”,...”z”, “?”,”!”,”:” , dst.
·            Tipe dituliskan sebagai char.
·            Jangkauan nilai meliputi semua karakter dalam kode ASCII dan tertera pada setiap tombol keyboard.
·            Operasi pembanding dapat dilakukan  dan di evaluasi menurut urutan kode ASCII ,sehingga huruf “A” (Hex41) sebenarnya lebih kecil dari huruf (Hex61). 
Code ASCCII
                    a = (97 X 2)/+2
                       = 194+2
                       = 196  ”A”

5. Logik (logical)
·         Tipe data logik adalah tipe data yang digunakan untuk memberi nilai pada hasil perbandingan atau kombinasi perbandingan.
·         Tipe dituliskan sebagai bolean.
·         Jangkauan nilai ada dua: true dan false.
·         Contoh : 45>56 hasilnya false, amir < husni hasilnya true.
·         Ada beberapa operasi untuk data jenis algoritma antara lain and, or dan not.

Tabel operasi untuk data logik

A
B
A and B
A or B
Not A
False
False
False
False
True
False
True
False
True
True
True
False
False
True
False
True
True
True
True
False

True = benar = 1 = +
False = salah = 0 = −
Contoh :
1.    AND (dan)
                        Bernilai benar jika kedua-duanya benar
      Jika A =True dan B = True maka
             A and B = True
       Selain itu :
                       A and B = false
2.    OR (atau)
Bernilai : benar jika salah satunya benar
   Jika A = false dan B =false maka A OR B = false
   Selain itu :
                       A  OR B =True
3.    NOT (tidak)
Kebalikan dari nilai
   A = False maka B = True
       Not A = True

B. Tipe Data Bentukan
1. Tipe Larik (Array)
Larik (array) adalah tipe terstruktur yang mempunyai komponen dalam jumlah yang tetap dan setiap komponen mempunyai tipe data yang sama. Posisi masing-masing komponen dalam larik dinyatakan sebagai nomor indeks.
Deklarasi Array,di dalam penulisan bahasa pemograman setiap penggunaan array harus dideklarsikan terlebih dahulu. Pendeklarasian array diawali dengan nama variabel array diikuti dengan indeks array yang dituliskan didalam tanda “[ ]” , diikuti dengan kata cadangan dan tipe data yang dibutuhkan.

Bentuk Umum Penulisan

Tanda_pengenal : array [..tipe index ..] of tipe data;

Contoh :

Var
A : array[1..4] of integer;
B : array[1..5] of string;
C: array[1..10] of real;

Keterangnan :
A,
B,C merupakan tanda pengenal/ nama variabel dari array;
1..4 : merupakan tipe indek dari array, yang menunjukan banyaknya data yang mampu disimpan.
Integer : menunjukan bahwa data yang diinput berupa bilangan bulat


2. Tipe String

Data yang bertipe string adalah data yang berisi sederetan karakter yang banyaknya karakter bisa berubah-ubah sesuai kebutuhan yaitu dari 1 sampai 255 karakter. 

Bentuk umum.dari deklarasi tipe string adalah:
type pengenal = string <[panjang]>

Keterangan:
pengenal : nama tipe data.
panjang : bilangan bulat yang menentukan banyaknya karakter, bila parameter panjang karakter tidak ditulis maka dianggap 255 karakter.

C.Tipe Rekaman (record)

Sama halnya dengan larik, rekaman (record) adalah kumpulan data. Perbedaan antara larik dengan rekaman adalah dalam larik semua elemennya harus bertipe sama tetapi dalam rekaman setiap elemen bisa mempunyai tipe data yang berbeda satu sama lainnya.
Bentuk umum deklarasi rekaman adalah
type pengenal = record
medan1 :tipe1;
medan2 :tipe2;
.
.
.
medann :tipen;
end;

Keterangan:
pengenal : pengenal yang menunjukkan tipe data yang akan dideklarasikan.
medan1,…, medann : nama medan yang akan digunakan.
tipe1,…, tipen : sembarang tipe data yang telah dideklarasikan sebelumnya.
Contoh deklarasi rekaman,
type Tgl_Kalender = record
Tanggal :1..31;
Bulan : 1..12;
Tahun : 1900..2000;
end;




           
2.7 VARIABLE
Variabel adalah nama yang mewakili suatu elemen data seperti: jenis kelamin untuk jenis kelamin, tempat tanggal lahir  untuk tanggal lahir, alamat untuk alamat dan sebagainya.
Ada aturan tertentu yang wajib diikuti dalam permberian nama variabel, yaitu:
·         Harus  dimulai dengan abjad, tidak boleh dengan angka atau simbol.
·         Tidak boleh ada spasi diantarannya.
·         Jangan menggunakan symbol-simbol yang bias membingungkan seperti titik dua, titik koma, dan sebagainya.
·         Sebaiknya memiliki arti yang sesuai dengan elemen data.
·         Sebaiknya tidak terlalu panjang.
Contoh variabel yang benar: Nama, Alamat, Nilai, _Ujian
Contoh variabel yang salah: 4XYZ, IP rata, Var+XY, 458;

Contoh lain: Var
Nama ; String
Alamat ; String
Telepon ; Integer

Var:
a ; Integer
b ; String
c ; Integer

2.8 NILAI
Ada dua cara yang dapat digunakan untuk memberi nilai suatu variable, yaitu melalui proses assigment dan pembacaan pemberian nilai dengan cara assignment. Assigment mempunyai bentuk umum sebagai berikut :
·         Variabel                     nilai
·         Variabell                     variable 2
·         Variabel                     ekspresi
Contoh assignment :
·         Nama             “ Ali bin abu thalib; “
·         Jarak             100. Sb;
·         X                                Jarak
·         Rentang                     X + 50 . 3 * y ;
Ex : Nilai
1.    Nama             ‘jokowi’
2.    X                    Nama
3.    L. Persegi     P X L               ekspresi
v  Pemberian nilai dengan cara pembacaan dapat dilakukan melalui instruksi pembacaan dengan bentuk umum sebaai berikut :

·         Read ( Variabel ); atau
·         Read ( variabell, variabel2…);
Contoh pembacaan data :
·         Read ( nama );
·         Read ( jarak, rentang, X );
Contoh penampilan nilai adalah sebagai berikut :
·         Write (“nama anda :” , nama );
·         Write (“nilai ujian =”, nilai );
·         Write (“Jumlah variable=”, X + Y+ Z );
Ex : Output
1.    Nama anda   : Tarjo
2.    Nilai ujian     : 100
3.    Jumlah variabel = X + Y + 2
   X = 1
   X = 2
   X = 3                       6

2.9 DESIGN DATABASE



BAB III
PENUTUP

3.1 KESIMPULAN
3.2 SARAN
Inilah hasil penulisan rangkuman makalah dari kelompok kami, meskipun penulisan ini jauh dari kata sempurna minimal kita sudah mempelajari materi - materi dari tulisan ini. Masih banyak kesalahan dari penulisan kelompok kami, karena kami manusia yang adalah tempat salah dan dosa; dalam hadits “al insanu minal khotto wannisa’’, dan kami juga butuh saran atau kritikan agar bisa menjadi motivasi untuk masa depan yang lebih baik daripada masa sebelumnya. Kami juga mengucapkan banyak terima kasih kepada dosen mata kuliah Logika dan AlgoritmaBapak Sucipto Basuki,S,KOM,MT  Yang telah memberi kami tugas kelompok demi kebaikan diri kita sendiri dan untuk negara dan bangsa.




DAFTAR PUSTAKA