1 / 29
Kembali ke E-Learning

Pemrograman

Pertemuan 10

Pengantar Teknik Informatika

Program Studi Teknik Informatika

Capaian Pembelajaran

Setelah mengikuti perkuliahan ini, mahasiswa diharapkan mampu:

  • Memahami konsep dasar pemrograman dan algoritma
  • Menjelaskan paradigma pemrograman yang berbeda
  • Memahami siklus pengembangan program (PDLC)
  • Mengenal berbagai bahasa pemrograman dan karakteristiknya
  • Memahami konsep variabel, tipe data, dan fungsi dalam pemrograman

Definisi Pemrograman

Menurut Para Ahli:

"Pemrograman adalah proses menulis, menguji, dan memelihara kode yang membentuk program komputer."

IEEE Computer Society

"Programming is the art of telling another human what one wants the computer to do."

Donald Knuth

"Pemrograman adalah aktivitas merancang dan mengimplementasikan algoritma dalam bentuk kode yang dapat dieksekusi komputer."

ACM (Association for Computing Machinery)

Karakteristik Pemrograman

Logis & Sistematis

Pemrograman memerlukan pemikiran yang logis dan pendekatan yang sistematis untuk memecahkan masalah.

Berorientasi Solusi

Fokus utama adalah mencari solusi efektif dan efisien untuk menyelesaikan permasalahan tertentu.

Menggunakan Sintaks

Setiap bahasa pemrograman memiliki aturan sintaks yang harus diikuti dengan tepat.

Dapat Diuji

Program dapat diuji, dijalankan, dan dievaluasi untuk memastikan berjalan sesuai harapan.

Algoritma

Definisi Algoritma

Algoritma adalah urutan langkah-langkah logis dan sistematis untuk menyelesaikan suatu masalah atau mencapai tujuan tertentu.

Karakteristik Algoritma:

  • Input: Memiliki masukan data
  • Output: Menghasilkan keluaran
  • Definiteness: Jelas dan tidak ambigu
  • Finiteness: Memiliki titik akhir
  • Effectiveness: Dapat dilaksanakan

Contoh Algoritma Sederhana:

// Algoritma Menghitung Luas Persegi

1. MULAI

2. Masukkan panjang sisi (s)

3. Hitung luas = s × s

4. Tampilkan hasil luas

5. SELESAI

Flowchart

Definisi Flowchart

Flowchart adalah representasi visual dari algoritma menggunakan simbol-simbol standar untuk menunjukkan alur logika program.

Simbol-simbol Flowchart:

Oval: Start/End
Persegi panjang: Proses
Belah ketupat: Keputusan
Jajaran genjang: Input/Output
Flowchart Example

Contoh Flowchart dan Pseudocode

Pseudocode

Definisi Pseudocode

Pseudocode adalah deskripsi tingkat tinggi dari logika program menggunakan bahasa yang mudah dipahami manusia, namun mengikuti struktur bahasa pemrograman.

Karakteristik Pseudocode:

  • Menggunakan bahasa yang mudah dipahami
  • Tidak terikat dengan sintaks bahasa tertentu
  • Fokus pada logika, bukan detail implementasi
  • Mudah diterjemahkan ke bahasa pemrograman

Contoh Pseudocode:

// Menentukan Bilangan Genap/Ganjil

BEGIN

  INPUT number

  IF number MOD 2 = 0 THEN

    OUTPUT "Genap"

  ELSE

    OUTPUT "Ganjil"

  ENDIF

END

Hubungan Algoritma, Flowchart, dan Pseudocode

Algorithm Flowchart Pseudocode Relationship

Algoritma

Konsep dan logika penyelesaian masalah dalam bentuk langkah-langkah sistematis

Flowchart

Representasi visual algoritma menggunakan simbol-simbol standar

Pseudocode

Deskripsi algoritma dalam bentuk teks yang mudah dipahami

Paradigma Pemrograman

Programming Paradigms

Definisi Paradigma Pemrograman

Paradigma pemrograman adalah pendekatan atau gaya dalam menulis program komputer. Setiap paradigma memiliki konsep, prinsip, dan cara berpikir yang berbeda dalam menyelesaikan masalah.

Jenis-jenis Paradigma Pemrograman

Programming Paradigms Comparison

Procedural

