Persiapan Cerdas: Kuasai Microsoft Office untuk Mempermudah Jalan Masuk TNI dan Kepolisian

Menjadi anggota TNI atau Kepolisian merupakan cita-cita banyak anak muda Indonesia. Namun, di era digital saat ini, persaingan semakin ketat. Tidak hanya kemampuan fisik dan mental yang diuji, tetapi juga kemampuan dalam menguasai teknologi, khususnya Microsoft Office.

Banyak calon pendaftar yang belum menyadari bahwa kemampuan ini bisa menjadi nilai tambah yang signifikan dalam proses seleksi maupun saat sudah menjalankan tugas nantinya.


Mengapa Microsoft Office Itu Penting?

Di lingkungan TNI dan Kepolisian, pekerjaan administrasi memiliki peran penting. Hampir setiap kegiatan membutuhkan dokumentasi yang rapi dan sistematis.

Berikut beberapa alasan mengapa Microsoft Office wajib dikuasai:

  • Membantu membuat laporan resmi dengan rapi dan profesional
  • Mempermudah pengolahan data dan informasi
  • Digunakan dalam presentasi kegiatan atau briefing
  • Menunjukkan kesiapan dan kompetensi di era digital

Skill yang Harus Dikuasai

1. Microsoft Word

Digunakan untuk:

  • Membuat surat resmi
  • Menyusun laporan kegiatan
  • Mengatur format dokumen sesuai standar

2. Microsoft Excel

Digunakan untuk:

  • Mengolah data peserta atau kegiatan
  • Menggunakan rumus dasar seperti SUM dan AVERAGE
  • Membuat tabel dan grafik sederhana

3. Microsoft PowerPoint

Digunakan untuk:

  • Membuat bahan presentasi
  • Menyampaikan laporan secara visual
  • Menyusun informasi secara sistematis

Keuntungan Menguasai Microsoft Office

Dengan menguasai Microsoft Office, kamu akan mendapatkan banyak manfaat seperti:

  • ✅ Lebih siap menghadapi seleksi
  • ✅ Memiliki nilai tambah dibanding peserta lain
  • ✅ Lebih percaya diri saat tes administrasi
  • ✅ Mempermudah pekerjaan setelah diterima

Tips Belajar untuk Pemula

Agar cepat menguasai Microsoft Office, kamu bisa mulai dengan langkah berikut:

  • Belajar dari dasar secara bertahap
  • Latihan setiap hari secara konsisten
  • Gunakan contoh nyata seperti membuat surat atau laporan
  • Ikuti bimbingan atau pelatihan
  • Jangan takut mencoba dan belajar dari kesalahan

Kesimpulan

Di era modern ini, menjadi anggota TNI atau Kepolisian tidak cukup hanya mengandalkan fisik dan mental. Kemampuan teknologi seperti Microsoft Office menjadi bekal penting yang dapat membantu kamu lolos seleksi dan sukses dalam karier.

Persiapkan dirimu dari sekarang agar tidak tertinggal dari peserta lain.


🚀 Ingin lebih cepat menguasai Microsoft Office dengan bimbingan yang tepat?
Yuk mulai sekarang dan tingkatkan peluangmu untuk lolos TNI & Polri!


#TNI #Polri #PersiapanTNI #PersiapanPolri
#LolosTNI #LolosPolri #TesTNI #TesPolri
#MicrosoftOffice #BelajarKomputer #SkillDigital
#KursusKomputer #SiapLolos #PejuangTNI #PejuangPolri

validasi-file-upload-jquery

Validasi File Upload (JQuery)

Untuk melakukan validasi file di sisi client (sebelum submit) menggunakan jQuery, kamu bisa memanfaatkan API files bawaan browser yang diakses melalui selector jQuery. Bagi para web developers hal ini sangat membantu sekali dalam penerapan javascript khususnya.

Berikut adalah cara praktis untuk mengecek tipe file (MIME type) dan ukurannya:

Kode Implementasi

Pastikan kamu sudah memanggil library jQuery di file HTML kamu.JavaScript

