PEMROGRAMAN DASAR

  • 3.1. Menerapkan Alur Logika Pemrograman Komputer
  • 4.1. Membuat Alur Logika Pemrograman Komputer

Kasus 1

Ani akan melakukan installasi driver printer pada komputer yang memiliki sistem

operasi windows 7 miliknya. Karena Ani hanya seorang siswa SMA maka dia

melihat petunjuk cara melakukan installasi printer berikut ini.



Kasus 2

Ibu Aminah adalah seorang ibu rumah tangga, yang tinggal di dekat pasar. Suatu hari

Ibu Aminah pergi kepasar dan melihat seseorang berjualan puding yang sangat ramai.

Sesampainya dirumah Ibu aminah berkeinginan untuk ikut berjualan puding. Namun,

beliau belum pernah membuat puding sama sekali. Karena beliau memiliki

smartphone maka Ibu Aminah browsing untuk mencari resep membuat puding dan

pada akhirnya dapat resep seperti berikut ini.



Page 3 of 22



Dari kedua ilustrasi tersebut diatas dapatkah anda simpulkan apa yang dimaksut

dengan algortima ?. Jika belum maka coba anda kembali memahami kedua kasus

tersebut. Kedua kasus tersebut memiliki sebuah tujuan yaitu menyelesaikan masalah

dalam setiap permasalahan yang dihadapi. Misalkan Ani seorang anak yang hanya

bersekolah SMA ingin melakukan installasi driver printer ke komputer miliknya agar

dapat digunakan, kasus kedua Ibu Aminah ingin berjualan puding maka beliau mencari

resep di internet. Kedua kasus tersebut juga memberkan gambaran yang sangat jelas

tentang langkah – langkah yang nantinya akan menyelesaikan sebuah permasalahan

yang dihadapi oleh kedua orang yang berbeda. Hal inilah yang dimaksut dengan

algoritma.

1.1. Mengenal Algoritma



Dilihat dari istilahnya algoritma, berasal dari nama seorang

matematikawan muslim bernama Abu Ja‟far Muhammad

Ibnu Musa Al-Khuwarizmi (780 M-850), yang oleh orang

barat menyebut Al- Khuwarizm sebagai Algorism, yang

diartikan proses menghitung dengan angka arab. Salah satu



karya beliau yang monumental adalah buku berjudul Kitab Al Jabar Wal-

Muqabala yang artinya “Buku pemugaran dan pengurangan” (The book of



restoration and reduction), yang menjadi cikal bakal istilah “Aljabar” (Algebra)

yang dipakai hingga sekarang ini. Seiring dengan perkembangan jaman isitilah

„Algorism‟ berubah menjadi algorithm yang kemudian diartikan sebagai

metode perhitungan (komputasi) secara umum. Dalam bahasa Indonesia, kata

algorithm diserap menjadi algoritma.

Menurut definisi, algoritma adalah urutan langkah-langkah penyelesaian

masalah yang disusun secara sistematis dan logis. Dalam beberapa konteks,

algoritma dapat diartikan urutan langkah-langkah yang spesifik (tertentu) untuk

melakukan suatu pekerjaan. Jadi algoritma tidak hanya diartikan sebatas pada

perhitungan dengan komputer saja tapi dapat diartikan lebih luas dalam

kehidupan sehari-hari. Resep masakan adalah contoh algoritma yang ada di

kehidupan sehari-hari. Petunjuk pemasangan AC, petunjuk perakitan

komputer, petunjuk installasi software, panduan pengisian token listrik, Jadwal



acara kegiatan adalah berbagai bentuk algoritma yang ada di kehidupan sehari-

hari.



Sebuah algoritma harus disusun secara sistematis dan logis, logis disini bukan

berarti hanya jelas saja, namun harus sudah diuji kebenarannya. Artinya sebuah

algortima yang anda susun harus memiliki hasil akhir yang berupa sebuah

kebenaran. Sebuah algoritma yang mendapatkan hasil salah maka langkah –

langkah yang anda susun tidak bisa dikatakan sebagai sebuah algoritma.



Page 4 of 22



Kemudian sebuah algoritma tidak boleh membuat sebuah kerancuan (ambigu)

maknanya sebuah langkah yang anda tuliskan harus benar – benar jelas. Tidak

boleh memiliki makna ganda atau kias. Misalnya tuangkan garam secukupnya,

perhatikan kata secukupnya disini memiliki makna sangat banyak. Secukupnya

disini dapat berarti satu sendok teh, bahkan 1 sendok makan, hal ini juga harus

dihindari dalam penulisan algoritma.

Sebuah algortima disusun juga harus menggunakan prinsip dasar sistematis

artinya sebuah algoritma disusun dengan urutan yang tepat dan tidak terbolak

balik. Misalkan untuk mencetak sebuah dokumen dengan menggunakan printer

coba anda ikuti petunjuk berikut ini :

1) Siapkan dokumen yang akan dicetak

2) Pastikan driver printer sudah diinstall di komputer

3) Cetak dokumen dengan menekan tombol printer.

Bayangkan jika petunjuk diatas kita balik menjadi seperti dibawah ini.

1) Pastikan driber printer sudah diinstall di komputer

2) Cetak dokumen dengan menekan tombol printer.

3) Siapkan dokumen yang akan dicetak

Pasti anda akan bertanya dokumen apa yang dicetak pada tahapan kedua ?

tahapan seperti ini artinya tidak boleh disebut sebuah algortima karena tidak

akan memecahkan sebuah permasalahan yang ada.

1.2. Struktur Dasar Algortima

Inti dari sebuah algortima adalah memecahkan sebuah permasalahan. Untuk

memecahkan sebuah permasalahan maka diperlukan sebuah input atau

permaasalahan yang ada kemudian difikirkan bagaimana proses memecahkan

sebuah permasalahan yang sudah didapatkan untuk selanjutnya mendapatkan

output sebuah hasil dari pemecahan permasalahan tersebut.

Secara umum struktur algortima terdiri dari 3 bagian sebagai berikut ini :

1) Nama / Judul Algoritma

Nama Algoritma memberikan gambaran secara singkat apa tujuan dari

Algoritma, misalkan nama resep masakan, petunjuk melakukan

sesuatu, jadwal kegiatan, langkah-langkah penyelesaian sebuah

masalah, dan sebagainya. Pemberian nama Algoritma disarankan

singkat dan jelas, namun sudah mewakili maksud dari algoritma. Dalam

Algoritma komputer biasanya nama algoritma dituliskan tanpa

menggunakan spasi, misalkan Algoritma VolumeBalok atau Algoritma

Volume_Balok



Page 5 of 22



2) Bagian Deklarasi

Bagian deklarasi merupakan tahap persiapan dari algoritma. Pada

bagian ini dijelaskan kebutuhan agar algoritma dapat berjalan. Istilah

lainnya di sinilah alat dan bahan didefinisikan. Dalam algoritma

pemrograman, bagian deklarasi menjelaskan input (masukan) apa saja

yang akan diproses oleh algoritma termasuk jenis data input (tipe data),

juga output apa yang akan dihasilkan serta semua hal yang akan dipakai

dalam algoritma. Yang didefiniskan dalam algoritma ini termasuk

variabel, tipe data, konstanta, nama prosedur, tipe, dan fungsi yang akan

dipelajari di materi selanjutnya.

3) Bagian Deskripsi

Pada bagian ini dijelaskan serangkaian langkah-langkah (instruksi) atau

pernyataan (statement) untuk memproses alat dan bahan atau inputan

untuk menghasilkan output sesuai yang diharapkan. Langkah-langkah

dalam algoritma dituliskan dari atas ke bawah. Urutan penulisan

menentukan urutan perintah

Untuk lebih dalam memahami maka silahkan anda perhatikan contoh berikut

ini :



Page 6 of 22

Lembar Kerja Siswa 1



Dengan menggunakan bantuan media internet, buku, atau yang lainnya coba anda kerjakan

beberapa soal berikut ini. Selanjutnya diskusikan jawaban yang kamu dapatkan dengan teman

sekelas dan instruktur yang ada didalam kelas.

1. Apa yang dimaksut dengan algoritma ?

...............................................................................................................................................

...............................................................................................................................................

...............................................................................................................................................

...............................................................................................................................................

...............................................................................................................................................

2. Apa yang dimaksut dengan logis dalam menyusun sebuah algoritma ?

...............................................................................................................................................

...............................................................................................................................................

...............................................................................................................................................

...............................................................................................................................................

...............................................................................................................................................

3. Apa yang dimaksut dengan sistematis dalam menyusun sebuah algoritma ?

...............................................................................................................................................

...............................................................................................................................................

...............................................................................................................................................

...............................................................................................................................................

...............................................................................................................................................

4. Diketahui sebuah algortima seperti dibawah ini, lakukan identifikasi struktur dasar

algoritmanya, dan perbaiki apabila algoritma tersebut belum memiliki struktur algortima yang

lengkap !



Page 7 of 22



...............................................................................................................................................

...............................................................................................................................................

...............................................................................................................................................

...............................................................................................................................................

...............................................................................................................................................

5. Buatlah sebuah algoritma tentang menyalakan komputer sehingga komputer tersebut siap

untuk digunakan.

...............................................................................................................................................

...............................................................................................................................................

...............................................................................................................................................

...............................................................................................................................................

...............................................................................................................................................



E. Kesimpulan

Dari pembahasan diatas buatlah sebuah kesimpulan dengan mencatatkannya dibawah ini.

