Diskusi Dasar Pemrograman Pertemuan Ke-1.pdf

HendroGunawan8 39 views 18 slides Nov 07, 2024
Slide 1
Slide 1 of 18
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18

About This Presentation

1. Algoritma
• Algoritma adalah urutan langkah logis pengambilan keputusan untuk memecahkan masalah secara sistematis.
2. Program
• Himpunan atau kumpulan instruksi tertulis untuk melakukan tugas tertentu dengan komputer.
• Sederetan perintah-perintah yang harus dikerjakan oleh komputer untuk ...


Slide Content

1


Dasar Pemrograman
Pertemuan ke-1
Nama : Hendro Gunawan
NIM : 200401072103
Kelas : IF-101
BAB I
TERMINOLOGI PEMROGRAMAN
1. Algoritma
• Algoritma adalah urutan langkah logis pengambilan keputusan untuk memecahkan masalah
secara sistematis.
2. Program
• Himpunan atau kumpulan instruksi tertulis untuk melakukan tugas tertentu dengan komputer.
• Sederetan perintah-perintah yang harus dikerjakan oleh komputer untuk menyelesaikan
masalah.
3. Bahasa Pemrograman
• Bahasa yang digunakan untuk menulis suatu program.
4. Kode Sumber
• Himpunan atau kumpulan instruksi komputer yang ditulis menggunakan bahasa pemrograman.
5. Progammer
• Yaitu orang yang menulis program menggunakan bahasa pemrograman.
6. Software
• Himpunan atau kumpulan program dan data terkait.
1.1. Tiga Level Bahasa Pemrograman
1. Bahasa Tingkat Rendah
• Bahasa mesin berisikan kode-kode mesin yang hanya dapat diinterpretasikan langsung oleh
mesin komputer.
• Berupa kode numerik 0 dan 1 microcode: sekumpulan instruksi dalam bahasa mesin
• Keuntungan: eksekusi cepat
• Kekurangan: sulit dipelajari manusia
2. Bahasa Tingkat Menengah
• Bahasa assembly bahasa simbol dari bahasa mesin. Contohnya adalah: ADD, MUL, SUB, dll.
• Macro instruksi: sekumpulan kode dalam bahasa assembly.
• Kelebihan: eksekusi cepat, masih dapat dipelajari dari bahasa mesin, file kecil.

2


• Kekurangan: tetap sulit dipelajari, program sangat panjang.
• Contoh:
fib:
mov edx, [esp+8]
cmp edx, 0
ja @f
mov eax, 0
ret

@@:
cmp edx, 2
ja @f
mov eax, 1
ret

@f:
push ebx
mov ebx, 1
mov ecx, 1

@@:
lea eax, [ebx+ecx]
cmp edx, 3
jbe @f
mov ebx, ecx
mov ecx, eax
dec edx
jmp @b

@f:
pop ebx
ret
Penjelasan:
• Kode di atas adalah implementasi dalam assembly untuk menghitung bilangan Fibonacci.
• Struktur kode memanfaatkan instruksi low-level seperti mov, cmp, lea, dan penggunaan register
seperti eax, ebx, ecx, dan edx.
• Fungsi fib menerima argumen yang disimpan di [esp+8] dan mengembalikan hasil bilangan
Fibonacci yang sesuai melalui register eax.

3


Logika ini menggunakan dua perbandingan utama untuk bilangan Fibonacci awal (0 dan 1) dan
melakukan iterasi menggunakan instruksi jmp dan manipulasi register untuk menghitung nilai
Fibonacci yang lebih besar.
3. Bahasa Tingkat Tinggi
• The 3rd Generation Programing Language lebih dekat dengan bahasa manusia. Memberi
fasilitas kemudahan dalam pembuatan program. Misalnya: variabel, type data, konstanta,
struktur kontrol, loop, fungsi, prosedur, dll.
• Kelebihan: Mudah dipelajari, mendekati permasalahan yang akan dipecahkan, kode program
pendek.
• Kekurangan: eksekusi lambat.
• Contoh bahasa pemrograman tingkat tinggi: C++ (Turbo C++), Visual Basic (non-.NET), PHP
(prosedural), Delphi (Borland), Pascal (Turbo Pascal).
• Contoh bahasa pemrograman C++:
#include <iostream>
using namespace std;