$(document).ready(function() {
    $('#fileInput').on('change', function() {
        // Ambil data file pertama
        const file = this.files[0];
        const fileType = file.type;
        const fileSize = file.size; // dalam bytes
        const limitSize = 2 * 1024 * 1024; // 2 MB

        // 1. Validasi Tipe File (harus PDF)
        if (fileType !== 'application/pdf') {
            alert('Waduh, cuma boleh file PDF aja nih!');
            $(this).val(''); // Reset input file
            return false;
        }

        // 2. Validasi Ukuran File (max 2MB)
        if (fileSize > limitSize) {
            alert('Kegedean bro! Maksimal file cuma 2 MB.');
            $(this).val(''); // Reset input file
            return false;
        }

        console.log('File aman, siap di-submit!');
    });
});

Penjelasan Singkat

  • this.files[0]: Karena input file bisa mendukung multiple, kita ambil indeks pertama untuk input tunggal.
  • file.type: Digunakan untuk mengecek MIME type. Untuk PDF, nilainya adalah application/pdf.
  • file.size: Ukuran file dihitung dalam satuan Byte. Jadi untuk 2 MB, perhitungannya adalah $2 \times 1024 \times 1024$.
  • $(this).val(''): Ini penting supaya inputan di-reset jika tidak valid. Kalau tidak di-reset, user masih bisa memaksakan submit file yang salah tadi.

Tips Tambahan (UX)

Agar user tidak bingung dari awal, tambahkan atribut accept pada tag HTML kamu. Ini akan memfilter file di jendela pemilihan dokumen secara otomatis, meskipun validasi JavaScript di atas tetap wajib ada untuk keamanan.HTML

<input type="file" id="fileInput" accept="application/pdf">

Gimana sudah kebayangkan? Sip… lanjutkan explorasi dan implementasinya di web system terus yaa…!

Cara Whitelist Domain di Exim4 Agar Tidak Terblokir Spamhaus & Filter Spam

Seringkali email dari pengirim valid (seperti Gmail atau Outlook) ditolak oleh server mail sendiri karena IP mereka masuk ke daftar DNSBL (seperti Spamhaus) atau mendapatkan skor spam yang tinggi. Tutorial ini akan membahas cara melakukan whitelist domain secara menyeluruh di Exim4.

1. Persiapan File Whitelist

Pertama, kita buat file khusus untuk menampung daftar domain yang dipercaya. Hal ini memudahkan manajemen tanpa harus mengedit file konfigurasi utama setiap saat.Bash

nano /etc/exim4/whitelist_domains

Isi dengan daftar domain (satu domain per baris), contoh:Plaintext

gmail.com
google.com
fgroupindonesia.com
adaro.com

2. Whitelist di Sisi SMTP (Bypass DNSBL)

Agar email tidak ditolak di awal koneksi oleh Spamhaus atau Spamcop, kita harus mengedit ACL (Access Control List) pada bagian RCPT.

Buka file template konfigurasi Exim4:Bash

nano /etc/exim4/exim4.conf.template

Cari blok acl_check_rcpt:. Sisipkan baris accept sender_domains tepat DI ATAS baris deny yang berisi dnslists:Code snippet

acl_check_rcpt:
  accept authenticated = *

  # Whitelist Domain agar bypass DNSBL
  accept sender_domains = lsearch;/etc/exim4/whitelist_domains
         log_message = Whitelisted domain $sender_address_domain detected, skipping DNSBL.

  deny
    message = Rejected - listed in $dnslist_domain
    dnslists = zen.spamhaus.org : bl.spamcop.net

3. Whitelist di Sisi Data (Bypass Content Scanner)

Meskipun sudah diterima di gerbang depan, email masih bisa ditandai sebagai spam oleh SpamAssassin. Untuk menghindarinya, kita harus membypass proses scanning di bagian DATA.

Masih di file yang sama, cari blok acl_check_data:. Sisipkan aturan accept di bagian paling atas:Code snippet

