Seluruh Artikel

Apa Itu Deep Learning dan Bagaimana Cara Kerja nya?

Apa itu deep learning dan bagaimana cara kerja nya?. Artikel ini ditulis untuk siapapun yang ingin mengetahui apa itu Deep Learning dan Neural Network. Tulisan ini akan membahas mengenai arti dari Deep Learning dan Neural Network. 

Konsep yang akan dibahas secara khusus pada artikel ini adalah bagaimana cara kerja Deep Learning secara praktis.

Apakah Anda pernah bertanya-tanya mengenai aplikasi pendeteksi wajah untuk membuka password smartphone Anda?  Atau ketika Anda mencari sesuatu pada mesin pencari google, lalu ketika membuka facebook, maka akan muncul iklan yang sesuai dengan apa yang Anda cari? Atau ketika Anda membuka youtube, banyak sekali video rekomendasi yang muncul sesuai dengan selera Anda?

Selain itu, yang lebih mutakhir adalah dengan adanya mobil yang bisa berjalan sendiri seperti yang di iklankan oleh Elon Musk.

Semua itu adalah produk dari Deep Learning dan Neural Networks. Sebelum kita memulai, alangkah baiknya kita membahas definisi dan konsep dari Deep Learning terlebih dahulu.

Apa itu Deep Learning?

Deep Learning adalah bagian dari Machine Learning yang juga merupakan bagian dari Artificial Intelligence (kecerdasan buatan). Artificial Intelligence (AI) adalah istilah umum yang mengacu pada teknik dimana komputer memungkinkan untuk meniru perilaku manusia. 

Sedangkan Machine Learning merepresentasikan sekumpulan algoritma yang telah dilatih berdasarkan data yang ada.

Apa itu deep learning
AI vs ML vs DL [Apa itu deep learning]

Deep learning adalah salah satu tipe dari algoritma Machine Learning yang terinspirasi oleh struktur otak pada manusia. Algoritma pada deep learning mencoba untuk mengambil suatu kesimpulan sebagaimana halnya pada manusia dalam menganalisa data berdasarkan struktur logika yang diberikan secara berkelanjutan. Untuk mencapai tujuan tersebut, deep learning menggunakan struktur algoritma multilayer yang disebut neural networks.

Apa itu deep learning? feed forward propagation
Feed forward propagation. [Apa itu deep learning]

Desain dari neural network ini didasarkan pada struktur otak manusia. Sama halnya seperti  manusia dalam menggunakan otaknya untuk mengidentifikasi pola dan mengklasifikasikan berbagai jenis informasi. Neural network ini pun dapat kita latih untuk melakukan tugas yang sama berdasarkan data yang digunakan.

Layer individual pada neural networks dapat juga dianalogikan sebagai filter yang bekerja untuk menyaring sesuatu dari kasar kepada yang lembut, sehingga akan meningkatkan kemungkinan untuk melakukan pendeteksian dengan benar, begitupun output nya.

Otak manusia pun bekerja seperti itu, setiap kali kita menerima informasi yang baru, otak akan mencoba membandingkan dengan objek yang telah diketahui sebelumnya. Konsep ini lalu diaplikasikan oleh deep neural networks.

Neural network memungkinkan kita untuk melakukan banyak tugas, seperti pengklasteran (clustering), klasifikasi (classification) ataupun regresi (regression). Dengan algoritma neural networks, kita dapat mengelompokkan atau menyortir data yang belum memiliki label berdasarkan kesamaannya terhadap sampel lain di dalam suatu dataset. Atau pada kasus pengklasifikasian, kita dapat melatih (train) jaringan (network) tersebut pada dataset yang telah memiliki label. Hal ini dilakukan untuk mengklasifikasikan sampel pada suatu dataset kepada kategori yang berbeda

Artificial neural network, memiliki kemampuan unik. Model deep learning ini dapat menyelesaikan masalah yang tidak dapat diselesaikan oleh model machine learning yang lain.

Seluruh kemajuan terbaru dalam bidang kecerdasan buatan dalam beberapa tahun terakhir ini disebabkan oleh adanya Deep Learning. Tanpa adanya algoritma deep learning, kita tidak akan dapat menemui kendaraan tanpa awak, chatbot ataupun personal assistant seperti Alexa. Netflix atau Youtube tidak akan mengetahui video atau film apa yang kita sukai atau tidak disukai. Di belakang teknologi mutakhir tersebut tidak akan tercapai tanpa adanya neural network.

Pada akhirnya, deep learning adalah pendekatan terbaik untuk algoritma kecerdasan buatan yang ada hingga saat ini.

Mengapa Deep Learning begitu populer saat ini?

Apa yang menyebabkan deep learning dan neural network begitu kuat di industri pada saat ini? Mengapa model deep learning lebih handal dibandingkan dengan machine learning?

Keuntungan utama dari deep learning dibandingkan dengan machine learning adalah tidak diperlukannya proses ekstraksi fitur (feature extraction). Jauh sebelum deep learning digunakan, metode machine learning seperti Decision Tree, SVM, Naive Bayes Classifier dan Logistic Regression telah digunakan.

Algoritma yang disebutkan sebelumnya merupakan algoritma datar. Datar di sini berarti bahwa algoritma ini tidak dapat diterapkan secara langsung pada data mentah (seperti .csv, gambar, teks, dll). Melainkan, kita membutuhkan langkah preprocessing terlebih dahulu yang disebut dengan ekstraksi fitur.

Hasil fitur ekstraksi ini adalah representasi data mentah yang baru dapat digunakan oleh algoritma machine learning untuk melakukan sesuatu. Sebagai contoh, pengklasifikasian data terhadap beberapa kategori atau kelas.

Ekstraksi fitur ini cukup kompleks dan membutuhkan pengetahuan domain yang mendetail. Layer pre-processing ini perlu diadaptasi, di uji dan disempurnakan melalui beberapa iterasi untuk mendapatkan hasil yang optimal. 

Artificial Neural Network pada Deep Learning. Tidak memerlukan langkah ekstraksi fitur.

Layer pada neural network dapat belajar secara implisit dari raw data secara langsung. Data mentah yang semakin abstrak dan terkompresi dihasilkan melalui beberapa lapisan artificial neural network. Representasi data terkompresi dari input data ini digunakan untuk menghasilkan output. Hasilnya dapat berupa klasifikasi dari data input ke dalam kelas yang berbeda.

Apa itu deep learning. Machine learning vs deep learning
Machine learning vs deep learning. [Apa itu deep learning]

Dengan kata lain, kita pun dapat menyebutkan bahwa langkah ekstraksi fitur sudah merupakan bagian dari proses di dalam artificial neural network.

Selama proses training, langkah ini pun di optimasi oleh neural network untuk mendapatkan representasi abstrak terbaik dari input data. Artinya, model deep learning hanya memerlukan sedikit atau tanpa upaya manual untuk melakukan dan mengoptimalkan proses ekstraksi fitur

Sebagai contoh, Jika Anda ingin menggunakan model machine learning untuk menentukan gambar tertentu untuk menunjukan seekor anjing atau bukan, kita sebagai manusia perlu mengidentifikasikan fitur yang unik dari hewan tersebut (bentuk kepala, telinga, mata, dll). Lalu, kita mengekstrak fitur tersebut dan memberikannya kepada algoritma sebagai input data.

Dengan cara demikian, algoritma akan melakukan pengklasifikasian pada gambar. Artinya, dalam machine learning, seorang developer perlu campur tangan secara langsung agar model yang dikembangkan mencapai suatu kesimpulan yang tepat.

Dalam hal model pada deep learning, tahap ekstraksi fitur benar-benar tidak dibutuhkan. Model algoritmanya akan mengenali karakteristik yang unik dari seekor anjing, lalu membuat prediksi yang tepat tanpa bantuan manusia. Kita hanya perlu memberikan data mentah, lalu sisanya dikerjakan oleh model tersebut.

Era Big Data

Keuntungan besar yang kedua dari deep learning yang membuat nya begitu populer adalah dengan jumlah data yang sangat banyak. Era teknologi big data akan memberikan jumlah kesempatan yang sangat besar untuk berinovasi pada deep learning. Seperti yang telah dikatakan oleh Andrew Ng, Chief Scientist Baidu dan salah satu leader Google Brain Project,

“Analogi terhadap apa itu deep learning adalah bahwa model deep learning adalah suatu mesin roket dan bahan bakarnya adalah jumlah data yang melimpah di mana kita dapat memberikannya pada algoritma tersebut”

Apa itu deep learning? Data vs Performa
Data vs Performa. [Apa itu deep learning]

Model deep learning memiliki trend meningkatkan akurasi dengan bertambahnya jumlah data yang di training. Sedangkan tradisional machine learning seperti pengklasifikasian SVM dan Naive Bayes berhenti meningkat setelah menemui titik jenuh.

Jaringan syaraf (Neural Networks) Biologis

Sebelum kita berjalan lebih jauh dengan artificial neural networks dan memahami lebih dalam apa itu deep learning, mari kita bahas terlebih dahulu mengenai konsep neural network biologis. Sehingga, ketika membahas mengenai artificial neural network secara lebih detail, kita dapat melihat secara paralel dengan model jaringan saraf biologis.

Artificial neural network terinspirasi oleh neuron pada jaringan saraf manusia yang dapat ditemukan di dalam otak. Faktanya, artificial neural network mensimulasikan beberapa fungsi dasar dari jaringan saraf pada otak kita, namun, dengan cara yang sangat sederhana.

Pertama-tama, mari kita perhatikan jaringan saraf biologis dan melihatnya secara paralel dengan artificial neural networks.

Jaringan saraf biologis. [Apa itu neural network]
Jaringan saraf biologis. [Apa itu deep learning]

Jaringan saraf biologis terdiri dari banyak neuron. Neuron sendiri memiliki badan sel, dendrit dan akson. Dendrit merupakan struktur tipis yang muncul dari badan sel. Akson adalah ekstensi selular yang muncul dari badan sel ini. Sebagian besar neuron menerima sinyal melalui dendrit, lalu mengirimkannya di sepanjang akson.

Pada sebagian besar sinapsis, sinyal melintas dari akson suatu neuron ke dendrit pada neuron lainnya. Seluruh neuron tereksitasi secara elektrik karena voltase gradien dari membrannya. Jika ada perubahan voltase cukup besar pada interval yang singkat, neuron akan menghasilkan pulsa electrochemical yang disebut aksi potensial. Potensial ini bergerak cepat di sepanjang akson dan mengaktifkan koneksi sinaptik saat mencapainya.

Jaringan syaraf buatan (Artificial Neural Networks)

Setelah kita membahas pemahaman dasar mengenai jaringan saraf biologis pada bagian sebelumnya, sekarang mari kita lihat arsitektur jaringan syaraf tiruan dan apa itu deep learning.

Neural network, secara umum terdiri dari kumpulan unit atau node yang saling terhubung. Kita dapat menyebutnya sebagai node neuron. Neuron tiruan ini secara tidak langsung merupakan model dari neuron biologis pada otak kita.

[Apa itu deep learning].Neuron hanyalah representasi grafis dari nilai numerik (misalkan 1.7, 4.0, 33.0, 0.5, dll). Hubungan antara dua neuron tiruan dapat dianggap sebagai akson dalam otak biologis. Hubungan antara neuron diwujudkan dengan sesuatu yang disebut bobot (weight). Di mana bobot ini tidak lebih dari suatu nilai numerik.

Ketika artificial neural network belajar, bobot (weight) di antara neuron akan berubah begitupun kekuatan koneksinya. Artinya, dari data training yang diberikan dan tugas tertentu seperti mengklasifikasikan nomor, kita mencari set bobot tertentu yang memungkinkan neural network berfungsi sebagai klasifikasi. Kumpulan bobot ini berbeda untuk setiap tugas dan kumpulan datanya. Kita tidak dapat memprediksikan bobot ini sebelumnya. Namun, neural network harus mempelajarinya. Proses pembelajaran disebut juga dengan training

Arsitektur Neural Network

Arsitektur neural network, terdiri dari beberapa lapisan. Lapisan pertama kita dapat menyebutnya input layer.

Input layer menerima input x, yang merupakan data dimana neural network belajar. Pada contoh sebelumnya dari pengklasifikasian tulisan tangan, input berupa x, merepresentasikan gambar dari nomor tersebut (x pada dasarnya adalah seluruh vektor di mana setiap entrinya berupa pixel).

Input layer memiliki jumlah neuron yang sama dengan jumlah entri pada vektor x. Artinya, setiap input neuron mewakili satu elemen di dalam vektor x.

Lapisan terakhir disebut juga output layer,memiliki output vektor y, yang mewakili hasil output dari neural network. Entri dalam vektor ini mewakili nilai neuron di output layer. Pada kasus klasifikasi ini, setiap neuron pada lapisan terakhir akan mewakili kelas yang berbeda.

Dalam hal ini, nilai output neuron memberikan probabilitas bahwa digit tulisan tangan yang diberikan oleh fitur x kemungkinan termasuk ke dalam salah satu kelas ( salah satu dari digit 0-9). Seperti yang kita bayangkan, jumlah output neuron harus sama dengan kelas yang ada.

Untuk mendapatkan vektor hasil prediksi y, neural network harus melakukan operasi matematika tertentu. Operasi ini dilakukan pada lapisan antara input dan output. Kita dapat menyebutnya hidden layer. Pada bagian selanjutnya pada artikel apa itu deep learning akan membahas mengenai koneksi antar layer.

Koneksi antar layer pada Neural Network

Sebagai contoh, jika neural network hanya memiliki dua layer. Di mana input layer memiliki dua input neuron, lalu output nya memiliki tiga neuron seperti pada ilustrasi di bawah ini:

Weight antar neuron. [Apa itu deep learning]

Seperti yang telah dibahas sebelumnya dalam pembahasan apa itu deep learning. Setiap koneksi antar neuron direpresentasikan oleh nilai numerik yang kita sebut bobot (weight) w. Setiap w ini memiliki indeks. Angka pertama pada index menunjukkan nomor neuron dari layer asalnya, angka kedua adalah nomor neuron sambungan layer yang dituju.

Seluruh weight antara dua neural network dapat direpresentasikan dalam bentuk matriks seperti pada persamaan di bawah ini:

Matriks Weight (bobot). [Apa itu deep learning]

Matriks weight ini memiliki jumlah entri yang sama seperti koneksi yang di antara neuron. Dimensi bobot matriks ini dihasilkan dari ukuran dua layer yang terkoneksi berdasarkan bobot matriks tersebut.

Jumlah baris akan sesuai dengan jumlah neuron dari layar, dimana koneksi itu berasal dan jumlah kolomnya sesuai dengan jumlah layer dari tujuan koneksi tersebut.

Pada contoh kasus ini, jumlah baris dari bobot matriks ini adalah dua (ukuran layer input) dan jumlah ukuran kolomnya adalah tiga (ukuran layer output).

Proses training pada Neural Network

Setelah memahami arsitektur neural network dengan baik, sekarang saat nya untuk proses “belajar” pada jaringan saraf tiruan ini. Di harapkan Anda akan lebih mengerti apa itu deep learning.

Misalkan dengan fitur input vektor x, neural network menghitung prediksi vektor yang dapat kita sebut h.

Step ini dalam pembahasan apa itu deep learning disebut juga sebagai forward propagation. Dengan input vektor x dan bobot matriks W yang mengkoneksikan antara dua layer, kita dapat menghitung hasil produk dari vektor x dan matrik W.

Hasil dari produk ini pun berupa vektor yang dapat kita sebut z.

Vektor produk z. [Apa itu deep learning]

Nilai vektor prediksi akhir h didapatkan dengan cara mengaplikasikan fungsi aktivasi (activation function) terhadap vektor z. Dalam hal ini, fungsi aktivasi ini diwakili dengan simbol huruf Sigma. Fungsi aktifasi ini hanya suatu fungsi non linear yang dapat melakukan pemetaan nonlinear dari z ke h.

Ada 3 fungsi aktivasi yang digunakan dalam deep learning, yaitu tanh, sigmoid dan ReLu.

Sekarang mungkin Anda akan mengenali makna di balik neuron dalam jaringan saraf tiruan. Neuron hanyalah representasi dari nilai numerik. Nilai ini memberikan informasi seberapa kuat neuron ini terhubung satu sama lainnya.

Selama proses training, bobot ini disesuaikan, beberapa neuron akan menjadi lebih erat terhubung, dan beberapa jadi kurang terhubung. Seperti halnya pada jaringan saraf biologis, pembelajaran berarti adanya perubahan bobot. Dengan demikian, nilai z, h dan vektor output akhir y, berubah seiring dengan perubahan bobot. Beberapa bobot membuat prediksi neural network mendekati nilai yang benar sesuai dasarnya y_hat, beberapa bobot meningkatkan jarak dari nilai dasar vektor tersebut.

Kita dapat meningkatkan pengetahuan kita dengan arsitektur lebih dalam yang memiliki 5 layer.

Arsitektur 5 layer neural network. [Apa itu deep learning]

Sama seperti sebelumnya, hasil antara input x dan bobot pertama matriks W1 dan mengimplementasikan fungsi aktivasi terhadap hasil vektor untuk mendapatkan hidden layer vektor h1h1 ini sekarang bisa dikatakan sebagai input dari layer ketiga. Seluruh prosedur dari sebelumnya di ulang-ulang hingga mendapatkan output akhir y.

Hasil output y. [Apa itu deep learning]

Loss Function

Setelah mendapatkan hasil prediksi dari neural network, langkah selanjutnya adalah membandingkan vektor prediksi dengan label dasar sebenarnya. Kita dapat menyebutnya sebagai vektor y_hat. 

Vektor y berisi prediksi yang telah dihitung neural network selama proses forward propagation (bisa jadi pada kenyataannya, nilai akan berbeda dari sebenarnya), sedangkan vektor y_hat berisi nilai sebenarnya.

Secara matematis, kita dapat mengukur perbedaan nilai antara y dan y_hat dengan cara menggunakan loss function, dimana nilainya tergantung pada selisihnya.

Contoh loss function secara umum adalah quadratic loss:

Quadratic loss function. [Apa itu deep learning]

Nilai dari loss function ini tergantung pada perbedaan antara y_hat dan y. Semakin besar perbedaannya, artinya memiliki nilai loss yang lebih tinggi. Sebaliknya, semakin kecil perbedaannya, maka nilai loss akan mengecil.

Meminimalkan loss function, akan menjadikan hasil prediksi neural network lebih akurat, karena perbedaan prediksi dan label menjadi berkurang. Secara otomatis menyebabkan model neural network membuat prediksi lebih baik terlepas dari karakteristik tugas sebenarnya. Anda hanya perlu memilih loss function yang tepat untuk tugas tertentu. Untungnya, hanya ada dua loss function yang harus Anda ketahui untuk menyelesaikan hampir seluruh masalah yang dihadapi dalam prakteknya.

Loss function ini adalah Cross-Entropy Loss:

Dan yang kedua adalah Mean Squared Error Loss:

Oleh karena loss bergantung pada bobot, kita perlu menemukan kumpulan bobot tertentu yang memiliki loss function sekecil mungkin. Metode untuk meminimalkan loss function tersebut secara matematis dapat menggunakan metode yang disebut penurunan gradien ( gradient descent)

Gradient Descent (Penurunan Gradien)

Selama penurunan gradien, kita dapat menggunakan fungsi loss gradien untuk meningkatkan bobot neural network.

Untuk memahami konsep dasar dari proses penurunan gradien, mari kita ambil contoh dasar dari jaringan saraf yang hanya terdiri dari satu neuron input dan satu output yang dihubungkan dengan nilai bobot w.

ilustrasi input dan output. [Apa itu deep learning]

Jaringan saraf ini menerima input x dan mengeluarkan prediksi y. Misalkan nilai bobot awal neural network ini adalah 5 dan input x adalah 2. Oleh karena itu prediksi y jaringan ini memiliki nilai 10, sedangkan label y_hat mungkin memiliki nilai 6.

Hasil prediksi . [Apa itu deep learning]

Ini berarti prediksi tersebut tidak akurat dan kita harus menggunakan metode gradient descent untuk menemukan nilai bobot baru yang membuat prediksi neural network menjadi benar. Pada langkah pertama, kita perlu memiliki loss function. Mari kita ambil quadratic loss yang telah kita tentukan sebelumnya dan plot dari fungsi tersebut. Sederhananya, fungsi kuadratik itu seperti:

Fungsi kuadratis sederhana. [Apa itu deep learning]

Sumbu y adalah nilai dari loss yang bergantung pada perbedaan antara label dan prediksi. 

Dalam hal ini parameter jaringan memiliki satu weight w. Sedangkan sumbu x adalah nilai dari bobot tersebut. Seperti yang dapat Anda perhatikan, ada nilai bobot tertentu w yang fungsi loss nya mencapai minimum secara global. Nilai ini adalah parameter bobot paling optimal yang membuat prediksi neural network menjadi benar, yaitu 6. Dalam hal ini, nilai bobot optimalnya adalah 3:

Bobot awal secara grafis. [Apa itu deep learning]

Di sisi lain, nilai awal bobot kita adalah 5, yang mengarah pada bobot loss yang cukup tinggi. Target dari proses ini adalah untuk memperbarui parameter bobot berulang kali sehingga mencapai nilai yang optimal untuk bobot tertentu tersebut. Pada kondisi ini kita perlu menggunakan gradien dari loss function. Kabar baiknya, loss function adalah fungsi dari satu variabel tunggal, yaitu bobot w:

Fungsi loss function terhadap bobot w. [Apa itu deep learning]

Pada tahap selanjutnya, kita akan menghitung turunan dari loss function dengan parameter ini:

Turunan fungsi loss function terhadap bobot w. [Apa itu deep learning]

Pada akhirnya, kita akan mendapatkan hasil 8, dimana memberikan kita nilai dari slope (kemiringan) atau tangent dari loss function  untuk titik yang sesuai pada sumbu x di mana bobot awal berada.

Garis singgung ini mengarah ke tingkat tertinggi dari peningkatan loss function dan parameter bobot yang sesuai pada sumbu x.
Ini artinya kita telah menggunakan gradien dari loss function untuk menemukan parameter bobot mana yang memiliki nilai loss lebih tinggi. Namun, yang ingin kita ketahui adalah kebalikannya. Kita akan mendapatkan apa yang kita inginkan jika mengalikannya dengan minus 1. Dengan cara demikian, kita akan mendapatkan arah kebalikan dari gradien tersebut. Cara ini akan memberikan kita arah tingkat penurunan tertinggi dari loss function dan parameter yang membuat penurunan pada sumbu x:

Penurunan gradient. [Apa itu deep learning]

Pada langkah terakhir, kita melakukan satu step penurunan gradien sebagai upaya untuk meningkatkan bobot w. Kita menggunakan gradien negatif ini untuk memperbarui bobot saat ini ke arah bobot yang nilai loss functionnya berkurang sesuai dengan gradien negative:

Perhitungan bobot baru dengan penurunan gradient. [Apa itu deep learning]

Faktor epsilon pada persamaan ini adalah hyperparameter yang disebut dengan learning rate. Learning rate ini menentukan seberapa cepat atau lambat Anda ingin memperbarui suatu parameter. Harap diingat bahwa learning rate adalah faktor yang harus kita gunakan untuk mengalikan gradien negatif. Nilai learning rate ini biasanya cukup kecil, dalam hal ini adalah 0.1. 

Seperti yang telah Anda lihat, bobot w setelah penurunan gradien, kini menjadi 4.2, dan lebih dekat ke bobot optimal daripada sebelum step gradien.

Bobot awal dan akhir. [Apa itu deep learning]

Nilai dari loss function untuk bobot yang baru pun lebih kecil, artinya neural network sudah memiliki kemampuan yang lebih baik untuk memprediksi. Anda dapat melakukan kalkulasi di dalam pikiran Anda dan melihat hasil prediksi terbaru akan lebih mendekati kepada label dibandingkan sebelumnya.

Setiap kali kita melakukan update pada bobot, kita bergerak menuju gradien negatif ke arah bobot optimal.

Setelah setiap penurunan langkah gradien atau update bobot, bobot terbaru pada jaringan menjadi lebih dekat dan dekat terhadap bobot optimal dan akan mencapainya. Sehingga neural network akan mampu memprediksikan sesuai dengan apa yang kita inginkan.

Kesimpulan

Anda telah memahami konsep dasar apa itu deep learning dan bagaimana cara kerjanya dengan penjabaran yang sangat sederhana. Anda akan terbiasa dan lebih mengerti mengenai algoritma ini dengan secara langsung praktek cara penggunaannya. Salah satu contohnya adalah untuk aplikasi object detection dengan menggunakan framework terpopuler Tensorflow.

Sumber:

Adaptasi dari: https://towardsdatascience.com/what-is-deep-learning-and-how-does-it-work-2ce44bb692ac
Machine Learning Mastery

Read More
8 Program Python Sederhana

Pendahuluan

Program python sederhana. Dunia menuju pada zaman AI, ML, dan Data science yang merupakan teknologi dominan pada saat ini. Seluruh teknologi yang disebutkan itu bergantung pada bahasa pemrograman Python dalam beberapa hal. Oleh sebab itu, menjadi master pada pemrograman Python akan membuka kesempatan dalam berkarir dan mendapatkan banyak peluang terbaik di seluruh planet ini.

Harapannya, Anda sebagai pembaca di sini dapat mulai belajar menggunakan atau berlatih untuk menjadi ahli atau mungkin menantang keterampilan Anda dengan masalah yang lebih sulit untuk dikerjakan dengan Python. Tidak perlu khawatir posisi Anda pada saat ini dalam hal keterampilan menggunakan Python. Dengan cara mencoba untuk mengerjakan proyek Python, Anda sudah pasti akan meningkatkan keterampilan dan membangun profil terbaik untuk menghadapi dunia yang kompetitif di luar sana. Meskipun tutorial Python cukup membantu dan memberikan pengetahuan yang cukup rinci dalam proses pembelajaran Anda. Pada suatu saat, akan datang kemampuan Anda untuk membuat kode dan sesuatu yang bermanfaat secara mandiri.

Sebelum memulai pada ide-ide atau contoh program Python sederhana, mari kita baca terlebih dahulu bagaimana proyek ini dapat membantu Anda sebagai Python developer serta platform mana yang harus Anda pertimbangkan sebelum memulai segala macam proyek Python.

Bagaimana Proyek Program Python  Sederhana Dapat Membantu Anda?

Membangun proyek Python dapat membantu Anda dalam berbagai hal, beberapa di antaranya tercantum pada poin-poin di bawah ini:

Meningkatkan kepercayaan diri

Melakukan berbagai hal secara mandiri dengan cara Anda menggunakan alat dan teknologi akan membangun kepercayaan diri Anda. Jika Anda membuat konten pada platform youtube, maka, hal ini akan membantu youtube menilai keahlian Anda sebagai Python developer, sehingga pemeringkatan konten video Anda akan tampil lebih baik. 

Menjelajah dan bereksperimen

Proyek membuat sesuatu akan memberikan kesempatan untuk memperkenalkan diri Anda dengan alat dan teknologi yang sedang tren yang diperlukan untuk menyelesaikan suatu proyek. Anda dapat memilih keterampilan Anda dalam bidang server, database, konsep UI, dan masih banyak lagi.

Menguasai keterampilan mengoding

Proyek adalah nama lain untuk latihan, kita pun tahu bahwa latihan adalah resep untuk unggul dalam segala hal. Setelah Anda mahir dalam menulis kode dengan bahasa pemrograman Python serta mengetahui dependensi - dependensi lain yang dibutuhkan. Maka, Anda akan merasakan efisiensi pembelajaran Anda dalam menaiki anak tangga untuk mengerjakan proyek yang lebih menantang.

Mempelajari mengenai siklus pengembangan software

Langkah ini penting untuk dipelajari ketika Anda merasa sudah siap menuju industri dan Anda telah mampu melakukan proyek pada kehidupan nyata. Sehingga, Anda harus belajar mengembangkan proyek dengan cara yang optimal dan terorganisir sebagai paradigma SDLC (Software Development Life Cycle).

Proyek Apa Yang ingin Anda Kerjakan?

Setelah Anda siap dan termotivasi untuk mengerjakan suatu proyek, Anda harus memikirkan apa yang akan dibangun dan pada platform mana untuk membangun proyek Python tersebut. Anda harus memulai dari minat terlebih dahulu, terlepas dari apakah hal tersebut sedang ngetren atau tidak. Lalu, apakah membutuhkan tingkat keahlian ngoding yang sedikit atau masif. Akan sulit untuk bertahan pada suatu proyek atau bahkan menyelesaikannya jika Anda memulai dengan sesuatu yang tidak menarik menurut Anda.

Ada tiga platform utama dimana Anda dapat memulai membangun proyek Anda. Blog ini akan memberikan gambaran umum mengenai tiga platform tersebut:

1. Web

Aplikasi web dapat berjalan di web maupun di perangkat apa pun tanpa perlu diunduh; satu-satunya persyaratan adalah harus ada akses internet. Aplikasi web memiliki frontend dan backend. Frontend bertanggung jawab untuk UI (User Interface) situs web. Sedangkan backend adalah dimana logika program, kode dan penyimpanan data terjadi.

Python developer berfokus pada kode backend. Oleh karena frontend pun merupakan hal yang penting. Maka, Python developer harus memiliki pengetahuan mengenai HTML, CSS, dan Javascript untuk membuat UI yang tampak sederhana. Dengan library tambahan, Python developer dapat menggunakan Python untuk backend dan frontend pada proyek Python tersebut. Django dan Flask adalah framework web populer untuk membangun aplikasi menggunakan Python.

2. UI Desktop

Membangun Aplikasi Desktop dengan Python adalah proyek yang bagus untuk pemula dan juga untuk pengguna menengah. Ada beberapa framework untuk membangun aplikasi desktop pada Python. PySimple GUI adalah framework Python yang user friendly, PyQt5 adalah framework GUI berbasis python tingkat lanjut. Aplikasi desktop yang dikembangkan pada nantinya dapat dibuat kompatibel dengan suluruh OS utama (Linux, Windows, atau macOS).

3. Command Line

Dalam aplikasi command line, interaksi user sepenuhnya bergantung pada terminal & shell. Aplikasi ini hanya berfungsi pada Windows Console, tidak memiliki bentuk grafik serta tidak adanya user interface visual. Python developer harus memasukkan perintah tertentu, sementara itu, pengguna memberikan input kepada aplikasi dengan menggunakan karakter ASCII, lalu aplikasi pun memberikan output berupa ASCII.

Aplikasi command line ini robust dan powerfull tetapi tidak user friendly. Sekarang saatnya untuk mencoba program Python sederhana sebagaimana dijabarkan pada bagian selanjutnya.

Ide proyek program python sederhana

Ini adalah list untuk proyek pemrograman python sederhana yang cocok untuk pemula ataupun menengah.

Menebak Angka

Proyek ini adalah permainan yang cukup menyenangkan untuk pemula. Program ini memberikan nomor acak dari 1 hingga 10, 1 hingga 100 atau rentang apa pun yang telah ditentukan. Lalu, pengguna harus menebak nomor tersebut setelah mengikuti petunjuk dari komputer. Setiap kali tebakan salah, maka, pengguna akan diminta untuk memilih apakah membutuhkan lebih banyak petunjuk agar memudahkan dalam menebak angka dengan mengorbankan pengurangan skor. Simbol matematika pun seperti kelipatan, habis dibagi, lebih besar atau lebih kecil, atau kombinasi semuanya dapat dijadikan sebagai petunjuk. 

Program ini pun membutuhkan fungsi untuk memeriksa apakah angka sebenarnya dimasukkan oleh pengguna atau tidak, lalu digunakan untuk membandingkan angka yang dimasukkan dengan angka sebenarnya, untuk mencari selisih antara kedua angka tersebut. 

Kode:

""" Program python sederhana - Menebak angka
----------------------------------------
"""
import random
attempts_list = []
def show_score():
    if len(attempts_list) <= 0:
        print("Saat ini belum ada skor tertinggi, kesempatan Anda untuk mengambilnya!")
    else:
        print("Skor tertinggi saat ini adalah {} percobaan".format(min(attempts_list)))
def start_game():
    random_number = int(random.randint(1, 10))
    print("Halo petualang! Selamat datang pada permainan tebak-tebakan angka!")
    player_name = input("Siapa nama Anda? ")
    wanna_play = input("Hi, {}, apakah Anda ingin bermain tebak angka? (Tulis Ya/Tidak) ".format(player_name))
    
    attempts = 0
    show_score()
    while wanna_play.lower() == "ya":
        try:
            guess = input("Pilih angka antara 1 dan 10: ")
            if int(guess) < 1 or int(guess) > 10:
                raise ValueError("Silahkan tebak angka di antara nya")
            if int(guess) == random_number:
                print("Selamat! Anda benar!")
                attempts += 1
                attempts_list.append(attempts)
                print("Anda melakukannya dengan {} percobaan".format(attempts))
                play_again = input("Apakah Anda ingin bermain lagi? (Tulis Ya/Tidak) ")
                attempts = 0
                show_score()
                random_number = int(random.randint(1, 10))
                if play_again.lower() == "tidak":
                    print("Terima kasih, sampai jumpa kembali!")
                    break
            elif int(guess) > random_number:
                print("Angkanya lebih kecil")
                attempts += 1
            elif int(guess) < random_number:
                print("Angkanya lebih besar")
                attempts += 1
        except ValueError as err:
            print("Oh tidak!, ini nilai yang salah. Silahkan mencoba lagi...")
            print("({})".format(err))
    else:
        print("Selamat, telah bermain game ini!")
if __name__ == '__main__':
    start_game()

Gunting batu kertas

Program atau mini-game ini dirancang saat Anda tidak memiliki kawan untuk bermain atau Anda sedang sendirian, lebih tepat nya untuk jomblo yang merana, hehe. Ada sejumlah fungsi yang dibutuhkan untuk membuat program ini, oleh karena itu mari kita lihat gambaran umumnya.

  • Fungsi acak: untuk menghasilkan batu, kertas, atau gunting. 
  • Fungsi valid: untuk memeriksa validitas perpindahan.
  • Fungsi hasil: untuk mengumumkan pemenang.
  • Pencatat skor: untuk menghitung skor.

Program ini mengharuskan pengguna untuk melakukan langkah pertama sebelum membuat satu gerakan. Setelah langkah validasi, input akan dievaluasi.  Input yang dimasukkan bisa berupa string atau alfabet. Setelah mengevaluasi input string, pemenang ditentukan oleh fungsi hasil. Lalu,  skor babak akan diperbarui oleh fungsi pencatat skor. 

Program Python Sederhana - Gunting, batu ,kertas
Program Python Sederhana - Gunting, batu ,kertas

Kode:

# -*- coding: utf-8 -*-
"""
Program python sederhana - Gunting batu kertas
"""


from random import randint

#create a list of play options
t = ["Batu", "Kertas", "Gunting"]

#assign a random play to the computer
computer = t[randint(0,2)]

#set player to False
player = False

