Alghoritma dan Pemrograman

 NOTASI ALGORITMIK

Notasi algoritmik dibuat independen dari spesifikasi bahasa pemrograman dan perangkat keras komputer yang mengeksekusinya.
Notasi algoritmik ini dapat di terjemahkan ke dalam berbagai bahasa pemrograman.

Notasi algoritmik bukanlah bahasa pemrograman, sehingga siapapun dapat membuat notasi algoritmik yang berbeda. Hal terpenting dari notasi tersebut adalah mudah dibaca dan dimengerti.

Notasi algoritmik biasa digunakan dalam menuliskan algoritma diantaranya :
Kalimat Deskriptif
Pseudo-code
Flowchart

KALIMAT DESKRIPTIF
Menyatakan langkah-langkah algoritma dengan untaian kalimat deskriptif. Dinyatakan dengan bahasa yang gamblang, proses diawali dengan kata kerja misal “baca”, “hitung”, “bagi”, dan sebagainya. Sedangakan pernyataan kondisi dinyatakan dalam “Jika….. Maka…..”

CONTOH KALIMAT DESKRIPTIF
PROGRAM nilai terbesar
Diberikan dua bilangan bulat a dan b.
Algoritma nilai terbesar adalah mencari nilai terbesar dari dua bilangan.

ALGORITMA :

1. Jika a = b maka
a dan b adalah sama;
stop.
Tetapi jika a ≠ b,
Lanjut ke Langkah 2

2. Jika a > b maka
a adalah nilai terbesar;
stop.
Tetapi jika a < b maka
b adalah nilai terbesar;
stop.

PSEUDO-CODE
Pseudo-code adalah notasi yang mirip dengan notasi bahasa pemrograman tingkat tinggi, khususnya (paling sering) bahasa C dan Pascal. Lebih tepatnya pseudocode adalah campuran bahasa alami dengan bahasa pemrograman, namun tidak direpotkan oleh semicolon, indeks, format keluaran, aturan khusus dan sebagaiya. Maka sembarang pseudo-code dapat diterima asalkan perintahnya tidak membingungkan pembaca

CONTOH PSEUDO-CODE
PROGRAM nilai terbesar
Diberikan dua bilangan bulat a dan b.
Algoritmanilai terbesaradalahmencarinilaiterbesar
dari dua bilangan. 

DEKLARASI :
a,b : integer {bilangan yang akan dibandingkan}
ALGORITMA :
read(a,b)
if a = b then
write( a = b )
else
if a > b then
write(a)else
write(b)
endif
endif

FLOWCHART
Flowchart (bagan alir) adalah suatu bagan dengan simbol-simbol tertentu yang
menggambarkan urutan proses secara mendetail dan hubungan antara suatu proses
(instruksi) dengan proses lainnya dalam suatu program.

SIMBOL DALAM FLOWCHART

CONTOH FLOWCHART
START
INPUT
a, b
a = b
OUTPUT
a > b "a = b"
OUTPUT
a
OUTPUT
b
END

studi_literatur

Studi Literatur

 silahkan kalian bisa pealjari di link di bawah ini..

Pembahasan

Selamat Belajar

contoh Transposition Chipher / Route Transposition

Nim     : 201851150
Kelas   : 4C

Transposition Chipher (Route Transposition)

Plaintext          : RICKY FARDIANSHAA
Key/Aturan     : 4 Baris, Berputar searah jarum jam, dari kanan-bawah

Langkah Enksripsi
  • Menulis plaintext ke dalam tabel
R

Y
D
S
I
F
I
H
C
A
A
A
K
R
N
A

Chipertext       : ANRKCIRYDSHAAAFI

Laporan | Struktur Data Linked List

BAB II
PEMBAHASAN