Fokus pada fungsi dan prosedur. Program terdiri dari serangkaian instruksi yang dieksekusi secara berurutan.

Object-Oriented

Berbasis objek yang memiliki atribut dan method. Menggunakan konsep encapsulation, inheritance, dan polymorphism.

Functional

Berbasis pada fungsi matematika. Menghindari perubahan state dan menggunakan immutable data.

Pemrograman Prosedural vs Object-Oriented

Procedural vs OOP

Pemrograman Prosedural

  • Top-down approach
  • Fokus pada fungsi/prosedur
  • Data dan fungsi terpisah
  • Contoh: C, Pascal, COBOL
  • Cocok untuk: Aplikasi sederhana, perhitungan matematis

Object-Oriented Programming

  • Bottom-up approach
  • Fokus pada objek dan class
  • Data dan method dalam satu objek
  • Contoh: Java, C++, Python
  • Cocok untuk: Aplikasi kompleks, sistem besar

Program Development Life Cycle (PDLC)

Definisi PDLC

Program Development Life Cycle (PDLC) adalah metodologi yang digunakan untuk mengembangkan program komputer secara sistematis dan terstruktur dari awal hingga akhir.

Tujuan PDLC:

  • Menghasilkan program berkualitas tinggi
  • Mengurangi kesalahan dan bug
  • Memastikan program sesuai kebutuhan
  • Mengoptimalkan waktu pengembangan
PDLC Phases

Fase-fase dalam PDLC

12

Fase-fase PDLC

PDLC Stages

1. Problem Analysis

Mengidentifikasi dan memahami masalah yang akan diselesaikan dengan program.

2. Program Design

Merancang solusi dalam bentuk algoritma, flowchart, atau pseudocode.

3. Program Coding

Mengimplementasikan desain ke dalam bahasa pemrograman yang dipilih.

4. Program Testing

Melakukan pengujian untuk memastikan program berjalan dengan benar.

5. Documentation

Membuat dokumentasi program untuk referensi dan maintenance.

6. Maintenance

Pemeliharaan dan perbaikan program setelah digunakan.

13

Tingkatan Bahasa Pemrograman

Programming Language Hierarchy

Machine Language

Bahasa tingkat paling rendah yang terdiri dari kode biner (0 dan 1).

  • • Sulit dipahami manusia
  • • Eksekusi sangat cepat
  • • Specific untuk hardware

Assembly Language

Bahasa tingkat rendah yang menggunakan mnemonic dan simbol.

  • • Lebih mudah dari machine code
  • • Butuh assembler
  • • Contoh: MOV, ADD, JMP

High-Level Language

Bahasa tingkat tinggi yang mudah dipahami manusia.

  • • Mudah dipelajari
  • • Platform independent
  • • Contoh: Python, Java, C++
14

High-Level vs Low-Level Languages

High vs Low Level Languages

High-Level Languages

Mudah dipelajari dan dipahami
Platform independent
Debugging lebih mudah
Eksekusi lebih lambat
Butuh compiler/interpreter

Contoh: Python, Java, C#, JavaScript

Low-Level Languages

Eksekusi sangat cepat
Kontrol hardware langsung
Memori usage efisien
Sulit dipelajari
Platform dependent

Contoh: Assembly, Machine Code

15

Kategori Bahasa Pemrograman

Programming Language Categories

Berdasarkan Cara Eksekusi

Compiled Languages

Dikompilasi menjadi machine code sebelum dijalankan

Contoh: C, C++, Rust, Go

Interpreted Languages

Dijalankan langsung oleh interpreter

Contoh: Python, JavaScript, Ruby

Berdasarkan Tujuan

General Purpose

Untuk berbagai jenis aplikasi

Contoh: Java, Python, C#

Domain Specific

Untuk domain atau tujuan tertentu

Contoh: SQL (database), HTML (web), MATLAB (numerik)

16

Variabel dalam Pemrograman

Definisi Variabel

Variabel adalah tempat penyimpanan data dalam memori komputer yang memiliki nama dan dapat berubah nilainya selama program berjalan.

Karakteristik Variabel:

  • Nama: Identifier unik untuk variabel
  • Tipe Data: Menentukan jenis data yang disimpan
  • Nilai: Data yang tersimpan dalam variabel
  • Alamat: Lokasi dalam memori