while player == False:
#set player to True
    player = input("Batu, Gunting, Kertas?")
    if player == computer:
        print("Seri!")
    elif player == "Batu":
        if computer == "Kertas":
            print("Anda Kalah!", computer, "menutup", player)
        else:
            print("Anda Menang!", player, "memukul", computer)
    elif player == "Kertas":
        if computer == "Gunting":
            print("Anda Kalah!", computer, "memotong", player)
        else:
            print("Anda Menang!", player, "menutup", computer)
    elif player == "Gunting":
        if computer == "Batu":
            print("Anda Kalah...", computer, "memukul", player)
        else:
            print("Anda Menang!", player, "memotong", computer)
    else:
        print("Input tidak valid. Perhatikan penulisan Anda!")
    #player was set to True, but we want it to be False so the loop continues
    player = False
    computer = t[randint(0,2)]

Pemblokir situs web

Kita semua tahu bahwa saat browsing di internet banyak situs yang tidak diinginkan muncul yang dapat mengalihkan perhatian kita. Program ini dapat membantu kita dalam situasi tersebut. Program python sederhana ini dibangun untuk memblokir situs web tertentu agar tidak dapat dibuka. Program ini bermanfaat bagi orang-orang yang perhatiannya mudah teralihkan ke situs media sosial saat melakukan suatu pekerjaan yang serius. 

Kode:

""" Program python sederhana - Website Blocker
----------------------------------------
"""
import time
from datetime import datetime as dt

#r adalah raw untuk string
hosts_path = r"C://Windows//System32//drivers//etc"   
hosts_temp = "hosts"
redirect = "127.0.0.1"
#User dapat memilih website yang akan di blok
web_sites_list = ["www.facebook.com", "facebook.com"]    
while True:
   if dt(dt.now().year, dt.now().month, dt.now().day, 9) < dt.now() < dt(dt.now().year, dt.now().month, dt.now().day,22):
       print("Waktu kerja")
       with open(hosts_path, "r+") as file:
           content = file.read()
           for website in web_sites_list:
               if website in content:
                   pass
               else:
                   file.write(redirect+" "+website+"\n")
   else:
       print("Fun time")
       with open(hosts_path, "r+") as file:
           content = file.readlines()
           file.seek(0)   # reset pointer ke bagian atas file text
           for line in content:
            # overwrite seluruh file
               if not any(website in line for website in web_sites_list):
                   file.write(line)
               
           file.truncate() # Baris ini di gunakan untuk menghapus baris (termasuk DNS)
   time.sleep(5)

Algoritma pencarian bilangan biner

Nama tersebut cukup jelas untuk memberikan gambaran umum tentang program tersebut. Program ini mengharuskan Anda untuk membuat daftar angka antara 0 hingga rentang apa pun yang Anda inginkan, dengan setiap angka berikutnya memiliki selisih 2 di antaranya. 

Ketika pengguna memasukkan nomor acak yang akan dicari, program memulai pencariannya dengan membagi daftar angka menjadi dua bagian. Bagian pertama akan mencari nomor yang dibutuhkan, lalu, jika ditemukan separuh lainnya akan ditolak, begitupun sebaliknya. Pencarian berlanjut hingga nomor tersebut ditemukan atau ukuran subarray nya menjadi nol. Ide pembuatan program Python sederhana ini pun dapat membantu Anda untuk mencari elemen dalam suatu daftar. 

Kode:

""" Program python sederhana - Algoritma pencari bilangan biner
----------------------------------------
"""
# implementasi pencarian bilangan biner secara iteratif pada Python
def binary_search(a_list, item):
    # """Melakukan bilangan biner secara iteratif untuk menemukan posisi dari integer pada list yg terurut
    # a_list -- list dari integer yang terurut
    # item -- integer yang anda cari pada posisi tertentu integer 
    first = 0
    last = len(a_list) - 1
    while first <= last:
        i = (first + last) / 2
        if a_list[i] == item:
            return ' ditemukan pada posisi '.format(item=item, i=i)
        elif a_list[i] > item:
            last = i - 1
        elif a_list[i] < item:
            first = i + 1
        else:
            return ' tidak di temukan di dalam list'.format(item=item)
# Implementasi pencarian bilangan biner secara recursive pada Python
def binary_search_recursive(a_list, item):
    # """Melakukan pencarian bilangan biner secara recursive dari integer pada list yang berurutan.
    # a_list -- list dari integer yang terurut
    # item -- integer yang anda cari pada posisi tertentu integer 
    first = 0
    last = len(a_list) - 1
    if len(a_list) == 0:
        return ' tidak di temukan di dalam list'.format(item=item)
    else:
        i = (first + last) // 2
        if item == a_list[i]:
            return ' ditemukan'.format(item=item)
        else:
            if a_list[i] < item:
                return binary_search_recursive(a_list[i+1:], item)
            else:
                return binary_search_recursive(a_list[:i], item)

Program python sederhana untuk Kalkulator

Dalam membuat program ini, Anda akan belajar mendesain UI grafis dan membuat Anda terbiasa dengan library seperti Tkinter. Library ini memungkinkan Anda untuk membuat tombol yang dapat melakukan operasi berbeda serta menampilkan hasilnya pada layar. 

Program Python Sederhana - Calculator
Program Python Sederhana - Calculator

Kode:

""" Program python sederhana - Calculator
----------------------------------------
"""
def addition ():
    print("Penambahan")
    n = float(input("Silahkan masukkan angka: "))
    t = 0 
    ans = 0
    while n != 0:
        ans = ans + n
        t+=1
        n = float(input("Silahkan masukkan angka lain (masukkan 0 untuk menghitung): "))
    return [ans,t]
def subtraction ():
    print("Pengurangan")
    n = float(input("Silahkan masukkan angka: "))
    t = 0 
    ans = 0
    while n != 0:
        ans = ans - n
        t+=1
        n = float(input("Silahkan masukkan angka lain (masukkan 0 untuk menghitung): "))
    return [ans,t]
def multiplication ():
    print("Perkalian")
    n = float(input("Silahkan masukkan angka: "))
    t = 0 #Total number enter
    ans = 1
    while n != 0:
        ans = ans * n
        t+=1
        n = float(input("Silahkan masukkan angka lain (masukkan 0 untuk menghitung): "))
    return [ans,t]
def average():
    an = []
    an = addition()
    t = an[1]
    a = an[0]
    ans = a / t
    return [ans,t]

while True:
    list = []
    print(" Program Python pertamaku!")
    print(" Tulis 'a' untuk penambahan")
    print(" Tulis 's' untuk pengurangan")
    print(" Tulis 'm' untuk perkalian")
    print(" Tulis 'v' untuk average")
    print(" Tulis 'q' untuk keluar")
    c = input(" ")
    if c != 'q':
        if c == 'a':
            list = addition()
            print("Jawaban = ", list[0], " total inputs ",list[1])
        elif c == 's':
            list = subtraction()
            print("Jawaban = ", list[0], " total inputs ",list[1])
        elif c == 'm':
            list = multiplication()
            print("Jawaban = ", list[0], " total inputs ",list[1])
        elif c == 'v':
            list = average()
            print("Jawaban = ", list[0], " total inputs ",list[1])
        else:
            print ("Maaf, karakter tidak valid")
    else:
        break

Alarm Jam

Ini adalah aplikasi Python Command Line Interface (CLI) yang menarik untuk developer tingkat menengah dalam membuat program python sederhana. Orang-orang di seluruh dunia menggunakan fitur jam alarm pada perangkat mereka. Akan tetapi, program ini dapat diubah dengan cara yang sedikit berbeda. Beberapa link YouTube tertentu dapat ditambahkan ke dalam teks file. Lalu, program ditulis sedemikian rupa sehingga ketika pengguna menyetel alarm, maka kode akan memilih link secara acak, lalu, akan mulai memutar link YouTube tersebut.

Kode:

""" Program python sederhana - Alarm Clock
----------------------------------------
"""
import datetime
import os
import time
import random
import webbrowser
# Jika video URL tidak ada, maka buatlah yang baru dengan script di bawah ini
if not os.path.isfile("youtube_alarm_videos.txt"):
    print('Creating "youtube_alarm_videos.txt"...')
    with open("youtube_alarm_videos.txt", "w") as alarm_file:
        alarm_file.write("https://www.youtube.com/watch?v=HQaCF2F_MRo")
def check_alarm_input(alarm_time):
    """Memeriksa apakah user telah memasukkan waktu alarm yang valid"""
    if len(alarm_time) == 1: # [Hour] Format
        if alarm_time[0] < 24 and alarm_time[0] >= 0:
            return True
    if len(alarm_time) == 2: # [Hour:Minute] Format
        if alarm_time[0] < 24 and alarm_time[0] >= 0 and \
           alarm_time[1] < 60 and alarm_time[1] >= 0:
            return True
    elif len(alarm_time) == 3: # [Hour:Minute:Second] Format
        if alarm_time[0] < 24 and alarm_time[0] >= 0 and \
           alarm_time[1] < 60 and alarm_time[1] >= 0 and \
           alarm_time[2] < 60 and alarm_time[2] >= 0:
            return True
    return False
# User input untuk waktu alarm
print("Set waktu alarm (Contoh 06:30 or 18:30:00)")
while True:
    alarm_input = input(">> ")
    try:
        alarm_time = [int(n) for n in alarm_input.split(":")]
        if check_alarm_input(alarm_time):
            break
        else:
            raise ValueError
    except ValueError:
        print("ERROR: Masukkan format waktu dengan HH:MM atau HH:MM:SS")
# Konversi waktu alarm dari [H:M] atau [H:M:S] ke dalam detik
seconds_hms = [3600, 60, 1] # Jumlah detik dalam jam, menit dan detik
alarm_seconds = sum([a*b for a,b in zip(seconds_hms[:len(alarm_time)], alarm_time)])
#Waktu hari ini dalam detik
now = datetime.datetime.now()
current_time_seconds = sum([a*b for a,b in zip(seconds_hms, [now.hour, now.minute, now.second])])
# Hitung jumlah detik hingga alarm berhenti
time_diff_seconds = alarm_seconds - current_time_seconds
# Jika perbedaan waktunya adalah negatif, set alarm untuk hari selanjutnya
if time_diff_seconds < 0:
    time_diff_seconds += 86400 # jumlah detik dalam satu hari
# Tampilkan jumlah waktu hingga alarm berbunyi
print("Alarm akan berbunyi dalam %s" % datetime.timedelta(seconds=time_diff_seconds))
# Sleep mode hingga alarm berbunyi
time.sleep(time_diff_seconds)
# Waktu alarm berbunyi
print("Ayo bangun!")
# Load daftar video URL
with open("youtube_alarm_videos.txt", "r") as alarm_file:
    videos = alarm_file.readlines()
# Buka random video dari list
webbrowser.open(random.choice(videos))

Tic-Tac-Toe

Game ini sangat populer di antara kita semua dan bahkan menyenangkan untuk dibuat sebagai program Python. 

Ini adalah permainan antara dua pemain yang terdiri dari sembilan kotak. Setiap pemain memilih gerakan mereka dengan O atau X dan menandai kotak mereka di setiap kesempatan. Pemain yang berhasil membuat tanda dalam satu baris, baik secara diagonal, horizontal, atau vertikal akan menang. Tantangan bagi pemain lain adalah memblokir permainan lawannya dan juga untuk membuat rantai. 

Program Python Sederhana - tic tac toe

Untuk membuat program ini dengan Python, maka, kita dapat menggunakan library Pygame yang telah dimuat dengan grafik dan suara komputer. 

Kode:

""" Program python sederhana - Tic Tac Toe
----------------------------------------
"""
import random
import sys
board=[i for i in range(0,9)]
player, computer = '',''
# Pojok, tengah dan lokasi lainnya, berturut-turut
moves=((1,7,3,9),(5,),(2,4,6,8))
# Kombinasi pemenang
winners=((0,1,2),(3,4,5),(6,7,8),(0,3,6),(1,4,7),(2,5,8),(0,4,8),(2,4,6))
# Tabel
tab=range(1,10)
def print_board():
    x=1
    for i in board:
        end = ' | '
        if x%3 == 0:
            end = ' \n'
            if i != 1: end+='---------\n';
        char=' '
        if i in ('X','O'): char=i;
        x+=1
        print(char,end=end)
def select_char():
    chars=('X','O')
    if random.randint(0,1) == 0:
        return chars[::-1]
    return chars
def can_move(brd, player, move):
    if move in tab and brd[move-1] == move-1:
        return True
    return False
def can_win(brd, player, move):
    places=[]
    x=0
    for i in brd:
        if i == player: places.append(x);
        x+=1
    win=True
    for tup in winners:
        win=True
        for ix in tup:
            if brd[ix] != player:
                win=False
                break
        if win == True:
            break
    return win
def make_move(brd, player, move, undo=False):
    if can_move(brd, player, move):
        brd[move-1] = player
        win=can_win(brd, player, move)
        if undo:
            brd[move-1] = move-1
        return (True, win)
    return (False, False)

# Komputer AI menggunakan function di bawah ini
def computer_move():
    move=-1
    # Jika saya menang, yang lain tidak dihiraukan.
    for i in range(1,10):
        if make_move(board, computer, i, True)[1]:
            move=i
            break
    if move == -1:
       # Jika player menang, lakukan penghadangan.
        for i in range(1,10):
            if make_move(board, player, i, True)[1]:
                move=i
                break
    if move == -1:
        # Mencoba mengambil posisi yang di inginkan.
        for tup in moves:
            for mv in tup:
                if move == -1 and can_move(board, computer, mv):
                    move=mv
                    break
    return make_move(board, computer, move)
def space_exist():
    return board.count('X') + board.count('O') != 9
player, computer = select_char()
print('Player adalah [%s] dan komputer adalah [%s]' % (player, computer))
result='%%% Seri ! %%%'


while space_exist():
    print_board()
    print('#Silahkan memulai duluan ! [1-9] : ', end='')
    move = int(input())
    moved, won = make_move(board, player, move)
    if not moved:
        print(' >> Input tidak valid ! Coba lagi !')
        continue
    
    if won:
        result='*** Selamat ! Anda memenangkannya ! ***'
        break
    elif computer_move()[1]:
        result='=== Maaf Anda kalah! Silahkan mencoba lagi di lain kesempatan ! =='
        break;
print_board()
print(result)

Konversi Mata Uang

Ini adalah program langsung dengan GUI sederhana. Nama tersebut cukup jelas menggambarkan peran program ini untuk mengubah mata uang dari satu unit ke unit lainnya. Misalnya, mengkonversi rupiah ke USD atau euro. 

Tkinter, merupakan interface standar Python yang dapat digunakan untuk merancang dan mengembangkan aplikasi ini. 

Kode:

""" Program python sederhana - Currency Converter
----------------------------------------
"""
import urllib.request
import json
def currency_converter(currency_from, currency_to, currency_input):
    # Yahoo sudah tidak membuka api currency converter.
    yql_base_url = "https://query.yahooapis.com/v1/public/yql"
    yql_query = 'select%20*%20from%20yahoo.finance.xchange%20where%20pair' \
                '%20in%20("'+currency_from+currency_to+'")'
    yql_query_url = yql_base_url + "?q=" + yql_query + "&format=json&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys"
    try:
        yql_response = urllib.request.urlopen(yql_query_url)
        try:
            json_string = str(yql_response.read())
            json_string = json_string[2:]
            json_string = json_string[:-1]
            print(json_string)
            yql_json = json.loads(json_string)
            last_rate = yql_json['query']['results']['rate']['Rate']
            currency_output = currency_input * float(last_rate)
            return currency_output
        except (ValueError, KeyError, TypeError):
            print(yql_query_url)
            return "JSON format error"
    except IOError as e:
        print(str(e))
currency_input = 1
currency_from = "USD"
currency_to = "IDR"
rate = currency_converter(currency_from, currency_to, currency_input)
print(rate)

Kesimpulan

Itulah contoh-contoh program python sederhana yang dapat Anda coba untuk meningkatkan pemahaman dalam menggunakan bahasa pemrograman Python. Semoga latihan membuat program tersebut dapat membantu Anda dalam menyelesaikan masalah-masalah yang sedang di hadapi.

Artikel lain mengenai Python:
Visualisasi Data
Tensorflow Object Detection

Read More
Berkenalan Dengan Seaborn Python | Belajar Mudah Visualisasi Data Bagian 0

Pada artikel Kali ini kita akan Berkenalan Dengan Seaborn Python, yaitu salah satu library pada Python untuk visualisasi data. Libary ini sangat berguna ketika Anda bekerja untuk memahami suatu data yang sederhana maupun kompleks. Oleh karena itu, tunggu apalagi. Mari kita membahas mengenai Seaborn.

Berkenalan Dengan Seaborn

Seaborn adalah library untuk membuat grafik dan statistik dengan menggunakan Python. Library ini di bangun berdasarkan library matplotlib serta terintegrasi dengan struktur data pada panda.

Berikut adalah beberapa fungsi yang dapat di lakukan oleh seaborn:

  • API berorientasi set data untuk memeriksa hubungan antara beberapa variabel
  • Dukungan khusus untuk menggunakan variabel kategori untuk menunjukkan observasi atau statistik agregat
  • Pilihan untuk memvisualisasikan distribusi univarian atau bivarian dan untuk membandingkannya di antara subkumpulan data
  • Estimasi otomatis dan plot model regresi linier untuk berbagai jenis variabel dependen
  • Tampilan yang nyaman pada keseluruhan struktur kumpulan data yang kompleks
  • Abstraksi tingkat tinggi untuk menyusun kisi multi-plot yang memungkinkan Anda membuat - visualisasi kompleks dengan mudah
  • Kontrol yang simple untuk styling gambar matplotlib dengan beberapa tema bawaan
  • Tool untuk memilih palet warna untuk menampilkan pola sesuai denga aslinya dalam data Anda

