Minggu, 20 Februari 2011

Semester 1, Algoritma, Structur

#include <iostream.h>
int select,item,a,back;
struct Rekaman1
{
int Kode,Harga,Jum,Total;
char Barang[50];
};
struct Rekaman1 Data[1000];

void MasterBarang(int back)
{
char ok;
ok='a';
for(item=0;item<1000;item++)
{
    cout << endl<<endl;
    cout << "Kode    : "; cin >> Data[item].Kode;
    cout << "Barang    : "; cin >> Data[item].Barang;
    cout << "Harga    : "; cin >> Data[item].Harga;
if(back==0)
{
    cout << "Data sudah OK (y/n) "; cin >> ok;
    if(ok=='y')
    {
        break;
    }
}
else
{
    if(back==1)
    {
    break;
    }
}
}
}
int Transaksi()
{
int NoMeja,CariKode;
    cout << "\nNo. Meja    : ";
    cin >> NoMeja;
    cout << "Kode        : ";
    cin >> CariKode;
for(item=0;item<1000;item++)
{
if(CariKode==Data[item].Kode)
{
    cout << "\nKode     : " << Data[item].Kode << endl;
    cout << "Barang     : " << Data[item].Barang << endl;
    cout << "Harga     : " << Data[item].Harga << endl;
    cout << "Banyaknya : "; cin >> Data[item].Jum;
    Data[item].Total=Data[item].Jum*Data[item].Harga;
    cout << "Total        :"<<Data[item].Total<<endl;;
    cout << "\nKode\tNama Barang\tHarga\tJumlah\tTotal"<<endl;
    cout << Data[item].Kode<<"\t" << Data[item].Barang << "\t\t" << Data[item].Harga << "\t" << Data[item].Jum << "\t" << Data[item].Total << "\n\n";
back=0;
break;
item=2712;
}
else
{
back=1;
}
}
return back;
}

void main()
{
int Finish;
back=0;
Finish=0;
while(Finish==0)
{
if(back==0)
{
    cout << "\nPilih Jenis :\n1.Input data barang\n2.Masukkan Transaksi\nSelect (1/2) : ";
    cin >> select;
}
if(select==1)
{
MasterBarang(back);
if(back==1)
{
select=2;
}
}
if(select==2)
{
Transaksi();
Finish=1;
}
if(back==1)
{
    cout << "Data belum diinput, silahkan input data terlebih dahulu" << endl;
    Finish=0;
    select=1;
}
}
}

Semester 1, Algoritma, Record

PROGRAM Data_Mahasiswa
DEKLARASI
Type biodata : record
                NIM                       : integer
                Nama                    : string
                Jurusan                                : string
                Semester            : integer
                Jumlah_SKS        : integer
dt_mhs.biodata
ALGORITMA
Write(“Masukkan NIM : “)
Read(dt_mhs.biodata : NIM)
Write(“Nama : “)
Read(dt_mhs.biodata : Nama)
Write(“Jurusan : “)
Read(dt_mhs.biodata : Jurusan)
Write(“Semester : “)
Read(dt_mhs.biodata : Semester)
Write(“Jumlah SKS : “)
Read(dt_mhs.biodata : Jumlah_SKS)

Writeln(“NIM : “,dt_mhs.biodata : NIM)
Writeln(“Nama : “,dt_mhs.biodata : Nama)
Writeln(“Jurusan : “,dt_mhs.biodata : Jurusan)
Writeln(“Semester : “,dt_mhs.biodata : Semester)
Write(“Jumlah SKS : “,dt_mhs.biodata : Jumlah_SKS)


PROGRAM Nilai_kelas_1PTI1
DEKLARASI
Type biodata : record
                NIM                                       : integer
                Nama                                    : string
                Tugas, uts, uas, akhir      : real
Nilai_huruf                         : character
Type 1PTI1[1..42] of biodata
Mhs_ubm : 1PTI1
ALGORITMA
For  i ← 1 to 42 do
                Write(“Masukkan NIM ke [ “,I,” ] = “)
                Read(Mhs_ubm[i].NIM)
                Write(”Nama ke [ “, i, “ ] = “)
                Read(Mhs_ubm[i].Nama)
                Write(“Nilai tugas ke [ “, i, “ ] = “)
                Read(Mhs_ubm[i].tugas)
                Write(“Nilai UTS ke [ “, i, “] = “)
                Read(Mhs_ubm[i].uts)
                Write(“Nilai UAS [ “, i, “ ] = “)
                Read(Mhs_ubm[i].uas)
                Mhs_ubm.akhir ← (0.2*Mhs_ubm.tugas)+(0.3*Mhs_ubm.uts)+(0.5*Mhs_ubm.uas)
