Pengertian Algoritma

Sabtu, 24 Oktober 2015

Artikel Pengertian Dasar Logika & Algoritma (Septia Rahayu 12155418)

LOGIKA DAN ALGORITMA

A. Pengertian Dasar Logika  & Algoritma

1. LOGIKA

Diperkenalkan pertama kali oleh Aristoteles (384-322 SM)
Definisi Logika
1. penalaran atau bentuk pemikiran.
2. ilmu yang memberikan prinsip-prinsip yang harus diikuti agar dapat berfikir valid menurut aturan yang berlaku.

2. ALGORITMA

Asal  usul  kata  algoritma  dapat  Anda  baca  dalam  buku  “The  Art  of  Computer Programming Second Edition Volume I” yang ditulis oleh Donald E. Knuth (1973, p1- )
Menurut  Donald  E.  Knuth  (1973,p4),  algoritma  dalam  penger tian  modern mempunyai kemiripan dengan istilah resep ,  proses, metode, teknik, prosedur, rutin . Algor itma  adalah  sekumpulan  aturan-aturan  berhingga  yang  memberikan  sederetan operasi-operasi untuk menyelesaikan suatu jenis masalah yang khusus. Menurut  Rinaldi  Munir,  algoritma  adalah  urutan  langkah-langkah  logis penyelesaian masalah yang disusun secara sistematis. Berdasarkan dua pengertian algoritma di atas, dapat disimpulkan bahwa algor itma merupakan suatu istilah yang luas, yang tidak hanya berkaitan dengan dunia komputer.

B.     Tipe-tipe Algoritma Berdasarkan Format Penulisan

Algoritma  adalah  independen  terhadap  bahasa  pemr ograman  tertentu,  artinya algoritma  yang  telah  dibuat  tidak  boleh  hanya  dapat  diterapkan  pada  bahasa pemrograman  tertentu.  Penulisan  algoritma  tidak  ter ikat  pada  suatu  aturan  tertentu, tetapi harus jelas maksudnya untuk tiap langkah algoritmanya. Namun pada dasar nya algoritma dibagi menjadi beberapa macam berdasarkan for mat penulisannya, yaitu:

1.      Deskriptif
Algoritma  bertipe  deskr iptif  maksudnya  adalah  algoritma  yang  ditulis  dalam bahasa manusia sehari- hari (misalnya bahasa Indonesia atau bahasa Inggris) dan dalam bentuk  kalimat.  Setiap  langkah  algoritmanya  diterangkan  dalam  satu  atau  beberapa kalimat.
Sebagai contoh misalnya algoritma menentukan bilangan terbesar dari 3 bilangan berikut ini:
Algoritma Menentukan_bilangan_terbesar_dari_3_bilangan
  Meminta input 3 bilangan dari user, misalkan bilangan a, b, dan c.
  Apabila  bilangan  a  lebih besar  dari  b  maupun  c,  maka  bilangan  a merupakan bilangan terbesar.
  Jika  tidak  (bilangan  a tidak  lebih  besar  dari  b  atau  c)  berarti bilangan  a  sudah  pasti  bukan  bilangan  terbesar.  Kemungkinannya tinggal  bilangan  b  atau  c.  Apabila  bilangan  b  lebih  besar  dari  c, maka  b  merupakan  bilangan  terbesar.  Sebaliknya  apabila  bilangan  b tidak lebih besar dari c, maka bilangan c merupakan yang terbesar.
  Selesai.
