Anda di halaman 1dari 20

KATA PENGANTAR

Puji syukur kami panjatkan ke hadirat Alloh SWT atas terbentuknya Lembar Tugas Mahasiswa

(LTM) untuk mata kuliah Logika dan Algoritma. Tak lupa kami mengucapkan banyak terima kasih

kepada pihak-pihak yang telah turut berpartisipasi dalam penyusunan LTM

ini.

LTM ini kami susun sesuai dengan Satuan Acara Perkuliahan (SAP) yang berlaku di STMIK Nusa

Mandiri, dengan harapan agar mahasiswa memiliki wadah untuk berlatih memberikan pendapat sesuai

dengan pemahaman yang dimiliki dan menambah wawasan mereka.

Kami menyadari bahwa LTM ini masih belum sempurna, oleh karena itu kami sangat

mengharapkan kritik dan sarannya.

Jakarta, September 2017

DAFTAR ISI
Pertemuan 1
Soal Dasar Logika Dan Algoritma………...................................................................1
Jawaban :

Pertemuan 2
Soal Konsep Algoritma................................................................................................2
Jawaban :

Pertemuan 3
Soal Konsep Tipe Data.................................................................................................3
Jawaban :

Pertemuan 4
Soal Diagram Alur (Flowchart)...................................................................................4
Jawaban :

Pertemuan 5
Soal Struktur Looping.................................................................................................5
Jawaban :

Pertemuan 6
Struktur Rekursif........................................................................................................6
Jawaban
PENGERTIAN DASAR LOGIKA DAN ALGORITMA ( PERTEMUAN 1 )

1. Jelaskan Peranan Algoritma dalam Pembuatan Program !


2. Buat Algoritma bila seorang mahasiswa akan melakuan pembayaran uang kuliah via ATM
3. Buatlah sebuah Flowchart untuk menentukan akar kuadrat dari suatu bilangan bulat positip !
4. Buatlah sebuah contoh pseudocode !
5. Sebutkan cara menyatakan algoritma !

Jawaban:

1. Peran algoritma​ sangatlah penting dalam pembuatan sebuah program peran algoritma sangat
dibutuhkan untuk membuat program yang lebih efektif dan efisien, bagi kebanyakan orang algoritma
sangat membantu dalam memahami konsep logika pemrograman. Dimana “Algoritma merupakan suatu
urutan langkah-langkah (steps) yang disusun secara logis dan sistematis untuk menyelesaikan suatu
masalah dan dapat dieksekusi”, pada umumnya algoritma diibaratkan seperti suatu prosedur untuk
mengganti ban bocor, prosedur pemakaian telepon umum, prosedur membuat kue, dll.

2. Pembayaran Uang kuliah Via ATM (sesuai ATM yang dipakai)

1) Kunjungi mesin ATM yang akan digunakan untuk melakukan transaksi pembayaran uang kuliah,
2) Persiapkan kartu ATM
3) Masukkan kartu ATM kedalam mesin ATM
4) Masukkan nomor PIN
5) Pilih transaksi lainnya
6) Selanjutnya pilih pembayaran
7) Pada saat transaksi pembayaran pilih pendidikan
8) Pilih lembaga universitas/pendidikan (sesuai dengan tempat kuliah)
9) Masukkan nomor induk mahasiswa, bila benar lanjutkan
10) Masukkan jumlah pembayaran, bila benar lanjutkan
11) Terakhir konfirmasi pembayaran
12) Sebelum mengeluarkan kartu ATM, ganti no PIN
13) Keluarkan kartu ATM dari mesin ATM.

START
INPUTNilai AB = 0C = B x BIf C = APRINT BENDIf C -> A ThenB +1

3.​ Flowchart menentukan akar kuadrat dari bilangan bulat positif


4​. ​Pseudocode​ adalah suatu cara penulisan algoritma agar ide dan logika dari algoritma dapat
disampaikan/diekspersikan, langkah yang dilakukan harus berstruktur dan saling berintegrasi sejauh
tidak mengurangi pengertian dari algoritma.

Contoh Pseudocode 1:

Algoritma menghitung sisi miring segitiga siku–siku ;


- Masukkan nilai sisi a
- Masukkan nilai sisi b
- Hitung nilai c2 = a2 + b2
- Hitung nilai c
- Tampilkan nilai c

Contoh Pseudocode 2:

mencari bilangan terbesar dari dua bilangan yang diinputkan.


Contoh Pseudo-code:
1.Masukkan bilangan pertama
2.Masukkan bilangan kedua
3.Jika bilangan pertama > bilangan kedua maka kerjakan langkah
4, jika tidak,kerjakan langkah 5.

5. Cara untuk menyatakan Agoritma ;

1) Dengan bahasa semu


2) Dengan diagram alur atau flowchart
3) Dengan statement bahasa pemograman

KONSEP ALGORITMA ( PERTEMUAN 2 )


1. Jelaskan Pengertian
a. Variabel Peubah
b. Variabel Konstanta
c. Variabel terkini

2. A = 100, B = 200, C = 300. Berikan perintah agar nilai A,B dan C saling bertukar. Contoh: A =200 B =
300 A =100

3. Diketahui Algoritma : X = 5 Y = 20 Z = 40
A=X+Y+Z X=Z-Y Z=X+Y
Y=X–Z
Berapakah Nilai Terkini dari A, X, Y, Z ?

4. Bagaimanakah cara penulisan Perintah dibawah ini pada C++


a. Memasukkan data / Input data
b. Mencetak dalam satu baris
c. Mencetak pada lain baris
d. Mengawali dan mengakhiri program

Jawab:

1. A.variabel pe-ubah​ adalah,variabel yang bukan konstanta selalu berubah sesuai


kondisi variabel terkini
B.variabel konstanta​ adalah variabel yang nilai nya tetap.
C.variabel terkini​ adalah variabel yang nilai nya ada pada saat ini

2. Dik : A=100
B=200
C=300
Dit : agar nilai a,b,c saling bertukar
jawab : A = B-A B(A=200)
B = C-B C(B=300)
C= A-C A(C=100)
​A=200,B=300,C=100

3. diket = X = 5
Y = 20
Z = 40
dit = nilai terkini dari A,X,Y,Z
jawab = A= 50 + 20 +40
A= 65
X = 40 -20
X = 20
Z = 5 + 20
Z = 25
Y = 5-40
Y = -35
jadi,nilai terkini dari A=65,X=20,Y=25,Z=35

4. A:-READ = memasukkan data dalam baris yang sama.


-READLN= memasukkan data dalam perbaris.
B:-READLN= mencerak / memasukkan data perbaris.
C:-ENDL=mencetak pada lain baris.
D:-BEGIN=mengawali
-END= mengakhiri.

KONSEP TIPE DATA ( PERTEMUAN 3 )

1. Sebutkan tipe data apa saja yang dipakai dalam pemrograman C++
2. Sebutkan Lima perintah Operasi String dalam pemrograman C++ dan berikan contohnya
3. Jelaskan pengertian
a. Array
b. Struct
4. Sebutkan penggunaan Tipe data Boolean dalam pemrograman
5. Jelaskan perbedaan tipe data Character dan String

Jawab:

1. ​A.Tipe data Sederhana (simple type)


- Int,Bool,Char
- Tipe Float

B. Tipe data String


- Operasi string

C. Tipe data Terstruktur (structured type)


- Array, Struct

2. Fungsi pada Operasi STRING :


a. Strcpy ( ) ; untuk menyalin nilai string.
Contoh dalam penggalan program c++:
Cout<<“Masukan Kata ? “;gets(kata);
Strcpy(copy,kata);
Cout<<“Hasilnya ? “<<copy;

b. Strcat ( ) ; untuk menggabungkan nilai string.


Contoh dlm penggalan program c++:
Cout<<“Kata Pertama ? “;gets(a);
Cout<<“Kata Kedua ? “;cin(b);
Strcat(a,b);
Cout<<“Hasil Gabungan : “<<a;

c. Strcmp ( ) ; untuk membandingkan 2 nilai string.


