Dasar Komputasi
Pengenalan Pemrograman
Mengapa bahasa pemrograman??
Mengapa harus memprogram??
Bahasa merupakan sarana untuk berkomunikasi
Untuk ‘berkomunikasi’ dengan komputer kita perlu menguasai ‘bahasa komputer’
Bahasa yang dimengerti komputer adalah bahasa pemrograman
Memprogram adalah proses berkomunikasi dengan komputer
Tujuan memprogram komputer:memerintahkan komputer untuk melakukan tugas-tugas komputasi dan input-
output sesuai yang diinginkan pemrogram
Komputer merupakan salah satu produk
teknologi tinggi yang dapat melakukan hampir semua pekerjaan diberbagai disiplin ilmu, tetapi komputer hanya akan merupakan barang mati tanpa adanya bahasa pemrograman untuk
menggambarkan apa yang kita kerjakan, sistem bilangan untuk mendukung komputasi, dan
matematika untuk menggambarkan prosedur
komputasi yang kita kerjakan.
Bagaimana komputer menjalankan instruksi-instruksi pemrograman??
Gambaran sederhana komputer dan instruksi pemrograman:
komputer eksekusi
‘memori’
eksekusi secara sekuensial (berurutan)
Instruksi 1 Instruksi 2 Instruksi 3 Instruksi 4
. . . .
Instruksi n
Perkembangan Bahasa Komputer
Berdasarkan tingkat ‘kecanggihannya’:
1.
Bahasa Generasi Pertama (1
stGL):bahasa mesin
2.
Bahasa Generasi Kedua(2
ndGL):bahasa assembly
3.
Bahasa Generasi Ketiga:Bahasa Tingkat
Tinggi yang akan kita pelajari
Bahasa Generasi Pertama (Bhs Mesin)
Merupakan kode-kode bilangan biner, terdiri dari kombinasi bilangan ‘1’ dan ‘0’
Setiap kombinasi mewakili satu instruksi
Instruksi bahasa mesin tergantung dari jenis komputer yang dipakai(machine dependent)
contoh: instruksi transfer data dari akumulator ke register:
Komputer intel 8051 1) : ‘01000111B’ (47H)
Komputer Z80 2) : ‘00010011B’ (13H)
Pemrograman bahasa mesin: instruksi-instruksi langsung dimasukkan ke memori untuk dieksekusi komputer
1) Intel 8051 adalah komputer generasi lama yang sekarang digunakan sebagai mikrokontroler
2) Z80 adalah komputer generasi lama produksi Zilog
Bahasa Generasi Ke-2 (bhs assembly)
Merupakan penyempurnaan bhs generasi pertama, sudah memasukkan unsur kata bahasa Inggris dalam bentuk singkat
Masih bersifat machine dependent
Penulisan sudah jauh lebih mudah dari bahasa mesin, tetapi programmer tetap harus memahami perangkat keras komputer
Beberapa variabel masih mengacu pada register,alamat memori maupun I/O
Contoh: instruksi transfer data dlm bhs assembly:
Komputer 8051 : MOV R1,#22H
Komputer AVR 3) : LDI R1,0x22
3) AVR digunakan sebagai mikrokontroller produksi Atmel
Bahasa Generasi ke-3 (Bhs Tingkat tinggi)
Memasukkan lebih banyak unsur kata bahasa Inggris yang digunakan sehari-hari dan mempunyai sintaksis yang lebih baik
Merupakan bahasa pemrograman yang digunakan
sekarang pada umumnya untuk memprogram komputer
Contoh macam-macam bahasa tingkat tinggi: Pascal, C, C++, Java, Python, dsb
Pemrosesan program pada bahasa tingkat tinggi oleh komputer
Listing Program/source code (biasanya dalam
bentuk file teks)
File objek : merupakan program yang telah diterjemahkan ke bahasa
mesin
File binary/executable : file program yang siap dieksekusi(dijalankan)
Proses kompilasi : menerjemahkan bahasa tingkat tinggi menjadi bahasa mesin dalam
bentuk file objek
Proses Link : menambahkan informasi tentang karakteristik komputer yang digunakan ke
dalam bhs mesin
Proses eksekusi : menjalankan program
yang telah dibuat
Arti Berpikir Komputasi
Berpikir menggunakan logika
Melakukan sesuatu selangkah demi selangkah
Menentukan keputusan bila menghadapi dua kemungkinan yang berbeda
Salah satu cara untuk memahami dan
mengimplementasikan cara berpikir komputasi adalah dengan belajar pemrograman
Cara lain?
Belajar memahami penggunaan perangkat lunak pengolah kata (contoh: MS Word), pengolah LembarKerja (SpreadSheet,
contoh:MS Excel)
Berpikir Komputasi
Melibatkan sekumpulan keahlian dan teknik
pemecahan masalah yang biasanya digunakan oleh pengembang perangkat lunak untuk menulis program aplikasi komputer.
Teknik-teknik yang digunakan
Dekomposisi
Pengenalan Pola (pattern recognition)
Generalisasi Pola dan abstraksi(pattern generalization)
Untuk mendefinisikan suatu model
Rancangan Algoritma dan analisa data /visualisasi
Dekomposisi
Suatu masalah dipecah menjadi beberapa submasalah yang lebih kecil
Matematika: 256 = 2 * 100 + 5 * 10 + 6 * 1
Sistem Perpustakaan
Peminjaman buku
Anggota
Dosen
Mahasiswa
Program komputer: ?
Pengenalan Pola (Pattern Recognition)
●Kemampuan melihat adanya kesamaan yang akan memungkinkan kita untuk melakukan prediksi
●Pola penjualan saham
●Untuk program komputer, kadang kita bisa menemui pola yang berulang, keadaan ini memungkin pemisahan bagian program menjadi procedure/fungsi
Generalisasi Pola dan Abstraksi
●
Kemampuan memilah informasi yang kompleks menjadi lebih sederhana atau membuat informasi lebih bersifat general sehingga memudahkan kita untuk menjelaskan suatu ide
● Gambar grafik pie-chart untuk abstraksi prosentasi jumlah mahasiswa pria – wanita
● Lokasi suatu posisi di bumi dapat ditentukan dari kordinat langitude atau latitude
● Menghitung fibonacci
● Fibonacci[0] = 1
● Fibonacci[1] = 1
● Fibonnaci[n] = Fibonacci[n-1] + Fibonacci[n-2]
Rancangan Algoritma
●
Kemampuan mengembangkan strategi selangkah demi selangkah untuk pemecahan masalah.
●
Rancangan algoritma biasanya dibuat
berdasarkan dekomposisi masalah dan identifikasi pola yang akan membantu pemecahan masalah.
● Urutan memasak kentang
● Urutan memakai sepatu
● Implementasi program komputer dalam bahasa C, Pascal, Fortran, dll.
Perancangan Program
Sebelum menulis program ada beberapa hal yang bisa dilakukan untuk membantu programer dalam merancang program :
Pembuatan Algoritma
Pembuatan Flowchart (diagram alir)
Proses tersebut tidak harus dilakukan,
karena fungsinya hanya untuk membantu
merancang program
Contoh Analisa Persoalan:
Mengupas Kentang
●
Bila ingin makan kentang, tentunya kita perlu memiliki kentang terlebih dahulu
●
Jika belum ada, maka beli kentang dulu
●
Jika sudah ada maka kentang perlu di kupas
●
Setelah dikupas, kita harus memilih,
apakah kita mau menggoreng kentang,
merebus kentang atau membuat sup.
Algoritma
Merupakan penjabaran urutan proses yang akan
dikerjakan oleh program yang akan kita rancang dalam bentuk kalimat-kalimat
Contoh : Algoritma pertukaran data 2 buah variabel
(misalnya variabel a dan b, pada awal program bernilai a=3 dan b=5, pada akhir program bernilai a=5 dan
b=3)
1. Inisialisasi variabel : a=3, b=5, deklarasikan variabel tambahan yaitu c
2. Tampilkan nilai awal a dan b
3. Transfer nilai a ke c (c = a)
4. Transfer nilai b ke a (a = b)
5. Transfer nilai c ke b (b = c)
6. Tampilkan nilai a dan b
Flowchart (diagram alir)
Merupakan penjabaran urutan proses yang akan
dikerjakan oleh program yang akan kita rancang dalam bentuk diagram(grafis)
Tiap-tiap penanda dalam program mempunyai simbol dalam flowchart
Penanda-penanda tersebut adalah:
Awal/akhir program (terminal)
Suatu proses dalam program (process)
Input/output
Proses yang telah terdefinisi (Predefined Process)
Pengambilan keputusan (decision)
Simbol –simbol flowchart
Terminal Symbol:
indicates the starting or stopping pointin the logic.
Input/Output Symbol:
Represents an input or output process in an algorithm
Process Symbol:
Represents any single process in an algorithm
Decision Symbol:
Represents a decision in the logic involving the comparison Of two values.
Predefined Process Symbol:
Pembuatan Flowchart
●
Tidak ada kaidah yang baku.
●
Flowchart = gambaran hasil analisa suatu masalah
●
Flowchart dapat bervariasi antara satu pemrogram dengan pemrogram lainnya.
●
Secara garis besar ada 3 bagian utama:
● Input
● Proses
● Output
Pembuatan Flowchart
●
Hindari pengulangan proses yang tidak perlu dan logika yang berbelit sehingga jalannya proses menjadi singkat.
●
Jalannya proses digambarkan dari atas ke bawah dan diberikan tanda panah untuk memperjelas.
●
Sebuah flowchart diawali dari satu titik
START dan diakhiri dengan END
Contoh flowchart
Mengupas kentang
Contoh flowchart
Pertukaran 2 variabel
mulai
Inisialisasi : A = 3 B = 5
C = A Tampilkan
A dan B
A = B
B = C
selesai Tampilkan
A dan B
Contoh Analisa Persoalan:
JarumJam dinding yang tidak tepat
●
Bila jarum tidak bergerak, ganti battery
●
Jika bergerak berarti battery masih hidup tinggal dilakukan perbaikan letak jarum jam
●
Buatlah flowchartnya!
Contoh Soal 1
Bagaimana menghitung keliling dan luas
lingkaran jika diberi masukan jari-jari lingkaran?
●
Algoritma
● Masukkan sebuah jari-jari lingkaran
● Tetapkan PI = 3,141593
● Hitung Keliling = 2 x PI x jari-jari
● Hitung Luas = PI x jari-jari x jari-jari
● Tampilkan Keliling
● Tampilkan Luas
Contoh Soal 1
Flowchart
Luas = PI x jari-jari x jari-jari Start
Masukkan jari-jari
PI = 3,141593
Keliling = 2 x PI x jari-jari
Cetak nilai Keliling
Cetak nilai Luas
End
Contoh Soal 2
Bagaimana menentukan apakah suatu bilangan merupakan bilangan ganjil atau bilangan genap?
●
Algoritma
● Masukkan sebuah bilangan sembarang
● Bagi bilangan tersebut dengan bilangan 2
● Hitung sisa hasil bagi pada langkah 2.
● Bila sisa hasil bagi sama dengan 0 maka bilangan itu adalah bilangan genap tetapi bila sisa hasil bagi sama dengan 1 maka bilangan itu adalah bilangan ganjil.
Contoh Soal 2
Flowchart
Contoh Soal 3
Buatlah algoritma dan flowchart untuk mengecek bilangan di antara 2 bilangan masukan, apakah sama ataukah lebih besar salah satunya, dan tampilkan hasilnya.
Algoritma
● Masukkan bilangan pertama
● Masukkan bilangan kedua
● Bandingkan apakah bilangan pertama sama dengan bilangan kedua.
● Jika sama, cetak output "SAMA"
● Jika tidak sama, cetak output "SALAH SATU BILANGAN LEBIH BESAR".
Contoh Soal 3
Flowchart
Start
Masukkan bilangan pertama
Cetak “SAMA”
Cetak
“SALAH SATU LEBIH BESAR”
End
Masukkan bilangan kedua
Bilangan pertama = bilangan kedua
?
Contoh Soal 4
Buatlah algoritma dan flowchart untuk mengecek bilangan di antara 2 bilangan masukan, apakah sama ataukah lebih besar salah satunya, dan tampilkan hasilnya. Jika bilangan tidak sama, tentukan bilangan yang lebih besar.
Algoritma
●Masukkan bilangan pertama
●Masukkan bilangan kedua
●Bandingkan apakah bilangan pertama sama dengan bilangan kedua.
●Jika sama, cetak output "Kedua bilangan sama"
●Jika tidak sama, bandingkan apakah bilangan pertama lebih besar dari bilangan kedua.
●Jika benar bilangan pertama lebih besar, cetak output "Bilangan pertama lebih besar"
●Jika tidak, cetak output "Bilangan kedua lebih besar"
Contoh Soal 4
Flowchart
Start
Masukkan bilangan pertama
Cetak
“Kedua bilangan sama”
Cetak
“Bilangan pertama Lebih besar”
End Masukkan bilangan kedua
Bilangan pertama = bilangan kedua
?
Cetak
“Bilangan kedua Lebih besar”
Bilangan pertama >
bilangan kedua
? Y
T T
Y