Rekursi


Rekursi adalah cara menyelesaikan masalah dengan memecah masalah tersebut menjadi masalah-masalah lebih kecil yang serupa. Dalam bahasa pemrograman, rekursi dapat didefinisikan sebagai fungsi yang memanggil dirinya sendiri hingga mencapai suatu kasus dasar (base case). Kasus dasar adalah kasus di mana hasil dari fungsi telah diketahui penyelesaiannya tanpa harus memanggil dirinya kembali.

Fungsi rekursi terdiri dari dua bagian. Pertama adalah base case. Base case merupakan kasus dasar yang harus didefinisikan hasilnya agar tidak terjadi pemanggilan fungsi secara tak hingga. Kedua adalah recursive case. Recursive case merupalan kasus rekursi yang butuh memanggil fungsinya kembali dengan memberikan masalah yang lebih kecil








Referensi





Linked List

Pengertian Linked list :
Sekumpulan elemen bertipe sama, yang mempunyai keterurutan tertentu, yang setiap elemennya terdiri dari dua bagian struktur berupa rangkaian elemen saling berkait dimana setiap elemen dihubungkan elemen lain melalui pointer. 

Pointer adalah alamat elemen. Penggunaan pointer untuk mengacu elemen berakibat elemen-elemen bersebelahan secara logik walau tidak bersebelahan secara fisik di memori.
Link list adalah desain tempat penyimpanan data yang terdiri dari node-node (simpul-simpul) yang saling terhubung.

Link list dapat diilustrasikan seperti kereta api, dimana kereta api terdiri dari gerbong-gerbong yang saling terhubung yang dapat mengangkut penumpang. Gerbong disini setara dengan node dalam link list yang berfungsi untuk menyimpan data.





Referensi :


Notasi Big O - Time Space Complexity

 Apakah itu Big O Notation? Big o notation atau dapat kita fahami sebagai notasi atau lambang matematika yang menggambarkan tingkat dari kompleksitas atau kerumitan suatu sistem. Big o notation biasanya dilambangkan sebagai O(n).



Penerapan prinsip-prinsip big o notation ini dapat kita terapkan pada ilmu komputer untuk mengelompokkan atau mengkalasifikasikan algoritma pemograman berdasarkan kerumitannya. Pada penerapannya, big o notasi ini mengukur tingkat lamanya waktu proses (running time) dan space atau resource yang digunakan berbading lurus dengan bertambahnya input data.




Big o notasi menjelaskan suatu fungsi yang diindentifikasi berdasarkan pertumbuhan datanya. Fungsi atau algoritma yang berbeda tetapi tingkat pertumbuhannya sama dapat dilambangkan dengan big o notasi yang sama.

Para developer atau programmmer biasaanya mendifinisikan tingkat kerumitan code atau algoritma yang kita buat mengunakan big o notasi ini. Dengan demikian, hal ini memudahkan cara berkomunikasi yang baik antar programmer dalam membahas kerumitan suatu algoritma.

Berikut adalah cheat sheet dari bebarapa operasi umum pada struktur data dalam bahasa pemograman.


Cara Membaca dan Memahami Big O

Dari tabel di atas dan penjelasan tingkat kompleksitas konsep array kita mendapatkan informasi bahwa tingkat kompleksitas ini terbagi dalam dua kelompok besar. Kompleksitas dalam waktu dalam artian semakin komplek maka lamanya pemrosesan semakin bertambah. Selanjutnya adalah kompleksitas dalam ruang, semakin kompleks maka raung yang digunakan dalam hal ini resource penyimpanan khususnya memory akan semakin besar.

Berikut beberapa contoh unutk membaca notasi big o dan penjelasannya.
  1. O(log n) berarti tingkat kompleksitas akan berbanding lurus dengan log dari banyaknya jumlah data. Apabila ada algoritma dengan komplesitas ini maka algoritma yang digunakan sangat bagus.
  2. O(1) berarti tingkat kompleksitas akan bersifat konstan berapun jumlah data yang di proses. Ini adalah nilai unutk algoritma yang paling bagus.
  3. O(n) berarti tingkat kompleksitas akan berbanding lurus dengan banyaknya data. Sering disebut dengan tingkat kompleksitas linear atau aritmatika.
  4. O(n+2) sama dengan tingkat kompleksitas O(n).


Kegunaan Pemahaman Big O

Muncul sebuah pertanyaan apakah pengetahuan big o notasi ini berguna pada kehidupa sehari-hari programmer atau hanya berguna ketika akan mengikuti test penerimaan kerja? Jawabannya adalah ya untuk kedua kondisi tersebut.

Pada penggunaan sehari-hari pengetahaun big o notasi ini akan sangat berguna dalam meningkatkan kwalitas serta performance dari algoritma-algoritma yang kita buat. Kita sebagai programmer dapat mengetahui apakah code kita akan berjalan sangat lambat ketika jumlah data yang terlibat meningkat? Atau seberapa parah kodenya ketika data yang kita proses membengkak sampai jutaan data misalnya.

Referensi

SQL Server

 Apa itu SQL Server? Bagaimana cara install SQL Server? Bagi orang yang setiap hari selalu bersentuhan dengan dunia database tentu tidak akan asing dengan istilah yang satu ini. Aplikasi yang satu ini banyak dimanfaatkan untuk mempermudah pekerjaan manusia dan juga memberikan rasa aman terhadap data-datanya. SQL merupakan singkatan dari Structured Query language.



Membaca kepanjangan dari SQL Server mungkin anda sudah memiliki gambaran bahwa aplikasi ini merupakan sebuah program yang digunakan untuk menjalankan berbagai macam perintah yang berkaitan dengan basis data. SQL Server sudah ditanamkan beberapa instruksi khusus dimana kita tinggal menginputkan instruksi yang sesuai agar supaya programnya mampu menjalankan perintah sesuai dengan yang anda inginkan.









Link


Queue

Queue pada Struktur Data atau antrian adalah sekumpulan data yang mana penambahan elemen hanya bisa dilakukan pada suatu ujung disebut dengan sisibelakang(rear), dan penghapusan(pengambilan elemen) dilakukan lewat ujung lain (disebut dengan sisi depan atau front).




Pada Stack atau tumpukan menggunakan prinsip“Masuk terakhir keluar pertama”atau LIFO (Last In First Out), Maka pada Queue atau antrian prinsip yang digunakan adalah “Masuk Pertama Keluar Pertama” atau FIFO (First In First Out).

Queue atau antrian banyak kita jumpai dalam kehidupan sehari-hari, ex: antrian Mobil diloket Tol, Antrian mahasiswa Mendaftar, dll.




Contoh lain dalam bidang komputer adalah pemakaian sistem komputer berbagi waktu(time-sharing computer system) dimana ada sejumlah pemakai yang akan menggunakan sistem tersebut secara serempak.

Pada Queue atau antrian Terdapat satu buah pintu masuk di suatu ujung dan satu buah pintu keluar di ujung satunya dimana membutuhkan variabel Head dan Tail ( depan/front, belakang/rear).

Karakteristik Queue atau antrian :
  1. Elemen antrian
  2. Front (elemen terdepan antrian)
  3. Tail (elemen terakhir)
  4. Jumlah elemen pada antrian
  5. Status antrian

Operasi pada Queue atau antrian
1. tambah(menambah item pada belakang antrian)
2. hapus (menghapus elemen depan dari antrian)
3. kosong( mendeteksi apakah pada antrian mengandung elemen atau tidak)

Operasi-operasi Queue :
1. Create()
Untuk menciptakan dan menginisialisasi Queue
Dengan cara membuat Head dan Tail = -1

2.IsEmpty()
Untuk memeriksa apakah Antrian sudah penuh atau belum
Dengan cara memeriksa nilai Tail, jika Tail = -1 maka empty
Kita tidak memeriksa Head, karena Head adalah tanda untuk kepala antrian (elemen pertama dalam antrian) yang tidak akan berubah-ubah
Pergerakan pada Antrian terjadi dengan penambahan elemen Antrian kebelakang, yaitu menggunakan nilai Tail.

3.IsFull
Untuk mengecek apakah Antrian sudah penuh atau belum. Dengan cara mengecek nilai Tail, jika Tail >= MAX-1 (karena MAX-1 adalah batas elemen array pada C) berarti sudah penuh

4.Enqueue
Untuk menambahkan elemen ke dalam Antrian, penambahan elemen selalu ditambahkan di elemen paling belakang. Penambahan elemen selalu menggerakan variabel Tail dengan cara increment counter Tail terlebih dahulu

5.Dequeue()
Digunakan untuk menghapus elemen terdepan/pertama (head) dari Antrian
Dengan cara menggeser semua elemen antrian kedepan dan mengurangi Tail dgn 1
Penggeseran dilakukan dengan menggunakan looping.

6.Clear()
Untuk menghapus elemen-elemen Antrian dengan cara membuat Tail dan Head = -1
Penghapusan elemen-elemen Antrian sebenarnya tidak menghapus arraynya, namun hanya mengeset indeks pengaksesan-nya ke nilai -1 sehingga elemen-elemen Antrian tidak lagi terbaca

7.Tampil()
Untuk  menampilkan nilai-nilai elemen Antrian
Menggunakan looping dari head s/d tail

