Anda di halaman 1dari 55

CRITICAL BOOK REPORT

Disusun oleh
Haykal Silaban (5232230004)
Munawwar Fadhil Effendi (5233530010)
Daniel Fivesah A.Tambunan (5233230039)
Grace Nikita Panjaitan (5233230012)

PROGRAM STUDI TEKNIK ELEKTRO


JURUSAN PENDIDIKAN TEKNIK ELEKTRO
UNIVERSITAS NEGERI MEDAN
2023/2024
KATA PENGANTAR

Dalam mengembangkan kurikulum baru yang dikenal dengan KKNI,terdapat enam


jenis tugas yang harus di selesaikan mahasiswa antara lain: Tugas Rutin, Jurnal
Review,Critical Book Report,Mini Research,Tugas Project dan Rekayasa Ide. Tugas ini
berfungsi mengkritik buku yang bersangkutan dengan materi yang dipelajari di perkuliahan
untuk mengajak mahasiswanya membaca buku dan dapat memahami materi .Dari itu,saya
membuat Critical Book Report ini dalam rangka memenuhi salah satu tugas mata kuliah Dasa
Sistem Telekomunikasi, dan berharap isi dan materi yang akan dijelaskan atau di paparkan
dapat semakin menambah ilmu kita semua.
DAFTAR ISI

KATA PENGANTAR.............................................................................................i

DAFTAR ISI...........................................................................................................ii

BAB I PENDAHULUAN........................................................................................1

A.LATAR BELAKANG......................................................................................1

B. RUMUSAN MASALAH...................................................................................1

C. TUJUAN............................................................................................................1

BAB II PEMBAHASAN.........................................................................................2

A. IDENTITAS BUKU........................................................................................2
B. PENJELASAN DAN PENILAIAN TERHADAP BUKU.......................3-47

BAB III PENUTUP...............................................................................................48


A. KELEBIHAN DAN KEKURANGAN BUKU.............................................48
BAB IV KESIMPULAN……………..................................................................49
BAB I
PENDAHULUAN
A.Latar Belakang
Dalam dunia pendidikan perkembangan teknologi informasi mulai dirasa mempunyai
dampak yang positif karena dengan berkembangnya teknologi informasi dunia pendidikan mulai
memperlihatkan perubahan yang cukup signifikan. Banyak hal yang dirasa berbeda dan berubah
dibandingkan dengan cara yang berkembang sebelumnya. Saat sekarang ini jarak dan waktu
bukanlah sebagai masalah yang berarti untuk mendapatkan ilmu, berbagai aplikasi tercipta untuk
memfasilitasinya.

B.Tujuan
1. Agar dapat memahami Pengertian dan Perkembangan Teknologi

2. Agar dapat mengetahui tahap-tahap perkembangan Teknologi

3. Agar dapat mengetahui faktor pendorong dan pengahambat Teknologi Informasi dan
Komunikasi

4. Agar meningkatkan motivasi pembaca untuk lebih memperhatikan perkembangan


Teknologi Informasi dan Komunkasi

C. Manfaat
1 .Untuk memenuhi tugas dari mata kuliah Perkembangan Teknologi Informasi dan
Komunikasi

2. Menambah pengetahuan serta wawasan para pembaca

3. Melatih kemampuan penulis dalam mengkritisi dan membandingkan 2/lebih buku


BAB II
PEMBAHASAN

Identitas Buku:

Buku I
Judul : Logika dan Algoritma untuk Pemula
NAMA Penulis : Wahyu Eko Susanto dan Akhmad Syukron
Penerbit : Graha Ilmu
Tahun Terbit : 2020

Identitas Buku:

Buku II
Judul : Algoritma dan Pembrograman
NAMA Penulis : Rina Firliana, M.Kom dan Patmi Kasih, M.Kom
Penerbit : Adjie Media Nusantara
Tahun Terbit : Janurari 2018
Buku I

Bagian 1
Konsep Dasar Algoritma
1.1 Pentingnya Logika dan Algoritma

Pada dasarnya semua program komputer yang dibuat merupakan implementasi dari proses
yang ada di kehidupan nyata yang di transformasikan ke dalam bentuk kode program sehingga dapat
dijalankan di komputer untuk membantu user dalam menjalankan kegiatannya. Karena kode program
merupakan implementasi dari dunia nyata oleh karenanya setiap program yang dibuat oleh satu
urang dengan orang lainnya dapat berbeda dalam langkah penyelesaiannya karena setiap orang
memiliki cara solusi pemecahan permasalahan yang berbeda-beda sesuai dengan kemampuan orang
tersebut melogika dan menyusun urutan langkah atau Algoritma untuk menyelesaikan permasalahan
yang di hadapi. Oleh karenanya kemampuan seseorang dalam melogika dan membuat urutan
langkah untuk menyelesaikan suatu persoalan dengan cara yang efektif dan efisien akan sangat
memengaruhi kualitas program yang di buatnya. Sebelum kita membahas lebih lanjut mengenai
Logika dan Algoritma pada pemrograman mari kita pahami terlebih dahulu definisi dari Logika dan
Algoritma itu sendiri.

1.2 Definisi Logika

