Anda di halaman 1dari 58

Dosen Pembimbing,

LOGIKA DAN ALGORITMA


Ismael, M.Kom.

LAPORAN PRAKTIKUM
LOGIKA DAN ALGORITMA

DISUSUN OLEH

WALLEN TIARDO LUMBANRAJA


NIM. 1705102039

PROGRAM STUDI MANAJEMEN INFORMATIKA


JURUSAN TEKNIK KOMPUTER DAN INFORMATIKA
POLITEKNIK NEGERI MEDAN
2017

POLITEKNIK NEGERI MEDAN 1


LOGIKA DAN ALGORITMA

KATA PENGANTAR

Puji dan syukur penulis ucapkan kepada Tuhan Yang Maha Esa atas berkat dan

lindungannya, penulis dapat menyelesaikan Laporan Praktikum Logika dan Algoritma ini

dengan tepat waktu dan sebaik-baiknya.

Adapun tujuan dan maksud penulis membuat laporan ini adalah sebagai salah

satu pemenuhan tugas mata kuliah Logika dan Algoritma. Penulis juga menyampaikan

rasa terima kasih sebanyak-banyaknya kepada Bapak Ismael, M.Kom sebagai

pembimbing materi pada pembuatan laporan ini, sekaligus juga kepada segenap pihak

yang sudah memberikan bantuan dalam menulis laporan ini.

Penulis menyadari bahwa masih ada banyak kekurangan yang terdapat pada

Laporan ini. Dengan demikian, penulis sungguh-sungguh mengharapkan kritik dan

saran yang membangun untuk penulis jadikan sebagai bahan evaluasi demi

meningkatkan kinerja untuk selanjutnya.

Penulis berharap semoga Laporan Praktikum Logika dan Algorima ini dapat

bermanfaat bagi pembacanya.

Medan, September 2017

Penulis,

POLITEKNIK NEGERI MEDAN 2


LOGIKA DAN ALGORITMA

DAFTAR ISI

COVER ..........................................................................................................................................1

KATA PENGANTAR .................................................................................................................2

DAFTAR ISI .................................................................................................................................3

MODUL 1 .................................................................................................................................. 6

LATIHAN .................................................................................................................................. 6

1. Menjumlahkan 2 Bilangan ................................................................................... 6

2. Mengalikan 2 Bilangan ........................................................................................ 7

3. Menukar Isi 2 Buah Variabel ............................................................................... 8

4. Opsi Menjumlahkan Atau Mengalikan Bilangan ............................................ 9

5. Menghitung Luas lingkaran ................................................................................ 10

6. Mengecek Bilangan Diantara 2 Bilangan Masukkan ....................................... 11

MODUL 2 .................................................................................................................................. 12

PERCOBAAN ............................................................................................................................ 12

1. Pertukaran 2 Buah Variabel ................................................................................... 12

LATIHAN .................................................................................................................................. 13

1. Penjumlahan 2 buah Variabel ............................................................................... 13

2. Perhitungan 3 Bilangan .......................................................................................... 13

3. Menemukan Permasalahan Pada Program ......................................................... 14

4. Menghitug Jumlah Dan Rata-Rata kedua Bilangan .......................................... 15

5. Program Keluaran .................................................................................................. 16

MODUL 3 .................................................................................................................................. 17

PERCOBAAN ............................................................................................................................ 17

1. Type-type Data Dasar Dalam Pemrograman C .................................................. 17

2. Mengenal Beberapa Operator Dalam C ............................................................... 18

3. Operator Moduls .................................................................................................... 19

4. Menghitung Diskriminan Persamaan Kuadrat .................................................. 20

POLITEKNIK NEGERI MEDAN 3


LOGIKA DAN ALGORITMA

5. Penggunaan Pre dan Post Increment operator ................................................... 20

6. Perbedaan Format %g, %e, dan %f ...................................................................... 21

7. Penggunaan Format panjang Medan data ......................................................... 22

LATIHAN .................................................................................................................................. 23

1. Memilih Nama Variabel Yang Benar Dan yang Salah ....................................... 23

2. Output Program Keluaran .................................................................................... 23

3. Mencari Nilai Polynomial ...................................................................................... 24

4. Mengkonversi Suhu ............................................................................................... 25

MODUL 4 .................................................................................................................................. 26

PERCOBAAN ............................................................................................................................ 26

1. Menghitung Keliling Dan Luas Lingkaran ......................................................... 26

2. Menghitung Nilai Akhir Mata Kuliah ................................................................. 27

3. Mencari Luas Segitiga ............................................................................................ 28

LATIHAN ................................................................................................................................. 29

1. Total Nilai Dan Rata-Rata Mahasiswa ................................................................. 29

2. Luas Persegi Panjang Dan Bujur Sangkar ........................................................... 30

MODUL 5 .................................................................................................................................. 31

PERCOBAAN ........................................................................................................................... 32

1. Menghitung Nilai Discount Dengan Menggunakan IF ..................................... 32

2. Menghitug Nilai Abolut Suatu Bilangan ............................................................. 33

3. Pemakaian IF ELSE Untuk Menyeleksi Bilangan Pembagi .............................. 34

4. Penggunaan IF ELSE untuk Mengecek Bilangan Absolut ................................ 35

5. Mengkategorikkan Karakter Masukkan ............................................................. 36

6. Mengkategorikan Bilangan Bulat ........................................................................ 37

7. Kalkulator sederhana dengan IF ELSE ............................................................... 38

8. Kalkulator Sederhana Denga Switch-Case ......................................................... 39

POLITEKNIK NEGERI MEDAN 4


LOGIKA DAN ALGORITMA

LATIHAN ................................................................................................................................. 40

1. Menerima Input 2 Bilangan Bulat ......................................................................... 40

2. Menghitung Determinan Dan Mencari akar ....................................................... 41

3. Menampilkan Menu Dan Proses Dengan Swich-Case ..................................... 42

4. Daftar Gaji Pegawai ............................................................................................... 44

MODUL 6 ............................................................................................................................... 46

PERCOBAAN ............................................................................................................................ 46

1. Menghitung Kata Dan Karakter Pada Kalimat ................................................ 47