Contoh Deklarasi Variabel:

// Java

int age = 25;

String name = "John";

double salary = 5000.50;

// Python

age = 25

name = "John"

salary = 5000.50

17

Tipe Data

Data Types in Programming

Definisi Tipe Data

Tipe data adalah klasifikasi yang menentukan jenis nilai yang dapat disimpan dalam variabel dan operasi apa yang dapat dilakukan pada data tersebut.

18

Jenis-jenis Tipe Data

Data Types in C

Tipe Data dalam Bahasa C

Data Types in JavaScript

Tipe Data dalam JavaScript

Primitive Data Types

  • Integer: Bilangan bulat (int, long)
  • Float/Double: Bilangan desimal
  • Character: Karakter tunggal (char)
  • Boolean: True/False
  • String: Kumpulan karakter

Non-Primitive Data Types

  • Array: Kumpulan data sejenis
  • Object: Kumpulan atribut dan method
  • Class: Template untuk objek
  • Interface: Kontrak untuk class
  • Collection: List, Set, Map
19

Fungsi dalam Pemrograman

Definisi Fungsi

Fungsi adalah blok kode yang dapat digunakan kembali (reusable) untuk melakukan tugas tertentu. Fungsi menerima input (parameter) dan dapat mengembalikan output (return value).

Keuntungan Menggunakan Fungsi:

  • Code reusability
  • Modular programming
  • Easier debugging
  • Better readability

Contoh Fungsi:

// Java

public int tambah(int a, int b) {

  return a + b;

}


// Pemanggilan fungsi

int hasil = tambah(5, 3);

// Python

def tambah(a, b):

  return a + b


# Pemanggilan fungsi

hasil = tambah(5, 3)

20

Komponen Fungsi

Function Signature

Terdiri dari nama fungsi, parameter, dan return type yang menentukan identitas fungsi.

Parameter

Input yang diterima fungsi untuk diproses. Dapat berupa satu atau lebih nilai.

Function Body

Blok kode yang berisi instruksi-instruksi yang akan dieksekusi.

Return Value

Output yang dikembalikan fungsi setelah pemrosesan selesai.

Contoh Struktur Fungsi:

// Struktur Fungsi dalam Java

// Return Type | Nama Fungsi | Parameter

public double hitungLuas(double panjang, double lebar) {

  // Function Body

  double luas = panjang * lebar;

  

  // Return Statement

  return luas;

}

21

Sintaks Dasar Pemrograman

Elemen Sintaks Dasar:

1. Keywords/Reserved Words

Kata-kata khusus yang memiliki makna tertentu

Contoh: if, else, for, while, class, public

2. Identifiers

Nama untuk variabel, fungsi, class, dll

Aturan: huruf pertama, tidak boleh keyword

3. Operators

Simbol untuk operasi matematika/logika

Contoh: +, -, *, /, ==, !=, &&, ||

4. Separators/Delimiters

Simbol pemisah elemen program

Contoh: ; (semicolon), {} (braces), () (parentheses)

Contoh Sintaks Java:

// Program Hello World

public class HelloWorld {

  public static void main(String[] args) {

    // Deklarasi variabel

    int angka = 10;

    String nama = "Java";

    

    // Output

    System.out.println("Hello " + nama);

  }

}

22

Struktur Kontrol

Sequential

Instruksi dijalankan secara berurutan dari atas ke bawah.

statement1;

statement2;

statement3;

Selection

Pemilihan eksekusi berdasarkan kondisi tertentu.

if (condition) {

  statement1;

} else {

  statement2;

}

Repetition

Pengulangan eksekusi instruksi berkali-kali.

for (int i=0; i<10; i++) {

  statement;

}


while (condition) {

  statement;

}

Struktur Kontrol dalam Pemrograman

Struktur kontrol menentukan urutan eksekusi instruksi dalam program. Dengan kombinasi ketiga struktur ini, kita dapat membuat program yang kompleks dan efisien.

23

Debugging dan Testing

Debugging

Proses mencari, mengidentifikasi, dan memperbaiki kesalahan (bug) dalam program.

Jenis-jenis Error:

  • Syntax Error: Kesalahan penulisan kode
  • Runtime Error: Error saat program berjalan
  • Logic Error: Program berjalan tapi hasil salah

