Mengerjakan challenge SOAL dengan menggunakan bahasa pemrograman C++

Hari ini saya akan mengerjakan sebuah soal dengan menggunakan bahasa pemrograman C++. Adapun soal yang akan saya kerjakan adalah sebagai berikut:

25 / 100

Keterangan:

- dibutuhkan 25 hari untuk membangun sebuah kebiasaan
- dibutuhkan 100 hari untuk membangun sebuah gaya hidup

Berdasarkan rumus di atas, seorang lelaki sebut saja si Aldi bertekad membuat kegiatan lari pagi sebagai gaya hidupnya. Jika lari pagi sudah tercatat sebagai kebiasaannya sejak Minggu, 1 Januari 2021 maka pada hari dan tanggal berapakah dia mulai lari pagi dan lari pagi menjadi gaya hidupnya? 

Ketentuan:

1. Tiap bulan memiliki 30 hari, tiap tahun memiliki 12 bulan.

2. Menggunakan maksimal 7 variabel. 

3. Terdapat 4 input-an untuk hari, tanggal, bulan dan tahun. 

4. Minimal terdapat dua penggunaan switch-case.

5. Terdapat penggunaan statement looping.


Berikut saya tampilkan source code nya:

#include <iostream>

using namespace std;

string KonversiHari (int inputHari){
  switch (inputHari){
    case 0:
      return "Minggu";
      break;
    case 1:
      return "Senin";
      break;
    case 2:
      return "Selasa";
      break;
    case 3:
      return "Rabu";
      break;
    case 4:
      return "Kamis";
      break;
    case 5:
      return "Jumat";
      break;
    case 6:
      return "Sabtu";
      break;
    default:
      return "Hari salah";
    }


}

string KonversiBulan (int inputBulan){
  switch (inputBulan){
    case 1:
      return "Januari";
      break;
    case 2:
      return "Februari";
      break;
    case 3:
      return "Maret";
      break;
    case 4:
      return "April";
      break;
    case 5:
      return "Mei";
      break;
    case 6:
      return "Juni";
      break;
    case 7:
      return "Juli";
      break;
    case 8:
      return "Agustus";
      break;
    case 9:
      return "September";
      break;
    case 10:
      return "Oktober";
      break;
    case 11:
      return "November";
      break;
    case 12:
      return "Desember";
      break;
    default:
      return "Bulan salah";
    }


}

int CekHari (int hari, int hitungan){
  if (hari == 0){
      if (((hitungan + hari) % 7) == 0){
	  return hari;
      }else{
	  return 7 - ((hitungan + hari) % 7);
      }
      return hari;
    }else
     return hari - (hitungan % 7);
}


void CekKebiasaan (string keterangan, int hari, int hitungan,
	      int inputTanggal, int inputBulan, int inputTahun, bool mulai){
  int tanggal = inputTanggal;
  int bulan = inputBulan;
  int tahun = inputTahun;
  if (mulai)
    {
      for (int i = hitungan; i >= 1; i--)
	{
	  tanggal--;
	  if (tanggal < 1)
	    {

	      tanggal = 30;
	      bulan--;
	      if (bulan < 1)
		{
		  bulan = 12;
		  tahun--;
		}
	    }

	}
    }
  else
    {

      for (int i = 1; i <= hitungan; i++)
	{

	  tanggal++;
	  if (tanggal > 30)
	    {
	      tanggal = 1;
	      bulan++;
	      if (bulan > 12)
		{

		  bulan = 1;
		  tahun++;
		}
	    }
	}

    }

  cout << keterangan <<
    KonversiHari (mulai ? CekHari (hari, hitungan)
		  : ((hitungan +
		      hari) %
		     7)) << ", " << tanggal << " " <<
    KonversiBulan (bulan) << " " << tahun;
}



int main (){
  int inputHari, inputTanggal, inputBulan, inputTahun;
  cout << "Masukkan hari (0 = Minggu..... 6 = Sabtu)" << endl;
  cout << "Pilihan Anda: ";
  cin >> inputHari;
  cout << "\nMasukkan tanggal: ";
  cin >> inputTanggal;
  cout << "\nMasukkan bulan: ";
  cin >> inputBulan;
  cout << "\nMasukkan tahun: ";
  cin >> inputTahun;
  CekKebiasaan ("\nAldi mulai pada hari ", inputHari, 25,
		inputTanggal, inputBulan, inputTahun, true);
  cout << "\nMenjadi kebiasaan pada hari " <<
    KonversiHari (inputHari) << ", " << inputTanggal << " " <<
    KonversiBulan (inputBulan) << " " << inputTahun;
  CekKebiasaan ("\nMenjadi gaya hidup pada hari ", inputHari, 75,
		inputTanggal, inputBulan, inputTahun, false);
  return 0;
}