acl_check_data:

  # Bypass scan spam untuk domain whitelist
  accept sender_domains = lsearch;/etc/exim4/whitelist_domains
         log_message = Skipping spam scan for whitelisted domain $sender_address_domain

  # Scan pakai SpamAssassin (Hanya dijalankan jika tidak kena whitelist di atas)
  warn
    spam = nobody:true
    add_header = X-Spam-Score: $spam_score
    add_header = X-Spam-Status: Yes score=$spam_score

4. Update Konfigurasi dan Restart Service

Setelah file template diubah, kita harus mengompilasi ulang konfigurasi Exim4 agar perubahan tersebut diterapkan ke file konfigurasi aktif, lalu melakukan restart service.Bash

# Update konfigurasi dari template
update-exim4.conf

# Restart service Exim4
systemctl restart exim4

5. Verifikasi dan Monitoring

Langkah terakhir adalah memastikan konfigurasi berjalan dengan benar. Kosongkan log lama agar lebih mudah memantau email yang baru masuk.Bash

# Kosongkan log (Optional)
cat /dev/null > /var/log/exim4/mainlog

# Pantau log secara real-time
tail -f /var/log/exim4/mainlog

Hasil yang diharapkan:

Jika pengiriman berhasil, Anda akan melihat status Completed di log. Jika konfigurasi whitelist berhasil membypass filter spam, log tidak akan lagi menunjukkan R=localuser_spam, melainkan menggunakan router default seperti R=localuser.


Perlu bantuan khusus tangani Server Linux anda? Hubungi tim ahli kami segera di nomor official whatsapp yg tertera di website ini.

WPM Tracker – Tool Gratis untuk Mengukur Kecepatan Mengetik di Microsoft Word

WPM Tracker (Word Per Minute Tracker) adalah aplikasi desktop ringan yang dirancang untuk membantu pengguna PC atau laptop mengukur kecepatan mengetik secara real-time saat menggunakan Microsoft Word.

Banyak orang menggunakan berbagai website untuk melakukan tes kecepatan mengetik, namun ketika bekerja di dokumen asli seperti laporan, artikel, atau skripsi di Microsoft Word, kita sering tidak tahu berapa sebenarnya kecepatan mengetik kita saat bekerja secara nyata.

Di sinilah WPM Tracker menjadi sangat berguna. Tool ini dapat mendeteksi aktivitas mengetik dan secara otomatis menghitung Words Per Minute (WPM) saat Anda mengetik di Word.

Dengan mengetahui WPM secara real-time, pengguna dapat:

  • memonitor produktivitas mengetik
  • meningkatkan kemampuan mengetik
  • mengetahui performa saat menulis dokumen panjang
  • melatih typing speed secara natural saat bekerja

Apa Itu WPM (Words Per Minute)?

WPM atau Words Per Minute adalah metrik yang digunakan untuk mengukur berapa banyak kata yang dapat diketik dalam satu menit.

Sebagai gambaran umum:

  • 20 – 30 WPM → kecepatan mengetik dasar
  • 30 – 50 WPM → kecepatan normal pengguna komputer
  • 50 – 70 WPM → cepat
  • 70+ WPM → sangat cepat / profesional

Dengan menggunakan WPM Tracker, Anda dapat mengetahui kecepatan mengetik Anda secara langsung ketika menulis dokumen di Microsoft Word.


Fitur WPM Tracker

Berikut beberapa fitur utama dari aplikasi ini:

  • Freeware (100% gratis digunakan)
  • Real-time typing speed detection
  • Monitoring Words Per Minute (WPM)
  • Lightweight desktop application
  • User friendly interface
  • Portable (tidak perlu instalasi rumit)
  • Berjalan di background tanpa mengganggu aktivitas mengetik
  • Compatible dengan Microsoft Word

Aplikasi ini dibuat ringan sehingga tidak akan membebani sistem saat digunakan.


Siapa yang Cocok Menggunakan WPM Tracker?

Tool ini sangat berguna bagi banyak profesi yang sering bekerja dengan dokumen, seperti:

  • Writer / penulis artikel
  • Blogger
  • Content creator
  • Programmer
  • Mahasiswa yang menulis skripsi
  • Data entry
  • Pekerja kantor
  • Freelancer

