semakin kamu mengerti sesuatu itu akan semakin membingungkan, ilmu itu tak berujung.
Desember 29, 2012
Desember 24, 2012
Desember 07, 2012
code c unik
saya akan berbagi cara bikin program yang lumayan singkat yang hasilnya
adalah lihat sendiri ok hehehehe
pertama tulis code berikut
#include "perulangan.c"
int main(){
ulang();
return 0;
}
save dengan nama belajar.c
compile dengan gcc -std=gnu99 -o belajar belajar.c
maka akan terjadi error seperti ini :
for.c:1:18: fatal error: perulangan.c: No such file or directory
compilation terminated.
adalah lihat sendiri ok hehehehe
pertama tulis code berikut
#include "perulangan.c"
int main(){
ulang();
return 0;
}
save dengan nama belajar.c
compile dengan gcc -std=gnu99 -o belajar belajar.c
maka akan terjadi error seperti ini :
for.c:1:18: fatal error: perulangan.c: No such file or directory
compilation terminated.
karena file perulangan.c belum dibuat atau diletakan di folder lain
buat file preulangan ini codenya
#include <stdio.h>
void ulang(){
for(float a = 0.0;a<5.0;a++){
printf("\n");
for(float b = 5.0;b>a;b--){
printf("*");
}
}
printf("\n");
}
dan save di folder dimana program belajar disave hehehe....
oya arti dari void ulang(), adalah fungsi ulang tidak mengembalikan satu nilaipun sedangkan int main(), mengembalikan nilai nol(0).
sedangkan for adalah loop(atau perulangan) artinya akan terus melakukan sesuatu sampai perulangan tersebut sudah tidak memenuhi syarat perulangan.
udah dulu ya see you next time
Juli 31, 2012
c acces with pointer
Melanjutkan tutorial bahasa c yang saya berikan tahun lalu
sekarang saya akan mengajarkan tentang acess data dengan menggunakan pointer
apa sich yang di maksud pointer? Cari sendiri ya definisi sesungguhnya tapi menurutku pointer adalah
petunjuk sebuah alamat layaknya papan penunjuk arah yang sering kita jumpai apa sich kegunaan pointer pointer sangat bermanfaat untuk mengetahui letak suatu program atau file
ketika kita deklarasi kita memesan tempat di komputer misalnya char c[20] kita memesan 600 bytes
kekomputer dengan alamat yang ditunjuk oleh pointer atau &c,kalo int d; maka kita pesan tempat 4 bytes dengan alamat &d.
oke langsung saja liat codenya
$cat over.c
//latihan
main(){
char ch[20];
int *point=&ch,*ad = point;
scanf(“%s”,&ch);
printf("alamatnya %x\n",point);
printf("alamat %x miliknya %s\n",ad,ad);
}
char ch[20];
deklarasi atau pengenalan varieble ch dengan type char
begitu pula dengan int *point=&ch,*ad=point;
pointer point isinya alamat dari ch, dan pointer ad berisi pointer point
scanf maksudnya inputan dari keyboard
sedangkan %x adalah format hexadecimal
printf("alamatnya %x miliknya %s\n",ad,ad);
adalah perintah kepada komputer untuk menampilkan “alamatnya hexadecimal di pointer ad
miliknya string di alamat yang dituju pointer ad” ke monitor sedangkan karakter \n = new line adalah perintah ganti baris
scanf akan mengambil ketikan keyboard sebelum spasi setelah spasi akan di abaikan
sekarang yang jadi pertanyaan bagaimana caranya membuat virus dengan bahasa c
itu sangat mudah kawan kalo untuk windows akan amat rumit jika di kerjakan untuk linux perlu riset
yang mendalam, untuk acess pointer untuk integer, float dll menggunakan tanda asterisk(*)
misalnya :
float f,*t;
f = 2+2;
untuk mengeluarkan hasil dari f dapat menggunakan
ada pertanyaan tulis di komentar atau kirim email ke yujimaarif.ym@gmail.com
Juli 23, 2012
assembly
beri nama log.asm
section .text
global _start
_start :
xor eax , eax
mov al , 0x46
xor ebx , ebx
xor ecx , ecx
int 0x80
xor eax , eax
push eax
push 0x68732f2f
push 0x6e69622f
mov ebx , esp
push eax
push ebx
mov ecx , esp
xor edx , edx
mov al , 0xb
int 0x80
compile dengan
nasm -f elf log.asm
ld -o log log.o
./log untuk runing
silahkan mencoba
Juni 29, 2012
linux assembly
; Filename: lat.asm
; Developer: yudi
; Date: 06 mar 2012
; Purpose: This program demonstrates
; procedural programming and
; the usage of environment
; variables.
; Build:
; nasm -f elf -o lat.o lat.asm
; gcc -o lat lat.o
BITS 32
GLOBAL main
EXTERN puts
EXTERN exit
%define @ARG EBP + 8
%define @VAR EBP - 8
SECTION .data
strEnvironment DB '-----------------------', 10
DB ' Environment Variables', 10
DB '-----------------------', 0
strArguments DB '------------------------', 10
DB ' Command Line Arguments', 10
DB '------------------------', 0
SECTION .text
envs:
STRUC @ENVP
.envc RESD 1
.envp RESD 1
ENDSTRUC
STRUC $ENVP
.ptr RESD 1
ENDSTRUC
PUSH EBP
MOV EBP, ESP
SUB ESP, $ENVP_size
PUSH DWORD strEnvironment
CALL puts
MOV ESI, [@ARG + @ENVP.envp]
MOV ECX, [@ARG + @ENVP.envc]
DEC ECX
MOV EAX, 4
.scan_envs:
PUSH ECX
CMP ECX, 0
JE .done
DEC ECX
MOV EBX, [ESI + EAX]
OR EBX, EBX
JE .done
ADD EAX, 4
MOV [@VAR - $ENVP.ptr], EAX
PUSH EBX
CALL puts
MOV EAX, [@VAR - $ENVP.ptr]
POP ECX
JMP .scan_envs
.done:
XOR EAX, EAX
LEAVE
RET
args:
STRUC @ARGS
.argc RESD 1
.argv RESD 1
ENDSTRUC
STRUC $ARGS
.ptr RESD 1
ENDSTRUC
PUSH EBP
MOV EBP, ESP
SUB ESP, $ARGS_size
PUSH DWORD strArguments
CALL puts
ADD ESP, 4
MOV ESI, [@ARG + @ARGS.argv]
MOV ECX, [@ARG + @ARGS.argc]
DEC ECX
MOV EAX, 4
.scan_args:
PUSH ECX
CMP ECX, 0
JE .done
DEC ECX
MOV EBX, [ESI + EAX]
OR EBX, EBX
JE .done
ADD EAX, 4
MOV [@VAR - $ARGS.ptr], EAX
PUSH EBX
CALL puts
ADD ESP, 4
MOV EAX, [@VAR - $ARGS.ptr]
POP ECX
JMP .scan_args
.done:
XOR EAX, EAX
LEAVE
RET
main:
STRUC ENV
.argc RESD 1
.argv RESD 1
.envp RESD 1
ENDSTRUC
PUSH EBP
MOV EBP, ESP
PUSH DWORD [@ARG + ENV.argv]
PUSH DWORD [@ARG + ENV.argc]
CALL args
MOV ESI, [@ARG + ENV.envp]
MOV ECX, 4
XOR EAX, EAX
.continue:
MOV EBX, [ESI + ECX]
OR EBX, EBX
JE .count_done
ADD ECX, 4
INC EAX
JMP .continue
.count_done:
PUSH DWORD [@ARG + ENV.envp]
PUSH EAX
CALL envs
XOR EAX, EAX
PUSH EAX
CALL exit
LEAVE
RET
pelajari sendiri ya dan jalankan di linux anda
c programming tutorial
ini adalah source code untuk memperlambat kinerja computer os linux
#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>
#define ONE_K (1024)
int main()
{
char *some_memory;
int size_to_allocate = ONE_K;
int megs_obtained = 0;
int ks_obtained = 0;
while (1) {
for (ks_obtained = 0; ks_obtained < 100024; ks_obtained++) {
some_memory = (char *)malloc(size_to_allocate);
if (some_memory == NULL) exit(EXIT_FAILURE);
sprintf(some_memory, "Hell Lo World");
}
megs_obtained++;
printf("Now allocated %d Megabytes\n", megs_obtained);
}
exit(EXIT_SUCCESS);
}
char *some_memory; untuk mendefinisikan pointer variable some_memory
some_memory = (char *)malloc(size_to_allocate); inisiasi some_mory
sprintf adalah menuliskan sesuatu kedalam memory
int size_to_allocate = ONE_K; digunakan untuk mengenalkan varieble sekaligus inisiasi dengan ONE_K
#define ONE_K 1024
digunakan untuk memerintahkan compiler supaya mengganti ONE_K dengan 1024
jika #define tulis printf
maka setiap kata tulis akan diganti dengan printf
setelah itu buat launchernya
buat folder code
save mem.c di folder code
uat laucher dengan nama launcher
#!/bin/sh
while true
do
sleep 1
cd code
./mem
cd code
./meme
cd code
./mem
done
#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>
#define ONE_K (1024)
int main()
{
char *some_memory;
int size_to_allocate = ONE_K;
int megs_obtained = 0;
int ks_obtained = 0;
while (1) {
for (ks_obtained = 0; ks_obtained < 100024; ks_obtained++) {
some_memory = (char *)malloc(size_to_allocate);
if (some_memory == NULL) exit(EXIT_FAILURE);
sprintf(some_memory, "Hell Lo World");
}
megs_obtained++;
printf("Now allocated %d Megabytes\n", megs_obtained);
}
exit(EXIT_SUCCESS);
}
char *some_memory; untuk mendefinisikan pointer variable some_memory
some_memory = (char *)malloc(size_to_allocate); inisiasi some_mory
sprintf adalah menuliskan sesuatu kedalam memory
int size_to_allocate = ONE_K; digunakan untuk mengenalkan varieble sekaligus inisiasi dengan ONE_K
#define ONE_K 1024
digunakan untuk memerintahkan compiler supaya mengganti ONE_K dengan 1024
jika #define tulis printf
maka setiap kata tulis akan diganti dengan printf
setelah itu buat launchernya
buat folder code
save mem.c di folder code
uat laucher dengan nama launcher
#!/bin/sh
while true
do
sleep 1
cd code
./mem
cd code
./meme
cd code
./mem
done
Juni 14, 2012
membuat qibla locator
Setiap titik dibumi dapat dinyatakan
dalam longtitude dan latitude
rumus untuk menghitung adalah
cos(y) =
cos(x)cos(y)+sin(x)sin(z)cos(B)
cos(z)=
cos(x)cos(y)+sin(x)sin(y)cos(C)
sin(x)/sin(A)=sin(y)/sin(B)=sin(z)/sin(C)
dari tiga rumus diatas di gabungin jadi
tan(B) =
sin(C)/sin(x)cot(y)-cos(a)cos(C)
C = Bx-By
x = 90 – Ly
y = 90 – Lx
dan
cos(90-x)=sin(x)
sin(90-x)=cos(x)
cot(90-x)=tan(x)
maka persamaan akan menjadi
tan(B)=sin(Bx-By)/cos(Ly)tan(Lx)
sin(Ly)cos(Bx By)
sudut B = archtan(tan(B))
titik A = posisi kita
titik B = posisi ka'bah
titik C = kutub utara
Arah kiblat azimuth ditunjukan sudut B.
secara matematis penghitungan arah kiblat seperti ini
secara program seperti ini
MainActivity.java
package com.baunAndroid;
import android.app.Activity;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Path;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.util.Config;
import android.util.Log;
import android.view.View;
public class MainActivity extends Activity {
/** Called when the activity is first created. */
private static final String TAG = "Compass";
private SensorManager mSensorManager;
private Sensor mSensor;
private SampleView mView;
private float[] mValues;
private double lonMosque;
private double latMosque;
private LocationManager lm;
private LocationListener loclistenD;
//for find north direction
private final SensorEventListener mListener = new SensorEventListener(){
public void onAccuracyChanged(Sensor sensor, int accuracy){
}
};
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.main);
mSensorManager = (SensorManager)getSystemService(Context.SENSOR_SERVICE);
mSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION);
mView = new SampleView(this);
setContentView(mView);
//calling gps
LocationManager lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
Location loc= lm.getLastKnownLocation("gps");
//ask the location manager to send us location updates.
loclistenD = new DispLocListener();
lm.requestLocationUpdates("gps",30000l,10.0f,loclistenD);
loclistenD = new DispLocListener();
lm.requestLocationUpdates("gps",30000l,10.0f,loclistenD);
}
//finding ka'bah location
private double QiblaCount(double lngMasjid,double latMasjid){
double lngKabah= 39.82616111;
double latKabah= 21.42250833;
double lKlM= (lngKabah - lngMasjid);
double sinLKLM= Math.sin(lKlM*2.0*Math.PI/360);
double cosLKLM= Math.cos(lKlM*2.0*Math.PI/360);
double sinLM = Math.sin(latMasjid*2.0*Math.PI/360);
double cosLM = Math.cos(latMasjid*2.0*Math.PI/360);
double tanLK = Math.tan(latKabah*2*Math.PI/360);
double denominator = (cosLM*tanLK)-sinLM*cosLKLM;
double Qibla;
double direction;
Qibla = Math.atan2(sinLKLM, denominator)*180/Math.PI;
direction = Qibla < 0 ? Qibla+360 : Qibla;
return direction;
}
//resume location update when we are resume
@Override
protected void onResume(){
super.onResume();
mSensorManager.registerListener(mListener, mSensor, SensorManager.SENSOR_DELAY_GAME);
}
@Override
super.onStop();
}
private class SampleView extends View {
private Paint mPaint = new Paint();
private Path mPath = new Path();
private boolean mAnimate;
public SampleView(Context context) {
super(context);
// TODO Auto-generated constructor stub
mPath.moveTo(0, -50);
mPath.lineTo(20, 60);
mPath.lineTo(0, 50);
mPath.lineTo(-20, 60);
mPath.close();
}
//Make arrow for pointing direction
@Override
protected void onDraw(Canvas canvas){
Paint paint = mPaint;
canvas.drawColor(Color.WHITE);
paint.setAntiAlias(true);
paint.setColor(Color.DKGRAY);
paint.setStyle(Paint.Style.FILL_AND_STROKE);
int w = canvas.getWidth();
int h = canvas.getHeight();
int cx = w/2;
int cy = h/2;
float Qibla = (float) QiblaCount(lonMosque,latMosque);
// float Qibla = mValues[0] + Qibla;
canvas.translate(cx, cy);
if (mValues != null){
canvas.rotate(-(mValues[0]+ Qibla));
}
canvas.drawPath(mPath, mPaint);
}
@Override
protected void onAttachedToWindow(){
mAnimate = true;
super.onAttachedToWindow();
}
@Override
protected void onDetachedFromWindow(){
mAnimate = false;
super.onDetachedFromWindow();
}
}
private class DispLocListener implements LocationListener{
@Override
public void onLocationChanged(Location loc){
//update TextViews
latMosque = loc.getLatitude();
lonMosque = loc.getLongitude();
}
@Override
public void onProviderDisabled(String provider) {
// TODO Auto-generated method stub
}
@Override
public void onProviderEnabled(String provider) {
// TODO Auto-generated method stub
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
// TODO Auto-generated method stub
}
}
}
manifestnya
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.baunAndroid"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="8" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
ketika di launch akan keluar
run dengan menekan ctrl+f11
Mei 04, 2012
dunia tanpa batas
saat ini terjadi sesuatu demam yang berdampak sangat bagus yaitu demam internet dan smartphone,
android adalah salh satu smartphone yang bagus dan terbuka,
tutorial kali ini adalah membuat aplikasi android sederhana yang nantinya akan saya berikan tutorial lanjutan yang lebih bagus lagi
ok langsung di mulai saja,
pertama buka file > new > android project >ketikan nama project misalnya JamAnalog> Next > pilih android api level berapa yang akan dibuat misalnya api level 8 >buat package name misalnya net.learnAndroid >finish
kemudian didalam package manager cari res>layout> main.xml
rubah main xmlnya menjadi seperti ini
<xml version="1.0"encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
#linear layout berfungsi untuk menentukan layout yang digunakan
#layout width adalah lebar layout fil_parent mengisi penuh parent
#layout height adalah untuk mengatur tinggi layout
#orientation adalah untuk mengatur orientasinya apakah item2 yang berada didalamnya tersusun #vertical ataupun horizontal
<AnalogClock
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
##AnalogClock adalah untuk menampilkan widget jam analog
android adalah salh satu smartphone yang bagus dan terbuka,
tutorial kali ini adalah membuat aplikasi android sederhana yang nantinya akan saya berikan tutorial lanjutan yang lebih bagus lagi
ok langsung di mulai saja,
pertama buka file > new > android project >ketikan nama project misalnya JamAnalog> Next > pilih android api level berapa yang akan dibuat misalnya api level 8 >buat package name misalnya net.learnAndroid >finish
kemudian didalam package manager cari res>layout> main.xml
rubah main xmlnya menjadi seperti ini
<xml version="1.0"encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
#linear layout berfungsi untuk menentukan layout yang digunakan
#layout width adalah lebar layout fil_parent mengisi penuh parent
#layout height adalah untuk mengatur tinggi layout
#orientation adalah untuk mengatur orientasinya apakah item2 yang berada didalamnya tersusun #vertical ataupun horizontal
<AnalogClock
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
##AnalogClock adalah untuk menampilkan widget jam analog
Januari 27, 2012
CARA INSTALL ECLIPSE DAN SDK ANDROID
aku akan share cara menginstall adt android beginilah caranya
install dulu javanya dengan cara buka terminal dan ketikkan sudo apt-get install openjdk-7-jdk openjdk-7-jre
1.download eclipse disini , pilih eclipse yang terbaru kalo aku pilih eclipse indigo, setelah selesai download unzip eclipse simpan ke directory sesuai yang kamu kehendaki.
download android sdk 10 di sini setelah itu unzip kemudian buka sdknya ke folder tool kemudian run android setelah muncul sdk and avd manager pilih setting https fetched to http
2.setelah itu download sdk android di sini , pilih sdk yang
terbaru, setelah selesai download unzip ke direktori yang kamu kehendaki.
3.jalankan eclipse.exe yang telah kamu unzip,ketika kamu menjalankan pertama kali eclipse akan
muncul prompt yang meminta kamu untuk memilih di folder manakah kamu akan menyimpan seluruh projekmu, pilih yang kamu sukai, pilih use as the default lalu tekan ok.
Setelah eclipse terbuka pilih help lalu pilih install new softwere
sebelum mengetikkan http://dl-ssl.google.com/android/eclipse ketikkan http://dl.google.com/eclipse/plugin/3.7 ikuti perintahnya kemudian restart
setelah itu akan muncul window lalu cari form work with didalam work with ketikan http://dl-ssl.google.com/android/eclipse , stelah mucul tulisan developer tool pilih checkbox lalu tekan next
setelah itu muncul tool yang akan didownload pilh next muncul agreement baca dan pilh agree tekan finish jika mendapat peringatan tekan ok.
Setelah selesai download restart eclipse
pilih window lalu pilih preference pilih android di panel sebelah kiri
cari directori dimana kita menyimpan android sdknya tekan apply lalu ok
pilih window lalu pilih sdk manager untuk mendownload tool-tool yang dibutuhkan setelah selesai install kemudian pilih window lalu avd manager lalu pilih new setelah itu pilih nama yang kamu
ingin kan di form name misalnya android setelah itu di form target pilih device yang terbaru misalnya 4.0.3 di form skin pilih build dan default untuk android versi phone atau pilih wxga untuk versi tablet
pilih overide existing... lalu tekan create avd
kemudian tekan start dan tunggu sampai muncul android device nya
-
Orange pi zero adalah SBC( Single Board computer) yang dapat digunakan sebagai embeded server, embeded minipc atau project apapun yang kamu...
-
Dulu ada keinginan memiliki sebuah freenas ngga pernah terwujud ahirnya terpikirkan untuk membuat nas dengan menggunakan orange pi zero, sa...
-
#!/bin/bash PS1="\e]2;melakukan shutdown\a\u@\h:\$ " setterm -term linux -back green -fore yellow -clear function count{ loca...