Script mengaktifkan user hotspot sesuai jadwal harian pada mikrotik

Ketemu lagi niiiii, penulis akan membagikan tutorial dan script yang digunakan berdasarkan pengalaman pribadi si penulis kasusnya si pelanggan punya beberapa user hotspot sedangkan si pelanggan pengen setiap user bisa dipakai berdasarkan hari tertentu akhirnya setelah otak atik dan mencari tutorial di berbagai sumber akhirnya penulis menemukan script yang work it, langsung saja ke tutorial.

Hal pertama Pastikan pengaturan waktu pada router mikrotik sudah sesuai dengan waktu wilayah anda hal ini mutlak diperlukan ketika anda sudah implementasikan rule-rule berdasarkan waktu misalnya dalam case ini penggunaan scheduler

Pengaturan waktu pada router mikrotik memiliki alternatif lain yaitu menggunakan service NTP (Network Time Protocol) yang memungkinkan router bisa melakukan sinkronisasi waktu, untuk case ini router kita akan jadikan NTP Client, pengaturan sntp client pada router mikrotik bisa dilakukan pada menu System > SNTP Client.

SNTP Client

Setelah pengaturan sntp selesai dan waktu router mikrotik sudah sesuai sekarang kita akan membuat scheduler untuk menambahkan script.
Untuk penjadwalan kita bisa konfigurasi pada menu System > Scheduler lalu klik icon "+"  untuk membuat schedule baru. Berikut nama misalnya "Aktif User", waktu eksekusi script setiap jam 1 malam dan interval waktu setiap 1 hari, untuk kolom On Event masukkan script yang sudah disediakan dibawah.

Selanjutnya kita buatkan user hotspot di menu Ip > Hotspot, pada halaman hotspot pilih tab users  lalu klik icon "+"  untuk membuat User baru dan jangan lupa untuk menambahkan comment pada masing" user hal ini dikarenakan sebagai kunci pada script untuk melakukan disable atau enable user seperti pada gambar dibawah.

Untuk melakukan mengujian sesuaikan dengan waktu yang sudah disetting pada kolom Start Time.


Berikut penulis sertakan Script nya





:local date [/system clock get date]

# Math Calculation here
:local result ""
:local months [:toarray "jan,feb,mar,apr,may,jun,jul,aug,sep,oct,nov,dec"]
:local daytbl [:toarray "sun,mon,tue,wed,thu,fri,sat"]

:local month [:pick $date 0 3]
:local day [:pick $date 4 6]
:local dayc [:pick $date 5 6]
:local year [:pick $date 7 11]

# if the first char is a 0 (zero) only read last char, else script fails
:if ([:pick $date 4 5] = 0) do={ :set day ($dayc)}

:local sum 0
:local aaa 0
:local yyy 0
:local mmm 0
:local nmonth 1

:for mindex from=0 to=[:len $months] do={
  :if ([:pick $months $mindex] = $month) do={:set nmonth ($mindex + 1) }
}

:set aaa ((14 - $nmonth) / 12)
:set yyy ($year - $aaa)
:set mmm ($nmonth + 12 * $aaa - 2)
:set sum (7000 + $day + $yyy + ($yyy / 4) - ($yyy / 100) + ($yyy / 400) + ((31 * $mmm) / 12))
:set sum ($sum - (($sum / 7) * 7))
:set result [:pick $daytbl $sum]