void sapaLisa() {
cout <<"Hai Lisa" << endl;
}
void sapaJ() {
cout << "Good Morning, J" << endl;
}
void sapaMe() {
cout << "Hello Me,.." << endl;
}
void sapaHendro() {
cout << "Selamat Malam Hendro Gunawan" << endl;
}
int main() {
sapaLisa();
sapaJ();
sapaMe();
sapaHendro();

return 0;
}
Output:

4. Bahasa Tingkat Objek
• Bahasa pemrograman tingkat Object-Oriented dan Visual/Very-High Level.

4


• Beberapa sumber mungkin akan berpendapat bahwa “ bahasa pemrograman tingkat Object-
Oriented dan Visual” merupakan “Pengembangan dari bahasa pemrograman tingkat tinggi”, hal
tersebut memang benar karena pendekatan Object-Oriented diterapkan pada bahasa
pemrograman tingkat tinggi seperti PHP atau Visual Basic.NET.
• Contoh bahasa pemrograman tingkat Object-Oriented dan Visual:
• PHP
<?php
include("koneksi.php"); // Memasukkan file koneksi database

// Cek apakah tombol 'daftar' sudah diklik
if (isset($_POST['daftar'])) {
// Ambil data dari formulir
$nim = $_POST['nim'];
$nama = $_POST['nama'];
$alamat = $_POST['alamat'];

// Buat query SQL untuk menyimpan data ke dalam tabel 'mhs'
$sql = "INSERT INTO mhs (NIM, Nama, Alamat) VALUE ('$nim','$nama', '$alamat')";
$query = mysqli_query($con, $sql); // Eksekusi query

// Cek apakah query berhasil
if ($query) {
// Jika berhasil, redirect ke halaman index.php dengan status sukses
header('Location: index.php?status=sukses');
} else {
// Jika gagal, redirect ke index.php dengan status gagal
header('Location: index.php?status=gagal');
}
} else {
// Jika tidak diakses melalui tombol 'daftar', tampilkan pesan
die("Akses dilarang...");
}
?>
• Visual Basic.NET
• Java (termasuk Java yang digunakan pada Android Studio)
• JSP
• ASP
1.2. Paradigma Bahasa Pemrograman
• Imperative
Fokus pada menjelaskan bagaimana suatu program beroperasi.
• Procedural

5


Program yang dibuat dengan memberikan serangkaian perintah yang berurutan. Program terdiri
dari satu atau lebih prosedur. Bahasa-bahasa ini memiliki kode program sedemikian rupa
sehingga program mengeksekusi pernyataan demi pernyataan.
• Object-Oriented
Program yang mempresentasikan konsep “Object” yang memiliki data field dan prosedur
terkait yang disebut “method”. Seluruh data dan fungsi di dalam paradigma ini dibungkus
dalam kelas-kelas atau objek-objek.

Gambar 1. Programming Language Paradigms
Sumber: Pertemuan 1.pptx
1.3. Logika Pemecahan Masalah
Apa Itu logika?
Logis / Masuk Akal Pola Pikir

Rasional Kaidah Berpikir
Gambar 2. Logika Pemecahan masalah.
Sumber: Pertemuan 1.pptx
1.4. Terminologi Logika
• Di dalam Buku Praktis bahasa Indonesia, logika adalah pengetahuan tentang cara berpikir yang
sehat. Arti lainnya yaitu suatu bentuk pemikiran yang harus diikuti agar berpikir secara valid
(menurut cara semestinya; berlaku) menurut aturan yang berlaku.
• Logika ini akan membantu kita dalam memecahkan permasalahan.
1.5. Pemecahan Masalah
• Algoritma merupakan urutan langkah logis pengambilan keputusan untuk memecahkan
masalah secara sistematis.

6


• Namun, pembuatan algoritma merupakan salah satu tahap dalam proses pemecahan masalah.
1.6. Tahap Pemecahan Masalah
1. Masalah
2. Analisis Masalah
3. Perancangan Algoritma
4. Implementasi (Coding)

Gambar 3. Tahap Pemecahan Masalah
Sumber: Pertemuan 1.pptx
1.7. Input-Process-Output Model