Contoh dalam penggalan program c++:
char sa[]="Logika";
char sb[]="Logika Algoritma";
char sc[]="Logika Algoritma & Pemprograman";
/*Melakukan perbandingan terhadap dua string
dan penampilan nilainya*/
printf("Nilai Yang dibandingkan sa,sb :
%d\n",strcmp(sa,sb));
printf("Nilai Yang dibandingkan sa,sc :
%d\n",strcmp(sa,sc));
printf("Nilai Yang dibandingkan sb,sa :
%d\n",strcmp(sb,sa));
getch();
return 0;}

d. Strlen ( ) ; untuk mengetahui panjang nilai string.


Contoh dalam penggalan program c++:
cout<<"Masukkan Kata = ";
gets(angka);
cout<<"Panjang Kata yang telah diinput = ";
cout<<strlen(angka)

e. Strchr ( ) ; untuk mencari nilai karakter dalam string.


Contoh dalam penggalan program C++:
int main(void){
char str [100]="Aisyah Zahra";
char karakter='Z';
char *hasil;
hasil=strchr(str,karakter);
printf("Hasil Peubah :%s\n",hasil);
printf("Karakter %c ditemukan pada indeks ke-
%d",karakter,(hasil-str));
getch();}

3​. a. Array adalah sebuah struktur data yang terdiri atas banyak variabel dengan tipe data
sama, dimana masing-masing elemen variabel mempunyai nilai indeks.
b. Struct adalah kumpulan dari variabel yang dinyatakan dengan sebuah nama , dengan sifat
setiap variabel dapat memiliki tipe yang berlainan.

4. penggunaan tipe booland yaitu nilai pengambilan suatu keputusan pada program, tipe ini
mempunyai 2 nilai yaitu benar(T) atau salah (F). Operator yg digunakan AND, OR atau NOT

5​. Data Karakter (Character).Tipe data karakter hanya terdiri dari sebuah karakter saja yang
diapit oleh tanda kutip tunggal ( ' ). Data karakter dapat berbentuk abjad ( huruf
besar atau kecil ), angka, notasi atau simbol.
DIAGRAM ALUR (FLOWCHARAT) ( PERTEMUAN 4 )

1. Sebutkan 5 manfaat Diagram alur ( Flowchart)


2. Buatlah contoh Flowchart (ada algoritma atau programnya)
a. Struktur sederhana
b. Struktur Branching
c. Struktur Looping
3. Buatlah sebuah algoritma yang didalamnya Terdapat struktur branching dan looping, lalu buat
Flowchartnya
4. Buatlah Flowchart kasus berikut :
a. Membuat deret angka 1,3,5 .... 99
b. Membuat deret angka 0, -5, -10, -15, -1000
c. Membuat deret angka 0,1,4,9,16,25..... 100

Jawab:
1. Manfaat Diagram alur (Flowchart)

● Sebagai pedoman untuk menjalankan Operasional


● Sebagai pedoman untuk melakukan pelatihan terhadap Karyawan baru
● Sebagai benchmark (patokan)
● Sebagai Peta kerja untuk mencegah terjadi kehilangan arah
● Untuk mempermudah pengambilan keputusan

2. Buatlah Contoh Flowchart (ada algoritma atau programnya)


A. Struktur sederhana

Int A;
Cin>>A;
A=A+1;
Cout<<”A adalah”<<a;

B. Struktur Branching

Int A;
Cin<<A;
If (A<=10)
if(A<=10)
cout<<A<<" kurang dari 10";

3. Buatlah sebuah algoritma yang didalamnya terdapat struktur branching dan looping, lalu buat
Flowchartnya

for (int a=0;a<=5;a++)


cout<<a;

4. Buatlah Flowchart kasus berikut:


a. Membuat deret angka 1,3,5 … 99

b. Membuat deret angka 0,-5,-10,-15 … -1000

c. Membuat deret angka 0,1,4,9,16,25 … 100


STRUKTUR LOOPING ( PERTEMUAN 5 )

1. Jelaskan pengertian Statemen dibawah ini :


a. WHILE ...
b. Do .... While
c. FOR seperti statemen FOR Positif, Negatif, dan FOR bersarang
2. Dari soal No.1 Buat masing-masing satu contoh algoritma dan flowchartnya
3. Dengan menggunakan perintah Do… While. Buatlah contoh algoritma dan Flowchart nested
loopnya
4. Dengan Perintah For …,, buatlah algoritma dan Flowchart Nested Loop

Jawab:

1. pengertian statement dibawah ini:

a. While :
Perulangan akan terus dilaksanakan selama syarat tersebut terpenuhi.
b. Do … While :
Perulangan akan dilaksanakan terlebih dahulu dan pengujian perulangan dilakukan
belakangan.
c. FOR ( statement FOR positif, negatif, dan FOR bersarang ) :
For bersarang ialah perulangan for didalam perulangan for lainnya. Jika
inisialisasi(pemberian nilai awal) pengubah nilai(mengatur naik / turunnya nilai didalam
looping) positif dia dikatakan statement for positif, dan jika pengubah nilai negatif dia
dikatakan statement for negatif.

2. Dari soal no. 1 buat masing-masing satu contoh algoritma dan flowchartnya
A. While :
Int bil=1;
While (bil<=5)
Cout<<bil;
++bil;

B. Do…While :
Int bil=2;
Do
Cout<<bil;
bil+=2;
while (bil<=10);
C. For positif, negatif dan nest for :
For Positif
for (i=0;i<10;++i)
cout<<”\n bilangan: ”<<i;
getch();

For negative
for (i=10;i>0;i--)
cout<<”\nbilangan: “<<i;
getch();

Nest for
For (i=1;i<=5;i++){
cout<<endl;
for (j=1;j<=i;j++)
cout<<”*”;}
getch();
3 . Dengan menggunakan perintah Do…While. Buatlah contoh algoritma dan flowchart nested
loopnya

#include <iostream.h>
#include <conio.h>
#include <stdio.h>

int main(){
int x=1,y;
do {
y=1;
do {
cout << "test ";
y++;
}while(y <= x);
x++;
cout << endl;
}while(x <= 5);
getch();}

4. Dengan perintah FOR… buatlah algoritma dan flowchart nested loop

#include <iostream.h>
#include <conio.h>
int main () {
int x, y;
for(x = 1; x<20; x++) {
for(y = 0; y<x; y++)
cout<<x<<endl; }
getch(); }

STRUKTUR REKURSIF ( PERTEMUAN 6 )

1. Jelaskan pengertian Rekursif, dan kasus apa saja yang bisa diselesaikan dengan Struktur Rekursif
2. Gambarlah menera Hanoi dengan 5 piringan, lalu Buat algoritma pemindahan peringan-piringan
tersebut ke menara tujuan
3. Buat algoritma untuk mencetak deret angka 1,3,5,.... s/d 1000 angka dengan menggunakan
prosedur rekursif
4. Buat algoritma untuk mencetak nama anda sebanyak 100 kali dengan prosedur rekursif

Jawab:

1. ​Jelaskan pengertian Rekursif, dan kasus apa saja yang bisa di selesaikan dengan Struktur
Rekursif:
Rekursif adalah suatu proses yang bisa memanggil dirinya sendiri
Contoh kasus:
● Generative: menyelesaikan masalah yang kompleks dengan cara membelah menjadi
potongan-potongan kecil yang sederhana.
● Structural: untuk struktur data tertentu seperti Tree
2. Gambarlah menara Hanoi dengan 5 piringan, lalu buatlah algoritma pemindahan
piringan-piringan tersebut ke menara tujuan:

A B C
Tiang Asal Tiang Bantuan Tiang Tujuan

Algoritma langkah pemindahan piringan-piringan tersebut ke menara tujuan :


a) Untuk memindahkan piringan dari tonggak asal (1) ke tonggak tujuan (3) maka piringan ke N
harus berada di tonggak tujuan (3).
b) Sedangkan piringan ke 1 sampai dengan (N-1) harus berada ditonggak bantu(2).
c) Setelah piringan ke 1 s/d N-1 berada di 2, Kemudian pindahkan piringan ke 1 sampai dengan
N-1 dari tonggak bantu (2) ke tonggak tujuan (3).
3. Buat algoritma untuk mencetak deret angka 1,3,5,.... s/d 1000 angka dengan
menggunakan prosedur rekursif:
1) Tetapkan nilai Bilangan = 1 dan Batas_Bilangan = 1000
2) Jika sisa pembagian (Bilangan/2) tidak sama dengan 0 (bilangan mod 2 <> 0) maka Cetak
“Bilangan”, dan kelangkah 5.
3) Jika (Bilangan = Batas_Bilangan) maka ke-langkah 6
4) Nilai Bilangan ditambah 1 (Bilangan=Bilangan+1) dan kembali kelangkah 3

4. Buatlah algoritma untuk mencetak nama anda sebanyak 100 kali dengan prosedur rekursif:

#include<stdio.h>
#include<conio.h>
#include<iostream.h>
main()
{
for (int i=1;i<=100;i++)
cout<<i<<"Ahmad Ridwan Pramana\n";
getch();
}

Anda mungkin juga menyukai