Minggu, 23 November 2014

soal matematika informatika : prinsip inkulsi eksklusi

1. Dalam sebuah program studi pendidikan matematika yang terdiri atas 350 mahasiswa, terdapat 175 mahasiswa yang mengambil mata kuliah persamaan diferensial dan 225 mahasiswa yang mengambil mata kuliah analisis kompleks, dan 50 mahasiswa yang mengambil mata kuliah persamaan diferensial dan analisis kompleks. Ada berapa mahasiswa di dalam perkuliahan itu jika setiap mahasiswa mengambil mata kuliah persamaan diferensial, analisis kompleks, atau kedua-duanya?

a. 550
b. 350
c. 720
d. 360
Solusi :
n(A
B) = n(A) + n(B) – n(A ∩ B)
= 175 + 225 – 50
= 350

Ini berarti, terdapat 350 mahasiswa di dalam kelas yang mengambil mata kuliah persamaan diferensial, analisis kompleks, atau kedua-duanya. Karena banyaknya siswa keseluruhan di dalam kelas tersebut adalah 350 mahasiswa, artinya tidak terdapat mahasiswa yang tidak memilih salah satu dari kedua konsentrasi itu.

2. Ada berapa bilangan bulat positif lebih kecil atau sama dengan 100 yang habis dibagi 6 atau 9?

a. 35
b.20
c.22
d. 15

Solusi.

Misalkan
 A: himpunan bilangan bulat dari 1 sampai 100 yang habis dibagi 6
 B:himpunan bilangan bulat dari 1 sampai 100 yang habis dibagi 9.


Dengan menggunakan prinsip inklusi-eksklusi, banyaknya bilangan bulat dari 1 sampai 100 yang habis dibagi 6 atau 9
adalah
A  B |  =
 | A | + | B |  | A  B |




=
[100 / 6] + [100 / 9] −  [100 /18]


=
16 +11 + 5   =  22

3. Misalkan ada 1467 mahasiswa angkatan 2011 di ITB. 97 orang di antaranya adalah mahasiswa Prodi Informatika, 68 mahasiswa Prodi Matematika, dan 12 orang mahasiswa double degree Informatika dan Matematika. Ada berapa orang yang tidak kuliah di Departemen Matematika atau Informatika?

a. 1250
b. 2240
c. 1314
d. 1000



Solusi.

Misalkan A: himpunan mahasiswa angkatan 2004 di Departemen Informatika

B:   himpunan mahasiswa angkatan 2004 di Departemen Matematika

Maka |A|=97, |B|=68, dan |AB|=12.

Banyaknya mahasiswa angkatan 2004 di Departemen Informatika atau Matematika adalah
|A B| = |A| + |B| - |A B|= 97 + 68 – 12 = 153

Jadi, terdapat 1467 – 153 = 1314 mahasiswa angkatan 2004 yang tidak kuliah di Departemen Matematika atau Informatika.


4. Sebanyak 115 mahasiswa mengambil mata kuliah Matematika Diskrit, 71 Kalkulus Peubah Banyak, dan 56 Geometri. Di antaranya, 25 mahasiswa mengambil Matematika Diskrit dan Kalkulus Peubah Banyak, 14 Matematika Diskrit dan Geometri, serta 9 orang mengambil Kalkulus Peubah Banyak dan Geometri. Jika terdapat 196 mahasiswa yang mengambil paling sedikit satu dari ketiga mata kuliah tersebut, berapa orang yang mengambil ketiga mata kuliah sekaligus?


a. 1
b. 4
c. 5
d. 2


Solusi.


  |MD| = 115, |KPB| = 71, |G| = 56,
 |MD KPB| = 25, |MD G| = 14, |KPB G| = 9, dan |MD KPB G| = 196

Dengan mempergunakan prinsip inklusi-eksklusi:

|MDKPBG| = |MD| + |KPB| + |G| - |MDKPB| - |MDG| - |KPBG| + |MDKPBG|


196 = 115 + 71 + 56 - 25 - 14 - 9 + |MD KPB G| Jadi, |MD KPB G|                            = 2

5. Carilah banyaknya anggota dari |A B C D| jika setiap himpunan berukuran 50, setiap irisan dari dua himpunan berukuran 30, setiap irisan dari tiga himpunan berukuran 10, dan irisan dari keempat himpunan berukuran 2.

a. 58
b. 70
c. 56
d. 48

Solusi.
|ABCD|=|A| + |B| + |C| + |D| -  AB|-|AC|-|AD|-|BC| - |BD|- |CD| |ABC|+ |ABD|+|ACD| + |BCD| -    |A B C D|
                      = 4 . 50 – 6 . 30 + 4 . 10 – 2 = 58 

program struk belanja dengan bahasa c

#include <iostream>
#include <stdio.h>
#include <conio.h>
main()
{
int jml, harga, tunai;
float jum_bayar, total, kembalian, jum_harga;
char produk[20];
double tot_beli, potongan;
puts(“Masukan Nama Produk = “); gets(produk);
printf(“Masukan Harga = “); scanf(“%d”, &harga);
printf(“Masukan Jumlah Beli = “); scanf(“%d”, &jml);
printf(“======================================\n”);
printf(“\t manikui mart \n”);
printf(“\t duren sawit \n”);
printf(“======================================\n”);
printf(” Nama Produk    = %s\n”,produk);
printf(” Harga        = Rp. %d \n”, harga);
printf(” Jumlah Beli    = %d \n”, jml);
jum_harga = jml*harga;
printf(” total pembelian= Rp. %1.1f \n”, jum_harga);
printf(“===================================(+)\n”);
cout <<”total pembelian Rp. “; cin>>tot_beli;
if (tot_beli >= 200000)
potongan = 100000;
cout <<”besarnya potongan Rp.”<< potongan <<endl;
jum_bayar = tot_beli – potongan;
cout<<”jumlah yang harus dibayarkan Rp. “<<jum_bayar;
printf(” \n Tunai        = Rp. “); scanf(“%d”, &tunai);
printf(“===================================(-)\n”);
kembalian = tunai-jum_bayar;
printf(” Kembalian        = Rp. %1.1f \n”, kembalian);
printf(“======================================\n”);
printf(“\t       Terima Kasih\n”);
printf(“————————————–\n”);
printf(” \t            alif amir \n”);
getchar();
}

Logika Program
- main() digunakan untuk eksekusi pertama program
- jumlah, harga, dan jumlah tipe datanya adalah integer atau bilangan bulat
- jum_bayar, total, kembalian, dan jum_harga tipe datanya float atau bilangan pecahan
- produk[20] tipe datanya char untuk memasukan nama barang
- tot_beli, potongan tipe datanya double

Minggu, 02 November 2014

File Sequential Pada Cobol

File Sequential
Organisasi file secara urut (sequential file) memungkinkan pengaksesan
record di file secara berurutan.
Urutan data record yang direkamkan di file sama dengan urutan sewaktu data
itu direkamkan. Urutan tidak berubah walaupun ada data baru ditambahkan. Data baru
yang direkamkan akan menempati urutan record selanjutnya setelah record
terakhir yang telah ada. Ada 2 macam organisasi file secara urut, yaitu:
1. Sequential : mempunyai panjang record yang tetap,
2. Line Sequential : bisa berbeda-beda, setiap record terdapat pembatas berupa carriage return (CR) dan line feed (LF).

Definisi ENVIRONMENT DIVISION pada File Sequential
Pada ENVIRONMENT DIVISION yang membedakan file seqential dengan file yang lain adalah dalam Input-Output Section pada file control.











Definisi DATA DIVISION pada File Sequential
DATA DIVISION pada file urut harus mengandung file description entry (FD) sebagai berikut:






Statement untuk Operasi File Sequential
Pernyataan dalam Cobol yang berhubungan dengan operasi file sequential adalah sebagai berikut:
1. Pernyataan OPEN
§ OPEN INPUT digunakan untuk membuka file yang isinya hendak dibaca.
§ OPEN OUTPUT digunakan untuk membuat file baru.
§ OPEN I-O digunakkan untuk memperbaharui data record di dalam file.
§ OPEN EXTEND digunakan untuk membuka file sequential dan isinya

dapat ditambah.






2. Pernyataan CLOSE
Pernyataan ini digunakan untuk menutup file atau mengakhiri pemrosesan pada
file.
Bentuk Umum :





3. Pernyataan READ
Pernyataan ini digunakan untuk membaca data record yang dilakukan secara
berurutan (sequential). READ hanya dapat digunakan pada file yang dibuka
dengan model OPEN INPUT atau OPEN I-O.
Bentuk Umum :





- RECORD digunakan sebagai dokumentasi.

4. Pernyataan REWRITE
Pernyataan REWRITE digunakan untuk mengubah data record yang sudah ada
pada file. Pernyataan ini hanya dapat digunakan pada file disk yang dibuka
dengan model OPEN I-O.
Bentuk Umum :




Jika FROM disertakan, data dari identifier -1 yang akan menggantikan
record lama.

5. Pernyataan WRITE
Pernyataan ini digunakan untuk menuliskan data record baru ke file. Statement
WRITE hanya dapat digunakan pada file yang dibuka dengan model OPEN
OUTPUT atau OPEN EXTEND.
Bentuk Umum :




FILE STATUS
Status file biasa dipakai dalam program untuk mendeteksi keberhasilan
operasi pada file.
beberapa kode file status :
00 : Operasi berhasil
10 : Akhir file
30 : File tidak ada
34 : Disk penuh
39 : Deskripsi antara file aktual dan program tidak sama
91 : Struktur rusak