Senin, 13 Oktober 2014

Lat. Soal Algoritma Pemrograman



Buatlah algoritma untuk menghitung pembayaran tiket pesawat yang dibeli. Data penerbangan terdiri atas : nomor penerbangan, bandara asal, bandara tujuan, tanggal keberangkatan, jam keberangkatan (departure time), jam datang (arrival time), jumlah penumpang, harga tiket.
Gunakan tipe data record.
Tampilan atur sebagus mungkin untuk memberikan informasi yang jelas.

Program PERHITUNGAN_BIAYA_TIKET_PESAWAT
{Menghitung pembayaran tiket pesawat serta menampilkan data penerbangan yang dimaksud}

DEKLARASI:
type flight_dt : record
                < flight_no              : string
                    dep_airport        : string
                    arr_airport          : string
                    dep_date            : string
                    dep_time            : string
                    arr_time              : string
                    ticket_price        : integer
                    pass_on_board            : integer
                    payment              : integer>

flight          : flight_dt

ALGORITMA:
READ(flight.flight_no)
READ(flight.dep_airport)
READ(flight.arr_airport)
READ(flight.dep_date)
READ(flight.dep_time)
READ(flight.arr_time)
READ(flight.ticket_price)
READ(flight.pass_on_board)

flight.payment = flight.ticket_price * flight.pass_on_board

WRITELN(“------------------------------------”)
WRITELN(“Biaya Tiket Pesawat”)
WRITELN(“------------------------------------”)
WRITELN(“Untuk penerbangan---”)
WRITELN(“No. Penerbangan : ”, flight.flight_no)
WRITELN(“Bandara asal : ”, flight.dep_airport)
WRITELN(“Bandara tujuan : ”, flight.arr_airport)
WRITELN(“Tgl. keberangkatan : ”, flight.dep_date)
WRITELN(“Jam keberangkatan : ”, flight.dep_time)
WRITELN(“Jam datang : ”, flight.arr_time)
WRITELN(“------------------------------------”)
WRITELN(“Dengan---”)
WRITELN(“Harga tiket : ”, flight.ticket_price)
WRITELN(“Jumlah penumpang : ”, flight.pass_on_board)
WRITELN(“------------------------------------”)
WRITELN(“Adalah---”)
WRITE(“Total biaya : ”, flight.payment)













                   

Teknik Informatika ~ Latihan soal Algoritma


Soal
1.       Buatlah algoritma dan program C++ untuk mencari titik tengah dari 2 titik P1 dan P2 dan tampilkan kedua titik dan titik tengahnya dilayar.
2.       Buatlah algoritma dan program C++ untuk menampilkan :
a.       Jika yang dimasukkan bilangan positif, maka tampil “…. Adl bil positif”
b.      Jika yang dimasukkan bilangan negative, maka tampil “…. Adl bil negatif”
c.       Jika yang dimasukkan bilangan nol, maka tampil “…. Adl bilangan 0”
3.       Buatlah algoritma dan program C++ untuk menampilkan pesan :
a.       Jika titik P (+.+), maka tampilkan pesan “….. terletak di kuadran 1”
b.      Jika titik P (+.-), maka tampilkan pesan “….. terletak di kuadran 2”
c.       Jika titik P (-.-), maka tampilkan pesan “….. terletak di kuadran 3”
d.      Jika titik P (-.+), maka tampilkan pesan “….. terletak di kuadran 4”
4.       Seseorang menyimpan uang di bank sebesar Rp. 1.000.000 dengan bunga 2% per bulan. Setelah satu bulan menjadi Rp. 1.020.000. Susun program untuk :
a.       Menghitung dan mencetak jumlah uang setelah 12 bulan.
b.      Pada bulan ke berapa uangnya menjadi > 1.500.000
Jawab!
1.       C++
#include <iostream.h>
#include <conio.h>

