Amar_Kun.exe

Amar_Kun.exe TKJ Blog | Created By Www.BestTheme.Net

About Me

Popular Posts

Archive for 2016

Algoritma pemrograman dan struktur dasar

Algoritma adalah langkah-langkah yang disusun secara tertulis dan berurutan untuk menyelesaikan suatu masalah.  Sedangkan Algoritma Pemrograman adalah langkah-langkah yang ditulis secara berurutan untuk menyelesaikan masalah pemrograman komputer.

Dalam pemrograman yang sederhana, algoritma merupakan langkah pertama yang harus ditulis sebelum menuliskan program. Masalah yang dapat diselesaikan dengan pemrograman komputer adalah masalah-masalah yang berhubungan dengan perhitungan matematik.

Hal yang penting dikuasai dalam pemrograman adalah logika berpikir bagaimana cara memecahkan masalah pemrograman yang akan dibuat. Kadang-kadang ada masalah matematika yang sangat gampang jika diselesaikan secara tertulis, tetapi cukup sulit jika diterjemahkan ke dalam pemrograman. Jika menemukan hal seperti itu, maka algoritma dan logika pemrograman sangat penting untuk memecahkan masalah.

Sebagai gambaran, saya mengambil masalah Frekuensi data. Misalnya ada sekelompok data seperti berikut :

2    4    6    7    2    4    6    6    9    3    5    6    4

Secara tertulis, frekuensi data diperoleh dengan cara menghitung banyaknya tiap data dan menuliskan data mulai dari data yang terkecil ke terbesar dalam tabel. Kolom pertama berisi data dan kolom kedua berisi frekuensi masing-masing data.

DataFrekuensi
22
31
43
51
64
71
91

Cukup mudah bukan? Bagaimana jika cara  mencari frekuensi di atas dibuat dalam bentuk program? Cukup sulit karena kita perlu menguasai logika pemrograman. Namun kasus ini akan saya bahas nanti, jika tidak ada halangan. 

Baiklah kita mulai untuk membuat Algoritma pemrograman yang sederhana seperti contoh di bawah ini.
Contoh-1 : 

Buatlah algoritma untuk menghitung frekuensi data seperti pada contoh kasus di atas.

Algoritmanya adalah :
  • Mulai
  • Tentukan banyaknya data (n)
  • Tentukan data sebanyak N
  • Urutkan data secara Ascending (Mulai dari data kecil ke besar)
  • Hitung banyaknya data (frekuensi ) tiap data
  • Tampilkan Frekuensi data dalam bentuk tabel
  • Selesai

Contoh-2 :

Buatlah algoritma untuk menghitung nilai y dari persamaan y = 2x + 6
Algoritmanya adalah :
  • Mulai
  • Tentukan nilai x
  • Hitung nilai y = 2x + 6
  • Tuliskan/cetak Nilai x dan y
  • Selesai
Contoh-3:

Buatlah algoritma untuk menghitung nilai y dari persamaan  y =  4x2 + 8x – 2
Algoritmanya adalah :
  • Mulai
  • Tentukan nilai x
  • Hitung nilai y = 4x2 + 8x -2
  • Cetak nilai x dan y
  • Selesai
Setelah menuliskan algoritma, maka langkah selanjutnya adalah menggambarkan algoritma tersebut dalam bentuk bagan alir yang disebut flowchart. Lihat cara membuat flowchart.

Struktur Dasar Algoritma


  1. Sekuensial (Runtunan)





Bentuk struktur sekuensial itu seperti disamping, pada struktur sekuensial ni langkah-langkah yang dilakukan dalam algoritma diproses secara berurutan. dimulai dari langkah pertama, kedua, dan seterusnya. Pada dasarnya suatu program memang menjalankan suatu proses dari yang dasar seperti struktur ini.
Berikut Contoh program yg dijalankan menggunakan sekuensial ini :
       2. Struktur seleksi
Struktur seleksi menyatakan pemilihan langkah yang didasarkan oleh suatu kondisi atau pengambilan suatu keputusan. Struktur ini ditandai selalu dengan bentuk flowcart decision (flowcart yang berbentuk belah ketupat).
Banyak contoh yang dapat kita terapkan pada struktur jenis ini jika itu menyangkut keputusan, diantaranya: diskon yang berbeda berdasarkan jumlah barang yang ingin dibeli.



      3. Struktur Perulangan