2.      Flow Chart (Diagram Alir)
Selain dalam bentuk tulisan, algoritma juga dapat ditulis dalam  bentuk diagram- diagram dengan anak panah sebagai penunjuk urutan langkah algoritmanya. Algor itma yang ditulis dengan simbol-simbol demikian yang dinamakan  flow chart .
Mengenai  lambang- lambang  yang  digunakan  akan  dibahas  pada  bagian selanjutnya. Sekarang diberikan suatu contoh algoritma menentukan bilangan terbesar dar i 3 bilangan seperti yang dicontohkan sebelumnya, tetapi ditulis dalam bentuk flow chart.
3.      Pseudocode
Pseudo  berarti imitasi dan  code  ber arti kode yang dihubungkan dengan instruksi yang  ditulis  dalam  bahasa  komputer  (kode  bahasa  pemrograman).  Apabila diterjemahkan  secar a  bebas,  maka  pseudocode  berarti  tiruan  atau  imitasi  dari  kode bahasa pemrograman. Pada  dasarnya,  pseudocode  merupakan  suatu  bahasa  yang  memungkinkan programmer untuk berpikir terhadap per masalahan yang harus dipecahkan tanpa harus memikirkan   syntax   dar i  bahasa  pemrogr aman  yang  tertentu.  Tidak  ada  aturan penulisan   syntax   di  dalam  pseudocode.  Jadi  pseudocode  digunakan  untuk menggambarkan logika urut-urutan dari program tanpa memandang bagaimana bahasa pemrogramannya.
Walaupun pseudocode tidak ada aturan penulisan syntax, di dalam buku ini akan diberikan  suatu aturan-aturan  penulisan syntax yang cukup  seder hana  agar  pembaca dapat  lebih  mudah  dalam  mempelajari algoritma-algor itma  yang  ada  di  dalam  buku ini.  Pseudocode  yang  ditulis  di  dalam  buku  ini  akan  menyerupai  (meniru)  syntax- syntax dalam bahasa Pascal. Namun dibuat sesederhana mungkin sehingga tidak akan ada  kesulitan  bagi  pembaca  untuk  memahami  algoritma- algor itma  dalam  buku  ini walaupun pembaca belum pernah mempelajar i bahasa Pascal.
Contoh  algoritma  menentukan  bilangan  terbesar  dar i  tiga  bilangan  yang  ditulis dalam bentuk pseudocode bergaya buku ini.
01|    ALGORITMA Menentukan_terbesar_dari_3_bilangan
02|    Deklarasi:
03|    a,b,c, terbesar : integer
04|
05|    Deskripsi:
06|      Read(a,b,c)
07|      If (a>b) and (a>c) then
08|          Terbesar     a
09|      Else
10|          If b>c then
11|             Terbesar   b
12|          Else
13|             Terbesar     c
14|          Endif
15|      Endif
16|      Write(terbesar)

C.    Flow Chart (Diagram Alir)
 1.      Pengertian
Diagram alir atau flow chart adalah suatu bagan yang menggambarkan arus logika dar i data  yang akan dipr oses dalam suatu program dari awal sampai  akhir. Diagram alir terdiri dar i simbol-simbol yang mewakili fungsi-fungsi langkah program dan garis alir (flow lines)  menunjukkan urutan dari simbol-simbol yang akan diker jakan.

Algoritma
Diagram Alur sering digunakan untuk menggambarkan sebuah algoritma.
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.
Sejarah istilah "algoritma"Kata algoritma berasal dari latinisasi nama seorang ahli matematika dari Uzbekistan Al Khawārizmi (hidup sekitar abad ke-9), sebagaimana tercantum pada terjemahan karyanya dalam bahasa latin dari abad ke-12 "Algorithmi de numero Indorum". Pada awalnya kata algorisma adalah istilah yang merujuk kepada aturan-aturan aritmetis untuk menyelesaikan persoalan dengan menggunakan bilangan numerik arab (sebenarnya dari India, seperti tertulis pada judul di atas). Pada abad ke-18, istilah ini berkembang menjadi algoritma, yang mencakup semua prosedur atau urutan langkah yang jelas dan diperlukan untuk menyelesaikan suatu permasalahan.

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.
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.
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.
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.

PERLUNYA PERINTAH BAHASA PEMROGRAMAN DI DALAM ALGORITMA