:if ($result = "mon") do={/ip hotspot user set disable=no [find comment=Senin]} else= {/ip hotspot user set disable=yes [find comment=Senin]}
:if ($result = "tue") do={/ip hotspot user set disable=no [find comment=Selasa]} else= {/ip hotspot user set disable=yes [find comment=Selasa]}
:if ($result = "wed") do={/ip hotspot user set disable=no [find comment=Rabu]} else= {/ip hotspot user set disable=yes [find comment=Rabu]}
:if ($result = "thu") do={/ip hotspot user set disable=no [find comment=Kamis]} else= {/ip hotspot user set disable=yes [find comment=Kamis]}
:if ($result = "fri") do={/ip hotspot user set disable=no [find comment=Jumat]} else= {/ip hotspot user set disable=yes [find comment=Jumat]}
:if ($result = "sat") do={/ip hotspot user set disable=no [find comment=Sabtu]} else= {/ip hotspot user set disable=yes [find comment=Sabtu]}
:if ($result = "sun") do={/ip hotspot user set disable=no [find comment=Ahad]} else= {/ip hotspot user set disable=yes [find comment=Ahad]}

Trik Menampilkan Postingan terbaru Instagram ke website Tanpa menggunakan API

 Kita bertemu lagi niiiiiiii….kali ini kita akan belajar bagaimana cara mengambil postingan terbaru instagram dari akun orang lain yang akan kita masukkan ke dalam website/blog kita …untuk mendapatkan postingan orang lain sebenarnya banyak cara yang bisa kita gunakan…terus apa yang akan kita gunakan?nah kali ini kita akan menggunakan AJAX.

Langsung saja ke TKP

*Note: Pastikan akun dari postingan yang akan kita ambil bersifat public

Berikut saya sertakan Source Code nya, 

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
<!DOCTYPE html>
<html>
<style type="text/css">
	.center {
  margin: auto;
  width: 50%;
  height: 50%;
  padding: 10px;
}
</style>
<head>
	<title>KetikanMD</title>
	<!-- jquery untuk menjalankan ajax -->
	<script src="https://code.jquery.com/jquery-3.5.1.min.js" integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin="anonymous"></script>

	<!-- Sertakan skrip ini dalam HMTL Anda: -->
	<script async src="https://www.instagram.com/embed.js"></script>
</head>
<body>
<div id="instagram" class="center"></div>
</body>
<script>
    $(document).ready(function() {
    	// Username postingan Instagram
    	var username="ahmad22_97";
        $.ajax({
            url: "https://www.instagram.com/"+username+"/?__a=1",
            type: 'GET',
            success: function(data) {
                var getData = data.graphql.user.edge_owner_to_timeline_media.edges[0].node.shortcode;
                // Start Code embed Instagram
                $("#instagram").html(
                    `
<blockquote class="instagram-media" data-instgrm-permalink="https://www.instagram.com/p/${getData}/?utm_source=ig_embed&amp;utm_campaign=loading" data-instgrm-version="12" style=" background:#FFF; border:0; border-radius:3px; box-shadow:0 0 1px 0 rgba(0,0,0,0.5),0 1px 10px 0 rgba(0,0,0,0.15); margin: 1px; max-width:540px; min-width:326px; padding:0; width:99.375%; width:-webkit-calc(100% - 2px); width:calc(100% - 2px);">
    <div style="padding:16px;"> <a id="href1" href="https://www.instagram.com/p/${getData}/?utm_source=ig_embed&amp;utm_campaign=loading" style=" background:#FFFFFF; line-height:0; padding:0 0; text-align:center; text-decoration:none; width:100%;" target="_blank">
            <div style=" display: flex; flex-direction: row; align-items: center;">
                <div style="background-color: #F4F4F4; border-radius: 50%; flex-grow: 0; height: 40px; margin-right: 14px; width: 40px;"></div>
                <div style="display: flex; flex-direction: column; flex-grow: 1; justify-content: center;">
                    <div style=" background-color: #F4F4F4; border-radius: 4px; flex-grow: 0; height: 14px; margin-bottom: 6px; width: 100px;"></div>
                    <div style=" background-color: #F4F4F4; border-radius: 4px; flex-grow: 0; height: 14px; width: 60px;"></div>
                </div>
            </div>
            <div style="padding: 19% 0;"></div>
            <div style="display:block; height:50px; margin:0 auto 12px; width:50px;"><svg width="50px" height="50px" viewBox="0 0 60 60" version="1.1" xmlns="https://www.w3.org/2000/svg" xmlns:xlink="https://www.w3.org/1999/xlink">
                    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
                        <g transform="translate(-511.000000, -20.000000)" fill="#000000">
                            <g>
                                <path d="M556.869,30.41 C554.814,30.41 553.148,32.076 553.148,34.131 C553.148,36.186 554.814,37.852 556.869,37.852 C558.924,37.852 560.59,36.186 560.59,34.131 C560.59,32.076 558.924,30.41 556.869,30.41 M541,60.657 C535.114,60.657 530.342,55.887 530.342,50 C530.342,44.114 535.114,39.342 541,39.342 C546.887,39.342 551.658,44.114 551.658,50 C551.658,55.887 546.887,60.657 541,60.657 M541,33.886 C532.1,33.886 524.886,41.1 524.886,50 C524.886,58.899 532.1,66.113 541,66.113 C549.9,66.113 557.115,58.899 557.115,50 C557.115,41.1 549.9,33.886 541,33.886 M565.378,62.101 C565.244,65.022 564.756,66.606 564.346,67.663 C563.803,69.06 563.154,70.057 562.106,71.106 C561.058,72.155 560.06,72.803 558.662,73.347 C557.607,73.757 556.021,74.244 553.102,74.378 C549.944,74.521 548.997,74.552 541,74.552 C533.003,74.552 532.056,74.521 528.898,74.378 C525.979,74.244 524.393,73.757 523.338,73.347 C521.94,72.803 520.942,72.155 519.894,71.106 C518.846,70.057 518.197,69.06 517.654,67.663 C517.244,66.606 516.755,65.022 516.623,62.101 C516.479,58.943 516.448,57.996 516.448,50 C516.448,42.003 516.479,41.056 516.623,37.899 C516.755,34.978 517.244,33.391 517.654,32.338 C518.197,30.938 518.846,29.942 519.894,28.894 C520.942,27.846 521.94,27.196 523.338,26.654 C524.393,26.244 525.979,25.756 528.898,25.623 C532.057,25.479 533.004,25.448 541,25.448 C548.997,25.448 549.943,25.479 553.102,25.623 C556.021,25.756 557.607,26.244 558.662,26.654 C560.06,27.196 561.058,27.846 562.106,28.894 C563.154,29.942 563.803,30.938 564.346,32.338 C564.756,33.391 565.244,34.978 565.378,37.899 C565.522,41.056 565.552,42.003 565.552,50 C565.552,57.996 565.522,58.943 565.378,62.101 M570.82,37.631 C570.674,34.438 570.167,32.258 569.425,30.349 C568.659,28.377 567.633,26.702 565.965,25.035 C564.297,23.368 562.623,22.342 560.652,21.575 C558.743,20.834 556.562,20.326 553.369,20.18 C550.169,20.033 549.148,20 541,20 C532.853,20 531.831,20.033 528.631,20.18 C525.438,20.326 523.257,20.834 521.349,21.575 C519.376,22.342 517.703,23.368 516.035,25.035 C514.368,26.702 513.342,28.377 512.574,30.349 C511.834,32.258 511.326,34.438 511.181,37.631 C511.035,40.831 511,41.851 511,50 C511,58.147 511.035,59.17 511.181,62.369 C511.326,65.562 511.834,67.743 512.574,69.651 C513.342,71.625 514.368,73.296 516.035,74.965 C517.703,76.634 519.376,77.658 521.349,78.425 C523.257,79.167 525.438,79.673 528.631,79.82 C531.831,79.965 532.853,80.001 541,80.001 C549.148,80.001 550.169,79.965 553.369,79.82 C556.562,79.673 558.743,79.167 560.652,78.425 C562.623,77.658 564.297,76.634 565.965,74.965 C567.633,73.296 568.659,71.625 569.425,69.651 C570.167,67.743 570.674,65.562 570.82,62.369 C570.966,59.17 571,58.147 571,50 C571,41.851 570.966,40.831 570.82,37.631"></path>
                            </g>
                        </g>
                    </g>
                </svg></div>
            <div style="padding-top: 8px;">
                <div style=" color:#3897f0; font-family:Arial,sans-serif; font-size:14px; font-style:normal; font-weight:550; line-height:18px;"> Lihat postingan ini di Instagram</div>
            </div>
            <div style="padding: 12.5% 0;"></div>
            <div style="display: flex; flex-direction: row; margin-bottom: 14px; align-items: center;">
                <div>
                    <div style="background-color: #F4F4F4; border-radius: 50%; height: 12.5px; width: 12.5px; transform: translateX(0px) translateY(7px);"></div>
                    <div style="background-color: #F4F4F4; height: 12.5px; transform: rotate(-45deg) translateX(3px) translateY(1px); width: 12.5px; flex-grow: 0; margin-right: 14px; margin-left: 2px;"></div>
                    <div style="background-color: #F4F4F4; border-radius: 50%; height: 12.5px; width: 12.5px; transform: translateX(9px) translateY(-18px);"></div>
                </div>
                <div style="margin-left: 8px;">
                    <div style=" background-color: #F4F4F4; border-radius: 50%; flex-grow: 0; height: 20px; width: 20px;"></div>
                    <div style=" width: 0; height: 0; border-top: 2px solid transparent; border-left: 6px solid #f4f4f4; border-bottom: 2px solid transparent; transform: translateX(16px) translateY(-4px) rotate(30deg)"></div>
                </div>
                <div style="margin-left: auto;">
                    <div style=" width: 0px; border-top: 8px solid #F4F4F4; border-right: 8px solid transparent; transform: translateY(16px);"></div>
                    <div style=" background-color: #F4F4F4; flex-grow: 0; height: 12px; width: 16px; transform: translateY(-4px);"></div>
                    <div style=" width: 0; height: 0; border-top: 8px solid #F4F4F4; border-left: 8px solid transparent; transform: translateY(-4px) translateX(8px);"></div>
                </div>
            </div>
            <div style="display: flex; flex-direction: column; flex-grow: 1; justify-content: center; margin-bottom: 24px;">
                <div style=" background-color: #F4F4F4; border-radius: 4px; flex-grow: 0; height: 14px; margin-bottom: 6px; width: 224px;"></div>
                <div style=" background-color: #F4F4F4; border-radius: 4px; flex-grow: 0; height: 14px; width: 144px;"></div>
            </div>
        </a>
        <p style=" color:#c9c8cd; font-family:Arial,sans-serif; font-size:14px; line-height:17px; margin-bottom:0; margin-top:8px; overflow:hidden; padding:8px 0 7px; text-align:center; text-overflow:ellipsis; white-space:nowrap;"><a id="href2" href="https://www.instagram.com/p/${getData}/?utm_source=ig_embed&amp;utm_campaign=loading" style=" color:#c9c8cd; font-family:Arial,sans-serif; font-size:14px; font-style:normal; font-weight:normal; line-height:17px; text-decoration:none;" target="_blank">Sebuah kiriman dibagikan oleh BP2MI UPT Wilayah Mataram (@bp2mi.mataram)</a> pada <time style=" font-family:Arial,sans-serif; font-size:14px; line-height:17px;" datetime="2020-07-19T23:02:22+00:00">19 Jul 2020 jam 4:02 PDT</time></p>
    </div>
</blockquote>
                            `);
// End Code embed Instagram

// mencari embed Instagram dan memuatnya
                if (typeof window.instgrm !== 'undefined') {
                    window.instgrm.Embeds.process();
                }
            }
        });

    });
</script>

</html>


Berikut cara mendapatkan code embed postingan instagram:
Buka Profil akun instagram yang akan kita ambil postingannya dan pilih postingan yang akan dijadikan embed .
Klik simbol titik tiga (...) yang ada di pojok kanan post. Pada Saat muncul tampilan pop-up,

klik Sematkan atau dalam bahasa inggrisnya Embed.

Klik tombol "Salin Kode Sematan" atau dalam bahasa inggrisnya "Copy Embed Code" untuk mengambil kode yang akan dijadikan embed.

setelah Embed Code berhasil didapat  silahkan ganti code yang terdapat pada baris 34-80 dengan Embed Code instagram kalian sendiri.

Pada pilihan bagian "Sertakan Keterangan" atau bahasa inggrinsya "Include caption"  Kita bisa uncheck jika tidak ingin menampilkan bersama keterangan/caption dari postingannya.

Berikut Output code yang dihasilkan….untuk selanjutnya teman-teman silahkan mengembangkan sesuai keperluan.....



Jika ada pertanyaan atau kendala saat mengukuti tutorial ini,silahkan tinggalkan pertanyaan teman teman dibawah

Cara Mengatasi "/dev/kvm device: permission denied" pada Linux ubuntu (Android Studio)

Sering kali ketika ingin membuka Emulator di Android Studio pada ubuntu akan ada pesan dialog "/dev/kvm device: permission denied" sehingga emulator yang ingin di jalankan tidak bisa terbuka, Maksud dari pesan yang ditampilkan ini adalah user yang kita pakai tidak memiliki akses ke /dev/kvm yang diperlukan oleh emulator. Bagaimana menyelesaikannya?