Struktur ini memberikan suatu perintah atau tindakkan yang dilakukan beberapa kali. Misalnya jika teman mau menuliskan kata “Belajar C” sebanyak sepuluh kali. akan lebih efisien jika teman menggunakan sturktur ini dari pada sekedar menuliskannya berturut-turut sebanyak sepuluh kali.
VARIABEL
Variabel adalah suatu pengenal (identifier) yang digunakan untuk mewakili suatu
nilai tertentu di dalam proses program. Berbeda dengan konstanta yang nilainya selalu
tetap, nilai dari suatu variable bisa diubah-ubah sesuai kebutuhan. Untuk memperoleh
nilai dari suatu variable digunakan pernyataan penugasan (assignment statement), yang
mempunyai sintaks sebagai berikut :
variable = ekspresi ;
Nama dari suatu variable dapat ditentukan sendiri oleh pemrogram dengan aturan sebagai
berikut :
1. Terdiri dari gabungan huruf dan angka dengan karakter pertama harus berupa
huruf. Bahasa C ++ bersifat case-sensitive artinya huruf besar dan kecil dianggap
berbeda. Jadi antara nim, NIM dan Nim dianggap berbeda.
2. Tidak boleh mengandung spasi.
3. Tidak boleh mengandung symbol-simbol khusus, kecuali garis bawah
(underscore). Yang termasuk symbol khusus yang tidak diperbolehkan antara lain
: $, ?, %, #, !, &, *, (, ), -, +, =dsb.
4. Panjangnya bebas, tetapi hanya 32 karakter pertama yang terpakai.
Contoh penamaan variabel yang benar :
NIM, a, x, nama_mhs, f3098, f4, nilai, budi, dsb.
Contoh penamaan variable yang salah :
%nilai_mahasiswa, 80mahasiswa, rata-rata, ada spasi, penting!, dsb
DEKLARASI
Deklarasi diperlukan bila kita akan menggunakan pengenal (identifier) dalam
program. Identifier dapat berupa variable, konstanta dan fungsi.

DEKLARASI VARIABEL
Bentuk umumnya :
Nama_tipe nama_variabel ;
Contoh :
int x; // Deklarasi x bertipe integer
char y, huruf, nim[10]; // Deklarasi variable bertipe char
float nilai; // Deklarasi variable bertipe float
double beta; // Deklarasi variable bertipe double
int array[5][4]; // Deklarasi array bertipe integer

DEKLARASI KONSTANTA
a. Menggunakan keyword const
Contoh : const float PI = 3.14152965;
Berbeda dengan variable, konstanta bernama tidak dapat diubah
jika telah diinisialisasi
b. Menggunakan #define
Contoh : #define PI 3.14152965
Keuntungan menggunakan #define apabila dibandingkan dengan const adalah
kecepatan kompilasi, karena sebelum kompilasi dilaksanakan, kompiler pertama
kali mencari symbol #define (oleh sebab itu mengapa # dikatakan prepocessor
directive) dan mengganti semua Phi dengan nilai 3.14152965.

TIPE DATA
Tipe data dapat dikelompokkan menjadi atas dua macam :
1. Tipe Dasar.
2. Tipe Bentukkan.
3.3.1 TIPE DASAR
Adalah tipe yang dapat langsung dipakai.
Tipe Dasar Ukuran Memori
(byte)
Jangkauan Nilai Jumlah
Digit Presisi
Char 1 -128 hingga +127 -
Int 2 -32768 hingga +32767 -
Long 4 -2.147.438.648 hingga
2.147.438.647
-
Float 4 3,4E-38 hingga 3,4E38 6-7
Double 8 1.7E-308 hingga 1.7E308 15-16
long double 10 3.4E-4932 hingga 1.1E4932 19
NB : Untuk mengetahui ukuran memori dari suatu tipe digunakan fungsi sizeof(tipe)
Tipe data dapat diubah ( type cast ), misalkan:
float x = 3.345;
int p = int(x);
maka nilai p adalah 3 ( terjadi truncating ).