Meskipun sudah dikatakan, bahwa sewaktu kita menyusun algoritma kita tidak perlu tahu bahasa pemrograman apa yang akan digunakan kelak, namun, untuk penulisan algoritma yang lebih efisien dan efektif, maka penggunaan sebagian perintah yang ada di dalam bahasa pemrograman perlu dilakukan juga.
Adapun perintah bahasa pemrograman yang paling sering digunakan untuk menyusun algoritma adalah bahasa pemrogrman yang terstrukutur, seperti
Pascal, C, SNOBOL, PL/1, dan sebagainya. Misalkan saja, untuk contoh berikut ini :
Langkah 1 : Beri nilai 10 ke variabel S
Maka, akan lebih mudah jika ditulis sebagai :
Langkah 1 : S := 10;
Belum lagi jika algoritma yang ditulis harus melakukan perulangan langkah
ke langkah-langkah sebelumnya (looping).
10 Mulai I:= 1;
11 Lakukan perbandingan data ke I dengan data ke I+1
12 Jika data ke I+1 lebih kecil, maka tukar tempat keduanya
13 Tambahkan I dengan 1
14 Lakukan langkah 11 hingga langkah 13 selama nilai I < 10
15 selesai
Tentu akan lebih ringkas jika kita tulis (perintah BASIC) :
10 For I= 1 to 10
20 If A(i) > A(I+1) then SWAP A(i), A(j)
30 next
40 end

Jadi terlihat, jika algoritma tersebut sederhana, maka penyusunan algoritma akan sama dengan penyusunan sebuah program (karena semua perintahnya
sudah sesuai dengan kaidah penulisan di bahasa pemrogramannya). Apakah semuanya akan demikian ?. Tentu saja tidak, misalkan, kita diminta untuk menentukan bilangan terkecil dari seratus buah bilangan yang akan dimasukkan ke komputer, ini masih dapat langsung dibuatkan programnya. Algoritma (program)nya bisa kita susun sebagai berikut :

1 DIM A(100)
2 FOR M = 1 TO 100
3 INPUT A(M) : NEXT : KECIL = A(1)
4 FOR M = 2 TO 100
5 IF KECIL > A(M) THEN X = KECIL: KECIL = A(M) : A(M) = X
6 NEXT : PRINT KECIL : END

Tetapi, misalkan jika kita diminta untuk mengalihkan notasi infix menjadi postfix melalui stack, hal itu sulit untuk dilakukan.
Algoritmanya bisa menggunakan gabungan kalimat dengan bahasapemrograman, berikut contoh penggalannya.
Contoh :
1. Asumsi : deretan notasi infix dimasukkan ke dalam sebuah variabel array
bernilai string, nama variabelnya D
2. S adalah variabel string untuk menyimpan susunan data di dalam stack
3. H adalah variabel string untuk menyimpan hasil
4. P = banyaknya elemen array
5. For I = 1 to p
If top(s) = empty then
{top(s) adalah posisi atas stack)
if D(i) = operand then
H = D(i)
Else
S = S + D(i)
Top(s) = D(i)
Endif
Else
If D(i) = operator then
If derajat D(i) > derajat Top(s) then

CARA MASUK & MEMULAI BORLAND C++ :
·                     Klik Start pilih All Program
·                     Pilih Borland C++ 5.02 lalu Klik
·                     Klik Menu File – New – Text Edit

Struktur Program C++

#include <File.Header>

main()
{

Pernyataan_program;
}









File Header/Include dasar input output terdiri dari :
#inlude <stdio.h> : scanf, printf, puts
#inlude <conio.h> : getch, clrscr, getche
#inlude <iostream.h> : cout, cin, endl
#inlude <iomanip.h> : setprecision,setw, setiosflags
Contoh:
#include<stdio.h>
#include<conio.h>
main()
{
lrscr();

printf("\nHaloo Apa khabar");
printf("\nPerkenalkan Saya Borland C++");
getch();
}

Menjalankan Program Borland C++ :
·                     Alt + F9 (untuk Compile), lalu tekan Ctrl + F9 (Run) atau
·                     Pilih Menu Debug – Klik Run (Ctrl + F9)
TIPE –TIPE DATA

Tipe Data
Ukuran Memori
Jangkauan Nilai
Jumlah Digit
Char
1 Byte
-128 s.d 127
Int
2 Byte
-32768 s.d 32767
Short
2 Byte
-32768 s.d 32767
Long
4 Byte
-2147435648 s.d 2147435647
Float
4 Byte
3.4X10-38 s.d 3.4X1038
5-7
Double
8 Byte
1.7X10-308 s.d 1.7X10308
15-16
Long Double
10 Byte
3.4X10-4932 s.d 1.1X104932
19

1.                  KONSTANTA

Konstanta adalah suatu nilai yang nilainya tetap. Terbagi menjadi 2 bagian:
o                  Konstanta Bilangan
o                  Konstanta Text Deklarasi Konstanta:
const nama_konstanta=nilai konstanta;
Contoh: const x= 89;

2.                  VARIABEL

Adalah suatu tempat menampung data atau konstanta di memori yang mempunyai nilai atau data yang dapat berubah-ubah selama proses program.

Dalam Pemberian Nama Variabel mempunyai ketentuan antara lain:
o                  Tidak boleh ada spasi (contoh: gaji bersih) dan dapat menggunakan tanda garis bawah (_) sebagai penghubung (contoh : gaji_bersih).
o                  Tidak Boleh diawali oleh angka dan menggunakan operator Aritmatika.


Tipe Variabel
Simbol deklarasi

Integer

Int

Floating Point

Float

Double Precision

Double

Karakter

Char

Unsigned Integer

Unsigned int

Unsigned Character

Unsigned char

Long Integer

Long int

Unsigned Long Integer

Unsigned long int

Bentuk Penulisan Deklarasi:
Tipe data nama_variabel;

Contoh:
int nama_mahasiswa;
char grade;
float rata_rata;
int nilai;
















·                     PERINTAH MASUKAN

scanf(), gets(), cin(), getch(), getche()



Tabel penentu format scanf()



TIPE DATA
Penentu Format untuk printf()
Integer
%d
Floating Point
Bentuk Desimal
%f
Bentuk Berpangkat
%e
Bentuk desimal dan Pangkat
%g
Double Precision
%lf
Character
%c
String
%s
Unsigned Integer
%u
Long Integer
%ld
Long Unsigned Integer
%lu
Unsigned Hexadesimal Integer
%x
Unsigned Octal Integer
%o

OPERATOR BAHASA C++

1.                  Operator Aritmatika dikenal sebagai operator binary



Operator
Prioritas
Keterangan
Contoh
*
+ - - Tertinggi
Perkalian
2 * 3
/
-
Pembagian
7 / 2
%
* / %
Sisa pembagian
7 % 2
+
+ - Terendah
Penjumlahan
5 + 4
-
Pengurangan
5 – 4
2.                  Operator Penugasan adalah berupa simbol sama dengan (=)

Contoh :

A=1;

B=2+b;

A=2+(b=1)

3.                  Operator Penurunan (Decrement) Dan Penaikan (Increment) adalah operator yang digunakan untuk menurunkan dan menaikkan nilai variabel sebesar satu, penempatannya dapat dilakukan di muka atau di belakangnya.
Operator
Keterangan

+ +

Operator Penaikkan

- -

Operator Penurunan
Contoh :

X = x + 1; dapat ditulis menjadi + + x;

Y = y – 1; dapat ditulis menjadi y - - ;





4.                    Operator Relasi adalah operator untuk membandingkan dua buah nilai.

Operator
Keterangan

= =

Sama Dengan ( bukan penugasan)

!=

Tidak Sama Dengan

> 

Lebih Dari

< 

Kurang Dari

>=

Lebih Dari atau Sama Dengan

<=

Kurang Dari atau Sama Dengan
5.                  Operator Logika adalah digunakan untuk menghubungkan dua buah ungkapan kondisi menjadi sebuah ungkapan kondisi yaitu 1 (True) dan 2 atau 0 (false). Operator ini berupa:
o                  && (operator logika AND)
o                  || (operator logika OR)
o                  ! (operator logika NOT)
6.                  Operator Bitwise adalah manipulasi data dalam bentuk bit. Borland C++ menyediakan enam buah operator bitwise.

Operator
Keterangan
Contoh
~
Bitwise NOT (bukan)
~25
<< 
Geser bit ke kiri (left shift)
25<<2
>> 
Geser bit ke kanan (right shift)
25>>2
&
Bitwise AND (dan)
25&2
^
Bitwise XOR
25^2
|
Bitwise OR (atau)
25|2

Nama : Septia Rahayu (12155418)
Manajemen Informatika 121H13
septiarahayu19.blogspot.com

Tidak ada komentar:

Posting Komentar