2. Membalikkan angka Dengan Perintah While ................................................... 48

3. Membaca Tombol yang Ditekan ........................................................................ 49

4. Tabel Faktorial Dengan Do-while ...................................................................... 50

5. Menghitung Total Pembelian Minuman ........................................................... 52

LATIHAN .................................................................................................................................. 52

1. Bilangan genap yang terletakantara 20 sampai dengan 200............................ 52

2. Menghitung jumlah angka dari suatu bilangan ............................................... 53

3. Menerima daftar nilai mahasiswa ...................................................................... 54

QUIS .................................................................................................................................. 56

1. TUNAI/KREDIT RUMAH ................................................................................... 56

POLITEKNIK NEGERI MEDAN 5


LOGIKA DAN ALGORITMA

MODUL 1

LATIHAN
1. Menjumlahkan 2 buah bilangan dan mencetak hasilnya

LISTING PROGRAM :

#include<stdio.h>
main()
{
int bil1;
int bil2;
int bil3;
clrscr();

printf("****PROGRAM AWAL PENJUMLAHAN 2 BILANGAN BY WALLEN****\n\n");


printf("Masukkan bilangan 1 :");
scanf("%i",&bil1);
printf("Masukkan bilangan 2 :");
scanf("%i",&bil2);

bil3=bil1+bil2;

printf("Maka bil1 + bil2= %.0i",bil3);

getch();
}

HASIL:

POLITEKNIK NEGERI MEDAN 6


LOGIKA DAN ALGORITMA

2. Mengalikan 2 buah bilangan dan mencetak hasilnya

LISTING PROGRAM :

#include<stdio.h>
main()
{
int bil1;
int bil2;
int bil3;
clrscr();

printf("****PROGRAM AWAL MENGALIKAN 2 BILANGAN BY WALLEN*****\n\n");


printf("Masukkan bilangan 1 :");
scanf("%i",&bil1);
printf("Masukkan bilangan 2 :");
scanf("%i",&bil2);
bil3=bil1*bil2;
printf("Maka bil1 x bil2= %.0i",bil3);
getch();
}
HASIL :

POLITEKNIK NEGERI MEDAN 7


LOGIKA DAN ALGORITMA

3. Menukarkan isi dua buah variabel dan mencetak hasilnya


LISTING PROGRAM:
main()
{
int A,B,C;
clrscr();

A=50;
B=25;
printf("Isi A=%d\n",A);
printf("Isi B=%d\n",B);
C=A;
A=B;
B=C;
printf("Isi Variabel Setelah Tukar\n");
printf("Isi A=%d\n",A);
printf("Isi B=%d\n",B);
getch();
}

HASIL :

POLITEKNIK NEGERI MEDAN 8


LOGIKA DAN ALGORITMA

4. Memberikan opsi menjumlahkan dan mengalikan 2 buah bilangan dan


menampilkan hasilnya
LISTING PROGRAM :

#include<stdio.h>
main()
{
int a ;
int b ;
int c ;
char x;
clrscr();

printf("Masukkan Bilangan Pertama:");


scanf("%i",&a);
printf("\nMasukkan BIlangan Kedua:");
scanf("%i",&b);
printf("Pilih operator Menjumlahkan (t) atau Mengalikan (k)\n");
scanf("%s",&x);
if(x=='t')
{ c=a+b;
printf("Maka Hasil Penjumlahan = %d",c); }
else
{ c=a*b;
printf("Maka Hasil Perkalian = %d",c);}
getch();
}
HASIL :

POLITEKNIK NEGERI MEDAN 9


LOGIKA DAN ALGORITMA

5. Menghitung Luas Lingkaran dan hasilnya

LISTING PROGRAM :
main()
{
float PHI=3.14;
float jari,luas,keliling;
clrscr();

puts("*****PROGRAM MENGHITUNG LUAS/KELILING LINGKARAN*****");


printf("Masukkan Jari-Jari Lingkaran:");
scanf("%f",&jari);
luas=PHI*jari*jari;
keliling=PHI*2*jari;
printf("Luas:%.1f\n",luas);
printf("Keliling:%.1f",keliling);

getch();
}

HASIL :

POLITEKNIK NEGERI MEDAN 10


LOGIKA DAN ALGORITMA

6. Mengecek bilangan di antara 2 bilangan masukan, apakah sama ataukah lebih besar
salah satunya, dan tampilkan hasilnya

LISTING PROGRAM :
#include<stdio.h>
main()
{ int a;
int b ;
clrscr();

printf("Masukkan bilangan 1\n");


scanf("%i",&a);
printf("Masukkan bilangan 2\n");
scanf("%i",&b);
if(a<b)
{ printf("Maka %d < %d",a , b);}
else if(a==b)
{ printf("Maka %d = %d",a , b);}
else
{ printf("Maka %d > %d",a , b);}
getch();
}

HASIL:

POLITEKNIK NEGERI MEDAN 11


LOGIKA DAN ALGORITMA

MODUL 2
A. PERCOBAAN
1. Program pertukaran dua buah variabel
LISTING PROGRAM:
#include<stdio.h>
main()
{
int bejanaA,bejanaB,bejanaC;
clrscr();
bejanaA=10; bejanaB=15;
printf("Isi Bejana sebelum ditukarkan\n" );
printf("Isi BejanaA = %d\n",bejanaA );
printf("Isi BejanaB = %d\n",bejanaB );
bejanaC=bejanaA;
bejanaA=0;
bejanaA=bejanaB;
bejanaB=0;
bejanaB=bejanaC;
/*clrscr();*/
printf("Isi Bejana setelah ditukarkan\n" );
printf("Isi BejanaA = %d\n",bejanaA );
printf("Isi BejanaB = %d\n",bejanaB );
getch();
}
HASIL :

POLITEKNIK NEGERI MEDAN 12


LOGIKA DAN ALGORITMA

B. LATIHAN
1. Berapakah nilai jawaban yang ditampilkan oleh program di bawah ini :