...............................................................................................................................................

...............................................................................................................................................

...............................................................................................................................................

...............................................................................................................................................

...............................................................................................................................................

...............................................................................................................................................

...............................................................................................................................................

...............................................................................................................................................

...............................................................................................................................................

...............................................................................................................................................

...............................................................................................................................................

...............................................................................................................................................

...............................................................................................................................................

...............................................................................................................................................

...............................................................................................................................................

...............................................................................................................................................

...............................................................................................................................................

...............................................................................................................................................

...............................................................................................................................................

...............................................................................................................................................

...............................................................................................................................................

...............................................................................................................................................

...............................................................................................................................................



Page 8 of 22



F. Uji Kompetensi Siswa

Berilah tanda silang pada jawaban A, B, C, D, dan E pada jawaban yang dianggap paling

benar.

1. Berikut ini adalah pernyataan yang benar mengenai algoritma, kecuali ....

A. Algoritma merupakan prosedur pemecahan masalah

B. Algoritma berisi rangkaian langkah-langkah kerja

C. Algoritma tidak harus menghasilkan output

D. Algoritma pasti memberikan hasil yang sama untuk inputan yang sama

E. Algoritma harus terbatas langkahnya

2. Dalam sebuah algoritma, langkah-langkah tidak boleh ambigu. Manakah di antara

langkahlangkah dalam sebuah algoritma berikut yang ambigu?

A. “Masukkan satu gelas air putih”

B. “Tuangkan adonan puding ke dalam cetakan”

C. “Jika kue sudah matang, keluarkan kue dari oven”

D. “Kukus adonan selama 20 menit”

E. “Sajikan selagi panas”

3. Bagian persiapan dari sebuah algoritma disebut dengan bagian ....

A. Deskripsi

B. Deklarasi

C. Header

D. Preparation

E. Prosedur

4. Istilah-istilah yang biasanya muncul pada bagian deskripsi algoritma yang berkenaan

installasi software adalah sebagai berikut, kecuali .........

A. Tunggu hingga proses installasi selesai

B. Tekan Tombol Next

C. Masukkan Serial Number

D. Klik ganda ikon

E. Matikan komputer

5. Berikut ini alasan mengapa langkah-langkah algoritma tidak boleh ambigu?

a. Agar algoritma memberikan output yang sama untuk input yang sama

b. Agar algoritma dapat dimengerti oleh pengguna

c. Agar langkah-langkah algoritma menjadi terbatas atau mempunyai titik henti

Manakah di antara pernyataan dia tas yang benar?

A. A saja

B. A dan B saja

C. Semua benar



D. A dan C saja

E. Tidak ada yang benar



Page 9 of 22



A. Pembahasan Materi (Pertemuan 2)

2. Mempresentasikan Algoritma dengan menggunakan bahasa sehari – hari

Algortima adalah sebuah susunan sebuah langkah untuk menyelesaikan sebuah

masalah. Langkah – langkah yang digunakan untuk menyelesaikan masalah tersebut

dapat dipresentasikan melalui beberapa cara. Pada pembahasan kali ini kita akan

membahas tentang mempresentasikan algoritma dengan menggunakan bahasa sehari

– hari.

Coba anda perhatikan petunjuk melakukan konfigurasi dan pemasangan Access Point

TP Link WA901ND



Page 10 of 22



Untuk lebih jelas silahkan anda download pada link http://static.tp-

link.com/res/down/doc/TL-WA901ND(US)_V4_QIG.pdf atau anda dapat membaca



pada folder yang diikutsertakan dalam pelatihan ini.

Secara garis besar, algorit,a dapat disajikan atau dipresentasikan dengan menggunakan

3 cara antara lain :

1) Menggunakan bahasa natural (Bahasa Sehari – Hari)

2) Menggunakan Pseudocode

3) Menggunakan Flowchart

Secara umum bahasa natural atau bahasa sehari – hari sering digunakan dalam

membuat sebuah algortima. Setiap hari kita akan dihadapkan dengan beberapa urutan

langkah yang logis untuk mencapai sebuah tujuan. Itulah yang dimaksut dengn

algoritma. Misalkan saja penggunaan handphone, agar sebuah handphone dapat

dipasarkan diindonesia maka secata otomatis akan diberikan sebuah petunjuk tentang

penggunaan handphone tersebut dalam kardusnya.



Secara resmi disetiap kardus sebuah

handphone memiliki buku panduan dalam dua

buah bahasa yang pertama adalah dalam

bahasa inggris (Quick Start Guide) dan yang

satunya dalam bahasa indonesia (Panduan

Singkat).

Bayangkan saja jika product seperti pada

gambar disamping dijual secara bebas

diindonesia tanpa dilengkapi dengan buku

panduan yang menggunakan bahasa indonesia apa yang akan terjadi ?. Konsumen

yang membeli product tersebut akan merasakan sangat kesulitan menggunakan

perangkat tersebut. Khususnya customer yang tidak dapat menggunakan bahasa

inggris. Namun, jika anda dinegara lain maka jangan harap anda menemukan buku

panduan dalam bahasa indonesia. Dinegara tersebut dapat dipastikan bahwa akan

terdapat buku manual dalam bahasa inggris dan bahasa negara di mana barang tersebut

dijual.

Penyajian algoritma dengan menggunakan bahasa natural memang sangat banyak kita

jumpai dalam kehidupan sehari – hari. Namun perlu anda ingat menyajikan algoritma

dengan cara ini sangat efektif jika untuk permasalahan yang singkat dan kecil namun

jika anda akan menyajikan sebuah algortima sebuah program yang besar maka bukan

tidak mungkin anda akan menghabiskan banyak kertas untuk mencetaknya dan

akhirnya tidak efektif.



Page 11 of 22



Contoh 1



Contoh 2



Dari kedua contoh diatas dapat diambil sebuah kesimpulan jika untuk membaut sebuah

algoritma dengan mengguankan bahasa natural kita masih dapat diperbolehkan untuk

menggunakan beberapa simbol matematika.

3. Menyusun sebuah algoritma

Dari beberapa contoh yang sudah disajikan diatas apakah ada sebuah aturan bagaimana

membuat atau menyusun sebuah algortima ?. Sejauh ini, tidak ada sebuah standarisasi

yang mengatur tentang menyusun sebuah algortima. Secara prinsip, anda memiliki

kebebasan untuk menyusun bentuk sebuah algortima.



Page 12 of 22



Namun, anda diberikan beberapa hal yang perlu anda perhatikan dalam menyusun

sebuah algoritma. Menurut knuth (1973, hal. 4) dan juga horowitz dkk. (1999, hal. 1)

ada lima ciri penting yang harus dimiliki sebuah algoritma yaitu :

➢ Finiteness

Algoritma yang baik haruslah mempunyai langkah-langkah terbatas, yang

berakhir pada suatu titik di mana algoritma itu akan berhenti dan menghasilkan

suatu output. Algoritma tidak boleh berjalan terus –menerus tanpa titik henti,

hingga menyebabkan hang atau not responding jika diterapkan pada komputer.

Ketika sebuah algoritma berjalan terus menerus (infinite), maka ini

mengindikasikan ada kesalahan yang dibuat oleh programmer dalam

mengembangkan algoritma.

➢ Definiteness

Makna dari langkah logis pada definisi algoritma terdahulu tercermin dari

langkah-langkah yang pasti, tidak ambigu atau bermakna ganda. Suatu

program harus mempunyai arah dan tujuan yang jelas ,kapan mulai dan kapan

berakhir. Dalam menyusun langkah-langkah dalam algoritma perlu dihindari

kata-kata seperti secukupnya, beberapa, sesuatu, sebentar, lama, atau kata lain

yang tidak terukur dengan pasti. Pemberian nomor pada algoritma dapat

membantu pengguna mengikuti setiap langkah dengan pasti hingga mencapai

akhir dari algoritma, yaitu solusi dari permasalahan.

➢ Masukan

Algoritma memiliki nol input atau lebih dari pengguna. Setiap algoritma pasti

memiliki input. Yang dimaksud dengan nol input dari pengguna adalah bahwa

algoritma tidak mendapatkan masukan dari pengguna, tapi semua data inputan

yang digunakan algoritma tidak dari pengguna secara langsung, namun semua

data yang akan diproses sudah dideklarasikan oleh algoritma terlebih dahulu.

➢ Keluaran

Algoritma minimal harus memiliki 1 output. Tujuan dari algoritma adalah

memberikan penyelesaian dari suatu permasalahan dengan langkah-langkah

tertentu. Penyelesaian itulah output dari algoritma yang dimaksud. Output

dapat berupa apa saja, teks, file, video, suara, dan lain-lain atau suatu nilai yang

disimpan untuk digunakan algoritma lain atau disimpan di basis data.

➢ Efektifitas

Program menghasilkan output yang benar, itu wajib. Tapi bagaimna jika output

yang benar itu dilakukan dengan waktu yang lama padahal ada algoritma lain

yang lebih cepat? Hal ini menunjukkan bahwa setiap algoritma, khususnya jika

sudah diterapkan pada pemrograman, mempunyai waktu eksekusi (running

time). Algoritma disebut efisien jika untuk mendapatkan suatu solusi tidak



Page 13 of 22



memerlukan memori yang banyak, proses yang berbelit-belit dan tidak perlu.

Jika algoritma terlalu banyak melakukan hal-hal yang tidak perlu akan

menyebabkan waktu eksekusi menjadi lebih lama.



B. Kesimpulan