Adapun Tips cara mengatasi masalah diatas adalah:
1. Buka terminal pada OS linux dengan cara menekan kombinasi tombol CTRL+ALT+T



2.Selanjutnya ketikkan perintah sudo chmod 777 -R /dev/kvm lalu tekan enter




Itulah cara menyelesaikan masalah /dev/kvm device: permission denied semoga berhasil






Keamanan Jaringan CISCO dengan Studi Kasus PART VI


4.3 Mengkonfigurasi Extended ACL pada router CORE

1. Berpindah ke mode global configuration

CORE# conf t

2.  Membuat Extended ACL untuk mengijinkan akses layanan FTP dari subnet SALES 172.16.1.0/26 ke Server Web Intranet 172.16.1.67 yang terdapat di subnet Server Farm

CORE(config)#access-list 150 permit tcp 172.16.1.0 0.0.0.63 172.16.1.67 0.0.0.0 range 20 21

3.    Membuat Extended ACL untuk mengijinkan akses layanan HTTP (tcp/80) dan HTTPS (tcp/443) dari subnet SALES 172.16.1.0/26,subnet KARYAWAN 172.16.0.0/25,dan subnet KEUANGAN 172.16.0.128/25 ke Server Web Intranet

172.16.1.67 yang terdapat di subnet Server Farm

CORE(config)#access-list 150 permit tcp 172.16.0.0 0.0.0.127 172.16.1.67 0.0.0.0 eq 80
CORE(config)#access-list 150 permit tcp 172.16.0.0 0.0.0.127 172.16.1.67 0.0.0.0 eq 443
CORE(config)#access-list 150 permit tcp 172.16.0.128 0.0.0.127 172.16.1.67 0.0.0.0 eq 80
CORE(config)#access-list 150 permit tcp 172.16.0.128 0.0.0.127 172.16.1.67 0.0.0.0 eq 443
CORE(config)#access-list 150 permit tcp 172.16.1.0 0.0.0.63 172.16.1.67 0.0.0.0 eq 443
CORE(config)#access-list 150 permit tcp 172.16.1.0 0.0.0.63 172.16.1.67 0.0.0.0 eq 80



4.  Membuat extended acl untuk mengijinkan protocol NTP,SYSLOG,dan TFTP yang ada pada subnet Server FARM dapat diakses oleh semua router kecuali Router GW yang ada pada jaringan internal PT. MA

CORE(config)#access-list 150 permit udp 172.16.1.130 0.0.0.0 172.16.1.66 0.0.0.0 eq 123
CORE(config)#access-list 150 permit udp 172.16.1.133 0.0.0.0 172.16.1.66 0.0.0.0 eq 123
CORE(config)#access-list 150 permit udp 172.16.1.130 0.0.0.0 172.16.1.66 0.0.0.0 eq 514
CORE(config)#access-list 150 permit udp 172.16.1.133 0.0.0.0 172.16.1.66 0.0.0.0 eq 514
CORE(config)#access-list 150 permit udp 172.16.1.130 0.0.0.0 172.16.1.66 0.0.0.0 eq 69
CORE(config)#access-list 150 permit udp 172.16.1.133 0.0.0.0 172.16.1.66 0.0.0.0 eq 69
CORE(config)#access-list 150 permit udp any 172.16.1.66 0.0.0.0 gt 1023

5.  Membuat Extended ACL untuk mengijinkan koneksi dari alamat IP sumber berapapun ke alamat subnet Server Farm 172.16.1.64/26 dengan port lebih besar (greater than - gt) dari 1023.

CORE(config)#access-list 150 permit tcp 0.0.0.0 255.255.255.255 172.16.1.64 0.0.0.63 gt 1023

6.   Membuat Extended ACL untuk mengijinkan balasan DNS query dari Server DNS 202.203.204.1 port 53 dengan tujuan ke alamat IP dari PC NetMon (Network Monitoring)

172.16.1.65.  Pada awalnya permintaan DNS query dikirimkan dari PC NetMon ke Server DNS sehingga akses Internet dengan nama domain dapat dilakukan.

CORE(config)#access-list 150 permit udp 202.203.204.1 0.0.0.0 eq 53 172.16.1.65 0.0.0.0