Endfor
If(Mhs_ubm.akhir <= 100) && (Mhs_ubm.akhir >= 80)
Mhs_ubm.Nilai_huruf ← ‘A’
Else if(Mhs_ubm.akhir <= 79) && (Mhs_ubm.akhir >= 68)
                Mhs_ubm.Nilai_huruf ← ‘B’
Else if(Mhs_ubm.akhir <= 67) && (Mhs_ubm.akhir >= 56)
                                Mhs_ubm.Nilai_huruf ← ‘C’
Else if (Mhs_ubm.akhir <= 55) && (Mhs_ubm.akhir >= 46)
                                                Mhs_ubm.Nilai_huruf ← ‘D’
Else if (Mhs_ubm.akhir <= 45) && (Mhs_ubm.akhir >= 0)
                                                                Mhs_ubm.Nilai_huruf ← ‘E’
                                                                Endif
                                                Endif
                                Endif
                Endif
Endif
For i ← 1 to 42 do
Write( i, “. Nilai ke [ “, i, “ ] = ”, Mhs_ubm.akhir[i])






Buatlah sebuag algoritma dengan metode record untuk membuat tampilan sbb:
Kode barang
Nama barang
Tipe barang
Harga
Harga baru :        *jika barang diatas 100.000 dan bukan tipe cair, maka naiknya  harga 20% + harga + ongkos kirim selain itu naiknya 10.000
*jika barang dibawah 100.000 atau barang di atas 0 dan bertipe cair maka ongkos kirim 9.000 selain itu ,maka ongkos kirim, 8.000

Type barang : record
                Kode_barang     : integer
                Nama_barang   : string
                Tipe_barang       : string
                Harga                    : integer
                Harga_baru        : integer
                Ongkir                   : integer
Barang : jenis_barang
                Write(“Masukkan kode barang : “,barang.Kode_barang)
                Read(barang.kode_barang)
                Write(“Nama barang : “,barang.Nama_barang)
                Read(barang.nama_barang)
                Write(“Tipe barang  : “,barang.Tipe_barang)
                Read(barang.tipe_barang)
                Write(“Harga : “,barang.harga)
                Read(barang.Harga)
                If(100000 <= barang.Tipe_barang cair)
                                Harga_baru (barang.harga*0.2) + barang.harga + 8000
                Else
                                Harga_baru (barang.harga*0.2) + barang.harga + 9000
               
                Writeln(“Kode Barang : “,barang.Kode_barang)
                Writeln(“Nama Barang : “,barang,Nama_barang)
                Writeln(“Tipe Barang : “,barang.Tipe_barang)
                Writeln(“Harga : “,barang.Harga)
                Write(“Harga + Biaya Ongkos Kirim : “,barang.Harga_baru)


Buatlah algoritma yang mempunyai tampilan layar seperti ini
Masukkan nama anda
Masukkan tanggal anda lahir
Masukkan bulan anda lahir
Bintang anda adalah
1.         Aries                      : 21 mar - 20 apr                 jan         feb         mar        apr         mei        jun         jul           ags         sep                                                                                                         1                 2           3              4              5              6              7              8              9
                                                                                okt         nov        des        
                                                                                10           11           12
2.       Taurus                  : 21 apr - 21mei   
3.       Gemini                 : 22 mei – 21 jun
4.       Cancer                  : 22 jun – 22 jul
5.       Leo                         : 23 jul – 22 agust
6.       Virgo                     : 22 agust – 22 sept
7.       Libra                      : 24 sep – 23 okt
8.       Scorpion              : 24 okto – 22 nov
9.       Sagitarius             : 23 nov – 21 des
10.   Capricon              : 22 des – 20 jan
11.   Aquarius              : 21 jan – 19 feb
12.   Pisces                    : 20 feb – 20 mar