Seaborn bertujuan agar visualisasi menjadi bagian penting dari proses eksplorasi dan pemahaman data. Seaborn berorientasi pada fungsi plotting berdasarkan dataset yang beroperasi pada dataframe dan array yang berisi seluruh dataset yang secara internal melakukan pemetaan semantik dan agregasi statistik yang diperlukan untuk menghasilkan grafik informatif.

Instalasi Seaborn

Instalasi Seaboard dapat dilakukan dengan dua cara yaitu:

pip install seaborn

Atau jika Anda menggunakan Anaconda distribution

conda install seaborn

 Dependencies

Ada beberapa dependencies yang perlu diperhatikan sebelum menjalankan seaborn pada komputer/laptop Anda.

Diantaranya:

optional:

Memulai Seaborn

Setelah Anda selesai menginstall Seaborn, maka saat nya untuk berkenalan dengan seaborn Python. Seaborn memiliki contoh dataset yang dapat Anda coba. Untuk memulainya silahkan eksekusi perintah ini. (Anda dapat menggunakan Jupyter notebook atau Python IDE lainnya, pada artikel ini, pada artikel ini adalah menggunakan Jupyter Notebook karena kelebihannya dapat di eksekusi pada cell dan menampilkan hasilnya pada cell dibawahnya).

import seaborn as sns
df = sns.load_dataset("penguins")
sns.pairplot(df, hue="species")

Jika Anda menggunakan Jupyter Notebook, pastikan menyalakan matplotlib mode untuk dapat langsung melihat hasilnya. Namun, jika tidak Anda harus memanggil fungsi matplotlib.pyplot.show() di bawah nya. Perintah nya adalah:

import matplotlib.pyplot as plt
plt.show()

Overview Fungsi Plot Pada Seaborn

Semakin sering Anda berinteraksi dan berkenalan dengan seaborn Python, maka Anda akan melihat serangkaian fungsi plot. Pada artikel selanjutnya kita akan mengeksplorasi fitur spesifik yang dapat dilakukan oleh masing-masing fungsi. Artikel ini hanya akan memperkenalkan kepada Anda mengenai berbagai jenis fungsi yang akan Anda hadapi dalam menggunakan Seaborn.

Fungsi Sama Untuk Tugas Serupa

Penamaan pada Seaborn adalah flat; seluruh fungsionalitas dapat di akses di dengan sederhana. Sebenarnya, kode pada Seaborn itu sendiri terstruktur secara hierarki, dengan fungsi modul untuk mencapai tujuan visualisasi serupa dengan cara yang berbeda. Pada sebagian besar dokumentasi mengenai seaborn yang telah di susun oleh para maintenernya. Maka, Anda akan menemukan nama-nama seperti "relasional", "distribusi", dan "kategorikal".

Sebagai contoh, modul distribusi untuk mendefinisikan fungsi-fungsi yang memiliki spesialisasi dalam merepresentasikan distribusi data. Termasuk metode yang sudah kita kenal kenal dengan baik seperti histogram:

penguins = sns.load_dataset("penguins")
sns.histplot(data=penguins, x="flipper_length_mm", hue="species", multiple="stack")
Berkenalan Dengan Seaborn Python - Modul Distribusi
Berkenalan Dengan Seaborn Python - Modul Distribusi

Bersamaan dengan opsi yang sama, namun mungkin kita kurang familiar, seperti pada contoh kernel density estimation :

Berkenalan Dengan Seaborn Python  - KDE Plot
Berkenalan Dengan Seaborn Python - KDE Plot

Fungsi yang berada di dalam modul memiliki banyak kode yang mendasari dan menawarkan fitur serupa yang mungkin tidak ada pada komponen lain dari library (seperti multiple="stack" pada contoh di atas). Library ini dirancang untuk memfasilitasi peralihan di antara representasi visual yang berbeda saat Anda menelusuri kumpulan data, karena representasi yang berbeda sering kali memiliki kekuatan dan kelemahan yang saling melengkapi.

Fungsi Figure-Level vs Axes-Level

Selain dengan modul yang berbeda, ada yang dinamakan cross-cutting classification dari fungsi Seaborn sebagai "axes-level" atau "figure-level". Contoh di atas adalah fungsi "axes-level". Fungsi ini untuk membuat plot data ke dalam satu object matplotlib.pyplot.Axes, yang merupakan nilai dari fungsi tersebut.

Sebaliknya, "figure-level" berinterface dengan matplotlib melalui objek seaborn, biasanya adala FacetGrid, yang mengelola suatu gambar. Setiap modul memiliki fungsi "figure-level" tunggal, yang menawarkan satu antarmuka ke dalam berbagai fungsi "axes-level".

Sebagai contoh, displot() adalah fungsi "figure-level" untuk modul distribusi. Secara default adalah untuk menggambar suatu histogram, menggunakan kode yang sama seperti pada histplot():

sns.displot(data=penguins, x="flipper_length_mm", hue="species", multiple="stack")
Berkenalan Dengan Seaborn Python - Displot
Berkenalan Dengan Seaborn Python - Displot

Untuk membuat kernel density plot, Anda dapat menggunakan kode yang sama seperti pada kdeplot(), lalu pilih menggunakan parameter kind parameter kind:

sns.displot(data=penguins, x="flipper_length_mm", hue="species", multiple="stack", kind="kde")
Berkenalan Dengan Seaborn Python - Displot KDE
Berkenalan Dengan Seaborn Python - Displot KDE

Anda akan melihat bahwa plot figure-level sebagian besar terlihat seperti pada axes-level, namun ada beberapa perbedaan. Terutama pada penempatan posisi legenda yang berada di luar plot. Selain itu, mereka pun memiliki bentuk yang sedikit berbeda

Fitur yang paling berguna pada fungsi figure-level adalah kemudahannya dalam mebuat gambar dengan banyak sub-plot.. Misalnya, dibanding menumpukkan tiga plot distribusi untuk setiap spesies penguin dalam satu sumbu yang sama, kita dapat memisahkannya dengan memplot setiap distribusi pada seluruh kolom gambar, seperti pada contoh di bawah ini:

sns.displot(data=penguins, x="flipper_length_mm", hue="species", col="species")
Berkenalan Dengan Seaborn Python - Multiple Subplot
Berkenalan Dengan Seaborn Python - Multiple Subplot

Fungsi figure-level membungkus axes-level, lalu meneruskan argumen kata kunci yang spesifik (seperti ukuran bin pada histogram) kepada fungsi yang mendasarinya. Ini berarti mereka cukup fleksibel, namun ada sisi negatifnya, yaitu: parameter khusus ini tidak muncul pada docstrings. Beberapa fitur mungkin sulit untuk dapat ditemukan, Anda mungkin perlu melihat d dokumentasi yang lengkap sebelum memahami bagaimana cara untuk mencapai tujuan tertentu dalam penggunaannya.

Fungsi axes-level membuat plot self-contained

Fungsi axes-level memiliki kemampuan untuk bertindak sebagai pengganti drop-in pada fungsi yang terdapat pada matplotlib. Fungsi ini dapat menambahkan label pada sumbu dan legenda secara otomatis tanpa mengubah apa pun di luar sumbu tempat mereka ditarik. Ini berarti fungsi tersebut dapat disusun menjadi angka kompleks pada matplotlib dengan hasil yang dapat di prediksi.

Fungsi axes-level memanggil secara internal pada matplotlib.pyplot.gca(), yang menghubungkan ke interface "state-machine" pada matplotlib. Sehingga, plot akan di gambar pada sumbu "currently-active". Selain itu, mereka pun menerima ax=  argumen, yang terintegrasi dengan interface berorientasi objek, serta memungkinkan Anda untuk menentukan dengan tepat ke mana arah plot harus pergi:

f, axs = plt.subplots(1, 2, figsize=(8, 4), gridspec_kw=dict(width_ratios=[4, 3]))
sns.scatterplot(data=penguins, x="flipper_length_mm", y="bill_length_mm", hue="species", ax=axs[0])
sns.histplot(data=penguins, x="species", hue="species", shrink=.8, alpha=.8, legend=False, ax=axs[1])
f.tight_layout()
Berkenalan Dengan Seaborn Python - Scatter Plot dan histplot
Berkenalan Dengan Seaborn Python - Scatter Plot dan histplot

Fungsi figure-level

Sebaliknya, fungsi figure-level tidak dapat (dengan mudah) di buat dengan menggunakan plot lain. Secara desain, fungsi ini "memiliki" gambar mereka sendiri, termasuk inisialisasi, sehingga tidak ada disarankan untuk menggunakan fungsi figure-level dalam menggambar plot kepada sumbu yang ada. Keterbatasan ini memungkinkan fungsi figure-level untuk mengimplementasikan fitur lain seperti meletakkan legenda di luar plot.

Namun demikian, ada kemungkinan untuk melampaui fungsi yang terdapat pada figure-level dengan cara mengakses sumbu matplotlib pada objek yang dikembalikan, lalu menambahkan elemen lain ke dalam plot seperti ini:

import matplotlib.pyplot as plt

tips = sns.load_dataset("tips")
g = sns.relplot(data=tips, x="total_bill", y="tip")

x = np.linspace(0, 10, 100)
plt.plot(x, x + 1, linestyle='dashed', color="r")
Berkenalan Dengan Seaborn Python  - Figure plot dan matplotlib
Berkenalan Dengan Seaborn Python - Figure plot dan matplotlib

Menyesuaikan plot dari fungsi figure-level

Fungsi figure-level menghasilkan sebuah FacetGrid  instance, yang memiliki beberapa metode untuk menyesuaikan atribut plot dengan cara pengorganisasian subplot. Misalnya, Anda dapat mengubah label pada sumbu eksternal hanya denga menggunakan satu baris kode:

g = sns.relplot(data=penguins, x="flipper_length_mm", y="bill_length_mm", col="sex")
g.set_axis_labels("Panjang Flipper (mm)", "Panjang Bill (mm)")
Berkenalan Dengan Seaborn Python  - Relabelling Axis
Berkenalan Dengan Seaborn Python- Relabelling Axis

Meskipun mudah, hal ini menambahkan sedikit kerumitan, karena Anda perlu ingat bahwa metode ini bukan bagian dari API matplotlib dan hanya ada pada saat menggunakan fungsi figure-level.

Menentukan ukuran gambar

Untuk menambah atau mengurangi ukuran plot pada matplotlib, Anda dapat mengatur lebar dan tinggi dari seluruh gambar, baik ketika di dalam rcParams global, ketika sedang menyiapkan plot (misalnya dengan parameter figsize  dari matplotlib.pyplot.subplots() ), atau dengan memanggil metode pada objek gambar (misalnya matplotlib.Figure.set_size_inches()  ). Saat menggunakan fungsi axes-level pada Seaborn, aturan yang sama akan berlaku, yaitu: ukuran plot ditentukan oleh ukuran gambar yang menjadi bagiannya dan layout sumbu pada gambar tersebut.

Saat menggunakan fungsi figure-level, ada beberapa perbedaan utama. Pertama, fungsi itu sendiri memiliki parameter untuk mengontrol ukuran gambar. Kedua, height  dan aspect , memiliki parameter ukuran sedikit berbeda dibandingkan width . Parameter height  dalam matplotlib (menggunakan parameter pada seaborn, width = height * apsect ). Yang paling perlu diperhatikan adalah, parameter tersebut sesuai dengan ukuran setiap subplot , bukan ukuran gambar secara keseluruhan

Untuk mengilustrasikan perbedaan antara kedua pendekatan ini, berikut adalah output default dari matplotlib.pyplot.subplots() dengan satu subplot:

f, ax = plt.subplots()
Berkenalan Dengan Seaborn Python - Subplot kosong
Berkenalan Dengan Seaborn Python - Subplot kosong
f, ax = plt.subplots(1, 2, sharey=True)
Berkenalan Dengan Seaborn Python - 2 subplot kosong share y
Berkenalan Dengan Seaborn Python - 2 subplot kosong share y

Sebaliknya, plot yang dibuat oleh fungsi figure-level akan berbentuk persegi. Untuk mendemonstrasikannya, mari kita membuat plot kosong dengan menggunakan FacetGrid  secara langsung. Hal ini terjadi di balik layar dalam fungsi seperti relplot(), displot() atau catplot():

g = sns.FacetGrid(penguins)
Berkenalan Dengan Seaborn Python - Plot Face Grid
Berkenalan Dengan Seaborn Python - Plot Face Grid

Ketika menambahkan kolom, gambar tersebut akan menjadi lebih lebar, sehingga subplotnya akan memiliki ukuran dan bentuk yang sama:

g = sns.FacetGrid(penguins, col="sex")
Berkenalan Dengan Seaborn Python - Dua Kolom Face Grid
Berkenalan Dengan Seaborn Python - Dua Kolom Face Grid

Dan Anda dapat menyesuaikan ukuran dan bentuk setiap subplot tanpa memperhitungkan jumlah total baris dan kolom pada gambar:

g = sns.FacetGrid(penguins, col="sex", height=3.5, aspect=.75)
Berkenalan Dengan Seaborn Python - Dua kolom facegrid dengan ukuran custom
Berkenalan Dengan Seaborn Python - Dua kolom facegrid dengan ukuran custom

Hasilnya adalah Anda dapat menetapkan variabel faceting  tanpa berhenti memikirkan tentang bagaimana Anda perlu menyesuaikan ukuran gambar total. Kelemahannya adalah, ketika Anda ingin mengubah ukuran gambar, Anda perlu mengingat bahwa segala sesuatunya bekerja sedikit berbeda dari yang dilakukan oleh matplotlib.

 Kelebihan relatif dari fungsi figure-level

Keuntungan Kekurangan
Faceting mudah oleh variabel data Banyak parameter tidak ada dalam tanda tangan fungsi
Legenda di luar plot secara default Tidak boleh menjadi bagian dari gambar matplotlib yang lebih besar
Kustomisasi tingkat gambar yang mudah API berbeda dari matplotlib

Selain itu, fungsi figure-level memiliki beberapa kompleksitas tambahan yang dapat membuat hal-hal menjadi lebih membingungkan bagi pemula. Namun, dengan fitur-fitur yang berbeda, memberinya keunggulan tambahan. Dokumentasi resmi tutorial dari Seaborn, sebagian besar menggunakan fungsi figure-level, karena fungsi tersebut menghasilkan plot yang lebih bersih, dan direkomendasikan untuk digunakan pada aplikasi yang lebih besar lagi. Satu situasi di mana fungsi ini bukan pilihan yang baik adalah ketika Anda perlu membuat sesuatu yang kompleks dan mandiri untuk menyusun berbagai jenis plot yang berbeda. Pada titik ini, disarankan untuk menyiapkan gambar dengan menggunakan matplotlib secara langsung dan mengisi masing-masing komponen menggunakan fungsi axis-level.

Menggabungkan beberapa tampilan pada data

Dua fungsi pembuatan plot yang penting pada Seaborn tidak cocok dengan skema klasifikasi yang telah di bahas pada bagian sebelumnya. Fungsi-fungsi ini, jointplot() dan pairplot() , menggunakan berbagai jenis plot dari modul yang berbeda untuk merepresentasikan berbagai aspek kumpulan data dalam satu gambar. Kedua plot terserbut adalah fungsi figure-level dan membuat gambar dengan jumlah subplot yang banyak secara default. Namun keduanya menggunakan objek yang berbeda dalam mengelola gambar: JointGrid dan PairGrid.

jointplot() berfungsi untuk memplot hubungan atau distribusi gabungan dua variabel sambil menambahkan sumbu marginal yang menunjukkan distribusi univarian dari masing-masing variabel secara terpisah:

sns.jointplot(data=penguins, x="flipper_length_mm", y="bill_length_mm", hue="species")
Berkenalan Dengan Seaborn Python - Join plot
Berkenalan Dengan Seaborn Python - Join plot

Sama seperti hal nya pada pairplot() - Fungsi ini menggabungkan gambar gabungan dan marginal - Tidak hanya terfokus pada satu hubungan antar data, melainkan memvisualisasikan setiap kombinasi secara bersamaan.

sns.pairplot(data=penguins, hue="species")
Berkenalan Dengan Seaborn Python - Pair Plot
Berkenalan Dengan Seaborn Python - Pair Plot

Di belakang layar, fungsi ini menggunakan fungsi axes-level yang telah Anda temui pada scatterplot() dan kdeplot(). Fungsi ini pun memiliki parameter kind yang memungkinkan Anda dengan cepat menukarnya ke dalam representasi yang berbeda:

sns.jointplot(data=penguins, x="flipper_length_mm", y="bill_length_mm", hue="species", kind="hist")
Berkenalan Dengan Seaborn Python - Join plot 2
Berkenalan Dengan Seaborn Python - Join plot 2

Kesimpulan

Pada artikel ini Anda telah berkenalan dengan seaborn Python, yang merupakan salah satu library yang paling sering digunakan untuk visualisasi data menggunakan Python. Anda telah mengetahui beberapa fungsi dasar pada library ini. Namun, masih banyak yang akan kita bahas pada website ini mengenai Seaborn. Oleh karena itu, tetap datangi website ini untuk mendapatkan update terbaru dan tidak terlewatkan.

Referensi:

Seaborn
Matplotlib

Read More
Menggunakan Arduino Robotdyn Mega WiFi – Papan Sirkuit IoT Dengan 2 Fungsi Spesial

Pada artikel kali ini kita akan membahas bagaimana cara menggunakan Arduino Robotdyn Mega WiFi  yang dapat dikatakan special karena mengkombinasikan Arduino mega dengan ESP8266 dalam satu papan sirkuit. Papan ini dapat menggabungkan mikrokontroller ATmega2560 dengan chip keluaran Espressif yang memiliki 40MB memori.

Tentang Arduino Robotdyn Mega WiFi