LISTING PROGRAM :
#include <stdio.h>
main()
{
int value1, value2, sum;
value1 = 35;
value2 = 18;
sum = value1 + value2;
printf("The sum of %d and %d is %d\n", value1,value2,sum);
getch();
}
HASIL:

2. Apakah keluaran dari potongan program di bawah ini:

Listing Program :

main()
{
int jumlah;
clrscr();
jumlah = 25 + 37 - 19;
printf("Berapa hasil perhitungan 25 + 37 - 19 ?\n");
printf("Jawabannya adalah %d\n");
getch();
}

POLITEKNIK NEGERI MEDAN 13


LOGIKA DAN ALGORITMA

HASIL:

3. Program di bawah ini tidak berhasil di-compile karena masih terdapat beberapa
kesalahan. Temukan paling sedikit 6 buah kesalahannya. Selanjutnya tampilkan
keluaran, setelah program ini berhasil dijalankan.

Listing Program :

main()
{
int jawab, hasil;
clrscr();
jawab = 100;
hasil = jawab - 10;
printf("Jawabannya adalah %d\n", hasil + 6);
getch();
}

HASIL:

(TIDAK ADA KESALAHAN DARI PROGRAM DIATAS)

POLITEKNIK NEGERI MEDAN 14


LOGIKA DAN ALGORITMA

4. Buatlah program yang menerima masukan dua buah bilangan. Tampilkan


keluaran berupa jumlah, rata-rata dan kuadrat dari kedua bilangan yang
dimasukkan.

LISTING PROGRAM :

main()
{ int a,A;
int b,B;
float c,x,y,z;
clrscr();

printf("Masukkan nilai A (bilangan 1) :");


scanf("%i",&a);
printf("Masukkan nilai B (bilangan 2) :");
scanf("%i",&b);
c=a+b; x=c/2; A=a*a; B=b*b; y=A+B; z=A*B;

puts("Maka:");
printf("HASIL A + B = %.0f\n",c);
printf("Rata-rata nilai = %.0f\n",x);
printf("Kuadrat A = %i\n",A);
printf("Kuadrat B = %i\n",B);
printf("Kuadrat A + Kuadrat B = %.0f\n",y);
printf("Kuadrat A x Kuadrat B = %.0f\n",z);
getch();
}

HASIL:

POLITEKNIK NEGERI MEDAN 15


LOGIKA DAN ALGORITMA

5. Program di bawah ini seharusnya menampilkan keluaran satu baris sbb :


c * c = 25,000000, Namun, belum berhasil karena masih ada beberapa kesalahan.
Temukan minimal 3 kesalahan dalam program tersebut.

LISTING PROGRAM :
#include <stdio.h>
main ()
{
float a, b, c;
a = 3;
b = 4.0;
c=a*a+b*b;
printf("c * c = %f", c);
getch();
}
HASIL:

POLITEKNIK NEGERI MEDAN 16


LOGIKA DAN ALGORITMA

MODUL 3
A. PERCOBAAN
1. Type- Type data dasar dalam C.

Listing Program :

main()
{
int var_bulat = 32767;
float var_pecahan1 = 339.2345678f;
double var_pecahan2 = 3.4567e+40;
char var_karakter = 'S';
printf("Variabel bulat = %d\n", var_bulat);
printf("Variabel pecahan1 = %f\n", var_pecahan1);
printf("Variabel pecahan2 = %le\n", var_pecahan2);
printf("Variabel karakter = %c\n", var_karakter);
getch();
}

HASIL:

POLITEKNIK NEGERI MEDAN 17


LOGIKA DAN ALGORITMA

2. Mengenal beberapa operator dalam C.

Listing Program :

main()
{
int a, b, c, hasil;
printf("Masukkan nilai a = ");
scanf("%d", &a);

printf("Masukkan nilai b = ");


scanf("%d", &b);
printf("Masukkan nilai c = ");
scanf("%d", &c);
printf("\n");
hasil = a - b;
printf("Hasil pengurangan : a - b = %d\n", hasil);
printf("Hasil perkalian : b * c = %d\n", b * c);
hasil = a / c;
printf("Hasil pembagian : a / c = %d\n", hasil);
printf("Hasil operasi : a + b * c = %d\n", a + b * c);
getch();
}

HASIL:

POLITEKNIK NEGERI MEDAN 18


LOGIKA DAN ALGORITMA

3. Operator Modulus

Listing Program :

main()
{
int a = 14, b = 2, c = 3, d = 4;
printf("a = %d, b = %d, c = %d, d = %d\n\n",a, b, c, d);
printf("Hasil a %% b = %d\n", a % b);
printf("Hasil a %% c = %d\n", a % c);
printf("Hasil a %% d = %d\n", a % d);
printf("Hasil a / d * d + a %% d = %d\n", a / d * d + a % d);
getch();
}

Hasil :

POLITEKNIK NEGERI MEDAN 19


LOGIKA DAN ALGORITMA

4. Menghitung diskriminan pers kuadrat ax^2 + bx + c = 0


Listing Program :

main()
{
float a,b,c,d = 0;
a = 3.0f;
b = 4.0f;
c = 7.0f;
d = b*b-4*a*c;
printf("Diskriminan = %f\n",d);
getch();
}

HASIL:

5. Penggunaan pre & post Increment operator


Listing Program :

main()
{
int count = 0, loop;
loop = ++count; /* count=count+1; loop=count; */
printf("loop = %d, count = %d\n", loop, count);
loop = count++; /* loop=count; count=count+1; */
printf("loop = %d, count = %d\n", loop, count);
getch();
}

POLITEKNIK NEGERI MEDAN 20


LOGIKA DAN ALGORITMA

HASIL:

6. Perbedaan format %g, %e dan %f

LISTING PROGRAM :

main()
{
float x;
printf("Masukkan nilai pecahan yg akan ditampilkan : ");
scanf("%f", &x);
printf("format e => %e\n", x);
printf("format f => %f\n", x);
printf("format g => %g\n", x);
getch();
}

HASIL:

POLITEKNIK NEGERI MEDAN 21


LOGIKA DAN ALGORITMA

7. Penggunaan format panjang medan data

Listing Program :