Dari pembahasan materi diatas maka coba anda buat sebuah kesimpulan yang selanjutnya

diskusikan dengan teman – temanmu yang ada didalam kelas

.................................................................................................................................................

.................................................................................................................................................

.................................................................................................................................................

.................................................................................................................................................

.................................................................................................................................................

.................................................................................................................................................

.................................................................................................................................................

.................................................................................................................................................

.................................................................................................................................................

.................................................................................................................................................

C. Ujian Kompetensi

Berikan tanda silang (X) pada jawaban A, B, C, D dan E yang kamu anggap paling benar !

1. Berikut ini pertanyaan yang benar mengenai penyajian algoritma dengan bahasa

natural, kecuali.....

A. Penyajiannya singkat dan efisien

B. Mengunakan bahasa sehari-hari pembuat program atau pengguna

C. Kurang universal

D. Menyatakan langkah-langkah dengan kalimat deskriptif

E. Dapat dimengerti oleh pengguna algoritma

2. Berikut ini pernyataan yang benar mengenai input dan output dalam algoritma, kecuali

...

A. Algoritma harus memiliki minimal 1 output

B. Algoritma bisa memiliki nol input dari pengguna

C. Algoritma bisa memiliki input dari algoritma itu sendiri

D. Algoritma boleh tidak memiliki output

E. Algoritma mengolah input menjadi output

3. Sebuah algoritma dijalankan melalui sekian langkah dengan kriteria-kriteria tertentu.

Namun ketika ditelusuri, algoritma itu akan berulang ke satu langkah secara terus

menerus sehingga tidak ada jaminan algoritma tersebut berhenti. Ini artinya algoritma

tidak memenuhi sifat...

A. define

B. finite



C. efisien

D. efektif



E. solutif



Page 14 of 22



Perhatikan tabel berikut ini untuk mengerjakan soal no 4 dan 5



4. Tentukan output dari algoritma di atas jika dimasukkan nilai a adalah 23 dan b adalah

4 ....

A. 1

B. 2



C. 3

D. 4



E. 5



5. Jika pada baris keempat diganti menjadi

Jika a lebih kecil b maka lanjut ke langkah 4, jika tidak lanjut ke langkah 5

Dan nilai a yang dimasukkan adalah 8 dan b adalah 10, berapa outputnya?

A. -2

B. 0

C. 2

D. 8

E. Output tidak didefinisikan



Page 15 of 22

Lembar Kerja Siswa 2



1. Cobalah anda amati prosedur kerja cara melakukan konfigurasi Access Point TP Link

diatas dapatkah anda menjelaskan beberapa pertanyaan berikut ini :

a. Bahasa apa yang dipakai dalam petunjuk diatas ?

b. Apa alasan sebuah petunjuk dibuat menjadi beberapa bahasa ?

c. Mengapa dalam sebuah petunjuk kerja terkadang disertai dengan gambar ?

......................................................................................................................................

......................................................................................................................................

......................................................................................................................................

......................................................................................................................................

......................................................................................................................................

2. Menurut knuth (1973, hal. 4) dan juga horowitz dkk. (1999, hal. 1) ada lima ciri

penting yang harus dimiliki sebuah algoritma.

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

3. Buatlah sebuah algortima tentang “Merakit Sebuah Personal Komputer” dengan

menggunakan bahasa natural !

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

4. Manurut anda apakah pernyataan berikut ini merupakan algortima ? apa alasannya ?

a. Nyalakan Api kompor dan taruh alat penggorengan diatas kompor

b. Tuangkan minyak ke alat penggorengan dan tunggu beberapa saat

c. Masukkan bahan – bahan yang akan digoreng ke alat penggorengan

d. Gorenglah sampai tercium aroma yang harum

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................



Page 16 of 22



5. Perhatikan algoritma berikut ini

{program ini menghitung selisih volume dua balok}

Input: panjang, lebar, dan tinggi kedua balok dalam cm

Output: Selisih volume harus bilangan positif

Langkah-langkah

1) Baca panjang, lebar, dan tinggi balok pertama

2) Baca panjang, lebar, dan tinggi balok kedua

3) Hitung volume balok pertama dengan rumus panjang x lebar x tinggi

4) Hitung Volume balok kedua dengan rumus panjang x lebar x tinggi

5) Kurangi volume balok pertama dengan balok kedua

6) Tuliskan hasil pengurangan pada langkah 6

Jawab Pertanyaan berikut

A. Apakah algoritma tersebut sudah memenuhi kriteria jelas (define), tidak

ambigu?

B. Apakah algoritma di atas menghasilkan output yang benar? Jelaskan pendapat

kalian.

C. Apa saran kalian untuk memperbaiki algoritma tersebut?

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................



Page 17 of 22



A. Pembahasan Materi (pertemuan 3)

4. Menyajikan Algoritma dengan menggunakan flowchart

Setelah kita memahami tentang menyajikan algoritma dengan menggunakan bahasa

natural atau bahasa sehari – hari maka pembahasan kali ini kita akan mengajak anda

semua untuk menyajikan sebuah algortima dengan menggunakan flowchart.

Flowchart adalah bentuk sebuah diagram yang digunakan untuk menyajikan sebuah

algoritma dengan menggunakan simbol – simbol khusus sesuai dengan fungsi dan

tujuannya. Menyajikan algortima dengan menggunakan flowchart adalah yang paling

banyak digunakan oleh para programer, mahasiswa ataupun siswa SMK yang sedang

belajar mata pelajaran pemrograman dasar.

Seperti yang sudah dibahas diatas untuk menyajikan algoritma dengan menggunakan

flowchart harus menggunakan simbol – simbol khusus. Berikut adalah simbol – simbol

yang digunakan untuk menyajikan data dalam bentuk flowchart :



Sebagai contoh coba anda perhatikan penjabaran berikut ini.

➢ Untuk membuat suatu diagram alir, dapat menggunakan aplikasi Microsoft

Visio atau bahkan Microsoft Word (shapes) di lingkungan kerja Microsoft

Word.

➢ Atau dapat menggunakan aplikasi DIA yang diikutsertakan dalam folder

aplikasi pada dokumen ini.



Page 18 of 22



Flowchart Menghitung Luas Lingkaran Flowchart Menghitung Volume balok

5. Struktur Dasar Algortima

Utnuk membuat sebuah algoritma dengan mengguankan flowchart maka perlu

mengenal struktur dasar algortima. Algortima memiliki tiga buah struktur dasar antara

lain yaitu :

1) Skuensial (Urutan)

2) Seleksi

3) Pengulangan

Untuk lebih memahami ketiga struktur algortima diatas maka coba anda perhatikan

penjabaran berikut ini.

❖ Skuensial (urutan)

Pada struktur ini, langkah – langkah yang dilakukan dalam algortima diproses

secara berurutan.



Page 19 of 22



❖ Struktur Seleksi

Struktur seleksi menyatakan pemilihan langkah yang didasarkan oleh suatu

kondisi (pengambilan keputusan), sehingga diamana dalam sebuah algoritma

nanti akan melibatkan dua buah alternatif pilihan yang mana yang akan

dikerjakan tergantung dari kondisi yang ada.



❖ Struktur Pengulangan

Pengulangan menyatakan suatu tindakan atau langkah yang dijalankan

beberapa kali. Sebagai contoh anda akan membuat sebuah program yang akan

menampilkan tentag “Selamat datang di C++” sebanyak 10 kali. Dengan

menggunakan struktur sekuensial maka anda dapat menuliskan

“cout<<”Selamat datang di C++”” sebanyak 10 kali. Bagaimana jika anda akan

menampilkan tulisan yang sama sebanyak 1.000.000 kali. Tentunya hal ini

tidak akan efisien. Dengan menggunaka struktur pengulangan cukup anda

sekali saja menuliskan apa yang akan dikeluarkan dan dilakukan kondisi

pengulangan. Hal ini akan sangat efektif daripada anda harus menggunakan

struktur skuensial bukan.

Struktur perulangan sendiri dibagi menjadi 2 bagian yaitu :

1. While ... Do ... (Ulangi .... Selama)

2. Do ... While ... (Ulangi .... Sampai)

Untuk menggambarkan dengan menggunakan flowchart maka perhatikan

gamba dibawah ini. Kemudian apa yang membedakan keduanya ?. Secara garis

besar kedua stuktur perulangan diatas memiliki fungsi yang sama yaitu

melakukan perulangan. Namun yang memberdakan terletak pada pengecekan

sebuah kondisinya.



Page 20 of 22



Jika pada While ..... Do ... inputan yang anda masukkan akan dilakukan

pengecekan, apakah sesuai kondisi yang anda masukkan jika tidak maka proses

perulangan tidak akan pernah dijalankan. Jika inputan yang anda masukkan

bernilai benar sesuai dengan kondisi yang ditetapkan maka proses akan

dilanjutkan atau dikerjakan.



Jika pada perulangan Do .... While .... sebuah proses akan dijalankan minimal

satu kali baru selanjutnya kondisinya akan dilakukan pengecekan. Jika

pengecekan tidak sesuai dengan kondisi yang dimasukkan maka proses tidak

akan dijalankan sedangkan jika kondisi benar maka proses akan dijalankan.



Dari ketiga struktur diatas semuanya memiliki fungsi masing – masing dan biasanya

tidak digunakan secara terpisah. Mereka semua saling melengkapi sesuai dengan

kebutuhan dari program atau algoritma yang akan dibentuk.



B. Kesimpulan