Tipe data yang berhubungan dengan bilangan bulat adalah char, int, long. Sedangkan
lainnya berhubungan dengan bilangan pecahan.

KARAKTER & STRING LITERAL
String adalah gabungan dari karakter
Contoh : “ Belajar “ à Literal String
“ B “ àKarakter
Panjang String
strlen() ànama fungsi untuk menghitung panjang string
Fungsi strlen() dideklarasikan dalam file string.h. Jadi bila anda ingin menggunakan
fungsi strlen(), maka prepocessor directive #include<string.h> harus dimasukkan dalam
program diatas main().

Perhatikan, bahwa :
· ‘ \n ‘ dihitung satu karakter. \n disebut newline karakter
· Endl juga merupakan newline karakter ( sama kegunaannya seperti \n ).
Dalam C++, selain \n terdapat juga beberapa karakter khusus yang biasa disebut escape
sequence characters, yaitu
Karakter Keterangan
\0 Karakteeer ber-ASCII nol ( karakter null )
\a Karakter bell
\b Karakter backspace
\f Karakter ganti halaman ( formfeed )
\n Karakter baris baru ( newline )
\r Karakter carriage return ( ke awal baris )
\t Karakter tab horizontal
\v Karakter tab vertika
\\ Karakter \
\’ Karakter ‘
\” Karakter “
\? Karakter ?
\ooo Karakter yang nilai oktalnya adalah ooo ( 3 digit octal )
\xhh Karakter yang nilai heksadesimalnya adalah hh (2 digit
heksadesimal )

KEYWORD & IDENTIFIER
Dalam bahasa pemrograman, suatu program dibuat dari elemen-elemen sintaks
individual yang disebut token, yang memuat nama variable, konstanta, keyword, operator
dan tanda baca.

TIPE BENTUKAN
Merupakan tipe yang dibentuk dari tipe dasar. Seperti Tipe Struktur.

TIPE STRUKTUR
Suatu tipe data yang merupakan kumpulan dari tipe data lainnya. Struktur terdiri
dari data yang disebut field. Field – field tersebut digabungkan menjadi satu tujuan untuk
kemudahan dalam operasi.
Bentuk umumnya :
tyedef struct{ tipe nama_field1;
tipe nama_field2;
tipe nama_field3;
. . . .
}nama_variabel;


Operator
1.Operator Aritmatika
Adalah.operator yang digunakan untuk melakukan operasi penjumlahan, pengurangan, pembagian, dan perkalian atau operator yg digunakan untuk melakukan perhitungan pada bilangan. Berikut ini merupakan tabel yang berisi macam-macam operator aritmatika yang dapat digunakan pada PHP.
OperasiOperator
Penambahan+
Pengurangan
Perkalian*
Pembagian/
Sisa pembagian%
Increment++
Decrement
Contoh penggunaan operasi operator diatas:
$x = 100;
$y = 10;
OperasiOperatorContoh SintaksHasil
Penambahan+$x + $y110
Pengurangan$x – $y90
Perkalian*$x * $y1000
Pembagian/$x / $y10
Sisa Pembagian%$x % $y0
Increment++$x++101
Decrement$x–99
Berdasarkan contoh diatas, yang dimaksud dengan sisa pembagian adalah sisa dari hasil pembagian bukan hasil dari pembagian. Pada contoh diatas $x % $y = 0. Hasil ini didapat dari rumus sebagai berikut : $x – ($y * ($x / $y)).
Pada contoh diatas 50 / 10 = 5. Lalu 50 – (10 * 5) = 0.
Nah, sudah jelas kan dari mana nilai 0 itu didapat. Untuk lebih jelasnya saya akan memberikan satu contoh lagi :
misalkan nilai variabel $y diganti 6 untuk menghasilkan nilai hasil module division, pertama kita hitung adalah100/6 = 16,6 tapi kita mengambil nilai bulatnya saja, sehingga nilainya 16.
Catatan : Untuk nilai pecahan selalu diambil nilai bulatnya saja. misalkan nilai yang didapat 13,85 maka apabila diambil nilai bulatnya maka akan menjadi 13.