“Marilah kita berfikri dengan logis" atau "Mari kita menggunakan logika kita" kiranya perkataan
seperti ini kerap kali kita dengar di kehidupan sehari-hari. Secara umum kalimat "logika" atau logis
merujuk kepada cara seseorang clalam berfikir dengan cara vang waiar serta memiliki alasan dan
memiliki hubungan yang rasional serta dapat dimengerti walaupun belum tentu apa yang
dilakukann,va disetujui sebagai suatu yang benar atau salah.

1.3 Definisi Algoritma

Algoritma pertama kali diperkenalkan oleh seorang ahli matematika. Yang bernama Abu
Abdullah Muhammad Ibn Musa al-knwarizmi berasal dari Persia yang berasal dari kata al-knwarizmi
dan kini lebih dikenal dengan sebutan Algoritlm sebagai nama atas temuannya tersebut.

Algoritma secara umumnya merupakan cara dan urutan langkah atau tahapan yang diatur
secara sistematis untuk menyelesaikan suatu kegiatan. Sehingga proses yang akan diselesaikan dapat
sesuai dengan algoritma atau urutan langkah yang telah disusun. Pada prinsipnya algoritma dari
sebuah proses ada 3 tahapan seperti pada Gambar terdapat inputan 1, yang dimasukkan ke dalam
Proses dan dari proses akan menghasilk an output atau keluaran.

Sebagai contoh algoritma dalam kehidupan sehari-hari ketika kita membuat mie instan maka
kita dapat menvusun urutan sebagai berikut:

1. Nyalakan kompor

2. Masukkan air ke panci, rebus air sampai mendidih


3. Masukkan mie instan, tunggu hingga matang.

4.Tuangkan mie ke mangkuk

5. Masukkan bumbu ke mangkuk

6. Mie instan siap dihidangkan.

Secara sederhana Algoritma dapat kita gambarkan seperti di atas, algoritma memasak mie
instan di mana proses-proses yang ada kita kerjakan secara berurutan mulai dari outputan
memasukkan air dan memasukkan mie instan kemudian dilanjutkan proses merebus sampai matang
kemudian memasukkan bumbu hingga menghasilkan outputan berupa Mie instan siap untuk
dihidangkan. Secara normal proses pembuatan mie instan dapat kita lakukan seperti langkah langkah
di atas. Namun terkadang ada keadaan keadaan tertentu yang tidak semestinya sehingga kita harus
membuat "decision". Hal ini akan kita bahas lebih lanjut pada bab selanjutnya.

1.4 Kriteria Algoritma

Beberapa kriteria yang harus dimiliki oleh suatu algoritma sehingga bisa dikatakan sebagai
algoritma yang baik menurut Donald E. Knuth adalah:

1. Input

Suatu algoritma harus memiliki inputan baik 0 (nol) inputan atau lebih. Jadi suatu algoritma dapat
memiliki lebih dari satu inputan atau bahkan tidak memiliki inputan sama sekali dari usernya dan
data inputan didapatkan dari dalam algoritma itu sendiri.

2. Output

Outputan harus dihasilkan oleh sebuah algoritma. Karena akan menjadi sia-sia apabila sebuah
algoritma tidak menghasilkan keluaran sama sekali. Karena algoritma disusun dengan tujuan untuk
meng- hasilkan suatu hasil atau keluaran.

3. Finiteness

Suatu proses pasti akan berhenti ketika hasil yang diharapkan sudah tercapai. Demilikan pula dengan
algoritma yang dibuat harus memiliki titik akhir ketika proses yang diharapkan telah selesai
dikerjakan.

4. Definiteness

Algoritma yang dibuat tidak menimpulkan makna ganda sehingga setiap proses yang dijalankan tidak
menimbulkan multi tafsir kepada pelakunya agar hasil yang dicapai sesuai dengan yang diharapkan.

5. Effectiveness

Setiap proses dalam algoritma harus dibuat seefektif mungkin. Karena setiap proses dalam algoritma
memerlukan waktu untuk dieksekusi sehingga kita harus memastikan tidak ada proses yang sia-sia
dalam algoritma kita seperti contohnya kita tidak perlu menambahkan garam ke dalam air laut untuk
mendapatkan rasa asin dari air laut. Proses menambahkan garam ke dalam air laut adalah proses
yang sia-sia.
Bagian 2
Algoritma Dalam Pembrograman
2.1 Bahasa Pemrograman

2.1.1 Definisi Bahasa Pemrograman

Bahasa pemrograman adalah bahasa yang digunakan untuk memberikan instruksi kepada
perangkat keras agar dapat melakukan sesuai dengan apa yang diinstruksikan. Sama halnya dengan
interaksi kita sehari-hari agar orang lain mengerti dengan apa yang kita inginkan maka kita
memerlukan media komunikasi yang disepakati bersama agar dapat saling mengerti.

Sebagai contoh saat kita meminta seseorang untuk membuat mie instan, saat itu kita
melakukan pemrograman terhadap orang lain untuk melakukan serangkaian kegiatan sehingga mie
instan siap untuk disajikan.

Karena manusia memiliki pengalaman, rasa dan daya kreativitas maka tanpa kita
memberikan instruksi secara detail dan terstruktur pun kegiatan tersebut dapat diselesaikan. Namun
berbeda halnya dengan perangkat dalam hal ini Komputer, kita harus memberikan perintah secara
rinci, benar dan mendetail sehinga apa yang kita perintahkan dapat di jalankan oleh komputer dan
menghasilkan luaran seperti yang diharapkan.