Dari beberapa contoh dan pembahasan diatas maka buatlah sebuah kesimpulan dan

presentasikan kesimpulan tersebut di depan kelas !

...............................................................................................................................................

...............................................................................................................................................

...............................................................................................................................................

...............................................................................................................................................

...............................................................................................................................................



Page 21 of 22



...............................................................................................................................................

...............................................................................................................................................

...............................................................................................................................................

...............................................................................................................................................

...............................................................................................................................................

...............................................................................................................................................

C. Uji Kompetensi

Jawablah pertanyaan dibawah ini dengan sangat jelas !

1. Buatlah flowchart untuk menentukan:

a. Luas lingkaran

b. Volume balok

c. Luas dan keliling persegi panjang

d. Rata-rata dari 3 buah bilangan real

2. Diketahui dua buah gelas dimana gelas A berisi kopi dan Gelas B berisi Teh,

Bagaimana cara menukar isi kedua gelas tersebut ?

Lembar Kerja Siswa 3



1. Buatlah flowchart untuk menentukan pilihan dari sistem berikut:

Jika pilihan = 1, maka sistem akan mengerjakan bilangan pertama ditambah bilangan

kedua, jika pilihan = 2, maka sistem akan mengerjakan bilangan pertama dikurangi

bilangan kedua, jika pilihan = 3, maka sistem akan mengerjakan bilangan pertama dibagi

bilangan kedua, selain piliha tersebut, sistem akan EXIT.

.............................................................................................................................................

.............................................................................................................................................

.............................................................................................................................................

.............................................................................................................................................

.............................................................................................................................................



2. Buatlah flowchart untuk menentukan bonus pegawai, berdasarkan ketentuan yang

diberikan oleh bagian personalia dan keuangan sebagai berikut : Pegawai perusahaan

digolongkan menjadi dua golongan, yaitu staf dan non staf. Staf akan mendapatkan bonus

sebesar 1 juta rupiah dengan syarat bahwa ia telah bekerja paling tidak 5 tahun dan

umurnya sudah mencapai 50 tahun; staf yang bekerja kurang dari 5 tahun dan berapapun

umurnya, hanya mendapat bonus sebesar Rp. 500.000. Pegawai non staf yang telah bekerja

lebih dari 5 tahun akan mendapat bonus sebesar Rp. 400.000 jika berumur lebih dari 50

tahun sedangkan pegawai non staf yang berumur kurang dari 50 tahun hanya mendapat

bonus Rp. 250.000. Pegawai staf yang umurnya kurang dari 50 tahun akan mendapat bonus

Rp. 300.000



Page 22 of 22



.............................................................................................................................................

.............................................................................................................................................

.............................................................................................................................................

.............................................................................................................................................

.............................................................................................................................................

3. Buatlah sebuah algoritma dengan mengguankan flowchart untuk menentukan bilangan

terbesar dari dua bilangan X an Y.

.............................................................................................................................................

.............................................................................................................................................

.............................................................................................................................................

.............................................................................................................................................

.............................................................................................................................................

4. Buatlah sebuah algortima dengan menggunakan flowchart untuk menampilkan 4 buah

tulisan “Selamat Belajar ” .

.............................................................................................................................................

.............................................................................................................................................

.............................................................................................................................................

.............................................................................................................................................

.............................................................................................................................................

5. Buatlah sebuah algoritma dengan menggunakan flowchart untuk menghasilkan tampilan

berikut ini {1,4,9,16,25,36,49,64,81,100}.

.............................................................................................................................................

.............................................................................................................................................

.............................................................................................................................................

.............................................................................................................................................



3.2.MEMAHAMI PERANGKAT LUNAK BAHASA PMROGRAMAN

4.2MELAKUKAN INSTALASI PERANGKAT LUNAK BAHASA PEMROGRAMAN





Perangkat lunak bahasa pemrograman (language software) merupakan program yang digunakan untuk menerjemahkan perintah-perintah yang ditulis dalam bahasa program ke dalam bahasa mesin (machine languange), sehingga dapat diterima dan dimengerti oleh komputer. Apabila languange software tidak tersedia, maka pembuat program harus menulis programnya langsung dengan bahasa mesin yang berbentuk bilangan-bilangan binary. Suatu instruksi program yang ditulis dalam bahasa mesin dapat berbentuk seperti 000100110010. Tanpa mengetahui arti tertentu dari masing-masing bagian dari bilangan binary tersebut secara persis, maka akan sangat sulit untuk mengerti dengan benar maksud dari instruksi tersebut.

Instruksi yang berbentuk bilangan binary disebut dengan object code. Sedangkan kumpulan dari instruksi-instruksi yang membentuk suatu program dalam bahasa mesin disebut dengan object program. Tiap-tiap instruksi object code terdiri dari operation code (op code) dan open and. Penulisan program dengan bahasa mesin dirasakan terlalu sulit dan memakan banyak waktu, maka dikembangkan languange software sebagai alternatif penulisan program yang lebih mudah. Penerjemah bahasa pemrograman dibedakan menjadi 3 (tiga) macam, yaitu assembler, kompiler, dan interpreter.

Asembler adalah program yang digunakan untuk menerjemahkan kode sumber dalam bahasa rakitan (assembly) ke dalam bahasa mesin.
Kompiler adalah program penerjemah yang mengonversi semua kode sumber selain dalam bahasa rakitan menjadi kode objek. Hasil berupa kode objek inilah yang dapat dijalankan oleh komputer. Proses untuk melakukan penerjemahan ini biasa disebut kompilasi.
Intepreter adalah program yang menerjemahkan satu per satu instruksi dalam kode sumber kemudian menjalankan instruksi yang telah diterjemahkan tersebut.
Perangkat lunak bahasa pemrograman (language software) merupakan program yang digunakan untuk menerjemahkan perintah-perintah yang ditulis dalam bahasa program ke dalam bahasa mesin sehingga dapat diterima dan dimengerti oleh komputer. Pada dasarnya bahasa komputer dapat dibedakan menjadi empat macam, yaitu bahasa mesin dan bahasa assembly (kedua bahasa ini termasuk bahasa tingkat rendah/low level language), bahasa tingkat tinggi (high level language), dan bahasa generasi keempat.

1)Bahasa mesin
Bahasa mesin termasuk ke dalam bahasa tingkat rendah (low level language) karena sifat dari bahasa mesin lebih berorientasi pada mesin. Bahasa ini hanya akan dipahami oleh komputer itu sendiri. Bahasa ini berupa kode-kode yang terdiri dari sekumpulan angka yang ada di dalam komputer yang biasanya diwakili oleh kode angka 1 (satu) dan 0 (nol). Kode ini merupakan sinyal elektronik yang memberitahu komputer apa yang harus dikerjakan. Dalam penggunaannya biasanya intruksi dituliskan dalam bentuk bahasa pemrograman yang akan disampaikan ke kompiler, assembler, atau interpreter yang bertugas untuk menerjemahkan bahasa pemrograman tadi ke bahasa mesin.

Assembler merupakan sebuah program. Program ini mengambil informasi yang dituliskan oleh programmer dalam bahasa assembly dan menerjemahkannya ke sebuah program yang dapat dieksekusi komputer. output assembler harus diproses oleh linker untuk menghasilkan program akhir.

2)Bahasa assembly
Bahasa asembly adalah bahasa pemrograman yang menggunakan bahasa rakitan. Bahasa assembly kebanyakan digunakan untuk pengendalian hardware yang diwujudkan dalam kependekan kata-kata sebagai pengganti kode-kode biner, misalnya JNZ (jump non zero) yang artinya lompatlah jika tidak sama dengan nol. Kelanjutan dari bahasa assembly adalah sebuah program yang berguna untuk mengambil informasi yang dituliskan oleh seorang programmer dalam bahasa assembly serta menerjemahkannya ke dalam sebuah program yang dapat dieksekusi oleh komputer, program ini dinamakan assembler. Output assembler harus diproses oleh linker untuk menghasilkan program akhir.

3)Bahasa tingkat tinggi (high level languange)
Bahasa tingkat tinggi memiliki arti bahwa bahasa ini lebih mudah dimengerti oleh banyak orang karena memang dirancang untuk orang yang awam. Bahasa pemrograman yang termasuk dalam bahasa tingkat tinggi adalah sebagai berikut.

a) BASIC (Beginners All-purposes Symbolic Instruction Code)

Bahasa program ini dikembangkan pada tahun 1965 di Darmouth College. Penciptanya adalah John Kemeny dan Thomas Kurtz. BASIC dipergunakan dalam aplikasi matematika. Selain itu, BASIC juga digunakan dalam beberapa aplikasi lainnya seperti akuntasi, permainan, file simulasi, dan lain-lain.

Keunggulan BASIC terletak pada kemudahan dalam pemakaiannya, sedangkan kelemahannya adalah tidak mendukung operasi bilangan kompleks dan penanganan terhadap berkas sangat terbatas sehingga tidak cocok untuk aplikasi bisnis.

b) LOGO

Bahasa ini dikembangkan untuk pendidikan dan simulasi pengajaran pada anak-anak dalam menyelesaikan masalah dan melakukan pemrograman. Ditemukan pada tahun 1967 oleh Seymour Papert dengan menggunakan LISP, yaitu satu jenis bahasa pemrograman untuk kecerdasan buatan. Logo sangat mudah digunakan untuk membuat gambar, sehingga banyak digunakan dalam menghasilkan laporan-laporan bisnis dalam bentuk grafik.