2.Operator Relasi
Adalah operator penghubung yang berupa benar atau salah, sesuai dengan teorinya bahwa operator relasi mengeluarkan tipe data Boolean sehingga contoh program di atas mengeluarkan output true atau false.
Contoh :
10>3 ;// true, kemudian
7<3;// false.

3.Operator Logika
Adalah Operator yang digunakan untuk menggabungkan dua kalimat sehingga terbentuk kalimat gabungan. Nilai kebenaran kalimat gabungan ini ditentukan oleh nilai kebenaran dari kalimat-kalimat pembentuknya. Operator logika di sini bertindak sebagai fungsi.
Dan dalam kehidupan sehari hari dapat diambil contoh konjungsi magnetik misalnya:
A: Hari ini cuaca mendung
B: Hari ini akan hujan
C: Hari ini cuaca mendung dan hari ini akan hujan
D: Hari ini cuaca mendung karena itu hari ini akan hujan
Pseudocode adalah kode atau tanda yang menyerupai (pseudo) atau merupakan penjelasan cara menyelesaikan suatu masalah.
  • Pseudocode sering digunakan oleh seseorang untuk menuliskan algoritma dari suatu permasalahan.
  • Pseudocode berisikan langkah angkah untuk menyelesaikan suatu permasalahan [hampir sama dengan algoritma], hanya saja bentuknya sedikit berbeda dari algoritma.
  • Pseudo-code menggunakan bahasa yang hampir menyerupai bahasa pemrograman.
Selain itu biasanya pseudo-code menggunakan bahasa yang mudah dipahami secara universal dan juga lebih ringkas dari pada algoritma.
  • Beda antara algoritma dan pseudo-code


FLOWCHART
 Pengertian Flowchart Diagram alir (flowchart) adalah alat untuk memeriksa suatu proses. Diagram Alir (Flowchart) sangat mudah untuk dipahami, karena algoritma dinyatakan secara visualisasi dengan menggunakan simbol-simbol khusus. Akan tetapi memberikan kesempatan yang besar untuk menuliskan algoritma yang tidak terstruktur selain itu juga sulit melakukan proses pengkodean.

Pengertian Algoritma Percabangan
Pada algoritma runtunan telah kita lihat bahwa setiap pernyataan selaludilakukan bila telah sampai gilirannya. Namun demikian ada kalanya suatu pernyataanatau perintah hanya bisa dilakukan bilamemenuhi suatu kondisi atau persyaratantertentu. Algoritma ini kita sebut dengan algoritma seleksi kondisi atau jugapercabangan.Contoh. Misalnya kita ingin menentukan apakah suatu bilangan merupakanbilangan genap atau ganjil. Algoritmanya dapat kita jabarkan.
1.Mulai
2.Masukkan satu bilangan (X)
3.jika X habis dibagi dua maka lanjut ke
4.Jika tidaklanjut ke 54.tulis ‘X bilangan genap’. Lanjut ke 6.
5.tulis ‘X bilangan ganjil’
6.Selesai
Perhatikan bahwa ada dua kemungkinan perintah yang akan dikerjakan setelahperintah ke-3 dikerjakan. Jika X habis dibagi dua maka selanjutnya perintah ke-4 yang dikerjakan, kemudian melompat ke 6 (perintah 5 tidak dikerjakan). Sebaliknya jika Xtidak habis dibagi dua perintah selanjutnya melompat ke-5 (perintah 4 tidak dikerjakan) dan kemudian berakhir pada perintah ke-6.
2.Ekspresi Boolean
Ada dua komponen utama dalam ekspresi percabangan yaitu kondisi dan pernyataan. Kondisi adalah syarat dilakukannya sebuah (atau sekelompok) pernyataan, sedangkan pernyataan dalam konteks iniadalah perintah yang berkaitan dengan suatu kondisi. Contoh umum pernyataan kondisi-pernyataan :
Algoritma dan Pemrograman
Algoritma dan Pemrograman
Sebagaimana contoh sebelumnya dapat dilihat bahwa adakalanya suatuperintah dilakukan jika kondisi yang mempersyaratkannya telah jelas nilai benarsalahnya. Dalam hal pemrograman kondisi tersebut harus bisa dinyatakan dalam suatuekspresi boolean. Ekspresi boolean adalah ekspresi yang hasil ekspresinya bernilaiboolean (true atau false).EkspresiBoolean dapat diperoleh dengan menggunakan dua jenis operasi :
1.Operasi Boolean.
Operasi boolean adalah operasi yang menggunakan operator booleanseperti
and, or, not, xor.
Contoh operasi relasional
1. z1 ß x and y
2. z2 ß a=2 or b=10
3. z3 ß not(x)
4. z4 ß p+2=4 xor q=0
2.Operasi Relasional (Operasi Perbandingan)
Operasi relasional adalah operasi yang membandingkan dua buahoperan dengan menggunakan operator perbandingan (ingat, operatorperbandingan : =, <>, <,≤, >, ≥).
Contoh operasi relasional
1. z1 ß x > y
2. z2 ß a <> 10
3. z3 ß x + y = 17
4. z4 ß p div q < r
5. z5 ß p mod 2 = 0
Hasil dari operasi perbandingan memiliki dua kemungkinan, yaitu true (benar) atau false (salah). Oleh karena itu tipe hasil (z1, z2,z3, z4, z5) dari setiap operasi di atas adalah boolean.
3.Algoritma Teks dan Flowchart Percabangan
Ada dua tipe algoritma percabangan yang akan kita bahas berikut ini yaitu:
Satu kondisi (if-then) : artinya hanya ada satu kondisi yang menjadi syarat untuk melakukan satu atau satu blok (sekelompok) pernyataan. Bentuk umum algoritma teks standar percabangan dengan satu kondisi :
if <kondisi> then
pernyataan
Jika <kondisi> bernilai benar maka pernyataan dikerjakan, sedangkan jika tidak, maka pernyataan tidak dikerjakan dan proses langsung keluar daripercabangan (begin).
if A>B then
write (A)

