Home
Postingan

Pengertian Aplikasi Vigenesia di Bangku Perkuliahan Anak Informatika

tomflutter
July 31, 2025
132 Dilihat
Pengertian Aplikasi Vigenesia di Bangku Perkuliahan Anak Informatika

Apa Itu Vigenesia ?


Vigenesia adalah sebuah aplikasi yang dikembangkan untuk memudahkan mahasiswa, khususnya jurusan Informatika, dalam memahami dan menerapkan konsep kriptografi, khususnya Vigenère Cipher. Vigenère Cipher adalah salah satu metode enkripsi klasik yang menggunakan sistem substitusi alfabet berdasarkan kata kunci (key).


Aplikasi ini sangat relevan bagi mahasiswa Informatika karena :

  1. Memperkuat Pemahaman Kriptografi – Membantu memahami konsep enkripsi dan dekripsi.
  2. Praktikum Algoritma – Sebagai media pembelajaran implementasi algoritma kriptografi.
  3. Pengembangan Aplikasi Keamanan – Dapat dikembangkan lebih lanjut untuk keperluan keamanan data.


Selengkapnya : Mengenal Berbagai Platform untuk Meng-Online-kan Project Aplikasi Anda


Contoh Sederhana Aplikasi Vigenesia dengan Flutter


Berikut adalah contoh kode Flutter sederhana untuk membuat aplikasi Vigenesia yang dapat melakukan enkripsi dan dekripsi menggunakan Vigenère Cipher.


Struktur Project :

vigenesia/  
├── lib/  
│   ├── main.dart  
│   └── vigenere_cipher.dart  
└── pubspec.yaml 


File vigenere_cipher.dart (Logika Vigenère Cipher) :

class VigenereCipher {
  static String encrypt(String plaintext, String key) {
    String result = "";
    plaintext = plaintext.toUpperCase();
    key = key.toUpperCase();
    int keyIndex = 0;


    for (int i = 0; i < plaintext.length; i++) {
      if (plaintext[i].contains(RegExp(r'[A-Z]'))) {
        int plainChar = plaintext.codeUnitAt(i) - 65;
        int keyChar = key.codeUnitAt(keyIndex % key.length) - 65;
        int encryptedChar = (plainChar + keyChar) % 26;
        result += String.fromCharCode(encryptedChar + 65);
        keyIndex++;
      } else {
        result += plaintext[i];
      }
    }
    return result;
  }


  static String decrypt(String ciphertext, String key) {
    String result = "";
    ciphertext = ciphertext.toUpperCase();
    key = key.toUpperCase();
    int keyIndex = 0;


    for (int i = 0; i < ciphertext.length; i++) {
      if (ciphertext[i].contains(RegExp(r'[A-Z]'))) {
        int cipherChar = ciphertext.codeUnitAt(i) - 65;
        int keyChar = key.codeUnitAt(keyIndex % key.length) - 65;
        int decryptedChar = (cipherChar - keyChar + 26) % 26;
        result += String.fromCharCode(decryptedChar + 65);
        keyIndex++;
      } else {
        result += ciphertext[i];
      }
    }
    return result;
  }
}


File main.dart (UI Flutter) :

import 'package:flutter/material.dart';
import 'vigenere_cipher.dart';


void main() {
  runApp(MyApp());
}


class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Vigenesia - Vigenère Cipher',
      theme: ThemeData(primarySwatch: Colors.blue),
      home: VigenereScreen(),
    );
  }
}


class VigenereScreen extends StatefulWidget {
  @override
  _VigenereScreenState createState() => _VigenereScreenState();
}


class _VigenereScreenState extends State<VigenereScreen> {
  final TextEditingController _textController = TextEditingController();
  final TextEditingController _keyController = TextEditingController();
  String _result = "";


  void _encrypt() {
    setState(() {
      _result = VigenereCipher.encrypt(
        _textController.text,
        _keyController.text,
      );
    });
  }


  void _decrypt() {
    setState(() {
      _result = VigenereCipher.decrypt(
        _textController.text,
        _keyController.text,
      );
    });
  }


  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: Text("Vigenesia - Vigenère Cipher")),
      body: Padding(
        padding: EdgeInsets.all(16.0),
        child: Column(
          children: [
            TextField(
              controller: _textController,
              decoration: InputDecoration(
                labelText: "Masukkan Teks",
                border: OutlineInputBorder(),
              ),
            ),
            SizedBox(height: 10),
            TextField(
              controller: _keyController,
              decoration: InputDecoration(
                labelText: "Masukkan Key",
                border: OutlineInputBorder(),
              ),
            ),
            SizedBox(height: 20),
            Row(
              mainAxisAlignment: MainAxisAlignment.spaceEvenly,
              children: [
                ElevatedButton(
                  onPressed: _encrypt,
                  child: Text("ENKRIPSI"),
                ),
                ElevatedButton(
                  onPressed: _decrypt,
                  child: Text("DEKRIPSI"),
                ),
              ],
            ),
            SizedBox(height: 20),
            Text(
              "Hasil: $_result",
              style: TextStyle(fontSize: 18, fontWeight: FontWeight.bold),
            ),
          ],
        ),
      ),
    );
  }
}


File pubspec.yaml (Dependencies) :

name: vigenesia
description: Aplikasi Vigenère Cipher untuk pembelajaran kriptografi.


version: 1.0.0


environment:
  sdk: ">=2.12.0 <3.0.0"


dependencies:
  flutter:
    sdk: flutter


dev_dependencies:
  flutter_test:
    sdk: flutter


Selengkapnya : Selain API Key Free AI Seperti GroqCloud Apa Saja??


Kesimpulan :


Aplikasi Vigenesia adalah alat yang berguna bagi mahasiswa Informatika untuk mempelajari konsep kriptografi, khususnya Vigenère Cipher. Dengan Flutter, kita dapat dengan mudah membuat aplikasi mobile yang interaktif untuk enkripsi dan dekripsi. Aplikasi ini dapat dikembangkan lebih lanjut dengan fitur-fitur seperti :

  1. Penyimpanan history enkripsi/dekripsi
  2. Penggunaan database lokal (SQLite)
  3. Integrasi dengan Firebase untuk penyimpanan cloud


Semoga artikel ini bermanfaat Sahabat SCAI CODE🚀


NOTE : kunjungi juga produk aplikasi kami, kami siap bantu Tugas aplikasi yang mebuat kamu kesulitan atau tidak ada waktu, serahkan ke kami maka akan kami bantu dengan tepat waktu klik disini Untuk Kunjungi Aplikasi Kami

Bagikan Artikel Ini