c) COBOL (Common Business Oriented Language)

Program jenis ini sering digunakan dalam dunia bisnis dan komersial, mulai dikembangkan pada tahun 1959. Namun sampai saat ini, program ini masih banyak digunakan pada jenis komputer minicomputer dan mainframe. COBOL memiliki keunggulan-keunggulan sebagai berikut.

Memiliki kode untuk semua flatform yang sama, sehingga tidak tergantung pada mesin.
Menggunakan kata-kata bahasa Inggris, sehingga sangat mudah dipahami oleh programmer.
Penanganan masukan dan keluaran mudah dilakukan.
Penanganan terhadap berkas sudah tersedia dan bahkan mendukung berbagai macam tipe-tipe berkas seperti sekuensial dan indeks.
Kelemahan dari bahasa ini adalah struktur penulisan program yang sangat banyak dan sangat kaku sehingga membuat programmer menjadi lelah dan bosan.

d) PASCAL

Bahasa ini ditemukan oleh Nicklaus Wirth tahun 1971. Bahasa ini dibuat untuk pengajaran pemrograman. Bahasa ini sangat populer di kalangan mahasiswa ilmu komputer dan teknik. Pascal memiliki keunggulan dibandingkan Fortran maupun Basic, yaitu sangat mudah dipelajari serta memiliki dukungan fungsi-fungsi matematika yang sangat lengkap. Namun Pascal juga memiliki kelemahan, yaitu tidak dapat mendukung operasi bilangan kompleks dan tidak mendukung sarana aplikasi bisnis. Keberadaan Pascal dapat pula dijadikan bahasa dasar dalam pembuatan kode perangkat lunak Delphi (software untuk pengembangan program di lingkungan Windows). Pascal juga digunakan sebagai landasan pembuatan kode pada Kylix, yaitu software pengembang program di lingkungan Linux.

e) Fortran (Formula Translator)

Fortran merupakan bahasa tingkat tinggi yang pertama kali diciptakan. Bahasa ini mulai dikembangkan pada tahun 1956 oleh John Backus di IBM. Fortran digunakan dalam bidang aplikasi matematika, yaitu dalam hal perumusan dan perhitungan sehingga menjadi andalan keunggulan dari bahasa ini. Namun Fortran memiliki kelemahan, yaitu operasi masukan dan keluarannya sangat kaku dan sulit dipahami. Untuk membuat bahasa fortran, seorang programmer tidak harus mengetahui bahasa mesin, tetapi harus memahami tata bahasa dan peraturan bahasa fortran.

f) Algol (Algoritma Language)

Algol merupakan bahasa automatic yang cocok untuk memecahkan permasalahan yang membutuhkan perhitungan numerik untuk beberapa pengolahan logic.

g) PL/1 (Programming Language)

Programming language merupakan bahasa komputer yang dapat digunakan dalam segala bahasa. Pada kenyataannya bahasa ini sulit dipelajari dan hanya dapat digunakan pada mesin IBM.

h) RPG (Report Program Generation)

RPG adalah program untuk pengolahan laporan. Bahasa ini sangat populer di lingkungan minicomputer dan mainframe IBM. RPG diluncurkan pertama kali pada tahun 1964.

i) APL (Aritmathic Programming Language)

APL adalah bahasa komputer untuk memecahkan soal-soal matematika (ilmu hitung). Diperkenalkan dan diciptakan oleh Kenneth Iverson pada tahun 1962. Bahasa ini menggunakan keyboard khusus yang berisikan simbol-simbol yang kompleks yang memungkinkan untuk melakukan penyelesaian matematika yang kompleks.

4)Bahasa pemrograman generasi keempat
Bahasa pemrograman generasi keempat meliputi Microsoft Visual Basic, Visual J++, dan Visual C++ yang dikembangkan dari keluarga besar bahasa tingkat tinggi untuk memudahkan pemrograman.



3.3 MENERAPKAN ALUR PEMROGRAMAN DENGAN STRUKTUR BAHASA PEMROGRAMAN KOMPUTER

4.3 MENULIS KODE PEMROGRAMAN SESUAI DENGAN ATURAN DAN SINTAKS BAHASA PEMROGRAMAN

Bahasa Pemrograman Vs Bahasa Alami Secara konsep, pemrograman bisa dikaitkan (dianalogikan) dengan disiplin rekayasa dan bahasa (alami). Kaitan dengan bahasa ini karena:

· Konsep-konsep pemrograman adalah konsep-konsep bahasa pemrograman

· Konsep-konsep bahasa pemrograman dalam beberapa hal mirip dengan konsep-konsep bahasa alami. Yang dimaksud bahasa alami adalah bahasa yang diucapkan sehari-hari antar manusia, yang tidak perlu melibatkan komputer. Seperti bahasa Indonesia, bahasa Inggris, dan sebagainya. Berbekal pemahaman ini kita lihat hal berikut.



· Suatu kalimat dalam bahasa alami beranalogi dengan sebuah peryataan (statement) di bahasa pemrograman.

· Suatu kalimat di bahasa alami diakhiri dengan tanda baca. Sebuah statement di bahasa pemrograman juga diakhiri dengan tandabaca.

Tabulasi dibawah ini memperlihatkan kemiripan bahasa pemrograman dengan bahasa alami. Tabulasi berisi entri – entri yang dimulai dengan satuan yang lebih besar ke satuan yang lebih kecil. Kita mempelajari implementasi konsep-konsep pemrograman urutan yang hampir sama.

Analogi (perbandingan) bahasa alarm vs bahasa pemrograman

Bahasa Alami

Bahasa Pemrograman

Sebuah paragraf terdiri atas satu atau lebih kalimat.

Sebuah blok terdiri atas satu atau lebih statement.

Sebuah kalimat diakhiri oleh tanda baca.

Sebuah statement diakhiri oleh tandabaca.

Sebuah kalimat bisa terdiri atas kata benda abstrak, kata kerja, kata keadaan dan kata benda nyata.

Sebuah statement bisa terdiri atas ipe, operasi, nilai, dan objek.



 Penerjemah Bahasa Pemrograman

Untuk menterjemahkan bahasa pemrograman yang kita tulis maka diperlukan Compiler dan Interpreter.

Compiler adalah suatu program yang menterjemahkan bahasa program (source code) ke dalam bahasa objek (object code) secara keseluruhan program.

Interpreter berbeda dengan compiler, Interpreter menganalisis dan mengeksekusi setiap baris dari program tanpa melihat program secara keseluruhan.

Keuntungan dari Interpreter adalah dalam eksekusi yang bisa dilakukan dengan segera. Tanpa melalui tahap kompilasi, untuk alasan ini interpreter digunakan pada saat pembuatan program berskala besar.

Compiler memerlukan waktu untuk membuat suatu program yang dapat dieksekusi oleh komputer. Tetapi, program yang diproduksi oleh Compiler bisa berjalan lebih cepat dibandingkan dengan yang diproduksi oleh Interpreter, dan bersifat independen.

Tabel Perbedaan antara Compiler dan Interpreter.



Compiler

Interpreter

Menterjemahkan secara keseluruhan

Menterjemahkan intruksi per intruksi

Bila terjadi kesalahan kompilasi maka source program harus diperbaikai dan dikompilasi ulang

Bila terjadi kesalahan interpretasi dapat langsung diperbaiki

Dihasilkan object program

Tidak dihasilkan object program

Dihasilkan executable program

Tidak dihasilkan executable program

Proses pengerjaan program lebih cepat

Proses pengerjaan lebih lambat

Source program tidak di pergunakan, hanya bila untuk perbaikan saja

Source program terus dipergunakan

Keamanan dari program lebih terjamin

Keamanan dari program kurang terjamin


3.4 MENERAPKAN PENGGUNAAN TIPE DATA, VARIABEL, KONSTANTA, OPERATOR, DAN EKSPRESI
4.4 MEMBUAT KODE PROGRAM DENGAN TIPE DATA, VARIABEL, KONSTANTA, OPERATOR, DAN EKSPRESI

VARIABEL
Deklarasi variabel adalah tanda pengenal dalam Delphi yang mempunyai nilai yang selalu berubah selama proses berjalan. Devinisi variabel diawali dengan kata baku Var diikuti dengan kumpulan identifier yang diikuti dengan tipe data yang dibutuhkan.
Variabel berfungsi untuk menyimpan data.
  Pendeklarasian variabel sebagai berikut:
  Var nama_variabel : tipe_variabel
  Contoh:
  Var a : integer;
Aturan yang harus diikuti dalam menuliskan nama variabel:

}Panjang penulisan nama variabel maksimum terdiri dari 63 karakter. Jika melebihi ketentuan maka kompiler akan mengabaikan penulisan karakter berikutnya.

}Penulisan nama variabel hanya terdiri dari huruf, angka, garis bawah.

}Penulisan nama variabel tidak boleh diawali dengan angka, hanya dengan huruf atau garis bawah.

}Nama variabel tidak boleh merupakan sebuah kata kunci milik Delphi seperti case, if, while, end, dan lain-lain.

}Nama variabel tidak boleh mengandung karakter yang dipakai untuk operator, seperti (, ), +, -, *, /, <, >, :, ;, dan lain-lain.

 
KONSTANTA
Konstanta merupakan suatu nilai yang bersifat tetap. Jenis data untuk suatu nilai konstanta dapat berupa data angka (numeric), teks (string), true, false, dan nil. Anda dapat menggunakan suatu nama untuk mewakili konstanta.
Definisi Konstanta diawali dengan kata baku Const diikuti dengan kumpulan identifier yang diberi sebuah nilai.
 