Ekspresi di atas menunjukkan bahwa perintah menulis/menampilkan A dikerjakan hanya jika kondisi A>B bernilai benar. Jika yang terjadi adalah sebaliknya, tidak ada pernyataan yang dilakukan atau proses langsung keluar dari percabangan (endif ).Secara flowchart ekspresi itudapat ditulis seperti berikut.
Perhatikan bahwa pada kotak belah ketupat memiliki dua cabangarus data, yang satu untuk kondisi bernilai benar (y, artinya ya), sedang yanglain untuk kondisi bernilai salah (t, artinya tidak).Jika kondisi bernilai benar(y) maka perintah yang dikerjakan adalah
write(A)
. Jika kondisi salah (t)maka arus data langsung menuju ke bawah tanpa mengerjakan pernyataan apapun.
Dua kondisi (if-then-else)
: artinya ada dua kondisi yang menjadi syaratuntuk dikerjakannya dua jenis pernyataan. Bentuk umum percabangandengan dua kondisi :
if <kondisi> then
pernyataan1
else
pernyataan2
Jika <kondisi> bernilai benar maka pernyataan1 dikerjakan.Sedangkan jika tidak (<kondisi> bernilai salah), maka pernyataan yangdikerjakan adalah pernyataan2. Berbeda dengan percabangan satu kondisi,pada percabangan dua kondisi ada dua pernyataan untuk dua keadaan kondisi, yaitu untuk <kondisi> yang bernilai benar dan <kondisi> yang bernilai salah.Contoh algoritma percabangan dua kondisi :
if A>B then
write (A)
else
write (B)
Ekspresi di atas sedikit berbeda dengan sebelumnya. Perintah menulis/menampilkan A dikerjakan hanya jika kondisi A>B bernilai benar,sedangkan jika yang terjadi adalah sebaliknya maka pernyataan yangdilakukan adalah menulis B.Secara flowchart pernyataan di atas dapatditulis sebagai berikut.
Berikut ini adalah beberapa contoh lainnya.
a.If x > 0 then
ket ß bilangan positif’
b.if m = n
I ß m*n
write(i)
c.if bil>=0 then
ket ß (‘bilangan positif’)
else
ket ß (‘bilangan negatif’)
d.if m = n then
I ß m*n
J ß m-n
Else
I ß m/n
J ß m+n
write(i,j)
4.Percabangan Tersarang
Percabangan tersarang adalah percabangan di dalam percabangan. Banyak sekalibentuknya, namun salah satu contohnya adalah sebagai berikut.
If <kondisi1> then
if <kondisi2> then
Pernyataan1
Else
Pernyataan2
Else
If <kondisi3>
Pernyataan3
Else
Pernyataan4
Misalnya, buatlah algoritma untuk menentukan apakah suatu bilangan merupakan bilangan kelipatan 2 saja, atau kelipatan 5 saja, atau kelipatan 2 dan 5, atau bukan kelipatan 2 dan 5. Bilangan yang dimaksud merupakan input algoritma.
Algoritma Kelipatan2 Kelipatan5
Deklarasi
Bil: integer
Ket: string
Deskripsi
read (bil)
if bil mod 2 = 0 then
if bil mod 5= 0then
Ket ß ‘ Kelipatan 2 dan Kelipatan 5’
Else
Ket ß ‘ Kelipatan 2 tapi Bukan Kelipatan 5’
Else
if bil mod 5 = 0 then
Ket ß ‘Bukan Kelipatan 2 tapi Kelipatan 5’
Else
Ket ß‘Bukan Kelipatan 2 atau 5’)
Write (Ket)
Di sini terlihat algoritmanya menjadi sedikit rumit. Kerumitan bertambahkarena kita harus membuat percabangan dalam percabangan (percabangantersarang). Selain itu penulisan
Ket ß ’Tidak cumlaude’ harus ditulis dua kali agartujuan algoritma dapat dicapai. Dengan demikian penggunaan operator logika dalamhal ini jelas menyederhanakan algoritma di atas.
6.Percabangan Tiga Kondisi Atau Lebih
Percabangan dengan tiga kondisi atau lebih adalah bentuk pengembangan dari dua bentuk percabangan percabangan yang telah kita bahas sebelumnya. Akan ada banyak sekali variasinya tetapi secara umum ekspresi percabangannya dapat kita tuliskan sebagai berikut.
if. <kondisi1>
then
Pernyataan1
else if <kondisi2> then
Pernyataan2
else if <kondisi(n-1)> then
Pernyataan(n)
Else
Pernyataan(n)
Mula-mula <
kondisi1
> dicek nilai kebenarannya. Jika benar, maka dikerjakan
pernyataan1
. Jika salah, maka dicek nilai kebenaran <
kondisi2
>. Jika <
kondisi2
>benar,maka dikerjakan
pernyataan2
Jika tidak algoritma akan mengecek ke kondisi berikutnyadengan cara yang sama dengan yang sebelumnya. Terakhir, jika semua kondisi bernilaisalah, maka pernyataan yang dikerjakan adalah Pernyataan (n+1). Bentuk flowchartnya dapat dilihat di bawah ini.
Pada algoritma di atas pernyataan1 akan dikerjakan jika <kondisi1> bernilai benar, jika tidak pemeriksan dilanjutkan ke <kondisi2>. Jika <kondisi2> bernilai benar maka
pernyataan2 dikerjakan. Jika tidak, pemeriksaan dilanjutkan pada kondisi-kondisi berikutnya. Pemeriksaan ini terus terhadap semua kondisi yang ada. Jika tidak ada kondisiyang benar maka pernyataan yang dikerjakan adalah pernyataan(n+1)

Deklarasi : int A, B, C

Input: A, B, C  
Proses: If (A>B and A>C) then
                  ("Nilai Terbesar")
               else
              If (B<A and B<C) then
                 ("Nilai Terkecil")
               else
              If (C<A and C>B) then
                 ("Nilai Sedang")
                                                else
             end if

output: Nilai Tertinggi
         

Deklarasi 0<=nilai <30 : Nilai rendah
                 30<=nila i<60 : Nilai sedang            nilai=int
                 60<=nilai <100: nilai tinggi
                 A Int
input : A -> input = nilai
proses : If (A 0<=nilai<30) then
                    ("Nilai Rendah")
                  else
               If(A 30 <= nilai<60) then
                    ("Nilai Sedang")
                  else
               If(A  60 <= nilai<100) then
                   ("Nilai Tinggi")   else
               endif
           endif
        endif
Output : Nilai