Produk ini merupakan keluaran Robotdyn, yaitu perusahaan semi konduktor asal Rusia yang mengeluarkan produk-produk unik dan mempermudah developer dalam melakukan pekerjaannya. Selain versi Arduino Mega + ESP8266. Perusahaan ini pun mengeluarkan versi Uno+ESP8266 yang juga terintegrasi dalam satu papan sirkuit.

Minimnya dokumentasi

Hal yang sangat disayangkan dari sisi Robotdyn ialah minimnya dokumentasi mengenai cara menggunakan produk yang dikeluarkannya dalam bahasa Inggris. Sebagian besar dokumentasi di tulis dalam bahasa Rusia, begitupun komunitas yang paling aktif. Anda akan kesulitan mencarinya di internet mengenai bagaimana menggunakan perangkat ini dan troubleshooting yang perlu dilakukan ketika menghadapi masalah dalam mengerjakan projek yang sedang Anda jalankan.

Pengalaman yang saya hadapi sebelum dapat menggunakan perangkat ini dengan baik, yaitu memerlukan waktu lebih dari dua minggu hanya sekedar untuk memahami bagaimana produk ini bekerja. Selanjutnya membutuhkan waktu satu minggu tambahan sebelum perangkat ini dapat benar-benar digunakan sesuai dengan keinginan saya.

Anda tidak perlu khawatir karena pada artikel ini saya paparkan berdasarkan pengalaman yang saya lalui dari berbagai sumber melalui forum-forum di mana anggotanya menghadapi masalah yang sama dengan saya.

Review Menggunakan Arduino Robotdyn Mega WiFi

Secara umum, papan sirkuit ini adalah motherboard biasa, tidak jauh berbeda dari perangkat yang serupa, yang membedakannya yaitu chip ESP8266EX yang terintegrasi ke dalam papan sirkuit utama. Oleh karena itu, hal ini merupakan solusi yang spesial.

Selain itu, menarik untuk diperhatikan adalah tipe modul ESP-12 yang digunakan bukanlah tipe standard, melainkan seluruh “kabel” telah terhubung pada papan sirkuit itu sendiri. Papan ini pun dapat terhubung pada antenna eksternal dimana akan sangat berguna ketika Anda kesulitan untuk mendapatkan signal WiFi di suatu tempat tertentu.

Papan ini berisi header pin untuk menghubungkan kepada pin ESP8266 serta beberapa sakelar yang akan dibahas lebih detail pada artikel ini. Ide utama penggunaan papan ini adalah dalam penggunakan sakelar DIP Switch. Anda dapat mengkonfigurasi interaksi ketiga komponen yang terdapat pada papan sirkuit ini dengan cara berbeda, yaitu: chip Atmega2560, chip ESP8266EX, dan konverter CH340G USB-TTL.

Koneksi tunggal maupun kompleks memungkinkan kita untuk memiliki banyak pilihan dalam berinteraksi terhadap seluruh bagian papan sirkuit ini. Oleh karena itu, Anda akan dapat membuka peluang besar dalam membangun berbagai perangkat IoT dengan bantuan Arduino Robotdyn Mega Wifi.

Test Papan Sirkuit

Papan ini berdimensi sama seperti pada Arduino Mega aslinya. Kontroller ATmega2560 ada di sisi kanan sedangkan kontroller ESP8266 terletak pada sisi kiri. Di dekat kontroller WiFi terdapat konektor USB, yang telah di ganti dari sebelumnya Tipe-B menjadi Mikro-B. Interaksi antara konektor ini terhadap komponen papan sirkuit lainnya yaitu dengan menggunakan konverter USB-TTL CH340G dan 8-pin Saklar DIP. Foto tampak atas ditunjukkan gambar di bawah ini.

Menggunakan Arduino Robotdyn Mega WiFi
[Menggunakan Arduino Robotdyn Mega WiFi] - Papan Sirkuit

Oleh karena papan ini terintegrasi dan praktis, sehingga tidak ada ruang kosong di atasnya, di mana kabel bagian frekuensi tinggi dari ESP8266EX dibuat pada posisi yang sama, pada mulanya timbul pertanyaan mengenai apakah tidak akan terjadi masalah ketika dalam pengoperasiannya.

Setelah mencobanya secara langsung, semua berjalan stabil dan sesuai dengan apa yang diharapkan. Kita dapat menghubungkan papan Atmega2560 ke USB – untuk berkomunikasi dengan Arduino Mega, lalu menghubungkan ESP8266EX ke USB – untuk koneksi dengan ESP8266. Lalu yang terakhir kita beralih ke mode koneksi Atmega2560 dengan ESP8266EX serta berkomunikasi dengan serial sekaligus. Seluruhnya bekerja dengan sempurna seperti yang di jelaskan pada table dokumentasi yang mereka jelaskan.

Port USB DIP switch memiliki beberapa mode seperti yang dapat di lihat pada tabel di bawah ini:

[Menggunakan Arduino Robotdyn Mega WiFi]. Tabel DIP Switch
[Menggunakan Arduino Robotdyn Mega WiFi]. Tabel DIP Switch

Untuk memeriksa fungsi dari papan sirkuit ini, kita perlu melakukan pengecekan untuk setiap kontroller yang terdapat di dalam Arduino Robotdyn Mega WiFi, begitupun interaksi dari setiap kontrollernya.

Untuk mengecek nya kita memerlukan:

Dalam menggunakan Arduino Robotdyn Mega WiFi, pertama-tama, Anda perlu menginstal driver CH340. Untuk melakukan ini, Anda perlu menghubungkan papan sirkut ke komputer menggunakan kabel USB. Selanjutnya bukalah Device Manager, temukan perangkat USB tidak dikenal yang terhubung, lalu update driver.

[Menggunakan Arduino Robotdyn Mega WiFi]. Update Serial Driver
[Menggunakan Arduino Robotdyn Mega WiFi]. Update Serial Driver

Setelah menginstal driver, perangkat baru akan muncul dan dikenali sebagai USB-SERIAL CH340 (COMx). Anda perlu menemukan perangkat ini, lalu menentukan nomor port COM virtual yang terhubung dengan papan sirkuit tersebut, contohnya adalah COM4.

[Menggunakan Arduino Robotdyn Mega WiFi]. Lokasi COM Port
[Menggunakan Arduino Robotdyn Mega WiFi]. Lokasi COM Port

Langkah selanjutnya dalam mengkonfigurasikan Arduino IDE, Anda dapat mengikuti link ini cara konfigurasi Arduino IDE untuk ESP8266

Test Mega 2560

Untuk memeriksa fungsi dari microcontroller ATmega2560, Anda perlu mengikuti Langkah berikut ini.

  • Gunakan paper clip atau jarum untuk memposisikan DIP Switch seperti pada table di bawah ini:
[Menggunakan Arduino Robotdyn Mega WiFi]. DIP Switch Robotdyn Mega WiFi
  • Koneksikan papan sirkuit pada komputer/laptop Anda dengan menggunakan kabel USB
  • Jalankan program Arduino IDE
  • Pilihlah papan Arduino / Genuino Mega atau Mega 2560
[Menggunakan Arduino Robotdyn Mega WiFi]. Pilih Board Mega 2560
[Menggunakan Arduino Robotdyn Mega WiFi]. Pilih Board Mega 2560
  • Pilih COM Port sesuai dengan yang telah ditentukan pada Device Manager
  • Buka File TEST_MEGA yang telah Anda download sebelumnya.
  • Upload firmware pada microcontroller melalui Sketch -> Upload
  • Setelah selesai upload firmware, buka Serial Monitor melalui Tools -> Serial Monitor
  • Pada Serial Monitor Windows, pilih baud rate 115200
[Menggunakan Arduino Robotdyn Mega WiFi]. Tampilan Serial Monitor Mega 2560
  • Pada kolom untuk memasukkan command Serial Monitor, Anda dapat mengeksekusi perintah sesuai dengan yang tertulis pada layar. Sebagai contoh, jika Anda menulis huruf “a”, lalu klik send maka built-in LED pada akan berkedip selama 20 detik.
[Menggunakan Arduino Robotdyn Mega WiFi]. Blink Test Mega 2560
  • Selanjutnya Anda dapat mengirimkan perintah “b” untuk mendapatkan informasi mengenai SRAM dan EEPROM.
  • Untuk melihat status output dan hasil dalam bentuk tabel, Anda dapat memberi perintah  dengan huruf “c”.
[Menggunakan Arduino Robotdyn Mega WiFi]. Port Test Mega 2560
  • Pada tabel di atas, kecuali pin 0, 1 dan 13 harus memiliki status OK. Status FAIL pada pin 0,1 karena digunakan oleh serial port (UART), dan pada pin 13 adalah built-in LED.

Setelah pengecekan selesai, jangan lupa untuk mencabut kabel USB dari komputer Anda.

Test ESP 8266

Untuk memeriksa performa mikrokontroller ESP8266, Anda perlu melakukan langkah-langkah berikut ini:

  • Gunakan jarum untuk mensetup DIP Switch controller sesuai dengan tabel
[Menggunakan Arduino Robotdyn Mega WiFi] DIP Switch ESP8266
  • Koneksikan papan sirkuit Arduino Robotdyn Mega Wifi menggunakan kabel USB
  • Pada Arduino IDE, pilih board WeMos D1 R2 & mini
  • Setting mikrokontroller dapat di lihat pada gambar di bawah ini
Board Wemos D1 R1
  • Buka file TEST_ESP8266
  • Pada baris yang memerlukan nama SSID dan Password, sesuikanlah dengan jaringan yang Anda gunakan.
  • Upload firmware
  • Setelah proses upload selesai, cabut kabel USB
  • Lalu posisikan DIP Switch pada kondisi di bawah ini:
DIP Switch Serial ESP8266
  • Koneksikan kembali papan sirkuit menggunakan kabel USB
  • Gunakan Serial Monitor untuk melihat informasi pada kontroller. Di sini Anda akan mendapatkan informasi mengenai Chip Real Size (ukuran memory sebenarnya) dan Chip Flash Size.
    Selain itu Anda akan mendapatkan informasi mengenai IP Address yang di terima oleh kontroller, alamat ini akan diperlukan untuk test selanjutnya.
  • Setelah selesai pengecekan performa, maka cabutlah kembali kabel dari komputer Anda.
Serial Monitor ESP8266

Test ESP8266-Mega 2560

Untuk memerika interaksi antara ATMega 2560 dan ESP8266, Anda perlu mengikuti Langkah berikut ini:

  • Posisikan DIP Switch sesuai dengan table di bawah ini:
DIP Switch USB-Mega-ESP8266
  • Koneksikan papan sirkuit menggunakan kabel USB
  • Pada Arduino IDE, pilih board Arduino / Genuino Mega or Mega 2560.
  • Buka file TEST_MEGA-ESP
  • Upload firmware ke dalam kontroller
  • Setelah berhasil upload firmware pada kontroller, buka Serial Monitor.
  • Mikrocontroller Arduino Mega akan membaca pertukaran data dari port ESP8266, output tersebut akan terlihat pada Serial Monitor.
  • Buka web browser, lalu masukan IP Address yang dapat Anda lihat pada serial monitor.
ESP8266 Web Server
  • Pada web browser ini Anda dapat menyalakan dan mematikan lampu LED yang terintegrasi pada papan sirkuit Arduino Robotdyn Mega Wifi ini.
  • Setelah pengetesan selesai, maka Anda dapat melepaskan kabel USB dari komputer/laptop

Kesimpulan

Setelah membaca artikel ini Anda dapat menggunakan Arduino Robotdyn Mega WiFi dan mengetest fungsi serta performanya. Di sini Anda mengetahui bagaimana mode pemrogramannya berdasarkan kontroler yang ingin Anda gunakan berdasarkan fungsinya masing-masing.

Pada artikel selanjutnya akan membahas implementasi papan sirkuit ini untuk memonitor data yang di koleksi dari ATmega 2560, lalu di kirim ke ESP8266 yang pada akhirnya data tersebut disimpan pada server. Semoga artikel ini bermanfaat untuk Anda dan tetap berinovasi dan kreatif untuk membuat proyek-proyek IoT yang menarik.

Artikel Rekomendasi

Mengukur Temparature dan Kelembaban dengan Nodemcu

Membuat IoT dashboard dengan Grafana dan Raspberry Pi

Sistem Pengelolaan Sampah Berbasis IoT

Sumber

Download Arduino Sketch untuk pengetesan

Robotdyn

https://habr.com/en/post/402429/

Sysengineering.ru

Read More
Apa itu Nodemcu - Jenis Papan Sirkuit IoT 30 Pin yang Murah

Apa itu Nodemcu. Semenjak konsep smart city diperkenalkan, Internet of Things (IoT) menjadi salah satu infrastrukur utama untuk mendukungnya. Era di mana setiap objek yang dilengkapi oleh perangkat pintar dapat mengumpulkan data dan berkomunikasi melalui internet. Ada banyak produk papan sirkuit Internet of Things (IoT) mulai dari yang murah hingga mahal.

Pada artikel ini kita akan membahas apa itu nodemcu, papan sirkuit IoT yang murah dan bisa didapatkan dengan mudah. Selain itu perangkat yang akan di bahas ini dapat kita modifikasi dan di program sesuai dengan keinginan kita. Perangkat-perangkat ini sangat lazim digunakan bagi siapa saja yang baru memulai untuk mempelajari teknologi yang sedang trending ini. Oleh karena itu, mari kita bahas salah satu papan sirkuit IoT ini, yaitu NodeMCU.

Apa itu NodeMCU ?

Espressif System, perusahaan semi-konduktor asal Shanghai, mengeluarkan mikrokontroller yang berkemampuan wifi dengan berukuran mini, yaitu ESP8266 dengan harga yang sangat murah. Perangkat ini dapat memonitor dan mengontrol perangkat dari seluruh belahan dunia. Dengan demikian, ESP8266 ini sangat sempurna untuk segala macam proyek IoT.

ESP-12E Module

Contoh IoT papan sirkuit ini dilengkapi modul ESP-12E yang memiliki chip ESP8266 beroperasi pada frekuensi 80-160MHz dan dapat di atur serta mendukung RTOS (Realtime Operating System).

[Apa itu Nodemcu]. ESP 12 E Modul
[Apa itu Nodemcu]. ESP 12 E Modul

Nodemcu ini dilengkapi oleh 128kB RAM dan 4MB flash memory (untuk memprogram dan menyimpan data). Kapasitas tersebut cukup untuk menyimpan string yang banyak untuk kebutuhan halaman web, JSON/XML data, dan apapun yang dapat dikirimkan oleh perangkat IoT yang ada pada saat ini.

ESP8266 terintegrasi dengan 802.11b/g/n HT40 Wi-Fi transceiver, sehingga tidak hanya dapat tersambung ke jaringan WiFi dan berinteraksi dengan internet, namun dapat juga dijadikan sebagai penyedia jaringan di mana device lain dapat terkoneksi dengannya secara langsung.

Kebutuhan Power

ESP8266 memiliki tegangan operational antara 3 – 3.6V, papan ini dilengkapi oleh LDO (voltage regulator) yang membuatnya steady pada 3.3V. Perangkat ini dapat memberikan power supply hingga 600mA yang lebih dari cukup ketika ESP8266 menarik arus 80mA pada kondisi mentransmisikan RF. Output dari regulator ini diberi label 3V3 pada papan Nodemcu tersebut. Pin ini dapat mensuplai power pada komponen eksternal seperti sensor ataupun peripheral lainnya.

[Apa itu Nodemcu]. Power Nodemcu
[Apa itu Nodemcu]. Power Nodemcu

Sumber power untuk ESP8266 NodeMCU didapatkan melalui port Micro USB. Seperti yang telah kita ketahui bahwa power yang dihasilkan USB adalah 5V. Sehingga, jika kita membutuhkan sumber tegangan 5V untuk komponen external, kita dapat menggunakan pin VIN pada board NodeMCU ini.

Peripherals dan I/O

Nodemcu memiliki total 17 pin GPIO. Pin ini dapat digunakan untuk kebutuhan peripheral, termasuk:

  • ADC Channel. 10-bit ADC Channel
  • UART Interface. Digunakan untuk memasukkan code secara serial
  • PWM output. Pin PWM untuk dimming LED atau mengontrol motor
  • SPI dan I2C. Untuk menghubungkan seluruh sensor dan peripheral
  • I2S. Jika kita ingin menambahkan project yang menggunakan suara
[Apa itu Nodemcu]. Peripheral dan IO NodeMCU
[Apa itu Nodemcu]. Peripheral dan IO NodeMCU

ESP8266 memiliki fitur pin multiplexing. Artinya pada satu GPIO Pin dapat berfungsi sebagai PWM/UART/SPI.

Switch dan Indikator LED

Nodemcu memiliki dua tombol. Satu tombol di tandai dengan RST terletak pada pojok kiri atas yang berfungsi sebagai tombol reset. Tombol lainnya yaitu FLASH, yang berada pada bagian bawah kiri, berguna untuk tombol download ketika hendak meng-upgrade firmware.

[Apa itu Nodemcu]. Tombol dan indikator Nodemcu
[Apa itu Nodemcu]. Tombol dan indikator Nodemcu

Papan sirkuit ini memiliki indicator LED yang dapat di program oleh pengguna dan terkoneksi pada pin D0.

Komunikasi Serial

Papan sirkuit NodeMCU ini memiliki CP2102 USB-to-UART Bridge Controller dari Silicon Labs, yang berfungsi untuk mengkonversi signal dari USB ke serial, sehingga komputer yang kita gunakan dapat memprogram dan berkomunikasi dengan chip ESP8266.

[Apa itu Nodemcu].Komunikasi Serial Nodemcu
[Apa itu Nodemcu].Komunikasi Serial Nodemcu

ESP8266 NodeMCU Pin