2.1.2 Jenis Bahasa Pemrograman

Bahasa pemrograman dapat dikelompokkan menjadi dua macam ber- dasarkan tingkatannya
yaitu bahasa tingkat tinggi dan bahasa tingkat rendah:

1. Bahasa Tingkat Rendah

Bahasa ini merupakan bahasan yang dirancang untuk langsung dapat dimengerti oleh mesin yang
menganut kode biner (0 dan 1) tanpa harus melalui bahasa penterjemah namun bahasa ini
cenderung tidak "manusiawi" karena sulit dipahami oleh manusia.

2. Bahasa Tingkat Tinggi

Bahasa tingkat tinggi ini merupakan bahasa yang lebih manusiawi dari bahasa tingkat rendah
karena bahasa tingkat tinggi lebih dekat penggunaannya dengan bahasa sehari hari. Namun bahasa
ini memerlukan compiler untuk menterjemahkannya ke dalam bahasa mesin agar dapat dieksekusi
oleh Komputer. Sebagai contoh bahasa tingkat tinggi adalah Turbo pascal, C++, PHP, Java.
2.2 Penulisan Algoritma dalam Pemrograman

Penggambaran algoritma secara umumnya dapat disajikan dalam dua cara yaitu dengan teks
dan dengan gambar. Penyajian algoritma dengan menggunakan tulisan dapat disajikan dengan
bahasa tertentu misalnya bahasa Inggris atau bahasa Indonesia maupun dengan peseudocode.

Sedangkan penyajian dengan gambar dapat disajikan dengan flow chart, namun sebenarnya
flowchart bukan merupakan cara satu satunya dalam penggambaran algoritma dengan gambar dapat
juga menggunakan data flow diagram, HIPO (Hierarchial Input Process Output) maupun dengan
menggunakan structure chart.

2.2.1 Pesudocode

Pseudocode adalah suatu kode yang ditulis mirip dengan kode yang sebenarnya dan ditulis
berdasarkan bahasa pemrograman tertentu sehingga lebih mudah di komunikasikan dengan
programmer karena lebih terperinci.

Contoh Kasus:

Algoritma Menghitung Luas Persegi

1. Masukkan nilai Panjang

2. Masukkan Nilai Lebar

3. Tentukan rumus menghitung Luas adalah Panjang kali Lebar 4. Lakukan perhitungan

5. Tampilkan Hasil

Penyelesaian dengan Peseudocode

Input Panjang (P) Input Lebar (L)

Luas P X L Hitung Luas

Hasil

2.2.2 Flowchart

Flowchart adalah penggambaran algoritma dengan menggunakan media gambar atau


symbol untuk menyelesaikan suatu permasalahan. Dengan menggambarkan suatu permasalahan
menggunakan media flowchart kita dapat mengkomunikasikan algoritma yang kita buat kepada
seluruh tim pengembang sehingga sistem yang dibangun dapat sesuai dengan yang diinginkan.

Secara umum flowchart dibagi menjadi dua macam yaitu Flowchart Sistem dan flowchart
Program. Flowchart sistem adalah penggambaran suatu sistem perangkat Komputer berbentuk
diagram yang menggunakan gambarkan keterhubungan antara masing-masing perangkat. Adapun
contoh simbol- simbol yang digunakan untuk menggambarkannya adalah:
Bagian 3
Variabel dan Tipe Data
3.1 Variabel

3.1.1 Definisi Variabel

Secara umum variable dapat kita artikan sebagai container yang memiliki nama, seperti
halnya sebuah container dapat menyiman barang, pada variable juga dapat di gunakan untuk
menyimpan. Bedanya kalau container dalam pengertian umumnya digunakan untuk menyimpan
barang pada variable digunakan untuk menyimpan data.

Dalam PHP, variabel diawali dengan tanda dollar ($) sedangkan assignment dengan
menggunakan operator "=". Selanjutnya, semua pernyataan diakhiri dengan tanda titik koma (;).
Sebagai contoh dalam pemrograman kita dapat membuat sebuah variabel dengan nama buah dan
mengisi variabel tersebut dengan apel:

<?php

Souah="Apel";

Sama halnya dengan sebuah tempat penyimpanan yang kadang mempunya kekhususan
untuk menyimpan jenis barang tertentu. Misal kalau kita akan menyimpan air atau benda cair kita
dapat menggunakan botol, gelas, ember, mangkuk atau jerigen namun untuk menyimpan benda gas
seperti gas LPG, Oksigen, dan benda gas lainnya kita tidak dapat menggunakan gelas atau ember
dapat menggunakan botol. Karena setiap benda memiliki sifatnya masing-masing. Demikian pula
Pada penggunaan variabel kita juga dapat menentukan tipe data atau jenis data apa yang dapat kita
masukkan ke dalam variabel tersebut. Namun dalam Php variabel tidak bertipe sehingga bisa
dimasuki dengan tipe data apa saja. Untuk memanggil nilai dari variabel pada php kita dapat
menggunakan perintah "echo" atau "print", seperti berikut "

<?php

$deskripsi="Ini adalah Buah "

$buah="Apel";

Print $deskripsi:

echo $buah;

?>

Hasil yang dapat kita lihat adalah:

Ini adalah Buah Apel

pada php peniulisan variabel memiliki beberapa aturan:

1. Bersifat case sensitive, di mana penggunaan huruf besar dan kecil sanagat berpengaruh terhadap
pemanggilan variabel itu sendiri. 2. Neme variabel tidak boleh menggunakan angka, misal $1buah.

3. Nama variabel boleh menggunakan underscore () baik pada awal tengah maupun akhir.

4. Nama variabel boleh mengandung angka, misal $buah1


3.1.2 Jenis Variabel dan Implementasinya

1. Variabel Lokal

Variabel lokal adalah variabel yang didefinisikan di dalam sebuah fungsi, dan juga hanya dapat
digunakan di dalam fungsi tersebut. berikut merupakan contoh penggunaan variabel lokal:

<?php

function print_angka () {

$angka= "11";

//variabel local

echo $angka;

//output isi variabel local

echo $angka;

//akan error karena tidak mengenali variabel yang dikeluarkan, //karena perintah ini berada di luar
fungsi tempat variabel di deklarasikan

?>

2. Variabel Global

Variabel global adalah variabel yang dideklarasikan di luar sebuah fungsi dan ketika ingin
menggunakan di dalam fungsi kita tinggal mendeklarasikan di dalam fungsi yang kita buat dan jangan
lupa. tambahkan kata "global" di depan variabel saat dideklarasikan. berikut adalah contoh
penggunaan variabel global:

<?php

$nama "Ihsan";

function print_nama () { global $nama;

echo $nama;

print_nama();

//akan mengeluarkan isi dari function yg meng echo variabel nama //mencetak isi variabel nama
yang sudah dideklarasikan di awal program

echo $nama;

?>

3. Variabel Static

Variabel Static adalah variabel yang akan menyimpan nilai akhirnya, jika pada normalnya
sebuah variabel dalam suatu fungsi akan di kembalikan nilainya maka dengan menggunakan variabel
static ini tidak return atau tidak kembali ke nilai awal. Berikut adalah contoh penulisan variabel static
dalam PHP:
<?php

// deklarasi fungsi

function berhitung () { static $nilai = 1;

echo $nilai; $nilai++;

echo "<br>";

berhitung ();

berhitung ();

berhitung(); //output

//1

//2 //3

?>

3.2 Tipe Data

3.2.1 Definisi Tipe Data

Tipe data berfungsi untuk menentukan nilai apa saja yang dapat di masukkan pada suatu
variabel. Sebagai contoh kita memberikan label angka pada umur, maka ketika kita memberikan nilai
huruf atau string ke dalam vaiabel umur akan ditolak.

Selain itu tipe data juga menetukan besaran memori yang digunakan karena setiap tipe data
memiliki besaran alokasi memori yang berbeda beda. Proses menentukan tipe data menjadi hal yang
krusial karena akan memengaruhi kode program yang akan dijalankan.. ketepatan dalam memilih
tipe data akan meningkatkan efektivitas suatu program. Tipe data memiliki 2 jenis: Tipe data dasar
atau primitive dan Tipe data terstruktur. Pada rumpun bahasa C mengenal 5 tipe data primitif, yaitu:
char, int, double, float, dan void.

3.2.2 Macam-macam Tipe Data dan Penggunaannya

PHP merupakan keluarga dari bahasa C di mana ketika kita men- deklarasikan sebuah
variabel Dalam rumpun bahasa C secara umumnya kita menyebutkan tipe datanya. Walaupun secara
umum pendeklarasian variabel dalam PHP tidak memerlukan tipe data namun tidak ada salahnya
kita mengenal lebih dekat mengenai tipe data. Tipe data secara garis besar di kelompokkan menjadi
2 jenis tipe data, yaitu:

1. Tipe data Sederhana

2. Tipe data Terstruktur


Bagian 4
Dasar Algoritma dan Pembrograman
4.1 Percabangan

4.1.1 Pengertian Percabangan

Percabangan merupakan salah satu struktur kontrol untuk mengatur jalannya program,
karena beberapa kasus tidak dapat di pecahkan secara sekuensial. Di mana Percabangan digunakan
untuk melakukan seleksi terhadap nilai, kemudian dari nilai tersebut akan menjalankan perintah atau
statement di bawahnya berdasarkan pada nilai. Secara umum Percabangan Apabila digambarkan
dengan flowchart, akan tampak sebagai berikut:

Dari contoh di atas dapat kita terjemahkan terjadi kondisi percabangan pada "Keluar ?" di
mana Print "Kembali" dan Print "Logout Berhasil" akan dijalankan berdasarkan nilai yang diberikan
pada "Keluar?" apabila di berikan nilai "Tidak" maka statement Print "Kembali" akan dijalankan
namun apabila nilai yang di berikan adalah "Ya" maka statement yang akan di jalankan adalah Print"
Logout Berhasil".

4.1.2 Jenis Percabangan dan Implementasinya

Percabangan atau branching pada rumpun bahasa C memiliki 2 macam jenis yaitu percabangan
dengan syarat dan percabangan tidak bersyarat, di mana pada percabangan bersyarat memerlukan
nilai pada kondisi tertentu untuk menentukan statement mana yang akan dijalankan. Sedagkan pada
percabangan tidak bersyarat tidak memerlukan nilai tertentu untuk menjalankannya.

1. Percabangan Bersyarat

Pada percabangan bersyarat secara garis besar di bagi menjadi 2 yaitu percabangan dengan
menggunakan IF dan SWITCH... CASE. Berikut penjelasan secara pada masing masing
percabangannya.

a. Percabangan IF

Percabangan if merupakan bentuk percabangan yang paling sederhana, karena hanya akan
menghasilkan nilai true dan false. Di mana struktur if akan melakukan perinta pada blok perintah
apabila nilai pada syarat terpenuhi. Secara umum bentuk percabangan if sebagai berikut:

<?php
If (<kondisi>) {

Statement

?>

Contoh:

<?php

$Hasil=80;

If ($Hasil> 70) { Echo "Selamat Anda Lulus";

?>

Pada contoh di atas kalimat "selamat anda lulus" akan di tampilan bila nilai dari hasil lebih
besar dari 70. Karena kondisi tersebut terpenuhi maka program akan menampilkan "Selamat Anda
Lulus".

b. SWITCH.....CASE

Perintah SWITCH... CASE pada dasarnya sama dengan perintah if, hanya pada perintah ini setiap CASE
harus diakhiri dengan BREAK; hal ini bertujuan untuk memisahkan antara satu CASE dengan yang
lainnya. Dan pada perintah SWITCH CASE akan menseleksi nilai dari variabel terhadap nilai CASEnya,
berikut struktur dan contoh penggunaan dari SWITCH... CASE:

Struktur:

<?php

switch ($var)

case value1:

statement1; break;

case value2:

statement2;

break;

case value_n:

statement_n;

break;

?>

Pada struktur di atas Variabel harus kita cantumkan setelah kata switch yang dimasukkan di dalam
kurung (), dan memulai perintah switch dengan kurung kurawal.
2. Percabangan Tak Bersyarat

Berbeda dengan bentuk percabangan sebelumnya untuk bentuk percabangan yang kedua adalah
percabangan tak bersyarat di mana dalam aplikasinya akan mengarahkan eksekusi program ke line
program yang dituju, dan menggunakan perintah goto. Namun fungsi ini hanya berjalan di PHP versi
5.3.

<?php

goto a;

echo 'Jalan Di tempat';

a: echo jalan Mundur';

?>

Pada contoh ini ketika program ini dijalankan maka perintah echo jalan di tempat'; tidak akan
di jalankan karena ada perintah goto a; yang mengarahkan pe perintah yang mengarahkan untuk
langsung melompat ke perintah a yaitu echo 'jalan Mundur'; tanpa meng eksekusi perintah
sebelumnya, contoh lainnya apabila dikonginasikan dengan perintah IF

<?php

Sa = 0;

if ($a==0)

else

goto langkah_a; goto langkah _b;

langkah _a:

langkah b:

echo 'Lari Di tempat'; echo 'Lari Mundur';

?>

4.2 Perulangan

Perulangan atau loop adalah perintah program yang berfungsi untuk

mengulang beberapa baris kode program atau perintah sampai pada batas

yang telah ditentukan. Untuk membuat perintah perulangan setidaknya

kita harus mengetahui 3 komponen yang harus ada dalam perulangan

tersebut, yaitu:

1. Kondisi pada saat awal perulangan

2. Kode Program atau perintah yang akan diulang,

3. Kapan Perulangan itu akan berhenti.

Penggunaan perulangan dalam bahasa pemrograman dapat mem-


berikan efisiensi dan memperpendek kode program. Karena dengan

menggunakan perulangan, proses yang dilakukan berulang misalnya

menuliskan huruf A sampai 500 dapat dituliskan dengan beberapa baris koding saja. Secara umum
proses looping atau perulangan dibedakan menjadi 2

jenis, yaitu:

1. Looping yang jumlah kali perulangannnya sudah diketahui terlebih dahulu.

2. Looping yang jumlah kali perulangannnya belum diketahui kapan dia akan berhenti.

Untuk perulangan yang sudah diketahui kapan dia akan berhenti akan diselesaikan dengan
perulangan for. Sedangkan perulangan yang belum diketahui kapan perulangan itu akan berhenti
diselesaikan dengan while apabila kondisinya diperiksa di awal dan akan menggunakan do while
apabila kondisi perulangannya diperiksa di akhir.

Perulangan secara umum memiliki 2 Struktur utama:

1. Kondisi perulangan, yaitu kodisi yang harus dipenuhi agar perulangan dapat dilakukan biasanya
berupa ekspresi boolean.

2. Bagian Perintah koding yang akan diulang.

4.3 Rekursif

Dalam ilmu Komputer rekursif menjadi hal yang sangat penting. Secara sederhana rekursif
dapat disimpulkan sebagai perintah untuk memanggil dirinya sendiri, baik itu secara langsung
maupun tidak langsung. Di pemrograman, rekursif digunakan dalam fungsi yang memiliki peran
memanggil dirinya sendiri. Atau dapat diartikan juga sebagai satu teknik dalam pemrograman yang
memanggil fungsi dari fungsi itu sendiri. Pemanggilan fungsi rekursif secara langsung berarti dalam
fungsi tersebut terdapat statement antuk memanggil dirinya sendiri sedangkan secara tidak langsung
berarti fungsi rekursif tersebut memanggil 1 atau lebih fungsi lain sebelum memanggil dirinya
sendiri.

Contoh konsep penggunaan Rekursif

Masalah: Memotong Tempe tipis-tipis sampai habis, Algoritma:

1. Jika Tempe sudah habis atau potongannya sudah paling tipis maka pemotongan tempe selesai.

2. Jika tempe masih bisa dipotong, potong tipis dari tepi tempe tersebut, lalu lakukan prosedur 1 dan
2 untuk sisa potongannya.
Bagian 5

Larik atau Array

5.1 Pengertian Larik atau Array

Array atau larik adalah suatu peubah hanya dapat menyimpan sebuah nilai saja dan tidak
dapat menyimpan beberapa nilai yang bertipe sejenis. Sedangkan dalam pemrograman terkadang
kita sering mengolah kumpulan data yang memiliki tipe data yang sama. Sehingga diperlukan sebuah
variabel yang dapat menampung kumpulan data dengan tipe data yang sama. Oleh karena itu, untuk
mengatasi permasalahan pemrograman tersebut diperlukan sebuah larik atau Array untuk
menampung data tersebut. Suatu lokasi memori untuk suatu array tidak dapat ditambah atau
dikurangi selama program dijalankan. Untuk mengubah ukuran dari lokasi memori suatu array
haruslah diperbaiki dalam listing programnya, karena array termasuk ke dalam struktur data statis.

Array adalah tipe data terstruktur yang terdiri dari kumpulan nilai- nilai data dengan tipe data
yang sama yang tersimpan secara berurutan menggunakan nama yang sama. Array dalam
pemrograman juga sering disebut dengan istilah larik atau tabel. Pada kehidupan sehari-hari Array
dapat kita analogikan seperti halnya sebuah lemari yang memiliki beberapa rak, yang mana masing-
masing rak memiliki nomer rak yang dapat disebut dengan indeks (Subscript). Sebuah indeks atau
subscript pada array yaitu berupa bilangan di dalam kurung siku yang dimulai dari angka Nol (0) dan
seterusnya. Indeks pada array haruslah berupa tipe data yang menyatakan keterurutan, seperti
integer dan char. Dalam Array terdapat bagian-bagian yang menyusun Array yang disebut sebagai
Elemen Array atau isi yang mana masing-masing elemen memiliki indeks Array yang dapat diakses
tersendiri. Dengan menggunakan Array, kita dapat menyimpan data dalam jumlah yang banyak pada
sebuah variabel.

Penggunaan array dalam pemrograman digunakan ketika memiliki sejumlah data dengan tipe
yang sama yang memerlukan penyimpanan sementara sebelum data tersebut diproses. Dengan
penggunaan array, kita dapat menghindari penggunaan variabel yang terlalu banyak. Berikut ini
adalah gambaran tentang Array.

Pada beberapa bahasa pemrograman, tipe data pada array perlu didefinisikan, akan tetapi
pada pemrograman dengan menggunakan PHP bisa dilakukan tanpa pendeklarasian tipe datanya.
Adapun bentuk array berdasarkan dimensinya terbagi menjadi dua, yaitu Array berdimensi satu dan
array berdimensi dua (Multidimensi).

5.2 Array Dimensi Satu

Array satu dimensi merupakan sebuah variabel yang menyimpan kumpulan-kumpulan


elemen yang memiliki tipe data yang sama dan hanya memiliki satu indeks. Pengaksesan elemen
array dapat dilakukan secara berurutan ataupun dengan cara acak berdasarkan indeks tertentu
secara langsung. Untuk pengambilan nilai pada indeks tertentu dapat dilakukan dengan nilai pada
indeks yang diinginkan. Sebelum variable array digunakan, maka variabel array tersebut perlu
dideklarasikan terlebih dahulu.

Bentuk umum pendeklarasian Array satu dimensi

Type_data nama_Array [ukuran];

Keterangan :

Type data : Menyatakan jenis type data pada elemen array seperti (int, char, float dll).

Nama Array : Menyatakan nama Array yang akan digunakan. Ukuran

Ukuran : Menunjukkan maksimal banyaknya elemen array.

Contoh : Int Nilai [5]; Char nama [8];

Berdasarkan contoh pendeklarasian di atas, maka pada contoh satu int Nilai[5] berarti akan
memesan tempat di memori untuk variabel array sebanyak 5 tempat dengan indeks dari 0-4, yang
mana semua elemennya bertipe integer. Sedangkan untuk contoh dua, Char nama[8] berarti akan
memesan tempat di memori untuk variabel array sebanyak 8 tempat dengan indeks dari 0-7, yang
mana semua elemennya bertipe character.

5.3 Array Dimensi Dua (Multidimensi)

Array dua dimensi atau array multidimensi merupakan pengembangan dari array dimensi
satu, yang sering dikenal dengan istilah matrik yang terdiri dari lebih dari satu baris atau kolom. Jika
pada array satu dimensi hanya terdiri dari sebuah baris dengan beberapa kolom elemen maka pada
array dua dimensi terdiri dari beberapa baris dan beberapa kolom elemen yang bertipe sama Array
berdimensi dua tersusun dalam bentuk baris dan kolom, yang mana indeks pertama menunjukan
baris dan indeks kedua menunjukan kolom dari tabel atau matrik.

Bentuk Umum Array dua dimensi (Multidimensi)

Type-data Nama-array I ukuranl ] [ukuran2];

Keterangan :

Type data : Menyatakan jenis type data pada elemen array seperti (int, char, float dll).

Nama Array : Menyatakan nama Array yang akan digunakan

Ukuran1 : Menunjukkan jumlah baris.

Ukuran2 : Menunjukan jumlah kolom.


Bagian 6
Metode Detive dan Conquer
6.1 Pengertian Metode Devide and Conquer
Metode Divide and Conquer adalah suatu metode pemecahan masalah yang besar
dengan cara membagi masalah menjadi sub-sub masalah yang lebih kecil secara berulang-
ulang (rekursif) sehingga masalah tersebut dapat diselesaikan secara langsung. Solusi yang
didapat dari setiap sub masalah kemudian digabungkan untuk membentuk sebuah solusi
yang utuh.
Adapun Langkah-langkah umum Metode Divide and Conquer
-Divide: membagi persoalan menjadi beberapa sub masalah yang
memiliki kemiripan dengan persoalan awal dengan ukuran yang lebih
kecil atau dengan kata lain (berukuran hampir sama).
-Conquer (Solve): memecahkan atau menyelesaikan masing-masing sub masalah secara
rekursif (secara berulang-ulang).
-Combine: menghubungkan solusi masing-masing sub masalah sehingga membentuk solusi
persoalan semula.
Empat hal penting yang harus dipahami dalam strategi ini: branching factor, balance,
data dependence of divide function dan sequentiality.
Branching factor
Branching factor dalam algoritma divide and conquer adalah jumlah dari sub masalah yang
akan dibagi dari sebuah masalah awal. Hal Ini merupakan langkah nyata dari algoritma
divide and conquer, di dalam proses pembagian yang sebenarnya, jumlah dari branching
factor harus 2 atau lebih, karena jika tidak problem tidak bisa dibagi. Banyak jenis algoritma
ini termasuk pula algoritma komputasi geometric yang memiliki branching factor berjumlah
2.
Balance
Sebuah algoritma divide and conquer bisa dikatakan balance (seimbang) jika masalah awal
dibagi menjadi sub-sub masalah dengan ukuran yang sama. Dengan kata lain jumlah dari
keseluruhan ukuran sub masalah sama dengan ukuran masalah awal. Adapun beberapa
contoh dari Algoritma Divide and Conquer yaitu Algoritma Merge sort dan binary tree.
Data Dependence of divide Function
Algoritma divide and conquer memiliki sebuah fungsi pembagian terhadap data yang
memiliki ketergantungan, artinya jika ukuran relatif dari sebuah algoritma yang tidak
seimbang, salah satu contohnya adalah algoritma quicksort yang akan membagi subproblem
dengan fungsi data-dependent divide.
Control Parallelism or squentialy
Algoritma divide and conquer dikatakan berurutan (sequential) jika subproblem dieksekusi
sesuai dengan perintah program. Paralelisasi dari algoritma divide and conquer yang terurut
pertama kali didefinisikan oleh Mou's Divacon [Mou90] yang terjadi ketika hasil dari salah
satu sub-eksekusi diperlukan oleh sub eksekusi yang lain. Dalam kasus ini hasil dari subtree
pertama diberikan (passing) kepada proses komputasi subtree kedua, supaya hasil akhir
tersebut bisa digunakan sebagai nilai awalnya, tetapi sekarang ini contoh di atas tidak dapat
dijadikan ilustrasi lagi karena teknologi komputer paralel yang semakin canggih dan
kompleks.
6.2 Pengertian Metode Sorting
Sorting merupakan suatu proses untuk menyusun kembali himpunan obyek
menggunakan aturan tertentu. Sorting disebut juga sebagai suatu algoritma untuk
meletakkan kumpulan elemen data ke dalam urutan tertentu berdasarkan satu atau
beberapa kunci dalam tiap-tiap elemen. Pada dasarnya ada dua macam urutan yang biasa
digunakan dalam suatu proses sorting yaitu urut naik (Ascending) dan urut turun
(Descending). Di mana tujuan dari sorting adalah untuk mengurutkan data yang belum
terurut.
6.3 Algoritma Sorting
Algoritma Sorting adalah kumpulan langkah sistematis atau secara berurutan untuk
memperoleh hasil yang diinginkan. Salah satu contoh dari algoritma untuk langkah ini adalah
Sorting (pengurutan). Sorting dapat dibedakan menjadi dua yaitu Comparasion Sort (Bubble
Sort, Selection Sort, Insertion Sort, Merge Sort, Quick Sort) dan Non-Comparasion Sort
(Radix Sort, Counting Sort). Comparasion Sort/pengurutan dengan pembandingan adalah
algoritma yang dalam proses pengurutannya melakukan pem- bandingan antar data. Non-
Comparasion Sort/pengurutan tanpa pem- bandingan adalah algoritma pengurutan di mana
dalam prosesnya tidak melakukan perbandingan antar data.
6.4 Algoritma Merge Sort
Merge Sort adalah algoritma yang dijalankan sebagai akibat dari terlalu banyaknya
daftar yang diurutkan, dengan menghasilkan lebih banyak daftar yang diurutkan sebagai
output. Algoritma merge ini disesuaikan untuk mesin drive tape. Penggunaannya dalam
akses memori acak besar yang terkait telah menurun, karena banyak aplikasi algoritma
merge yang mempunyai alternatif lebih cepat ketika kamu memiliki akses memori acak yang
menjaga semua data. Hal ini disebabkan algoritma ini membutuhkan setidaknya ruang atau
memori dua kali lebih besar karena dilakukan secara rekursif dan memakai dua tabel.
Algoritma merge sort membagi tabel menjadi dua tabel yang sama besar. Masing-masing
tabel diurutkan secara rekursif, dan kemudian digabungkan kembali untuk membentuk tabel
yang terurut. Implementasi dasar dari algoritma merge sort memakai tiga buah tabel, dua
untuk menyimpan elemen dari tabel yang telah dibagi dua dan satu untuk menyimpan
elemen yang telah terurut. Namun algoritma ini dapat juga dilakukan langsung pada dua
tabel, sehingga menghemat ruang atau memori yang dibutuhkan.
BUKU II
BAB III
PENUTUP

A. Kelebihan dan Kekurangan Buku


Dari buku yang pertama kami mendapati isi yang sangat bagus untuk pemula dalam
penjelasan maupun pemahaman. Wajar saja karena buku ini di peruntukkan untuk anak sekolah
dimana penjelasan yang ringan dan di perkokoh dengan gambar-gambar yang memancing imajinasi
agar memahami dan sejalan dengan buku ajar yang mempelajari ilmu yang rumit ini. Menurut saya
buku ini sangat bagus karena penjelasan yang ringkas dan mudah di pahami,dan cocok untuk para
pemula.
Sementara itu pada buku yang kedua kami mendapati beberapa kelebihan buku ini adalah:
1. Penulis dalam menyajikan buku ini selalu disertai sumber, setiap teori atau pendapat yang
ada di dalam buku selalu disertai sumber. Hal ini tentu menjadi nilai plus bagi buku ini,
pencantuman sumber dapat membuat pembaca yakin bahwa buku ini sangat terpercaya dan
layak dibaca dan dipelajari oleh berbagai kalangan yang ingin mempelajari tentang algoritma
dan pemrograman C++.
2. Buku ini menguraikan tentang algoritma dan dasar-dasar pemrograman C++ dengan baik.
Sehingga cocok dijadikan sebagai sumber informasi atau bahan belajar bagi para mahasiswa
yang ingin mempelajari algoritma dan pemrograman C++.
3. Penulis memberikan materi dan pembahasan di dalam buku ini cukup lengkap dan kompleks,
karena penulis menambahkan contoh dan memberi penjelasan mengenai langkah-langkah
dalam suatu proses pemrograman.
4. Dalam penyajiannya penulis menggunakan bahasa yang formal dengan pemilihan ukuran
huruf, margin yang sesuai sehingga memudahkan pembaca dalam membaca dan memahami
isi buku. Dalam buku ini, permasalahan dan materi dijelaskan dan dipaparkan dengan baik
oleh penulisnya.
5. Penulis menggunakan istilah-istilah yang sering digunakan dalam pemrograman, sehingga
pembaca akan lebih terbiasa dengan istilah-istilah dalam pemrograman setelah membaca
buku ini.
6. Penulis memberikan soal atau tugas yang bisa dikerjakan pembaca agar dapat lebih
memahami isi buku.

Dan ada beberapa kekurangan buku ini adalah :

1. Ada beberapa kata yang susunannya tidak mudah dibaca sehingga pembaca harus
mengulang bacaan untuk dapat memahaminya.
2. Ada beberapa kalimat yang masih memerlukan penjelasan namun tidak dijelaskan. Misalnya
saja ketika ada istilah pemrograman yang menggunakan bahasa Inggris, tentu diperlukan
penjelasannya mengingat rata-rata pembaca buku ini adalah orang Indonesia.
3. Catatan kaki diperlukan dalam buku ini, karena banyak istilah-istilah pemrograman yang
masih asing dan masih memerlukan penjelasan lebih detail.
4. Sampul buku kurang menarik, terlalu kalem sehingga kurang menarik perhatian calon
pembaca untuk membaca buku ini. Akan lebih baik jika sampulnya dibuat lebih menarik
sehingga membuat calon pembaca tertarik untuk membacanya ketika melihat buku ini walau
dari bagian luar saja.
5. Ada beberapa susunan buku yang kurang rapi, contohnya ada halaman yang kosong dan
terdapat beberapa kata yang kekurangan huruf. Saya menyadari bahwa mungkin ini adalah
kesalahan teknis oleh penulis atau editor buku ini, namun buku akan terlihat lebih baik jika
disempurnakan lagi.

Dengan beberapa kekurangan diatas bukan berarti buku ini tidak layak untuk dibaca dan
dipelajari, buku ini sangat baik untuk dipelajari bagi para mahasiswa atau segala kalangan yang ingin
mempelajari algoritma dan pemrograman C++.
BAB IV
KESIMPULAN

Algoritma adalah sebuah urutan atau proses yang fungsinya adalah membantu kita
dalam melakukan penyelesaian masalah seefektif mungkin. Begitu pun dalam dunia
pekerjaan dan bisnis, sangat perlu untuk melakukan perencanaan maupun prosedur dalam
menghadapi permasalahan yang kemungkinan akan datang.
Melalui buku ini kita dapat memahami dan belajar mengenai Algoritma dan
Pembrograman dimana buku pertama yang menjelaskan secara rinci dan sangat cocok
untuk pemula yang baru belajar mengenai Algoritma dan Pembrograman

Anda mungkin juga menyukai