Contoh:
  Const
  Angka = 1;
  Teks = ‘Satu’;
OPERATOR

Delphi menyediakan berbagai operator dengan urutan atau derajat proses pelaksanaan yang berbeda untuk beberapa operator dengan urutan atau derajat proses pelaksanaan yang berbeda untuk beberapa operator yang dilibatkan pada suatu proses.

Tabel derajat proses pengolahan data yang dimiliki Delphi:

1.Operator Assignment

  Assignment atau operator fungsi dituliskan dengan bentuk ‘:=‘ (titik dua sama dengan) dan berfungsi untuk memasukkan suatu nilai data ke dalam sebuah variabel, dengan bentuk penulisan:

  Nama Variabel := Ekspresi;

  Contoh:

  Harga  := 500;

  Jumlah  := 20;

  Total   := Harga * Jumlah;

 
2.Operator Aritmatika

  Berikut ini adalah tabel operator aritmatika yang dapat digunakan untuk mendukung operasi aritmatika:

Untuk operasi perpangkatan dapat menggunakan rumus sebagai berikut:

  ab = exp(b * In(a))

Contoh:

  angka1 := 5;

  angka2 := 2;

  Hasil1 := exp(angka1*In(angka2)); {hasil 25}

  Hasil2 := exp(angka2*In(angka1)); {hasil 32}

 
3.Operator Relasi

  Opertor relasi berfungsi untuk membandingkan suatu nilai (ekspresi) dengan nilai lain yang akan menghasilkan suatu nilai logika (boolean) yaitu True atau False.

  Kedua data nilai yang dibandingkan tersebut harus memiliki tipe data yang sama. Tabel operator relasi yang disediakan Delphi:

 
Contoh:

  X := 21+9>20; {menghasilkan true}

  X := 21-9>20; {menghasilkan false}

4.Operator Logika

  Operator logika dibagi menjadi dua kelompok.

a.Operator bit berhubungan dengan pergeseran atau perbandingan pada level bit.


b.Operator Boolean, digunakan untuk menyatakan satu atau lebih data atau ekspresi logika yang akan menghasilkan nilai logika (boolean) yang baru True atau False.


Operator logika And hanya akan menghasilkan nilai True jika lebih dari satu ekspresi yang menggunakan operator And bernilai True. Apabila ada satu ekspresi atau lebih bernilai False maka operator logika And akan menghasilkan nilai False.

Contoh:

   X:= (21>9) And (19<71 span="">hasil X = True}

 
Operator logika Or akan menghasilkan nilai True jika salah satu atau seluruh ekspresi yang menggunakan operator Or bernilai True. Operator Or hanya akan bernilai False jika semua ekspresi yang menggunakan operator Or bernilai False.

Contoh:

   X:= (21>9) Or (19<71 hasil="" x="True}</span">

   X:= (21<9 or="">71); {hasil X = False}

Operator logika Not merupakan operator yang menyatakan kondisi kebalikan dari suatu ekspresi.

Contoh:

   X:= Not(21>9); {hasil X = False}
Operator logika Xor akan menghasilkan nilai True jika ekspresi yang terletak di kiri operator Xor berbeda dengan ekspresi sebelah kanannya. Operator Xor hampir memiliki fungsi yang sama dengan operator tidak sama dengan.
Contoh:

   X:= (9<21 hasil="" x="False}</span" xor="">

   X:= (9<21 or="">71); {hasil X = True}

 
TIPE DATA
Beberapa hal yang perlu diperhatikan dalam menentukan tipe data:
1.Penggunaan memori
  Masing-masing tipe data memiliki perbedaan dalam penggunaan memori.
2.Ketelitian penghitungan
  Walaupun penghematan memori sangat penting untuk diperhatikan, namun kebenaran dalam hal ketelitian penghitungan jauh lebih penting.
1.Tipe Integer
  Tipe data integer digunakan untuk bilangan bulat atau bilangan yang tidak memiliki angka desimal. Tipe data integer memiliki beberapa tipe yang tergantung pada rentang nilai dan ukuran penggunaan memori.
 
2.Tipe Real

  Tipe data real digunakan untuk bilangan yang memiliki desimal. Tipe data real memiliki beberapa tipe yang tergantung pada rentang nilai dan ukuran penggunaan memori.

  
Keuntungan dari penggunaan tipe data Currency adalah:

}Tipe data currency mempunyai ketelitian yang lebih tinggi dalam menangani bilangan yang cukup besar.

}Tipe data currency dipakai dalam CurrencyField dan komponen lain dan kompatibel dengan tipe database yang menyatakan uang.

3.Tipe Boolean

Tipe data boolean digunakan untuk data logika yang hanya berisi True (Benar) dan False (Salah). Tipe data boolean yang dapat digunakan antara lain:

  
Dari beberapa tipe data yang ada disarankan untuk menggunakan tipe boolean, yang lain hanya digunakan untuk menjaga kompabilitas dengan program lain yang menggunakan tipe yang sama.

Variabel tipe data boolean dapat menerima penggunaan operator logika AND, OR dan NOT

4.Tipe Character

Tipe data character digunakan untuk menyatakan karakter satu huruf dalam bentuk tiga tipe, yaitu:
5.Tipe String

  Tipe data string digunakan untuk menyatakan sederetan karakter, misalnya nama, alamat, kota dan lain-lain.

  Adapun tipe-tipe dari data string, yaitu:

 
Tipe ShortString berfungsi untuk menyesuaikan kompatibilitas dengan versi sebelumnya, sedangkan AnsiString dan WideString dapat digunakan untuk menyimpan karakter Unicode. Variabel dengan tipe data string mampu menangani data string yang hampir tidak terbatas (3 GB).
6.Tipe Array

  Array adalah suatu variabel tunggal yang digunakan untuk menyimpan sekumpulan data yang sejenis. Anda dapat memanipulasi, menyalin array hanya dengan sebuah nama. Dalam tipe data array menggunakan nomor elemen di kanan nama array.

  Contoh:

  Var

  Hari : aray[1..7] of String;

  Begin

  Hari[1] := ‘Senin’;

  ……………………

  ……………………

  Hari[7] := ‘Minggu’;

  End;

 
7.Tipe Record

  Tipe data record digunakan untuk menyimpan sekumpulan data yang mungkin mempunyai tipe yang berbeda tetapi saling berhubungan.

  Elemen-elemen dalam array mempunyai tipe yang sama, tetapi elemen-elemen record dapat mempunyai tipe yang berbeda.

 
Contoh:

  Type

  Rbarang=record

  Kode   : String[4];

  Nama  : String{20];

  Harga: Integer;

  End;

  Var

  Barang : Rbarang;

  Begin

  Barang.Kode   := ‘TV01’;

  Barang.Nama  := ‘TELEVISI 20’;

  Barang.Harga  := ‘1400000’;
8.Tipe Terbilang dan Subrange

  Tipe data terbilang dan subrange digunakan untuk menyatakan data berurutan yang bertipe sama. Tipe Subrange adalah range dari nilai-nilai tertentu. Subrange harus mempunyai nilai terkecil dan nilai terbesar.

  Contoh penggunaan data terbilang:

  type

  Hari= (Senin,Selasa,Rabu,Kamis,Jumat,Sabtu,Minggu);

  Var

  NamaHari : Hari;

  Contoh Penggunaan tipe data subrange: 

  Type

  Hari1 = ‘Selasa’..’Jumat’;

  Huruf = ‘A’..’E’;

  Var

  Nil_Hari1 : Hari1;

  Nil_Huruf : Huruf;

 
9.Procedure Increment dan Decrement

  Procedure Increment dan Decrement menghasilkan program yang sudah dioptimalkan untuk proses penambahan dan pengurangan pada variabel integer.

  Contoh perintah berikut akan menambah dan mengurangi variabel dengan nilai 5.

  Inc(Variabel,5);

  Dec(Variabel,5);
10.Tipe Varian

  Tipe Varian adalah data yang tipenya tidak dapat ditentukan pada saat kompilasi, karena tipe varian dapat berubah-ubah saat aplikasi dijalankan.

  Contoh:

  Var

  V1,V2,V3 : variant;

   Begin

  V1 := ‘1000’;  {Varian berisi data string}

  V2 := ‘2000’;  {Varian berisi data string}

  V3 := 3000  {Varian berisi data integer}

  V1 := V1+V2+V3;

  End;

 

 
11.Tipe Himpunan

  Tipe himpunan atau set digunakan untuk menyimpan kumpulan nilai atau dapat dikatakan sebagai anggota himpunan yang bertipe sama.

  Contoh:

  Type

  HimpAngka = set of integer

  Mendeklarasikan tipe HimpAngka sebagai himpunan dari karakter

  Var

  Angka : HimpAngka;

  Pemberian nilai pada tipe himpunan dilakukan dengan menuliskan anggota himpunan dalam kurung siku.

  Angka := [1,2,3,4,5];

  Pada contoh diatas, variabel angka memiliki 5 anggota 

3.5 MENERAPKAN OPERASI ARITMATIKA DAN LOGIKA
4.5 MEMBUAT KODE PROGRAM DENGAN OPERASI ARITMATIKA DAN LOGIKA

 
Operator adalah simbol khusus yang biasa dilibatkan dalam pembuatan program untuk melakukan suatu operasi matematika maupun manipulasi logika.
Pada dasarnya, ada tiga jenis operator dalam pemrograman C++:
  • Operator Unary - operator yang dikenakan untuk satu buah nilai (operand).
  • Operator Binary - operator yang dikenakan untuk dua buah nilai (operand).
  • Operator Ternary - operator yang dikenakan untuk tiga buah nilai (operand)

Dengan catatan jika kita hanya melihat dari jumlah operand.
Berikut ini adalah contohnya:

#1 Assignment Operators

Yang pertama kita akan mengenal Assignment Operator.
Sesuai namanya, operator ini berfungsi untuk memberikan nilai kepada variabel. Kita akan menggunakan = ( tanda sama dengan ) untuk memberi nilai.
Berikut cara penggunaanya:

nama = "Damas";
umur = 22;
Berikut contoh program sederha penggunaan assignment operator pada C++:

#include 
using namespace std;

int main ()
{
  int a, b;         // a:?,  b:?
  a = 10;           // a:10, b:?
  b = 4;            // a:10, b:4
  a = b;            // a:4,  b:4
  b = 7;            // a:4,  b:7

  cout << "a:";
  cout << a;
  cout << " b:";
  cout << b;
}
Lalu outputnya adalah:

a:4 b:7
Mengapa hal itu bisa terjadi demikian?
Jika kita perhatkan, kita mendeklarasikan variabel a dan b. Lalu kita memberikan nilai 10 untuk a dan 4 untuk b pada awalnya. Lalu kita memberikan nilai b terhadap variabel a.
Perhatikan bagaimana sebuah variabel tidak terpengaruh oleh modifikasi akhir dari b, meskipun kita menyatakan a = b sebelumnya, anda pasti paham maksud saya.
Karena sebuah operasi akan selalu berlangsung dari kanan ke kiri.
Dan variabel hanya akan menyimpan data atau nilai terakhir yang diberikan.
(Silahkan baca kembali: Belajar Algoritma Pemrograman)

#2 Arithmetic Operators

Yang kedua adalah operator aritmetika.
Operator ini digunakan untuk melakukan sebuah opearasi penghitungan atau aritmatika dalam bahasa pemrograman. Tugasnya untuk memecahkan masalah matematika.
Operator aritmatika yang sering digunakan dalam C++ adalah:
  • + untuk penjumlahan
  • - untuk pengurangan
  • * untuk perkalian
  • / untuk pembagian
  • % untuk sisa bagi (modulo)
Berikut adalah contoh penggunaanya:

x = 11 % 3;
Dan tentunya hasil opeasi diatas dapat ditebak, ya hasilnya adalah 2, karena disini kita mencari sisa bagi dimana hasil bagi 11 dan 3 = 3, sedangkan sisa baginya adalah 2.

#3 Compound Assignment

Operator ini memodifikasi nilai variabel saat ini dengan melakukan operasi di atasnya.
Operator Keterangan Contoh Penggunaanya
+= Penjumlahan z += x sama dengan, z = z + x
-= Pengurangan z -= x sama dengan, z = z - x
*= Perkalian z *= x sama dengan, z = z * x
/= Pembagian z /= x sama dengan, z = z / x
>>= Right shift AND z >>= 2 sama dengan, z = z >> 2
<<= Left shift AND z <<= 2 sama dengan, z = z << 2
&= Bitwise AND z &= 2 sama dengan, z = z & 2
^= Bitwise exclusive OR z ^= 2 sama dengan, z = z ^ 2
Berikut contoh program c++ menggunakan Compound Assignment.

#include 
using namespace std;

int main ()
{
  int a, b=3;
  a = b;
  a += 2;  // sama dengan a = a + 2
  cout << a;
}
Intinya: “menggunakan dua operand dan memberikan hasilnya ke operand kiri”.

#4 Increment and Decrement Operators

Kedua operator ini sangatlah penting:
Operator Increment (++) dan operator decrement (–) digunakan untuk meningkatkan atau mengurangi satu nilai yang tersimpan dalam sebuah variabel.
Maksudnya seperti ini:

x = x + 1 ;
y = y - 1 ;
Jika sebelumnya anda menulis kode seperti datas..
..maka akan sama hasilnya dengan kode berikut:

++ x ;
-- y ;

//atau

x ++ ;
y -- ;
TIPS: Operator Increment adalah operator yang digunakan untuk menaikan nilai variabel sebesar 1, sedangkan decrement digunakan untuk menurunkan nilai sebesar 1.
Berikut contoh program Increment dalam C++:

#include 
using namespace std;

int main ()
{
   int a, b;
   a = 3;
   b = ++a;

   cout << "a:" << a;
   cout << " b:" << b;
}
Jika anda paham konsepnya anda pasti tahu hasil akhir dari variabel a akan bernilai 4, dan b bernilai 4 karena nilai dari b adalah nilai a yang telah ditingkatkan.
Kemudian nantinya anda akan mendengar istilah:
  • Pre Increment (++c)
  • dan Post Increment (c++).
Yang membedakannya adalah:
Jika Pre-increment akan menenambahkan nilai 1 sebelum operasi lain dijalankan, maka Post-increment akan menambahkan 1 nilai sesudah proses lain dijalankan.
Silahkan coba kode program berikut ini:

#include 

using namespace std;

int main(){
     // Mendeklarasikan Variabel KD
     int KD;

     // Mengisi nilai kedalam Variabel KD
     // dengan nilai 10
     KD = 10;

     // Melakukan Pre-Increment
     cout<<"Nilai KD awal : "<<KD<<endl;
     cout<<"Nilai ++MD    : "<<++KD<<endl;
     cout<<"Nilai KD      : "<<KD<<endl;

     // Mengubah nilai yang terdapat dalam variabel KD
     // dengan nilai 20
     KD = 20;

     // Melakukan Post-Increment
     cout<<"\nNilai KD awal : "<<KD<<endl;
     cout<<"Nilai KD++    : "<<KD++<<endl;
     cout<<"Nilai KD      : "<<KD<<endl;

     return 0;
}
Anda akan sering menemukannya operator tersebut dalam program looping.

#5 Relational and Comparison Operators

Operator selanjutnya adalah operator relasi - operator ini akan banyak kita gunakan dalam suatu statement bersyarat yang selalu menghasilkan nilai true atau false.
Nantinya kita akan sering menggunakan operator ini untuk menentukan kondisi.
Operator Keterangan
== Sama dengan
!= Tidak sama dengan
> Lebih dari
< Kurang dari
>= Lebih dari atau sama dengan
<= Kurang dari atau sama dengan
Operator ini digunakan untuk menguji hubungan antara nilai dan atau variabel.
Berikut contoh penggunaanya dalam program:

#include 
using namespace std;

void main() {
    bool nilai;
    nilai = 3 > 2 ; // hasil ungkapan : benar
    cout << "Nilai = " << nilai;
    nilai = 2 > 3 ; // hasil ungkapan : salah
    cout << "Nilai = " << nilai;
}
Dan berikut adalah hasil akhirnya:
  • Nilai = 1
  • Nilai = 0

#6 Logical Operators

Operator Logika adalah operator yang digunakan untuk membandingkan dua nilai variabel atau lebih. Hasil dari operasi ini adalah nilai boolean true atau false.
Operator Keterangan
&& AND - Jika semua operand bernilai benar (TRUE) maka kondisi bernilai benar.
|| OR - Jika salah satu operand bernilai benar (TRUE) maka kondisi bernilai benar.
! NOT - Digunakan untuk membalik kondisi. Jika kondisi benar (TRUE) maka akan berubah menjadi salah (FALSE), begitu pula sebaliknya.
Berikut adalah contoh penggunaanya:

( (5 == 5) && (3 > 6) )  // Hasil = false, karena ( true && false )
( (5 == 5) || (3 > 6) )  // Hasil = true, karena ( true || false )

#7 Conditional Ternary Operator

Pada dasarnya, operator kondisi merupakan penyederhanaan dari bentuk if..else yang setiap blok dari if dan else hanya terdiri dari satu statement/perintah.
Struktur penulisan operator kondisi:

(ekspresi) ? (jika benar) : (jika salah);
Berikut contoh dalam program c++:

#include 
using namespace std;

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

  a=2;
  b=7;
  c = (a>b) ? a : b;

  cout << c;
}

#8 Comma Operator

Operator koma (,) memiliki beberapa fungsi, yaitu:
  • Untuk memisahkan deretan deklarasi variabel
  • Untuk memisahkan argumen fungsi
  • menyatukan dua ekspresi menjadi sebuah pernyataan, dan
  • memungkinkan pemberian lebih dari satu ekspresi pada inisialisasi nilai awal.
Berikut contoh program dengan operator koma:

#include 
using namespace std;

int main ()
{
   int a,b;
   a = (b=3, b+2);

   cout << a;
}
Agak rumit namun penjelasanya seperti ini: Pertama variabel b akan diberi nilai 3, kemudian nilai b (3) akan dijumlahkan dengan 2 sehingga variabel a bernilai 5.

#9 Bitwise Operators

Operator bitwise adalah operator yang digunakan untuk memanipulasi bit-bit nilai data yang ada di memori. Operator ini hanya dapat digunakan untuk tipe data:
  • char
  • int
  • long int
Untuk operator bitwise dalam bentuk bit, dilakukan dalam bit per bit (binary).

