logikadanalgoritmastmikterbaru-121227110318-phpapp02
DESCRIPTION
okiTRANSCRIPT
LOGIKA
ALGORITMA&
Anton Sukamto
By :
Anton.sukamto74 gmail.com
Logika identik dengan masuk akal dan penalaran. Penalaran salah satu bentuk pemikiran
Pemikiran pengetahuan tak langsung yang didasarkan pada pernyataan langsung pemikiran mungkin benar dan mungkin tidak benar
Definisi Logika ilmu yang memberikan prinsip-prinsip yang harus diikuti, agar dapat berfikir valid menurut aturan yang berlaku.
DEFINISI LOGIKA
KEGUNAAN LOGIKA
1.Membantu setiap orang yang mempelajari logika untuk berpikir secara rasional, kritis, lurus, tetap, tertib, metodis dan koheren. 2.Meningkatkan kemampuan berpikir secara abstrak, cermat, dan objektif. 3.Menambah kecerdasan dan meningkatkan kemampuan berpikir secara tajam dan mandiri. 4.Memaksa dan mendorong orang untuk berpikir sendiri dengan menggunakan asas-asas sistematis. 5.Meningkatkan cinta akan kebenaran dan menghindari kesalahan-kesalahan berpkir, kekeliruan serta kesesatan. 6.Mampu melakukan analisis terhadap suatu kejadian. 7.Terhindar dari klenik , gugon-tuhon ( bahasa Jawa ) 8.Apabila sudah mampu berpikir rasional,kritis ,lurus,metodis dan analitis sebagaimana tersebut pada butir pertama maka akan meningkatkan citra diri seseorang.
Mata Kuliah Logika Menimbulkan Kesadaran Kita Untuk Menggunakan Prinsip - Prinsip Berfikir
Secara Sistematis
DEFINISI ALGORITMA• Urutan langkah-langkah logis
penyelesaian masalah yang disusun secara sistematis
• Kata logis disini berarti sesuai dengan logika manusia
• Untuk menjadi sebuah algoritma, urutan langkah yang di tempuh untuk menyelesaikan masalah harus memberikan hasil yang benar.
SEJARAH ALGORITMAAbu Ja’far Muhammad Ibnu Musa Al Khuwarizmi adalah seorang penulis buku Arab yang berjudul Kitab Al Jabar Wal Muqabala (Buku Pemugaran dan Pengurangan). Kata Al Khuwarizmi di baca orang Barat menjadi Algorism.
Kata Algorism berarti proses menghitung dengan angka Arab. Seseorang dikatakan algorist jika orang tersebut menggunakan angka Arab.
Kata Algorism lambat laun berubah menjadi algorithm disebabkan kata algorism sering di kelirukan dengan kata arithmetic sehingga akhiran –sm berubah menjadi –thm. Kata algorithm diserap kedalam bahasa Indonesia menjadi algoritma
DOMAIN ALGORITMA
Masalah motivasi untuk membuat algoritma.
Algoritma prosedur untuk menyelesaikan masalah. Seringkali satu masalah dapat diselesaikan dengan lebih dari satu cara (banyak kemungkinan).
Program representasi formal dari suatu algoritma dengan menggunakan bahasa pemrograman yang bisa dimengerti oleh komputer.
Proses aktivitas menjalankan langkah-langkah dalam algoritma.
HAL YANG HARUS DIPENUHI DALAM MEMBUAT ALGORITMA
• INPUT data yang harus diberikan pada komputer.
• OUTPUT Informasi yang akan diperoleh dari komputer
• LOGIKA Merencanakan proses program. Terdiri dari sejumlah instruksi yang mengubah input menjadi output yang diinginkan.
CONTOH ALGORITMA
Ada 2 buah gelas. Satu berisi teh dan satunya berisi kopi. Bagaimana caranya menukar isi masing-masing gelas ?
TEH KOPI
ALGORITMANYA
Siapkan gelas cadangan XX
TEH
TEH
KOPI
X
XKOPI
Tuangkan teh kedalam gelas cadangan X
Tuangkan kopi kedalam gelas teh (yang telah kosong)
Tuangkan the (dari gelas cadangan kedalam gelas kopi.
LOGIKA BINER
• Dalam komputer terdapat logika tepatnya pada prosesor yang didalamnya terdapat ALU (Arithmetic Logical Unit).
• Logika yang ada yaitu AND, OR, XORX Y AND OR XOR
1 1 1 1 0
1 0 0 1 1
0 1 0 1 1
0 0 0 0 0
LATIHAN
10111 OR 111
11111 XOR 1101
11101 AND 1101
FLOWCHART
Sebelum membuat suatu program sebaiknya dibuat suatu urutan langkah logika ke dalam flowchart ( bagan alur)
14
Flowchart
• Bagan-bagan yang mempunyai arus
• Menggambarkan langkah-langkah penyelesaian suatu masalah
• Merupakan salah satu cara penyajian algoritma
15
Tujuan
• Menggambarkan suatu tahapan penyelesaian masalah
• Secara sederhana, terurai, rapi dan jelas
• Menggunakan simbol-simbol standar
16
Model / Jenis Flowchart
• System Flowchart
• Program Flowchart
17
System Flowchart
• Menggambarkan suatu sistem peralatan komputer yang digunakan dalam proses pengolahan data serta hubungan antar peralatan tersebut
• Tidak digunakan untuk menggambarkan urutan langkah untuk memecahkan masalah
• Hanya untuk menggambarkan prosedur dalam sistem yang dibentuk
18
Program Flowchart
• Menggambarkan urutan logika dari suatu prosedur pemecahan masalah
• Dua jenis metode penggambaran program flowchart :– Conceptual flowchart, menggambarkan alur
pemecahan masalah secara global– Detail flowchart, menggambarkan alur
pemecahan masalah secara rinci
19
Simbol-simbol Flowchart
• Flow direction symbols– Digunakan untuk menghubungkan simbol satu dengan
yang lain– Disebut juga connecting line
• Processing symbols– Menunjukan jenis operasi pengolahan dalam suatu
proses / prosedur
• Input / Output symbols– Menunjukkan jenis peralatan yang digunakan sebagai
media input atau output
20
Flow Direction Symbols
• Simbol arus / flow– Menyatakan jalannya arus suatu proses
• Simbol communication link– Menyatakan transmisi data dari satu lokasi ke lokasi lain
• Simbol connector– Menyatakan sambungan dari proses ke proses lainnya
dalam halaman yang sama
• Simbol offline connector– Menyatakan sambungan dari proses ke proses lainnya
dalam halaman yang berbeda
21
Processing Symbols
• Simbol process– Menyatakan suatu tindakan (proses) yang dilakukan
oleh komputer
• Simbol manual– Menyatakan suatu tindakan (proses) yang tidak
dilakukan oleh komputer
• Simbol decision– Menujukkan suatu kondisi tertentu yang akan
menghasilkan dua kemungkinan jawaban : ya / tidak
• Simbol predefined process– Menyatakan penyediaan tempat penyimpanan suatu
pengolahan untuk memberi harga awal
• Simbol terminal– Menyatakan permulaan atau akhir suatu program
22
Processing Symbols
• Simbol keying operation– Menyatakan segala jenis operasi yang
diproses dengan menggunakan suatu mesin yang mempunyai keyboard
• Simbol offline-storage– Menunjukkan bahwa data dalam simbol
ini akan disimpan ke suatu media tertentu
• Simbol manual input– Memasukkan data secara manual dengan
menggunakan online keyboard
23
Input / Output Symbols
• Simbol input/output– Menyatakan proses input atau output tanpa
tergantung jenis peralatannya
• Simbol punched card– Menyatakan input berasal dari kartu atau output
ditulis ke kartu
• Simbol magnetic tape– Menyatakan input berasal dari pita magnetis
atau output disimpan ke pita magnetis
• Simbol disk storage– Menyatakan input berasal dari dari disk atau
output disimpan ke disk
24
Output Symbols
• Simbol document– Mencetak keluaran dalam bentuk
dokumen (melalui printer)
• Simbol display– Mencetak keluaran dalam layar
monitor
25
Kaidah Pembuatan Flowchart
Start
Input
Proses
Output
End
26
Pengolahan data
START
READ
HABIS ?
PROCESS
WRITE
END
Tidak
Ya
27
Input lebar
Contoh 1
Start
End
Input panjang
Luas panjang * lebar
Print Luas
STUDI KASUS 1
28
Buatlah flowchart ( Diagram Alur ) Jika terdapat 2 (dua) bilangan desimal, dimana jika salah satu dari bilangan tersebut lebih besar maka akan tercetak bilangan yang besar, jika tidak maka cetak bilangan yang terkecil.
29
Start
Read A
Read B
A > BCetak A
Cetak B
End
Y
T
STUDI KASUS 2
30
Pensil dapat di beli secara satuan dan lusinan
Harga satuan pensil adalah Rp. 1.000, sedangkan harga selusin pensil Rp. 5.000. Buatlah diagram alur untuk harga pembelian X buah pensil.
Penjelasan :
Jika kita beli 15 buah pensil dengan harga satuan maka harus membayar Rp. 15.000 , sedangkan jika kita membayar dengan 1 lusin serta 3 buah buah sisanya maka kita harus membayar Rp. 8.000
31
Cetak P
Baca X
L INT (X/12)
S X – L * 12
P 5000 * L + 1000* S
End
STUDI KASUS 3
32
Buatlah flowchart ( diagram alur ) jika kita mempunyai s detik diubah menjadi x jam y menit dan z detik
33
START
BACA S
X INT (S/3600)
A S – 3600 * X
Y INT (A/60)
A
A
Z A – 60 * Y
CETAKX, Y, Z
END
STUDI KASUS 4
34
Buatlah flowchart (bagan alur) untuk pembelian buku.
Jika kita membeli buku dalam jumlah besar, maka penerbit akan memberikan rabat (discount) dengan ketentuan sebagai berikut :
1.Pembelian kurang dari 10 buku, maka tidak ada rabat. 2.Pembelian 10 buku sampai 29 buku, rabat 10 %. 3.Pembelian 30 buku ke atas, rabat 20 %
35
MULAI
BACA X
X < 10 ?
H 0.8*5000*X
CETAK H
SELESAI
X < 30 ?
H 5000*X
H 0.9*5000*X
ya
tidak
tidak
ya
LOOPING / PERULANGAN
36
(1) Variabel A diberi harga 1
(2) Variabel A Berubah menjadi 2
(3) Variabel B diberi harga sebesar harga A DIKALIKAN HARGA A
(4) Variabel B di dicetak (jadi tercetak 4).
Kemudian kembali ke (2) , (3), (4) dan kembali lagi ke (2) begitu seterusnya
A 1
A A + 1
B A * A
CETAK B
( 1 )
( 2 )
( 3 )
( 4 )
HASILNYA 4,9,16, ……
37
BUATLAH DIAGRAM ALUR UNTUK MENCETAK KUADRAT BILANGAN – BILANGAN 1 SAMPAI DENGAN 10
55
38
MULAI
A 1
A > 10 ? SELESAI
B A * A
CETAK B
A A+1
Y
T
QUIZ
39
1. BUAT FLOWCHART DENGAN OUTPUT 2,4,6,8,10
2. 110 or 97 207 xor 102 315 and 221
STUDI KASUS 6
40
Buatlah diagram alur untuk mencetak suku barisan. Dengan suku pertama 3 dan beda 4 sampai suku yang harganya tidak melebihi 100.
41
start
S 3
B 4
S > 100
Cetak S
S S+B
end
Y
T
STUDI KASUS 7
42
Mulai
CETAK A
CETAK B
A
A
C > 50
CETAK C
A 0
A B
B C
B 1
C A+B
Selesai
Y
T
PSEUDO-CODE
43
Kode atau tanda yang menyerupai (pseudo) atau merupakan pejelasan cara menyelesaikan suatu masalah.
Pseudo-code sering digunakan oleh manusia untuk menuliskan algoritma.
STUDI KASUS 7
44
Mencari bilangan terbesar dari dua bilangan yang diinputkan
Pseudo-code:
45
1. Masukkan bilangan pertama
2. Masukkan bilangan kedua
3. Jika bilangan pertama > bilangan kedua maka kerjakan langkah 4, jika tidak, kerjakan langkah 5.
4. Tampilkan bilangan pertama
5. Tampilkan bilangan kedua
Algoritma
46
1. Masukkan bilangan pertama (a)
2. Masukkan bilangan kedua (b)
3. if a > b then kerjakan langkah 4
4. print a
5. print b
CONTOH LAIN PEUDO-CODE & ALGORITMA
47
Pseudo-code Algoritma
Nilai A ditambah dengan 5 A A + 5
Cetak nilai A bila lebih besar dari 10
If A > 10 THEN PRINT A
Dari dua bilangan A dan B, cari bilanan yang terbesar
IF A > B THEN PRINT A ELSE PRINT B
LANGKAH MEMBUAT PROGRAM KOMPUTER
48
1. Mendefinisikan masalah Ini merupakan langkah pertama yang sering dilupakan orang. Menurut hukum Murphy (oleh Henry Ledgard):
“Semakin cepat menulis program, akan semakin lama kita dapat menyelesaikannya”.
Hal tersebut berlaku untuk permasalahan yang kompleks. Tentukan masalahnya, apa saja yang harus dipecahkan dengan menggunakan komputer, dan apa inputan serta outputnya.
49
2. Menemukan solusi Setelah masalah didefinisikan, maka langkah berikutnya adalah menentukan solusi. Jika masalah terlalu kompleks, maka ada baiknya masalah tersebut dipecah menjadi modul-modul kecil agar lebih mudah diselesaikan.
3. Memilih algoritma Pilihlah algoritma yang benar-benar sesuai dan efisien untuk permasalahan tersebut.
4. Menulis program Pilihlah bahasa yang mudah dipelajari, mudah digunakan, dan lebih baik lagi jika sudah dikuasai, memiliki tingkat kompatibilitas tinggi dengan perangkat keras dan platform lainnya.
. 5. Menguji program Setelah program jadi, silahkan uji program tersebut dengan segala macam kemungkinan yang ada, termasuk error-handlingnya sehingga program tersebut akan benar-benar handal dan layak digunakan
50
6. Menulis dokumentasi Menulis dokumentasi sangat penting agar pada suatu saat jika kita akan melakukan perubahan atau membaca source code yang sudah kita tulis dapat kita ingat-ingat lagi dan kita akan mudah membacanya. Caranya adalah dengan menuliskan komentar-komentar kecil tentang apa maksud kode tersebut, untuk apa, variabel apa saja yang digunakan, untuk apa, dan parameter-parameter yang ada pada suatu prosedur dan fungsi.
7. Merawat program Program yang sudah jadi perlu dirawat untuk mencegah munculnya bug yang sebelumnya tidak terdeteksi. Atau mungkin juga pengguna membutuhkan fasilitas baru yang dulu tidak ada.
BASIC(BEGINNER’S ALL-PURPOSE SYMBOLIC INSTRUCTION CODE)
51
Bahasa pemrograman BASIC merupakan bahasa pemrograman yang cukup sesuai bagi pemula. Namun sungguhpun demikian bahasa tersebut cukup baik untuk dipergunakan memecahkan berbagai masalah mulai dari yang paling sederhana sampai dengan yang rumit.
Contoh
52
10 LET A = 420 LET B = 5 30 LET C = A + B40 PRINT C50 ENDRUN
BASIC ALGORITMA
10 A = 420 B = 5 30 C = A + B40 PRINT C
53
LATIHAN
10 A = 411 B = 5 12 C = A + B13 D = A – B 14 PRINT C 15 PRINT D
10 DATA 3,711 READ A,B12 A = A + 113 PRINT A14 A = A + 1 15 PRINT A16 A = A + B17 PRINT A
STATEMEN FOR - TO
54
START
K = N*N
FOR N = 1 TO 4
NEXT N
CETAK K
END
55
10 READ DATA A, B20 C = (A+B)/230 PRINT C40 PRINT B
10 X = 120 PRINT X30 IF X = 5 THEN 6040 X= X+150 GO TO 2060 END
Harga 1 kg jeruk untuk pembelian 5 kg atau lebih rp. 6.000 dan kurang dari 5 kg adalah Rp. 7.000. buat diagram alur dan lengkapi algoritma di bawah ini
10 Data ……20 Read N30 IF N < 5 THEN 6040 ………..50 GO TO 7060 ………. 70 Print B 80 end
LATIHAN
56
1.BUATLAH ALGORITMA DENGAN OUTPUT 4,6,8,10,12
2.BUATLAH ALGORITMA & FLOWCHART UNTUK MENGHITUNG NILAI RATA2 MAHASISWA, JIKA NILAI RATA2 2 MATAKULIAH LEBIH BESAR DARI 75 MAKA MAHASISWA TERSEBUT “LULUS”, JIKA TIDAK MAHASISWA TERSEBUT “GAGAL”