Jika Anda ingin meningkatkan produktivitas mengetik, mengetahui kecepatan mengetik sebenarnya, atau melatih touch typing, maka aplikasi ini bisa menjadi tool yang sangat membantu.


Apakah WPM Tracker Gratis?

Ya. WPM Tracker sepenuhnya GRATIS untuk digunakan.

Anda dapat langsung mengunduh dan menggunakan aplikasi ini tanpa biaya apapun.


Cara Menggunakan WPM Tracker

Penggunaan aplikasi ini sangat sederhana:

  1. Jalankan aplikasi WPM Tracker
  2. Buka Microsoft Word
  3. Mulai mengetik seperti biasa
  4. Aplikasi akan otomatis menghitung kecepatan mengetik (WPM) secara real-time

Dengan cara ini Anda dapat memonitor performa mengetik tanpa perlu membuka website tes typing.


Compatibility

Aplikasi ini dapat digunakan pada sistem operasi berikut:

windows compatibility

Download WPM Tracker

Silakan unduh aplikasi melalui link berikut:

Download:

Windows x64bit (link)

Best Practices

1. Naming Convention

Nama test method harus jelas apa yang di-test:

// ❌ Buruk
@Test
public void test1() { }

@Test
public void checkIt() { }

// ✅ Baik
@Test
public void testAddWithPositiveNumbers() { }

@Test
public void testDivideByZeroThrowsException() { }

Format: test[Method/Feature][Scenario]

2. One Assertion Per Test (jika bisa)

// ❌ Kurang ideal - multiple assertions di satu test
@Test
public void testCalculator() {
    assertEquals(5, calc.add(2, 3));
    assertEquals(2, calc.subtract(5, 3));
    assertEquals(12, calc.multiply(3, 4));
}

// ✅ Lebih baik - satu assertion per test
@Test
public void testAddReturnsCorrectSum() {
    assertEquals(5, calc.add(2, 3));
}

@Test
public void testSubtractReturnsCorrectDifference() {
    assertEquals(2, calc.subtract(5, 3));
}

3. Arrange-Act-Assert Pattern

Struktur setiap test dengan jelas:

@Test
public void testCalculation() {
    // ARRANGE: Setup data
    int a = 2;
    int b = 3;
    Calculator calc = new Calculator();
    
    // ACT: Execute method yang di-test
    int result = calc.add(a, b);
    
    // ASSERT: Check hasil
    assertEquals(5, result);
}

4. Test Both Success dan Failure Cases

@Test
public void testAddWithPositiveNumbers() {  // Success case
    assertEquals(5, calc.add(2, 3));
}

@Test
public void testAddWithNegativeNumbers() {  // Edge case
    assertEquals(-1, calc.add(-2, 1));
}

@Test
public void testDivideByZero() {  // Failure case
    assertThrows(IllegalArgumentException.class, () -> calc.divide(10, 0));
}

Kesimpulan

Unit testing dengan JUnit adalah cara cerdas untuk memastikan code lo berfungsi dengan benar. Langkah-langkahnya simple:

  1. Setup project dengan Maven
  2. Buat test class di folder src/test/java/
  3. Tulis test methods dengan @Test
  4. Gunakan assertion (assertEquals, assertTrue, assertThrows)
  5. Run tests dan lihat hasilnya

Setelah terbiasa dengan JUnit, lo siap untuk belajar @Mock (Mockito) untuk testing yang lebih advanced!

Happy testing!


Butuh bantuan untuk Unit Testing komponen java projectmu? Langsung aja kontak tim kita disini….


Contoh Praktik Lengkap

Contoh 1: Test Simple Calculation

File: src/main/java/com/example/Calculator.java

package com.example;

public class Calculator {
    
    public int add(int a, int b) {
        return a + b;
    }
    
    public int subtract(int a, int b) {
        return a - b;
    }
    
    public int multiply(int a, int b) {
        return a * b;
    }
    