7.  Membuat Extended ACL untuk mengijinkan protokol ICMP yang digunakan oleh ping ketika verifikasi koneksi antar host dari alamat IP sumber berapapun ke alamat subnet dari subnet Server Farm yaitu 172.16.1.64/26.

CORE(config)#access-list 150 permit icmp 0.0.0.0 255.255.255.255 172.16.1.64 0.0.0.63

8.  Membuat VPN Server untuk mengamankan komunikasi antara Subnet KARYAWAN ataupun Subnet KEUANGAN menuju Subnet Server FARM, dengan VPN semua layanan yang ada pada Subnet Server FARM dapat diakses.


CORE(config)#aaa new-model
CORE(config)#aaa authentication login keamanan local
CORE(config)#aaa authorization network jaringan local
CORE(config)#username ahmad password ahmad
CORE(config)#crypto isakmp policy 10
CORE(config-isakmp)#encryption 3des
CORE(config-isakmp)#hash md5
CORE(config-isakmp)#authentication pre-share
CORE(config-isakmp)#group 2
CORE(config-isakmp)#ex


CORE(config)#ip local pool VPNPOOL 192.168.1.1 192.168.1.10
CORE(config)#crypto isakmp client configuration group skj
CORE(config-isakmp-group)#key cisco123
CORE(config-isakmp-group)#pool VPNPOOL
CORE(config-isakmp-group)#ex

CORE(config)#crypto ipsec transform-set set1 esp-3des esp-md5-hmac
CORE(config)#crypto dynamic-map map1 10
CORE(config-crypto-map)#set transform-set set1
CORE(config-crypto-map)#reverse-route

CORE(config)#crypto map map1 client configuration address respond
CORE(config)#crypto map map1 client authentication list keamanan
CORE(config)#crypto map map1 isakmp authorization list jaringan
CORE(config)#crypto map map1 10 ipsec-isakmp dynamic map1
CORE(config)#int fa0/0
CORE(config-if)#crypto map map1
CORE(config)#access-list 150 permit ip 192.168.1.0 0.0.0.255 172.16.1.64 0.0.0.63


9.Berpindah ke interface configuration

CORE(config)# int vlan 1

10. Menerapkan ACL yang telah dibuat

CORE(config-if)# ip access-group 150 out

Berpindah ke mode privilege

CORE(config-if)# end

11. Menampilkan informasi ACL yang terdapat pada router CORE
Terlihat ACL dengan nomor 150 telah terbuat

12.  Memverifikasi penerapan ACL pada interface vlan 1
13.  Memverifikasi akses FTP ke Server Web Intranet 172.16.1.67 menggunakan browser dari salah satu PC yang terdapat di subnet SALES sebagai contoh PC RANDI.

14.    Memverifikasi akses HTTP dan HTTPS ke Server Web Intranet 172.16.1.67 menggunakan browser dari salah satu PC yang terdapat di subnet KARYAWAN sebagai contoh Laptop1.

15.    Memverifikasi akses HTTP dan HTTPS ke Server Web Intranet 172.16.1.67 menggunakan browser dari salah satu PC yang terdapat di subnet KEUANGAN sebagai contoh PC AHMAD.

16.    Memverifikasi akses HTTP dan HTTPS ke Server Web Intranet 172.16.1.67 menggunakan browser dari salah satu PC yang terdapat di subnet SALES sebagai contoh
PC RANDI.

17.     Memverifikasi akses NTP ke Server TFTP,NTP & SYSLOG 172.16.1.66 menggunakan cli dari salah satu Router yang terdapat di jaringan internal PT.MA sebagai contoh Router R1.


18.    Memverifikasi akses SYSLOG ke Server TFTP,NTP & SYSLOG 172.16.1.66 menggunakan cli dari salah satu Router yang terdapat di jaringan internal PT.MA sebagai contoh Router R1.

19.     Memverifikasi akses TFTP ke Server TFTP,NTP & SYSLOG 172.16.1.66 menggunakan cli dari salah satu Router yang terdapat di jaringan internal PT.MA sebagai contoh Router R1.

20.  Memverifikasi akses VPN ke Subnet Server FARM 172.16.1.64/26 menggunakan cli dari salah satu Laptop yang terdapat di Subnet KARYAWAN sebagai contoh Laptop1.