Tampilkan postingan dengan label FOSS. Tampilkan semua postingan
Tampilkan postingan dengan label FOSS. Tampilkan semua postingan

Kamis, 26 Mei 2022

Cara Download PDF di Google Drive yang diproteksi

 


Cara Download PDF di Google Drive yang diproteksi

1. Buka File .pdf yang akan didownload kemudian CTRL+J untuk membuka jendela inspect

2. Setelah jendela inspect terbuka, scroll sampai habis file .pdf tersebut sampai semua halaman terbuka.

3. Kemudian di jendela inspect buka tab console kemudian pastekan kode dibawah ini

let jspdf = document.createElement("script");
jspdf.onload = function () {
    let pdf = new jsPDF();
    let elements = document.getElementsByTagName("img");
    for (let i in elements) {
        let img = elements[i];
        console.log("add img ", img);
        if (!/^blob:/.test(img.src)) {
            console.log("invalid src");
            continue;
        }
        let can = document.createElement('canvas');
        let con = can.getContext("2d");
        can.width = img.width;
        can.height = img.height;
        con.drawImage(img, 0, 0, img.width, img.height);
        let imgData = can.toDataURL("image/jpeg", 1.0);
        pdf.addImage(imgData, 'JPEG', 0, 0);
        pdf.addPage();
    }
    pdf.save("Exported_File.pdf");
};
jspdf.src = 'https://cdnjs.cloudflare.com/ajax/libs/jspdf/1.5.3/jspdf.debug.js';
document.body.appendChild(jspdf);

Tunggu proses sampai selesai. Selamat, file .pdf sudah di download

Selasa, 26 April 2022

Cara Mengatasi MySQL Shutdown Unexpectedly

 


Pada kesempatan kali ini kami akan membahas bagaimana cara mengatasi error pada saat menjalankan MySQL di XAMPP.

Pesan Error

11:33:55  [mysql] Status change detected: stopped
11:33:55  [mysql] Error: MySQL shutdown unexpectedly.
11:33:55  [mysql] This may be due to a blocked port, missing dependencies, 
11:33:55  [mysql] improper privileges, a crash, or a shutdown by another method.
11:33:55  [mysql] Press the Logs button to view error logs and check
11:33:55  [mysql] the Windows Event Viewer for more clues
11:33:55  [mysql] If you need more help, copy and post this
11:33:55  [mysql] entire log window on the forums

Cara mengatasi

Cara mengatasi error tersebut sangat mudah, yakni menggunakan folder backup bawaan XAMPP pada saat instalasi, berikut langkah-langkahnya:

  1. langkah pertama, kalian masuk ke dalam folder xampp/mysql
  2. ubah nama folder xampp/mysql/data menjadi xampp/mysql/data_old
  3. buat folder baru xampp/mysql/data
  4. copy semua file yang ada di dalam folder xampp/mysql/backup ke dalam folder xampp/mysql/data yang baru saja dibuat
  5. copy semua folder database yang ada di dalam data_old ke dalam folder data (kecuali folder mysqlperformance_schema, dan phpmyadmin)
  6. kemudian copy and replace file ibdata1 pada folder data_old ke dalam folder data
  7. jalankan kembali MySQL pada XAMPP
  8. selesai

Silahkan dijalankan lagi XAMPP nya dan berhasil !!

Kamis, 24 Februari 2022

Menghitung Kebutuhan RAM & Processor Server / VPS


Cara menentukan spesifikasi server / VPS / Cloud yang harus disiapkan jika membuat server / hosting baru.
"Contoh estimasi pengunjung 250 Online, jadi berapakah RAM / Memory yang harus disediakan..?"
Tips ini berguna untuk server / Moodle bagi institusi yang bertujuan untuk ujian online, dll.

Rumus Perhitungan

