Wednesday, May 1, 2019

Perbedaan antara varaibel global, variabel static dan variable lokal

Mungkin beberapa dari kita hanya mengetahui dua jenis variabel dalam pemrograman. Dalam hal ini pemrograman yang saya maksudkan adalah pemrograman C. Mungkin juga diantara kita, yang suka window shoping ke gitlab orang-orang jago kadang menemukan istilah static yang diikuti dengan nama tipe data kemudian nama variabel. Pada kesempatan ini, saya akan mengetik kembali (menyadur) dari link ini tentang perbedaan antara variabel global dan variabel static. Kemudian akan menambah penjelasan tentang variabel lokal. Dalam penuturan(anggap saja saya sedang berkisa) ini, akan saya tampilkan juga contoh dan penggunaan dari variabel variabel tersebut.

Mari langsung kita mulaikan saja.

Pertama adalah tentang variabel global. Jenis variabel ini sangat poluler bagi programer muda/awal/newbe. Karena sifatnya yang dapat diakses dari mana saja dan kapan saja. Pendeklarasian variabel global diletakkan pada file .c sementara pada file .h adalah extern nya. Kata extern akan menjadi penanda bahwa variabel global tersebut sudah pernah di deklarasikan, dalam hal ini di file .c. Tanpa penambahan extern, variabel global ini tidak dapat digunakan pada file yang berbeda, atau dapat namun dengan status warning setelah compile. Pesan sponsornya adalah

Global Variable Are Evil
Mengapa disebut demikian, gambar dibawah ini akan menjelaskan beberapa hal.

Atau lebih lengkatnya dapat berkunjung ke link ini

Selanjutnya tentang variabel static. Jenis variabel ini dapat ditemukan pada kode kode orang yang pro atau yang menuju pro. Mengapa, karen orang jenis ini sudah mulai merencanakan variabel apa saja yang dapat diakses global dan apa saja yang hanya dapat diakses atau digunakan pada lingkup file / proses tertentu. Mungkin variabel ini dapat dikatakan juga dengan variabel global terbatas. Mengapa disebut terbatas, karena variable ini hanya dapat dilakukan dalam satu file tersebut. Jika kita perlakukan seperti variable global, dengan menambahkan extern di file .h. yang akan terjadi malah compliler akan menulaknya alias memberikan pesan error.

variabel static kurang evil dibanding variabel global.
Terakhir adalah variabel lokal. Variabel ini sering dideklarasi dengan satu huruf dan huruf yang paling sering digunakan adalah i, setelah itu j dan k. Mengapa demikian, karena hampir semua programer diawal awal berkenalan dengan bahasa pemrograman akan menggunakan variabel ini dalam proses perulangan. Karena proses ini perlu variabel sebagai hal yang akan di incriment atau decriment. Maka si i menjadi pilihan untuk digunakan, berhubung pada beberapa buku dan text book juga menggunakan si i. Variabel lokal, hanya dapat digunakan dalam fungsi dimana variabel tersebut di deklaraskan. Tidak menggunakan kata static sebelum tipe data dan extern dengan harapan dapat di akses oleh fungsi yang lain (hehehe kalimat terakhir ini, hanya candaan saja).

Sekian dan terima kasih

Tuesday, February 5, 2019

Tambah Lib pada Atolic TrueStudio - STM32

Contoh project kriptografi ini sebenarnya sudah ada dengan project keil dan iar, namun belum ada untuk project TrueStudio. Sebenarnya ada tools untuk mengkonvert project iar ke project TrueStudio, namun setelah dicoba hasilnya kurang memuaskan dan tambah memusingkan. Sehingga jalur ini dipilih, yaitu buat project baru dan tambahkan file dan setting secara manual. Mari kita mulai.

Alat dan bahan

  1. Tentunya, di komputer kita sudah menginstal aplikasi IDE TrueStudio
  2. Telah memiliki file .Lib yang akan kita gunakan. Lib kripto grafi dapat di download pada link.
  3. Projectnya telah create lebih dulu, berbasis pada controler stm32f4. Sehingga tidak dibahas pada artikel ini.