main()
{
int nilai1 = 20;
float nilai2 = 500.0f;
printf("Abad %5d\n", nilai1);
printf("%10.2f\n", nilai2);
printf("%10s\n", "Bahasa C"); /* String rata kanan */
printf("%-10s\n", "Bahasa C"); /* String rata kiri */
getch();
}

HASIL:

POLITEKNIK NEGERI MEDAN 22


LOGIKA DAN ALGORITMA

B. LATIHAN
1. Pilihlah nama-nama variabel yang benar dan yang salah, mengapa ?

int : Salah, tidak termasuk variable karna int adalah type data

char : Salah, tidak termasuk variable karna char adalah type data

6_05 : Salah, karna karakter pertama adalah Angka

floating : Salah, karna floating adalah type data

_1312 : Benar, Karna penggabungan antara angka dan karakter

Calloc : Benar, karna tidak termasuk type data dalam Turbo C

Xxx : Benar, Karna ketiga huruf tersebut adalah karakter

A$ : Salah, karna mengandungn symbol khusus berupa $

ReInitialize : Benar, karna relnitialize tidak termasuk type data Turbo C

alpha_beta_routine : Benar, karna karakter tersebut tidak termasuk type data

xxx : Benar, karna ketiga huruf tersebut adalah karakter

z : Benar, karna z merupakan karakter

2. Apa yang dihasilkan oleh program di bawah ini :

Listing Program :

main()
{
char c, d;
c = 'd';
d = c;
printf("d = %c", d); }
HASIL:

POLITEKNIK NEGERI MEDAN 23


LOGIKA DAN ALGORITMA

3. Buatlah program untuk mengevaluasi polynomial di bawah ini :


3x^2– 5x + 6 dengan nilai x merupakan masukan dari user.

LISTING PROGRAM :
#include <stdio.h>
main()
{
int hasil;
int nilaix;
clrscr();

printf("Masukkan Nilai X : ");


puts("Dalam Persamaan 3x^2-5x+6");
scanf("%d",&nilaix);
hasil = 3*nilaix*nilaix-5*nilaix+6;
printf("Hasil Evaluasi : %d",hasil);
getch();
}

HASIL:

POLITEKNIK NEGERI MEDAN 24


LOGIKA DAN ALGORITMA

4. Buatlah program untuk mengkonversi suhu dari Celcius ke Fahrenheit dengan rumus
F = C * 1.8 + 32
Input : suhu dalam Celcius
Output : suhu dalam Fahrenheit

LISTING PROGRAM :
#include<stdio.h>
main()
{
float c, f;
clrscr();

printf("Masukkan suhu dalam Celcius :");


scanf("%f",&c);
f=c*1.8+32;
printf("Maka %.0f'C sama dengan %.0f'F",c,f);
getch();
}

HASIL:

POLITEKNIK NEGERI MEDAN 25


LOGIKA DAN ALGORITMA

MODUL 4
A. PERCOBAAN

1. Menghitung keliling dan luas lingkaran

LISTING PROGRAM :

/* File program : lingkaran.c */


#include <stdio.h>
main()
{ float radius, keliling, luas;
clrscr();

printf("Masukkan jari-jari lingkaran: ");


scanf("%f",&radius);
keliling = 2*3.14f*radius;
luas=0.5f*3.14f*radius*radius;

printf("\nData Lingkaran\n");
printf("Jari-jari = %8.2f\n",radius);
printf("Keliling = %8.2f\n", keliling);
printf("Luas = %8.2f\n",luas);
getch();
}

HASIL:

POLITEKNIK NEGERI MEDAN 26


LOGIKA DAN ALGORITMA

2. Menghitung Nilai Akhir Matakuliah

LISTING PROGRAM :
#include<stdio.h>
main()
{ float absen,tugas,mid,uas,na;
clrscr();
printf("Masukkan nilai kehadiran:");
scanf("%f",&absen);
printf("Masukkan nilai Tugas :");
scanf("%f",&tugas);
printf("Masukkan nilai mid : ") ;
scanf("%f",&mid);
printf("Masukkan nilai UAS : ") ;
scanf("%f",&uas);

na=0.1*absen+0.2*tugas+0.3*mid+0.4*uas;
printf("Nilai Akhir = %8.2f\n",na);
getch();
}

HASIL:

POLITEKNIK NEGERI MEDAN 27


LOGIKA DAN ALGORITMA

3. Mencari Luas Segitiga

LISTING PROGRAM :
#include<stdio.h>
main()
{
int alas,tinggi;
float luas ;
clrscr();

printf("Masukkan Alas Segitiga :");


scanf("%d",&alas);
printf("Masukkan Tinggi Segitiga :");
scanf("%d",&tinggi);
luas = alas*tinggi*0.5;
printf("Luas Segitiga = %.0f\n",luas);
getch();
}

HASIL:

POLITEKNIK NEGERI MEDAN 28


LOGIKA DAN ALGORITMA

B. LATIHAN
1. Buatlah algoritma dan program untuk menghitung total nilai, nilai rata-rata mahasiswa
dengan menginputkan 5 buah nilai.

LISTING PROGRAM :

#include<stdio.h>
main()
{ int n1,n2,n3,n4,n5;
int total;
float rata;
clrscr();

printf("*******Program Menghitung Nilai 5 Mahasiswa*******\n");


printf("\nMasukkan Nilai Mahasiswa 1 (0-100)");
scanf("%d",&n1);
printf("\nMasukkan Nilai Mahasiswa 2 (0-100)");
scanf("%d",&n2);
printf("\nMasukkan Nilai Mahasiswa 3 (0-100)");
scanf("%d",&n3);
printf("\nMasukkan Nilai Mahasiswa 4 (0-100)");
scanf("%d",&n4);
printf("\nMasukkan Nilai Mahasiswa 5 (0-100)");
scanf("%d",&n5);
total = n1+n2+n3+n4+n5 ;
rata = total/5 ;
printf("\nMaka Total NILAI = %d\n",total);
printf("\nRata-rata NILAI = %.0f\n",rata);
getch(); }
HASIL:

POLITEKNIK NEGERI MEDAN 29


LOGIKA DAN ALGORITMA

