Algoritma Pemrograman untuk SMK RPL
Algoritma Pemrograman untuk SMK RPL
A. INFORMASI UMUM
1. IDENTITAS SEKOLAH
2. Kompetensi Awal
Kemampuan awal yang dipersyaratkan untuk mempelajari modul ini.
Peserta didik sudah memiliki kemampuan dasar tentang logika dan algoritma
6. Model Pembelajaran
- Paduan antara tatap muka dan PJJ (Blended Learning)
B. KOMPONEN INTI
1. Tujuan Pembelajaran
2. Pemahaman Bermakna
algoritma adalah suatu upaya dengan urutan operasi yang disusun secara logis dan sistematis
untuk menyelesaikan suatu masalah untuk menghasilkan suatu output tertentu.
3. Pertanyaan Pemantik
a. Apa yang dimaksud varian dan invariant?
b. Pernahkan anda mendengar algoritma? Apa itu algoritma?
c. Pernahkan anda mendengar flowchart? Apa itu flowchart?
4. Kegiatan Pembelajaran
PERTEMUAN 7
Pendahuluan
1. Memberi Salam
2. Guru meminta peserta didik memimpin doa
3. Guru mengabsen, mengecek kerapian berpakaian, kebersihan kelas.
4. Peserta didik diberikan cakupan materi dan tujuan pembelajaran yang
10 Menit
harus dicapai oleh peserta didik
5. Peserta dididk memperoleh informasi mengenai model pembelajaran yang
akan dilaksanakan
6. Guru memberi motivasi dengan melakukan apersepsi melalui tanya jawab
Inti
Penutup
Pendahuluan
1. Memberi Salam
2. Guru meminta peserta didik memimpin doa
3. Guru mengabsen, mengecek kerapian berpakaian, kebersihan kelas.
4. Peserta didik diberikan cakupan materi dan tujuan pembelajaran yang
10 Menit
harus dicapai oleh peserta didik
5. Peserta dididk memperoleh informasi mengenai model pembelajaran yang
akan dilaksanakan
6. Guru memberi motivasi dengan melakukan apersepsi melalui tanya jawab
Inti
Penutup
PERTEMUAN 9
Pendahuluan
1. Memberi Salam
2. Guru meminta peserta didik memimpin doa
3. Guru mengabsen, mengecek kerapian berpakaian, kebersihan kelas.
4. Peserta didik diberikan cakupan materi dan tujuan pembelajaran yang
10 Menit
harus dicapai oleh peserta didik
5. Peserta dididk memperoleh informasi mengenai model pembelajaran yang
akan dilaksanakan
6. Guru memberi motivasi dengan melakukan apersepsi melalui tanya jawab
Inti
Penutup
PERTEMUAN 10
Pendahuluan
1. Memberi Salam
2. Guru meminta peserta didik memimpin doa
3. Guru mengabsen, mengecek kerapian berpakaian, kebersihan kelas.
4. Peserta didik diberikan cakupan materi dan tujuan pembelajaran yang
10 Menit
harus dicapai oleh peserta didik
5. Peserta dididk memperoleh informasi mengenai model pembelajaran yang
akan dilaksanakan
6. Guru memberi motivasi dengan melakukan apersepsi melalui tanya jawab
Inti
Penutup
PERTEMUAN 11
Pendahuluan
1. Memberi Salam
2. Guru meminta peserta didik memimpin doa
3. Guru mengabsen, mengecek kerapian berpakaian, kebersihan kelas.
4. Peserta didik diberikan cakupan materi dan tujuan pembelajaran yang
10 Menit
harus dicapai oleh peserta didik
5. Peserta dididk memperoleh informasi mengenai model pembelajaran yang
akan dilaksanakan
6. Guru memberi motivasi dengan melakukan apersepsi melalui tanya jawab
Inti
Penutup
PERTEMUAN 12
Pendahuluan
1. Memberi Salam
2. Guru meminta peserta didik memimpin doa
3. Guru mengabsen, mengecek kerapian berpakaian, kebersihan kelas.
4. Peserta didik diberikan cakupan materi dan tujuan pembelajaran yang
10 Menit
harus dicapai oleh peserta didik
5. Peserta dididk memperoleh informasi mengenai model pembelajaran yang
akan dilaksanakan
6. Guru memberi motivasi dengan melakukan apersepsi melalui tanya jawab
Inti
Penutup
5. Asesmen
Pertemuan 7-8
Untuk memperdalam pemahaman Anda mengenai materi di atas, kerjakanlah latihan
berikut!
1) Apa yang dimaksud dengan algoritma?
2) Apa yang dimaksud dengan program?
3) Sebutkan dan jelaskan dua macam kelompok besar program komputer.
4) Apa yang dimaksud dengan bahasa pemrograman dan programmer?
5) Sebutkan dan jelaskan bahasa pemrograman berdasarkan fungsi kerja pada mesin
komputer.
6) Sebutkan dan jelaskan tiga konsep penyelesaian masalah dengan program komputer.
7) Sebutkan dan jelaskan tiga alasan menggunakan algoritma?
8) Sebutkan manfaat dari menggunakan algoritma.
Kunci jawaban
1) Algoritma adalah prosedur pemecahan masalah dalam bahasa alami manusia yang tidak tergantung
kepada bahasa pemroraman tertentu.
2) Program adalah satu set intruksi yang berkode yang dapat dimengerti oleh komputer untuk
memecahkan masalah atau menghasilkan hasil yang diinginkan.
3) Kelompok besar program komputer adalah:
a. Sistem Operasi Komputer atau Operating System (OS): Program komputer yang menyediakan intruksi
paling mendasar yang digunakan komputer dalam operasinya, OS merupakan perangkat lunak yang bisa
mengelola perangkat keras, sumber daya perangkat lunak dan penyedia layanan untuk komputer lainnya.
Contoh: Sistem Operasi Windows, Linux, MacOS.
b. Program Aplikasi: Aplikasi yang berjalan di atas sistem operasi dan melakukan pekerjaan sesuai tujuan
kehendak kita, misalnya pengolah kata, perhitungan, aplikasi pemutar video, aplikasi penampil
gambar, aplikasi grafis.
4) Bahasa Pemrograman (Programmming Language) adalah bahasa formal yang terdiri set intruksi untuk
komputer yang menghasilkan keluaran. Bahasa Pemrograman digunakan dalam pemrograman komputer untuk
mengimplementasikan algoritma. Programmer adalah orang yang profesional bertanggung jawab atas
perangkat lunak. Profesi ini banyak memiliki spesialisasi yang terdefinisi dengan jelas, bahkan banyak bidang
yang begitu berbeda satu dengan yang lain, sehingga tidak serupa sama sekali (kecuali persamaan orientasi,
yaitu pada komputer).
5) Berdasarkan fungsi kerja pada mesin komputer bahasa pemrograman terdiri dari:
a. Bahasa Mesin: Instruksi komputer dengan memakai kode bahasabiner 0 dan 1.
b. Bahasa Tingkat Rendah: Bahasa Rakitan (Assembly), memberikan intruksi-intruksi singkat diluar
bahasa manusia (bahasa mesin).
c. Bahasa Tingkat Menengah: Bahasa komputer yang memadukan bahasa manusia dengan bahasa
simbolik.
d. Bahasa Tingkat Tinggi: Bahasa komputer dengan perintah bahasa manusia (bahasa Inggris).
6) Tiga konsep penyelesaian dengan program komputer yaitu:
a. Menganalisa (analisa) dan membuat algoritma: Tahapan analisa adalah mengenali, mengidentifikasi suatu
masalah, mengidentifikasi adalah seberapa besar masalah yang ingin dipecahkan, jika permasalahan cukup
besar, maka bisa dipecah menjadi sub-sub proses.
b. Menuangkan Algoritma kedalam bentuk program: Algoritma yang dibuat harus jelas prosesnya. Urutan
antara proses atau sub proses harus sesuai, sehingga programmer dengan mudah menuangkan kedalam
bentuk program.
c. Mengeksekusi dan Menguji Program: Program komputer yang telah dibuat harus di eksekusi dan diuji.
Eksekusi adalah mengkompilasi kode-kode program yang sudah dibuat . Uji adalah menguji program
apakah sudah sesuai dengan yang dinginkan atau sudah tercapai pemecahan yang dinginkan.
7) Tiga alasan kenapa menggunakan alasan menggunakan algoritma, sebagai berikut:
a. Efisiensi: Untuk mengukur sebuah algoritma yang efisien harus
mempertimbangkan yaitu efisiensi waktu-CPU dan memori. Terkadang programmer hanya
berhenti kepada hasil tepat, akan tetapi tidak mempertimbangkan waktu dan memori yang
terkuras oleh algoritma yang digunakan. Basis untuk membuat algoritma adalah efisiensi
waktu, memori dan keluaran yang tepat.
b. Abtraksi: Kelebihan dari pada algoritma adalah mampu memperlihatkan sebuah permasalahan yang tingkat
kerumitannya besar dapat diurai menjadi kelihatan mudah dan sederhana, gambaran kerumitan terkikis
dengan alur algoritma yang tersusun baik dan jelas dengan pendekatan-pendekatan umum.
c. Reusability: Algoritma adalah metode, bukan program itu sendiri, artinya bahwa algoritma harus mampu
digunakan tanpa melihat bahasa pemrograman yang digunakan, dapat digunakan kembali dan dan bahkan
berkali-kali pada pada berbagai situasi untuk menerapkan dalam bahasa program.
8) Adapun manfaat dari menggunakan algoritma adalah sebagai berikut:
a. Meningkatkan kemampuan berfikir secara logis, logika dan algoritma pemrograman menjadi suatu hal yang
sangat penting dalam membuat atau mengembangkan sebuah produk. Kesalahan logika yang digunakan,
tentu akan berakibat fatal terhadap produk yang akan dikembangkan. Selain error, tentu produk yang
dikembangkan tidak akan sesuai dengan apa yang kita inginkan.
b. Mengembangkan cara berfikir dengan sistemastis. Dalam membuat sebuah algoritma harus secara urut dan
sistematis begitu juga dengan program hasil penerapan dari algoritma, seseorang akan dihadapkan pada
urutan-uruan yang disusun secara sistematis. Urutan-urutan harus terstruktur dan tidak boleh terbolak-balik
baik penyusunannya maupun penulisannya, agar program yang dibangun dapat berjalan tanpa
permasalahan.
c. Mempertajam analisis ketika pembuatan program, ketika membuat algoritma maupun program
terkadang muncul kesalahan-kesalahan dalam penyelesaiannya, misalnya program yang dibangun error
saat diverifikasi atau di-build. Permasalahan ini akan memerlukan sedikit ketelitian untuk
mengatasinya yaitu dengan mengecek ulang kodeprogram yang dibuat, pengecekan yang
berulang-ulang akan membawa pada pelatihan menganalisis permasalahan dan
meningkatkan ketelitian dalam membuat sebuah program. Meningkatkan kemampuan
dalam mengatasi masalah: Tujuan utama algoritma adalah menyelesaikan masalah, jadi kita akan
dilatih untuk menyelesaikan sebuah permasalahan, bahkan sampai pada memprediksi masalah yang
akan muncul dan bagaimana mengelolanya. secara tidak sadar, pola ini akan terbawa dalam kehidupan
sehari-hari untuk menghadapi berbagai macam permasalahan yang terjadi. Kita secara tidak sadar akan
berpikir secara logis dan sistematis.
Pertemuan 9-110
TES FORMATIF 2
Pilihlah satu jawaban yang paling tepat!
1) Suatu upaya dengan urutan operasi yang disusun secara logis dan sistematis untuk menyelesaikan suatu
masalah untuk menghasilkan suatu output tertentu definisi dari....
A. Logika pemrograman
B. Algoritma
C. Program komputer
D. Logika informatika
2) Algoritma adalah suatu metode khusus untuk menyelesaikan suatu masalah, definisi ini menurut....
A. Abu Ja’far Muhammad Ibnu Musa Al-Khawarizmi
B. Donald E. Knuth
C. David Bolton
D. Andrey Andreyevich Markov
3) Algoritma adalah hal umum untuk dipahami sebagai suatu keputusan yang tepat untuk mendefinisikan proses
komputasi yang mengarahkan dari data awal hingga hasil yang diinginkan, definisi ini menurut....
A. Abu Ja’far Muhammad Ibnu Musa Al-Khawarizmi
B. Donald E. Knuth
C. David Bolton
D. Andrey Andreyevich Markov
4) Pengembang tidak mempertimbangkan waktu dan memori yang terkuras oleh algoritma yang digunakan.
Narasi di atas bertentangan dengan alasan adopsi penggunaan algoritma pada poin....
A. Abtraksi
B. Efisiensi
C. Reusability
D. Semua benar
5) Bahasa Pemrograman yang pertama di dunia adalah….
A. Visual Basic
B. ADA
C. Java
D. Delphi
6) Program yang berjalan pada sistem operasi dan melakukan pekerjaan sesuai tujuan kehendak kita
misal pengolah kata, perhitungan (olah data), presentasi video, suara dan sebagainya. Suatu program
umumnya ditulis dengan menggunakan suatu bahasa pemrograman tingkat tinggi. Kalimat di atas
mewakili dari definisi….
A. Program Sistem Operasi
B. Bahasa pemrograman
C. Program aplikasi
D. Algoritma
7) Tiga alasan kenapa harus menggunakan algoritma, yaitu....
A. Efisiensi, abstraksi, dan reusability
B. Efektif, hemat waktu, minim biaya
C. Fleksibel, efektif, dan normatif
D. Fleksibel, abtraksi, dan normatif
10) Jika sebuah variabel k = 10, kemudian dalam sebuah perulangan dibuat kondisi jika k = 11 maka operasi k
= k + 1, jika tidak maka operasi k = k
+ 2, perulangan dilakukan perulangan selama 6 kali, berapakah nilai k di akhir perulangan?
A. 17
B. 18
C. 19
D. 20
Kunci Jawaban
Tes Formatif 1 Tes Formatif 2
1) B 1) B
2) A 2) A
3) D 3) D
4) B 4) A
5) B 5) D
6) C 6) C
7) A 7) C
8) A 8) B
9) A 9) C
10) D 10) D
a. Lembar observasi
Langkah-langkah:
1. Buka software miscrosoft visio
2. Buka File - New - Flowchart - Cross Functional FLowchart
Cita Puspitasari, [Link] dan Renita, [Link].
Cross-Functional Flowchart
3. Setelah memilih Cross Functional, akan muncul kotak dialog Flowchart.
Silakan pilih Metric Units atau US Metric. Lalu klik create.
6. Refleksi
a. Refleksi peserta didik
Aspek Refleksi Peserta didik
Perasaan dalam Apa yang menyenangkan dalam kegiatan pembelajaran hari
belajar ini?
Makna Apakah aktivitas pembelajaran hari ini bermakna dalam
kehidupan saya?
Penguasaan Saya dapat menguasai materi pelajaran pada hari ini
materi a. Baik
b. Cukup
c. Kurang
Keaktifan Apakah saya terlibat aktif dalam pembelajaran hari ini?
Apakah saya menyumbangkan ide dalam proses pembuatan
infografis?
Gotong Royong Apakah saya dapat bekerjasama dengan teman 1 kelompok?
b. Refleksi Guru
Aspek Refleksi Guru
Penguasaan Materi Apakah saya sudah memahami cukup baik materi dan
aktifitas pembelajaran ini?
Penyampaian Materi Apakah materi ini sudah tersampaikan dengan cukup baik
kepada peserta didik?
Umpan balik Apakah 100% peserta didik telah mencapai penguasaan
tujuan pembelajaran yang ingin dicapai?
C. LAMPIRAN
LAMPIRAN 1
• Lembar Kerja Peserta Didik
Lembar Kerja Peserta Didik
Lembar observasi
Kelompok 1
Kelompok 2
4
dst.
Indikator Penilaian :
Individu : Kelompok :
4 : Sering 4 : Memuaskan
3 : Kadang-kadang 3 : Baik
2 : Jarang 2 : Cukup
1 : Tidak pernah 1 : Kurang
Jika dikolaborasi dari definisi algoritma di atas maka definisi dari algoritma adalah suatu
upaya dengan urutan operasi yang disusun secara logis dan sistematis untuk menyelesaikan
suatu masalah untuk menghasilkan suatu output tertentu.
Dalam komputasi, algoritma sangat penting karena berfungsi sebagai prosedur sistematis
yang diperlukan komputer. Algoritma yang baik adalah bagaikan menggunakan alat yang tepat
di bengkel. Penggunaan algoritma yang salah adalah bagaikan mencoba memotong sepotong
kayu dengan menggunakan gunting yang tentu tidak efektif. Penggunaan gunting tersebut juga
akan membutuhkan waktu yang lama dalam menyelesaikan permasalahan.
Untuk memperluas pemahaman kita tentang konsep algoritma dengan cara yang lebih baik,
kita cermati kasus berikut: Katakanlah Anda mau melakukan sebuah perjalanan dari Jakarta ke
Bogor, Anda diperhadapkan dengan berbagai pilihan untuk mencapai tujuan, misalnya dengan
naik kereta, naik taksi atau naik angkot. Ketiga pilihan yang ada mempunyai kelebihan dan
kelemahan baik dari sisi waktu dan biaya.
Naik Kereta
Ke stasiun terdekat
Membeli tiket kartu Jakarta - Bogor
Gesek kartu untuk membuka pintu masuk
Menunggu keberangkatan kereta
Jika kursi penuh maka berdiri
Sampai tujuan Bogor
Naik Taksi
Memesan taksi lewat Android atau telepon langsung
Menunggu taksi untuk menjemput
Naik taksi
Lewat jalur biasa atau lewat jalan tol
Sampai tujuan
Bayar taksi sesuai argo
Naik Angkot
Ke terminal atau pangkalan angkot
Menunggu angkot penuh
Melalui jalur biasa
Sampai Bogor
Bayar sesuai tarif angkot.
Ketiga algoritma di atas mencapai tujuan yang sama, namun masing- masing algoritma
melakukannya dengan cara yang berbeda. Setiap algoritma juga memiliki biaya yang berbeda
dan waktu perjalanan yang berbeda. Dengan naik taksi misalnya, adalah cara tercepat, tapi juga
yang paling mahal. Naik angkot, jauh lebih murah akan tetapi memakan waktu lebih banyak dari
naik taksi, begitu juga dengan naik kereta, menunggu jadwal kereta, singgah di setiap stasiun dan
walaupun bebas hambatan. Setiap pilihan punya kelebihan dan kekurangan.
Istilah algoritma digunakan dalam ilmu komputer atau informatika untuk mendeskripsikan
metode pemecahan masalah yang terbatas, deterministik, dan efektif sesuai tujuan implementasi
suatu program komputer. Algoritma merupakan salah satu bidang/bagian dari ilmu komputer
dan objek penelitian utama di lapangan sampai saat ini. Algoritma adalah prosedur pemecahan
masalah dalam bahasa sangat alami (bahasa manusia), langkah-langkah pemecahan masalah
dalam algoritma nantinya akan dituangkan menjadi program komputer untuk
mempercepat/mengotomasi penyelesaian masalah. Sedangkan untuk bahasa pemrograman yang
digunakan untuk menuangkan algoritma kedalam bahasa program sangat tergantung selera dan
penguasaan pada individu programmer.
Salah satu alasan utama mempelajari algoritma dilihat dari kacamata disiplin ilmu adalah
bahwa algoritma adalah sebuah keterampilan yang memberi potensi untuk memecahkan masalah
serumit apapun dengan waktu peneyelesaian proses/eksekusi singkat, bahkan mungkin bisa
meringkas langkah kerja yag tidak efisien menjadi otomatis. Dalam sebuah aplikasi bisa saja
memproses jutaan objek, fungsi atau procedure (langkah-langkah kerja) penyelesaian masalah.
Program yang dirancang dengan menggunakan algoritma yang tepat sangat mungkin membuat
program jutaan kali lebih cepat dibanding dengan program dengan sebuah algoritma dengan
desain asal- asalan. Pada modul-modul selanjutnya akan diberikan beberapa contoh kecil
efisiensi pengerjaan suatu masalah yang bisa diselesaikan secara dengan logika algoritma yang tepat.
Algoritma yang tepat akan memberikan efek yang signifikan terhadap waktu dan tenaga. Tidak
sedikit perusahaan yang saat ini mau dan rela menginvestasikan uang tambahan untuk membeli
dan memasang komputer baru untuk mempercepat pekerjaan mereka, tidak hanya perangkat
keras, mereka mau menggunakan/membeli (membayar lisensi) sebuah algoritma untuk
kepentingan perusahaan.
Dilihat dari disiplin ilmu maka berikut alasan mengadopsi atau menggunakan algoritma
sebagai berikut:
6. Efisiensi: Untuk mengukur sebuah algoritma yang efisien harus mempertimbangkan efisiensi waktu-CPU dan
memori. Terkadang programmer hanya berhenti kepada hasil tepat, akan tetapi tidak mempertimbangkan waktu
dan memori yang terkuras oleh algoritma yang digunakan. Basis untuk membuat algoritma adalah efisiensi
waktu, memori dan keluaran yang tepat. Walaupun tidak bisa dielakkan bahwa bahwa setiap orang akan
memiliki cara berpikir/logika dalam menyelesaikan masalah yang berbeda-beda walau menghasilkan solusi
yang sama. Dalam algoritma kecepatan dan ruang memori harus mampu diseimbangkan
untuk menghasilkan solusi cepat dan tepat.
7. Abtraksi: Kelebihan dari pada algoritma adalah mampu memperlihatkan sebuah permasalahan yang tingkat
kerumitannya besar lalu kemudian dapat diurai menjadi kelihatan mudah dan sederhana, gambaran kerumitan
terkikis dengan alur algoritma yang tersusun baik dan jelas.
8. Reusability: Algoritma adalah metode bukan program, artinya bahwa algoritma harus mampu digunakan tanpa
melihat bahasa pemrograman yang digunakan, dapat digunakan kembali dan dan bahkan berkali-kali pada pada
berbagai situasi untuk menerapkan dalam bahasa pemrograman apapun.
Program dan Bahasa Pemrograman adalah sebuah istilah yang tidak bisa dipisahkan. Program
adalah set intruksi dan bahasa pemrograman adalah intruksi standar dalam membuat program.
Program
Program adalah satu set intruksi yang berkode yang dapat dimengerti oleh komputer untuk
memecahkan masalah atau menghasilkan hasil yang diinginkan. Terdapat dua macam kelompok
besar program komputer, yaitu:
a. Sistem Operasi Komputer (Computer Operating System atau lebih di kenal dengan OS), yakni program
komputer yang menyediakan intruksi paling mendasar yang digunakan komputer dalam operasinya. OS
merupakan perangkat lunak sistem yang mengelola perangkat keras komputer, sumber daya perangkat lunak,
dan menyediakan layanan umum untuk program komputer lainnya. Contoh Sistem Operasi Windows, Linux,
MacOS.
b. Program Aplikasi, yang berjalan pada sistem operasi dan melakukan pekerjaan sesuai tujuan kehendak kita
misal pengolah kata, perhitungan (olah data), presentasi video, suara dan sebagainya. Suatu program
umumnya ditulis dengan menggunakan suatu bahasa pemrograman tingkat tinggi, seperti: Java, C/C++,
Python, PHP dan sebagainya. Pada awal kehadirannya program komputer dibuat dengan bahasa tingkat
rendah, seperti: Bahasa Assembly atau bahasa mesin. Kehadiran generasi bahasa pemrograman tingkat tinggi
menjadikan bahasa pemrograman tingkat rendah menjadi kurang diminati, penyebab utamanya
adalah bahasa pemrograman tingkat tinggi lebih menyerupai bahasa manusia.
Bahasa pemrograman tingkat rendah atau biasa disebut dengan bahasa mesin, satu-satunya bahasa yang
langsung diolah tanpa kompilasi terlebih dahulu. Bahasa pemrograman ini ditulis dengan kode-kode mesin.
Bahasa pemrograman tingkat menengah atau biasa disebut dengan bahasa rakitan (Assembly), yaitu
memberikan perintah untuk komputer dengan memakai kode-kode singkat (kode mnemonic), contohnya kode
mesin: MOV, SUB, CMP, JMP, JGE, JL, LOOP. Contoh bahasa pemrograman ini adalah Assembler, Microsoft
Macro Assembler (MASM).
Bahasa pemrograman tingkat tinggi di awali kemunculannya pada pemrograman generasi ke-3 dan hingga
generasi ke-5. Perkembangan bahasa pemrograman dari generasi ke generasi mengalami kemajuan pesat ditandai
dengan bahasa sudah lebih banyak menggunakan keyword bahasa manusia, pemrograman berorientasi obyek,
pemrograman berbasis web bahkan dengan sistem cloud, pemrograman berasis data dan bahkan yang lebih maju
lagi adalah pemrograman mobile. Contoh bahasa pemrograman tingkat tinggi adalah Visual Basic, Delphi, Pascal,
PHP, dan Java.
EKSPRESI ALGORITMA
Algoritma dapat diekspresikan dalam banyak notasi berbeda-beda, termasuk bahasa alami,
flowchart, pseudocode, atau diagram alur, dan bahasa pemrograman. Ekspresi algoritma dengan
bahasa alami cenderung bertele-tele dan ambigu, dan jarang digunakan untuk algoritma
kompleks. Teknik/cara flowchart dan pseudocode merupakan cara terstruktur untuk
mengekspresikan algoritma untuk menghindari ambiguitas pernyataan bahasa alami, dan tetap
independen dari bahasa implementasi tertentu (tidak terikat dengan bahasa pemrograman
tertentu). Bahasa pemrograman digunakan untuk mengekspresikan algoritma dalam bentuk kode
program yang dapat dijalankan komputer. Jika suatu komunitas pengembangan sistem informasi
hanya menggunakan satu bahasa pemrograman, algoritma yang dibuatnya boleh dibuat
mendekati bahasa pemrograman yang digunakan. Algoritma yang digunakan dalam memecahkan
masalah sangat bisa beragam karena sangat tergantung tingkat pemahaman dan logika pembuat
algoritma. Perlu ditekankan bahwa algoritma yang baik adalah algoritma yang tidak banyak
menggunakan sumber daya dan waktu. Anda bisa membandingkan 2 contoh algoritma di bawah
ini, yang keduanya mencari nilai terbesar pada 3 angka, yang satu dengan bahasa alami dan yang
lainnya adalah menggunakan pseudocode.
Algoritma dengan bahasa alami:
1. Mulai
2. Masukkan angka1, angka2, dan angka3
3. Asumsikan terbesar adalah angka1 untuk awal.
4. Jika angka1 lebih besar dari terbesar maka terbesar adalah angka1
5. Jika tidak, apakah angka2 lebih besar dari terbesar, Jika ya maka terbesar sama dengan angka2;
6. Jika tidak maka terbesar sama dengan angka3.
7. Selesai
5 terbesar angka1
6 Jika angka1 > terbesar, maka
7 terbesar angka1
9 Jika angka2 > terbesar
1 terbesar angka2
0
1 Tapi jika tidak, maka
1
1 terbesar angka3
2
1 Angka terbesar ditemukan adalah terbesar
3
1 Selesai
6
Jika dibandingkan antara algoritma bahasa alami dengan pseudocode, maka lebih
mudah memahami algoritma dengan pseudocode. Tapi untuk lebih praktisnya adalah
dengan pseudocode karena dapat mengatur keterkaitan antar bloknya, serta mudah
memahaminya. Contoh penggalan pseudocode berikut:
1 ...
2 Jika angka1 > terbesar, maka
3 terbesar <- angka1
4 Jika angka2 > terbesar, maka 5 ...
Baris yang menjorok kedalam terbesar <- angka1 (baris 3) memberikan informasi bahwa
baris ini akan dikerjakan jika memenuhi syarat pada baris di atasnya (baris 2), dan jika tidak
memenuhi, maka akan melakukan perbandingan/menguji pada baris di bawahnya (baris 4),
begitu seterusnya hingga perbandingan angka3. Jika pada umumnya bahasa pemrograman
menggunakan Bahasa Inggris untuk keyword, maka dapat ditransformasikan sebagai berikut:
5 terbesar angka1
6 if angka1 > terbesar then
7 terbesar angka1
9 else if angka2 > terbesar then
1 terbesar angka2
0
1 Else
1
1 terbesar angka3
2
1 Print “Angka terbesar :” +Terbesar
3
1 Selesai
6
Harus diakui bahwa pendekatan dengan keyword berbahasa Inggris efektif jika acuan bahwa
bahasa pemrograman pada umumnya menggunakan Bahasa Inggris. Jika algoritma di atas
ditransformasi atau pendekatan kedalam bahasa pemrograman tertentu, misalnya bahasa
pemrograman Java, maka hasilnya sebagai berikut:
Mengapa hal ini bisa ditransformasi ke dalam bahasa pemrograman? Pada dasarnya analis
dan programmer yang berpengalaman mempunyai naluri yang kuat membaca algoritma dengan
pendekatan logika berpikir untuk menyelesaikan masalah.
Tidak ada pedoman baku tentang teknik / cara baku untuk pembuatan dan penyusunan
algoritma, namun diberikan syarat keterpenuhan. Menurut Ellis Horowitz dan Sartaj Sahni dalam
bukunya berjudul “Fundamentals of Data Structures”, syarat ketercapaian suatu algoritma
adalah apabila memenuhi syarat berikut:
Input: boleh nol atau lebih masukan dalam satu algoritma;
Output: dalam satu algoritma, dipersyaratkan memiliki satu keluaran, boleh lebih;
Definiteness: setiap intruksi harus jelas, tidak boleh ambigu (bermakna ganda atau lebih sehingga
membingungkan);
Finiteness: menyatakan bahwa setelah melakukan proses maka apapun kondisinya suatu algoritma harus
memiliki akhir;
Effectiveness: algoritma bekerja secara efektif, yaitu semua operasi yang dilakukan bersifat sederhana dan
dapat diselesaikan dengan waktu yang singkat.
Struktur Dasar Algoritma
Ketika ingin membangun bangunan rumah hal yang paling pertama yang harus dipikirkan adalah
kontruksi dasar, seperti pondasi, balok beton dan konstruksi dinding, hal sama juga dengan
membangun sebuah algoritma harus tahu struktur dasarnya. Ada tiga struktur dasar dalam
algoritma yaitu: skuesial (squenstial), seleksi (selection), dan perulangan (looping).
A. SKUENSIAL (SQUENTIAL)
Struktur dasar skuensial adalah sebuah algoritma dibangun dengan langkah-langkah
(instruksi/perintah) dikerjakan secara berurutan, tidak boleh melompati satu langkah perintah
pun. Misal dalam sebuah algoritma terdapat 20 langkah, maka semua langkah tersebut
dikerjakan berurutan mulai dari langkah 1 sampai pada langkah 20 tanpa melewatkan satu
langkah pun. Car kerja skuensial juga nantinya berlaku dalan bahasa pemrograman, ketika
instruksi bahasa pemrograman yang kita tulis diproses oleh komputer, maka komputer akan
memproses dan menterjemahkan baris demi baris intruksi-instruksi bahasa pemrograman
tersebut secara beruntun dari awal hingga akhir dimulai dari instruksi pada baris awal hingga
baris akhir. Dengan struktur skuensial ini, pembuat algoritma harus mampu menganalisa dan
menentukan intruksi mana yang harus ditulis lebih awal dan seterusnya dan yang mana harus
paling akhir. Pada Gambar 1.3 adalah contoh algoritma dengan skuensial untuk mencari
kecepatan dan percepatan, tidak ada satupun proses yang terlewatkan atau melompati proses
yang ada di bawahnya, semua dikerjakan secara berurutan. Demikian juga dengan intruksi
yang ada di dalam prosesnya, misalnya rumus hitung pecepatan (a) tidak mendahului proses
perhitungan kecepatan (v). hal ini karena untuk mencari percepatan harus mencari atau
menghitung kecepatan terlebih dahulu.
Gambar 1.3 Algoritma dengan Cara Skuensial Mencari Kecepatan dan Percepatan
Jika struktur dasar skuensial direprestasikan menjadi algoritma pseudocode, urutan pekerjaannya akan
sama. Perhatikan pseudocode mencari kecepatan dan percepatan di bawah ini:
2 Input/masukkan nilai: s, a
3 v s/t
4 a v/t
5 Tampilkan nilai kecepatan: v
6 Tampilkan nilai percepatan: a
7 Selesai
B. SELEKSI (SELECTION)
2 Deklarasi variabel: a, b
3 Input/masukkan nilai: a, b
4 if a >= b
Dalam dunia algoritma dan pemrograman akan sering diperhadapkan kondisi seleksi
seperti contoh di atas, baik tipe kasusnya sama maupun berbeda.
C. PERULANGAN (LOOPING)
Struktur algoritma yang ketiga adalah perulangan. Banyak hal terjadi di dunia ini berulang-ulang,
kita bisa menghafal sesuatu salah satu cara adalah mengulang, materi yang diberikan dikelas oleh guru
atau dosen mugkin tidak serta merta langsung bisa dimengerti, akan tetapi melakukan pengulangan
materi yang pernah diberikan sebelumnya bisa menjadi efektif untuk memahaminya/menghafalnya.
Perulangan dalam algoritma sangat dibutuhkan untuk menyelesaikan banyak masalah. Pengurutan
data yang banyak dalam program tertentu itu karena andil sebuah algoritma perulangan. Bayangkan
jika harus menuliskan angka 1 sampai 100 dengan manual dalam sebuah program, akan memakan
waktu, akan tetapi dengan menggunakan algoritma perulangan dalam progam hanya terdiri dari 4
langkah intruksi dalam algoritma sudah bisa menyelesaikan/menampilkan angka 1 sampai 100 bahkan
lebih. Anda pernah menggunakan aplikasi/teknologi kecerdasan buatan pengenalan wajah atau sidik
jari dari smartphone anda? Yakinlah bahwa didalamnya terdapat banyak perulangan.
Di atas sudah saya sebutkan bahwa algoritma sendiri untuk mengatasi kasus pengulangan data,
memiliki intruksi tersendiri, dengan intruksi tersebut pengulangan akan lebih mudah ditulis secara
singkat dan praktis daripada harus di tulis satu-persatu. Akan saya berikan satu contoh flowchart untuk
menuliskan angka 1 sampai dengan angka 5, sebagai berikut:
Gambar 1.5
Flowchart dengan Struktur Algoritma Skuesial untuk Cetak Angka 1 Sampai 5
Gambar 1.5 secara sekilas tampak tidak ada masalah, kenapa? Sebab angka yang dicetak masih
sedikit, tapi coba dibayangkan jika harus mencetak angka 1 sampai angka 100 dengan mengikuti pola
pada Gambar 1.5, tentu cara seperti ini tidak efektif, kenapa? Berapa anda harus membuat 102 simbol
(termasuk simbol mulai dan selesai) dalam flowchart hanya untuk mencetak angka 1 sampai 100.
Tentu flowchart di atas sangat tidak efektif.
Lalu apakah ada cara yang efektif? Cara yang efektif adalah dengan algoritma perulangan. Di
bawah disajikan contoh flowchart mencetak angka 1 sampai 100 dengan kolaborasi antara algoritma
perulangan dengan algoritma seleksi:
Gambar 1.6
Flowchart dengan Algoritma untuk Perulangan dan Seleksi Cetak Angka 1 Sampai 100
Sekarang bandingkan Gambar 1.5 dan Gambar 1.6. Gambar 1.5 hanya bisa mencetak angka 1
sampai 5, jika ingin cetak angka lebih dari 4 maka wajib menambahkan simbol flowchart baru.
Sedangkan untuk Gambar 1.6 bisa mencetak angka 1 sampai angka 100, lalu bagaimana kalau kita ingin
mencetak angka sampai 1000 untuk Gambar 1.6? jawabannya adalah tidak perlu menambah simbol
flowchart baru, akan tetapi cukup mengubah b = 1000, cukup efektifkan?
4 if a > b
5 Cetak a
6 ke langkah 3
else //lainnya
8
Selesai
Bagaimana proses perulangan berjalan pada flowchart Gambar 1.6 atau pseudocode perulangan?
Berikut penjelasannya. Tahap awal variabel a diisi 1 dan variabel b diisi 100, (Perulangan Pertama)
kemudian variabel a diisi dengan a = a + 1, sehingga a = 1, karena a = a + 1 sama dengan a = 0 +1.
Langkah berikutnya a diuji dengan b, apakah a > b atau 1 > 100, tentu jawabannya salah atau “Tidak”,
karena hasil selekasi adalah “Tidak” maka variabel a dicetak. (Perulangan Kedua) Dan kemudian
kembali ke a = a + 1 atau a = 1 + 1 sehingga a = 2, proses ini akan berulang dan mencetak angka 100
hingga sampai memenuhi kondisi a > b benar atau “Ya” dan algoritma perulangan selesai.
Lampiran 3
Glosarium
CPU : Perangkat keras komputer yang memiliki tugas untuk menerima dan
(Central melaksanakan perintah dan data dari perangkat lunak. Karena merupakan
Processing pusat pengolahan data dalam sebuah komputer, CPU sering disebut juga
Unit) sebagai processor
GPS : Sistem untuk menentukan letak di permukaan bumi dengan bantuan
penyelarasan (synchronization) sinyal satelit. Sistem ini menggunakan 24
satelit yang mengirimkan sinyal gelombang mikro ke Bumi. Sinyal ini diterima
oleh alat penerima di permukaan, dan digunakan untuk menentukan
letak, kecepatan, arah,
dan waktu.
Kecerdasa : Kkecerdasan yang ditambahkan kepada suatu sistem yang bisa diatur dalam
n Buatan konteks ilmiah atau bisa disebut juga intelegensi artifisial (Artificial
Intelligence) disingkat AI, didefinisikan sebagai kecerdasan entitas ilmiah.
Andreas Kaplan dan Michael
Haenlein mendefinisikan kecerdasan buatan sebagai “kemampuan sistem
untuk menafsirkan data eksternal dengan benar, untuk belajar dari data
tersebut, dan menggunakan pembelajaran tersebut guna mencapai tujuan dan
tugas tertentu melalui adaptasi yang fleksibel”.
Mnemonik : Teknik yang memudahkan penyimpanan, atau penyandian dan
pengingat terhadap informasi dalam
memori.
Pseudocode : Deskripsi tingkat tinggi informal dan ringkas atas algoritme pemrograman
komputer yang menggunakan konvensi struktural atas suatu bahasa
pemrograman, dan ditujukan untuk dibaca oleh manusia dan bukan
oleh mesin.
Lampiran 4
Daftar Pustaka
1. Nugroho, E. (2010). Pengantar aplikasi komputer. Penerbit Universitas Terbuka.
2. Rinaldi, M. (1999). Algoritma dan pemrograman Jilid1. Penerbit IPB. Wimatra, A. dkk. (2008). Dasar-
Mengetahui;
Kepala SMK Swasta Teladan
Pematangsiantar,
1. Apakah membuka pelajaran yang saya lakukan dapat mengarahkan dan mempersiapkan siswa mengikuti
pelajaran dengan baik?
2. Bagaimana tanggapan siswa terhadap materi yang saya sajikan/ bahan ajar yang saya sajikan sesuai dengan
yang diharapkan? (Apakah materi terlalu tinggi, terlalu rendah, atau sudah sesuai dengan kemampuan awal
siswa?)
3. Bagaimana respon siswa terhadap media pembelajaran yang digunakan? (Apakah media sesuai dan
mempermudah siswa menguasai kompetensi/ mencapai indikator yang telah ditentukan?)
4. Bagaimana tanggapan siswa terhadap kegiatan belajar yang telah saya rancang?
6. Bagaimana tanggapan siswa terhadap pengelolaan kelas? (Perlakuan saya terhadap siswa, cara mengatasi
masalah, memotivasi siswa yang saya lakukan?)
7. Apakah siswa dapat menangkap/memahami penjelasan/instruksi yang saya berikan dengan baik?
REFLEKSI SISWA
ISILAH PERTANYAAN DIBAWAH INI DENGAN JUJUR DAN MENYENANGKAN!
5. Ide apa yang kamu dapatkan setelah belajar pada hari ini?
7. Apakah yang kamu lakukan hari ini sudah mencapai tujuan (target) belajarmu?
9. Bagaimana cara kamu menunjukkan bahwa kamu memahami materi yang dipelajari tadi?