    public int divide(int a, int b) {
        if (b == 0) throw new IllegalArgumentException("Cannot divide by zero");
        return a / b;
    }
    
    public boolean isEven(int n) {
        return n % 2 == 0;
    }
}

File: src/test/java/com/example/TestCalculator.java

package com.example;

import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.BeforeEach;
import static org.junit.jupiter.api.Assertions.*;

public class TestCalculator {
    
    private Calculator calc;
    
    @BeforeEach
    public void setup() {
        calc = new Calculator();
    }
    
    @Test
    public void testAdd() {
        assertEquals(5, calc.add(2, 3));
        System.out.println("✅ testAdd passed");
    }
    
    @Test
    public void testSubtract() {
        assertEquals(2, calc.subtract(5, 3));
        System.out.println("✅ testSubtract passed");
    }
    
    @Test
    public void testMultiply() {
        assertEquals(12, calc.multiply(3, 4));
        System.out.println("✅ testMultiply passed");
    }
    
    @Test
    public void testDivide() {
        assertEquals(2, calc.divide(6, 3));
        System.out.println("✅ testDivide passed");
    }
    
    @Test
    public void testDivideByZero() {
        assertThrows(IllegalArgumentException.class, () -> {
            calc.divide(10, 0);
        });
        System.out.println("✅ testDivideByZero passed");
    }
    
    @Test
    public void testIsEven() {
        assertTrue(calc.isEven(4));
        assertFalse(calc.isEven(5));
        System.out.println("✅ testIsEven passed");
    }
}

Cara Jalankan

Option 1: Klik Right-Click di file → “Run Tests”

VSCode akan menjalankan semua test methods dan show hasil.

Option 2: Gunakan Terminal

mvn test -Dtest=TestCalculator

Expected Output

✅ testAdd passed
✅ testSubtract passed
✅ testMultiply passed
✅ testDivide passed
✅ testDivideByZero passed
✅ testIsEven passed

Tests run: 6, Failures: 0, Skipped: 0, Time elapsed: 0.xxx s

Contoh 2: Test dengan Setup dan Cleanup

File: src/test/java/com/example/TestWithSetup.java

package com.example;

import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.AfterEach;
import static org.junit.jupiter.api.Assertions.*;
import java.util.*;

public class TestWithSetup {
    
    private List<String> list;
    
    @BeforeEach
    public void setup() {
        list = new ArrayList<>();
        System.out.println("Setup: List created");
    }
    
    @Test
    public void testAddItem() {
        list.add("Apple");
        assertEquals(1, list.size());
        System.out.println("  ✅ testAddItem passed");
    }
    
    @Test
    public void testRemoveItem() {
        list.add("Apple");
        list.add("Banana");
        list.remove("Apple");
        assertEquals(1, list.size());
        System.out.println("  ✅ testRemoveItem passed");
    }
    
    @Test
    public void testListEmpty() {
        assertTrue(list.isEmpty());
        System.out.println("  ✅ testListEmpty passed");
    }
    
    @AfterEach
    public void cleanup() {
        list = null;
        System.out.println("Cleanup: List cleared\n");
    }
}

Output:

Setup: List created
  ✅ testAddItem passed
Cleanup: List cleared

Setup: List created
  ✅ testRemoveItem passed
Cleanup: List cleared

Setup: List created
  ✅ testListEmpty passed
Cleanup: List cleared

Tests run: 3, Failures: 0

Perhatikan: Setup dan cleanup dipanggil 3 kali untuk 3 test methods.

Setup dan Cleanup: @BeforeEach dan @AfterEach

Kadang sebelum test jalan, kita perlu setup data. Setelah test selesai, kita perlu cleanup.

@BeforeEach — Jalankan sebelum setiap @Test

private List<String> list;

@BeforeEach
public void setup() {
    list = new ArrayList<>();  // Setup sebelum setiap test
    System.out.println("Setup: List created");
}

@Test
public void testAdd() {
    list.add("item");
    assertEquals(1, list.size());
}

@AfterEach — Jalankan setelah setiap @Test

