Anda di halaman 1dari 3

Praktikum II

A. Structure
1. Buatlah 2 buah structure yang dapat menyimpan data pembeli dan barang.
Isikan dalam structure data-data sbb :

▪ Data pembeli
Kode_pbl Status Nama
P001 M Diana
P002 M Rina
P003 BM Lina
P004 BM Doni
P005 M Dodi

• M= Member, pembeli yang telah memiliki kartu member


• BM = Bukan Member, pembeli yang belum memiliki kartu member

▪ Data barang
Kode_brg Nama_brg Harga
BRG001 Pensil 2000
BRG002 Buku tulis 3500
BRG003 Penghapus 1000
BRG004 Penggaris 1500
BRG005 Ballpoint 2500
2. Buatlah input sebagai berikut :
Kode pembeli : P001
Nama pembeli : ______________(otomatis tampil di layar)
Status pembeli : ______________(otomatis tampil di layar)

Kode barang : BRG001


Nama barang : ________________ (otomatis tampil di layar)
Harga barang : ________________ (otomatis tampil di layar)
Jumlah barang : 2
Sub Total : jumlah barang x harga barang

Total pembelian : jumlah seluruh total


Diskon : jika pelanggan adalah member, maka diskon 10% dari total
pembelian
Pembelian diatas 3 pcs mendapat potongan harga Rp. 300
Kembali = jumlah bayar-tota
3. Output : print out nota pembelian
TOKO INDO APRIL
Jl. DI Panjaitan 128 Purwokerto

Kode barang Nama barang Jumlah Harga Total


BRG001 Pensil 2 2000 4000
BRG002 Buku tulis 2 3500 7000
===============================================================
Subtotal 11000
Diskon 1100
Total 12100
===============================================================
Jumlah bayar 13000
Kembali 900

Data pembeli
Kode pembeli : p001
Nama pembeli : Diana
Status : Member

B. Array Pointer dan Structure


1. Terdapat array dengan tipe char yang berisi {'p', 'e', 'n', 's', 'i', 't'}, baliklah array
tersebut menjadi tisnep.
2. Masalah aritmatika polinom adalah membuat sekumpulan subrutin manipulasi
terhadap polinom simbolis (symbolic Polynomial). Misalnya:
P1 = 6x8+8x7+5x5 + x3 + 15
P2 = 3x9 + 4x7 + 3x4 + 2x3 + 2x2+ 10
P3 = x2 + 5
Terdapat empat operasi aritmatika polinom dasar antara lain:
a. Penambahan (P1 + P2 = 3x9 + 6x8 + 12x7 + 5x5 + 3x4 + 3x3+2x2+ 25)
b. Pengurangan (P1 - P2 = - 3x9 + 6x8 + 4x7 + 5x5 - 3x4 – x3-2x2+ 5)
c. Perkalian (P1 * P3 = 6x10 + 8x9 + 5x7 + x5 + 15x2 + 30x8 + 40x7+25x5+5x3+ 75 =
6x10 + 8x9 + 30x8 + 45x7 + 26x5 + 5x3 + 15x2 + 75)
d. Turunan (P2' = 27x8 + 28x6 + 12x3 + 6x2 + 4x)
Representasikan bilangan polinom dengan array dan buatlah prosedur-prosedur yang
melakukan kelima operasi aritmatika di atas.
3. Bilangan kompleks berbentuk a + bi, dimana a dan b adalah bilangan nyata dan i2= -1.
Terdapat empat operasi aritmatika dasar untuk bilangan kompleks, yaitu:
o Penambahan : (a+bi) + (c+di) = (a+c) + (b+d)i
o Pengurangan : (a+bi) - (c+di) = (a-c) + (b-d)i
o Perkalian : (a+bi) * (c+di) = (ac-bd) + (ad+bc)i
o Pembagian : (a+bi) / (c+di) = [(ac+bd) / (a2+b2)]+[(bc-ad)/(c2+d2)]i
Tulis program yang membaca dua bilangan kompleks dan simbol operasi yang perlu
dilakukan, kemudian lakukan operasi yang diminta. Gunakan struktur untuk
merepresentasikan bilangan kompleks dan gunakan prosedur untuk implementasi tiap
operasi

C. Stack
1. Lakukan operasi berikut :
▪ Jika karakter maka push ke stack
▪ Jika asterisk (*) maka pop dan cetak hasilnya.
Bagaimana output program dengan input seperti di bawah ini ?
EAS*Y*QUE***ST***IO*N***
2. Buatlah sebuah program yang melakukan konversi dari bilangan desimal ke bilangan biner,
octal, heksa dengan menggunakan stack
3. Buatlah sebuah program yang melakukan pembalikan terhadap kalimat dengan
menggunakan stack
Contoh:
Kalimat : Struktur Data
Hasil setelah dibalik : ataD rutkurtS
4. Tentukan apakah sebuah kalimat yang diinputkan dalam program (dengan menggunakan
stack) adalah sebuah palindrom atau bukan. Palindrom adalah kalimat yang jika dibaca dari
depan dan dari belakang, maka bunyinya sama.
Contoh:
Kalimat : sugus
Kalimat tersebut adalah palindrom
5. Tambahkan implementasi Percobaan2 untuk mengecek apakah notasi infix yang
diinputkan benar atau tidak.
Contoh :
Infix : 5 * ( 4 – 2
Output : Notasi infix salah, kurung tidak lengkap
Infix : 5 * ( 4 – )
Output : Notasi infix salah, operand tidak lengkap
Infix : 5 ( 4 – 2 )
Output : Notasi infix salah, operator tidak lengkap
6. Tambahkan implementasi Percobaan2 hingga mendapatkan hasil penghitungannya.
Contoh:
infix : 5 * ( 4 – 2 )
postfix : 542-*
hasil : 10

Anda mungkin juga menyukai