void main()
{
int i;
struct koor
{float x;
float y;};
koor titik1;
koor titik2;
koor titik_tgh;

cout<<"Masukkan titik 1 (x)= "; cin>>titik1.x;
cout<<"Masukkan titik 1 (y)= "; cin>>titik1.y;
cout<<"Masukkan titik 2 (x) = "; cin>>titik2.x;
cout<<"Masukkan titik 2 (y) = "; cin>>titik2.y;

titik_tgh.x = (titik1.x + titik2.x) / 2;
titik_tgh.y = (titik1.y + titik2.y) / 2;

cout<<"Titik 1 = ("<<titik1.x<<","<<titik1.y<<")"<<endl;
cout<<"Titik 2 = ("<<titik2.x<<","<<titik2.y<<")"<<endl;
cout<<"Titik tengah = ("<<titik_tgh.x<<","<<titik_tgh.y<<")";
getch();

2.       Algoritma
Program MENENTUKAN_JENIS_BILANGAN
{Menentukan apakah input bilangan termasuk bilangan positif, negatif, atau netral}

DEKLARASI :
bil : integer

ALGORITMA :
Read(bil)

IF (bil>0) THEN
                write(bil, “ adalah bilangan positif.”)
ELSE IF (bil<0) THEN
                write(bil, “ adalah bilangan negatif.”)
ELSE
                Write(bil, “ adalah bilangan 0.”)
END IF
END IF

C++
#include <iostream.h>
#include <conio.h>

void main()
{
int bil;

ALGORITMA :
cout<<"Masukkan bilangan = ";cin>>bil;

if (bil>0)
                {cout<<bil<<" adalah bilangan positif.";}
else if (bil<0)
                {cout<<bil<<" adalah bilangan negatif.";}
else
                {cout<<bil<<" adalah bilangan 0.";}

getch();
}
3.       Algoritma
Program MENENTUKAN_KUADRAN_TITIK
{Menentukan kuadran dari suatu titik}

DEKLARASI :
type koor : record
< x : integer
   y : integer >
titik : koor

ALGORITMA :
Read(titik.x)
Read(titik.y)

IF (titik.x >0 AND titik.y > 0) THEN
                Write(“Titik P(“,titik.x,”,” titik.y,”) terletak di kuadran 1.”)
ELSE IF (titik.x >0 AND titik.y < 0) THEN
                Write(“Titik P(“,titik.x,”,” titik.y,”) terletak di kuadran 2.”)
ELSE IF (titik.x <0 AND titik.y < 0) THEN
                Write(“Titik P(“,titik.x,”,” titik.y,”) terletak di kuadran 3.”)
ELSE IF (titik.x <0 AND titik.y > 0) THEN
                Write(“Titik P(“,titik.x,”,” titik.y,”) terletak di kuadran 4.”)
ELSE
                Write(“Titik P(“,titik.x,”,” titik.y,”) adalah titik 0.”)

C++
#include <iostream.h>
#include <conio.h>

void main()
{
struct koor
{int x;
int y;};
koor titik;

cout<<"Masukkan nilai x = ";cin>>titik.x;
cout<<"Masukkan nilai y = ";cin>>titik.y;

if (titik.x >0 && titik.y > 0)
                {cout<<"Titik P("<<titik.x<<","<<titik.y<<") terletak di kuadran 1.";}
else if (titik.x >0 && titik.y < 0)
                {cout<<"Titik P("<<titik.x<<","<<titik.y<<") terletak di kuadran 2.";}
else if (titik.x <0 && titik.y < 0)
                {cout<<"Titik P("<<titik.x<<","<<titik.y<<") terletak di kuadran 3.";}
else if (titik.x <0 && titik.y > 0)
                {cout<<"Titik P("<<titik.x<<","<<titik.y<<") terletak di kuadran 4.";}
else
                {cout<<"Titik P("<<titik.x<<","<<titik.y<<") adalah titik 0.";}

getch();
}

4.       Seseorang menyimpan uang di bank sebesar Rp. 1.000.000 dengan bunga 2% per bulan. Setelah satu bulan menjadi Rp. 1.020.000. Susun program untuk :
a.       Menghitung dan mencetak jumlah uang setelah 12 bulan.
b.      Pada bulan ke berapa uangnya menjadi > 1.500.000
Program PERHITUNGAN_TABUNGAN_UANG_DI_BANK
{Menghitung dan mencetak jumlah uang di bank setelah 12 bulan, serta menampilkan pada bulan ke berapa uang tersebut mencapai 1.500.000}

DEKLARASI :
a : integer
simpan, total, bunga, capai : riil

ALGORITMA :
simpan ß 1000000
total ß simpan

for (aß1) to 12
                bunga = total * 0.02
                total = total + bunga
                end for
                aß1
capai ß simpan
                while (capai < 1500000) do
                                bunga = capai * 0.02
                                capai = capai + bunga
                                a = a + 1
                end while
                aßa-1
                writeln(“Dengan simpanan awal sebesar 1000000”)
                writeln(“Jumlah uang Anda setelah 12 bulan adalah ”, total)
write(“Jumlah uang Anda akan mencapai 1500000 dalam ”, a, “ bulan”)


Program KONVERSI_ANGKA_KE_KATA



Buatlah algoritma untuk mengkonversi masukan angka dijadikan dalam ribuan, ratusan, puluhan, dan satuan.
Contoh : 5438 = 5 ribuan, 4 ratusan, 3 puluhan dan 8 satuan
Program KONVERSI_ANGKA_KE_KATA
{Mengkonversi masukan angka menjadi bentuk ribuan, ratusan, puluhan dan satuan}

DEKLARASI :
type dt_bilangan : record
< angka    : integer
    ribu        : integer
    ratus      : integer
    puluh    : integer >
konv      : dt_bilangan
sisa         : dt_bilangan




ALGORITMA :
READ(konv.angka)
IF(konv.angka >= 1000) THEN
                konv.ribu = konv.angka div 1000
                sisa.ribu = konv.angka mod 1000
                konv.ratus = sisa.ribu div 100
                sisa.ratus = sisa.ribu mod 100
                konv.puluh = sisa.ratus div 10
                sisa.puluh = sisa.ratus mod 10
ELSE
IF(konv.angka>=100) THEN
                                konv.ribu = 0
                                konv.ratus = konv.angka div 100
                                sisa.ratus = konv.angka mod 100
                                konv.puluh = sisa.ratus div 10
                                sisa.puluh = sisa.ratus mod 10   
ELSE
IF(konv.angka>= 10) THEN
                                                konv.ribu = 0
                                                konv.ratus = 0
                                                konv.puluh = konv.angka div 10
                                                sisa.puluh = konv.angka mod 10               
ELSE
                                                konv.ribu = 0
                                                konv.ratus = 0
                                                konv.puluh = 0
                sisa.puluh = konv.angka
END IF
                END IF
END IF

IF(konv.ribu > 0) THEN
WRITE(konv.angka, “ = “, konv.ribu, “ ribuan ”, konv.ratus, “ ratusan ”, konv.puluh, “ puluhan dan “, sisa.puluh, “ satuan”)
ELSE
                IF(konv.ratus > 0) THEN
WRITE(konv.angka, “ = “, konv.ratus, “ ratusan ”, konv.puluh, “ puluhan dan “, sisa.puluh, “ satuan”)
                ELSE
                                IF(konv.puluh > 0) THEN
WRITE(konv.angka, “ = “, konv.puluh, “ puluhan dan “, sisa.puluh, “ satuan”)
                                ELSE
WRITE(konv.angka, “ = “, sisa.puluh, “ satuan”)
                                END IF
                END IF
END IF











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

void main()
{
struct dt_bilangan
    {int angka;
     int ribu;
     int ratus;
     int puluh;};
dt_bilangan konv;
dt_bilangan sisa;

cout<<"Masukkan angka ... ";cin>>konv.angka;

if(konv.angka >= 1000)
    {konv.ribu = konv.angka / 1000;
    sisa.ribu = konv.angka % 1000;
    konv.ratus = sisa.ribu / 100;
    sisa.ratus = sisa.ribu % 100;
    konv.puluh = sisa.ratus / 10;
    sisa.puluh = sisa.ratus % 10;}
else
if(konv.angka>=100)
        {konv.ribu = 0;
        konv.ratus = konv.angka / 100;
        sisa.ratus = konv.angka % 100;
        konv.puluh = sisa.ratus / 10;
        sisa.puluh = sisa.ratus % 10;}
else
if(konv.angka>= 10)
            {konv.ribu = 0;
            konv.ratus = 0;
            konv.puluh = konv.angka / 10;
            sisa.puluh = konv.angka % 10;}
else
            {konv.ribu = 0;
            konv.ratus = 0;
            konv.puluh = 0;
            sisa.puluh = konv.angka;}

if(konv.ribu > 0)
cout<<konv.angka<<" = "<<konv.ribu<<" ribuan "<<konv.ratus<<" ratusan "<<konv.puluh<<" puluhan dan "<<sisa.puluh<<" satuan";
else
    if(konv.ratus > 0)
cout<<konv.angka<<" = "<<konv.ratus<<" ratusan "<<konv.puluh<<" puluhan dan "<<sisa.puluh<<" satuan";
    else
        if(konv.puluh > 0)
cout<<konv.angka<<" = "<<konv.puluh<<" puluhan dan "<<sisa.puluh<<" satuan";
        else
cout<<konv.angka<<" = "<<sisa.puluh<<" satuan";

getch();
}