2.1 Pengertian Struktur Data Linked List   
Linked List adalah sekumpulan elemen bertipe sama, yang mempunyai keterurutan tertentu, yang setiap elemennya terdiri dari dua bagian. Linked adalah koleksi obyek heterogen dengan sifat setiap obyek (kecuali obyek terakhir) mempunyai penerus dan setiap obyek (kecuali obyek pertama) mempunyai pendahulu. Salah satu penggunaan pointer adalah untuk membuat linked list atau senarai berantai. Linked list sendiri dapat diartikan sebagai sekumpulan komponen yang saling berhubungan (berantai) dengan bantuan pointer. Masing-masing komponen disebut sebagai simpul atau node. Setiap node terbagi menjadi dua bagian, yaitu bagian data dan bagian penyambung. Bagian data berisi data yang akan disimpan dan diolah. Sedangkan bagian penyambung berisi alamat node berikutnya. Inti dari linked list adalah proses (tambah, edit, hapus) dari gerbong / node dan bagaimana rnenyambungkan antar gerbong / node tersebut.
2.2 Metode , Macam-macam dan Operasi pada Linked List
·        Metode pada Linked List adalah adalah FIFO (First In First Out)  di mana data yang masuk terlebih dahulu akan keluar pertama dan LIFO (Last In First Out) di mana data yang terakhir masuk akan pertama keluar. Dengan kata lain, kita bebas mengunakan metode sesuai dengan keinginan kita.

·         Macam-macam Linked List
1.      Single Linked List


Setiap node pada linked list mempunyai field yang berisi pointer ke node berikutnya dan juga memiliki field yang berisi data. Akhir linked list ditandai dengan node terakhir akan menunjuk ke null yang akan digunakan sebagai kondisi berhenti saat pembacaan linked list.
2.      Double Linked List


Linked list dengan menggunakan pointer, dimana setiap node memiliki 3 field, yaitu: 1 field pointer yang menunjuk ke pointer berikutnya, 1 field pointer yang menunjuk ke pointer sebelumnya dan field yang berisi data dari node tersebut. Pointer next dan prev-nya menunjuk ke null.
3.      Single Circular Linked List


Single Linked List yang pointer next-nya menunjuk ke dirinya sendiri, jika terdiri dari beberapa node maka pointer terakhirnya akan menunjuk ke pointer terdepannya.
4.      Double Circular Linked List


Double Linked List yang pointer next dan prev-nya menunjuk ke dirinya sendiri secara circular.

·Operasi-operasi yang bisa dilakukan dalam Link List yaitu:
1.      Insert yang berfungsi menambahkan node
2.      Edit yang berfungsi mengedit node
3.      Delete yang berfungsi menghapus node
4.      Sorting yang berfungsi mengurutkan node
5.      Searching yang berfungsi mencari node
2.3 Contoh Penerapan Linked List dalam kehidupan sehari-hari
Contoh Penerapan Linked List dalam kehidupan sehari-hari yaitu  pada pintu gerbong kereta api yaitu dimana mereka bisa masuk dan menempati tempat duduk yang ada bisa di depan dan bisa di belakang.

2.4 Contoh Program Linked List  pada Java
import java.util.LinkedList;
public class linkedlist {
    public static void main(String[] args){
        //Membuat Instance/Objek dari LinkedList
        LinkedList<String> buah = new LinkedList<>();
        //Menambahkan Data pada Objek buah
        buah.add("Jeruk");
        buah.add("Jambu");
        buah.add("Apel");
        buah.add("Melon");
        buah.add("Semangka");
        buah.add("Nanas");
        buah.add("Sirsak");
       
        //Mencetak/Menampilkan Data
        System.out.println("Nama Buah: "+buah);
       
         buah.add("Anggur");
        
         System.out.println("Nama Buah: "+buah);
//        Menghitung Jumlah/Ukuran pada Objek LinkedList
        System.out.println("Jumlah Buah: "+buah.size());
    }
}

Fungsi Select Pada Data Base

SELECT Merupakan perintah yang digunakan untuk menampilkan semua atau sebagian isi dari tabel yang telah kita inputkan data-datanya. 

  • Menampilkan seluruh isi tabel : select * from nama_tabel;
  • Menampilkan dengan klausa where : select * from nama_tabel where kondisi; 
  • Menampilkan filed tertentu : select nama_field1, nama_filed2,…from nama_tabel;
  • Menampilkan data yang diambil dari beberapa tabel : select tabel1.filed, tabel2.field from tabel1, tabel2 where kondisi;
  • Menampilkan data dengan operator BETWEEN dan NOT BETWEEN Select * from nama_tabel where filed between batas_bawah and batas_atas;
Secara dasar rumus dari select adalah susnan dari penulisan yang digunakan dalam select yakni: SELECT yang merupakan sintact identik dari select. FROM yang di gunakan untuk memilih asal atau tabel mana yang akan di tampilkan. WHERE adalah penjabaran kondisi jika ada kondidi tertentu maupun operator operator tertentu.
Contoh dari kondisi adalah sebagai berikut: 
Operator Description
  • = : Semua data yang sama 
  • <> : Data yang tidak sama yang ditampilkan 
  • > : Lebih dari nilai yang di tentukan yang di tampilkan 
  • < : Kurang dari nilai yang di tentukan yang di tampilkan 
  • >= : Lebih ataupun sama dari nilai yang di tentukan yang di tampilkan 
  • <= : Lebih ataupun sama dari nilai yang di tentukan yang di tampilkan 
  • BETWEEN : Data antara nilai yang benar akan di tampilkan 
  • LIKE : Data yang terdapat nilai yang benar akan di tampikan 
  • IN : Jika data ada maka data akan di tampilkan 
  • % = Karakter apa saja dari karakter kosong sampai lebih
  •  _ (underscore) = Satu karakter string 
  • [ ] = Satu karakter apa saja dalam batas yang ditentukan ([a-f]) atau ([abcdef]) 
  • [^] = Satu karakter apa saja yang tidak ada dalam batas yang ditentukan ([^af]) atau ([^abcdef])

Pengertian Autentikasi