Variabel :

  • M = Jumlah Pengujung Aktif / Online
  • CU = Jumlah Concurrent Pengujung (Jumlah maksimum pengguna yang berpotensi untuk mengakses (submit) Moodle / Aplikasi secara bersamaan / serentak.

Note : Biasanya digunakan tidak lebih dari 10% s/d 40% dari jumlah pengunjung aktif. Contoh terjadi 30% concurrent access dengan Jumlah Pengunjung Aktif 100 orang, maka CI = 100 * 30% = 30 Concurrent

Formula CU = M * 20%
  • M = Memory RAM, setiap 1 GB RAM dapat melayani 20-30 Concurrent User, diluar 1 GB pertama untuk alokasi OS dan Database
  • Speed Processor = SP 
    - Type 1 = 1 GHz s/d 2.1 GHz
    - Type 2 = 2.1 GHz s/d 3 GHz
    - Type 3 = > 3 Ghz
  • RAM Dasar = RD 
    '1' untuk OS Linux tanpa GUI
    '2' untuk OS Linux + GUI atau MS Windows
Rumus menghitung kebutuhan RAM yang dibutuhkan >= RD + CU / 20

Estimasi Perhitungan

Contoh 1 :

  • M <= 200 User Online, OS Linux Server (Tanpa GUI) --> RD = 1 GB
  • SP disarankan = type 1 dengan core >= 2
  • Asumsi Tingkat concurrent 20%, maka jumlah CU = 200 * 20% = 40
Jadi RAM yang dibutuhkan >= RD + CU / 20 = 3 GB ~> 4 GB

Contoh 2 :

  • M <= 500 User Online, OS Linux Server + GUI --> RD = 2 GB
  • SP disarankan = type 2 dengan core >= 4
  • Asumsi Tingkat concurrent 20%, maka jumlah CU = 500 * 20% = 100
Jadi RAM yang dibutuhkan >= RD + CU / 20 = 7 GB ~> 8 GB

Contoh 3 :

  • M <= 1000 User Online, OS Linux Server (Tanpa GUI) --> RD = 1 GB
  • SP disarankan = type 3 dengan core >= 4
  • Asumsi Tingkat concurrent 20%, maka jumlah CU = 1000 * 20% = 200
Jadi RAM yang dibutuhkan >= RD + CU / 20 = 11 GB ~> 16 GB

"Jika jumlah pengunjung aktif lebih besar dari 10.000, disarankan menggunakan multiserver dengan teknis loadbalancer"

Kamus HTML


KAMUS HTML

TagKeterangan
<!-- ... -->Digunakan untuk memberi sebuah komentar atau keterangan. Kalimat yang terletak pada kontiner ini tidak akan terlihat pada browser
<!DOCTYPE> Mendefinisikan informasi tipe dokumen 
<a>Mendefinisikan sebuah anchor, tetapi lebih tepat jika diartikan sebagai tautan dikarenakan tautan ini digunakan untuk saling menautkan antara satu dokumen HTML ke dokumen HTML yang lain 
<abbr>Digunakan untuk menguraikan satu ungkapan yang disingkat dan Anda dapat memberikan informasi bermanfaat kepada penelusur-penulusur page source(halaman sumber kode) / pembaca layar, sistem terjemahan dan mesin pencari yang berasal dari singkatan yang sudah diuraikan, tetapi saat di browser uraian tersebut tidak akan tampil dan hanya sebagai informasi saja
<acronym>Mendefinisikan akronim / fungsi tag ini kurang lebih sama dengan tag <abbr>
<address>Mendefinisikan informasi kontak untuk penulis/pemilik dokumen
<applet>Digunakan untuk memasukan file java kedalam dokumen HTML
<area />Mendefinisikan daerah yang dapat diklik (link) pada peta gambar
<b>Membuat teks tebal
<base />Mendefinisikan URL dasar/target untuk semua URL relatif dalam dokumen
<basefont />Membuat atribut teks default, seperti warna, ukuran, jenis font untuk semua teks dalam dokumen
<bdo>Digunakan untuk menimpa arah teks
<big>Memperbesar ukuran teks sebesar satu point dari defaultnya
<blink>Membuat teks berkedip
<blockquote>Mendefinisikan sebuah kutipan panjang. Pada saat di browser teks akan tampil menjorok kedalam 
<body>Mendefinisikan body/isi dokumen HTML, berfungsi untuk menentukan bagaimana isi suatu dokumen ditampilkan di web browsernya. Isi dokumen tersebut dapat berupa teks, gambar, animas, link dan seterusnya
<br />Memberi baris baru/pindah baris
<button>Mendefinisikan sebuah tombol diklik
<caption>Membuat caption pada tabel
<center>Untuk perataan tengah terhadap teks atau gambar 
<cite>Mendefinisikan kutipan
<code>Mendefinisikan sebuah bagian dari kode komputer
<col />Mendefinisikan nilai atribut dari satu kolom atau lebih dalam sebuah tabel
<colgroup>Menentukan kelompok dari satu kolom atau lebih dalam sebuah tabel untuk performatan
<dd>Mendefinisikan deskripsi dari item dalam daftar definisi
<del>Untuk memberi garis tengah pada teks/mencoret teks
<dfn>Mendefinisikan sebuah istilah definisi
<dir>Mendefinisikan sebuah daftar direktori
<div>Mendefinisikan sebuah section dalam dokumen 
<dl>Mendefinisikan sebuah daftar definisi
<dt>Mendefinisikan istilah (item) dalam daftar definisi
<em>Membuat teks miring. Fungsi tag ini sama dengan tag <i> tetapi tag <em> yang lebih dianjurkan/ditekankan pada penggunaan untuk teks miring
<embed>Digunakan untuk memasukkan file video atau file musik
<fieldset>Untuk mengelompokkan elemen-elemen yang terkait dalam form / membuat seperti frame-box di dalam form
<font>Mendefinisikan jenis font, warna dan ukuran untuk teks
<form>Mendefinisikan sebuah form HTML untuk input form
<frame />Mendefinisikan frame dalam fremeset
<frameset>Mendefinisikan satu set frame
<h1> to <h6>Digunakan untuk menunjukkan awal dari suatu header/judul dari dokumen HTML tersebut.
<head>Digunakan untuk memberikan informasi tentang dokumen tersebut
<hr />Membuat garis horisontal
<html>Mendefinisikan root dari suatu dokumen HTML
<i>Membuat teks miring
<iframe>Mendefinisikan sebuah inline frame
<img />Berfungsi untuk menampilkan gambar pada dokumen HTML
<input />Mendefinisikan input field pada form
<ins>Membuat teks bergaris bawah
<kbd>Mendefinisikan teks yang di input dari keyboard
<label>Mendefinisikan label untuk sebuah elemen <input>
<legend>Mendefinisikan sebuah caption untuk elemen <fieldset>
<li>Digunakan untuk menampilkan informasi dalam bentuk item daftar 
<link />Mendefinisikan hubungan antara dokumen dan sumber eksternalnya
<listing>Fungsi tag ini sama dengan tag <pre> dan dianjurkan menggunakan tag <pre> karena tag <listing> tidak layak/diprotes
<map>Mendefinisikan client-side peta gambar
<marquee> Membuat teks berjalan secara vertikal atau horisontal
<menu>Mendefinisikan sebuah daftar menu
<meta />Mendefinisikan metadata tentang sebuah dokumen HTML
<nobr>Mencegah ganti baris pada teks atau gambar
<noframes>Jika browser user tidak mendukung frame
<noscript>Jika browser user tidak mendukung client-side scripts
<object>meletakkan embed sebuah objek
<ol>Mendefinisikan daftar dalam format penomoran
<optgroup>Menampilkan beberapa pilihan yang sudah dikelompokkan dalam bentuk sebuah daftar drop-down
<option>Menampilkan beberapa pilihan yang berbentuk dalam sebuah daftar drop-down
<p>Membuat sebuah paragraf
<param />Mendefinisikan sebuah parameter untuk objek
<pre>Membuat teks dengan ukuran huruf yang sama
<q>Mendefinisikan sebuah kutipan singkat
<s>Untuk memberi garis tengah pada teks/mencoret teks, fungsi tag ini sama dengan tag <del> tetapi tag <s> tidak dianjurkan sebagai gantinya menggunakan tag <del>
<samp>Mendefinisikan contoh keluaran dari program komputer
<script>Mendefinisikan client-side script
<select>Membuat daftar drop-down
<small>Memperkecil ukuran teks dari ukuran defaultnya
<span>Mendefinisikan sebuah section dalam dokumen 
<strike>Untuk memberi garis tengah pada teks/mencoret teks, fungsi tag ini sama dengan tag <del>
<strong>Membuat teks tebal, fungsi tag ini sama dengan tag <b>
<style>Mendefinisikan informasi style untuk dokumen HTML
<sub>Memberikan efek subscript pada teks
<sup>Memberikan efek superscript pada teks
<table>Membuat tabel
<tbody>Untuk mengelompokkan isi body di dalam sebuah tabel
<td>Mendefinisikan sel di dalam sebuah tabel
<textarea>Mendefinisikan sebuah kontrol input multiline
<tfoot>Untuk mengelompokkan isi footer di dalam sebuah tabel
<th>Mendefinisikan sel header di dalam  sebuah tabel
<thead>Untuk mengelompokkan isi header di dalam sebuah tabel
<title>Membuat judul untuk dokumen HTML
<tr>Membuat baris di dalam sebuah tabel
<tt>Mendefinisikan teletype text
<u>Membuat teks bergaris bawah, fungsi tag ini sama dengan tag <ins> tetapi tag <u> tidak dianjurkan untuk kategori HTML text formatting melainkan termasuk kategori HTML Style
<ul>Mendefinisikan daftar dalam format bullet
<var>Mendefinisikan sebuah variabel
<xmp>Mendefinisikan preformatted text, fungsi tag ini sama dengan tag <pre>

Rabu, 09 Februari 2022

Cara Install Moodle dengan Apache di Ubuntu Server 20.04

 




Perangkat Lunak yang digunakan :

  • OS : Ubuntu Server 20.04
  • Web Server : Apache
  • PHP Engine : PHP v7.4
  • Database : MariaDB
  • Moodle : Moodle v.3.11

Update Repo

sudo apt update

Install Apache 

apt -y install apache2
sudo  ufw allow 'Apache'

Install PHP 7.4

sudo apt -y install software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt update
sudo apt -y install php7.4

Install Extension PHP

sudo apt -y install php7.4-common php7.4-mysql php7.4-xml php7.4-xmlrpc \
php7.4-curl php7.4-gd php7.4-imagick php7.4-cli php7.4-dev \
php7.4-imap php7.4-mbstring php7.4-opcache php7.4-soap \
php7.4-zip php7.4-cli php7.4-intl \
imagemagick git zip libgd-dev libapache2-mod-php 

Edit

sudo nano /etc/php/7.4/apache2/php.ini
upload_max_filesize = 100M
post_max_size = 48M
memory_limit = 512M
max_execution_time = 600
max_input_vars = 3000
max_input_time = 1000

Restart Apache2

sudo systemctl restart apache2.service

Test file .php

sudo nano /var/www/html/phpinfo.php
<?php phpinfo( ); ?>

Kemudian akses ip_server/phpinfo.php


Install MariaDB

Install MariaDB database

apt install mariadb-server -y

Mengamankan instalasi MariaDB

mysql_secure_installation

Jawab Pertanyaannya

Enter current password for root (enter for none): ENTER
Set root password? [Y/n] y
Remove anonymous users? [Y/n] y
Disallow root login remotely? [Y/n] y
Remove test database and access to it? [Y/n] y
Reload privilege tables now? [Y/n] y

Login ke MariaDB

mysql -u root -p

Membuat database untuk Moodle

CREATE DATABASE moodle DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;    
CREATE USER 'moodle'@'localhost' IDENTIFIED BY 'moodle';
GRANT ALL PRIVILEGES ON moodle.* TO 'moodle'@'localhost';
FLUSH PRIVILEGES;
exit 


Install Moodle

Persiapkan dulu folder untuk moodle

mkdir -p /var/www/moodledata
chmod -Rf 777 /var/www/moodledata/
chown -Rf www-data: /var/www/moodledata/

Download Moodle 3.11

cd /var/www/html
wget https://download.moodle.org/download.php/direct/stable311/moodle-latest-311.zip
unzip moodle-latest-311.zip
chown -Rf www-data: /var/www/moodledata/
chmod -Rf 777 /var/www/html/moodle
chown -Rf www-data: /var/www/html/moodle

Kemudian lanjutkan install moodle via browser http://ip-address/moodle


Selasa, 28 September 2021

Cara Setting Static IP Address di Ubuntu Server 18.04

 



Konfigurasi IP address pada Ubuntu Server 18.04 sudah berbeda dibandingkan dengan versi Ubuntu 16.04 ke bawah.

Pada versi sebelumnya dapat dilakukan pada /etc/network/interfaces . Pada Ubuntu 18.04 konfigurasi IP address nya di lakukan pada /etc/netplan/50-cloud-init.yaml

Konfigurasi Static IP Address di Ubuntu Server 18.04

Buka file konfigurasi "sudo nano /etc/netplan/50-cloud-init.yaml"
    Contoh Default file konfigurasi
network :
            ethernets:
                    enp0s3:
                        addresses: []
                        dhcp4: true
                        optional: true
            version: 2


    Contoh Perubahan Static IP Address
network :
            ethernets:
                    enp0s3:
                        addresses: [192.168.1.2/24]
                        gateway4: 192.168.1.1

                        nameservers:
                            addresses: [8.8.8.8,8.8.4.4]
                        dhcp4: no
            version: 2


enp0s3: nama network interface, cara mengecek namanya pakai perintah ip addr

addresses: IP address yang diberikan dengan subnet /24 (255.255.255.0)

nameservers - addresses: IP address untuk dns resolver, disini memakai DNS dari Google.

dhcp4: diisi dengan no jika tidak memakai DCHP. Jika memakai DHCP, semua IP address tidak usah dimasukkan.

Keterangan :

Mengaktifkan  konfigurasi IP address yang baru saja dibuat
sudo netplan apply

Mengaktifkan opsi debug untuk melihat prosesnya
sudo netplan --debug apply


Selasa, 18 Mei 2021

Cara Install SSL Let's Encrypt Apache di Ubuntu

 





Let's Encrypt adalah suatu nama layanan penerbitan SSL Sertifikat. SSL/TLS yaitu suatu jalur terenkripsi yang berfungsi mengamankan website dan web browser, biasanya pada domain suatu website yang memiliki sertifikat  SSL akan bertransformasi menjadi HTTPS bukan HTTP.

Sebelum install SSL pastikan sudah menginstall Apache pada OS Ubuntu.

1. Install Cerbot
    Tambah Repository Certbot
sudo add-apt-repository ppa:certbot/certbot
     Install Paket Certbot
sudo apt install certbot python3-certbot-apache

2. Sertifikat SSL Let's Encrypt
    Plugin Apache mengatur dan memuat ulang kapanpun diperlukan. Dan untuk menggunakan plugin 
    ini ketikkan :
sudo certbot --apache -d jariketik.com -d www.jariketik.com
    Perintah ini akan menjalankan  certbot dengan plugin --apache, menggunakan -d untuk menentukan 
    nama domain untuk sertifikatnya.

3. Masukkan alamat email untuk menerima notifikasi ketika SSL akan habis msa berlakunya.
Enter email address (used for urgent renewal and security notices)
notices)(Enter 'c' to cancel): support@jariketik.com
    
4. Jawab 'A(Agree)' untuk menyetujui Terms of Service.
Please read the Term of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf.
You mustagree in order to register with the ACME server at
https://acme-v02.api.letsencrypt.org/directory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -   (A)gree/(C)ancel: A

6. Jawab 'Y(Yes)' jika ingin dikirimkan informasi ke email.
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and
the non-profit organization that develops Certbot? We'd like to 
send you email about our work encrypting the web, EFF news, 
campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
(Y)es/(N)o: Y
  
7. Jawab '2' agar semua permintaan secara otomatis dialihkan ke protokol HTTPS.
Please choose whether or not to redirect HTTP traffic to HTTPS,  
removing HTTP access.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  1: No redirect Make no further changes to the webserver  
     configuration.
  2: Redirect - Make all requests redirect to secure HTTPS access. 
     Choose this for
     new sites, or if you're confident your site works on HTTPS.
     You can undo this change by editing your web server's configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2
  
7. SSL berhasil terpasang
Congratulations! You have successfully enabled
https://jariketik.com and https://www.jariketik.com

8. Memperbaharui SSL
sudo certbot renew