@AfterEach
public void cleanup() {
    list = null;  // Cleanup setelah setiap test
    System.out.println("Cleanup: List cleared");
}

Urutan Eksekusi

Jika ada 2 test methods:

Test 1:
  @BeforeEach setup()
  @Test testAdd()
  @AfterEach cleanup()

Test 2:
  @BeforeEach setup()
  @Test testRemove()
  @AfterEach cleanup()

Output:

Setup: List created
Cleanup: List cleared

Setup: List created
Cleanup: List cleared

Kenapa Perlu @BeforeEach dan @AfterEach?

Supaya setiap test punya fresh state (state bersih). Contoh:

@Test
public void testAdd() {
    list.add("Apple");  // list sekarang punya 1 item
}

@Test
public void testRemove() {
    // Jika gak ada @BeforeEach, list masih punya "Apple" dari test 1!
    // Ini akan corrupt test 2
}

Dengan @BeforeEach, setiap test mulai dengan list kosong.

Assertion: Cara Check Hasil

Assertion adalah pernyataan “nilai ini harus sama dengan itu”. Jika assertion gagal, test gagal.

3 Assertion Paling Sering

1. assertEquals() — Check nilai sama

@Test
public void testAddition() {
    int hasil = 2 + 2;
    assertEquals(4, hasil);  // "hasil harus sama dengan 4"
}

Jika hasil tidak sama dengan 4, test FAIL.

2. assertTrue() — Check boolean true

@Test
public void testIsPositive() {
    int number = 10;
    assertTrue(number > 0);  // "10 > 0 harus true"
}

3. assertThrows() — Expect exception

Kadang kita ingin method melempar exception (error). Kita check apakah exception itu dilempar:

@Test
public void testDivideByZero() {
    assertThrows(ArithmeticException.class, () -> {
        int hasil = 10 / 0;  // Ini akan throw ArithmeticException
    });
}

“Ini code harus throw ArithmeticException. Jika gak throw, test FAIL.”

Konsep @Test

Apa itu @Test?

@Test adalah anotasi (label) yang memberitahu JUnit: “Method ini adalah test, jalankan otomatis!”

Tanpa @Test:

public void myTest() {
    // Ini method biasa, nobody knows it's a test
}

Dengan @Test:

@Test
public void myTest() {
    // JUnit detect ini adalah test, jalankan otomatis
}

Bagaimana JUnit Bekerja?

  1. Lo klik “Run Tests” di VSCode
  2. JUnit scan semua class di folder test/
  3. JUnit cari method yang punya anotasi @Test
  4. JUnit jalankan setiap method @Test
  5. JUnit report hasilnya: passed atau failed

Setup Maven Project di VSCode

Step 1: Install Extension Java

Buka VSCode, buka Extensions (Ctrl + Shift + X), cari “Extension Pack for Java” dari Microsoft, install.

Step 2: Create Maven Project

Buka Terminal di VSCode (Ctrl + `), ketik:

mvn archetype:generate -DgroupId=com.example -DartifactId=junit-demo -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

Tunggu sampai selesai. Ini akan create folder junit-demo dengan struktur lengkap.

Step 3: Open di VSCode

cd junit-demo
code .

Step 4: Project Structure

Setelah open, lo akan lihat struktur folder:

junit-demo/
├── pom.xml
├── src/
│   ├── main/java/com/example/
│   │   └── App.java
│   └── test/java/com/example/
│       └── AppTest.java
└── target/

Penjelasan:

  • pom.xml = File konfigurasi Maven (dependency, build settings, dll)
  • src/main/java/ = Folder untuk production code
  • src/test/java/ = Folder untuk test code
  • target/ = Folder untuk compiled files (ignore ini)

Step 5: Add JUnit 5 Dependency

Buka pom.xml, cari section <dependencies>, tambahkan:

<dependency>
    <groupId>org.junit.jupiter</groupId>
    <artifactId>junit-jupiter</artifactId>
    <version>5.10.0</version>
    <scope>test</scope>
</dependency>

Setelah simpan, Maven otomatis download dependency JUnit.