Pengertian Autentikasi
Authentification adalah proses dalam rangka validasi user pada saat memasuki sistem, nama dan password dari user di cek melalui proses yang mengecek langsung ke daftar mereka yang diberikan hak untuk memasuki sistem tersebut. Autorisasi ini di set up oleh administrator, webmaster atau pemilik situs (pemegang hak tertinggi atau mereka yang ditunjuk di sistem tersebut. Untuk proses ini masing-masing user akan di cek dari data yang diberikannya seperti nama, password serta hal-hal lainnya yang tidak tertutup kemungkinannya seperti jam penggunaan, lokasi yang diperbolehkan.
Autentikasi adalah suatu langkah untuk menentukan atau mengonfirmasi bahwa seseorang (atau sesuatu) adalah autentik atau asli. Melakukan autentikasi terhadap sebuah objek adalah melakukan konfirmasi terhadap kebenarannya. Sedangkan melakukan autentikasi terhadap seseorang biasanya adalah untuk memverifikasi identitasnya. Pada suatu sistem komputer, autentikasi biasanya terjadi pada saat login atau permintaan akses.
Selain itu authentification juga merupakan salah satu dari banyak metode yang digunakan untuk menyediakan bukti bahwa dokumen tertentu yang diterima secara elektronik benar-benar datang dari orang yang bersangkutan dan tak berubah caranya adalah dengan mengirimkan suatu kode tertentu melaui e-mail dan kemudian pemilik e-mail mereplay email tersebut atau mengetikan kode yang telah dikirimkan.
Authentication server berfungsi untuk mengenali user yang berintegrasi ke jaringan dan memuat semua informasi dari user tersebut, dalam praktek biasanya authentification server mempunyai backupp yang berfungsi untuk menjaga jika server itu ada masalah sehingga jaringan dan pelayanan tidak terganggu.
Dalam aplikasi Web dibutuhkan mekanisme yang dapat melindungi data dari pengguna yang tidak berhak mengaksesnya, misalnya sebuah situs Web yang berisikan foto-foto keluarga dan hanya dapat diakses sesama anggota keluarga. Mekanisme ini dapat diimplementasikan dalam bentuk sebuah proses login yang biasanya terdiri dari tiga buah tahapan yaitu : identifikasi, otentikasi dan otorisasi
Proses otentifikasi pada prinsipnya berfungsi sebagai kesempatan pengguna dan pemberi layanan dalam proses pengaksesan resource. Pihak pengguna harus mampu memberikan informasi yang dibutuhkan pemberi layanan untuk berhak mendapatkan resourcenya. Sedang pihak pemberi layanan harus mampu menjamin bahwa pihak yang tidak berhak tidak akan dapat mengakses resource ini.
Metode-Metode Autentikasi
Autentikasi bertujuan untuk membuktika siapa anda sebenarnya, apakah anda benar-benar orang yang anda klaim sebagai dia (who you claim to be). Ada banyak cara untuk membuktikan siapa anda.
Metode autentikasi bisa dilihat dalam 4 kategori metode:
a. Something you know
Ini adalah metode autentikasi yang paling umum. Cara ini mengandalkan kerahasiaan informasi, contohnya adalah password dan PIN. Cara ini berasumsi bahwa tidak ada seorangpun yang mengetahui rahasia itu kecuali anda seorang.
b. Something you have
Cara ini biasanya merupakan faktor tambahan untuk membuat autentikasi menjadi lebih aman. Cara ini mengandalkan barang yang sifatnya unik, contohnya adalah kartu magnetic/smartcard, hardware token, USB token dan sebagainya. Cara ini berasumsi bahwa tidak ada seorangpun yang memiliki barang tersebut kecuali anda seorang.
c. Something you are
Ini adalah metode yang paling jarang dipakai karena faktor teknologi dan manusia juga. Cara ini menghandalkan keunikan bagian-bagian tubuh anda yang tidak mungkin ada pada orang lain seperti sidik jari, suara atau sidik retina. Cara ini berasumsi bahwa bagian tubuh anda seperti sidik jari dan sidik retina, tidak mungkin sama dengan orang lain.
d. Something you do
Melibatkan bahwa setiap user dalam melakukan sesuatu dengan cara yang berbeda. Contoh : Penggunaan analisis suara (voice recognation), dan analisis tulisan tangan.
Ada beberapa metode untuk melakukan autentikasi, salah satunya dan yang paling umum adalah menggunakan password. Metode autentikasi dengan menggunakan password statis adalah yang paling banyak digunakan. Tetapi jika user menggunakan password yang sama (password statis) beberapa kali untuk masuk ke dalam suatu sistem, password tersebut akan menjadi rentan terhadap sniffer jaringan. Salah satu bentuk serangan ke sistem komputer jaringan adalah seseorang mencoba masuk ke dalam suatu koneksi jaringan untuk mendapatkan informasi autentikasi, seperti ID login dan password yang berbeda setiap kali user akan masuk ke sistem. Sistem autentikasi One Time Password (OTP) dibuat untuk mengatasi serangan seperti diatas.
Untuk menghindari pencurian password dan pemakaian sistem secara illegal, akan bijaksana bila jaringan kita dilengkapi sistem password sekali pakai. Cara penerapan sistem password sekali pakai yaitu dengan cara:
Menggunakan sistem perangko terenkripsi. Dengan cara ini, password baru dikirimkan setelah terlebih dulu dimodifikasi berdasarkan waktu saat itu.
Menggunakan sistem challenge-response (CR), dimana password yang kita berikan tergantung challenge dari server. Dapat dianalogikan kita menyiapkan suatu daftar jawaban/response yang berbeda bagi pertanyaan/challenge yang diberikan oleh server. Untuk menghafal sekian banyak password bukanlah mudah, sehingga akan lebih mudah jika yang dihafal itu adalah aturan untuk mengubah challenge yang diberikan menjadi response (jadi tidak random). Misalnnya aturan kita adalah : “kapitalkan huruf kelima dan hapus huruf keempat”, maka password yang kita berikan adalah MxyPtlk1W2 untuk challenge sistem Mxyzptlk1W2.
Faktor-Faktor Autentikasi
Tiga jenis faktor autentikasi yang umum digunakan adalah:
a. Sesuatu yang diketahui oleh pengguna Contoh: password, passphrase, dan PIN (Personal Identification Number)
b. Sesuatu yang dimiliki oleh pengguna Contoh: ID card, kartu kredit, telepon seluler, dan perangkat token
c. Sesuatu yang ‘ada’ pada pengguna Contoh: sidik jari, DNA, suara, pola retina,
atau aspek biometrik lain.
Sedangkan, beberapa faktor autentikasi lain yang lebih jarang digunakan adalah:
a. Berbasis pengenalan (recognition) atau autentikasi cognometric, yaitu sesuatu yang dikenal oleh pengguna Contoh: Pengguna harus mengenali dari beberapa wajah yang dirahasiakan.
b. Berbasis cybermetric, yaitu sesuai yang ada pada komputer Contoh: Membatasi akses hanya dari komputer yang memiliki kombinasi unik hardware dan software tertentu.
c. Berbasis lokasi Contoh: Membatasi penggunaan ATM atau kartu kredit hanya pada cabang tertentu, membatasi login root hanya dari terminal tertentu.
d. Berbasis waktu Contoh: Membatasi penggunaan sebuah account hanya pada waktu tertentu, misalnya jam kerja.
e. Berbasis ukuran Contoh: Membatasi terjadinya transaksi hanya pada sejumlah tertentu saja.
Proses Autentikasi
Setiap aplikasi memiliki ApplicationID. ApplicationID tersebut harus telah terdaftar di authentication server. ApplicationID sendiri didaftarkan secara manual oleh system administrator ke dalam Autentikasi server. Perancangan proses pendaftaran ApplicationID dapat dilihat pada bab perancangan. Gambar dibawah ini menunjukkan bagaimana MEZO bekerja.

Berikut penjelasan dari gambar diatas:
Aplikasi yang membutuhkan data dari Sistem Informasi Nilai(SIN), terlebih dahulu sistem harus memiliki RegisterID1. Untuk mendapatkan RegisterID, aplikasi harus mengirimkan ApplicationIDnya ke authentication server. Jika ApplicationID yang dikirimkan telah terdaftar di authentication server, maka authentication server akan mengirimkan RegisterID ke aplikasi. Jika tidak terdaftar, koneksi akan diputuskan dan aplikasi tidak berhak melakukan akses ke SIA. Jika aplikasi mencoba hingga 3(tiga) kali untuk autentikasi dan gagal, Internet Protocol (IP) dari aplikasi ini akan di blok, tidak bisa melakukan proses autentikasi. Aplikasi dari IP yang sama bisa kembali melakukan autentikasi jika sudah di-enable kembali IP-nya oleh system administrator. Web services digunakan pada proses request-response RegisterID yang dilakukan pada proses autentikasi.
Setelah mendapatkan RegisterID, RegisterID bersamaan dengan ApplicationID, dan data 2 kemudian dikirim oleh Aplikasi ke SIN untuk mendapatkan informasi. Ketika request diterima, SIN akan mencatat waktu penerimaan dan
mengecek apakah RegisterID dan ApplicationID yang diterima telah terdaftar di Application Server.
1 RegisterID menandakan aplikasi tersebut diberikan izin
pada saat itu berhak mendapatkan informasi dari SIA
sampai kurun waktu tertentu
2 Data merupakan data yang dibutuhkan untuk mendapatkan
informasi yang diinginkan dari SIN.
Jika valid, authentication server akan mengirim balik status “OK” yang menandakan bahwa RegisterID dan ApplicationID tersebut valid dan lama waktu (time) yang diperbolehkan aplikasi mengakses informasi di SIN. Jika salah satu atau kedua-duanya antara RegisterID dan ApplicationID tidak terdaftar di authentication server maka akan dikirim status “Not Registered” dan aplikasi tidak mendapatkan informasi dan koneksi diputuskan.

Basis Data

Data adalah fakta mentah atau rincian peristiwa yang belum diolah, yang terkadang tidak dapat diterima oleh akal pikiran dari penerima data ...