Teknik Debugging:

  • • Print/Log statements
  • • Debugger tools
  • • Code review
  • • Unit testing

Testing

Proses menguji program untuk memastikan berfungsi sesuai dengan requirement dan spesifikasi.

Jenis Testing:

  • Unit Testing: Test komponen individual
  • Integration Testing: Test interaksi antar modul
  • System Testing: Test keseluruhan sistem

Test Case:

  • • Normal input
  • • Boundary values
  • • Invalid input
  • • Edge cases
24

Best Practices dalam Pemrograman

Clean Code

  • • Gunakan nama variabel yang deskriptif
  • • Tulis komentar yang bermakna
  • • Konsisten dalam formatting
  • • Hindari duplicate code

Modular Design

  • • Bagi program menjadi fungsi-fungsi kecil
  • • Setiap fungsi memiliki tugas spesifik
  • • Minimalisir coupling antar modul
  • • Maksimalkan cohesion dalam modul

Error Handling

  • • Anticipate possible errors
  • • Use try-catch blocks
  • • Validate input data
  • • Provide meaningful error messages

Performance

  • • Pilih algoritma yang efisien
  • • Optimasi penggunaan memori
  • • Avoid premature optimization
  • • Profile dan measure performance

Security

  • • Validate dan sanitize input
  • • Handle sensitive data securely
  • • Use secure coding practices
  • • Keep dependencies updated

Documentation

  • • Document API dan interfaces
  • • Write clear README files
  • • Maintain up-to-date documentation
  • • Include examples dan use cases
25

Evaluasi

Pertanyaan Evaluasi

1 Konsep Dasar

Jelaskan perbedaan antara algoritma, flowchart, dan pseudocode! Berikan contoh untuk masing-masing!

2 Paradigma Pemrograman

Bandingkan paradigma pemrograman prosedural dan object-oriented! Kapan sebaiknya menggunakan masing-masing paradigma?

3 PDLC

Sebutkan dan jelaskan fase-fase dalam Program Development Life Cycle (PDLC)! Mengapa PDLC penting dalam pengembangan software?

4 Praktik Programming

Buatlah pseudocode untuk menghitung faktorial dari bilangan N! Kemudian buat flowchart untuk algoritma tersebut!

26

Tugas

Tugas Individu

Tugas 1: Analisis Algoritma

Pilih satu masalah sederhana dalam kehidupan sehari-hari, kemudian:

  • Buat algoritma untuk menyelesaikan masalah tersebut
  • Gambar flowchart untuk algoritma tersebut
  • Tulis pseudocode yang sesuai
  • Implementasikan dalam bahasa pemrograman pilihan Anda

Tugas 2: Studi Bahasa Pemrograman

Pilih dua bahasa pemrograman berbeda, kemudian bandingkan:

  • Paradigma pemrograman yang didukung
  • Tipe data yang tersedia
  • Sintaks dasar dan karakteristik unik
  • Kelebihan dan kekurangan masing-masing
  • Area aplikasi yang cocok untuk setiap bahasa

Deadline & Format

  • Deadline: 1 minggu setelah perkuliahan
  • Format: PDF dengan maksimal 10 halaman
  • Include source code dan screenshot hasil
  • Submit melalui e-learning platform
27

Referensi

Sumber Pustaka dan Referensi

Buku Utama:

Abdul Kadir & Terra Ch. Triwahyuni. (2013). Pengantar Teknologi Informasi. Yogyakarta: Penerbit Andi.

Buku Pendukung:

  • • Cormen, T. H., et al. (2022). Introduction to Algorithms. MIT Press.
  • • Deitel, P. & Deitel, H. (2020). Java How to Program. Pearson.
  • • Martin, R. C. (2017). Clean Code: A Handbook of Agile Software Craftsmanship. Prentice Hall.

Sumber Online:

  • • GeeksforGeeks: Programming Concepts and Tutorials
  • • Medium: Programming Paradigms and Best Practices
  • • Stack Overflow: Programming Community and Q&A
  • • GitHub: Open Source Code Examples

Standar dan Dokumentasi:

  • • IEEE Standards for Software Engineering
  • • ACM Computing Classification System
  • • ISO/IEC 12207 Software Life Cycle Processes
28

Terima Kasih

Questions & Discussion

Pertemuan 10: Pemrograman

Pengantar Teknik Informatika

29