2. Buat algoritma dan program untuk menginputkan, menghitung dan menampilkan luas

persegi panjang, bujur sangkar

LISTING PROGRAM :
#include <stdio.h>
main()
{ float panjang, lebar, sisi;
float luas1, luas2;
clrscr();
printf("PROGRAM MENGHITUNG LUAS PERSEGI/PERSEGI PANJANG\n") ;
printf("----------------------------------------------\n");
printf("Masukkan PANJANG Persegi Panjang : ");
scanf("%f",&panjang);
printf("Masukkan LEBAR Persegi panjang : ");
scanf("%f",&lebar);
printf("Masukkan SISI suatu Bujur Sangkar : ");
scanf("%f",&sisi );

luas1= panjang*lebar;
luas2= sisi*sisi;
printf("Luas Persegi Panjang : = %8.2f\n",luas1);
printf("Luas Bujur Sangkar : = %8.2f\n",luas2);

getch();
}
HASIL:

POLITEKNIK NEGERI MEDAN 30


LOGIKA DAN ALGORITMA

3. Buatlah program untuk mengevaluasi polynomial di bawah ini :


3x^2– 5x + 6 dengan nilai x merupakan masukan dari user.

LISTING PROGRAM :
#include <stdio.h>
main()
{
int hasil;
int nilaix;
clrscr();

printf("Masukkan Nilai X : ");


puts("Dalam Persamaan 3x^2-5x+6");
scanf("%d",&nilaix);
hasil = 3*nilaix*nilaix-5*nilaix+6;
printf("Hasil Evaluasi : %d",hasil);
getch();
}

HASIL:

POLITEKNIK NEGERI MEDAN 31


LOGIKA DAN ALGORITMA

MODUL 5
A. PERCOBAAN

1. Menghitung nilai discount menggunakan if.

Listing Program:
main()
{
double total_pembelian, discount = 0;
clrscr();
printf("Total pembelian = Rp ");
scanf("%lf", &total_pembelian);
if(total_pembelian >= 100000)
discount = 0.05 * total_pembelian;
printf("Besarnya discount = Rp .2lf\n", discount); getch();}

HASIL:

POLITEKNIK NEGERI MEDAN 32


LOGIKA DAN ALGORITMA

2. Menghitung nilai absolut suatu bilangan.

LISTING PROGRAM :
/* File program : absolut.c */
#include <stdio.h>
main()
{ int bil, abs;
clrscr();

printf("Masukkan bilangan bulat : ");


scanf("%d", &bil);
if(bil < 0)
abs = -bil;
else
abs = bil;
printf("Nilai absolut dari %d adalah %d\n\n", bil, abs);

getch();
}
HASIL:

POLITEKNIK NEGERI MEDAN 33


LOGIKA DAN ALGORITMA

3. Pemakaian if-else untuk menyeleksi bilangan pembagi

LISTING PROGRAM :
/* File program : bagi1.c */
#include <stdio.h>
main()
{
float a, b;
clrscr();

printf("Masukkan nilai a : ");


scanf("%f", &a);
printf("Masukkan nilai b : ");
scanf("%f", &b);
printf("\n");
if (b == 0)
printf("%g dibagi dengan nol = TAK BERHINGGA\n", a);
else
printf("%g dibagi dengan %g = %g\n", a, b, a/b);
getch();
}

HASIL:

POLITEKNIK NEGERI MEDAN 34


LOGIKA DAN ALGORITMA

4. Pemakaian if-else untuk mengecek hasil modulus.

Listing program :
main()
{
int bil1, bil2, sisa;
clrscr();
printf("Masukkan bilangan pertama : ");
scanf("%d", &bil1);
printf("Masukkan bilangan kedua : ");
scanf("%d", &bil2);
sisa = bil1 % bil2;
printf("\n");
if (sisa == 0)
printf("%d habis dibagi dengan %d\n\n", bil1, bil2);
else
printf("%d tidak habis dibagi dengan %d\n\n",
bil1, bil2);
getch();
}

HASIL:

POLITEKNIK NEGERI MEDAN 35


LOGIKA DAN ALGORITMA

5. Mengkategorikan karakter masuk

LISTING PROGRAM :
/* File program : tebak.c */
#include <stdio.h>
main()
{ char karakter;
clrscr();

printf("Masukkan sebuah karakter : ");


scanf("%c", &karakter);
if ((karakter >= 'a' && karakter <= 'z') || (karakter >=
'A' && karakter <= 'Z'))
printf("%c adalah karakter alphabet\n", karakter);
else if (karakter >= '0' && karakter <= '9')
printf("%c adalah bilangan\n", karakter);
else
printf("%c adalah karakter khusus\n", karakter);

getch();
}

HASIL:

POLITEKNIK NEGERI MEDAN 36


LOGIKA DAN ALGORITMA

6. Mengkategorikan bilangan bulat dengan memberinya tanda 1, 0 atau -1.

Listing Program :
main()
{
int bil, tanda;
clrscr();
printf("Masukkan sebuah bilangan : ");
scanf("%d", &bil);
if (bil < 0)
tanda = -1;
else if (bil == 0)
tanda = 0;
else
tanda = 1;
printf("Bilangan %d memiliki tanda %d\n", bil, tanda);
getch();
}

HASIL:

POLITEKNIK NEGERI MEDAN 37


LOGIKA DAN ALGORITMA

7. Implementasi program kalkulator sederhana menggunakan else-if.