Gambar 4. Input-Process-Output Model
Sumber: Pertemuan 1.pptx
• Dalam IPO Model, Algoritma bertugas untuk memproses seluruh Input dan hasil merupakan
Output.
1.8. Contoh Pemecahan Masalah Persamaan Linear
1. Masalah
• Diberikan persamaan ax + b = c, dimana a, b, c merupakan bilangan Real. Buatlah algoritma
untuk mencari solusi dari persamaan tersebut!
2. Analisa Masalah
• Apa yang ingin diselesaikan?
Nilai dari x dari persamaan linear
• Apa yang menjadi input?
Nilai parameter a, b, c
• Output
Nilai x, atau penjelasan jika ada solusi yang valid.

7


• Bagaimana mengubah input menjadi output?
▪ a = 0 dan c - b = 0, maka hasilnya adalah tak terhingga (karena persamaan selalu benar
untuk semua x).
▪ a = 0 dan c – b ≠ 0, maka hasilnya adalah tak terdefinisi (karena persamaan menjadi tidak
konsisten).
▪ a ≠ 0, selain kedua alternatif solusi di atas, persamaan memiliki satu solusi unik, hasilnya
adalah:
??????=
(&#3627408516; – &#3627408515;)
&#3627408514;

3. Algoritma 1
Name : Linear Equations
Given : a, b, c
Result : x
Intermediates : a = 0, (c - b) == 0, a ≠ 0
Definition : x := Linear Equations (a, b, c)
--------------------------------------------------------------------------------------------------------------
Method :
Get a
Get b
Get c
Let If a==0, then:
• If (c-b)==0, print “Solusi tak terhingga ”.
• Else, print “Tidak ada solusi”.
Else:
• Let x=(c-b)/a
• Give x
Penjelasan Algoritma 1
Penjelasan dari program pada gambar tersebut adalah penyelesaian persamaan linear sederhana dalam
bentuk ax + b = c, di mana kita perlu mencari nilai x.
Berikut adalah langkah-langkahnya:
1. Input Variabel:
o Program menerima tiga masukan: a, b, dan c.
2. Memeriksa Kondisi:
o Jika a = 0:

8


▪ Program akan memeriksa apakah b sama dengan c. Jika ya, maka persamaan memiliki
"solusi tak hingga" karena setiap nilai x akan memenuhi persamaan 0 ⋅ x + b = c.
▪ Jika b tidak sama dengan ccc, maka program akan menyatakan "tidak ada solusi"
karena persamaan 0 ⋅ x + b = c tidak mungkin dipenuhi untuk sembarang nilai x.
3. Menghitung Nilai x:
o Jika a ≠ 0:
▪ Program akan menghitung nilai x menggunakan rumus: x = (c – b) / a
▪ Setelah menghitung, program akan memberikan nilai x sebagai solusi persamaan.
Program ini dirancang untuk menyelesaikan persamaan linear sederhana dan memeriksa apakah
persamaan memiliki solusi atau tidak berdasarkan nilai dari variabel a, b, dan c.
4. Contoh Implementasi Pseudocode
Start
Input a, b, c
If a == 0 then
If (c - b) == 0 then
Print "Solusi tak terhingga"
Else
Print "Tidak ada solusi"
Else
Hitung x = (c - b) / a
Print "Nilai x =", x
End
Penjelasan Pseudocode:
Berikut adalah rincian dari setiap langkah dalam pseudocode:
1. Start:
o Mulai program.
2. Input a, b, c:
o Program menerima input tiga variabel yaitu a, b, dan c.
3. Pengecekan Nilai a:
o Jika a = 0:
▪ Program memeriksa apakah a bernilai nol, karena jika a = 0, persamaan menjadi tidak
linear.
▪ Jika c − b = 0:
▪ Jika kondisi ini terpenuhi, artinya c sama dengan b, maka persamaan memiliki
solusi tak terhingga (karena setiap nilai x akan memenuhi persamaan 0 ⋅ x + b = c.
▪ Cetak "Solusi tak terhingga".
▪ Jika c − b ≠ 0:
▪ Jika c tidak sama dengan b, maka persamaan tidak memiliki solusi (karena tidak
mungkin 0 ⋅ x + b = c untuk nilai x mana pun).

9


▪ Cetak "Tidak ada solusi".
4. Jika a ≠ 0:
o Jika a tidak sama dengan nol, maka persamaan dapat diselesaikan dengan menghitung
nilai x menggunakan rumus: x = (c−b) / a
o Hitung nilai x dan cetak hasilnya sebagai "Nilai x = [nilai x]".
5. End:
o Program berakhir.
Pseudocode ini memungkinkan untuk menentukan apakah persamaan memiliki solusi tunggal, solusi
tak terhingga, atau tidak ada solusi tergantung pada nilai input dari a, b, dan c.
5. Gambar Flowchart
Flowchart adalah representasi grafis dari suatu proses atau algoritma. Flowchart menggunakan
simbol-simbol tertentu untuk menggambarkan langkah-langkah yang harus di lakukan dalam urutan
tertentu untuk mencapai suatu tujuan atau menyelesaikan masalah. Ini membantu memvisualisasikan
alur kerja, membuat proses lebih mudah dipahami, dan mendeteksi potensi masalah atau langkah yang
tidak efisien.

10


Gambar 5. Flowchart Persamaan Linear
Sumber: (Penulis 2024)
Flowchart ini menggunakan aplikasi Flowgorithm versi 4.5.0 agar mudah dalam
mengimplementasikannya.
6. Penjelasan Flowchart
Gambar flowchart di atas menggambarkan proses penyelesaian persamaan linear sederhana dengan
bentuk: ax + b = c
Flowchart ini menentukan nilai x atau memberikan solusi alternatif berdasarkan nilai dari variabel
input a, b, dan c.. Berikut penjelasan langkah-langkah dari flowchart tersebut:
1. Deklarasi Variabel
• Program mendeklarasikan variabel a, b, c, dan x sebagai integer atau bilangan bulat.
2. Input Variabel
• Program meminta pengguna untuk memasukkan nilai untuk variabel a, b, dan c.
3. Pengecekan Apakah a = 0
• Jika a = 0, program akan masuk ke blok pengecekan kedua.
• Jika c – b = 0: Output berupa “Solusi tak terhingga”, karena persamaan berubah
menjadi identitas (misalnya, 0 = 0).
• Jika c – b ≠ 0: Output berupa “Tidak ada solusi”, karena tidak mungkin
menyelesaikan persamaan seperti 0x = 5.
4. Jika a ≠ 0
• Program akan menghitung nilai x menggunakan formula: ??????=
(&#3627408412; – &#3627408411;)
&#3627408410;

• Hasil dari nilai x dicetak sebagai output.
5. Akhir Program
• Setelah semua proses selesai, program akan berakhir.
7. Coding
• Contoh Implementasi dalam Python:
# Fungsi untuk mencari solusi persamaan ax + b = c
def cari_solusi(a, b, c):
if a == 0:
if c - b == 0:
print("Solusi tak terhingga.")
else:
print("Tidak ada solusi.")
else:
x = (c - b) / a
print(f"Nilai x = {x}")

# Contoh penggunaan

11


a = float(input("Masukkan nilai a: "))
b = float(input("Masukkan nilai b: "))
c = float(input("Masukkan nilai c: "))

cari_solusi(a, b, c)

8. Penjelasan Output:
• Jika a = 0 dan c - b = 0, maka output adalah:
“Solusi tak terhingga.”
• Jika a = 0 dan c – b ≠??????, maka output adalah:
“Tidak ada solusi.”
• Jika a ≠??????, maka output adalah nilai x sesuai hasil perhitungan.
9. Kode Program dalam C++:
#include <iostream>
using namespace std;

void cariSolusi(double a, double b, double c) {
if (a == 0) {
if (c - b == 0) {
cout << "Solusi tak terhingga." << endl;
} else {
cout << "Tidak ada solusi." << endl;
}
} else {
double x = (c - b) / a;
cout << "Nilai x = " << x << endl;
}
}

int main() {
double a, b, c;

// Input nilai a, b, dan c dari pengguna
cout << "Masukkan nilai a: ";
cin >> a;
cout << "Masukkan nilai b: ";
cin >> b;
cout << "Masukkan nilai c: ";
cin >> c;

// Panggil fungsi untuk mencari solusi
cariSolusi(a, b, c);

return 0;
}
10. Penjelasan Kode Program

12


1. Fungsi cari solusi:
• Mengecek apakah nilai a adalah 0.
▪ Jika iya, ada dua kemungkinan:
➢ c – b == 0 : Artinya, persamaan selalu benar, dan solusinya tak terhingga.
➢ c – b != 0 : Artinya, persamaan tidak konsisten, sehingga tidak ada solusi.
• Jika a tidak 0, solusi dihitung menggunakan: ??????=
(&#3627408412; – &#3627408411;)
&#3627408410;

• Hasilnya dicetak ke layar.
2. Fungsi main:
• Menerima input untuk nilai a, b, dan c.
• Memanggil fungsi cari solusi dengan input tersebut.
11. Contoh Output:
Kasus 1: a = 0, b = 1, c = 1

Kasus 2: a = 0, b = 1, c = 3

Kasus 3: a = 2, b = 3, c = 7

Kode ini menangani kasus persamaan linear dengan benar dan memberikan solusi atau pesan yang
tepat berdasarkan input yang diberikan.
1.9. Contoh Pemecahan Masalah Jeruk?????? dan Apel ??????

Gambar 6. Bagaimana membuatnya sebanding?
Sumber: Pertemuan 1 .pptx
1. Masalah

13


• Tidak sebandingnya timbangan antara jeruk dan apel.
2. Analisis Masalah
• Apa yang ingin diselesaikan?
Membuat sebanding antara jeruk dan apel.
• Apa yang menjadi input?
Jumlah jeruk dan apel
• Bagaimana membuatnya seimbang?
Menambah 1 jeruk
Menambah apel jika diperlukan
Membelah apel atau menambah buah lain untuk mencapai keseimbangan.
3. Algoritma 2
Name : Fruit Balance
Given : Num Oranges , Num Apples
Result : Balance
Intermediates : Difference (diff)
Definition : Balance:= Fruit Balance(Num Oranges, Num Apples)
----------------------------------------------------------------------------------------------------------------------------
Method :
Get Num Oranges
Get Num Apples
Let Diff = Number Oranges – Number Apples
if diff > 0, Print “Add as many apples as diff”
if diff < 0, Print “Add as many oranges as diff ”
if diff == 0, Print “Balance has been reached ”
Give Balance
4. Contoh Implementasi Pseudo-Code
Algoritma KeseimbanganBuah (Jeruk, Apel):
diff = Jeruk - Apel

Jika diff > 0:
Tambah Apel sebanyak diff
Output: "Ditambah apel sebanyak " + diff

Jika diff < 0:
Tambah Jeruk sebanyak |diff|
Output: "Ditambah jeruk sebanyak " + |diff|

Jika diff == 0:
Output: "Jumlah buah sudah seimbang"

14


5. Penjelasan Pseudocode:
• Method ini memastikan jumlah jeruk dan apel selalu seimbang dengan cara menghitung selisih
antara keduanya dan menambah buah sesuai kebutuhan.
• Menggunakan variabel antara, seperti diff untuk menyimpan selisih, membantu algoritma
tetap efisien dan mudah dibaca.
• Keluaran atau hasil akan bergantung pada apakah penambahan buah diperlukan atau tidak.
6. Gambar Flowchart

Gambar 7. Flowchart Menyeimbangkan Jumlah Jeruk dan Apel.
Sumber: (Penulis 2024)
7. Penjelasan Flowchart:
1. Inisialisasi dan Input:
o Program memulai dengan mendeklarasikan variabel jeruk, apel, dan diff sebagai
bilangan bulat.

15


o Meminta pengguna untuk menginput jumlah jeruk dan apel.
o Variabel diff dihitung sebagai selisih antara jumlah jeruk dan apel (diff = jeruk -
apel).
2. Cek Keseimbangan Awal:
o Jika diff == 0, artinya jumlah jeruk dan apel sudah seimbang, maka program
menampilkan pesan: "Jumlah jeruk dan apel sudah seimbang" dan langsung berhenti.
3. Jika Tidak Seimbang:
o Jika diff != 0, program menampilkan pesan bahwa buah tidak seimbang beserta nilai
selisih.
o Kemudian, program memeriksa apakah jumlah jeruk lebih banyak daripada apel (jeruk >
apel):
▪ Jika benar, maka program menampilkan pesan untuk menambah apel sejumlah selisih
tersebut.
▪ Jika salah, maka program menampilkan pesan untuk menambah jeruk sejumlah selisih
tersebut.
4. Keseimbangan Akhir:
o Setelah menambah jeruk atau apel, program menampilkan pesan "Jumlah sekarang
seimbang!".
8. Ringkasan Simbol Flowchart:
Berikut adalah ringkasan simbol yang digunakan dalam flowchart tersebut:
1. Oval (Ellipse):
o Fungsi: Menandakan awal atau akhir dari proses.
o Contoh: Simbol "Main" (awal) dan "End" (akhir).
2. Parallelogram (Jajar Genjang):
o Fungsi: Digunakan untuk input atau output.
o Contoh:
▪ Input jeruk dan apel.
▪ Output seperti "Buah tidak seimbang", "Menambah jeruk", dll.
3. Rectangle (Persegi Panjang):
o Fungsi: Menunjukkan proses atau operasi.
o Contoh: Proses diff = jeruk - apel.
4. Diamond (Berlian):
o Fungsi: Menandakan percabangan (kondisi / keputusan).
o Contoh:
▪ Apakah diff == 0?

16


▪ Apakah jeruk > apel?
5. Circle (Lingkaran Kecil):
o Fungsi: Menyambungkan alur dalam flowchart (connector).
o Contoh: Lingkaran yang digunakan setelah percabangan untuk menggabungkan alur.
Flowchart ini menangani perbandingan antara jumlah buah jeruk dan apel serta memberikan respons
berdasarkan hasil perbandingan tersebut.
9. Coding
#include <iostream>
using namespace std;

int main() {
int jeruk, apel, diff;

// Input jumlah jeruk dan apel
cout << "Masukkan jumlah jeruk: ";
cin >> jeruk;
cout << "Masukkan jumlah apel: ";
cin >> apel;

// Hitung selisih antara jeruk dan apel
diff = jeruk - apel;

// Cek apakah sudah seimbang
if (diff == 0) {
cout << "Jumlah jeruk dan apel sudah seimbang." << endl;
} else {
cout << "Buah tidak seimbang. Selisih: " << abs(diff) << endl;

// Tentukan apakah harus menambah jeruk atau apel
if (jeruk > apel) {
cout << "Menambah apel: " << diff << endl;
} else {
cout << "Menambah jeruk: " << abs(diff) << endl;
}

cout << "Jumlah sekarang seimbang!" << endl;
}

return 0;
}

10. Penjelasan Kode:
1. Deklarasi Variabel:
o jeruk, apel, dan diff digunakan untuk menyimpan jumlah buah dan selisihnya.
2. Input dari Pengguna:
o Program meminta input jumlah jeruk dan apel.

17


3. Hitung Selisih:
o Variabel diff menyimpan hasil selisih antara jeruk dan apel (diff = jeruk - apel).
4. Cek Keseimbangan:
o Jika diff == 0, program menampilkan pesan bahwa jumlah buah sudah seimbang.
o Jika tidak seimbang, program menampilkan selisih dan menentukan apakah harus
menambah jeruk atau apel berdasarkan perbandingan jumlah.
5. Output Tambahan:
o Program menampilkan pesan buah mana yang perlu ditambah beserta jumlahnya agar
seimbang.
6. Fungsi abs():
o Digunakan untuk memastikan bahwa selisih selalu positif saat ditampilkan, agar lebih jelas
bagi pengguna.
11. Contoh Output:
Kasus 1
Jumlah jeruk=5, apel=3

Kasus 2
Jumlah jeruk=10, apel=100

Daftar Pustaka
[1] Kurnia Gusti Ayu, S. M. (2024). Dasar Pemrograman Pertemuan 1.pptx. Jakarta: UNSIA.
Link File
https://www.slideshare.net/slideshow/diskusi-dasar-pemrograman-pertemuan-ke-1-pdf/272698749

18