ESP8266 NodeMCU ini memiliki total 30 pin yang dapat digunakan. Koneksi dari setiap pin tersebut dapat di lihat pada gambar di bawah ini:

[Apa itu Nodemcu].NodeMCU pin
[Apa itu Nodemcu].NodeMCU pin

Power Pin. Terdapat empat pin sumber power, satu VIN dan tiga pin 3.3V. VIN dapat digunakan secara langsung sebagai power supply ESP8266 dan peripheral, jika Anda memiliki sumber tegangan 5V yang stabil. Pin 3.3V adalah output dari papan sirkuit voltage regulator. Pin tersebut dapat digunakan untuk menyuplai power kepada komponen eksternal.

GND. Adalah pin ground dari papan sirkuit NodeMCU

I2C Pin. Digunakan untuk menyambungkan jenis sensor dan peripheral yang membutuhkan koneksi I2C pada project Anda. I2C ini dapat mensupport Maser dan Slave. Fungsi dari interface I2C dapat digunakan secara programatik dan memiliki frekuensi clock maksimum 100kHz. Perlu diperhatikan bahwa frekuensi clock pada I2C ini harus lebih tinggi dari frekuensi clock paling rendah dari perangkat slave.

GPIO Pin. ESP8266 NodeMCU memiliki 17 pin GPIO yang dapat digunakan untuk fungsi yang berbeda-beda seperti I2C, I2S, UART, PWM, IR Remote kontrol, LED dan tombol secara programmatic. Setiap digital GPIO dapat dikonfigurasikan untuk internal pull-up dan pull-down, atau di set pada impedansi tinggi. Ketika setup sebagai input, pin ini pun dapat di atur menjadi edge-trigger atau level-trigger untuk menginterupsi CPU.

Channel ADC. Nodemcu terembedded dengan 10-bit SAR ADC. Dengan demikian dapan digunakan menjadi dua fungsi ADC viz. Yaitu, untuk mengecek tegangan power supply pin VDD3P3 dan input voltage pada pin TOUT. Namun, fungsi tersebut tidak dapat di implementasikan secara bersamaan.

Pin UART. ESP8266 NodeMCU memiliki 2 interface UART, yaitu UART0 dan UART1 yang memiliki komunikasi asynchronous (RS232 dan RS485), dan dapat berkomunikasi hingga 4.5MBps. UART0(TXD0, RXD0, RST0 dan CTS0) dapat digunakan untuk berkomunikasi. Pin ini dapat mensupport fluid control. Namun, UARTX1 (pin TXD1) hanya memiliki fitur mentransmit signal, biasa digunakan untuk mencetak log.

SPI Pins. ESP8266 memiliki dua fitur SPI (SPI dan HSPI) pada mode slave dan master. Pin SPI ini dapat mensuppurt beberapa fitur umum, diantaranya:

  • 4 mode timing format SPI transfer
  • Clock hingga 80MHz
  • Up to 64-Byte FIFO

SDIO Pins. ESP8266 memiliki fitur Secure Digital Input/Output Interface (SDIO) yang digunakan secara langsung untuk interfacing SD Card. Pin ini mensupport 4-bit 25 MHz SDIO v1.1 dan 4-bit 50 MHz SDIO v2.0.

PWM Pins. Papan sirkuit ini memiliki 4 channel Pulse Width Modulation (PWM). Output PWM ini dapat di implementasikan secara programatik dan mengontrol motor digital serta LED. Frekuensi PWM berada pada rentang yang dapat di atur dari 100Hz hingga 1kHz.

Control Pin. Digunakan untuk mengontrol ESP8266. Pin ini memiliki Chip Enable pin (EN), Reset pin (RST) dan WAKE pin.

  • EN pin – ESP8266 chip akan aktif ketika pin EN di tarik HIGH, ketika di tarik LOW, chip tersebut bekerja pada power minimal.
  • RST pin – Digunakan untuk mereset ESP8266.
  • WAKE pin – Digunakan untuk membangunkan chip dari keadaan deep-sleep.

Platform Pengembangan ESP8266

Ada beberapa platform yang dapat digunakan untuk memprogram ESP8266. Anda dapat menggunakan Espruino atau Mongoose OS ataupun menggunakan SDK yang disarankan oleh Espressif pada list platform ini yang tertulis pada halaman Wikipedia.

Kabar baiknya, komunitas ESP8266 membuat addons sehingga dapat menggunakan Arduino IDE. Jika Anda baru memulai mencoba menggunakan perangkat ini, sangat di sarankan menggunakan platform tersebut. Anda dapat membacanya secara lengkap pada artikel cara setup ESP8266 pada Arduino IDE.

ESP8266 add-on untuk Arduino ini berdasarkan kerja keras Ivan Grokhotkov dan anggota komunitas ESP lainnya. Untuk melihatnya lebih detail apa itu nodemcu add-os, Anda dapat mengunjungi github repository ESP8266 Arduino.

Kesimpulan

Anda telah mengetahui garis besar mengenai papan sirkuit ESP8266 NodeMCU pada artikel ini yang berjudul “ Apa itu nodeMCU “. Secara prinsip Anda telah memahami cara kerja dan fungsi dari perangkat ini. Namun, itu saja belum cukup, Anda harus terus mengasah dengan mempraktekan cara penggunaanya secara langsung dengan proyek-proyek menarik menggunakan papan sirkuit tersebut dari pada hanya mengetahui apa itu nodemcu.

Anda dapat mengukuti beberapa contoh implementasi penggunaannya pada:

Mengukur temperature dan kelembaban dengan NodeMCU
Sistem Pengelolaan Sampah Berbasis IoT

Read More
4 Terbaik ! Rekomendasi Laptop Programming Machine Learning

Rekomendasi Laptop Programming Machine Learning. Data sudah menjadi komoditi yang laku untuk diperjual-belikan. Sangat perlu untuk ditahui bagaimana data dapat diproses karena dengan pemrosesan data inilah suatu data yang banyak dapat dijadikan sebagai pengetahuan yang bernilai tinggi. Salah satu pekerjaan yang terkait dengan pemrosesan data saat ini adalah developer pembelajaran mesin yang memiliki pengetahuan untuk menggunakan Machine Learning untuk mengidentifikasi pola tersembunyi dalam data dalam jumlah besar dan cara menggunakannya. Sebagai contoh, 70% dari pengguna Netflix memilih film berdasarkan rekomendasi algoritma machine learning aplikasi tersebut. Menurut Forbes, pasar machine learning dunia akan mengalami pertumbuhan tahunan sebesar 40 %. Machine Learning ini akan menjadi salah satu pasar paling menguntungkan di dunia IT.

Lalu apakah Anda sedang mencari laptop yang cocok untuk Machine Learning ? Anda pasti akan menyukai artikel kali ini, karena kami akan membahas model yang direkomendasikan oleh pakar kecerdasan buatan dan Machine Learning yang terkenal di industri ini.

Machine Learning melibatkan otomatisasi sistem komputer untuk mempelajari sejumlah besar data dan membuat keputusan berdasarkan analisis, semua proses tersebut tanpa adanya campur tangan manusia. Proses Machine Learning adalah bagian dari ArtificaI Intelegent, tetapi karena popularitasnya programnya sekarang menjadi Machine Learning identik dengan proses kecerdasan buatan.

Karena Anda akan memerlukan algoritma pembelajaran mesin yang berat untuk mempelajari data dalam jumlah besar, Anda memerlukan mesin yang canggih serta fitur yang beragam.

Spesifikasi Laptop Machine Learning mirip seperti yang terlihat di laptop gaming. Namun faktanya, setiap laptop Machine Learning dalam rekomendasi kami ini juga berfungsi ganda sebagai laptop yang handal untuk bermain game.

Selanjutnya kita akan bicara Hardware dan Software sebelum memilih Laptop

Untuk kebutuhan pengembangan Machine Learning di sarankan sekali menggunakan personal komputer atau Laptop dengan spesifikasi 64 bit untuk kebutuhan produktif. Dan dianjurkan sekurang-kurangnya menggunakan komputer dengan spesifikasi :

Intel i5 CPU (3.0+ GHz) — 64bit , RAM : 4+ GB DDR4 , Hardisk : 1TB, Ethernet card, Optional : SSD (solid state disk) dan Nvidia GPU Card

Untuk Software OS sendiri bisa dipilih sesuai selera masing masing, bisa pakai Windows, Linux atau Mac. Atau kami sarankan menggunakan OS berbasis Linux seperti Ubuntu. Selain lebih ringan juga Opensource.

Rekomendasi Laptop Programming Machine Learning:

1. Asus ROG Strix SCAR G732LXS

 Laptop ini memiliki tampilan 300Hz-nya yang super cepat. Meskipun sebenarnya tampilan 144Hz saja sudah cukup untuk pengolahan data, namun ini menjadi nilai tambah tersendiri bagi laptop seharga 70 jutaan ini.

Laptop Asus biasanya identik dengan gaya, desain elegan dan kualitas pabrikan yang baik. Hal yang sama berlaku untuk ASUS ROG Strix SCAR G732LXS. Untuk laptop seukurannya bodinya termasuk ringkas. Hasilnya laptop ini tidak hanya cocok bagi kegiatan Machine Learning saja, tapi juga bagi para pekerja kreatif dan pengguna profesional yang lain.

[Rekomendasi Laptop untuk Programming Machine Learning]. Asus ROG Strix SCAR G732LXS
[Rekomendasi Laptop untuk Programming Machine Learning]. Asus ROG Strix SCAR G732LXS

Keunggulan lain dari laptop ini adalah daya tahan baterainya juga cukup baik. Dalam uji laboratorium WLAN yang dilakukan oleh Notebookcheck, baterai ASUS ROG Strix SCAR G732LXS dapat digunakan selama kurang lebih 6 jam.

Untuk meningkatkan performa, ASUS ROG Strix SCAR G732LXS dielu-elukan sebagai salah satu laptop tercepat di tahun 2020. Kombinasi prosesor yang kuat, grafik, dan memori yang besar membuat kinerja pemrosesan data menjadi sangat baik. Tentu saja, bahkan untuk konten 3D, performanya bagus untuk pembuat konten. Inilah urutan pertama berdasarkan penulis untuk rekomendasi laptop programming machine learning.

2. Acer Predator Helios PH717

Laptop dengan layar besar dengan refresh rate 144Hz sudah sangat cocok untuk laptop pengolah data. Layarnya juga memberikan kecerahan maksimal, jadi kejernihan di luar ruangan lebih tinggi. Layarnya juga mendukung fungsi G-sync untuk pengalaman rendering bebas stuttering.

Dari segi performa, Acer Predator Helios PH717 ditenagai prosesor Intel Core generasi ke-10 terbaru yang disebutkan memiliki peningkatan 8% dari processor generasi sebelumnya danan meningkat hingga 11,88% dengan menggunakan Predator Sense.

[Rekomendasi Laptop untuk Programming Machine Learning]. Acer Predator Helios PH717
[Rekomendasi Laptop untuk Programming Machine Learning]. Acer Predator Helios PH717

Fungsi Hyperdrift pada keyboard laptop memungkinkan pengguna untuk dengan mudah meningkatkan kinerja dan aliran udara. Seperti yang dikatakan Acer, dengan menggunakan kipas Aeroblade 3D generasi keempat, aliran udara telah meningkat lebih dari 45% - kinerja notebook ini bisa lebih stabil dan umurnya lebih lama.

Secara desain, Acer Predator Helios PH717 ini cocok bagi para pekerja profesional maupun rumahan. Namun, karena bodinya yang tidak praktis, laptop ini sangat tidak bersahabat dengan pembuat konten, walaupun menjadi salah satu rekomendasi laptop programming machine learning.

3. MSI GS66 Stealth 10SGS-251ID

MSI GS66 Stealth 10SGS-251ID adalah rekomendasi laptop programming machine learning lain dengan portabilitas yang sangat baik, tebal kurang dari 2 cm dan berat sekitar 2,1 kg. Dengan prosesor dan grafis yang bertenaga, laptop ini tidak hanya memiliki performa gaming yang hebat, tapi juga handal untuk menunjang produktivitas hingga Machine Learning.

Salah satu fitur andalan MSI GS66 Stealth 10SGS-251ID adalah bilah kipas Cooler Boost Trinity + terbaru dan eksklusif setipis 0.1mm. Ini membantu memaksimalkan aliran udara, sehingga membuka potensi penuh laptop ini. Aliran udara yang baik juga membantu mempertahankan kinerja jangka panjang.

[Rekomendasi Laptop Programming Machine Learning]. MSI GS66 Stealth 10SGS-251ID

MSI GS66 Stealth 10SGS-251ID juga memiliki tampilan cepat 300Hz, yang dapat mencapai pengalaman bermain game yang cepat, mulus, dan mulus. Tepi layarnya juga sangat tipis sehingga terlihat elegan dan stylish. MSI juga menyebutkan bahwa untuk gambar yang terlihat nyata di layar, kekuatan warna layar mendekati 100% sRGB.

Dari segi desain, laptop ini dibuat agar bisa digunakan di berbagai karakter penggunanya. Hal tersebut terlihat pada casing metal berwarna hitam dan kokoh dengan permukaan matte, sehingga ideal untuk penggunaan sehari-hari.

4. MSI GT75-9SG Titan

Bagi yang ingin lebih puas merasakan pengolahan data dan Machine Learning secara cepat tanpa lag, MSI GT75-9SG Titan i9-9980HK bisa menjadi rekomendasi laptop programming machine learning yang tepat.

Karena komputer notebook ini menampilkan layar IPS UHD 17,3 inci yang jernih dan cerah, serta memberikan fleksibilitas yang lebih besar dalam bermain dan meningkatkan efisiensi kerja.

Selain layarnya yang besar, laptop ini juga dibekali dengan kapasitas RAM yang lebih besar. 90 juta model memiliki RAM 64 GB dan masih dapat ditingkatkan menjadi 128 GB.

Menggabungkan kinerja yang kuat dari prosesor Core i9 dan kartu grafis Nvidia RTX, laptop ini dapat menangani tugas yang sulit dengan baik.

[Rekomendasi Laptop Programming Machine Learning]. MSI GT75-9SG Titan

Kemampuan lain yang diunggulkan dari laptop ini adalah keyboard mekanis yang hebat dan nyaman. Dengan pengaturan yang sangat bagus, keyboardnya dinilai mampu meningkatkan kemampuan mengetik pengguna karena tombol-tombolnya tidak hanya nyaman, tapi juga elastis, kuat dan cepat.

Dibalik bodinya yang tebal dan berat ada banyak fitur-fitur unggulan untuk pengalaman Machine Learning yang mengesankan. Bebarapa diantaranya adalah empat speaker yang diposisikan di sudut  depan laptop. Subwoofer yang dipasang di bagian bawah speaker tersebut mampu mengeluarkan gelombang audio yang kaya, jernih, dan keras, membuatnya salah satu yang paling unggul di kelasnya yang tidak akan membuat Anda bosan dalam mengolah data.

Beberapa fitur unggulan lain yang ditawarkan MSI GT75-9SG Titan i9-9980HK adalah sepasang kipas ganda dengan belasan heat pipe yang efektif mengurangi panas.

Kesimpulan

Artikel Rekomendasi Laptop Programming Machine Learning ini memberikan gambaran laptop yang super power untuk melakukan proses machine learning. Namun, jika di lihat dari harga nya yang begitu mahal membuat kita jadi mengurungkan niat untuk membelinya. Terlebih jika Anda adalah seorang pelajar.

Anda tidak perlu khawatir, karena ada solusi lain yang dapat menggantikan laptop tersebut untuk prosese training data pada pembuatan model machine learning. Anda dapat membaca artikel di bawah ini untuk memanfaatkan google cloud untuk proses training dengan gratis (berkekuatan VGA NVidia Tesla K80):
Memanfaatkan NVidia Tesla K80 dari Google untuk training data machine learning
Setup Laptop/Komputer untuk environment machine learning

Video Tutorial:
Auftechnique Youtube Channel

Read More
Contoh Aplikasi Python yang Digunakan 10 Perusahaan Terkenal

Contoh Aplikasi Python. Bahasa pemrograman Python pertama kali dirilis oleh Guido Van Rossum pada tahun 1991 dan masih digunakan hingga saat ini, menjadikannya salah satu bahasa pemrograman yang dapat bertahan selama lebih dari 30 tahun tanpa kekurangan peminat. Di sisi lain, pengguna Python telah membludak dalam beberapa tahun terakhir. Saat ini terdapat lebih dari 500 bahasa pemrograman yang sedang dikembangkan dan terus bertambah, tetapi faktanya sebagian besar bahasa ini jarang dikenal atau digunakan di luar lingkungan akademis.

Contoh Aplikasi Python

Saat ini, Python adalah salah satu bahasa yang digunakan di lingkungan akademis, dan mungkin tidak digunakan di Indonesia, tetapi banyak sekolah atau perguruan tinggi di seluruh dunia yang menggunakan Python untuk memperkenalkan pemrograman komputer karena dianggap sebagai bahasa yang ramah pemula.

Mengatakan Pyhon sebagai bahasa untuk mengajarkan pemrograman atau untuk pemula saja adalah kekeliruan, karena banyak perusahaan dunia yang namanya (mungkin) sudah anda kenal ternyata menggunakan Python, dan berikut adalah aplikasi yang dibuat dengan menggunakan Python.

Google

Dari awal berdiri, Google sudah menggunakan Python, bahkan Python merupakan salah satu bahasa pemrograman yang penting bagi Google, itulah mengapa Google pernah merekrut kreator Python Guido Van Rossum untuk bekerja di Google.

[Contoh aplikasi Python]  Google
[Contoh aplikasi Python] Google