PROGRAM Ramalan_bintang
DEKLARASI
Type zodiak : array [1..12] of integer
Bintang : zodiak
For i 1 to 12 do
                Write(“Masukkan Nama ke [ “, i, “ ] = “)
                Read(Bintang[i])
                Write(“Tanggal lahir ke [ “ , i, “ ] = “)
                Read(Bintang[i])
                Write(Bulan lahir ke [ “ , i, “ ] = “)
                Read(Bintang[i])
               

Semester 1, Algoritma 3, Soal cerita


1.      Seseorang mempunyai tabungan di sebuah bank. Ia dapat menyetor dan mengambil uangnya di bank tersebut, namun jumlah saldo minimum yang harus disisakan di dalam adalah Rp. 10.000,-. Ini artinya, jika saldonya Rp. 10.000,- ia tidak dapat mengambil uang lagi. Kode transaksi untuk menyetor adalah 0 dan kode transaksi untuk mengambil adalah 1. buatlah algoritma yang menyimulasikan transaksi yang dilakukan orang tersebut. Algoritma menerima masukan berupa kode transaksi dan jumlah uang yang disetor/ diambil. Rancanglah algoritma tersebut sehingga memungkinkan penabung dapat melakukan transaksi berulangkali sampai saldo yang tersisa Rp. 10.000,- atau jumlah uang yang diambil lebih besar dari saldonya.
2.      Jika kita berbelanja di pasar swalayan/supermarket, nilai total belanja kita seringkali bukan kelipatan pecahan rupiah yang berlaku. Misalnya, nilai total belanja adalah Rp. 19.212,-. Andaikan saat ini pecahan rupiah yang berlaku paling kecil Rp. 25,-. Selain itu, juga ada pecahan Rp. 50,- dan Rp. 100,-. Umumnya kasir pasar swalayan membulatkan nilai belanja ke pecahan yang terbesar. Jadi Rp. 19.212,- dibulatkan menjadi Rp. 19.225,-. Hal ini jelas merugikan konsumen. Misalkan Anda memiliki pasar swalayan yang jujur dan tidak merugikan pembeli, sehingga jika ada nilai belanja yang bukan kelipatan pecahan yang ada, maka nilai belanja itu dibulatkan ke pecahan terendah. Jadi, Rp 19.212,- dibulatkan menjadi Rp. 19.200,- .
Tulislah algoritma yang membaca nilai belanja (integer) lalu membulatkannya ke nilai uang dengan pecahan terendah.
  1. PROGRAM Transaksi_keuangan
DEKLARASI
uang, saldo, kode, saldo_akhir = integer
ALGORITMA
Writeln(“Masukkan Saldo awal = “)
Read(saldo)
            if(saldo <= 10000)
writeln(“Anda tidak dapat melakukan transaksi karena saldo minimal anda tidak mencukupi”)
            endif
            while (saldo > 10000)
                        writeln(“Masukkan kode transaksi”)
writeln(“0 = Untuk setor uang tunai”)
writeln(“1 = Untuk tarik uang tunai”)
                        writeln(“masukkan kode transaksi : “)
                                    if(kode = 0)then
                                                saldo_akhir ← saldo + uang
                                                writeln(“Saldo akhir : “,saldo_akhir)
                                    else
                                                saldo_akhir ← saldo + uang
                                                writeln(“Saldo akhir : “,saldo_akhir”)

                        endif
endwhile
  1. PROGRAM Belanja
DEKLARASI
harga, sisa = integer
ALGORITMA
writeln(“Selamat datang di Toko Swalaayan UBM”)
write(“Total harga : Rp. ”,harga,”,-“)
Sisa harga mod 25
If(sisa<>0)then
harga = harga - sisa
endif
Writeln(“Harga yang harus anda bayar : Rp. ”,harga,”,-“)
Write(“Terima kasih sudah berkunjung”)

Semester 1, Algoritma 5, Array 2


PROGRAM Bilangan_Bulat
DEKLARASI
type bilbul : array [1..n] of integer
B : bilbul
s, n : integer
function bilbul (input s, hasil : integer) → integer
ALGORITMA
Write(“Masukkan perulangan yang anda inginkan =  “)
Read (n)
For s 1 to n do
Write(“bilbul ke [“,s,”] : “)
Read(c[s])
if (Bilangan(x == 0)) then
write(“ bilangan bulat ditemukan di bilbul  [“,s,”] =”,  c[s])
Else
write(“Bilangan tidak ditemukan”)
endif
endfor





function bilbul  (input  s, x = integer) → integer
return(hasil←c[s] mod 2)