Assalamu'alaikum ..
Berikut saya akan share soal dan jawaban Algoritma dan Pemograman .
1.Apa defnisi algoritma dan contohnya
!
Jawab :
(Algoritma
adalah urutan langkah)langkah logis penyelesaian masalah yang disusun secara sistematis dan
logis*. kata
logis merupakan kata kunci dalam algoritma. langkah-langkah dalam
algoritma harus logis dan harus dapat ditentukan bernilai salah atau benar. Dalam
beberapa konteks- algoritma adalah spesifikasi urutan langkah untuk melakukan
pekerjaan tertentu. ertimbangan dalam pemilihan algoritma adalah- pertama-
algoritma haruslah benar. Artinya algoritma akan memberikan keluaran yang dikehendaki dari sejumlah masukan yang
diberikan. Tidak peduli sebagus apapun algoritma- kalau memberikan keluaran
yang salah pastilah algoritma tersebut
bukanlah algoritma yang baik.
Untuk contoh algoritma dalam
matematika seperti di bawah ini:
Algoritma untuk menghitung nilai y
dari persamaan y = 3x + 8
Algoritmanya adalah:
- · Mulai
- · Tentukan nilai x
- · Hitung nilai y = 3x + 8
- · Cetak nilai x dan y
- · Selesai.
2. Apa definisi psedocode dan
contohnya !
Jawab :
Pseudo-code
adalah kode atau tanda yang menyerupai (pseudo) atau merupakan penjelasan cara
menyelesaikan suatu
masalah. Pseudo-code sering digunakan oleh seseorang untuk menuliskan algoritma dari suatu permasalahan.
Pseudo-code berisikan langkah-langkah untuk menyelesaikansuatu permasalahan
[hampir sama dengan algoritma], hanya saja bentuknya sedikit berbeda dari
algoritma .
Contohnya :
Pseudocode menghitung luas persegi
panjang
{
double
luas
double
panjang
double
lebar
panjang
= 10.5
lebar
= 2
luas
= panjang * lebar
print
Luas Persegi Panjang = Luas
}
3. Apa definisi flowchart dan contohnya !
Jawab :
Flowchart adalah representasi grafik dari langkah-langkah yang harus diikuti dalam menyelesaikansuatu permasalahan yang terdiri atas sekumpulan simbol, dimana masing-masing symbol merepresentasikan suatu kegiatan tertentu. Flowchart diawali dengan penerimaan input,pemrosesan input, dan diakhiri dengan penampilan output.Simbol-simbol Flowchart :
Contohnya :
4. Jelaskan dengan
contoh kasus algoritma yang memiliki struktur runtunan !
Jawab :
Dibaca waktu tempuh seorang pelari marathon dalam jam-menit-detik (hh:mm:ss). Diminta mengkonversi waktu tempuh tersebut ke dalam detik. Tuliskan algoritmanya.
Ingatlah
1 menit = 60 detik
1 jam = 3600 detik
Misalnya waktu tempuh seorang pelari marathon adalah 1 jam, 5 menit, 40 detik. Dalam detik, waktu tempuh seluruhnya adalah ( 1 x 3600 ) + ( 5 x 60 ) + 40 = 3940 detik.
Penyelesaian :
Algoritma KONVERSI_JAM_KE_DETIK
{ dibaca jam-menit-detik (hh:mm:ss). Nilai jam-menit-detik dikonversi ke dalam detik, lalu ditampilkan ke piranti keluaran }
DEKLARASI
Type jam : record <hh : integer {0..23}, {jam}
mm : integer {0..59}, {menit}
ss : integer {0..59}, {detik}
>
J : jam
TotalDetik : integer
DESKRIPSI
read(J.hh,J.mm,J.ss))
TotalDetik ← (J.hh*3600) + (J.mm*60) + J.ss
write(TotalDetik)
Jika anda mentranslasikan algoritma KONVERSI_JAM_KE_DETIK ke dalam bahasa pascal, anda harus memperhatikan tipe bilangan bulat yang digunakan. Karena ranah nilai tipe integer terbatas, maka ada kemungkinan hasil pengubahan jam-menit-detik ke total detik bernilai negatif, sebab nilai (J.hh*3600) + (J.mm*60) + J.ss berada di luar rentang tipe integer. Tipe longint yang mempunyai ranah yang lebih besar dapat dipakai untuk masalah ini.
Jadi, program KONVERSI_JAM_KE_DETIK dalam bahasa pascal adalah sebagai berikut :
program KONVERSI_JAM_KE_DETIK;
{ dibaca jam-menit-detik (hh:mm:ss). Nilai jam-menit-detik dikonversi ke dalam detik, lalu ditampilkan ke piranti keluaran.}
uses wincrt;
(* DEKLARASI *)
type Jam = record
hh : longint; {jam}
mm : longint; {menit}
ss : longint; {detik}
end;
var
J : Jam;
TotalDetik : longint;
(* deskripsi *)
begin
write(‘Jam :’); readln(J.hh);
write(‘Menit:’); readln(J.mm);
write(‘Detik:’); readln(J.ss);
TotalDetik:= (J.hh*3600) + (J.mm*60) + J.ss;
writeln(‘Total detik = ‘, TotalDetik);
end.
Ingatlah
1 menit = 60 detik
1 jam = 3600 detik
Misalnya waktu tempuh seorang pelari marathon adalah 1 jam, 5 menit, 40 detik. Dalam detik, waktu tempuh seluruhnya adalah ( 1 x 3600 ) + ( 5 x 60 ) + 40 = 3940 detik.
Penyelesaian :
Algoritma KONVERSI_JAM_KE_DETIK
{ dibaca jam-menit-detik (hh:mm:ss). Nilai jam-menit-detik dikonversi ke dalam detik, lalu ditampilkan ke piranti keluaran }
DEKLARASI
Type jam : record <hh : integer {0..23}, {jam}
mm : integer {0..59}, {menit}
ss : integer {0..59}, {detik}
>
J : jam
TotalDetik : integer
DESKRIPSI
read(J.hh,J.mm,J.ss))
TotalDetik ← (J.hh*3600) + (J.mm*60) + J.ss
write(TotalDetik)
Jika anda mentranslasikan algoritma KONVERSI_JAM_KE_DETIK ke dalam bahasa pascal, anda harus memperhatikan tipe bilangan bulat yang digunakan. Karena ranah nilai tipe integer terbatas, maka ada kemungkinan hasil pengubahan jam-menit-detik ke total detik bernilai negatif, sebab nilai (J.hh*3600) + (J.mm*60) + J.ss berada di luar rentang tipe integer. Tipe longint yang mempunyai ranah yang lebih besar dapat dipakai untuk masalah ini.
Jadi, program KONVERSI_JAM_KE_DETIK dalam bahasa pascal adalah sebagai berikut :
program KONVERSI_JAM_KE_DETIK;
{ dibaca jam-menit-detik (hh:mm:ss). Nilai jam-menit-detik dikonversi ke dalam detik, lalu ditampilkan ke piranti keluaran.}
uses wincrt;
(* DEKLARASI *)
type Jam = record
hh : longint; {jam}
mm : longint; {menit}
ss : longint; {detik}
end;
var
J : Jam;
TotalDetik : longint;
(* deskripsi *)
begin
write(‘Jam :’); readln(J.hh);
write(‘Menit:’); readln(J.mm);
write(‘Detik:’); readln(J.ss);
TotalDetik:= (J.hh*3600) + (J.mm*60) + J.ss;
writeln(‘Total detik = ‘, TotalDetik);
end.
5. Jelaskan dengan contoh kasus algoritma yang
memiliki struktur percabangan.!
Jawab:
Contoh kasus
algoritma yang memiliki struktur percabangan:
Contoh kasus algoritma yang memiliki struktur percabangan:
Dalam suatu perhitungan, nilai P = X + Y. Jika P positif, maka Q = X * Y, sedangkan jika negative maka nilai Q = X/Y. Buatlah flowchart untuk mencari nilai P dan Q
Penyelesaian:
Pada contoh ini input yang dibutuhkan adalah nilai X dan Y, sedangkan proses pemeriksaan kondisi dilakukan pada nilai P apakah positif (termasuk 0) ataukah negative. Perhatikan flowchart penyelesaian masalah pada gambar 5.10
Dalam suatu perhitungan, nilai P = X + Y. Jika P positif, maka Q = X * Y, sedangkan jika negative maka nilai Q = X/Y. Buatlah flowchart untuk mencari nilai P dan Q
Penyelesaian:
Pada contoh ini input yang dibutuhkan adalah nilai X dan Y, sedangkan proses pemeriksaan kondisi dilakukan pada nilai P apakah positif (termasuk 0) ataukah negative. Perhatikan flowchart penyelesaian masalah pada gambar 5.10
6. Jelaskan dengan contoh kasus
algoritma yang memiliki struktur perulangan:
a. for
b. while
Jawab:
a. for
b. while
Jawab:
a.Contoh kasus algoritma yang
memiliki struktur perulangan FOR:
Salah satu kelebihan komputer
adalah kemampuannya untuk mengerjakan pekerjaan yang sama berulang kali
tanpa mengenal lelah.
Sewaktu duduk di sekolah dasar, bila anda pernah dihukum oleh guru untuk menuliskan sebuah kalimat sebanyak 500 kali, misalnya dikarenakan anda nakal tidak mengerjakan PR. Misalkan kalimat yang harus ditulis 500 kali tersebut adalah:
Sewaktu duduk di sekolah dasar, bila anda pernah dihukum oleh guru untuk menuliskan sebuah kalimat sebanyak 500 kali, misalnya dikarenakan anda nakal tidak mengerjakan PR. Misalkan kalimat yang harus ditulis 500 kali tersebut adalah:
“Saya
berjanji tidak akan nakal dan malas lagi”
Bila
pekerjaan menulis kalimat ini diserahkan kepada komputer, maka pemrogram
mungkin menuliskannya sebagai berikut:
Algoritma menulis 500 kalimat
Deskripsi :
1.
Saya berjanji tidak akan nakal dan malas lagi
2.
Saya berjanji tidak akan nakal dan malas lagi
3.
Saya berjanji tidak akan nakal dan malas lagi
4.
Saya berjanji tidak akan nakal dan malas lagi
....
500
Tentu
saja algoritma untuk menuliss 500 buah kalimat seperti diatas tidak elegan,
karena instruksi
“Saya berjanji tidak akan nakal dan malas lagi”harus dibuat di dalam teks algoritma sebanyak 500 kali. Untuk mengatasi hal ini, maka anda dapat menggunakan struktur pengulangan for-do sehingga algoritma menulis 500 buah kalimat dapat ditulis sebagai berikut:
“Saya berjanji tidak akan nakal dan malas lagi”harus dibuat di dalam teks algoritma sebanyak 500 kali. Untuk mengatasi hal ini, maka anda dapat menggunakan struktur pengulangan for-do sehingga algoritma menulis 500 buah kalimat dapat ditulis sebagai berikut:
Algoritma menulis 500 kalimat
Menuliskan
kalimat " Saya berjanji tidak akan nakal dan malas lagi " Sebanyak
500 kali.
Deskripsi
:
for J dari 1 sampai 500 do
t tulis kalimat " Saya berjanji tidak akan nakal dan malas lagi "
J
adalah pencacah pengulangan yang dari 1 sampai 500. Komputer akan melaksanakan
aksi tulis kalimat tersebut sebanyak 500 kali. Struktur pengulangan ini dapat
ditulis secara umum sebagai berikut:
for pencacah pengulangan dari 1 sampai N do
aksi
b. Contoh
kasus algoritma yang memiliki struktur perulangan WHILE:
Bentuk umum struktur WHILE-DO adalah
while <kondisi> doAksi
endwhile |
aksi
(atau runtunan aksi) akan dilaksanakan berulangkali sepanjang <kondisi> boolean masih tetap bernilai true, jika <kondisi> bernilai false, badan pengulangan tidak akan dilaksanakan.
Pengulangan selesai.
Contoh 1:
Tuliskan algoritma untuk mencetak banyak HALO sebanyak 10 kali .
Algoritma cetak_banyak_halo
Deklarasi
K : integer {pencacah pengulangan}
Deskripsi
K ← 1 {inisialisasi}
While k ≤ 10 do
Write (‘HALO’)
K ←K+1
Endwhile
{kondisi berhenti : k > 10}.
Contoh 1:
Tuliskan algoritma untuk mencetak banyak HALO sebanyak 10 kali .
Algoritma cetak_banyak_halo
Deklarasi
K : integer {pencacah pengulangan}
Deskripsi
K ← 1 {inisialisasi}
While k ≤ 10 do
Write (‘HALO’)
K ←K+1
Endwhile
{kondisi berhenti : k > 10}.