Referensi :

Stack

 Stack


Stack merupakan suatu struktur data yang berbentuk tumpukan di mana proses memasukkan dan mengeluarkan data dilakukan pada satu “pintu” yang sama. Hal ini berbeda dengan struktur data Queue/antrian yang menggunakan dua “pintu”, satu pintu untuk masuk antrian dan pintu lainnya untuk keluar dari antrian.

Stack atau tumpukan biar mudah memahaminya bisa diibaratkan sebagai suatu tumpukan kardus di mana hanya data yang terletak paling atas yang bisa diambil. Data yang terletak ditengah-tengah atau pun yang berada paling bawah bisa diambil jika data yang terletak di atasnya sudah diambil terlebih dahulu.

Struktur data Stack merupakan struktur data yang bersifat LIFO (Last in First Out) artinya data yang masuk terakhir adalah data yang bisa keluar terlebih dahulu.
Perhatikan gambar ilustrasi di bawah.



Data E adalah data yang terakhir dimasukkan (method Push) oleh karenanya berada pada posisi paling atas. Jika ingin mengambil data B maka terlebih dahulu harus mengeluarkan (method Pop) berturut-turut data E, D dan C.

Oke, berikut adalah method-method yang wajib ada pada sebuah struktur data Stack:
1. Push, digunakan untuk memasukkan data ke dalam Stack
2. Pop, digunakan untuk mengeluarkan data teratas dari Stack
3. Peek, digunakan untuk melihat data yang berada di posisi paling atas
4. Count, digunakan untuk mengetahui jumlah isi data pada Stack
5. Clear, digunakan untuk mengapus seluruh data yang ada pada Stack
Stack, karena bersifat menyimpan data maka memerlukan struktur data yang lain, dalam kasus ini saya gunakan ArrayList.



Berikut adalah implementasi Stack dalam bahasa pemrograman Java




Referensi 

PBKK - Mobile Development With Xamarin

Xamarin adalah alat pengembangan lintas platform yang memungkinkan pengembang membangun aplikasi iOS dan Android asli, serta aplikasi Windows dan Mac, menggunakan satu basis kode C # bersama. Perusahaan juga mengizinkan pengembang menguji aplikasi pada ratusan perangkat melalui layanan Xamarin Cloud, menawarkan Xamarin Studio IDE miliknya sendiri, dan menjalankan kelas online langsung dengan program Universitas Xamarin.

Pada awalnya Xamarin adalah perusahaan perangkat lunak berbasis San Francisco milik Microsoft yang didirikan pada Mei 2011 oleh para insinyur yang membuat Mono, Xamarin. Android (sebelumnya Mono untuk Android) dan Xamarin.iOS (sebelumnya MonoTouch), yang merupakan persilangan Implementasi platform Common Language Infrastructure (CLI) dan Spesifikasi Bahasa Umum (sering disebut Microsoft .NET).

Dengan basis kode C #, pengembang dapat menggunakan alat Xamarin untuk menulis aplikasi Android, iOS, dan Windows asli dengan antarmuka pengguna asli dan berbagi kode di berbagai platform, termasuk Windows, macOS, dan Linux. Menurut Xamarin, lebih dari 1,4 juta pengembang menggunakan produk Xamarin di 120 negara di seluruh dunia pada April 2017.

Nama Xamarin berasal dari nama monyet Tamarin, menggantikan T terdepan dengan X. Hal ini sejalan dengan tema penamaan yang digunakan sejak Ximian dimulai. Pada 24 Februari 2016, Microsoft mengumumkan telah menandatangani perjanjian definitif untuk mengakuisisi Xamarin. 





Understanding Xamarin




Tutorial


Tech Info Blog





Referensi : 

PBKK - Building NET Web Development

PBKK - Building Desktop Application

 



.NET Core adalah salah satu usaha dari Microsoft untuk merangkul lebih banyak developer dengan mengembangkan teknologi .NET yang open source dan multi-platform os artinya .NET Core tidak hanya bisa berjalan di Windows tetapi bisa juga di sistem operasi Linux maupun macOS.

Teknologi .NET sebenarnya sangat potensial untuk portable hanya saya dalam perkembangannya menjadi segede gaban, terlalu banyak fragmentasi dan hanya khusus berjalan di Windows yang bernama .NET Framework. Seiring perkembangan teknologi dan market maka kebutuhan untuk deployment aplikasi ke multi device dan multi arsitektur prosesor akan semakin diperlukan dan sekitar tahun 2014, Microsoft kemudian mengambil fitur yang esensial atau bersifat core saja dari .NET Framework dan kemudian memunculkan .NET Core.