&  AND  Bitwise AND
|  OR  Bitwise inclusive OR
^  NOT  Unary complement (bit inversion)
<<  SHL  Shift bits left
>>  SHR  Shift bits right
Tabel kebenanaran:
p q p & q p | q p ^ q
0 0 0 0 0
0 1 0 1 1
1 1 1 1 0
1 0 0 1 1
Jika kita asumsikan memiliki nilai A = 63 dan B = 13, mari kita ubah menjadi biner:

A = 0011 1100

B = 0000 1101
Sehingga akan menjadi:

A&B = 0000 1100

A|B = 0011 1101

A^B = 0011 0001

~A  = 1100 0011

#10 Operator Lainnya

Berikut adalah operator lainnya yang didukung oleh bahasa C++:
Operator Keterangan
sizeof Untuk mengembalikan nilai dari ukuran variabel. Contoh sizeof(a), dimana ‘a’ adalah integer maka akan mengembalikan nilai 4
. (dot) and -> (arrow) Operator member yang digunakan untuk mereferensikan member class, structures, dll.
Cast Untuk mengkonversi suatu data ke tipe data lain. Contohnya int(2.2000) akan menjadi 2
* Digunakan sebagai operator pointer
Dan berikut adalah daftar operator berdasarkan kategorinya:
Category Operator Associativity
Postfix () [] -> . ++ - - Left to right
Unary + - ! ~ ++ - - (type)* & sizeof Right to left
Multiplicative * / % Left to right
Additive + - Left to right
Shift << >> Left to right
Relational < <= > >= Left to right
Equality == != Left to right
Bitwise AND & Left to right
Bitwise XOR ^ Left to right
Bitwise OR | Left to right
Logical AND && Left to right
Logical OR || Left to right
Conditional ?: Right to left
Assignment = += -= *= /= %=>>= <<= &= ^= |= Right to left
Comma , Left to right


3.6 MENERAPKAN STRUKTUR KONTROL PERCABANGAN DALAM BAHASA PEMROGRAMAN
4.6  MEMBUAT KODE PROGRAM STRUKTUR KONTROL PERCABANGAN


Struktur Kontrol Percabangan pada Bahasa Pemrograman C++

Selamat datang di KokoDodi.blogspot.com. Kali ini saya akan membahas tentang materi bahasa pemrograman C++ yaitu tentang Struktur Kontrol Percabangan. Struktur Kontrol Pecabangan merupakan suatu algoritma program memiliki suatu kondisi yang dimana kondisi tersebutlah yang akan menentukan perintah-perintah yang akan dijalankan oleh suatu program. Perintah dalam suatu kondisi akan dijalankan ketika kondisi tersebut bernilai benar, dan sebaliknya apabila kondisi bernilai salah maka perintah didalamnya tidak akan dijalankan.

Pembahasan dan Contoh Struktur Kontrol Percabangan pada Bahasa Pemrograman C++

Ada beberapa macam Struktur Kontol Pecabangan yang ada didalam C++, yaitu :

Pecabangan if

Pecabangan if merupakan struktur kontrol pecabangan yang memiliki sebuah kondisi. Bentuk umum penulisannya adalah sebagai berikut.
if(kondisi){
 statement;
}
Contoh Penerapannya dalam kode program adalah sebagai berikut :
#include 
#include 
main(){
 int a = 10;
 int b = 7;
 if(a>=b){
  a = 7;
  b = 10;
 }
 cout<<"Nilai A : "<


Percabangan if-else

Percabangan if-else merupakan struktur kontrol pecabangan yang memiliki sebuah kondisi yang apabila kondisi tersebut benar maka perintah yang didalamnya akan dijalankan dan apabila kondisinya salah maka ada perintah lainnya yang akan dijalankan oleh program. Bentuk umum penulisannya adalah sebagai berikut.
if(kondisi){
 statement;
}
else{
 statement;
}
Contoh Penerapannya dalam kode program adalah sebagai berikut :
#include 
#include 
main(){
 int x;
 int angka = 10;
 cout<<"Angka 1 - 10"<>x;
 if(x==angka){
  cout<<"Tebakan anda benar"<


Percabangan if-else if-else

Percabangan if-else if-else merupakan struktur kontrol pecabangan yang memiliki banyak kondisi. Bentuk umum penulisannya adalah sebagai berikut.
if(kondisi1){
 statement;
}
else if(kondisi2){
 statement;
}
else{
 statement;
}
Contoh Penerapannya dalam kode program adalah sebagai berikut :
#include 
#include 
main(){
 int x;
 int angka = 6;
 cout<<"Angka 1 - 10"<>x;
 if(x==angka){
  cout<<"Tebakan anda benar"<angka){
  cout<<"Tebakan anda terlalu besar";
 }
 else{
  cout<<"Tebakan anda terlalu kecil";
 }
 getch();
}

Percabangan switch

Percabangan switch merupakan struktur kontrol pecabangan yang juga memiliki banyak kondisi, akan tetapi kondisi dalam percabangan switch ini bertipe numerik. Default berfungsi untuk menjalankan perintah default/umum/dasar apabila kondisi tidak sesuai dengan nilai case yang ada. Bentuk umum penulisannya adalah sebagai berikut.
switch(kondisi){
 case konstanta_1:
 statement;
 break;
 case konstanta_2:
 statement;
 break;
 default:
 statement;
}
Contoh Penerapannya dalam kode program adalah sebagai berikut :
#include 
#include 
main(){
 int nilai;
 cout<<"Masukan Nilai anda 0 - 10 : ";cin>>nilai;
 cout<<"Anda masuk kategori ";
 switch(nilai){
  case 10:
  case 9:
  cout<<"A";
  break;
  case 8:
  case 7:
  cout<<"B";
  break;
  case 6:
  case 5:
  cout<<"C";
  break;
  case 4:
  case 3:
  case 2:
  case 1:
  case 0:
  cout<<"D";
  break;
  default:
  cout<<"nilai anda tidak masuk kategori!";
 }
 getch();
} 
 
 
3.7 MENERAPKAN STRUKTUR KONTROL PERULANGAN DALAM BAHASA PEMROGRAMAN
4.7 MEMBUAT KODE PROGRAM STRUKTUR KONTROL PERULANGAN
 
 

Struktur Kontrol Perulangan pada Bahasa Pemrograman C++

  Pada kesempatan kali ini saya akan membahas tentang Struktur Kontrol Perulangan pada BahasaPemrograman C++. Pada umumnya Perulangan pada C++ sama halnya dengan Perulangan bahasa pemrograman lainnya. Struktur Kontrol Perulangan digunakan apabila ada suatu fungsi dari program akan dijalankan secara berulang-ulang. Contohnya apabila anda ingin menampilkan nama anda sebanyak 100 kali, tentunya akan sangat lama apabila anda menuliskan kode programnya secara manual. Dengan Struktur Kontrol Perulangan. kita dapat menampilkan nama anda sebanyak 100 kali dengan hanya beberapa baris program yang sederhana.
Pembahasan dan Contoh Struktur Kontrol Perulangan pada Bahasa Pemrograman C++

Dalam bahasa C++ dikenal beberapa macam Struktur Kontrol Perilangan, yaitu :

Perulangan For

Perulangan For merupakan struktur kontrol perulangan yang menjalankan satu atau lebih perintah dengan jumlah perulangan yang sudah ditentukan pada proses inisialisasi kondisi. Bentuk umum penulisannya adalah sebagai berikut.
for(kondisi){
 Statement;
}
Contoh Penerapannya dalam kode program adalah sebagai berikut :
#include 
#include 
main(){
 int x;
 for(x=0;x<10 aku="" c="" cout="" endl="" getch="" pre="" suka="" x="">


Perulangan While

Perulangan while merupakan struktur kontrol perulangan yang akan melakukan pengulangan selama kondisi yang dihasilkan dalam perulangan tersebut masih bernilai benar. Bentuk umum penulisannya adalah sebagai berikut :
Deklarasi;
while(kondisi){
 Statement;
}
Contoh Penerapannya dalam kode program adalah sebagai berikut :
#include 
#include 
main(){
 int x = 5;
 while(x>0){
  cout<


Perulangan Do-While

Perulangan do-while merupakan struktur kontrol perulangan yang menjalankan perintah yang ada didalamnya terlebih dahulu dan melihat kondisi perulangan setelah perintah tersebut selesai dijalankan. Dengan kata lain walaupun kondisinya bernilai salah, minimal perintah sudah dijalankan sebanyak satu kali. Bentuk umum penulisannya sebagai berikut :
inisialisasi;
do
 {
  Statement;
 }while(kondisi);
Contoh Penerapannya dalam kode program adalah sebagai berikut :
#include 
#include 
main(){
 char x = 'A';
 cout<<"Abjad : "<


Perulangan Goto

Perulangan goto merupakan struktur kontrol perulangan yang memiliki label. Perintah akan mengalami pengulangan apabila ada perintah untuk kembali atau menuju kesuatu label. Label disini merupakan suatu pengenal (identifier). Contoh Penerapannya dalam kode program adalah sebagai berikut :
#include 
#include 
main(){
 int angka;
 char t;
 atas:
 cout<<"Masukan angka : ";cin>>angka;
 cout<<" > "<>t;
 if(t=='y' ||t=='Y'){
  goto atas;
 }
 else{
  goto bawah;
 }
 getch();
 bawah:
}
 

Tidak ada komentar:

Posting Komentar

WELCOME TO MY BLOG 내 블로그에 오신 것을 환영합니다.  MOHON MAAF ATAS KEKURANGANNYA 결점을 핑계 해주세요. (Sorry for the shortcomings) SEMOGA ME...