Kutipan pendiri Google "Python dapat dicapai, C ++ harus dicapai", yang berarti jika Anda ingin mengontrol memori dan latensi rendah, gunakan C ++, dan selebihnya gunakan Python sebanyak mungkin, bahkan di Perl atau Bash, Nanti script tersebut akan diubah lagi menjadi Python karena kemudahan perawatannya.

Saat ini Python adalah salah satu bahasa pemrograman sisi server resmi Google. Selain Pyhton, Google juga menggunakan C ++, Java, dan Go.

Spotify

Penyedia layanan musik streaming terbesar di dunia dengan hampir 75 juta pelanggan, Spotify. Spotify memanfaatkan Python untuk analisis data dan backend. Di backend Spotify, ada banyak layanan yang berkomunikasi melalui ZeroMQ, yang merupakan framework dan library open source untuk jaringan.

Spotify dibuat menggunakan Python dan C++. Alasan Spotify dibuat menggunakan Python dikarenakan Spotify sangat menyukai kecepatan perkembangan jaringan dari Python.

Sistem rekomendasi Spotify mengandalkan sejumlah besar analisis data untuk menjelaskan analisisnya, dan Spotify menggunakan Luigi (modul Python yang disinkronkan dengan Hadoop). Modul open source ini menangani satu library dan bekerja dengan library lain, dan dengan cepat menangani error-log.

Happy Fresh

Happy Fresh menjamin bahan makanan dikirim dari toko yang Anda pilih dalam waktu satu jam saja. Dengan lebih dari 500.000 pengguna di Indonesia Happy Fresh dengan cepat menjadi salah satu aplikasi pengiriman bahan makanan paling populer bagi millenial.

Menurut  tim teknik Happy Fresh dalam kasus perkiraan permintaan, tim Happy Fresh memiliki kode Python yang melakukan perkiraan, membaca semua data, dan menentukan pembelian yang berulang untuk Minggu depan dan transaksi selanjutnya.

Netflix

Salah satu kegunaan utama Python di aplikasi Netflix adalah Central Alert Gateway Aplikasi RESTful ini akan mengubah rute peringatan dan mengirimkannya ke grup atau individu yang memiliki izin untuk melihat peringatan. Selain itu, aplikasi secara otomatis akan merestart atau menghentikan proses yang dianggap bermasalah. Selain C.A.G, Python juga digunakan dalam aplikasi untuk menelusuri riwayat dan mengubah pengaturan keamanan.

Instagram

Seperti kita ketahui bersama, Instagram telah merevolusi komunikasi visual dan pemasaran digital melalui media foto yang merupakan contoh aplikasi Python. Ada 400 juta pengguna aktif setiap hari, yang tentunya menghilangkan persepsi bahwa aplikasi python tidak terlalu scalable. Insinyur Instagram Hui Ding mengatakan bahwa moto pengembang aplikasi di Instagram adalah "lakukan hal-hal sederhana dulu", yang dapat dilakukan menggunakan Python, karena pengembangan aplikasi Python di Instagram sangat ramah pengguna, sederhana, dan rapi. Selain itu, karena Python sangat populer, tidak sulit mencari developer baru untuk memperluas tim.

Pinterest

Pinterest termasuk salah satu layanan contoh aplikasi Python yang wajib diikuti. Diluncurkan pada di tahun 2010, Pinterest merupakan jejaring sosial yang menawarkan konsep unik dan berbeda dari layanan serupa lainnya. Di Pinterest, pengguna bisa dengan leluasa mengumpulkan dan membagikan foto tanpa diganggu oleh berbagai batasan yang membatasi. Foto yang dibagikan tidak terbatas pada foto yang Anda unggah, tetapi juga menyertakan foto pengguna lain dan situs web tertentu.

Menurut Paul Sciarra selaku Co-Founder Pinterest, mereka menggunakan Python dan Django yang dimodifikasi besar-besaran untuk landasan aplikasinya.

Dropbox

Dropbox pertama kali diluncurkan pada September 2008. Python memainkan peran penting di Dropbox, dan Dropbox adalah aplikasi komputer dan server yang ditulis dalam bahasa pemrograman ini. Menurut Drew Houston, salah satu pendiri Dropbox, Python dipilih karena kesederhanaan, fleksibilitas, dan penampilannya.

Gojek dan Grab

Gojek dan Grab  merupakan layanan berbagi tumpangan yang saat ini begitu ramai digunakan masyarakat Indonesia. Kedua aplikasi ojek online ini bahkan menjadi penguasa pasar layanan pesan antar makanan dan daily needs di Asia Tenggara.

[Contoh aplikasi Python] Grab dan Gojek
[Contoh aplikasi Python] Grab dan Gojek

Menurut programer dari Gojek, aplikasi mereka dibuat dengan bahasa pemrograman Python, . Mereka menggunakan Python untuk semua fitur di dalam aplikasinya. Bahasa pemrograman ini juga mendukung sebagian besar layanan yang berjalan di Gojek dan Grab saat ini.

Reddit

Reddit adalah platform komunitas yang memiliki cakupan forum terluas di dunia yang merupakan salah satu contoh aplikasi Python. Secara umum reddit adalah situs hiburan, karena setiap anggota dapat berpartisipasi dalam memberikan teks atau tautan, maka dapat memberikan banyak informasi.

Pada dasarnya, Reddit adalah platform yang mengandalkan komunitas online. Dengan mengizinkan mereka untuk memposting tautan dan informasi mereka sendiri, ini dapat menentukan apa yang layak diberitakan dan apa yang tidak layak diberitakan. Pengguna situs kemudian akan bertanggung jawab untuk memilih (naik atau turun) pada posting ini untuk menentukan informasi terbaik.

[Contoh Aplikasi Python] Reddit

Menurut Reddit co-founder Steve Huffman dan Alexis Ohanian mengatakan bahwa Reddit masih tetap menggunakan Python sebagi bahasa pemrograman karena banyaknya referensi. Dan tidak itu saja, Reddit menggunakan Python karena bahasa pemrograman yang mudah dibaca dan mudah diubah.

Face Filter

Face Filter merupakan contoh aplikasi Python spesial-efek yang awalnya digunakan untuk filter beberapa aplikasi Face Swap, namun saat ini Face Filter banyak ditemukan di berbagai macam aplikasi seperti Instagram, Tiktok, Snapchat dan lain sebagainya.

Seiring berkembangnya teknologi Face Filter, developer meyakini bahwa Face Filter merupakan masa depan bagi efek visual dan mulai menjadi fitur wajib yang harus ada.

Karena konstruksi awal Face Filter dibuat menggunakan C dan C ++, akan lebih mudah untuk mengintegrasikan Python. Hingga saat ini Face Filter tetap menggunakan Python karena selalu dapat menghadirkan solusi terbaik untuk kebutuhan developer.

Seperti yang sudah kita ketahui, Python memang banyak digunakan oleh para akademisi dan perusahaan startup karena kesederhanaan Python  dan mudah dipahami bagi programmer pemula.

Kesimpulan

Pada artikel ini Anda telah mengetahui contoh aplikasi Python yang di gunakan pada perusahaan-perusahaan terkenal di seluruh dunia. Oleh karena itu, tidak menutup kemungkinan jika Anda menguasai Python dengan sempurna, akan mampu untuk membuat aplikasi-aplikasi yang mutakhir lainnya.

Rekomendasi artikel untuk memperdalam Python:

Dasar Pemrograman Python
Pemrograman Berorientasi Objek Pada Python

Video Tutorial Python:
Auftechnique Youtube Channel

Read More
Belajar Machine Learning Dengan Mudah Menggunakan Python

[Belajar Machine Learning] Setelah beberapa tahun naik turun, kecerdasan buatan dan Machine Learning saat ini kembali ke masa jayanya. Kecerdasan Buatan kembali digandrungi, dimana penerapannya dilakukan secara masal pada aplikasi-aplikasi bisnis dan sosial media jaman sekarang seperti Facebook, Twitter, Google, Amazon, dan bahkan berbagai aplikasi besar dari Indonesia seperti Go-jek, Tokopedia, dan sebagainya.

Machine Learning merupakan salah satu cabang dari ilmu Kecerdasan Buatan, khususnya ilmu yang mempelajari tentang bagaimana komputer mampu belajar dari data untuk meningkatkan kecerdasan buatannya.

Machine learning memiliki tujuan pada pengembangan sebuah sistem yang mampu belajar secara mandiri untuk memutuskan sesuatu keputusan, tanpa harus berulang kali diprogram oleh manusia. Dengan menggunakan metode ini, mesin tidak hanya dapat menemukan aturan untuk perilaku terbaik dalam pengambilan keputusan, tetapi juga beradaptasi dengan perubahan yang terjadi.

Kelebihan Python untuk Belajar Machine Learning

Mengapa menggunakan Python? Saat ini Python adalah salah satu bahasa pemrograman yang paling banyak digunakan dalam bidang Data Science dan Machine Learning.

Python adalah bahasa antarmuka yang populer dan kuat. Python adalah bahasa dengan fungsi lengkap dan platform yang dapat digunakan untuk meneliti dan membangun sistem produksi. Ada banyak modul dan pustaka yang dapat digunakan untuk mengimplementasikan pembelajaran mesin dengan Python.

Jadi apa saja kelebihan Python dalam pembelajaran mesin pembelajaran

Mudah Dipelajari

Python menyediakan kode yang pendek dan mudah dibaca. Meskipun algoritme kompleks dan alur kerja fleksibel adalah kekuatan sebenarnya dari Machine Learning dan AI, kesederhanaan Python memungkinkan pengembang dan Data Scientist untuk menulis sistem tepercaya. Ilmu data dapat fokus pada pemecahan masalah Machine Learning daripada berfokus pada perbedaan teknis dalam bahasa pemrograman. Selain itu, Python menarik banyak orang karena mudah dipelajari. Kode Python mudah dipahami manusia, yang membuat pemodelan Machine Learning menjadi sangat mudah.

Keberagaman Library yang Tinggi dan Berbagai Macam

Menerapkan algoritme pembelajaran mesin biasanya merupakan proses yang kompleks dan memakan waktu. Anda harus memiliki lingkungan digital yang terstruktur dengan baik dan teruji untuk memungkinkan data scientist memberikan solusi pengkodean terbaik. Untuk mempersingkat waktu Data Scientist, pemrogram telah memilih banyak kerangka kerja dan pustaka Python. Python memiliki banyak Library yang tersedia, memungkinkan ilmuwan atau pengembang data untuk memecahkan masalah yang sangat kompleks dalam hitungan menit atau bahkan detik.

Contoh Library yang disertakan dalam Python adalah sebagai berikut:

  • Pembelajaran Keras, TensorFlow, dan Scikit untuk pembelajaran mesin
  • NLTK dan spaCy untuk NLP (Pemrosesan Bahasa Alami)
  • SciPy untuk komputasi tingkat lanjut
  • NumPy untuk analisis data berkinerja tinggi dan komputerisasi science
  • OpenCV untuk computer vision
  • Analisis data manipulatif Panda
  • Seaborn dan Matplotloib untuk visualisasi data

Ada banyak bahasa pemrograman yang mendukung pustaka pembelajaran mesin, tidak hanya Python (seperti Julia dan R), tetapi Python adalah salah satu bahasa pemrograman favorit yang dipilih oleh peneliti dan praktisi untuk mengimplementasikan pembelajaran mesin.

Langkah-Langkah Machine Learning

Untuk memulai proyek pembelajaran mesin, Anda harus memahami langkah-langkah berikut

Mendefinisikan suatu masalah

Machine Learning harus mampu mendeteksi dan memilah masalah yang ada di dalam programnya. Termasuk pengumpulan data. Data asli dapat berupa Excel, MS Access, file teks, dan lain sebagainya. Langkah ini membentuk dasar untuk pembelajaran di masa depan. Semakin besar keragaman, kepadatan, dan kuantitas data yang relevan, semakin baik prospek pembelajaran mesin.

Menyiapkan Data

Setiap proses analisis akan berkembang dengan kualitas data yang digunakan. Kita perlu meluangkan waktu untuk menentukan kualitas data, lalu mengambil langkah untuk menyelesaikan masalah seperti kehilangan data.

Setiap project pengenalan machine learning atau papun itu yang berkaitan tentang kecerdasan buatan, memiliki beberapa tahap yang identik. Dan dalam banyak kasus, menurut tutorial, hasilnya akan sangat bagus saat memulai dan mengikuti tutorial ( dengan kumpulan data sudah disediakan). Namun, saat menggunakan proses dan algoritme yang sama untuk memulai dengan data yang Anda miliki, hasilnya akan sangat berbeda.

[Belajar Machine Learning] Ilustrasi Persiapan Data
[Belajar Machine Learning] Ilustrasi Persiapan Data

Data yang banyak tentu baik, akan tetapi jika dalam data yang banyak tersebut terdapat kesalahan hal tersebut tentu sangat mempengaruhi hasil yang ada.

Akhirnya, dalam proyek berbasis kecerdasan buatan, persiapan data yang matang dan dapat digunakan adalah yang paling penting dan memakan waktu.

Menganalisis Algoritma

Langkah ini melibatkan pemilihan algoritma dan representasi data yang sesuai dalam bentuk model.

Data yang disiapkan dibagi menjadi dua bagian : pelatihan dan pengujian. Bagian pertama (data pelatihan) digunakan untuk pengembangan model. Bagian kedua (data uji) digunakan sebagai referensi.

Di Python, semua pemrosesan data dilakukan dengan angka. Oleh karena itu, jika kita melihat isi dari digit.images, maka akan dihasilkan matriks digital, yang diperoleh dari sekumpulan citra yang akan diolah atau berupa citra tunggal, dan fitur atau variabel telah diproses ke dalam matriks angka.

[Belajar Machine Learning] Ilustrasi Mengecek Algoritma
[Belajar Machine Learning] Ilustrasi Mengecek Algoritma

 Tidak hanya gambar, jika Anda ingin menggunakan python untuk mengolah data, semua data yang tidak terstruktur, terstruktur, dan semi-terstruktur akan diekstrak terlebih dahulu sebagai matriks digital. Baik berupa File suara, video dan teks.

Karena kita menggunakan metode yang supervised untuk pemodelan, pertama-tama kita harus memisahkan dataset antara matriks input atau fitur (X) dan output atau label target (Y). Sesuai dengan persyaratan metode yang diawasi, model Machine Learning dilatih untuk mengenali sebuah tanda atau label.

Mengupdate dan Evaluasi Hasil

Untuk menguji keakuratan digunakan bagian kedua dari data (data uji). Langkah ini menentukan keakuratan algoritma yang di seleksi berdasarkan hasil pengujian. Pengujian yang lebih baik untuk memeriksa keakuratan model adalah dengan melihat kinerja data yang tidak digunakan sama sekali selama proses pembuatan model.

Operator Apply Mode atau pembaruan hasil digunakan untuk menerapkan model yang telah dilatih sebelumnya menggunakan data training pada unlabeled data (data uji). Tujuannya adalah untuk mendapatkan prediksi atas data tidak berlabel yang belum memiliki label (data uji). Yang perlu diperhatikan adalah bahwa data pengujian harus memiliki atribut sequence (urutan), type (tipe), dan role (fungsi) yang sama dengan data training.

Menampilkan Peningkatan kinerja

Langkah ini mungkin melibatkan pemilihan model lain atau memperkenalkan lebih banyak variabel untuk meningkatkan efisiensi. Inilah mengapa dibutuhkan banyak waktu untuk pendataan dan penyiapan data.

[Belajar Machine Learning] Pendeteksi Objek
[Belajar Machine Learning] Pendeteksi Objek

Sederhana bukan? Ikuti saja langkah-langkah operator untuk memasuki ruang kerja Python. Anda perlu memahami masing-masing fungsi operator dan parameternya, dan tentunya teori Machine Learning, karena ini akan sangat berguna ketika Anda mulai membangun proses Anda sendiri untuk menghasilkan model yang baik. Ingat, Pyhton hanyalah sebuah aplikasi, jika ingin menguasi machine learning Anda harus belajar tentang teorinya. Semakin banyak Anda belajar dan mencoba, semakin cepat Anda akan menguasainya.

Contoh gambar di atas adalah hasil dari algoritma machine learning untuk mendeteksi objek dari model yang telah di training sebelumnya. Ada banyak sekali model yang dapat digunakan untuk aplikasi tersebut. Sehingga diperlukan optimasi model agar sesuai dengan hardware yang digunakan dan juga kualitas atau kecepatan pendeteksian pada objek tertentu.

Nah, itulah tadi belajar Machine Learning Menggunakan Python beserta keunggulan dan tahapan-tahapan yang perlu Anda lakukan.

Kesimpulan

Anda telah mengetahui secara umum untuk belajar machine learning dengan menggunakan Python. Banyak sekali keunggulan menggunakan bahasa ini dalam hal kecerdasan buatan. Oleh karena itu tidak ada ruginya untuk memulai dari sekarang untuk memahaminya. Karena masa depan peran machine learning akan sangat krusial di dalam segala aspek kehidupan kita.

Artikel terkait mengenai belajar machine learning:
Apa itu Tensorflow?
Cara Training Data Untuk Model Pendeteksian Objek
Memanfaatkan Google Colab Untuk Training Model Machine Learning
Cara Menggunakan Jupyter Notebook

Video Tutorial Mengenai Python dan IoT:
Auftechnique Youtube Channel

Read More
Sejarah Python | Bahasa Pemrograman Mudah

Sejarah Python. Python adalah bahasa interpreter, interpreter disini apabila dibandingkan dengan Compiler, Python akan memproses kode program baris demi baris. Oleh karena itu metode yang digunakan sama dengan PHP, PERL dan metode lainnya. Python juga merupakan bahasa pemrograman tingkat tinggi atau bahasa tingkat tinggi, yang berarti instruksi dalam Python sangat mirip dengan bahasa manusia.

