LAPORAN PRAKTIKUM
LOGIKA DAN ALGORITMA
DISUSUN OLEH
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
Adapun tujuan dan maksud penulis membuat laporan ini adalah sebagai salah
satu pemenuhan tugas mata kuliah Logika dan Algoritma. Penulis juga menyampaikan
pembimbing materi pada pembuatan laporan ini, sekaligus juga kepada segenap pihak
Penulis menyadari bahwa masih ada banyak kekurangan yang terdapat pada
saran yang membangun untuk penulis jadikan sebagai bahan evaluasi demi
Penulis berharap semoga Laporan Praktikum Logika dan Algorima ini dapat
Penulis,
DAFTAR ISI
COVER ..........................................................................................................................................1
MODUL 1 .................................................................................................................................. 6
LATIHAN .................................................................................................................................. 6
MODUL 2 .................................................................................................................................. 12
PERCOBAAN ............................................................................................................................ 12
LATIHAN .................................................................................................................................. 13
MODUL 3 .................................................................................................................................. 17
PERCOBAAN ............................................................................................................................ 17
LATIHAN .................................................................................................................................. 23
MODUL 4 .................................................................................................................................. 26
PERCOBAAN ............................................................................................................................ 26
LATIHAN ................................................................................................................................. 29
MODUL 5 .................................................................................................................................. 31
PERCOBAAN ........................................................................................................................... 32
LATIHAN ................................................................................................................................. 40
MODUL 6 ............................................................................................................................... 46
PERCOBAAN ............................................................................................................................ 46
LATIHAN .................................................................................................................................. 52
QUIS .................................................................................................................................. 56
MODUL 1
LATIHAN
1. Menjumlahkan 2 buah bilangan dan mencetak hasilnya
LISTING PROGRAM :
#include<stdio.h>
main()
{
int bil1;
int bil2;
int bil3;
clrscr();
bil3=bil1+bil2;
getch();
}
HASIL:
LISTING PROGRAM :
#include<stdio.h>
main()
{
int bil1;
int bil2;
int bil3;
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 :
#include<stdio.h>
main()
{
int a ;
int b ;
int c ;
char x;
clrscr();
LISTING PROGRAM :
main()
{
float PHI=3.14;
float jari,luas,keliling;
clrscr();
getch();
}
HASIL :
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();
HASIL:
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 :
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:
Listing Program :
main()
{
int jumlah;
clrscr();
jumlah = 25 + 37 - 19;
printf("Berapa hasil perhitungan 25 + 37 - 19 ?\n");
printf("Jawabannya adalah %d\n");
getch();
}
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:
LISTING PROGRAM :
main()
{ int a,A;
int b,B;
float c,x,y,z;
clrscr();
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:
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:
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:
Listing Program :
main()
{
int a, b, c, hasil;
printf("Masukkan nilai a = ");
scanf("%d", &a);
HASIL:
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 :
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:
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();
}
HASIL:
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:
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:
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
Listing Program :
main()
{
char c, d;
c = 'd';
d = c;
printf("d = %c", d); }
HASIL:
LISTING PROGRAM :
#include <stdio.h>
main()
{
int hasil;
int nilaix;
clrscr();
HASIL:
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();
HASIL:
MODUL 4
A. PERCOBAAN
LISTING PROGRAM :
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:
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:
LISTING PROGRAM :
#include<stdio.h>
main()
{
int alas,tinggi;
float luas ;
clrscr();
HASIL:
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();
2. Buat algoritma dan program untuk menginputkan, menghitung dan menampilkan luas
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:
LISTING PROGRAM :
#include <stdio.h>
main()
{
int hasil;
int nilaix;
clrscr();
HASIL:
MODUL 5
A. PERCOBAAN
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:
LISTING PROGRAM :
/* File program : absolut.c */
#include <stdio.h>
main()
{ int bil, abs;
clrscr();
getch();
}
HASIL:
LISTING PROGRAM :
/* File program : bagi1.c */
#include <stdio.h>
main()
{
float a, b;
clrscr();
HASIL:
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:
LISTING PROGRAM :
/* File program : tebak.c */
#include <stdio.h>
main()
{ char karakter;
clrscr();
getch();
}
HASIL:
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:
HASIL:
HASIL:
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();
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(); }
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();
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:
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);
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:
#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:
#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:
#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:
HASIL:
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:
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();
HASIL:
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();
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();
}
HASIL:
QUIS 1
LISTING PROGRAM :
#include<stdio.h>
main()
{ float harga,total,cicilan;
char cara,tipe,nama ;
clrscr();
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");}
}
switch(cara)
getch();
}
HASIL: