Tampilkan postingan dengan label Problem Solved. Tampilkan semua postingan
Tampilkan postingan dengan label Problem Solved. Tampilkan semua postingan

Final Project Computer Programming II

Pre-Notes :

  • Menggunakan bahasa pemograman C
  • Menggunakan Struct
  • Menggunakan subroutines


/*Buatlah program yang menampilkan laporan angka matakuliah Computer Programming II .  
Tampilkan di text file, laporan angka yang terdiri atas nim,nama, persentase nilai quiz, persentase nilai test, 
persentase lab exercise, persentase nilai final, persentase nilai project . Nilai akhir dan grade (A,A-,etc). 
 Mintalah user untuk input nilai quiz, test, final, lab, dan project. Nilai quiz, test, dan lab dilakukan lebih dari 1 kali.
Nilai akhir diperoleh dari : 10% quiz + 20% lab + 20% test + 20% final + 30% project.
Tampilkan pula di text file histogram yang menyatakan frekuensi kemunculan setiap nilai akhir mahasiswa.*/


Statistik Encryption

Berikut sebuah coding dari tugas membuat enkripsi statistik...

#include <stdio.h>
#include <conio.h>
#include <string.h>

int main ()
{
    
    char kata [8];
    char copy [8];
    float hitung [8];
    int pjg;
    float a = 4.1, b = 5.1, c = 6.1, d = 7.1, e = 8.1;
    float f = 0.1, g = 1.1, h = 2.1, i = 3.1, j = 4.2;
    float k = 5.2, l = 6.2, m = 7.2, n = 8.2, o = 0.2;
    float p = 1.2, q = 2.2, r = 3.2, s = 4.3, t = 5.3;
    float u = 6.3, v = 7.3, w = 8.3, x = 9.3, y = 0.3;
    float z = 2.3;
    
    printf ("Masukkan input = ");
    gets (kata);fflush (stdin);
    strcpy(copy,kata);
    pjg = strlen (kata);
    for (int i=0;i<pjg;i++)
    {
        if (copy[i]=='a') {hitung[i]=a;}
        if (copy[i]=='b') {hitung[i]=b;}    
        if (copy[i]=='c') {hitung[i]=c;}
        if (copy[i]=='d') {hitung[i]=d;}
        if (copy[i]=='e') {hitung[i]=e;}
        if (copy[i]=='f') {hitung[i]=f;}
        if (copy[i]=='g') {hitung[i]=g;}
        if (copy[i]=='h') {hitung[i]=h;}
        if (copy[i]=='i') {hitung[i]=i;}
        if (copy[i]=='j') {hitung[i]=j;}
        if (copy[i]=='k') {hitung[i]=k;}
        if (copy[i]=='l') {hitung[i]=l;}
        if (copy[i]=='m') {hitung[i]=m;}
        if (copy[i]=='n') {hitung[i]=n;}
        if (copy[i]=='o') {hitung[i]=o;}
        if (copy[i]=='p') {hitung[i]=p;}
        if (copy[i]=='q') {hitung[i]=q;}
        if (copy[i]=='r') {hitung[i]=r;}
        if (copy[i]=='s') {hitung[i]=s;}
        if (copy[i]=='t') {hitung[i]=t;}
        if (copy[i]=='u') {hitung[i]=u;}
        if (copy[i]=='v') {hitung[i]=v;}
        if (copy[i]=='w') {hitung[i]=w;}
        if (copy[i]=='x') {hitung[i]=x;}
        if (copy[i]=='y') {hitung[i]=y;}
        if (copy[i]=='z') {hitung[i]=z;}
        if (copy[i]==' ') {hitung[i]=3.3;}
    }
    
    printf ("hasil enkripsi = ");
    for (int i=0;i<pjg;i++)
    {
        printf ("%.1f", hitung[i]);    
    }
    
    
    for (int i=0;i<pjg;i++)
    {
        if (hitung[i]==a) {copy[i]='a';}
        if (hitung[i]==b) {copy[i]='b';}
        if (hitung[i]==c) {copy[i]='c';}
        if (hitung[i]==d) {copy[i]='d';}
        if (hitung[i]==e) {copy[i]='e';}
        if (hitung[i]==f) {copy[i]='f';}
        if (hitung[i]==g) {copy[i]='g';}
        if (hitung[i]==h) {copy[i]='h';}
        if (hitung[i]==i) {copy[i]='i';}
        if (hitung[i]==j) {copy[i]='j';}
        if (hitung[i]==k) {copy[i]='k';}
        if (hitung[i]==l) {copy[i]='l';}
        if (hitung[i]==m) {copy[i]='m';}
        if (hitung[i]==n) {copy[i]='n';}
        if (hitung[i]==o) {copy[i]='o';}
        if (hitung[i]==p) {copy[i]='p';}
        if (hitung[i]==q) {copy[i]='q';}
        if (hitung[i]==r) {copy[i]='r';}
        if (hitung[i]==s) {copy[i]='s';}
        if (hitung[i]==t) {copy[i]='t';}
        if (hitung[i]==u) {copy[i]='u';}
        if (hitung[i]==v) {copy[i]='v';}
        if (hitung[i]==w) {copy[i]='w';}
        if (hitung[i]==x) {copy[i]='x';}
        if (hitung[i]==y) {copy[i]='y';}
        if (hitung[i]==z) {copy[i]='z';}
        if (hitung[i]==3.3) {copy[i]=' ';}    
    }
    
printf ("\nhasil dekripsi = ");
for (int i=0;i<pjg;i++)
{
    printf ("%c", copy[i]);    
}
    
getche ();
return 0;
}

Studi Kasus Subnetting (Class B)

Diketahui IP sebagai berikut = 172.16.127.123 / 22

maka hitunglah,
1. subnet mask
2. subnet block
3. jumlah network
4. jumlah usable host
5. network ID
6. broadcast ID
7. range usable host

/22 berarti jumlah 1 ada 22 buah, maka binarynya adalah

11111111.11111111.11111100.00000000

atau

8.8.6+2.+8 (tanda + menunjukkan 0)

sehingga jumlah desimalnya adalah

255.255.(128+64+32+16+8+4).0

atau

255.255.252.0

1. subnet mask = 255.255.252.0

2. subnet blok = 256 - 252 = 4

subnet blok juga dapat diperoleh dengan cara :

2 pangkat jumlah 0 dalam host yang akan berubah,
dalam soal jumlah 0 dalam host yang akan berubah adalah 2 (lihat +2)

maka subnet blok = 2^2 = 4

3. jumlah network =

jumlah network diperoleh dengan cara :

2 pangkat jumlah 1 dalam host yang akan berubah,
dalam soal jumlah 1 dalam host yang akan berubah adalah 6 (lihat 6)

maka jumlah network 2^6 = 64

4. jumlah usable host =

jumlah usable host diperoleh dengan cara :

2 pangkat jumlah 0 keseluruhan yang ada dalam subnet mask,
dalam soal jumlah 0 keseluruan adalah 8+2 = 10 (lihat +2 dan +8)

maka jumlah usable host = 2^10 - 2

5. Network ID =

network ID diperoleh dengan langkah :
a. kelipatan network ID = subnet blok, dalam soal kelipatan network ID = 4
b. cari angka kelipatan network ID yang mendekati host yang akan berubah, dalam soal host yang akan berubah adalah 127

bilangan kelipatan 4 yang mendekati 127 = 124
124 % 4 = 0 (124 habis di bagi 4 / 124 modulus 4 = 0)
124 <= 127 (124 lebih kecil dan yang paling dekat dengan 127)

sehingga network ID = 172.16.124.0

6. Broadcast ID =

broadcast ID diperoleh dengan langkah :

network ID berikutnya dikurangi 1, dalam soal network ID = 172.16.124.0 maka network ID berikutnya = 172.16.128.0

sehingga broadcast ID = 172.16.128.0 - 1 = 172.16.127.255

7. range usable host =

range usable host diperoleh dengan langkah :

ip-ip yang berada di antara network ID dan broadcast ID (network ID dan broadcast ID tidak termasuk), dalam soal network ID = 172.16.124.0 dan broadcast ID = 172.16.127.255

sehingga range usable host = 172.16.124.1 sampai 172.16.127.254

summary jawaban :

1. subnet mask = 255.255.252.0

2. subnet blok = 256 - 252 = 4

3. jumlah network = 2^6 = 64

4. jumlah usable host = 2^10 - 2

5. network ID = 172.16.124.0

6. broadcast ID = 172.16.127.255

7. range usable host = 172.16.124.1 - 172.16.127.254

Cara Menghitung subnet Mask



Subnet mask adalah istilah teknologi informasi dalam bahasa Inggris yang mengacu kepada angka biner 32 bit yang digunakan untuk membedakan network ID dengan host ID, menunjukkan letak suatu host, apakah berada di jaringan lokal atau jaringan luar.
RFC 950 mendefinisikan penggunaan sebuah subnet mask yang disebut juga sebagai sebuah address mask sebagai sebuah nilai 32-bit yang digunakan untuk membedakan network identifier dari host identifier di dalam sebuah alamat IP. Bit-bit subnet mask yang didefinisikan, adalah sebagai berikut

Semua bit yang ditujukan agar digunakan oleh network identifier diset ke nilai 1.
Semua bit yang ditujukan agar digunakan oleh host identifier diset ke nilai 0.
Setiap host di dalam sebuah jaringan yang menggunakan TCP/IP membutuhkan sebuah subnet mask meskipun berada di dalam sebuah jaringan dengan satu segmen saja. Entah itu subnet mask default (yang digunakan ketika memakai network identifier berbasis kelas) ataupun subnet mask yang dikustomisasi (yang digunakan ketika membuat sebuah subnet atau supernet) harus dikonfigurasikan di dalam setiap node TCP/IP.
Misalkan anda memiliki IP adress 192.168.10.0 dan Subnet mask 255.255.255.128
Ubah angka 128 ke bilangan biner dengan cara sebagai berikut
128 : 2 = 64 sisa 0
64  : 2 = 32 sisa 0
32  : 2 = 16 sisa 0
16  : 2 =  8 sisa 0
8   : 2 =  4 sisa 0
4   : 2 =  2 sisa 0
2   : 2 =  1 Sisa 0
Hasil akhir 1 tidak dapat dibagi menjadi 1
hasil bilangan binernya adalah 10000000
Banyaknya subnet yang tersedia dari rumus 2^x
X adalah jumlah dari angka 1, karena berdasarkan angka binner yang ada jumlah 1=1
maka 2^1 = 2 maka jumlah subnet maksnya adalah 2
Nah sekarang kita harus tau bila tersedia hanya 2 subnet maks maka kita harus mencari berapa subnet maks tersebut?
Dari Subnet maks yang terbesar adalah 256 maka dihasilkan 256 – 128 = 128.
Maka subnet masknya adalah 0 dan 128
Contoh lain, bila ditetapkan subnet masknya 255.255.255.192
Jumlah subnet maks dapt dihitung
192 : 2 = 96 sisa 0
96  : 2 = 48 sisa 0
48  : 2 = 24 sisa 0
24  : 2 = 12 sisa 0
12  : 2 =  6 sisa 0
6   : 2 =  3 sisa 0
3   : 2 =  1 sisa 1
maka bilangan binnernya adalah 11000000
karena angka 1 ada 2 maka 2^2 = 4
Dan subnet yang dapat digunakan adalah 256 – 192 = 64, maka Subnetnya adalah 0, 64, 128, 192 artinya subnetnya adalah
255.255.255.0
255.255.255.64
255.255.255.128
255.255.255.192
Jumlah Host per Subnet = 2^y – 2, dimana y adalah adalah kebalikan dari x yaitu banyaknya binari 0 pada oktet terakhir subnet. Jadi jumlah host per subnet adalah 2^6 – 2 = 62 host

credit goes to :
http://dunovteck.wordpress.com/2011/10/31/cara-menghitung-subnet-mask/

Factorial using Recursion Method

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

using namespace std;

int calc (int x)
{
if (x==1)
{
return 1;
}
else
{
return (x * calc (x-1));
}
}

class factorial
{
private :
int number,fact,temp;

public :
void input ();
void proses ();
void output ();
}

int main ()
{
factorial f;

f.input ();
f.proses ();
f.output ();

getche ();
return 0;
}

void factorial :: input ()
{
cout << "input number = ";
cin >> number;
temp = number;
}
void factorial :: proses ()
{
fact = calc (temp);
}
void factorial :: output ()
{
cout << "factorial of " << number << " = " << fact;
}

Standard Deviation on UNGROUPED DATA

List of Weights (in pounds) : 204, 207, 208, 212, 214, 215.


a. Variance
  • cari dulu mean = (204+207+208+212+214+215) / 6 = 210 pounds
  • cari variance = [ (204-210)² + (207-210)² + (208-210)² + (212-210)² + (214-210)² + (215-210)² ] / 6 = 15.667 pounds 
b. Standard Deviation
  • standard deviation = sqrt of variance = 15.667 pow ½ (15.667 pangkat ½) = 3.95 pounds