Python adalah bahasa pemrograman luwes yang mendukung pemrograman berfokus pada objek. Python telah memperoleh beberapa lisensi berbeda dari berbagai versi. Namun pada prinsipnya bahkan untuk tujuan komersial sekalipun, Python bisa didapatkan dan digunakan secara gratis. Karena menurut definisi open source atau General Public License (GPL), lisensi Python tidak akan bertentangan.

Sejarah Python

Python dikembangkan oleh Guido VR di CWI di Belanda pada tahun 90-an dan merupakan kelanjutan dari bahasa pemrograman ABC. Versi terbaru yang dirilis oleh CWI adalah 1.2. Pada tahun 1995, Guido pindah ke CNRI sambil terus mengembangkan Python. Versi terbaru yang dirilis adalah 1.6. Pada tahun 2000, pengembang inti Guido dan Python pindah ke BeOpen.com, sebuah perusahaan komersial, dan mendirikan BeOpen PythonLabs. Python 2.0 dirilis oleh BeOpen.

sejarah python
Sejarah Python (Illustrasi)

Setelah Python versi kedua dirilis, Guido dan beberapa anggota tim PythonLabs berubah menjadi DigitalCreations. Pada kala itu sekelompok programmer yang bekerja bersama dengan Guido dan Python S.F terus menguji cobakan Python. Python S.F (Python Software Foundation)  merupakan organisasi nirlaba yang telah ditetapkan sebagai pemilik kekayaan intelektual Python sejak versi 2.1, sehingga dapat mencegah Python dimiliki oleh perusahaan komersial. Saat ini rilis Python sudah mencapai versi 2.7.13 dan versi 3.9.0.

Karena kecintaan Guido pada Flying Circus dari acara TV Monty Python, Guido memilih Python sebagai nama programnya.

Mengapa Harus Menggunakan Python?

Perbedaan antara Python dengan bahasa pemrograman lainnya terletak pada aturan penulisan kode program. Bahasa Python juga mendukung hampir semua sistem operasi, bahkan untuk sistem operasi Unix pun Python sudah disematkan di hampir semua produknya. Dengan menggunakan kode yang sederhana dan mudah, programmer dapat mengutamakan pengembangan aplikasi yang sedang dikembangkan. Selain itu, Python adalah produk multi platform dan open source.

Fitur yang dimiliki Python

Selain sejarah Python yang menarik untuk di ketahui. Di bawah ini merupakan beberapa fitur yang dimiliki oleh bahasa pemrograman Python, diantaranya:

  • Keberadaan library yang cukup banyak; dalam distribusi Python, modul dari library siap pakai untuk berbagai keperluan disediakan
  • Tata bahasa yang mudah dipelajari dan jelas.
  • Python memiliki aturan tata letak kode sumber yang dapat dengan mudah memeriksa, membaca kembali dan menulis ulang kode sumber. Befokus pada objek.
  • Memiliki sistem manajemen memori otomatis modular (pengumpulan sampah file, seperti Java), yang dapat dengan mudah dikembangkan dengan membuat modul baru. Dan modul ini dapat dibuat dengan Python atau C atau C ++.
  • Dengan fungsi pengumpulan sampah otomatis, sama seperti bahasa pemrograman Java, Python memiliki fungsi untuk mengontrol penggunaan memori komputer, jadi programmer tidak perlu mengatur memori komputer secara langsung.

Meskipun Pyhton memiliki banyak fitur, pastinya memiliki Pro dan Kontra

Pro dan Kontra Python

Sama seperti bahasa pemrograman lainnya, Python merupakan bahasa yang tentunya semakin sedikit dalam penerapannya. Sejauh ini diketahui bahwa Python memiliki keunggulan dalam kemudahan penggunaan dan kesederhanaan bahasanya, sehingga para pemula tidak akan menemui kesulitan besar saat mempelajarinya.

Seperti dari sejarah Python yang kita semua ketahui, Python dapat menjalankan program yang kompleks dengan sintaks dan semantik sederhana. Oleh karena itu, dalam melakukannya, programmer tidak perlu berurusan dengan data dan kode yang kompleks. Ini juga disesuaikan dengan jumlah bahasa yang perlu diterapkan. Python memungkinkan lebih sedikit bahasa untuk menjalankan program yang kompleks. Terakhir, sistem bahasa pemrograman dengan fungsi manajemen memori otomatis mendukung Python.

[Sejarah Python] Pro dan Kontra Python
[Sejarah Python] Pro dan Kontra Python

Kontra dari Python adalah keterbatasan dalam mengambil data. Tidak seperti bahasa pemrograman lain yang memiliki kemampuan untuk mengakses data dalam jumlah besar, Python sebenarnya memiliki kemampuan yang lebih terbatas.

Inilah sebabnya mengapa agak lambat saat menghadapi jenis pemrograman tertentu (misalnya, pada sistem IOS dan Android). Karena batasan ini, jika bahasa pemrograman Python harus diinstal pada komputer berbasis multi-prosesor, tingkat dukungannya juga rendah. Nantinya, akan menyebabkan banyak kesalahan dan keterlambatan proses dan hasil akhir.

Platform Apa Saja Yang Dapat Menjalankan Python

Seperti bahasa pemrograman dinamis lainnya, Python sering digunakan sebagai bahasa scripting, walaupun sebenarnya penggunaan bahasa tersebut mencakup konteks penggunaan yang lebih luas, dan ini biasanya dilakukan tanpa bahasa scripting. Python dapat digunakan untuk berbagai fungsi development software dan dapat bekerja dengan lancar di berbagai platform sistem operasi.

[Sejarah Python] Ilustrasi operating system
[Sejarah Python] Ilustrasi operating system

Saat ini kode Python dapat berjalan di berbagai platform sistem operasi, beberapa di antaranya adalah Microsoft Windows, Macintosh, Java Virtual Machine, Ubuntu, Huaweii dan Symbian (untuk produk Nokia)

Hasil Dari Menggunakan Python

Python dapat menghasilkan banyak program, yang paling menarik dari Python adalah dapat membuat program menampilkan kata "Hello World" secara sederhana,. Selain itu ada beberapa point yang patut di ketahui selain sejarah Python, yaitu:

  • Aplikasi Desktop. Karena Python adalah bahasa berbasis desktop, Python pun bisa mengimplementasikannya
  • Pengembangan situs web. Dengan menggunakan kerangka kerja Python seperti Django dan Flask, kita dapat dengan mudah membangun situs web menggunakan Python
  • Aplikasi Mobile. Di perangkat seluler, terutama di platform Android, kita dapat menggunakan teknologi Kivy untuk membangun aplikasi.
  • Artificial Intelligence (AI) Science. Selain bahasa R, Python juga sangat cocok untuk aplikasi sains AI, seperti machine learning, deep learning, dan lain sebagainya. Kita bisa menerapkan semua ini ke Python dengan bantuan pustaka seperti Tensorflow, Scikit, dan Numpy.
  • Game. Bagi Anda yang ingin menjadi developer game, Selain menggunakan bahasa C, C++, Java. Python juga jago dalam hal ini
  • Teknologi robot. Dengan menggunakan pyRobot, Anda dapat dengan mudah memahami dunia robotika
  • Internet of Things (IoT). Tertarik dengan Internet of Things? Anda dapat dengan mudah menerapkan konsep ini dengan Python.

Dukungan Komunitas yang Aktif

Berkat dukungan komunitas aktif di seluruh dunia, Python menjadi program yang terus berkembang dan bertahan lama dari awal mula sejarah Python. Banyak forum atau website yang sering membagikan pengalaman mereka dalam menggunakan Python. Hal ini memungkinkan pengguna dan developer pemula dapat dengan mudah mengajukan pertanyaan dan berbagi pengetahuan mengenai ilmu pemrograman ini.

Nah itulah tadi segala sesuatu tentang Python baik sejarah sampai manfaat yang dimiliki, masih mau belajar Python?

Kesimpulan

Pada artikel kali ini Anda telah mengetahui sejarah Python serta paparan singkat mengenai apa saja yang dapat dilakukan oleh Python. Dengan begitu diharapkan Anda mendapatkan gambaran mengenai bahasa pemrograman ini yang menjadi sangat populer seiring banyaknya programmer memilih menggunakan Python.

Untuk melengkapi pengetahuan Anda mengenai Python. Anda dapat melanjutkan membaca artikel lebih jauh mengenai Python pada link di bawah ini:

Dasar bahasa pemrograman Python
Cara Menggunakan Jupyter Notebook
Tutorial Youtube Python dasar:
Auftechnique Youtube Channel

Read More
Bahasa Pemrograman Komputer: 9 Contoh Terpopuler

Bahasa pemrograman komputer merupakan rangkaian kata-kata yang terdapat instruksi atau perintah yang biasanya terdiri dari banyak baris yang bisa dimengerti oleh perangkat komputer.Developer harus menguasai konten ini untuk membangun perangkat lunak atau aplikasi.

Untuk membuat aplikasi tertentu, perlu juga menggunakan bahasa yang sesuai untuk aplikasi tersebut. Jadi, bahasa pemrograman apa yang paling populer

1.Bahasa Pemrograman Komputer Java

Java adalah salah satu bahasa pemrograman yang paling fleksibel di dunia. Perusahaan di seluruh dunia menggunakan Java untuk membuat aplikasi desktop dan pengembangan back-end situs web . Salah satu fitur unik Java adalah dapat berjalan di hampir semua sistem operasi. Java merupakan bahasa yang paling populer dalam pengembangan aplikasi Android, dan juga disukai untuk pembuatan situs web yang lebih besar karena stabilitasnya.

Permintaan untuk pengembang Java selalu tinggi permintaannya. Pada kenyataannya, jika Anda ahli pada bahasa pemrograman Java, Anda tidak akan pernah kehilangan pekerjaan.

Bahasa Pemrograman Komputer Java

Komunitas online yang sangat besar menjadi tolak ukur bahwa Java adalah bahasa yang cukup sederhana untuk dipelajari - Anda akan selalu mendapatkan bantuan ketika Anda mengalami masalah dengan kode Anda.

2. Bahasa Pemrograman Komputer C

C adalah salah satu bahasa pemrograman tertua di dunia. Meskipun dirilis beberapa dekade yang lalu pada tahun 1972, C tetap menjadi bahasa pemrograman yang paling banyak digunakan karena fleksibilitasnya yang luar biasa.

C sangat serbaguna dan dapat digunakan untuk berbagai development, mulai dari pengembangan game mobile hingga pemrograman komputer untuk perangkat mobile.

C memiliki performa yang begitu cepat, dimana  C bisa dibilang bahasa pemrograman yang paling berguna ketika digunakan untuk pengembangan game.

C juga menjadi dasar untuk sejumlah bahasa pemrograman lain, termasuk C # dan C ++. Jika Anda belajar C, Anda akan lebih mudah mempelajari bahasa-bahasa pemrograman lainnya.

C adalah merupakan bahasa pemrograman paling favorit  sampai munculnya Java, pada awal 2000-an.

Meskipun C bisa menjadi bahasa yang cukup sulit untuk dipelajari, namun tetap saja C juga salah satu yang terbaik.

3. Bahasa Pemrograman Komputer Python

Salah satu bahasa favorit di antara akademisi dan penggiat bahasa pemrograman di seluruh dunia, Python bisa dibilang bahasa pemrograman paling populer untuk belajar terlebih dahulu. Python diajarkan di sekolah-sekolah, dan banyak kursus pemrograman yang mengajarkannya sebagai pengantar karena kesederhanaannya.

Bahasa Pemrograman Komputer Python

Python adalah bahasa pemrograman lain yang sangat serbaguna yang digunakan untuk segala macam hal. Dengan perkembangan penggunaan sederhana seperti pengembangan web dan analisis data, Python menjadi semakin populer di bidang pembelajaran mesin, kecerdasan buatan, dan robotika.

Anda dapat mengikuti tutorial komprehensif dari channel youtube ini untuk memahami pemrograman Pyhon dasar

4. Bahasa Pemrograman Komputer C++

C ++ digunakan untuk berbagai pemrograman, termasuk pemrograman fungsional, prosedural, dan berorientasi objek. C++ sangat fleksibel, dan dapat digunakan untuk menulis semua jenis program. Salah satu penggunaan C ++ yang paling umum adalah untuk membuat aplikasi yang dapat digunakan di berbagai perangkat atau platform yang berbeda. Karena dikenali oleh sebagian besar sistem operasi dan browser, C++ benar-benar bahasa yang sempurna untuk beberapa program.

Bahasa Pemrograman Komputer C++

Beberapa  penggunaan C ++ yang paling terkenal adalah pengembangan sebuah game dan editing video, yang menjadikannya opsi populer bagi pemula-pemula yang ingin memasuki industri pemrograman ini. C++ juga digunakan oleh raksasa teknologi seperti LinkedIn, Facebook, NASA, dan Microsoft, sehingga mempelajari C++ akan tetap dibutuhkan untuk pengembang berpengalaman.

Jika C ++ sepertinya bahasa yang menarik untuk Anda dipelajari, penting untuk diketahui bahwa C++ bukan salah satu bahasa pemrograman yang mudah. C++ adalah bahasa yang kompleks yang membutuhkan komitmen waktu yang signifikan.

5. Bahasa Pemrograman Komputer Visual Basic .NET

Visual Basic .NET atau VB.NET adalah bahasa pemrograman multi-pola  berfokus pada objek yang dibuat dan dikembangkan oleh Microsoft pada tahun 2001. Meskipun tidak biasa seperti dulu, VB.NET masih menjadi bahasa yang sangat baik untuk orang yang ingin mengembangkan aplikasi layanan web.

VB.NET dalah bahasa yang cukup sederhana untuk dipelajari, seperti namanya dan karena itu populer di kalangan pemula. Namun, fakta bahwa karena sederhana bukan berarti VB.NET lemah. Faktanya, VB.NET adalah salah satu bahasa paling kuat di luar sana. VB.NET adalah bahasa tingkat tinggi dengan sangat mudah untuk mengikuti Sintaks.

VB.NET adalah salah satu dari dua bahasa utama yang menargetkan kerangka .NET bersama dengan C #. Dalam kebanyakan pekerjaan pemrograman, C # sering digunakan sebagai pengganti VB.NET.

6. Bahasa Pemrograman Komputer C #

C # adalah salah satu bahasa pemrograman yang paling banyak digunakan karena keamanan dan sifatnya yang kuat.

C # banyak digunakan untuk membuat aplikasi untuk pesanan Windows, layanan Web XLM, aplikasi data pusat, aplikasi server sisi klien, dan banyak lagi lainnya. C # berjalan pada .NET Framework, seperti VB.NET, C # sendiri memiliki editor kode yang sangat canggih, mudah digunakan, dan membuat debug kode Anda jauh lebih mudah.

Sebagai bahasa C yang berfokus objek, C # bisa jadi susah dipelajari, terutama jika Anda tidak memiliki basic di pemrograman. Jika Anda sudah mengetahui dasar-dasar Java, Anda akan lebih mudah menemukan C # karena memiliki sintaks yang sama. Menurut Developer Windows lebih menyarankan memilih bahasa yang lebih sederhana seperti Python atau Java untuk dipelajari terlebih dahulu, dan kemudian pindah ke C # nanti.

7. Bahasa Pemrograman Komputer JavaScript

Sebagai bahasa yang sudah lama digunakan untuk pengembangan web, JavaScript telah mencapai keterkenalannya karena semakin banyak developer mulai menggunakannya untuk pengembangan back-end developer. Secara teori, ini berarti JavaScript dapat digunakan untuk membangun sebagian besar situs web.

Namun, ada beberapa orang yang mengklaim bahwa kode JavaScript yang terkadang membingungkan akan mengakibatkan berkurangnya penggunaan bahasa pemrograman ini mendatang.

8. Bahasa Pemrograman Komputer PHP

PHP dikenal sebagai bahasa web. Bahkan jika beberapa perusahaan mulai beralih dari PHP ke bahasa yang lebih modern, lebih dari 80% situs web di Internet masih menggunakannya. PHP jelas merupakan salah satu bahasa pemrograman paling populer.

PHP memfasilitasi pengembangan web back-end, memungkinkan pengembang membangun aplikasi web dinamis dengan koneksi database MySQL. PHP juga digunakan oleh developer kelas wahid di seluruh dunia, yang berarti bahwa belajar PHP akan menjadi media yang baik untuk memulai karir pemrograman Anda.

PHP benar-benar sangat mudah dimengerti, mudah diikuti sintaksisnya, fleksibel dan mudah digunakan, memungkinkan Anda untuk menulis kode kompleks bahkan dengan cepat dan efisien.

9. Bahasa Pemrograman Komputer SQL

SQL dikenal sebagai Structured Query Language, SQL memungkinkan Anda untuk melakukan segala hal dengan database dengan berbagai cara yang Anda inginkan. SQL juga digunakan oleh hampir semua platform eCommerce raksasa termasuk eBay dan Amazon , untuk menginformasikan keputusan bisnis dan strategi pemasaran produk. Nah itulah tadi beberapa bahasa pemrograman terpopuler yang masih digunakan para developer hingga saat ini. Anda ingin belajar yang mana ?

Kesimpulan

Pada artikel ini Anda telah mengetahui secara singkat beberapa bahasa pemrograman yang cukup banyak digunakan dan populer di kalangan programmer. Anda dapat memilih yang sekiranya sesuai dengan kebutuhan pekerjaan ataupun usaha Anda sehari-hari.

Artikel rekomendasi:

Dasar Pemrograman Python
Cara menggunakan Jupyter Notebook

Read More
1 2 3 5
Copyright since @ 2020
linkedin facebook pinterest youtube rss twitter instagram facebook-blank rss-blank linkedin-blank pinterest youtube twitter instagram