Pengantar Teknologi Informasi Pemrograman
Programming? Proses Memberikan instruksi kepada komputer agar dapat bekerja seperti yang kita kehendaki. Berhubungan erat dengan coding (proses penulisan code-code perintah)
Manusia Vs Komputer Yang ‘dipahami’ atau dijalankan oleh komputer : data dan instruksi dalam bentuk biner (rangkaian bit-bit bernilai ‘0’ atau ‘1’). Yang dipahami manusia : logika, aritmetika, algoritma, konsep, model, dan sebagainya.
Disain Logika Program Sekali problem didefinisikan dengan jelas oleh user dan analis sistem, dan digambarkan sebagai sekumpulan spesifikasi program, maka programer atau pengembang software dapat memulai mendisain sebuah program. Pertama sekali, programer harus membuat sebuah algoritma. ALGORITMA berasal dari seorang ilmuwan Muslim bernama Al-Khowarizmi Algoritma secara bahasa berarti resep, metode, teknik atau prosedur Algoritma: prosedur yang digunakan untuk memecahkan masalah tahap demi tahap
Sifat Algoritma Harus sederhana Tahapan harus tidak bermakna ganda (ambigu) sehingga komputer bisa memahaminya secara baik Efektif dalam memecahkan masalah Universal dan mengarah ke solusi yang unik Memiliki kapabilitas untuk menangani situasi yang tidak diinginkan, misalnya devide by zero
Cara Menyatakan Algoritma Flowchart: Lambang, simbol, gambar Arah panah Pseudo code Uraian sistematis dengan bahasa biasa Hierarchy Chart
Simbol-simbol Flowchart ARTI Input/Output (I/O) Pemrosesan Sederatan pemindahan data atau operasi aritmatika Keputusan (Penyeleksian Kondisi) Perbandingan logika; digunakan ketika kita ingin komputer minta sebuah pertanyaan Terminal Titik mulai atau akhir program Proses yang didefinisikan sebelumnya Subprogram atau modul yang dieksekusidi titik ini. Instruksi nyatanya diisikan di modul ini yang ditunjukkan di tempat lain di dalam flowchart Pembacaan data/input dengan punch card Konektor satu halaman Titik rujukan lain yang biasanya diberi nomor Konektor beda halaman Garis aliran Arah aliran logika
Macam-macam Instruksi a. Instruksi tanpa syarat (sequential flow) b. Instruksi bersyarat (conditional flow) Kondisi Proses A Proses B Salah Benar Proses A Proses B Proses C Kondisi Proses A Proses B c. Instruksi Pengulangan (repetitive flow)
Contoh Lain 1. Bagan arus untuk membeli kue dengan kupon Mulai Siapkan uang Antri di tempat jual karcis Beli kupon Pilih kue Tukar kue dengan kupon Selesai
2. Bagan arus untuk belajar Mulai Siapkan alat-alat Baca diktat Cernakan isi diktat Coba kerjakan soal Cocokkan dgn kunci Ya Cocok? Tidak Istirahat Selesai
Pseudocode Penggunaan flowchart sebagai alat perencanaan mengalami kemunduran belakangan ini karena flowchart untuk program yang besar dan kompleks sering tidak praktis untuk digambar dan sulit untuk dipahami sulit membuat modifikasi flowchart tanpa menggambar kembali secara penuh sering sangat panjang, struktur logikanya bisa sulit diikuti Alternatifnya: PSEUDOCODE (secara harfiah berarti “kode salah”) yang terdiri dari pernyataan seperti dengan bahasa Inggris (sebagai lawan dari simbol) untuk merencanakan logika program Pseudocode tidak perlu menyatakan semua rincian-rincian proses, tetapi menggambarkan secara hati-hati keseluruhan aliran logika program
Pseudocode Pseudocode populer karena MULAI dapat merepresentasikan secara mudah semua struktur pemrograman yang dibutuhkan oleh programer istilah-istilah menggunakan bahasa seperti bahasa Inggris adalah mudah untuk dipelajari dan dipahami Contoh pseudocode untuk penyiapan faktur MULAI BACA Nama, Jam, Rate LAKUKAN subprogram untuk kalkulasi upah CETAK Nama, Upah SELESAI
Contoh CONTOH Read(Data); Write(Report) Total := X + Y; If NilaiUjian > 60 Then Ket := ‘Lukus’; Begin End. Procedure Faktorial(); Faktorial(N,F);
Hierarchy Chart Flowchart dan pseudocode adalah alat untuk mendisain logika program Hierarchy chart (structure chart) menggambarkan bagaimana program disegmentasi ke sub-subprogram atau modul-modul dan bagaimana modul-modul itu secara nyata berhubungan satu dengan lainnya Contoh:
Bahas Pemrogramman Untuk menjembatani, dibuatlah bahasa pemprograman, yang menerjemahkan dari apa yang dikehendaki / dimengerti manusia menjadi instruksi mesin komputer.
Klasifikasi Berdasarkan Tingkat Berdasarkan Paradigma
Berdasarkan tingkat 1. Bahasa tingkat rendah, memetakan setiap instruksi dari kode sumber kedalam satu instruksi bahasa mesin. Biasa disebut juga dengan bahasa assembly. Untuk dapat memprogram dalam bahasa assembly, diperlukan pengetahuan yang benar tentang perangkat keras, representasi data, cara kerja pemprosesan, dan instruksi-instruksi mesin komputer 2. Bahasa tingkat tinggi, memiliki kedekatan dengan bahasa dan cara berpikir manusia. Contoh : bahasa Pascal 3. Bahasa tingkat menengah, antara kedua tingkat di atas. Contoh : bahasa C
Berdasarkan Paradigma Prosedural Fungsional Deklaratif Object Oriented Programming (OOP)
Bahasa Prosedural Program tersusun atas prosedur-prosedur algoritma. Procedure : sekumpulan langkah Function, routine, subroutine Pemprograman prosedural dicirikan dengan adanya: sequence (urutan), branch (pencabangan), dan loop (pengulangan).
Eksekusi Bahasa Prosedural Urutan, berarti bahasa tersebut memiliki urutan pemprosesan tertentu, biasanya dari atas ke bawah dan dari kiri ke kanan.
Percabangan merupakan alternatif alur program berdasarkan evaluasi terhadap kondisi tertentu. Contoh pencabangan adalah beberapa statement berikut
Pengulangan Pengulangan terhadap alur program berdasarkan evaluasi terhadap kondisi tertentu.
PEMROGRAMAN FUNGSIONAL tersusun atas fungsi-fungsi, baik yang sudah terdefinisi maupun yang dibuat sendiri oleh pengguna. Contoh : LISP
PEMROGRAMAN DEKLARATIF Tersusun atas deklarasi-deklarasi logika, berupa fakta, aturan, dan sasaran. Bahasa pemprograman prosedural memiliki mekanisme inferensi, yang memungkinkan komputer ‘menalar’ atau menelusuri berbagai fakta dan aturan yang diberikan untuk mendapatkan hasil / jawaban dari pertanyaan tertentu. Contoh : Prolog (programming in logic), Python, XpertRule
OOP Dalam pemprograman berorientasi objek, persoalan dan solusinya dimodelkan sebagai objek. Objek adalah segala sesuatu di alam semesta (lahiriah) yang dapat diamati. Setiap objek merupakan anggota, atau merupakan instance dari kelas objek tertentu.
Kelas Objek 1. nama kelas objek yang unik, membedakannya dengan kelas objek yang lain 2. atribut-atribut, atau data, atau properti-properti, atau sifat-sifat yang melekat pada kelas objek tersebut 3. perilaku, atau kemampuan, atau operasi, atau method, atau tanggung jawab yang melekat pada kelas objek tersebut
Ciri Utama Encapsulation, merupakan pembungkusan suatu kelas objek dengan atributatribut dan perilaku-perilaku yang dimilikinya. Contoh kelas objek sederhana Inheritance, merupakan penurunan sifat dari kelas objek induk kepada kelas objek anaknya, dari suatu kelas objek yang lebih general / umum kepada kelas objek yang lebih spesifik / khusus. Polymorphism, berarti objek yang berbeda-beda yang diturunkan dari induk yang sama mendukung antarmuka properti dan method yang sama. (dapat dipahami jika telah terlibat lebih lanjut dengan pemprograman berorientasi objek)
Contoh OOP Java C++ Eiffel, SmallTalk, C#
Program Control Structure Sequence structure Branch structure Loop structure
Sequence 1 Input jmlBrg, hrgSat 2 harga ← jmlBrg x hrgSat 3 Instruksi dikerjakan secara berurutan. dari atas ke bawah step Instruksi 1 Input jmlBrg, hrgSat 2 harga ← jmlBrg x hrgSat 3 Print harga
Contoh Sequence (1) step Variabel Output Program akan dikerjakan dengan input: 2, 1500 step Instruksi 1 Input jmlBrg, hrgSat 2 harga ← jmlBrg x hrgSat 3 Print harga step Variabel Output jmlBrg hrgSat harga
Contoh Sequence (2) step Variabel Output 1 2 1500 Mulai dengan langkah-1: Input 2, 1500 step Instruksi 1 Input jmlBrg, hrgSat 2 harga ← jmlBrg x hrgSat 3 Print harga step Variabel Output jmlBrg hrgSat harga 1 2 1500
Contoh Sequence (3) step Variabel Output 1 2 1500 3000 Langkah-2: Hitung perkalian, simpan hasilnya di variabel harga step Instruksi 1 Input jmlBrg, hrgSat 2 harga ← jmlBrg x hrgSat 3 Print harga step Variabel Output jmlBrg hrgSat harga 1 2 1500 3000
Contoh Sequence (4) step Variabel Output Tampilkan isi variabel harga Langkah-3: Tampilkan isi variabel harga step Instruksi 1 Input jmlBrg, hrgSat 2 harga ← jmlBrg x hrgSat 3 Print harga step Variabel Output jmlBrg hrgSat harga 1 2 1500 3000 3
Contoh Branch (0) step Variabel Next step Output 1 Instruksi 1 Input jmlBrg, hrgSat 2 IF jmlBrg lebih besar dari 100 THEN 3 harga <= 90% x jmlBrg x hrgSat 4 ELSE 5 harga <= jmlBrg x hrgSat 6 ENDIF 7 Print harga step Variabel Next step Output jmlBrg hrgSat harga
Contoh Branch (1) step Variabel Next step Output 1 2 1500 1 Instruksi 1 Input jmlBrg, hrgSat 2 IF jmlBrg lebih besar dari 100 THEN 3 harga ← 90% x jmlBrg x hrgSat 4 ELSE 5 harga ← jmlBrg x hrgSat 6 ENDIF 7 Print harga step Variabel Next step Output jmlBrg hrgSat harga 1 2 1500
Contoh Branch (2) step Variabel Next step Output 1 2 1500 5 1 Instruksi 1 Input jmlBrg, hrgSat 2 IF jmlBrg lebih besar dari 100 THEN 3 harga ← 90% x jmlBrg x hrgSat 4 ELSE 5 harga ← jmlBrg x hrgSat 6 ENDIF 7 Print harga step Variabel Next step Output jmlBrg hrgSat harga 1 2 1500 5
Contoh Branch (3) step Variabel Next step Output 1 2 1500 5 3000 6 Instruksi 1 Input jmlBrg, hrgSat 2 IF jmlBrg lebih besar dari 100 THEN 3 harga ← 90% x jmlBrg x hrgSat 4 ELSE 5 harga ← jmlBrg x hrgSat 6 ENDIF 7 Print harga step Variabel Next step Output jmlBrg hrgSat harga 1 2 1500 5 3000 6
Contoh Branch (4) step Variabel Next step Output 1 2 1500 5 3000 6 7 Instruksi 1 Input jmlBrg, hrgSat 2 IF jmlBrg lebih besar dari 100 THEN 3 harga ← 90% x jmlBrg x hrgSat 4 ELSE 5 harga ← jmlBrg x hrgSat 6 ENDIF 7 Print harga step Variabel Next step Output jmlBrg hrgSat harga 1 2 1500 5 3000 6 7
Contoh Branch (5) step Variabel Next step Output 1 2 1500 5 3000 6 7 Instruksi 1 Input jmlBrg, hrgSat 2 IF jmlBrg lebih besar dari 100 THEN 3 harga ← 90% x jmlBrg x hrgSat 4 ELSE 5 harga ← jmlBrg x hrgSat 6 ENDIF 7 Print harga step Variabel Next step Output jmlBrg hrgSat harga 1 2 1500 5 3000 6 7 selesai
Contoh Loop (0) Akan dijalankan dengan input 2, 1500 6, 100 11, 2000 step Instruksi 1 Input jmlBrg, hrgSat 2 WHILE jmlBrg lebih kecil dari 10 3 Print ‘Tidak boleh kurang dari 10’ 4 5 END REPEAT step Variabel Next step Output jmlBrg hrgSat harga
Contoh Loop (1) Input pertama Input berikutnya 2, 1500 6, 100 11, 2000 step Instruksi 1 Input jmlBrg, hrgSat 2 WHILE jmlBrg lebih kecil dari 10 3 Print ‘Tidak boleh kurang dari 10’ 4 5 END REPEAT step Variabel Next step Output jmlBrg hrgSat harga 1 2 1500
Contoh Loop (2) Input berikutnya 6, 100 11, 2000 step Variabel Instruksi 1 Input jmlBrg, hrgSat 2 WHILE jmlBrg lebih kecil dari 10 3 Print ‘Tidak boleh kurang dari 10’ 4 5 END REPEAT step Variabel Next step Output jmlBrg hrgSat harga 1 2 1500 3
Contoh Loop (3) Input berikutnya 6, 100 11, 2000 step Variabel Instruksi 1 Input jmlBrg, hrgSat 2 WHILE jmlBrg lebih kecil dari 10 3 Print ‘Tidak boleh kurang dari 10’ 4 5 END REPEAT step Variabel Next step Output jmlBrg hrgSat harga 1 2 1500 3 4 Tidak boleh kurang dari 10
Contoh Loop (4) Input sekarang Input berikutnya 6, 100 11, 2000 step Instruksi 1 Input jmlBrg, hrgSat 2 WHILE jmlBrg lebih kecil dari 10 3 Print ‘Tidak boleh kurang dari 10’ 4 5 END REPEAT step Variabel Next step Output jmlBrg hrgSat harga 1 2 1500 3 4 Tidak boleh kurang dari 10 6 100 5
Contoh Loop (5) Input berikutnya 11, 2000 step Variabel Next step Instruksi 1 Input jmlBrg, hrgSat 2 WHILE jmlBrg lebih kecil dari 10 3 Print ‘Tidak boleh kurang dari 10’ 4 5 END REPEAT step Variabel Next step Output jmlBrg hrgSat harga 1 2 1500 3 4 Tidak boleh kurang dari 10 6 100 5
Contoh Loop (6) Input berikutnya 11, 2000 step Variabel Next step Instruksi 1 Input jmlBrg, hrgSat 2 WHILE jmlBrg lebih kecil dari 10 3 Print ‘Tidak boleh kurang dari 10’ 4 5 END REPEAT step Variabel Next step Output jmlBrg hrgSat harga 1 2 1500 3 4 Tidak boleh kurang dari 10 6 100 5
Contoh Loop (7) Input berikutnya 11, 2000 1 Input jmlBrg, hrgSat 2 step Instruksi 1 Input jmlBrg, hrgSat 2 WHILE jmlBrg lebih kecil dari 10 3 Print ‘Tidak boleh kurang dari 10’ 4 5 END REPEAT step Variabel Next step Output jmlBrg hrgSat harga 1 2 1500 3 4 Tidak boleh kurang dari 10 6 100 5
Contoh Loop (8) 11 2000 1 Input jmlBrg, hrgSat 2 step Instruksi 1 Input jmlBrg, hrgSat 2 WHILE jmlBrg lebih kecil dari 10 3 Print ‘Tidak boleh kurang dari 10’ 4 5 END REPEAT step Variabel Next step Output jmlBrg hrgSat harga 1 2 1500 3 4 Tidak boleh kurang dari 10 6 100 5 11 2000
Contoh Loop (9) 11 2000 1 Input jmlBrg, hrgSat 2 step Instruksi 1 Input jmlBrg, hrgSat 2 WHILE jmlBrg lebih kecil dari 10 3 Print ‘Tidak boleh kurang dari 10’ 4 5 END REPEAT Step jmlBrg hrgSat harga Next step Output 1 2 1500 3 4 Tidak boleh kurang dari 10 6 100 5 11 2000
Contoh Loop (10) 11 2000 1 Input jmlBrg, hrgSat 2 step Instruksi 1 Input jmlBrg, hrgSat 2 WHILE jmlBrg lebih kecil dari 10 3 Print ‘Tidak boleh kurang dari 10’ 4 5 END REPEAT Step jmlBrg hrgSat harga Next step Output 1 2 1500 3 4 Tidak boleh kurang dari 10 6 100 5 11 2000
Kesalahan Syntax : tata bahasa Logical : algoritma Diinginkan: IF a > b THEN Tertulis : IF a -> b THEN Logical : algoritma Diinginkan: INPUT harga Tertulis : INPUT jumlah Numerical : perhitungan Original data Truncation Round off Propagated
Kesalahan Syntax : tata bahasa Logical : algoritma Numerical : perhitungan Original data Misal, input harga, seharusnya 5000 Terrekam: 3999 Truncation Misal, pi = 3,1415926535897932384626433832795 Kapasitas memory hanya merekam pi=3,1415 Round off Misal, pembulatan pi=3,14159 ... menjadi pi=3,1416 Propagated