Listing Program :
main()
{ /* valid_operator diinisialisasi dg logika 1 */
int valid_operator = 1;
char operator;
float bil1, bil2, hasil;
clrscr();
printf("Masukkan 2 buah bilangan dan sebuah operator\n");
printf("dengan format : bil1 operator bil2\n\n");
scanf("%f %c %f", &bil1, &operator, &bil2);
if(operator == '*')
hasil = bil1 * bil2;
else if(operator == '/')
hasil = bil1 / bil2;
else if(operator == '+')
hasil = bil1 + bil2;
else if(operator == '-')
hasil = bil1 - bil2;
else
valid_operator = 0;
if(valid_operator)
printf("%g %c %g is %g\n", bil1, operator, bil2,
hasil);
else
printf("Invalid operator!\n");
getch();

HASIL:

POLITEKNIK NEGERI MEDAN 38


LOGIKA DAN ALGORITMA

8. Implementasi program kalkulator sederhana menggunakan switch - case.


Listing Program :
main()
{
/* valid_operator diinisialisasi dg logika 1 */
int valid_operator = 1;
char operator;
float bil1, bil2, hasil;
clrscr();
printf("Masukkan 2 buah bilangan dan sebuah operator\n");
printf("dengan format : bil1 operator bil2\n\n");
scanf("%f %c %f", &bil1, &operator, &bil2);
switch(operator) {
case '*' : hasil = bil1 * bil2; break;
case '/' : hasil = bil1 / bil2; break;
case '+' : hasil = bil1 + bil2; break;
case '-' : hasil = bil1 - bil2; break;
default : valid_operator = 0;
}
if(valid_operator)
printf("%g %c %g is %g\n", bil1, operator, bil2,hasil);
else
printf("Invalid operator!\n");
getch();
}

HASIL:

POLITEKNIK NEGERI MEDAN 39


LOGIKA DAN ALGORITMA

B. LATIHAN
1. Buatlah algoritma dan program untuk menerima input 2 buah bilangan bulat. Tampilkan
hasil dari pembagian bilangan pertama dengan bilangan kedua, dengan ketelitian 3
desimal.
Input : bil1 dan bil2
Output : hasil bagi bil1 dengan bil2
Nilai tambah : program bisa mengecek pembagian dengan nol, yaitu jika bilangan kedua
adalah nol, maka tidak dilakukan proses pembagian, namun ditampilkan pesan
kesalahannya (division by zero).

LISTING PROGRAM :
main()
{
float a,b;
clrscr();

printf("Masukkan Bilangan 1 : ");


scanf("%f", &a);
printf("Masukkan Bilangan 2 : ");
scanf("%f", &b);
printf("\n");
if (b == 0)
printf("%g dibagi dengan nol = devision by zero \n",a);
else
printf("%g dibagi dengan %g = %g\n", a, b, a/b);
getch();
}
HASIL:

POLITEKNIK NEGERI MEDAN 40


LOGIKA DAN ALGORITMA

2. Buatlah algoritma dan program untuk menghitung determinan dan mencari akar-akar dari
persamaan kuadrat : ax2 + bx + c = 0 , dengan ketentuan sbb :
D = b2 - 4ac
• Jika D = 0 , maka terdapat 2 akar real yang kembar, yaitu : x1 = x2 = -b / 2a
• Jika D > 0 , maka terdapat 2 akar real yang berlainan, yaitu :
x1 = (-b + sqrt(D)) / 2a
x2 = (-b - sqrt(D)) / 2a
• Jika D < 0 , maka terdapat 2 akar imaginair yang berlainan, yaitu :
x1 = -b / 2a + (sqrt(-D) / 2a) i
x2 = -b / 2a - (sqrt(-D) / 2a) i
Input : a, b, c (float)
Output : Nilai Determinan serta nilai akar-akar persamaan tsb (x1& x2).
Petunjuk : - untuk mencari akar dari x, gunakan : sqrt(x) yang didefinisikan pada
<math.h>.
- gunakan else if

LISTING PROGRAM :
main()
{
int a,b,c,D;
float x1, x2;
clrscr();
printf("Masukkan Nilai A = "); scanf("%d", &a);
printf("Masukkan Nilai B = "); scanf("%d", &b);
printf("Masukkan Nilai C = "); scanf("%d", &c);
D=(b*b)-(4*a*c);
printf("Hasil Determinan = %d",D);
if(D==0){
x1=x2=-b/2*a;
printf("\nMaka Terdapat 2 Akar Real Yang Kembar, Yaitu x1=x2");
printf("\nx1=%.0f",x1);
printf("\nx2=%.0f",x2);
}
else if(D>0){
x1=(-b)+sqrt(D)/2*a;
x2=(-b)-sqrt(D)/2*a;
printf("\nMaka Terdapat 2 akar Real Yang Berlainan, Yaitu = ");
printf("\nx1=(-b+sqrt(D))/2a = %.0f", x1);
printf("\nx2=(-b-sqrt(D))/2a = %.0f", x2);
}
else if(D<0){
x1=(-b)/2*a+(sqrt(-D)/2*a);
x2=(-b)/2*a-(sqrt(-D)/2*a);
printf("\nMaka Terdapat akar Imaginer Yang Berlainan, yaitu = ");
printf("\nx1=-b/2a+(sqrt(-D)/2a)i =%.0f",x1);
printf("\nx2=-b/2a-(sqrt(-D)/2a)i =%.0f",x2);}
getch(); }

POLITEKNIK NEGERI MEDAN 41


LOGIKA DAN ALGORITMA

HASIL:

3. Buatlah algoritma dan program untuk menampilkan menu dan melakukan proses sbb :
Menu :
1. Menghitung volume kubus
2. Menghitung luas lingkaran
3. Menghitung volume silinder.
Input : pilihan user (1, 2 atau 3)
Jika pilihan = 1, maka :
Input : panjang sisi kubus
Output : Volume kubus (vol = sisi3)
Jika pilihan = 2, maka :
Input : panjang jari-jari lingkaran
Output : Luas lingkaran (luas = 3.14 * r2)
Jika pilihan = 3, maka :
Input : panjang jari-jari lingkaran & tinggi silinder
Output : Volume silinder (vol = 3.14 * r2 * t)
Jika pilihan selain 1, 2 & 3 (default) : Tampilkan pesan kesalahan.
Petunjuk : gunakan switch-case

LISTING PROGRAM :
main()
{
char pilih;
float sisi,tinggi,jari;
float v,luas,vs;
clrscr();

puts("****PROGRAM MENGHITUNG LUAS/BANGUN BANGUN****");

POLITEKNIK NEGERI MEDAN 42


LOGIKA DAN ALGORITMA

puts("Pilihan Menu :");


puts("1.Volume Kubus");
puts("2.Luas Lingkaran");
puts("3.Volume Silinder");
printf("\nMasukkan Pilihan Anda[1-3]:");
scanf("%s",&pilih);
switch(pilih)
{ case'1':
printf("Panjang Sisi Kubus :");scanf("%f",&sisi);
v=sisi*sisi;
printf("Volume kubus =%.0f",v);break;

case'2':
printf("Panjang Jari-Jari Lingkaran :");scanf("%f",&jari);
luas=3.14*jari*jari;
printf("Luas lingkaran =%.0f",luas);break;

case'3':
printf("Panjang Jari-Jari Alas Silinder :");scanf("%f",&jari);
printf("Tinggi Silinder :");scanf("%f",&tinggi);
vs=3.14*jari*jari*tinggi;
printf("Volume Silinder =%.0f",vs);break;
default : printf("PILIHAN TAK TERSEDIA");}
getch();
}
HASIL:

POLITEKNIK NEGERI MEDAN 43


LOGIKA DAN ALGORITMA

4. Kumpulkan hasil Program berikut

Listing Program :

main()
{
char nip[9], nama[15];
int gol,st;
float gapok,tjg,gk,pph,gb;
clrscr();
printf("DAFTAR GAJI PEGAWAI\n");
printf("Inputkan NIP Pegawai : "); scanf("%s" ,&nip);
printf("Inputkan Nama Pegawai : "); scanf("%s" ,&nama);
printf("Inputkan Golongan (1-4) : "); scanf("%d" ,&gol);
printf("Inputkan Status (1=Maried,2=single): "); scanf("%d" ,&st);
if (gol==1)
gapok=900000;
if (gol==2)
gapok=1250000;
if (gol==3)
gapok=1750000;
if (gol==4)
gapok=2500000;
if (st==1)
tjg=0.25*gapok;
if (st==2)
tjg=0.05*gapok;
gk=gapok+tjg;
pph=0.1*gapok;
gb=gk-pph;
printf("Gaji Pokok : %.2f\n",gapok);
printf("Tunjangan : %.2f\n",tjg);

POLITEKNIK NEGERI MEDAN 44


LOGIKA DAN ALGORITMA

printf("Gaji Kotor : %.2f\n",gk );


printf("PPh : %.2f\n",pph);
printf("Gaji Bersih : %.2f\n",gb );
getch();
}
HASIL:

POLITEKNIK NEGERI MEDAN 45


LOGIKA DAN ALGORITMA

MODUL 6
A. PERCOBAAN
1. Menghitung jumlah kata dan karakter dalam suatu kalimat
Listing Program :

#include <stdio.h>
main(){
char kar;
int jumkar = 0, jumspasi = 0;
clrscr();
puts("Masukkan sebuah kalimat dan akhiri dengan ENTER.");
puts("Saya akan menghitung jumlah karakter ");
puts("pada kalimat tersebut.\n");
while((kar = getchar()) != '\n'){
jumkar++;
if (kar == ' ') jumspasi++;}
printf("\nJumlah karakter = %d", jumkar);
printf("\nJumlah SPASI = %d\n\n", jumspasi);
getch();}

HASIL:

POLITEKNIK NEGERI MEDAN 46


LOGIKA DAN ALGORITMA

2. Membalik angka menggunakan pernyataan while().


Listing Program :

#include <stdio.h>
main()
{
int bil, digit_kanan;
printf("Masukkan bilangan yang mau dibalik : ");
scanf("%d", &bil);
printf("Hasil pembalikannya = ");
while(bil != 0)
{
digit_kanan = bil % 10;
printf("%d", digit_kanan);
bil = bil / 10;
}
printf("\n");
getch();}

HASIL:

POLITEKNIK NEGERI MEDAN 47


LOGIKA DAN ALGORITMA

1. Membaca tombol yang ditekan.


Listing Program :

#include <stdio.h>
main()
{
char pilihan;
int sudah_benar = 0; /* diberi nilai salah lebih dahulu */
printf("Pilihlah Y atau T.\n");
/* program dilanjutkan jika tombol Y,y,T atau t ditekan */
while(!sudah_benar)
{
pilihan = getchar(); /* baca tombol */
sudah_benar = (pilihan == 'Y') || (pilihan == 'y')||
(pilihan == 'T') || (pilihan == 't');
getch();
}
/* memberi keterangan tentang pilihan */
switch(pilihan)
{
case 'Y':
case 'y':
puts("\nPilihan anda adalah Y");
break;
case 'T':
case 't':
puts("\nPilihan anda adalah T");
}
getch();}

HASIL:

POLITEKNIK NEGERI MEDAN 48


LOGIKA DAN ALGORITMA

1. Membuat Tabel Faktorial menggunakan do-while


Listing Program :

#include<stdio.h>
main()
{
int k,i=1,fak=1;
printf("Masukkan nilai yang akan difaktorialkan = ");
scanf("%d",&k);
printf("\n\nTabel faktorial \n ");
printf("%3s %7s","k","faktorial\n");
do
{
fak=fak*i;
printf("%3d %7d \n",i,fak);
i++;
}while(i<=k);
getch();}

HASIL:

POLITEKNIK NEGERI MEDAN 49


LOGIKA DAN ALGORITMA

1. Menghitung harga total pembelian minuman


Listing Program :
#include<stdio.h>
main()
{
int jumlah,kode;
float harga,total;
double bayar;
char kar;
printf("kode Jenis Harga\n");
printf("1 Milo Rp 10.000\n");
printf("2 Kopi Rp. 5000\n");
printf("3 Coca Cola Rp 2500\n");
printf("4 Orange Juice Rp 2000\n");
total=0;
do {
printf("Masukkan kode minuman : \n");
scanf("%d",&kode);
printf("Masukkan jumlah pesanan ");
scanf("%d",&jumlah);
if(kode==1)
harga = (float) 10000*jumlah;
else if(kode==2)
harga = (float)5000*jumlah;
else if(kode==3)
harga = (float)2500*jumlah;
else if(kode==4)
harga = (float)2000*jumlah;
total=total+harga;
printf("Mau menambah pesanan ? (Y/T)\n");
scanf("%s",&kar);
} while(kar=='Y');
if(total > 100000)
bayar=total-(0.15*total);
else
bayar=total;
printf("\nHarga yang harus dibayar = %10.2f\n",bayar);
getch();}

POLITEKNIK NEGERI MEDAN 50


LOGIKA DAN ALGORITMA

HASIL:

POLITEKNIK NEGERI MEDAN 51


LOGIKA DAN ALGORITMA

B. LATIHAN
1. Buatlah algoritma dan program untuk menampilkan semua bilangan genap yang terletak
antara 20 sampai dengan 200, dengan menggunakan While.

LISTING PROGRAM :
main()
{ int bil,bil2;
clrscr();
puts("++++PROGRAM MENAMPILKAN BILANGAN GENAP ANTAR BILANGAN by
WALLEN++++");
puts("Masukkan bilangan awal:");
scanf("%d",&bil);
puts("Masukkan bilangan akhir:");
scanf("%d",&bil2);

while(bil<=bil2)
{ printf("%d ",bil);
bil=bil+2;
}
getch();
}

HASIL:

POLITEKNIK NEGERI MEDAN 52


LOGIKA DAN ALGORITMA

2. Buatlah algoritma dan program untuk menghitung jumlah angka dari suatu bilangan.
Contohnya : Jumlah angka dari bilangan 3255 = 3 + 2 + 5 + 5 = 15
Jumlah angka dari bilangan 4589 = 4 + 5 + 8 + 9 = 26 dan sebagainya

LISTING PROGRAM :
#include<stdio.h>
main()
{
int a,b,h=0;
clrscr();

puts("-------- Program Menjumlahkan Digit Pada Bilangan by WALLEN --------");


printf("Masukan Bilangan:");
scanf("%d",&a);
puts("Maka Bilangan yang dijumlahkan adalah:");
while(a !=0)
{
b=a%10;
a=a/10;
h=h+b;
printf("%d\n",b);
}
printf("Hasil Penjumlahan dari bilangan diatas adalah:%d\n",h);
getch();
}

HASIL:

POLITEKNIK NEGERI MEDAN 53


LOGIKA DAN ALGORITMA

3. Buatlah algoritma dan program untuk menerima daftar nilai mahasiswa sbb :
Input : - Jumlah data (n)
- Nilai ke-1 s/d Nilai ke-n
Output : - Nilai minimal
- Nilai maksimal
- Nilai rata-rata (rata-rata = nilai total / jumlah data)

LISTING PROGRAM :
#include<stdio.h>
main()
{
int i, n, nilai;
float rata;
int max=0, min=0, jumlah=0;
clrscr();

printf(">>Daftar Nilai Mahasiswa\n");


printf("Masukkan jumlah DATA NILAI yang ingin dimasukkan : ");
scanf("%d", &n);

i=1 ;
do{
printf("nilai ke-%d:",i);
scanf("%d", &nilai);
jumlah = jumlah + nilai;
if(nilai>max){
max=nilai;}
else if(nilai<min||min==0) {
min=nilai;}
i++;
}while(i<=n);

rata = jumlah/n;
printf("Nilai Terkecil(min) = %d\n", min);
printf("Nilai Terbesar(max) = %d\n", max);
printf("Nilai rata-rata = %g\n", rata);

getch();
}

POLITEKNIK NEGERI MEDAN 54


LOGIKA DAN ALGORITMA

HASIL:

POLITEKNIK NEGERI MEDAN 55


LOGIKA DAN ALGORITMA

QUIS 1
LISTING PROGRAM :
#include<stdio.h>
main()
{ float harga,total,cicilan;
char cara,tipe,nama ;
clrscr();

puts("************PROGRAM RUMAH MURAH DARI PT.INDO HOUSE*************");

printf("\nMasukkan Nama Pembeli :");


scanf("%s",&nama);

puts("----------------------------------------------------------------");
puts("..........................PILIHAN RUMAH.........................");
puts("Rumah A harga TUNAI Rp. 50.000.000 atau KREDIT Rp. 500.000/bulan (10tahun)");
puts("Rumah B harga TUNAI Rp. 75.000.000 atau KREDIT Rp. 750.000/bulan (10tahun)");
puts("Rumah C harga TUNAI Rp. 85.000.000 atau KREDIT Rp. 850.000/bulan (10tahun)");
puts("Rumah D harga TUNAI Rp. 100.000.000 atau KREDIT Rp. 1.000.000/bulan
(10tahun)");
puts("Rumah E harga TUNAI Rp. 130.000.000 atau KREDIT Rp. 1.200.000/bulan (10tahun)");
puts("Masukkan tipe rumah : <A> <B> <C> <D> <E>");
scanf("%s",&tipe);

switch(tipe)
{ case 'A' : {harga = 50000000;
printf("Tipe Rumah A = Rp %.0f",harga);break;}
case 'B' : {harga = 75000000;
printf("Tipe Rumah B = Rp %.0f",harga);break;}
case 'C' : {harga = 85000000;
printf("Tipe Rumah C = Rp %.0f",harga);break;}
case 'D' : {harga = 100000000;
printf("Tipe Rumah D = Rp %.0f",harga);break;}
case 'E' : {harga = 120000000;
printf("Tipe Rumah E = Rp %.0f",harga);break;}
default : { printf("PILIHAN BELUM TERSEDIA");}
}

puts("\nPilih cara bayar TUNAI<T> atau KREDIT<K>");


scanf("%s",&cara);

switch(cara)

POLITEKNIK NEGERI MEDAN 56


LOGIKA DAN ALGORITMA

{ case 'T' : {printf("\nMaka anda membayar : Rp %.0f",harga);break;}


case 'K' : {cicilan = harga/100;
harga= 12*cicilan*10;
printf("\nMaka cicilan/bulan anda :Rp %.0f selama 10 tahun",cicilan);
printf("\natau seharga : Rp %.0f",harga);break;}
default:{printf("\nCARA BAYAR TIDAK TERSEDIA");}
}

getch();
}

HASIL:

POLITEKNIK NEGERI MEDAN 57


LOGIKA DAN ALGORITMA

POLITEKNIK NEGERI MEDAN 58

Anda mungkin juga menyukai