Proses penambahan kode ke dalam folder src project.

Sebelum menambahkan kode main, saya ingin menunjukkan susunan folder awal dari project yang digunakan. Seperti yang ditunjukkan pada gambar di bawa ini.

Gambar 1. Tab Project Explorer sebelum menambahkan lib.

Artikal ini akan mengacu pada contoh project STM32F4xx_Cryptographic_Templates. Jangan lupa untuk membuka file readme.txt untuk keterangan lebih lanjut.

Kemudian, copas file main.c, stm32f4xx_it.c dan stm32f4xx_it.h ke dalam folder src. Setelah itu coba di build. Hasil dari proses build dapat dilihat pada gambar dibawah ini

Gambar 2. Error karena penambahan kode pada main.c dan beberapa file yang lain.

Terlihat pada gambar ada dua anak panah merah. Anak panah di atas menunjukkan ada error pada file main.c. Sementara anak panah kedua menunjukkan keterangan error tersebut, yaitu tidak ditemukan file crypto.h. Tinggalkan sejenak error ini, kita lanjut dengan penambahan library sesuai dengan judul dari artikel ini.

Proses penambahan library pada project.

Daftar file dan folder yang dibutuhkan.
  • M4_CryptoHW_2_0_6.a
  • folder inc.
File dan folder diatas terdapat di STM32_Cryptographic --> Libraries --> STM32_Cryptographic_Library. Karena pada project yang kita gunakan juga terdapat folder Libraries (lihat gambar pertama). Maka saya menyarankan untuk copas folder STM32_Cryptographic_Library dan letakkan dalam folder Libraries. Setalah di copas, barulah kita menghapus file-file dan folder yang tidak digunakan (selain file dan folder di atas.)

Setting project.

Penambahan file dengan cara copas tidak serta-merta dapat menghilangkan error yang ditemui pada bagian Proses penambahan kode ke dalam folder src project. Pada bagian ini saya akan menunjukkan bagaimana cara setting agar project mengetahui keberadaan file yang ditambahkan sehingga dapat berhasil saat Build.

Gambar3. Penambahan lib dan pathnya.


Masuk kedalam project properties dengan cara klik kanan pada folder project di tab project explorer.

1. Tambah Path include.

  • Pilih Path and Symbol. Pada tab include klik tombol add.
  • Pada Add directory path. klik tombol workspace. Arahkan ke Libraries/STM32_Cryptographic_Library/inc. klik OK.
Gambar 4. Menunjuk lokasi file pada folder inc.

2. Tambah libraries.

  • Pilih Path and Symbol. Pada tab libraries klik tombol add. dan tambahkan
    :M4_CryptoHW_2_0_6.a
    
  • dan klik OK
  • Pada tab Library Path klik tombol add. Dan arahkan pad ke tempat dimana file .a tersebut berada.
    Libraries/STM32_Cryptographic_Library/binary/EWARM
    
  • dan klik OK
Sampai pada tahap ini. Proses setting project telah selesai.
Build dan kita lihat apa yang terjadi. Pada file main.c, error file include sudah tidak ada. Namun error bergeser ke file yang lain. Karena menurut saya contoh project pada artikel ini tidak membutuhkan file tersebut, maka file tersebut langsung saya delete saja. Kemudian coba di Build lagi dan Tada... Build sukses meskipun ada satu warning. Selanjutnya tugas kalian aja yang membereskan satu warning ini... Semoga sukses.

Gambar 5. Project berhasil build.

Sebagai formalitas

Selamat tinggal tahun 2018 yang penuh kejutan. Dan selamat datang tahun 2019 yang penuh dengan misteri.

Berikut ini adalah rangkuman kejutan di tahun 2018... Sebut saja begitu.




A post shared by Ricky Rawung (@ryq_r) on